[Закрыть]
 
popoff.donetsk.ua
Свойственно ли жадным людям чувство справедливости?
Начало | Новости | Статьи | Форум | Опросы | Карта сайта | Обо мне
popoff.donetsk.ua - Статьи - Программирование - Движок для портала - Версия 20050513 [не доступно для скачивания]
Я это делаю
Персональное меню
Голосование
Деньги, либо любимое занятие? Постоянный адрес этого вопроса
Ваш возраст (не обязательно):

Введите целое число от 3 до 99.
Почему? (не обязательно):
Другие вопросы
Поиск по сайту
Реклама
Программное обеспечение любой сложности
koins.com.ua
Статистика

Версия 20050513 [не доступно для скачивания]

Постоянный адрес статьи

Внимание! Это устаревшая версия!

Эта версия системы не доступна для скачивания. Текущую версию системы Вы можете скачать, перейдя по этой ссылке:
http://popoff.donetsk.ua/text/work/light/current.html

Дополнительные исправления

20051018: Исправлена ошибка в картинке с кодом регистрации

Изменения в версии 20050513

  • cms.cache: в подсистему управления контентом добавлен модуль для кеширования. Основные возможности:

    • может использоваться для кеширования как выводимого в браузер контента так и для кеширования результатов вычислений.
    • рекурсивное кеширование (когда редко изменяемая часть часто изменяемого кешируемого данного тоже кешируется).
    • Двухуровневое вычисление ключа (уникального идентификатора для кешируемого данного): первичный ключ известен до вычисления кешируемого данного, вторичный ключ определятеся в процессе вычисления кешируемого данного. Например, во время вычиления кешируемого данного может обнаружиться, что оно зависит от языка просмотра, от каких-то привилегий текущего пользователя или других данных, все из которых сложно или не удобно перечислить до вычисления кешируемого данного.
    • Программно указываются имена объектов, от которых зависит кешируемое данное. При изменении любого из этих объектов данное удаляется из кеша. Именем объекта может быть, например, имя модуля (объект изменятся при любом изменении в этом модуле), или ссылка на строку таблицы (объект изменяется при изменении этой строки таблицы).
    • При записи в кеш выполняется 5-6 запросов: 1 - проверка на наличие данного в кеше + чтение первичного ключа (перед вычислением; остальные запросы выполняются после вычисления кешируемого данного); 2 - блокировка таблиц; 3 - запись вторичного ключа и кешируемого данного; 4 - запись имен объектов, от которых зависит кешируемое данное (выполняется, если есть зависимости); 5 - запись запись первичного ключа; 6 - разблокировка таблиц.
    • При очистке кеша выполняется 5 sql-запросов (1 - блокировка; 2 - выбор всех зависящих от указанных объектов ключей; 3 - очистка таблицы зависимостей; 4 - очистка таблицы с кешируемым данным; 5 - разблокировка)
    • При удачном чтении из кеша выполняется 2 sql-запроса (1 - чтение первичного ключа, 2 - чтение собственно данного). Не чаще одного раза в сутки для каждого закешированного данного выполняется дополнительно 2 sql-запроса для установки даты последнего обращения к этому данному (отдельно для первичного и отдельно для вторичного ключа). Данное, к которому слишком долго не было обращения, удаляется из кеша.

  • cms.template: изменен шаблонизатор. Теперь шаблон представляет собой xml-документ, описывающий способ генерации соответствующего документа. В шаблонах поддерживается два варианта синтаксиса: 1) некоторые теги xml-шаблона рассматриваются как управляющие; 2) альтернативный синтаксис - команды в квадратных скобках ([var_name]).

  • common.hash: добавлен модуль вычисления криптографического хеша. теперь для изменения алгоритма вычисления криптографического хеша достаточно внести изменения только в этот модуль. В прошлой версии системы для вычисления хеша использовалась функция md5, в текущей версии - функция sha1.

  • http.request: добавлена поддержка динамической подкачки данных без перезагрузки страницы. Основана на библиотеке JSHttpRequest (http://dklab.ru/chicken/nablas/41.html)

  • mail: добавлена возможность запланированной рассылки электронных сообщений с ограничением нагрузки на smtp-сервер. Отправляемые сообщения в момент генерации записываются в базу данных, а рассылаются блоками не более чем MAIL_SEND_COUNT сообщений в блоке не чаще одного блока в MAIL_SEND_DELAY секунд.

  • mp.map: добавлена страница с древовидной картой сайта. В карту может быть добавлен любой модуль системы.

  • news: практически с нуля переделана служба новостей:

    • Теперь в службе новостей новости разбиты на темы. Темы имеют древовидную организацию.
    • Темы имеют множество настроек. Например, способ разбивки большого числа новостей на страницы (по годам, по месяцам, по дням, по штукам); показывать ли дерево тем внизу страницы с новостями этой темы; показывать ли новости этой темы на главной странице; сколько фотографий показывать на главной странице.
    • Включена рассылка вновь добавленных новостей.
    • Новость сама по себе не содержит в себе тело сообщения. В новости содержится только заголовок новости, комментарий (аннотация) к новости и ссылка на тело новости. Само тело сообщения располагается в других службах (например, в службе управления статьями или в форуме; для каждой новости указывается конкретное расположение) или даже на другом сайте.
    • Для каждой отдельной новости настраиваются такие параметры, как важность (всегда показывать на главной странице), видимость, дата создания, дата публикации.
    • Служба новостей (как, впрочем и все остальное в этой системе) поддерживает мультиязычность.

  • passport.alive: теперь сессия пользователя не будет завершена до тех пор, пока пользователь не закроет браузер. Эта возможность настраивается пользователями.

  • passport.limit: теперь в системе появилась возможность банить (ограничивать) ip-адреса. При обращении с ограниченного ip-адреса на сайте нельзя зарегистрироваться, оставить сообщение в форуме, или выполнить какие-либо другие действия, приводящие к изменению содержимого страниц сайта.

  • passport.privilege:

    • Разрешена проблема запрета дочерней привилегии при разрешенной родительской привилегии. Разрешение этой проблемы привело к изменениям в двух местах: изменилась процедура наследования списков привилегий и процедура проверки привилегий. Процедура объединения списков привилегий не изменилась.
    • Уточнена процедура наследования списков привилегий. При наследовании упоминания о привилегиях в наследуемых списках игнорируются, если для этих привилегий в исходном списке есть упоминание о любой родительской привилегии.
    • Удалена процедура строгой проверки привилегий. Теперь привилегии проверяются двумя способами: 1) эта или любая родительская привилегия («проверка родительской привилегии», или просто «проверка привилегии») 2) эта или любая родительская или любая дочерняя привилегия («проверка дочерней привилегии»).
    • Уточнена процедура проверки привилегии. Пользователь обладает привилегией X, если для него разрешена привилегия Х или для него разрешена некоторая привилегия Y, которая является родительской по отношению к привилегии Х и для этого пользователя нет запрещенной привилегии Z, котороая является дочерней по отношению к Y и родительской по отношению к X.
    • Уточнена процедура поиска администраторов. Функция возвращает список администраторов, которые обладают заданной или любой родительской привилегией. Учтен запрет дочерних привилегий при разрешенных родительских привилегиях.

  • passport.startup: включена одна из степеней защиты от DoS атаки, состоящая в ограничении количества запросов с одного ip-адреса во времени.

  • stat.add: добавлена поддержка (отслеживание поисковых фраз) следующих поисковых систем:

Последняя модификация: 10.02.07 03:06

Не проходите мимо! Оставьте Ваш комментарий в форуме! >>>