Форум русской поддержки Joomla!® CMS
10.12.2016, 22:35:20 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

loadTemplate('xxxx'); - Как слепить один код для несколких модулей?

 (Прочитано 452 раз)
0 Пользователей и 1 Гость смотрят эту тему.
pavelrer
Давно я тут
****

Репутация: +4/-0
Offline Offline

Сообщений: 262


« : 29.06.2016, 23:07:13 »

Доброго!

Рубяты подмогите пожалуйста.
Задача такая есть магаз j3 v3 - есть модуть vтовары - там новинки, рекомендованные и.т.д, есть категории с карточками товаров и еще есть сопутств товары.

Задача такая сделать одну разметку для всех в одном файле.
Я не спец - че на зыркал то и пользую, нашел такую штуку какload Template('xxxx'); но как прописаь правильно путь xxx не пойму?

Ну и второй вопрс, как узнать какой модуль вызывает? тут думаю понятно для чего!

Спасбо!
« Последнее редактирование: 29.06.2016, 23:14:57 от pavelrer » Записан
Shustry
Группа развития
*****

Репутация: +727/-3
Offline Offline

Пол: Мужской
Сообщений: 6667


Рисую дизайны


« Ответ #1 : 30.06.2016, 00:17:26 »

В той же директории лежит. ИмяФайла_ИмяПодшаблона. Например, если в default.php у вас loadTemplate('item'), то будет подгружаться файл default_item.php
Записан
pavelrer
Давно я тут
****

Репутация: +4/-0
Offline Offline

Сообщений: 262


« Ответ #2 : 30.06.2016, 04:08:41 »

Ну вринципи это я понял, а ежли не от корня, т.е от самого коренного корня ../
типа в cmd ..
ты в корне и пошел с любой директории а в php как правильно?
еще раз один php лежит в модулях, другой в шаблонах, третий в компонементах ах ах
но все они должны подсосать один и тот же php
как правильно писать путь ?

Cgfcb,j!Спасибо!
Записан
pavelrer
Давно я тут
****

Репутация: +4/-0
Offline Offline

Сообщений: 262


« Ответ #3 : 30.06.2016, 04:16:02 »

А как с этим быть?

Ну и второй вопрс, как узнать какой модуль вызывает? тут думаю понятно для чего!

Есть идеи? как че почему,?! Разметка разметкой но контент через иф как-то надо думаю!

Спасибо!
Записан
Shustry
Группа развития
*****

Репутация: +727/-3
Offline Offline

Пол: Мужской
Сообщений: 6667


Рисую дизайны


« Ответ #4 : 30.06.2016, 19:54:33 »

Я ничего не понял.
Записан
pavelrer
Давно я тут
****

Репутация: +4/-0
Offline Offline

Сообщений: 262


« Ответ #5 : 30.06.2016, 20:44:09 »

loadTemplate('item')

Как я понял при этом вызове браться будет отедова default.item.php

если так

loadTemplate('image')

то от седа default.image.php

Ну а как-то так работать будет loadTemplate('домен/папка1/папка2/default.image.php')
Как такой вид сделать?

Спасибо!
Записан
pavelrer
Давно я тут
****

Репутация: +4/-0
Offline Offline

Сообщений: 262


« Ответ #6 : 30.06.2016, 20:59:01 »

Ой извиняюсь. Вопрос решился сам-собой.

require_once(dirname(__FILE__). '/php/vm_product_code.php');
Записан
fbr
Живу я здесь
******

Репутация: +136/-6
Online Online

Сообщений: 1251


« Ответ #7 : 30.06.2016, 21:08:05 »

Можно попробовать так:

loadTemplate('image')

Код
//Содержимое файла default_image.php
require_once JPATH_SITE.'омен\папка1\папка2\ ...';

пока писал - сами решили Azn
Записан
pavelrer
Давно я тут
****

Репутация: +4/-0
Offline Offline

Сообщений: 262


« Ответ #8 : 30.06.2016, 21:25:02 »

Спасибо! Я в первый раз  Grin
Пришлось смотреть как вирусы туда сюда ходят  Grin


Переделал так а то выполняется только один раз.

require(dirname(__FILE__). '/php/vm_product_code.php');
Записан
Shustry
Группа развития
*****

Репутация: +727/-3
Offline Offline

Пол: Мужской
Сообщений: 6667


