Другая страница Joomla по умолчанию на основе URL-адреса для микросайтов

Я создаю шаблон прямо сейчас для клиента, который хочет иметь несколько микросайтов и один главный сайт под одним экземпляром joomla. Я создаю его на Joomla, потому что это то, что я знаю, поэтому, пожалуйста, не предлагайте другую CMS, и да, я знаю, что Drupal поддерживает это по своей сути! Так вот худая. Прямо сейчас мой шаблон ищет доменное имя из параметров шаблона, затем сравнивает его с базовым URI, а затем устанавливает переменные, которые будут использоваться во всех шаблонах. Итак, код выглядит так...

 //multisite configuration - determines which template params and menu module to display depending on the base URL
$url = JURI::base();
$primary = 'http://'.$this->params->get('site-domain').'/';
$sub1= 'http://'.$this->params->get('domain1-domain').'/';
$sub2= 'http://'.$this->params->get('domain2-domain').'/';
$sub3= 'http://'.$this->params->get('domain3-domain').'/';
$sub4= 'http://'.$this->params->get('domain4-domain').'/';
$sub5= 'http://'.$this->params->get('domain5-domain').'/';
if($url == $primary):
    $logo = $this->params->get('logo');
    $title = $this->params->get('site-title');
    $slogan = $this->params->get('site-slogan');
    $menu = '<jdoc:include type="modules" name="menu" />';
elseif($url == $sub1):
    $logo = $this->params->get('domain1-logo');
    $title = $this->params->get('domain1-title');
    $slogan = $this->params->get('domain1-slogan');
    $menu = '<jdoc:include type="modules" name="menu-1" />';
elseif($url == $sub2):
    $logo = $this->params->get('domain2-logo');
    $title = $this->params->get('domain2-title');
    $slogan = $this->params->get('domain2-slogan');
    $menu = '<jdoc:include type="modules" name="menu-2" />';
elseif($url == $sub3):
    $logo = $this->params->get('domain3-logo');
    $title = $this->params->get('domain3-title');
    $slogan = $this->params->get('domain3-slogan');
    $menu = '<jdoc:include type="modules" name="menu-3" />';
elseif($url == $sub4):
    $logo = $this->params->get('domain4-logo');
    $title = $this->params->get('domain4-title');
    $slogan = $this->params->get('domain4-slogan');
    $menu = '<jdoc:include type="modules" name="menu-4" />';
elseif($url == $sub5):
    $logo = $this->params->get('domain5-logo');
    $title = $this->params->get('domain5-title');
    $slogan = $this->params->get('domain5-slogan');
    $menu = '<jdoc:include type="modules" name="menu-5" />';
endif;

Итак, теперь мне нужно создать параметр шаблона, который определяет, какой идентификатор пункта меню является пунктом меню по умолчанию, а затем выполнить перенаправление заголовка PHP. Поскольку Joomla не поддерживает несколько значений по умолчанию, мне нужен обходной путь для создания необходимого URL-адреса перенаправления. Я думаю по идентификатору пункта меню или псевдониму, поскольку я не хочу ограничиваться отображением категории или типа статьи. К сожалению, при решении этой проблемы мои знания PHP и Joomla терпят неудачу. Любая помощь будет здорово.

Спасибо Сандра :)


person TEN Design    schedule 21.06.2013    source источник


Ответы (1)


Вместо этого вы можете использовать расширение, такое как Virtual Domains, что позволяет связать разные домены с разными пунктами меню по умолчанию. Затем вы можете использовать стандартные шаблоны Joomla и назначать их на основе меню.

person betweenbrain    schedule 22.06.2013
comment
Да, я понимаю, что это не тот ответ, который вы искали, но реализация многодоменного типа решения в шаблоне не оптимальна. В идеале вы должны сделать это после получения запроса, но до его маршрутизации. Вы пытаетесь сделать это намного позже в цикле выполнения, во время процесса рендеринга. Решение, подобное предложенному мной, сделает это в более подходящей точке цикла выполнения и избавит вас от необходимости изобретать велосипед. Вы можете использовать стили шаблона для реализации различных видов шаблона для каждого пункта меню по умолчанию для каждого домена. - person betweenbrain; 24.06.2013