Пара слов об API CMS NetCat. А конкретно о работе с id-шниками юзеров. Практически все собрано с оффорума. Некоторые вещи могут быть устаревшими.
- $AUTH_USER_ID не работает в режиме просмотра (должно по мануалу выдавать id авторизовавшегося юзера а выдает 0). Решение: использовать $PHP_AUTH_USER для работы в обоих режимах.
- Как дать пользователю отправить данные в форме один раз? Решение:
".opt($check='".listQuery("SELECT User_ID FROM Message68 WHERE User_ID=$AUTH_USER_ID LIMIT 1","\$data[User_ID]")."',"")." ".opt_case($check,"форма добавления НЕ показывается","форма показывается")."
- Как скрыть разделы для неавторизованных? Решения:
— «.( $AUTH_USER_ID ? s_browse_sub(xxx, yyy) : «„ ).“
— если выводить 10 разделов с помощью функции s_browse_sub, и среди этих 10 есть разделы, которые надо скрыть, то проверку $AUTH_USER_ID надо прописать в переменных $browse_sub[active] и т.д.
— Добавить поле, указывающее на то, что раздел скрыт, и проверив с помощью функции opt() значения созданного поля и $AUTH_USER_ID в шаблоне вывода навигации.
— Настроить доступ к разделу в админке )). - Как запретить показ объвлений (в режиме редактирования), созданные не текущим юзером, а также не показывать ему чужие $f_AdminButtons? Решение: „.( $AUTH_USER_ID && $AUTH_USER_ID == $f_UserID ? $f_AdminButtons : '').“.
- Как показать товары только авторизованным пользователям? Решение: „.opt($AUTH_USER_ID>0,“показываем»).»
- Как показать только объекты добавленные mtreobv пользователем? Решение: использовать системную настроку компонента — $ingore_user – если 1, игнорирует выборку объектов по текущему пользователю (по умолчанию 1).
- Чтобы в админ-режиме показывать «плашку» только для своих объктов, то можно воспользоваться той же конструкцией:
«.( $AUTH_USER_ID && $AUTH_USER_ID == $f_UserID ? $f_AdminButtons : ««).»
Спасибо за статью. Полезно.
Можно вопрос (все равно задам и буду надеяться, что ответите): если использовать
".opt($AUTH_USER_ID>0,"показываем")."
неавторизованный пользователь не увидит того, что приведено ниже? Или следует вставлять код вместо текста «показываем».
Надеюсь, вас не затруднит привести пример?..
Привет, нагуглился такой пример из шаблона 4.2.Spisok_podpisok.tpl:
.opt(!$AUTH_USER_ID, "<br><div align=\'left\' style=\'margin:7px 0; font-size:100%; font-weight:bold\'>Ваш e-mail: <br><br><input type=\'text\' value=\'\' name=\'fields[Email]\' /></div>" ).
Если остались вопросы, то давай разбираться дальше
Спасибо вам огромное! Вы очень-очень помогли.
Вот только не ясно зачем экранировать кавычки (я по поводу этой конструкции \').
С одиночными и так все заработало. Кажется =)
Тут такое дело, я давно ничего не делал на неткате, поэтому уже и не помню что там и как с экранированием. А если заработало, то я бы и не стал пока разбираться
Привет Алчевску.
=)
А откуда вы знаете, что я из Алчевска?
Меня выдал IP-адрес или есть какой-то более хитрый способ узнать местоположение комментатора?
))) я пока тоже не буду.
Ага, все верно — GeoIP
Одинарные точно можно не экранировать.