Привязка модуля к показу профиля

#1 13 декабря 2009 в 16:49
Как сделать чтобы определенный модуль показывался ТОЛЬКО когда человек находится в своем профиле. В привязках где показывать модуль такого нет.
#2 3 января 2010 в 11:33
не кто не разбирался, где проверяются критерии где показывать модуль?
#3 3 января 2010 в 23:32
fuze, один как из вариантов — если прочитать — readme!.txt — находящийся в папке /templates/_default_ — то там описаны варианты — редактирования tpl-файлов , а именно:

— Если нужно подключить к странице CSS-файл, то внутри tpl-шаблона
можно использовать инструкцию {add_css}
Пример:
{add_css file="templates/my-template/css/style.css"}

— Если нужно подключить к странице JS-файл, то внутри tpl-шаблона
можно использовать инструкцию {add_js}
Пример:
{add_js file="templates/my-template/js/script.js"}

— Если нужно использовать php:
{php}… ваш код… {/php}

— Если нужно использовать выражения с $ (например jQuery):
{literal}… код со знаками $… {/literal}

Попробуйте добавить все необходимое — отредактировав — темплат вывода профиля…
#4 4 января 2010 в 00:30
Madmax, ты не понял.
мне надо не под выводом содержимого профиля, а к примеру в левой колонке. Т.е. есть модуль "поиск пользователей" я хочу чтобы он выводился в левой колонке (left) только когда человек находится в профиле.
#5 5 января 2010 в 10:15
fuze, ну я ведь только учусь быть телепатом )))
#6 5 января 2010 в 10:46
Madmax, ды вроде доступно объяснил))) ну да ладно.
в общем поразобравшись, пришел вот к чему:
все зависит от menu_id. Так вот смысл в том что menu_id и в профиле пользователя и на главной странице одно и то же — 0. Т.е. если я путем добавления в базе в таблице cms_modules_bind добавляю
module_id=70 menu_id=0, где 70 есть module_id нужного мне модуля, то модуль показывается и на главной и в профиле. вот как-то так)))
Буду думать как теперь из этого положения выйти...

Т.е. вопрос в том как сделать, чтобы или на главной или в профиле menu_id было отличным от 0.
#7 11 января 2010 в 14:02
Вот решение, подсказанное Администратором:
  1. <?php
  2. if ($_REQUEST['view']=='users' && $_REQUEST['do']=='profile'){
  3. cmsModule('search');
  4. }
  5. ?>
где search имя позиции в файле positions.txt.
#8 11 января 2010 в 17:22
fuze[drums], этот код запихнуть, я так понимаю, в templates.php?

P.S. Что-то у меня в templates.php не срабатывает 😥
#9 11 января 2010 в 20:13
Виктор, да ты правильно понимаешь, в templates.php.
Кавычки, в positions.txt добавил?
#10 11 января 2010 в 20:57
В positions.txt я добавил позицию userprofiles.
В templates.php добавил
  1. <?php
  2. if ($_REQUEST['view']=='users' && $_REQUEST['do']=='profile'){
  3. cmsModule('userprofiles');
  4. }
  5. Заменил в приведенном коде обратные кавычки на двойные (и на прямые тоже пробовал)
  6. ?>
#11 11 января 2010 в 21:42
  1. <div style="margin:0 0 0 6px;"><?php cmsModule("left"); ?>
  2. <?php
  3. if ($_REQUEST['view']=='users' && $_REQUEST['do']=='profile'){
  4. cmsModule('search');
  5. }
  6. ?>
  7. </div>
копипаст из моего теплейта. Модуль назначил на позицию search, показывать на всех страницах сайта.
#12 12 января 2010 в 09:45
Всё, разобрался. Дело в том, что в таблице для хранения имени позиции вывода модуля отводится 10 позиций. Следовательно, моё название обрезалось и при попытке найти модули выводимые в этой позиции ничего не находилось. Искалось userprofiles, а в таблице было userprofil.
Уменьшил длину названия и всё заработало.
#13 13 января 2010 в 08:02

А авторизация пользователя с переходом в профиль работает только через скрипт?

gray
ты сейчас о чем?
В админке есть опция что делать после авторизации — переходить в профиль, в настройка профиля или ничего не делать…
#14 13 января 2010 в 10:56
так авторизация проходит?

и еще… если под админом заходить, то в любом случае сразу в профиль не зайдет, попробуй под пользователем.
#15 8 февраля 2010 в 14:02
в догонку...
я запарился: как сделать аналогичную проверку — на главной я или нет? хочу чтобы позиция была видна только на главной — экономия 3-4 запроса.
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.