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

Автор темы: Redfield
ID темы: 1149
Информация:
Тема содержит 20 сообщения, была просмотрена 10156 раз.  Имеются прикрепленные файлы.
Просмотр темы
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 перед изменениями | Указывайте свою версию в подписи/профиле. | Вся бесплатная тех. поддержка только на форуме
x1
 
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кБ / 581 Загрузки]
 
Web
mishqa35
Так не выйдет, панель просто меняет значение поля user_theme в базе, когда ты выбрал нужную тему из списка, скрипт заносит в базу название темы и уже после перезагрузки на новой странице ты видишь тему которую выбрал

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


 
Web
Redfield
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
Polarfox


Всегда делайте backup перед изменениями | Указывайте свою версию в подписи/профиле. | Вся бесплатная тех. поддержка только на форуме
 
Redfield


Да, но только файл new_cats.php оставить в оригинале. надо чтобы для news.php оставался оригинальный дизайн. Решение уже сделано. Еще вопрос, можете подсказать плагин для создания самого простого меню?

 
Web
Polarfox
на семерке есть две панели меню (обычное + со стилем) и верхнее, обычно в теме.
это самое простое, или нет?


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

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

Перейти на форум:
Похожие темы
Темы Форум Ответов / Просмотров Последние сообщения
SharkBoss - партнёрская программа для монетизации ЛЮБЫХ видов трафика (включая спам).  →  Реклама на портале 0 / 536 28.03.2024 07:49
Proxy5 - Отличные IPv4 прокси для любых задач (Бесплатный тест)  →  Платные услуги 0 / 1485 31.10.2023 09:47
Где взять список районов по областям для разных стран?  →  Пожелания и предложения 0 / 1538 10.08.2023 12:44
От какой CMS лучше переделывать плагины сервисов оплаты, доставки, 1С для PHP-Fusion-7?  →  Пожелания и предложения 2 / 1592 08.08.2023 08:59
Посоветуйте плагины для назначения прав админов и групп пользователей  →  Пожелания и предложения 0 / 3154 06.06.2022 11:52
Бот для поиска чужих файлов на Dropmefiles.com  →  Реклама на портале 1 / 942 11.03.2022 05:28
Zinsta - Программа для раскрутки и продвижения instagram  →  Флуд 12 / 6943 15.01.2022 10:47
Версия для слабовидящих Button visually impaired  →  Javascript, ajax, jquery 1 / 1847 04.01.2022 10:44
ЧПУ Дополнительных страниц для PHP-Fusion 8  →  Разное 8 / 6129 26.10.2020 18:42
Для каждой доп страницы свой текст в шапке  →  Народное творчество 21 / 17144 14.10.2020 09:55
Топ 5 пользователей форума
Zaxap Zaxap (1,090)   Vova Vova (877)   Pisatel Pisatel (678)   util util (666)   SchreiBear SchreiBear (625)