Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 32 Ответов
  • 6357 Просмотров
*

RedQeen

  • Новичок
  • 2
  • 0 / 0
Пункту меню необходимо задать совершенно другое отображение сайта (другой HTML, css).
Альтернативные макеты как я понял способны менять шаблон только какого то элемента, но не могут изменить всю страницу. Может кто-нибудь знает как изменить всю страницу для пункта меню.
На ум приходить отображать с помощью другого шаблона сайта, но это явно не вариант, ибо если мне нужно задать другой HTML для 30 пунктов меню создавать дополнительно 30 полноценных шаблонов сайта это вообще плохо.
Еще на ум пришло код частями выводит с помощью модулей и модулям ставить где отображать код - пока это вариант более менее приемлем, однако хотелось бы иметь возможность одним файлом HTML менять оформление страницы.
« Последнее редактирование: 04.06.2013, 16:49:13 от RedQeen »
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: Другой шаблон для пункта меню
« Ответ #1 : 04.06.2013, 16:59:29 »
Переименовываем index.php в  template.php
создаем новый файл в папке шаблона index.php с следующим содержимым
Код: php-brief
<?php
defined('_JEXEC') or die;

$Itemid = JFactory::getApplication()->input->getInt('Itemid',0);
if ( $Itemid == 0){
require_once __DIR__ .'/template.php';
} else {
if(JFile::exists(__DIR__ .'/template'.$Itemid.'.php')){
require_once __DIR__ .'/template'.$Itemid.'.php';
} else{
require_once __DIR__ .'/template.php';
}
}
?>
Теперь если нужно создать отдельный шаблон для меню с ид 100. Создайте в этой же папке файл template100.php - шаблон для этого меню. Или так  ^-^
Код: php-brief
<?php
defined('_JEXEC') or die;
$Itemid = JFactory::getApplication()->input->getInt('Itemid',0);
include __DIR__ .'/template'.(( $Itemid == 0 || !JFile::exists(__DIR__ ."/template".$Itemid.".php")? "": $Itemid).'.php';
?>
*

SmokerMan

  • Гуру
  • 5293
  • 720 / 26
Re: Другой шаблон для пункта меню
« Ответ #2 : 04.06.2013, 17:03:25 »
изначальный шаблон - index.php
В нем вверху можно прописать условие на проверку пункта меню (Itemid) и в зависимости от него инклудить и выводить другой файл
Таким образом не надо делать шаблоны, достаточно разных разметок (*.php файлов) в корне шаблона

опередили)
*

RedQeen

  • Новичок
  • 2
  • 0 / 0
