Забыли пароль?
Запросите новый здесь.

Автор темы: Redfield
ID темы: 1149
Информация:
Тема содержит 16 сообщения, была просмотрена 5528 раз.  Имеются прикрепленные файлы.
Просмотр темы
PHP-Fusion Russia » Поддержка 7 версии » Моды
 Распечатать тему
Разные шаблоны для разных страниц?
Redfield
мне нужна помощь специалиста. хочу сделать так, чтобы на разных страницах отображались разные шаблоны. например: заходишь на сайт.ру/start.php - автоматически грузится шаблон для этой страниц "Шаблон №1", заходишь на страницу: сайт.ру/ura.php - автоматически загружается по тематике "Шаблон №2". Пожалуйста, подскажите как можно осуществить такую задумку.
Переключатель Шаблонов не интересует. Готов заплатить за код в страницу, который будет ставить нужный шаблон. версия 7.2
аська (243-933-519)
 
Web
Alex
заходим на фтп вашего сайта и в папке используемой темы копируем файлы styles.css и theme.php и заливаем их в папку используемой темы под именами styles2.css и theme2.php

далее копируем файл themes/templates/header.php и заливаем его в ту же папку но под именем header2.php

далее в файле header2.php находим строку:
Скачать исходники  Код
require_once THEME."theme.php";




и меняем на:
Скачать исходники  Код
require_once THEME."theme2.php";




находим строку:
Скачать исходники  Код
echo "<link rel='stylesheet' href='".THEME."styles.css' type='text/css' media='screen' />\n";




и меняем ее на:
Скачать исходники  Код
echo "<link rel='stylesheet' href='".THEME."styles2.css' type='text/css' media='screen' />\n";




далее берем например страницу contact.php открываем и прописываем новый хедер
было так:
Скачать исходники  Код
require_once THEMES."templates/header.php";




меняем на:
Скачать исходники  Код
require_once THEMES."templates/header2.php";




и теперь дизайн страницы contact.php зависит от файлов styles2.css и theme2.php их и правим по своему желанию и хотению

пример того что это работает тут

и так можно с любым разделом


удачи
x1
 
Web
jikaka
вроде обсуждали этот момент

вкратце суть такая
в одну тему складываешь файлы theme.php и styles.css от разных тем, соответственно, с картинками от этих тем
ну и не забываем их переименовать, чтобы было понятно
хотя бы theme1.php, theme2.php и т.д.
также дублируешь файлы themes/templates/header.php
делаешь в них вызов именно нужных файлов theme.php и styles.css

ну и после в файлах сайт.ру/start.php и сайт.ру/ura.php подключаешь свои файлы, прописывая вкоде

update:
ответил сначала в одной теме, не заметив другую

в общем верхний пост подробно изъяснил, спасибо Alex
 
Web
Polarfox
Так сложно, а почему нельзя просто поменять константу темы? Одна правка в ядре.

Но решать не мне.
Всегда делайте backup перед изменениями | Указывайте свою версию в подписи/профиле.
Ежели кто забанен за спам, но не считает себя ботом: можете сообщить мне об этом, все будет хорошо.

PolarLab - вход для подопытных
x1
 
Web
jikaka
кстати, хорошая мысль
 
Web
Redfield
Благодарю вас! Вы просто волшебник! Очень помог ваш способ!
Ребята вы мне все очень помогли! Работает!
Могу быть вам чем-нибудь полезен?
 
Web
Redfield
Еще бы сделать подобное с горизонтальным меню сайта на разных страницах. Было бы здорово
 
Web
Redfield
еще вопрос ко всем вам, уважаемые. можно сделать как-нибудь, чтобы новости на разных страницах были по темам?
 
Web
Alex
Redfield написал:

еще вопрос ко всем вам, уважаемые. можно сделать как-нибудь, чтобы новости на разных страницах были по темам?


у каждой категории новостей своя страница?
 
Web
Redfield
Alex написал:

Redfield написал:

еще вопрос ко всем вам, уважаемые. можно сделать как-нибудь, чтобы новости на разных страницах были по темам?


у каждой категории новостей своя страница?


да
на каждой странице новости только от определенной категории.
например horo.php - на ней все новости из категории "Гороскоп", а на странице auto.php - новости только из категории "Автомобили".
примерно так.
Изменил(а) Redfield, 16.12.2012 08:44
 
Web
Alex
тогда делаем так
копируем страницу news.php

