- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
В 2023 году 36,9% всех DDoS-атак пришлось на сферу финансов
А 24,9% – на сегмент электронной коммерции
Оксана Мамчуева
Переиграть и победить: как анализировать конкурентов для продвижения сайта
С помощью Ahrefs
Александр Шестаков
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Хочется сделать для разных категорий сайта индивидуальные шаблоны main.tpl, cейчас я просто использую разные папки с шаблонами, то есть в папке templates находятся папки cat1, cat2, cat3, это не совсем удобно, хочется просто иметь один шаблон например cat1 и чтобы в нём уже были различные файлы main.tpl: main.tpl, cat2_main.tpl, cat3_main.tpl
на просторах интернета нашёл несколько способов реализации и мне нужно знать какой является наиболее оптимальным:
1-й способ
в index.php
Вместо:
$tpl->load_template ( 'main.tpl' );
прописать:
$f_ = ($newsid !== 0) ? //Если вывод конкретной новости в полном формате
'main_' . $cat_info[$category_id]['alt_name'] . '.tpl' : //То берем ее шаблон
(($do == 'cat') ? 'main_' . $category . '.tpl' : 'main.tpl' ); //Если вывод категории, то берем ее шаблон, иначе - основной
if (file_exists(TEMPLATE_DIR . '/'. $f_)) { //Есть файл шаблона для конкретной категории
$catTemplate = $f_;
}else{//Нет файла шаблона для конкретной категории, припишем родительский шаблон (если у нас ПОДкатегория)
$parentid_ = $cat_info[$category_id]['parentid'];
$alt_name_cat_ = $cat_info[$parentid_]['alt_name'];
while (isset($alt_name_cat_)) //Есть имя, т.е. не вамый верх!
{
if (isset ($alt_name_cat_)&file_exists(TEMPLATE_DIR . '/'. 'main_' . $alt_name_cat_ . '.tpl')) {
$catTemplate = 'main_' . $alt_name_cat_ . '.tpl';
break;
}else{
$parentid_ = $cat_info[$parentid_]['parentid'];
$alt_name_cat_ = $cat_info[$parentid_]['alt_name'];
}
}
}
$catTemplate = isset ($catTemplate)&&(file_exists(TEMPLATE_DIR . '/'. $catTemplate)) ? $catTemplate : 'main.tpl'; //Проверим присутствие файла шаблона
$tpl->load_template ( $catTemplate );
Персональный шаблон для категории должен находиться в папке шаблона и иметь имя: main_cat.tpl, где cat - url категории.
2-й способ
немного другой код
в index.php
Вместо:
$tpl->load_template ( 'main.tpl' );
прописать:
$catTemplate = ($do == 'cat') ? $category.'_' : '';
if (file_exists(TEMPLATE_DIR . '/'. $catTemplate.'main.tpl')) {
$tpl->load_template ( $catTemplate.'main.tpl' );
} else {
$tpl->load_template ( 'main.tpl' );
}
оптимизированный код:
$f_ = 'main_' . $category . '.tpl';
$catTemplate = ($do == 'cat')&(file_exists(TEMPLATE_DIR . '/'. $f_)) ? $f_ : 'main.tpl';
$tpl->load_template ( $catTemplate );
и для каждой категори файл шаблона должен быть вида cat_main.tpl, где cat - url категории
3-й способ:
Создаем копию main.tpl с именем main_main.tpl.
В main.tpl вставляем:
[not-category=6,7,8,9,10]{include file="main_main.tpl"}[/not-category]
[category=6]{include file="main_6.tpl"}[/category]
[category=7]{include file="main_7.tpl"}[/category]
[category=8]{include file="main_8.tpl"}[/category]
[category=9]{include file="main_9.tpl"}[/category]
[category=10]{include file="main_10.tpl"}[/category]
4-й способ:
Оставить всё как есть, то есть для каждой категории свой отдельный шаблон
Интересует какой из способов более правильный, более быстрый, менее всего грузит базу данных
Для категории можно задавать шаблон в самой категории (.ru/admin.php?mod=categories&action=edit)
Там в самом низу можно задавать нужный шаблон.
Лично я поступаю таким образом + 3 способ.
Для примера смотрите главную страницу http://w9y.ru/
А теперь посмотрите категорию wordpress темы http://w9y.ru/wordpress/templ/
http://dle-news.ru/tips/340-ispolzovanie-razlichnykh-shablonov-dlja-razdelov.html