Код условия для рекомендуемого содержания статьи joomla 3

в предыдущих версиях joomla работал следующий код, позволяющий отображать различный контент для рекомендуемой статьи:

<?php if (JRequest::getVar('view')=='featured') : ?>
STUFF FOR HOMEPAGE
<?php endif; ?>


<?php if (JRequest::getVar('view')!=='featured') : ?>
STUFF FOR ANY PAGES APART FROM HOMEPAGE
<?php endif; ?>

... или что-то в этом роде. Есть ли эквивалентная функция в joomla 3? Я потратил много времени на поиск решения, однако я не знаком с php-кодом, поэтому не уверен, что именно я ищу. Пока я ничего не нашел для joomla 3. Есть предложения?


person starky    schedule 01.01.2014    source источник


Ответы (2)


Попробуйте приведенный ниже код

$input = JFactory::getApplication()->input;
<?php if ($input->get('view', '') == 'featured') : ?>
STUFF FOR HOMEPAGE
<?php endif; ?>


<?php if ($input->get('view', '') !== 'featured') : ?>
STUFF FOR ANY PAGES APART FROM HOMEPAGE
<?php endif; ?>

Класс JRequest больше не поддерживается, поэтому используйте для этой цели $input = JFactory::getApplication()->input;.

person Gaurav    schedule 01.01.2014
comment
Спасибо за ответ. Это очень ценится. К сожалению, когда я добавил это в свой файл index.php, я получил следующее: $input = JFactory::getApplication()-›input; Неустранимая ошибка: вызов функции-члена get() для не-объекта в /home/wealthar/public_html/wa/templates/protostar/index.php в строке 172. - person starky; 01.01.2014
comment
Строка $input = JFactory::getApplication()-›input; должны быть размещены в начале документа? Я пробовал это, однако это привело к тому, что содержимое домашней страницы вообще не отображалось. Есть еще предложения? - person starky; 01.01.2014
comment
Дайте мне знать, что вы хотите сделать, если просмотр показан? Чтобы я мог дать вам правильное решение. - person Gaurav; 01.01.2014
comment
Мне нужно, чтобы div, содержащий статью на домашней странице, имел один конкретный фон, а затем на других страницах мне нужен другой фон. Я уверен, что есть разные способы сделать это, но я знаю, что ‹div id=homepage›ПОПУЛЯРНАЯ СТАТЬЯ‹/div› отображается только на главной странице, а затем ‹div id=otherpages›ДРУГОЕ СТРАНИЦА СТАТЬИ‹/div›. Поэтому я могу стилизовать как #homepage, так и #otherpages по-разному, чтобы удовлетворить различные требования к фону. - person starky; 01.01.2014
comment
Мне нужен код, чтобы скрыть div для других страниц, когда отображается избранная статья (и наоборот), в противном случае из-за того, что строка ‹jdoc:include type=component /› используется дважды (один раз для избранного, а затем один раз для стандартные статьи), статьи будут отображаться дважды на любой странице. - person starky; 01.01.2014
comment
Тогда вы должны сделать это путем переопределения шаблона. Скопируйте Joomla =› компоненты =› com_content =› views =› Featured =› default.php в Joomla =› templates =› selectedTemplate =› html =› com_content =› Featured =› default.php и внесите необходимые изменения. - person Gaurav; 01.01.2014
comment
Не подумал бы об этом. Приветствия для указателей. Я дам вам знать, как это происходит. :) - person starky; 01.01.2014
comment
Вот код от Protostar $app = JFactory::getApplication(); $view = $app-›input-›getCmd('view', ''); Тогда вы бы сказали, если $view == 'featured' - person Elin; 02.01.2014

Из комментария я считаю, что вы хотите создать домашнюю страницу, а не избранный вид, поэтому используйте этот код вместо этого:

$app = JFactory::getApplication();
$menu = $app->getMenu();
$frontpage = ($menu->getActive() == $menu->getDefault());
if ($frontpage) {
  echo 'This is the front page';
} else {
  echo 'This is NOT front page';
}

Дополнительную информацию можно найти здесь: http://docs.joomla.org/How_to_determine_if_the_user_is_viewing_the_front_page

person di3sel    schedule 02.01.2014