Забыли пароль?
Запросите новый здесь.

Автор темы: Pisatel
ID темы: 2482
Информация:
Тема содержит 4 сообщения, была просмотрена 4414 раз.
Просмотр темы
PHP-Fusion Russia » Поддержка 7 версии » Вопросы новичков
 Распечатать тему
Пара выпросов по написанию плагина
Pisatel
Всем доброго времени суток. Пара вопросов возникла при написании плагина.
Первый. При написании страницы для администраторов часто вначале (причем даже на страницах, которые входят в дистрибутив) идет такая проверка:
Загрузить источник  GeSHi: PHP
  1. if (!checkrights("MTA") || !defined("iAUTH") || !isset($_GET['aid']) || $_GET['aid'] != iAUTH) { redirect("index.php"); }
Добавлено за 0.029 секунд, используя GeSHi 1.0.8.10

Однако, в ядре есть вот такая определенная функция
Загрузить источник  GeSHi: PHP
  1. function checkAdminPageAccess($right) {
  2. if (!checkrights($right) || !defined("iAUTH") || !isset($_GET['aid']) || $_GET['aid'] != iAUTH) {
  3. return false;
  4. } else {
  5. return true;
  6. }
  7. }
Добавлено за 0.028 секунд, используя GeSHi 1.0.8.10

Так не проще ли писать в начале кода страницы
Загрузить источник  GeSHi: PHP
  1. if (!checkAdminPageAccess("MTA")) { redirect("index.php"); }
Добавлено за 0.029 секунд, используя GeSHi 1.0.8.10

Если я правильно понимаю, эти записи идентичны по смыслу?
И еще вопрос. Например, существует страница, на которую пользователи получают ссылку, она прекрасно работает и все такое. Как сделать проверку на то, что плагин включен? То есть, если мы просто выключим плагин, а пользователи по старым ссылкам будут приходить на эту страницу, то будут осуществляться запросы к несуществующей таблице в бд. Это не критично, пользователь этого не заметит, но журнал ошибок у нас будет расти из-за этого. Буду признателен за идею.
Переполз на WP, но PF - это как первая любовь, которая не забывается...
 
Web
Rizado
Pisatel написал:
И еще вопрос. Например, существует страница, на которую пользователи получают ссылку, она прекрасно работает и все такое. Как сделать проверку на то, что плагин включен? То есть, если мы просто выключим плагин, а пользователи по старым ссылкам будут приходить на эту страницу, то будут осуществляться запросы к несуществующей таблице в бд. Это не критично, пользователь этого не заметит, но журнал ошибок у нас будет расти из-за этого. Буду признателен за идею.

Скачать исходники  Код
SHOW TABLES LIKE %TABLENAME%



Если в результате запроса получаем ноль строк - таблицы нет.
x1
 
Web
Rush
ты неприятно удивишься количеству подобных штук в *кхм* "коде" (удержался)

Загрузить источник  GeSHi: PHP
  1.  
  2. function checkAdminPageAccess($right) {
  3. return if (!checkrights($right) || !defined("iAUTH") || !isset($_GET['aid']) || $_GET['aid'] != iAUTH) {
  4. return false;
  5. } else {
  6. return true;
  7. }
  8. }
  9.  
Добавлено за 0.045 секунд, используя GeSHi 1.0.8.10

можно записать в одну строку, чтобы не хвастаться количеством строк в коммитах как индусы
Загрузить источник  GeSHi: PHP
  1.  
  2. function checkAdminPageAccess($right) {
  3. return !(!checkrights($right) || !defined("iAUTH") || !isset($_GET['aid']) || $_GET['aid'] != iAUTH);
  4. }
  5.  
Добавлено за 0.034 секунд, используя GeSHi 1.0.8.10

x1 x1
 
Web
Pisatel
Всем спасибо.
Rush, это все верно, однако для пабл плагина нужно использовать предустановленные функции (ну не править же при установке плагина maincore.php), поэтому и задал вопрос. Однако, благодарю за то, что показал подобный подход к функции, в котором совсем не обязательно явно указывать в ретурне ложь или истину
Изменил(а) Pisatel, 18.04.2015 05:12
Переполз на WP, но PF - это как первая любовь, которая не забывается...
 
Web

Поделиться этой темой
Социальные закладки: Vkontakte Odnoklassniki Mail.ru Facebook Google Tweet This
URL:
BBcode:
HTML:

Перейти на форум:
Похожие темы
Топ 5 пользователей форума
Alex Alex (1,211)   Zaxap Zaxap (1,089)   Vova Vova (877)   Pisatel Pisatel (678)   util util (666)