<<<1...5...101112131415161718>>>
Принимаем вопросы от населения
Kabak |
|
---|---|
Это для вывода данных в форму . А для считывания из формы при нажатии кнопки "сохранить" пользователем/админом ? Или я не понимаю чего-то ? |
Macik |
|
---|---|
#38427 Kabak: Алгоритм такой: через ф-и `cot_inport` мы делаем импорт параметров из запроса. Потом эти параметры используются при построении формы. Понятнее объяснил? https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F |
Trustmaster |
|
---|---|
Советую почитать http://www.cotonti.com/docs/ext/extensions/tutorial_advanced_plugin, там в 5-й главе как раз этот вопрос разбирается. May the Source be with you!
|
Kabak |
|
||||||
---|---|---|---|---|---|---|---|
Ребята, с алгоритмами всё понятно и эту статью я читал. Я не понимаю, каким образом , например, тэг в шаблоне {USERS_EDIT_DELETE} привязан к Повторяю мой вопрос: Например : в users.edit.php есть проверка
Где происходит привязка 'ruserdelete' к конкретному полю - тегу {USERS_EDIT_DELETE} в users.edit.tpl ? т.е. где определено что 'ruserdelete' получает значение тэга {USERS_EDIT_DELETE} ? в users.edit.tpl форме нет например такого :
В той же статье 5, что Володя указывает есть например
Почему именно 'user', а не 'User', или 'user_name_tpl' ? Где определяется что из tpl имя пользователя передеётся в php как переменная 'user' и никак иначе и. т.д. по списку всех переменных? Понятно, что мне непонятно ? |
|||||||
This post was edited by Kabak (2013-11-11 17:35, 11 years ago) |
Trustmaster |
|
||
---|---|---|---|
В случае форм это просто имя инпута, т.е. атрибут name в HTML. В случае того же user_edit_delete это значение передается в параметрах функции cot_radiobox():
May the Source be with you!
|
Sergey |
|
||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
http://wm-help.net/my-articles/article/use-post-and-get-in-php.htm Это надо прочитать, это основа, это общие знания. Теперь будем разбирать ход программы, начнем с части user.edit.php 257 $mskin = cot_tplfile(array('users', 'edit', $usr['maingrp']), 'module'); Обратите внимание на array это массив возможных частей имен. Имеется своя дилемма подбора, это как раз функция cot_tplfile она находит файл шаблона, будет найден шаблон user.edit.tpl а мог быть user.edit.название_группы.tpl и другие комбинации. Важно, что получили имя файла шаблона. теперь переходим дальше, на
этот оператор создает новый экземпляр класса типа шаблон XTemplate В этом классе есть две главные функции это
Первая производит замену {USERS_EDIT_DELETE} на выражение, которое находится в классе t вторая out, выводит шаблон, после замены, в выходной поток, который своим способом попадает в браузер клиента, читателя Для того, чтобы поместить в USERS_EDIT_DELETE выражение имеется стандартное назначение:
тут вопрос, этот юзер $sys['user_istopadmin']) имеет право администрирования? Да, тогда мы создаем форму радиобатон с наименование ruserdelete это создает функция cot_radiobox обратите внимание, что радиобатон имеет два состояние 1- TRUE и 0 -FALSE, следовательно элемент массива $_POST, будет ассоциативный элемент ruserdelete Клиент получил форму, заполнил форму и нажал
ответ пошел на сервер, надо знать, что еще был сформирован и ответ в шаблоне:
а там
где формируются урл с двумя ключами m=edit a=update и ключом идентификатора пользователя id= эти ключи мы можем достать по запросу $_GET там будет массив из элементов: m, a и id. как форма отправилась опять загрузится модуль user.edit.php. В части common.php обрабатываются общие ключи, строки с 481
нам интересна функция в строке $a = cot_import('a', 'G', 'ALP', 24); она обрабатывает ответ $_GET - 'G', 'a', - это наименование элемента ассоциативного массива из $_GET, 'ALP' - это значит, что символы будут типа букв цифр и некоторых знаков. Надо знать, что серверная глобальная переменная ${_SERVER['QUERY_STRING'] как раз содержит все эти ключи, т.е. то что мы отмечаем от ? по & так устроен сервер, надо знать вот это http://www.php.su/articles/?cat=vars&page=015 команда Котонти уже позаботилась с правилами работы с этими глобальными. Опять возвращаемся к user.edit.php строка с 48
вот и имя ассоциативно массива $_POST - входное 'P', элемент ruserdelete о котором вы переживали. 'BOL' это как раз тип элемент битная логика: 1 или 0, помните вначале мы его задавали, а сейчас проверяем. получили $ruserdelete и начинаем обрабатывать если $ruserdelete это 1 или TRUE
надо признать, тут могут движок поломать через user_id=$id надо проверять на sql инъекцию (может проверка и есть, а может и нет), но без проверки такое делать не надо, нельзя набранное юзером совать в sql запрос, не при каких вариантах. Примерно так. - 2 часа жизни из моей шагреневой кожи. www.cotonti.mobi
|
Macik |
|
---|---|
#38348 Kabak: «Специально по заявкам радиослушателей»: http://www.cotonti.com/forums?m=posts&q=7583 Будут вопросы по отладке - можно в той же теме отписать.
https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F |
Trustmaster |
|
||
---|---|---|---|
Дополню пост Sergey насчёт SQL-инъекций. Чтобы защититься от оных, лучше лишний раз воспользоваться возможностью безопасной передачи параметров в запрос:
Такая возможность есть в методах: query, delete, update. May the Source be with you!
|
Kabak |
|
||
---|---|---|---|
#38448 Trustmaster: Это проверка на существование такой(ких) перменной(ых) в базе перед удалением ? |
Trustmaster |
|
---|---|
Нет, это фильтрация переменных от опасных вставок. May the Source be with you!
|
Kabak |
|
---|---|
Пожалуйста, расскажите о подгруппах. 1) Как и для чего они используются в движке ? 2) В каких разделах движка и каким образом используется главная группа к которой привязан пользователь, а где дополнительные группы - подгруппы ? |
|
This post was edited by Kabak (2013-11-25 08:20, 11 years ago) |
Trustmaster |
|
---|---|
Главная группа пользователя отображается в его статусе и используется для быстрой проверки доступа в некоторых частях движка или в админке. Второстепенные группы влияют на права. Права пользователя - это объединение (через логическое ИЛИ) прав всех его групп (главной и второстепенных). Есть ещё группы без прав - они влияют на отображаемый статус, но не несут информации о правах. May the Source be with you!
|
Kabak |
|
---|---|
Как в плагине вывести системное окно Котонти с вопросом подтверждения действия ? |
|
This post was edited by Kabak (2013-12-04 12:32, 11 years ago) |
Trustmaster |
|
||||
---|---|---|---|---|---|
#38721 Kabak: Задаем URL с помощью функции cot_confirm_url():
и в шаблоне для ссылки прописываем
May the Source be with you!
|
Yusupov |
|
---|---|
Подскажите, пожалуйста, каким образом создается контент страниц на разных языках? Что для этого нужно добавить в шаблон страницы, чтобы добавлять переводы? |