Re: Другой шаблон для пункта меню
« Ответ #3 : 04.06.2013, 17:27:04 »
Большое спасибо, то что надо.
толко тут ругается
Код
(JFile::exists(__DIR__ .'/template'.$Itemid.'.php') {

Был бы очень признателен если дадите ссылку на документацию по функциям, переменным и тд Joomla на русском языке ибо я как ни искал но на русском ничего толкового не нашел (все ссылаются на офф документацию)
« Последнее редактирование: 04.06.2013, 17:41:15 от RedQeen »
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: Другой шаблон для пункта меню
« Ответ #4 : 04.06.2013, 17:47:31 »
Скобку пропустил, поправил. Самая лучшая документация исходный код. Или на блогах читайте
*

Aurika

  • Захожу иногда
  • 72
  • 1 / 0
Re: Другой шаблон для пункта меню
« Ответ #5 : 19.06.2013, 16:05:47 »
Подскажите пожалуйста что -то у меня ничего не получилось.
Есть шаблон А и шаблон Б. А - установлен по умолчанию. Б нужно поставить например на 5 пунктов меню. Переименовала index.php шаблона Б в template.php и создала файл index.php с текстом из первого окна. Теперь мне нужно назначить для пункта меню в id 10 отображение шаблона Б. Создала template10.php с текстом из второго окна. Ничего не вышло. Тогда в этот файл поместила текст шаблона Б из файла template.php (который изначально был index.php) тоже толку ноль. Не отображается с этого меню шаблон Б. Подскажите пожалуйста, что я делаю не так?

Попробовала тоже самое сделать в папке шаблона А (переименовала, добавила index.php и template10.php с содержимым index.php из шаблона Б) но сайт просто выводит пустое окно и ошибку: Fatal error: Call to a member function getInt() on a non-object in X:\home\localhost\www\moscow\templates\bengal_ru\index.php on line 4
« Последнее редактирование: 19.06.2013, 16:24:29 от Aurika »
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: Другой шаблон для пункта меню
« Ответ #6 : 19.06.2013, 16:16:14 »
код файла template.php
Код: php-brief
<?php
die('A');
код файла template10.php
Код: php-brief
<?php
die('B');
Если вы просто копируете индексные файлы шаблонов которые в разных папках, то у вас не получится. Там ведь прописаны, пути и т.д. Данный вариант рассматривает как внутри одного шаблона, делать различные отображения. Используется один шаблон и его под шаблоны.
*

Aurika

  • Захожу иногда
  • 72
  • 1 / 0
Re: Другой шаблон для пункта меню
« Ответ #7 : 19.06.2013, 16:28:23 »
Да, у меня 4 разных шаблона для одного сайта (20 страниц по 5 на каждый шаблон) ((( Как же это сделать то не понимаю ((((((((( Стандартным способом просто назначить шаблону пункты меню не получается.
*

hagaiFD

  • Осваиваюсь на форуме
  • 34
  • 0 / 0
  • forum.mostaxi24.com
Re: Другой шаблон для пункта меню
« Ответ #8 : 29.09.2013, 14:07:16 »
Ничего не понимаю...
Что то не получается... совсем никак...
можно разжевать?...
*

pydix

  • Осваиваюсь на форуме
  • 34
  • 0 / 0
Re: Другой шаблон для пункта меню
« Ответ #9 : 18.01.2014, 16:11:37 »
Fedor Vlasenko, у меня решение работает на локалке, но на хостинге выдаёт:

Warning: require_once(__DIR__/template.php) [function.require-once]: failed to open stream: No such file or directory ...

Fatal error: require_once() [function.require]: Failed opening required '__DIR__/template.php' ...

В чём может быть причина?
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
*

pydix

  • Осваиваюсь на форуме
  • 34
  • 0 / 0
Re: Другой шаблон для пункта меню
« Ответ #11 : 18.01.2014, 17:57:18 »
Спасибо! Плюсик Вам.
*

Vasilij30

  • Захожу иногда
  • 143
  • 1 / 6
Re: Другой шаблон для пункта меню
« Ответ #12 : 27.02.2014, 14:43:17 »
Я вот тоже никак не разберусь. Индекс создал, он перенаправляет на template.php это работает. Создал второй файл разметки template112.php, как на него выйти чтоб он с определенного пункта меню отображался? Что то надо добавить в индекс? Или прописать путь в пункт меню?  Если не сложно пошагово подскажите пожалуйста.
Задача стоит в фиксированном  сайте создать страничку резиновую где будет выводиться форум.
В пункте меню прописан путь на форум
Цитировать
<div class="item-112">
         <a class="rollover2" href="/kunena/index"></a>
         </div>
и Важно чтобы форум при работе  не возвращался на template.php, только если другой пункт меню будет задействован
 Совсем забыл, дело в том что у меня всё меню прописанно в файле index.php
Цитировать
<div class="gor-menu">
        <div class="menu">
         <div class="item-101">
         <a class="rollover" href="/"></a>
           </div>
         <div class="item-112">
         <a class="rollover2" href="/kunena/index"></a>
         </div>
         <div class="item-113">
         <a class="rollover3" href="/video"></a>
         </div>
         <div class="item-114">
         <a class="rollover4 "href="/foto-gal"></a>
         </div>
         <div class="item-115">
         <a class="rollover5 "href="/kontakty"></a>
         </div>
         <div class="item-116">
         <a class="rollover6 "href="/otzyvy"></a>
         </div>
         </div></div>
« Последнее редактирование: 27.02.2014, 15:44:15 от Vasilij30 »
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: Другой шаблон для пункта меню
« Ответ #13 : 27.02.2014, 17:59:47 »
Код: php-brief
<?php
defined('_JEXEC') or die;
$Itemid = JFactory::getApplication()->input->getInt('Itemid',0);
 // Пункты у которых будет шаблон template1.php
$pageArr = array(102, 103, 104, 52, 124);
if (in_array($Itemid,  $pageArr){
require_once dirname(__FILE__).'/template1.php';
} else {
require_once dirname(__FILE__).'/template.php';
}
?>
еще один способ для нескольких меню
*

Vasilij30

  • Захожу иногда
  • 143
  • 1 / 6
Re: Другой шаблон для пункта меню
« Ответ #14 : 27.02.2014, 18:05:27 »
Простите дурака но опять непонятно, меняю в индексе а далее? что мне еще поменять? чтоб шло перенаправление, в самом меню надо ссылку менять?
вот сайт www.ramtamada.ru Мне только один пункт форум нужно сделать с другой разметкой, но у меня в индексе родном прописан путь к форуму руками
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: Другой шаблон для пункта меню
« Ответ #15 : 27.02.2014, 18:22:39 »
еще раз код index.php
Код: php-brief
<?php
defined('_JEXEC') or die;
$Itemid = JFactory::getApplication()->input->getInt('Itemid',0);
//Здесь меню с ид = 100. Замените на нужное ид, смотреть в админ панели ид меню
require_once dirname(__FILE__).'/template'.($Itemid == 100 ? 1: '').'.php';
?>
файлы template.php и template1.php ваши шаблоны
*

Vasilij30

  • Захожу иногда
  • 143
  • 1 / 6
Re: Другой шаблон для пункта меню
« Ответ #16 : 27.02.2014, 20:27:08 »
Код: php-brief
<?php
defined('_JEXEC') or die;
$Itemid = JFactory::getApplication()->input->getInt('Itemid',0);
 // Пункты у которых будет шаблон template1.php
$pageArr = array(102, 103, 104, 52, 124);
if (in_array($Itemid,  $pageArr){
require_once dirname(__FILE__).'/template1.php';
} else {
require_once dirname(__FILE__).'/template.php';
}
?>
еще один способ для нескольких меню

тут скобочки нехватает
*

Vasilij30

  • Захожу иногда
  • 143
  • 1 / 6
Re: Другой шаблон для пункта меню
« Ответ #17 : 27.02.2014, 20:51:58 »
всё работает если это меню и имеет id, но вот что сделать если у меня картинка с прямой ссылкой на индекс форума
Цитировать
<div class="item-112">
         <a class="rollover2" href="/kunena/index"></a>
         </div>
item-112  тут роли не играет
Как вывести на template1.php прямой ссылкой?
Дело в том что у форума своё собственное меню, и неполучается его привязать к основному
« Последнее редактирование: 27.02.2014, 21:21:47 от Vasilij30 »
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: Другой шаблон для пункта меню
« Ответ #18 : 27.02.2014, 22:35:08 »
Код: php-brief
<?php
defined('_JEXEC') or die;
$Itemid = JFactory::getApplication()->input->getInt('Itemid',0);
 // Пункты у которых будет шаблон template1.php
$pageArr = array(102, 103, 104, 52, 124);
if (in_array($Itemid,  $pageArr) || $_SERVER['REQUEST_URI'] == "/kunena/index"){
require_once dirname(__FILE__).'/template1.php';
} else {
require_once dirname(__FILE__).'/template.php';
}
?>
*

Vasilij30

  • Захожу иногда
  • 143
  • 1 / 6
Re: Другой шаблон для пункта меню
« Ответ #19 : 27.02.2014, 23:14:09 »
Вроде получилось так! Огромной спасибо!

А например такойже код но 2 или три доп шаблона разметки?
плюс template2.php или template3.php

как он правильно должен выглядеть?
дело в том что у форума есть свои пункты меню, и если нажать любой пункт он возвращает в исходную, тоесть на template.php
« Последнее редактирование: 27.02.2014, 23:53:12 от Vasilij30 »
*

Vasilij30

  • Захожу иногда
  • 143
  • 1 / 6
Re: Другой шаблон для пункта меню
« Ответ #21 : 28.02.2014, 04:08:40 »
посмотрите на эту тему     
Различные условия в шаблонах Joomla 3.0 и 2.5
Там есть примеры синтаксиса

я почитал, но так как в php пока полный ноль, прошу помощи добить задачу, осталось ведь чуть чуть, сделать так, чтоб пункты меню самого форума (стандартные: Оглавление, Последнее, Поиск, Новая тема, Помощь и т.д.) невозвращали на основной шаблон template.php а выводились template1.php где и весь форум. Когда открываешь разделы и темы все нормик. Заранее спасибо..И так очень помогли, уже есть результат.
« Последнее редактирование: 28.02.2014, 04:14:01 от Vasilij30 »
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: Другой шаблон для пункта меню
« Ответ #22 : 28.02.2014, 12:39:31 »
Код: php-brief
<?php
defined('_JEXEC') or die;
$isKunena = JFactory::getApplication()->input->get('option', '') == 'com_kunena';
require_once dirname(__FILE__).'/template'.($isKunena ? '1': '').'.php';
?>
*

Vasilij30

  • Захожу иногда
  • 143
  • 1 / 6
Re: Другой шаблон для пункта меню
« Ответ #23 : 23.09.2014, 20:56:28 »
вернусь к этой теме, хочется узнать а можно ли сделать так, чтоб шаблоны переключались селекторами допустим:

1 кнопка 1 шаблона (template.php) ---меню №1--только 1 шаблон
2 кнопка 2 шаблона (template2.php)---  меню №2--только 2 шаблон

а переключались друг на друга только 1 и 2 кнопками. Менюшки разные.Одна меню форума другая доски обьявлений, и не при каких условиях не переключались сами .
« Последнее редактирование: 23.09.2014, 21:38:37 от Vasilij30 »
*

Vasilij30

  • Захожу иногда
  • 143
  • 1 / 6
Re: Другой шаблон для пункта меню
« Ответ #25 : 23.09.2014, 23:15:39 »
Код: html4strict
<form id="vid" name="vid" action="<?php echo JURI::getInstance()->tostring();?>" method="post">
<input type="submit" value="1" name="variant1">
<input type="submit" value="2" name="variant2">
</form>
Код: php-brief
<?php
$variant1 = JRequest::getVar('variant1', '');
$variant2 = JRequest::getVar('variant2', '');
$session =& JFactory::getSession();
if ($variant1) $session->set("variant", $variant1);
if ($variant2) $session->set("variant", $variant2);
$variant = $session->get("variant", 1);
if ($variant ==1  ) {
echo $tpl->fetch( 'browse/includes/browse_notables.tpl.php' ) ;
} else {
echo $tpl->fetch( 'browse/includes/browse_listtable.tpl.php' );
}
?>
Фёдор, бльшая просьба для полного неуча. что куда и как, комментарии...
*

Vasilij30

  • Захожу иногда
  • 143
  • 1 / 6
Re: Другой шаблон для пункта меню
« Ответ #26 : 23.09.2014, 23:21:18 »
вот есть один index.php  и два файла разметки, template.php template2.php

это кнопка
<form id="vid" name="vid" action="<?php echo JURI::getInstance()->tostring();?>" method="post">
<input type="submit" value="1" name="variant1">
<input type="submit" value="2" name="variant2">
</form>

её вставлять в оба template.php template2.php ?
*

Fedor Vlasenko

  • Живу я здесь
  • 3845
  • 733 / 7
  • https://fedor-vlasenko.web.app
Re: Другой шаблон для пункта меню
« Ответ #27 : 23.09.2014, 23:24:38 »
да,  и подключения файлов также. Только переделайте включение файлов под свои нужды. Лучше используйте include или require (без once) они быстрее будут.
*

Vasilij30

  • Захожу иногда
  • 143
  • 1 / 6
Re: Другой шаблон для пункта меню
« Ответ #28 : 23.09.2014, 23:28:58 »
да,  и подключения файлов также. Только переделайте включение файлов под свои нужды. Лучше используйте include или require (без once) они быстрее будут.
не понял.. ... include или require (без once)  это как ? в этом я непонимаю ((((((
*

Vasilij30

  • Захожу иногда
  • 143
  • 1 / 6
Re: Другой шаблон для пункта меню
« Ответ #29 : 23.09.2014, 23:53:18 »
выдаёт ошибку видимо с путями что то не так
Цитировать
echo $tpl->fetch( 'template.php' ) ;
} else {
echo $tpl->fetch( 'template2.php' );
}
?>
лежат в корне стандартно

мне бы готовый код чтоб вставить в индекс, я реально в php непонимаю
« Последнее редактирование: 23.09.2014, 23:57:34 от Vasilij30 »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Назначение макета, посредством ссылки в меню

Автор xxxLOGIATxxx

Ответов: 20
Просмотров: 4849
Последний ответ 04.02.2022, 14:44:14
от hoi
Съезжает меню при наведении

Автор yyyuuu

Ответов: 4
Просмотров: 2050
Последний ответ 08.12.2020, 11:12:32
от AlexB
Как сделать свой шаблон quickstart?

Автор saiskyi

Ответов: 3
Просмотров: 5151
Последний ответ 19.02.2020, 19:29:01
от Bozhkov2
Проблемы в горизонтальном меню Joomla 2.5

Автор Димьяна

Ответов: 1
Просмотров: 2424
Последний ответ 27.11.2018, 14:58:30
от Ragivort
Как настроить шаблон?

Автор tromba

Ответов: 2
Просмотров: 2873
Последний ответ 15.08.2018, 15:29:56
от tromba