Рисую дизайны


« Ответ #9 : 01.07.2016, 00:01:46 »

Тогда уж так
Код
require(JURI::base().'vm_product_code.php');
 
Записан
pavelrer
Давно я тут
****

Репутация: +4/-0
Offline Offline

Сообщений: 262


« Ответ #10 : 01.07.2016, 12:45:56 »

Большое спасибо!

Еще один маленький вопросик.

Что я пытался сделать - Есть модуль vm - товары и vm - категории которые отвечают за новинки, избранные и.т.д
Разметка одинаковая, я просто ее вынес в один файл php, получил разметку которую можно двигать для мобильной версии одну но для двух задач, ну и
естественно выкинул кучу не нужного CSS.

Все хорошо, но под эту дудку, решил к этому всему добавить еще два вывода.
1. VM - сопутствующие товары - Тут у меня совсем тупик приключился Grin
   com_virtuemart/sublayouts/customfields.php
   если я меняю хоть один стиль, то меняется еще и стиль у дополнительных полей, что сопутствующие товары это то же дополнительное поле я понял,
   но как быть, не понимаю.
   Строка <?php echo $field->display ?> - выводит картинку и название товара - что с этим делать, как сверстать, что где менять, если выше или ниже этой строки что-то
   пытаюсь вывести, - выводиться но, выводится еще и в дополнительные поля! Печалька! Что делать-то?

2. Как в моем чудесном vm_product_code.php узнать какой модуль его вызвал (ну или так "где я нахожусь")?

Спасибо!


Записан
pavelrer
Давно я тут
****

Репутация: +4/-0
Offline Offline

Сообщений: 262


« Ответ #11 : 01.07.2016, 13:13:16 »

Вопрос 1 решен - https://joomla-zone.ru/forum/jz-jlite-internet-magazin-joomla-3-virtuemart-3-na-russkom-yazyke/658-model-vyvoda-soputstvuyushchikh-tovarov#4243

Осталось только: Как в моем чудесном vm_product_code.php узнать какой модуль его вызвал (ну или так "где я нахожусь")?

Спасибо!
Записан
Shustry
Группа развития
*****

Репутация: +727/-3
Offline Offline

Пол: Мужской
Сообщений: 6667


Рисую дизайны


« Ответ #12 : 01.07.2016, 20:23:46 »

Например так JURI::getInstance()->toString();
Записан
pavelrer
Давно я тут
****

Репутация: +4/-0
Offline Offline

Сообщений: 262


« Ответ #13 : 01.07.2016, 22:41:54 »

Спасибо!

Но это вернет мне url, а он мне ни чего не даст.

Глобальная переменная наверно должна решить мою задачу.
Записан
robert
Профи
********

Репутация: +344/-11
Offline Offline

Пол: Мужской
Сообщений: 3595


« Ответ #14 : 02.07.2016, 11:42:07 »

Не очень понятно, что значит
какой модуль его вызвал (ну или так "где я нахожусь")?
Об'ясните "на пальцах", что вы хотите делать.
Записан
pavelrer
Давно я тут
****

Репутация: +4/-0
Offline Offline

Сообщений: 262


« Ответ #15 : 02.07.2016, 13:46:03 »

Интернет магазин.

Есть список товаров в категории - Карточки.
Есть модулб vm-товары (рекомендуемые, новинки и.т.д) - Карточки
Есть vm-сопутствующие - Карточки.
Список категорий - Карточки.
Все это рисуется разными php файлами.

Все это дело подогнал под один стиль. Ну и разметка одинаковая.
Разметку сложил в файл vm_product_code.php
В каждый php файл подключаю vm_product_code.php.и вуаля - получили одну разметку, удобно ровнять при мобильной версии, выкинул 30кб CSS.
Но в разных php файлах, картинки, описание и т.д выводятся по разному, вот в этом-то и был вопрос.

Думаю создать группу переменных в vm_product_code.php и выводить однообразно.
А переменные эти будут заполняться уже php файлом который изначально отвечает за вывод карточек(списков) ну и соответственно вызывает vm_product_code.php.

Задача то проста это удобство тянуть в мобильную версию, и еще хочу CSS в моську HTML вывести, один для всего.
Собрав все CSS файлы в один, и все динамические CSS вставки которые делают модули, у меня получилось 250кб,
Все это отключил собрал в один файл пока сжал gzip. Вычистил от лишнего CSS только менюшки, получил 150кб.
Если натяну на 20кб попробую в моську HTML воткнуть посмотрю что получиться. Но если честно сократил CSS и js подключаемых файлов с 70 до 5 результат очень ощутимый!




