Биллинговая система Nodeny

Главная категория => Nodeny Plus => Тема начата: Efendy от 04 Апреля 2011, 11:03:45



Название: Режим отладки
Отправлено: Efendy от 04 Апреля 2011, 11:03:45
Как и в 50й, в 52й версии есть т.н. режим отладки - когда в конфиге прописан пароль в переменной $sadmin. Если зайти в админку с этим паролем, то будут доступны следующие функции:
- настройки
- привилегии админов
- проверка залогинивания

последняя фишка создана для того, чтобы можно было протестить возможность входа под обычным логином, чтобы увидеть в дебаге почему не получилось зайти. Например, проблема с какой-то таблицей. Походу, мне эта фича уже пригодилась - переносил бд на новый сервер и не создал там таблицу вебсессий, не смог залогиниться, в режиме отладки при тестировании логина увидел причину ошибки.


Название: Re: Режим отладки
Отправлено: Efendy от 04 Апреля 2011, 11:11:39
Также логин в систему/статистика и т.д. организованы через сессии. В 50й версии в клиентской статистике доступ через хеш от пароля и времени - это небезопасно. В 52й версии в таблице сессий есть параметр, который указывает через какой модуль залогинен админ/клиент и т.д. Т.е. есть возможность писать свои точки входа в систему.

Структура точки входа:

  • загрузка конфига
  • загрузка модуля Debug (очень полезная штука, вылизал ее)
  • загрузка модуля проверки конфига
  • загрузка модуля основных подпрограмм Calls.pm
  • запуск подпрограммы иннициализации из Calls.pm
  • выполнение команды

Подпрограмма иннициализации загружает локализацию, соединяется с БД, формирует некоторые глобальные объекты (объект групп, объект админов, объекты визуализации), парсит запрос, проверяет сессию в куках


Название: Re: Режим отладки
Отправлено: Efendy от 04 Апреля 2011, 11:21:31
Что касается html-рендеринга. В 50й версии все html-элементы формируются подпрограммами, прописанными прямо в коде. Общепринятой практикой является использование шаблонов.

Шаблоны я включил и в новый NoDeny. Однако я написал свой движок шаблонов) Хотя название "движок шаблонов" - это слишком громко. Функционал минимален:
- вставка значения
- условия
- вставка файла в шаблон
Однако  этого достаточно чтоб сделать довольно навороченные фишки.
С другой стороны я оставил возможность формирования html прямо из кода. Лично для меня это очень удобно. Вот пример:

Код:
my $tbl = tbl->new( -row1=>'row4', -row2=>'row5' );
$tbl->add('head','lr','Левая колонка','Правая колонка');
ToLeft $tbl->show;

этим я создал объект таблица с параметрами "четная строка имеет класс row4, нечетная row5", добавил строку с двумя ячейками, причем класс установил 'head' (класс для заголовков таблиц), отрендерил таблицу и поместил ее в область левого меню (команда ToLeft).

Лично для меня такой вариант очень прост т.к. позволяет очень быстро программировать ибо формирование шаблонов занимает больше времени. Тем не менее шаблоны я использую, например для формирования общей структуры документа, формы логина и т.д.


Название: Re: Режим отладки
Отправлено: VitalVas от 04 Апреля 2011, 12:25:19
дашь поюзать демку мишкой?
уж сильно мне понравилось.....


Название: Re: Режим отладки
Отправлено: Efendy от 04 Апреля 2011, 13:03:26
дашь поюзать демку мишкой?
уж сильно мне понравилось.....
чуток надо подождать, вылизываю концепцию...