Переменные в файлах $com_ и $mod_

Откуда они берутся

#1 19 августа 2013 в 21:44
Здравствуйте, возник вопрос. В файлах модулей и компонентов употребляются переменные вида $LANG, $usr и т.д., а также их свойства $usr.id и т.д. Хотелось бы узнать, где конкретно посмотреть все множество этих переменных и что в них хранится.

Конкретно сейчас хотел решить задачу определения количества друзей пользователя. В файлах $com_user_friends и $mod_user_friends есть переменная $total, которая возвращает значение количества друзей. Я попытался использовать эту переменную на странице пользователя $com_user_profile, но она выводит для каких-то пользователей верное количество друзей, а для каких-то пользователей просто ноль возвращает. Вот я и хочу выяснить, как правильно найти количество друзей пользователя, к какой переменной обратиться.

Конкретная задача — написать условие, если друзей не ноль или не три или не четыре, то <html code1>, иначе <html code2>. Но все же хотелось бы разобраться в этих переменных, чтобы реализовать и другие вещи, и каждый раз на форуме не спрашивать
#2 19 августа 2013 в 22:12
В вашем случае $LANG, $usr — это массивы, только по синтаксису smarty к ним обращаются не классически $LANG['VALUE'] и $usr['id'] (например), а $LANG.VALUE и $usr.id.
Все эти переменные определяются при вызове шаблонизатора в разных частях системы, например выдержка из /components/actions/frontend.php:
  1. // инициализируем объект шаблонизатора smarty
  2. $smarty = $inCore->initSmarty('components', 'com_actions_view.tpl');
  3. // передаем в шаблон переменную actions, которая будет доступна как {$actions}
  4. $smarty->assign('actions', $actions);
  5. // передаем в шаблон другую переменную total
  6. $smarty->assign('total', $total);
  7. // и так далее, например для вашей переменной $usr
  8. $smarty->assign('usr', $user);
  9. // далее показываем сам шаблон
  10. $smarty->display('com_actions_view.tpl');
Собственно здесь и определяется тот самый набор переменных, которые будут доступны в шаблоне (переменная $LANG определяется в системе заранее для всех шаблонов, ее передавать не нужно).
Подробнее о синтаксисе smarty смотрите на официальном сайте www.smarty.net/docsv2/ru/
#3 19 августа 2013 в 22:52
Antik, почитайте мою статью об этом в Документации.
#4 19 августа 2013 в 23:27
Странник, меня хватило только на "Упрощения и соглашения" facepalm
#5 19 августа 2013 в 23:53
lokanaft, ну возьмите, да поправьте, ёмоё, что пустобрехом заниматься… Человек пытается помочь, и не словом, а делом, пусть не всегда верно, но главное вовремя одернуть, поправить, объяснить — и все получается сразу.
#6 20 августа 2013 в 00:02
Fuze, это тут есть edit и Ctrl+Z, в жизни их нет. Всего один раз не справится с управлением тс, ошибиться в расчётах при строительстве дома, один раз неправильно воспитать конкретного ребёнка, один раз!
Если я что то и переделываю, то оно изначально правильно работает и потом лишь улучшение.
//конечно бывают промахи zst, но не постоянно же!!1
#7 20 августа 2013 в 00:13
lokanaft, да все понятно, просто сравнение несравнимое. В доках по 1.10.X как бы не очень все круто) Но ведь те, кто туда писал — хоть как то описали, как могли, я вот к чему. Да, иногда лучше никак чем так, а иногда можно и закрыть глаза и молча подправить нюансы. Прежде чем пожурить — похвали, если видишь, что человек старается) Я когда начинал… страшно вспоминать)))
#8 20 августа 2013 в 01:00

насчет хакера ты явно погорячился))) я скорее любитель дилетант. на самом деле гугл на запрос безопасность сайта/безопасность веб сервера выдает ОГРОМНОЕ количество инфы. к тому же я в предыдущем посте все написал вроде ж. что там может быть непонятно? все что я написал обсуждалось в том числе и на этом сайте. Попробуйте сами погуглить разобраться, вникнуть, т.к. не понимая что и зачем делаешь толку не будет, проверено!

Fuze
коммент от 2009 года… Это я к тому… что всё начиналось так же...))
#9 20 августа 2013 в 09:04
Fuze, Странник, благодарю, статьи почитаю. В шаблоне 471 файл с вхождением фразы $smarty, придется порядком порыться smile.

Просто надеялся что где-то есть подобие единого списка всех массивов и их ключей. Откуда я, например, узнаю какие еще есть данные помимо $usr.id в массиве $usr, только просмотрев все файлы шаблона?
#10 20 августа 2013 в 09:30

Откуда я, например, узнаю какие еще есть данные помимо $usr.id в массиве $usr

Antik
Прописать в любом месте шаблона {$usr|@debug_print_var} и посмотреть
#11 20 августа 2013 в 18:41

Просто надеялся что где-то есть подобие единого списка всех массивов и их ключей. Откуда я, например, узнаю какие еще есть данные помимо $usr.id в массиве $usr, только просмотрев все файлы шаблона?

Antik
Достаточно сходить в модель, и посмотреть выбираемые поля.
#12 20 августа 2013 в 19:08

Достаточно сходить в модель, и посмотреть выбираемые поля.

oll
В какую модель?) Куда Вы меня послали?)
#13 20 августа 2013 в 19:35

В какую модель?) Куда Вы меня послали?)

Antik
И намека небыло.
В модель компонента components/users/model.php
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.