Записан
Shustry
Группа развития
*****

Репутация: +727/-3
Offline Offline

Пол: Мужской
Сообщений: 6667


Рисую дизайны


« Ответ #16 : 02.07.2016, 15:05:17 »

Оверрайдом каждого модуля не проще сделать?
Записан
pavelrer
Давно я тут
****

Репутация: +4/-0
Offline Offline

Сообщений: 262


« Ответ #17 : 02.07.2016, 15:14:48 »

Еслиб я знал что это такое.
Записан
robert
Профи
********

Репутация: +344/-11
Offline Offline

Пол: Мужской
Сообщений: 3595


« Ответ #18 : 02.07.2016, 18:10:22 »

Сомневаюсь в целесообразности такого подхода: все равно нужно в каждом шаблоне подключить ваш файл.
Попробуйте так:
В каждом шаблоне, перед подключением vm_product_code.php, присваиваем некой переменной $some_var соответствующее уникальное значение:
1 - список товаров в категории
Код
$some_var='1';
2 - модулб vm-товары
Код
$some_var='2';
и т.д.
В самом vm_product_code.php уже делать проверку значения $some_var и выводить нужную разметку.
Записан
Shustry
Группа развития
*****

Репутация: +727/-3
Offline Offline

Пол: Мужской
Сообщений: 6667


Рисую дизайны


« Ответ #19 : 02.07.2016, 18:41:12 »

Копируем файлы из component_name/view/ в template_name/html/component_name, и переделываем как хочется.
Записан
pavelrer
Давно я тут
****

Репутация: +4/-0
Offline Offline

Сообщений: 262


« Ответ #20 : 04.07.2016, 10:08:05 »

Копируем файлы из component_name/view/ в template_name/html/component_name, и переделываем как хочется.
- Спасибо это я уже сделал, просто не знаю как по научному это называется  Smiley

В самом vm_product_code.php уже делать проверку значения $some_var и выводить нужную разметку.
- Спасибо, я именно так и сделаю, решения приходили в процессе обсуждения.

Все получилось как и задумывал.

Но появились еще парочку вопросов.

1. микроразметка - во что обернуть эти списки карточки. Впринципе у них схожое то что есть 1. Картинка, 2. Название, 3.Описание, 4.Производитель.
т.е это можно вытянуть в любом списке.
Пока обернул как объект картинка, может что-то более целесообразное есть - что-то типа список товаров, или что-то такое?

2. VM - Производитель. Страничка с описанием производителя, просто текст + картинка. Скучно. А можно как то в этой странички вывести или товары этого производителя, или категории? Гуглил-гуглил не нагуглил  Smiley . Можно конечно вывести VM-Товары, но хотелось бы чтобы товары относились к данному производителю.

Спасибо!
Записан
Shustry
Группа развития
*****

Репутация: +727/-3
Offline Offline

Пол: Мужской
Сообщений: 6667


Рисую дизайны


« Ответ #21 : 04.07.2016, 13:16:48 »

1. Всё на уровне разметки шаблона делается. Про микроразметку раз, два. Всё зависит от схемы, под которую будете делать.
2. Ну если это не заложено в компоненте (я хз, VM не юзаю), то, либо пишите плагины свои, либо в шаблоне делаете запросы в БД, и выводите необходимые данные.
Записан
pavelrer
Давно я тут
****

Репутация: +4/-0
Offline Offline

Сообщений: 262


« Ответ #22 : 04.07.2016, 20:37:15 »

Цитировать
либо в шаблоне делаете запросы в БД, и выводите необходимые данные.

Если дадите ссылку на разжеванный примерчик, буду очень благодарен. Я еще до этого не дошел  Smiley Но ежлиб освоил, порешал бы кучу задач.

Спасибо.

2. VM - Производитель.
Тут отвечаю сам. Если модулю vm-товар, случайный товар ставим выводить в страницах производителя, то допустим для производителя BMW,
будут выводиться случайно только товары BMW (в страницы описания производителя), если таких товаров не будет, то и выводиться будет только картинка и описание производителя.
Все оказалось просто  Smiley

Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet