Переменные в шаблонах IPB 3.4.8 - Страница 2 - Дизайн и модификация Invision Power Board

Перейти к содержимому

 

Правила раздела

Здесь обсуждаются вопросы по настройке и администрированию форумов IPB 3.x.
Пожалуйста, не оффтопьте, если зашли сюда случайно, и обратите внимание на соседние разделы.
Установка, настройка и обслуживание форумов IPB 2.x.
Оформление форумов, включая верстку скинов.
Размещение рекламы на форумах.
SEO оптимизация форума.
Техническая поддержка наших скинов и модов.

СвернутьПрикрепленные теги

Теги не найдены

  • 2 Страниц +
  • 1
  • 2

Переменные в шаблонах IPB 3.4.8

#16 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 276
  • Регистрация: 20-Март 09
  • Репутация: 2 078
  • IPB version:3.1.x
 

Отправлено 17 Январь 2016 - 12:08

Цитата

Да и потом, IPB сам активно использует логику в шаблонах.

Не использует. Использует логические условия а не бизнес логику.

Цитата

Ну а 1 sql-запрос, если он будет только в профиле пользователя не страшен

А потом он захочет иметь данные еще в одном шаблоне и будет плодить такие конструкции по всему скину. Да, IPSMember:load кешируется и повторный вызов будет из кеша, но это уже выглядит плохо.

Цитата

Так то оно так, н предложи решение

Использовать данные там где они есть. Так ли они нужны в этом шаблоне?
0

#17 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 276
  • Регистрация: 20-Март 09
  • Репутация: 2 078
  • IPB version:3.1.x
 

Отправлено 17 Январь 2016 - 21:38

Просмотреть сообщениеkgb сказал(а):

Ну а 1 sql-запрос, если он будет только в профиле пользователя не страшен.

В случае профиля для загрузки данных пользователя используется стандартный метод IPSMember::load. Используя в вызове те же таблицы, можем получить пользователя из кеша без дополнительных sql запросов.
Но следует понимать, что шаблон customField__generic привязан к дополнительным полям а не к профилю, он может вызываться где угодно и не имеет никакого конкретного отношения к переменным $this->request['id'] или $this->request['MID'] - они могут быть, могут не быть, а могут относится вообще к другим сущностям.

Единственный более менее приемлемый вариант это правка исходного кода и передача данных пользователя в шаблоне.
\admin\sources\classes\customfields\profileFields.php

						$__func = 'customField__generic';
						
						if( method_exists( ipsRegistry::getClass( 'output' )->getTemplate( $this->skinGroup ), $__func ) )
						{
							$this->out_fields[ $field->raw_data['pf_group_key'] ] [ $field->raw_data['pf_key'] ] = ipsRegistry::getClass( 'output')->getTemplate( $this->skinGroup )->$__func( $field );
							continue;
						}


Заменить на

						$__func = 'customField__generic';
						
						if( method_exists( ipsRegistry::getClass( 'output' )->getTemplate( $this->skinGroup ), $__func ) )
						{
							$this->out_fields[ $field->raw_data['pf_group_key'] ] [ $field->raw_data['pf_key'] ] = ipsRegistry::getClass( 'output')->getTemplate( $this->skinGroup )->$__func( $field, ( ! empty( $this->member_data ) ? $this->member_data : array() ) );
							continue;
						}


В шаблоне customField__generic, на вкладке Переменные, добавить через запятую вторую переменную $member=array()

О других шаблонах говорить нет смысла. В них находятся те данные которые предусмотрены по логике, и между ними они не передаются. Получить их можно только разными костылями как глобальные переменные либо правкой исходного кода.
1

#18 Пользователь не на сайте   HooLIGUN ответил: »

 
 
  • Member
  • **
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 47
  • Регистрация: 04-Декабрь 11
  • Репутация: 0
  • IPB version:3.4.x
 

Отправлено 19 Январь 2016 - 01:42

Спасибо, ваш "костыль" помог вывести нужную мне переменную.
По сути я понял, что не получиться просто так вставить переменную в шаблон. Всё очень сложно с этим...
0

Сообщить об этой теме:


  • 2 Страниц +
  • 1
  • 2


Быстрый ответ

  

1 пользователей читают эту тему
0 зарегистрированных, 1 гостей, 0 скрытых


Контактная информация

Вопросы по работе сайта

+7 (917) 501-4765
C 10 до 20 в рабочие дни (время московское)

Техническая поддержка

Контактные данные специалистов

Дизайн форумов

IPB 3.x ¦ IPB 2.x

Бесплатные шаблоны

IPB 3.2 – 3.4 ¦ IPB 3.1 ¦ IPB 3.0 ¦ IPB 2.2 – 2.3 ¦ IPB 2.1 ¦ Клипарт
Лицензия на использование ¦ Ваша поддержка ¦ О проекте
Copyright © 2005-2016 IPBSkins.ru Team
При копировании материалов с сайта
прямая ссылка на источник обязательна