Мультидоменность – замена макроса content (tpl)

Материал из Umicms
Перейти к:навигация, поиск

Если необходимо, чтобы на втором домене системы, при использовании в шаблонах страниц макроса %content%, использовался шаблон не default.tpl, то для этой задачи можно воспользоваться кастомным макросом, который пропишем в файле classes/modules/custom.php. Макрос настроен для страниц типа Новость, Лента новостей, Раздел каталога, Объект каталога.

   public function customcontent($tpl){

    $cmsController = cmsController::getInstance();	
    $current_domain_id = $cmsController->getCurrentDomain();
    $current_module = $cmsController->getCurrentModule();
    $current_method = $cmsController->getCurrentMethod();
    $mod_met = $current_module . "-" . $current_method;  
    switch($mod_met){

    case 'catalog-category':
      $ini = cmscontroller::getInstance()->getModule('catalog');
      return $ini->category($tpl);
      break;
    case 'catalog-object':
      $ini = cmscontroller::getInstance()->getModule('catalog');
      return $ini->object($tpl);
      break;
    case 'news-rubric':   		
      $ini = cmscontroller::getInstance()->getModule('news');
      return $ini->rubric("", $tpl);
      break;
    case 'news-item':
      $ini = cmscontroller::getInstance()->getModule('news');
      $element_id = (int) $cmsController->getCurrentElementId();
      return $ini->view($element_id, $tpl);
      break;
    default:
    return "%content%";
    }
  }

Вызов, вместо макроса %content%, следующий:

%custom customcontent('default_sait2')%