В Joomla, если требуется скрыть или показать модуль на определённых страницах (связанных с пунктами меню) используется инструмент модуля "Привязка к пунктам меню". Для получения дополнительной информации смотрите документацию Joomla: Extensions Module Manager Edit.

Но иногда этого инструмента бывает недостаточно, поэтому в JoomlaKassa, в некоторых модулях добавлена дополнительная функция "Скрыть на страницах", позволяющая выбрать страницы компонента JoomlaKassa, где вы хотите скрыть используемый модуль.

hide_on_pages_00

Ниже описан случай, когда скрытие модуля может вызывать не корректное отображение экрана, где модуль был скрыт. Для примера взят модуль "JKLatest (JoomlaKassa - Новые продукты)", который расположен в позиции position-7 (слева).

hide_on_pages_01

После того как вы скроете модуль при помощи параметра "Скрыть на страницах", например на странице продукта (product) и модуль в этой позиции расположен только один, это может не скрыть всю левую колонку, вместо него появиться пустое место.

hide_on_pages_02

Эта ситуация возникла потому, что большинство шаблонов Joomla для вычисления макета отображения позиций модулей и основного контента используют функцию Joomla: $this->countModules('position-7'). Эта функция определяет количество опубликованных модулей в указанной позиции, а в используемом модуле просто скрыто его содержимое, фактически он по-прежнему существует.

Ниже приведено решение для устранения этой проблемы (требуется минимальное знание PHP языка).

В вашем шаблоне Joomla (в основном это файл index.php) добавьте следующий код:

$jk_latest = JModuleHelper::getModule('jk_latest');
$hide_jk_latest = FALSE;

if ($jk_latest)
{
	$jk_latest_params = json_decode($jk_latest->params);
	
	if (isset($jk_latest_params->hide_on_pages))
	{
		$app	= JFactory::getApplication();
		$option	= $app->input->get('option', null);	// имя компонента
		$view	= $app->input->get('view', null);	// текущий view
		
		// Скрыть модуль jk_latest на странице 
		if ($option == 'com_joomlakassa' && in_array($view, $jk_latest_params->hide_on_pages))
		{
			$hide_jk_latest = TRUE;
		}
	}
}

Далее в коде вашего шаблона вы можете использовать переменную $hide_jk_latest, которая имеет значение TRUE – скрывать модуль на выбранных страницах или значение FALSE – не скрывать модуль, в зависимости от результатов вычисления.

Ниже приведён пример для регулировки ширины контента шаблона Joomla установленного по умолчанию "Protostar":

// Adjusting content width
if ($this->countModules('position-7') && $this->countModules('position-8') && !$hide_jk_latest)
{
	$span = "span6";
}
elseif ($this->countModules('position-7') && !$this->countModules('position-8') && !$hide_jk_latest)
{
	$span = "span9";
}
elseif (!$this->countModules('position-7') && $this->countModules('position-8') && $hide_jk_latest)
{
	$span = "span9";
}
else
{
	$span = "span12";
}

Таким образом, вы можете полностью скрыть позицию position-7, если в ней нет опубликованных модулей и скрыт используемый модуль JoomlaKassa.

hide_on_pages_03

jkDocs

Мы в соц сетях

Поиск в документации