Массив context

Автор kak2z, 19 марта 2012, 18:41:54

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

kak2z

Ну собственно есть такой массив $context. Где он формируется? И как в него добавить что то)
Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)

maestrosite.ru

Цитата: kak2z от 19 марта 2012, 18:41:54
Ну собственно есть такой массив $context. Где он формируется? И как в него добавить что то)

Формируется везде (/Sources/). Добавить что-то: $context['имя_вашего_чего-то'] = 'что-то';
Если задаются вопросы по вашей проблеме, значит это нужно вам!
---
Обновления форума, разрешение конфликтов, адаптация модов, исправление ошибок - ваши предложения о сотрудничестве направляйте по адресу smf@maestrosite.ru

kak2z

Цитата: transkontrol от 19 марта 2012, 19:00:15
Формируется везде (/Sources/). Добавить что-то: $context['имя_вашего_чего-то'] = 'что-то';
спасибо большое) Я наверно чуть чуть не правильно вопрос задал) Я так понимаю где то в каком то файле он целиком формируется а потом мы уже им пользуемся в таком виде как он есть) Так вот где что изменить что бы он стал везде во всех файлах измененный.
Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)

0daliska

#3
Нет, целиком абсолютно весь он нигде не формируется... он меняется по контексту... дополняется,  transkontrol правильно все сказал... Все зависит от того, что в этом массив положила функция, вызываемая на той или иной странице. Другое дело, что есть функции, которые вызываются на всех страницах...

---
Те есть если вас интересует какой-то конкретный элемент массива context, то можно найти в какой функции он сформирован, а если все - то устанете для всего форума переопределять. проще ввести свой и использовать его, где надо
Уехала отдыхать. Сейчас без интернета до 1 августа. Приеду - выполню все обещания
® For members of Russian community (simplemachines.ru) only

maestrosite.ru

Цитата: kak2z от 19 марта 2012, 19:26:23
спасибо большое) Я наверно чуть чуть не правильно вопрос задал) Я так понимаю где то в каком то файле он целиком формируется а потом мы уже им пользуемся в таком виде как он есть) Так вот где что изменить что бы он стал везде во всех файлах измененный.

Посмотрите на примере Display.php, и устанавливаемых там переменных количества сообщений, числа сообщений, и тд. Эти данные не имеют смысла вне отображения конкретной темы, поэтому в шаблоне, например, настройки профиля вы их не увидите.
Если задаются вопросы по вашей проблеме, значит это нужно вам!
---
Обновления форума, разрешение конфликтов, адаптация модов, исправление ошибок - ваши предложения о сотрудничестве направляйте по адресу smf@maestrosite.ru

kak2z

Хм)) А когда я создаю страницу с помощью SSI то где формируется массив? У меня просто в разных моих файлах запрашиваются одни и теже данные. Я думал забить из в массив и не обращаться все время к базе)
Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)

maestrosite.ru

Цитата: kak2z от 19 марта 2012, 20:20:06
Хм)) А когда я создаю страницу с помощью SSI то где формируется массив? У меня просто в разных моих файлах запрашиваются одни и теже данные. Я думал забить из в массив и не обращаться все время к базе)
1. Вы часом не от запроса к запросу (HTTP) данные в массиве хотите хранить?
2. В простейшем случае SSI подключает:
Цитировать$ grep require_ SSI.php
require_once(dirname(__FILE__) . '/Settings.php');
require_once($sourcedir . '/QueryString.php');
require_once($sourcedir . '/Subs.php');
require_once($sourcedir . '/Errors.php');
require_once($sourcedir . '/Load.php');
require_once($sourcedir . '/Security.php');
   require_once($sourcedir . '/Subs-Compat.php');
   require_once($sourcedir . '/Subs-Auth.php');
   require_once($sourcedir . '/Subs-MembersOnline.php');
      require_once($sourcedir . '/Subs-Auth.php');
там же и формирует
3. Если данные одни на всех, то сделайте свой Subs-*, который будет заполнять эти данные (обращаться к базе)
Если задаются вопросы по вашей проблеме, значит это нужно вам!
---
Обновления форума, разрешение конфликтов, адаптация модов, исправление ошибок - ваши предложения о сотрудничестве направляйте по адресу smf@maestrosite.ru

kak2z

Цитата: transkontrol от 19 марта 2012, 20:31:001. Вы часом не от запроса к запросу (HTTP) данные в массиве хотите хранить?
и это тоже) но уже понимаю что наверно лучше не извращаться)
Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)

maestrosite.ru

Цитата: kak2z от 19 марта 2012, 20:45:57
и это тоже) но уже понимаю что наверно лучше не извращаться)
Массив при каждом запросе формируется заново. Если решились хранить результаты страшной выборки или сложных вычислений между запросами, то посмотрите на cache_*_data().
Если задаются вопросы по вашей проблеме, значит это нужно вам!
---
Обновления форума, разрешение конфликтов, адаптация модов, исправление ошибок - ваши предложения о сотрудничестве направляйте по адресу smf@maestrosite.ru

kak2z

В общем вот зачем мне все это надо было)) главная причина почему я задался этим вопросом. Мне надо что бы под аватарками выводились страна, область,город, пол(все храниться в разных таблицах).  И что бы если у пользователя несколько сообщений на странице что бы каждый раз не вызывался скрипт выборки из нескольких таблиц. А просто бралось то что уже лежит в масиве)
Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)

maestrosite.ru

Цитата: kak2z от 20 марта 2012, 08:28:54
В общем вот зачем мне все это надо было)) главная причина почему я задался этим вопросом. Мне надо что бы под аватарками выводились страна, область,город, пол(все храниться в разных таблицах).  И что бы если у пользователя несколько сообщений на странице что бы каждый раз не вызывался скрипт выборки из нескольких таблиц. А просто бралось то что уже лежит в масиве)

Тогда, как сказано выше
Цитата: transkontrol от 19 марта 2012, 20:31:00
сделайте свой Subs-*, который будет заполнять эти данные (обращаться к базе)
и подключайте его в своих файлах, либо вклинивайтесь в loadMemberContext(), там и типокеш есть. Здесь детали зависят от вашей архитектуры
Если задаются вопросы по вашей проблеме, значит это нужно вам!
---
Обновления форума, разрешение конфликтов, адаптация модов, исправление ошибок - ваши предложения о сотрудничестве направляйте по адресу smf@maestrosite.ru

kak2z

Спасибо) Попробую разобраться. Я просто очень плохо знаком с архитектурой СМФ)) А где loadMemberContext() лежит в каком файле?
Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)

maestrosite.ru

Цитата: kak2z от 20 марта 2012, 09:14:06
Спасибо) Попробую разобраться. Я просто очень плохо знаком с архитектурой СМФ)) А где loadMemberContext() лежит в каком файле?
Имелась ввиду архитектура вашей модификации. loadMemberContext() находится поиском
Цитировать$ grep -rn 'ion loadMemberContext' ./Sources
Sources/Load.php:1080:function loadMemberContext($user, $display_custom_fields = false)
Если задаются вопросы по вашей проблеме, значит это нужно вам!
---
Обновления форума, разрешение конфликтов, адаптация модов, исправление ошибок - ваши предложения о сотрудничестве направляйте по адресу smf@maestrosite.ru