и в новой странице
с 29 строки
Скачать исходники  Код
if (!isset($_GET['readmore']) || !isnum($_GET['readmore'])) {
   $rows = dbcount(
      "(news_id)",
      DB_NEWS,
      groupaccess('news_visibility')." AND (news_start='0'||news_start<=".time().")
      AND (news_end='0'||news_end>=".time().")
      AND news_draft='0'"
   );




добавляем вот это AND news_cat='1'

получаем:
Скачать исходники  Код
if (!isset($_GET['readmore']) || !isnum($_GET['readmore'])) {
   $rows = dbcount(
      "(news_id)",
      DB_NEWS,
      groupaccess('news_visibility')." AND (news_start='0'||news_start<=".time().") AND news_cat='1'
      AND (news_end='0'||news_end>=".time().")
      AND news_draft='0'"
   );




где news_cat='1' - id категории новостей

далее:
с 38 строки
Скачать исходники  Код
   if ($rows) {
      $result = dbquery(
         "SELECT tn.*, tc.*, tu.user_id, tu.user_name, tu.user_status
         FROM ".DB_NEWS." tn
         LEFT JOIN ".DB_USERS." tu ON tn.news_name=tu.user_id
         LEFT JOIN ".DB_NEWS_CATS." tc ON tn.news_cat=tc.news_cat_id
         WHERE ".groupaccess('news_visibility')." AND (news_start='0'||news_start<=".time().")
            AND (news_end='0'||news_end>=".time().") AND news_draft='0'
         GROUP BY news_id
         ORDER BY news_sticky DESC, news_datestamp DESC LIMIT ".$_GET['rowstart'].",".$items_per_page
      );




и опять же дописываем AND news_cat='1'
получаем:
Скачать исходники  Код
   if ($rows) {
      $result = dbquery(
         "SELECT tn.*, tc.*, tu.user_id, tu.user_name, tu.user_status
         FROM ".DB_NEWS." tn
         LEFT JOIN ".DB_USERS." tu ON tn.news_name=tu.user_id
         LEFT JOIN ".DB_NEWS_CATS." tc ON tn.news_cat=tc.news_cat_id
         WHERE ".groupaccess('news_visibility')." AND (news_start='0'||news_start<=".time().") AND news_cat='1'
            AND (news_end='0'||news_end>=".time().") AND news_draft='0'
         GROUP BY news_id
         ORDER BY news_sticky DESC, news_datestamp DESC LIMIT ".$_GET['rowstart'].",".$items_per_page
      );




где news_cat='1' - id категории новостей

http://kalina2.ru/ вот здесь на главной странице так же сделано
 
Web
Alex
при добавлении новостей из одной категории на отдельную страницу остается проблема с кнопкой "читать полностью" при клике будет переходить на исходный файл news.php

решение:
открываем файл theme.php используемой вами темы, находим функцию render_news

Скачать исходники  Код
function render_news($subject, $news, $info) {
global $locale, $settings, $aidlink;

set_image("edit", THEME."images/icons/news_edit.png");
   
   echo "<div class='capmain-news floatfix'>\n";
   echo "<div class='flleft' style='font-size:14px;'>".$subject."</div>\n";
if (iADMIN && checkrights("N")) {
   echo "<div class='flright clearfix' style='padding-right: 13px;'>\n";
    echo "<a href='".ADMIN."news.php".$aidlink."&amp;action=edit&amp;news_id=".$info['news_id']."'><img src='".get_image("edit")."' alt='".$locale['global_076']."' title='".$locale['global_076']."' /></a>\n";
   echo "</div>\n"; }
   echo "</div>\n";
   echo "<div class='spacer'>\n";
   echo "<div class='news_info middle-border floatfix'>\n";
   echo "<ul>\n";
   echo "<li class='print'><a href='".BASEDIR."print.php?type=N&amp;item_id=".$info['news_id']."'><span>".$locale['global_075']."</span></a></li>\n";
   echo "<li class='date'>".showdate("%d %b %Y", $info['news_date'])."</li>\n";
   echo "<li class='author'>".profile_link($info['user_id'], $info['user_name'], $info['user_status'])."</li>\n";
if ($info['cat_id']) { echo "<li class='cat'><a href='".BASEDIR."news_cats.php?cat_id=".$info['cat_id']."'>".$info['cat_name']."</a></li>\n";
   } else { echo "<li class='cat'><a href='".BASEDIR."news_cats.php?cat_id=0'>".$locale['global_080']."</a></li>\n"; }
if ($info['news_ext'] == "y" || ($info['news_allow_comments'] && $settings['comments_enabled'] == "1")) {
    echo "<li class='reads'>".$info['news_reads'].$locale['global_074']."</li>\n"; }
if ($info['news_allow_comments'] && $settings['comments_enabled'] == "1") {
    echo "<li class='comments'><a href='".BASEDIR."news.php?readmore=".$info['news_id']."#comments'>".$info['news_comments'].($info['news_comments'] == 1 ? $locale['global_073b'] : $locale['global_073'])."</a></li>\n"; }
   echo "</ul>\n";
    echo "</div>\n";
   echo "<div class='main-body floatfix'>\n";
if ($info['news_sticky'] == "1") {
   echo "<div style='position:absolute; padding-top:3px;'><img src='".THEME."images/icons/sticky.png' alt='sticky' width='41px' border='0' height='41px' /></div>";
   }
   echo $info['cat_image'].$news."<br />\n";
if (!isset($_GET['readmore']) && $info['news_ext'] == "y") {
   echo "<div class='flright'>\n";
   echo "<a href='".BASEDIR."news.php?readmore=".$info['news_id']."' class='button'><span class='rightarrow icon'></span>".$locale['global_072']."</a>\n";
   echo "</div>\n";
}
   echo "</div>\n";
   echo "</div>\n";
}




и вставляем это перед function render_article

но называем скопированное уже по своему я назвал function render_news_vaz

и везде где в этой функции news.php?readmore заменяем на свой адрес страницы вот как у меня news_vaz.php?readmore, там вроде в 2 местах надо сменить.

далее в скопированном файле новостей находим render_news и меняем на то название которое указали в файле темы

так же сделал у себя kalina2.ru/news.php
 
Web
Redfield
А можно сделать так, чтобы при переходе на XXX.php просто сменился шаблон для всех страниц?
 
Web
mishqa35
Оффтопик можно сделать что то типа переключателя тем, общую функцию и в нужном файле переключать шаблон, теоретически bw

 
Web
Alex
mishqa35 написал:

Оффтопик можно сделать что то типа переключателя тем, общую функцию и в нужном файле переключать шаблон, теоретически bw


есть панелька переключатель тем, от туда взять скрипт впихнуть в страницу, и при посещении страницы темка переключалась бы, знал бы как сделать сделал бы а так тока теория


кстати панелька работает отлично, прикрепил ее в аттач
Alex присоединено следующее:файл:
theme_switcher_11.zip [12.23кБ / 301 Загрузки]
 
Web
mishqa35
Так не выйдет, панель просто меняет значение поля user_theme в базе, когда ты выбрал нужную тему из списка, скрипт заносит в базу название темы и уже после перезагрузки на новой странице ты видишь тему которую выбрал

themes\templates\switcher.php вот класс для работы с темками вроде, сегодня уже нет времени смотреть за что он отвечает и как работает
 
Web

Поделиться этой темой
Социальные закладки: Vkontakte Odnoklassniki Mail.ru Facebook Google Tweet This
URL:
BBcode:
HTML:

Перейти на форум:
Похожие темы
Темы Форум Ответов / Просмотров Последние сообщения
Bogatyr - бесплатный сборник плагинов и модов для PHP-Fusion 7.00 (можно 7.01)  →  Моды 5 / 271 21.11.2017 17:14
Посоветуйте как можно больше дешёвых хостингов для лендингов  →  Хостинг 3 / 465 30.09.2017 18:44
Видео плагин для php fusion 7.01.xx  →  Плагины 42 / 16991 21.08.2017 19:49
Как правильно загрузить свой шрифт в css для всех браузеров?  →  Темы оформления 7 версии 12 / 4787 04.08.2017 10:06
Подскажите хостинг для форума на vBulletin  →  Хостинг 5 / 2691 01.08.2017 08:23
Фермы для майнинга криптовалюты  →  Реклама на портале 1 / 398 07.07.2017 06:20
С какой CMS легче всего тырить темы для PHP-Fusion?  →  Темы оформления 7 версии 0 / 2384 11.06.2017 10:01
Нужна платная тема для движка v7.02.07  →  Платные услуги 1 / 409 05.06.2017 06:02
Для каждой доп страницы свой текст в шапке  →  Народное творчество 8 / 6205 14.04.2017 21:02
Ищем крупные проекты для сотрудничества в Украине.  →  Хостинг 0 / 1003 29.11.2016 17:56
Топ 5 пользователей форума
Alex Alex (1,171)   Zaxap Zaxap (1,078)   Vova Vova (877)   Pisatel Pisatel (678)   util util (666)