Внимание! Форум временно закрыт. Все вопросы вы можете задать на странице MaxSite CMS в Github

Шаблоны вывода для отдельной категории

Здесь можно задать вопрос по PHP, не боясь нарваться на злых админов за возможно глупый вопрос. Форум имеет обучающую направленность, поэтому можно создавать обучалки.
G1yyK
Сообщений: 7
Зарегистрирован: 06 дек 2012, 13:11

Шаблоны вывода для отдельной категории

Сообщение G1yyK » 21 май 2013, 14:31

Добрый день.
Хочу на сайте в отдельной категории организовать каталог организаций.
Как я планирую это сделать. Создам категорию "Каталог" - для данной категории создам отдельный шаблон вывода и в нем уже выведу все дочерние категории в удобном для меня виде.
В папке options я создаю свой набор опций

Код: Выбрать все

[Шаблон вывода Категориия]
options_type = templates
options_key = main_template_catalog
type = select
description = "Укажите шаблон вывода (main-шаблон) по-умолчанию."
default = ""
values =  "<?php
   $dirs = mso_get_dirs(getinfo('template_dir') . 'main/', array(), 'main.php');
   
   if ($dirs)   echo ' ||Обычный #' . implode($dirs, '#');
      else echo ' ||Обычный';


?>"
section = "Шаблоны вывода"

[Шаблон вывода Категория 2]
options_type = templates
options_key = id_template_cat
type = textfield
description = "Укажите номер категории для которой будем менять шаблон вывода"
default = "0"
values =  ""



В первой опции я выберу шаблон вывода, а во второй опции я укажу номер категории к которой я хочу применить данный шаблон. Накидал немного кода для определения что я нахожусь в данной категории, и получаю нужный шаблон.

Столкнулся с проблемой, шаблон то я получил как его правильно применить что бы поменялся шаблон сайта. Какую функцию необходимо выполнить, что бы использовался новый шаблон?

Код: Выбрать все

$id_cat = mso_get_option('main_template_cat','templates','');

if ($id_cat == mso_get_cat_from_slug()) {
   if ($page_template = mso_get_option('main_template_cat_4', 'templates', ''))
      {         
         if ($fn = mso_fe('main/' . $page_template . '/main.php'))
         {   
            $fn_main = $fn; // выставляем путь к файлу
         }
      }
}

Аватар пользователя
MAX
Администратор
Сообщений: 3179
Зарегистрирован: 31 янв 2009, 19:02

Re: Шаблоны вывода для отдельной категории

Сообщение MAX » 21 май 2013, 17:45

Путь к main-файлу выставляется так:

Код: Выбрать все

mso_set_val('main_file', $fn);


— где $fn — полный путь к main-файлу.

Код можно прописать где-то до отработки main-end.php, например в custom/my_functions.php

Но в вашей задаче удобней сделать немного не так.

Делаем файл main/type/category/main.php

Код: Выбрать все

<?php if (!defined('BASEPATH')) exit('No direct script access allowed');


$id_cat = mso_get_cat_from_slug(); // номер рубрики

... получаем из опции номер рубрики ...

... формируем имя main-файла в $fn ...

require($fn);

... если файла нет, то подключать дефолтный main.php ...

G1yyK
Сообщений: 7
Зарегистрирован: 06 дек 2012, 13:11

Re: Шаблоны вывода для отдельной категории

Сообщение G1yyK » 21 май 2013, 18:13

Спасибо Максим. Все получилось и решение изящное.


Вернуться в «PHP»

Кто сейчас на форуме

Пользователь просматривает форум: нет зарегистрированных пользователей

cron