Мы будем Вам признательны, если Вы поддержите проект Open SLAED и используя Ваши возможности, разместите наш пресс-релиз на страницах своих сайтов, проектов, форумов, блогов. Текст пресс-релиза, возможно, видоизменить под Ваш формат, не искажая смысл. Пресс-релиз можно взять на данной странице.
Регистрация открывает полный доступ ко всем материалам сайта и даёт дополнительные возможности влиять на содержание сайта. Например, только зарегистрированные пользователи могут предлагать к публикации новости и писать комментарии. Многие страницы нашего сайта выглядят по-разному для гостей и зарегистрированных пользователей. Это объясняется тем, что человеку, впервые попавшему на сайт, необходимо, прежде всего, составить общее впечатление о его структуре и содержании, тогда как постоянного посетителя интересуют изменения, произошедшие с его последнего посещения. Есть разделы доступные только для зарегистрированных пользователей. Поэтому если вы не случайный гость и собираетесь в будущем посещать наш сайт, то вам стоит подумать о регистрации.
Блок случайная картинка (или скорее случайный файл), показывает картинку от файла в виде ссылки на файл и подпись. Использована идея блока «Вывод случайных изображений» Но в отличии от него использует SQL базу двига для случайного выбора картинки (файла).
Писался скрипт для блока "Случайная игра". При обновлении страницы выводит новую картинку с подписью и ссылкой. Поскольку не у всех файлов имеется картинка в папку Images добавляется картинка noimage.gif. Т.к. в базу не все поля могут быть заполнены, необходимо указать дефолтные данные (Id, Title, Url Image).
Блок ("Случайная игра") можно посмотреть на сайте: best-oldgames.net
38. Сделал фиксированные размеры preview обложек в списке последних обновлений. При выключенном показе картинок - выглядело крайне уродско
39. Поправил сортировку в списке последних обновлений фильмов "по дате" по умолчанию. В качестве даты берется дата последних изменений в описании
фильма. Т.е. если добавленный два месяца назад фильм в группу "Wanted", то после его реального добавления и переноса в раздел "Online 2User",
фильм не появлялся на главных страницах как обновление. Таким образом узнать о том, что он появился было очень сложно...
40. Пофиксил обновлялку AVI-инфы, она оказалась не рабочая...
41. Обновлялка AVI-инфы после завершения не находила функцию errmovie, и вылетала нафиг куда-то... Пофиксил.
42. Перевел систему комментариев на интегрированную в SLAED.
!добавилось поле totalcomments в таблице slaed_catalog_movie
!скрипт function/comments.php изменен.
43. Написал конвертор из комментариев каталога в комментарии SLAED. Без него однако ни как
в папке с модулем/convert_comments/convert.php
!Коневертирование обязательно!
!После успешного конвертирования таблицу slaed_catalog_comments можно удалить.
44. В просмотре последних обновлений вывел общее количество комментариев к фильму.
!похоже теперь нет рейтингов Надо решить сей вопрос, но уже пора спать...
45. !java-скрипты каталога не работают в Firefox
46. В админке сменил не верное название поля "Продюсер" на верное "Режиссер".
47. При просмотре "показать все" фильмы убрал отображение видео-кодека заменив на отображение информации о звуке. Это помоему единственный
вариант того, как из всех фильмов найти те, у которых звук к примеру 6-ти канальный.
48. Сделал хитрый центральный блок. В нем показывает 6 фильмов, но первые три это последние добавления, а следующие три - это случайный фильм.
49. Сделал модуль для левой/правой панели. Одиночный случайный фильм.
50. Доработал вывод последних коментариев. Ибо совсем забыл, что в них могут быть стандартные смайлы, а вместо них мы видели и т.д.
Теперь все в поряде.
51. Заменил родной файлик "noimage.gif", который сообщал об отсутствии постера к фильму, на более красивый. Нарисовал Apple'Sin г. Ижевск.
52. Переделал работу с кадрами. Теперь отображение кадров происходит сразу на странице с фильмом. Расчетное минимальное разрешение экрана 1024х768.
53. Перенес все Java-скрипты каталока в папку с модулем. Теперь нет необходимости в изменении самой CMS чтобы подключить эти скрипты.
54. Перевожу все картинки и кадры в каталог с модулем. Все что было в корневой папке reliz, теперь хранится в папке
Video/images/logo - и Video/images/cadrs - соответственно.
Как перенести файлы?
Копируем папку reliz/logo в modules/Video/images/logo
Создаем папку modules/Video/images/cadrs
Копируев в папку modules/Video/images/cadrs все содержимое папки reliz/video/*.*
Установим права 777 на папку modules/Video/images/logo и modules/Video/images/cadrs
55. Переделал вывод обложки. Теперь нет необходимости кликать по картике, или жать на лупу для увеличения обложки. Сделано все как и в кадрах,
при наведении на обложку, рядом всплывает окошко с увеличенной обложкой.
56. Сегодня не плохо поработал! Исправил все плагины поиска фильмов, в частности film.ru, sharereactor.ru.
57. Добавил новый плагин, который получает данные с сайта world-art.ru, а на нем огромное количество информации про ANIME. Его приемущество в том,
что кроме инфы есть еще и кадры к фильмам.
Итак теперь у нас четыре плагина.
Прошу все пожелания и недочеты оставлять на моем форему, на моем сайте. http://atlic.ru
Блок выводит случайный анекдот (афоризм и тд) из своей базы. Есть возможность добавления анекдотов. Администратор может просмотреть все анекдоты и ненужные удалить.
Просто скопируйте все файлы из архива по каталогам и установите нужный CHMOD для файла anekdots.dat. В файле config.php прописано немного еще настроек, количество одновременно отображаемых анекдотов, выводить подпись или нет, допустимое количество символов в анекдоте и тд.
Блок написан на примере скрипта WR-анекдот.
На работу можно посмотреть по адресу: kazakru.kentavr.info
Если вам понравился скрипт, то Вы можете отблагодарить положив от рубля и выше на:
Регистрация открывает полный доступ ко всем материалам сайта и даёт дополнительные возможности влиять на содержание сайта. Например, только зарегистрированные пользователи могут предлагать к публикации новости и писать комментарии. Многие страницы нашего сайта выглядят по-разному для гостей и зарегистрированных пользователей. Это объясняется тем, что человеку, впервые попавшему на сайт, необходимо, прежде всего, составить общее впечатление о его структуре и содержании, тогда как постоянного посетителя интересуют изменения, произошедшие с его последнего посещения. Есть разделы доступные только для зарегистрированных пользователей. Поэтому если вы не случайный гость и собираетесь в будущем посещать наш сайт, то вам стоит подумать о регистрации.
Для регистрации нового пользователя необходимо заполнить регистрационную форму. После заполнения регистрационной формы на ваш почтовый адрес будет выслано специальное сообщение с вашими регистрационными данными и специальной ссылкой для активации вашего аккаунта. Вам необходимо в течение 24 часов после получения письма посетить специальную страницу по указанной ссылке. Активация необходима для проверки вашего почтового ящика. Если вы в течение 24 часов не подтвердили свою регистрацию, она признаётся недействительной, и все данные удаляются. С этого момента любой другой пользователь может зарегистрироваться под освободившемся именем.
В прошлой главе мы познакомились с основами модуля mod_rewrite. В примере, который был рассмотрен, мы использовали конструкцию, которая в буквальном смысле означает следующее: «Если кто-то пытается получить доступ к файлу .htaccess, выдается ошибка, сообщающая, что доступ к файлу запрещен».
Это «правило» глобально, то есть каждый получит указанное сообщение об ошибке. Напомню, что mod_rewrite является модулем, который предоставляет «основанный на правилах механизм динамического изменения запрашиваемых URL-ов».
Мы можем ограничивать «правило» при помощи различных «условий правила». «Правило» будет выполнено только в том случае, если перед ним будет встречен ряд условий.
Синтаксис: условие должно предшествовать правилу!
Возьмем еще один пример (запись в файле .htaccess):
Назначение первых трех записей было подробно разобрано в первой части публикации. Их функция - включение «движка перезаписи», то есть самого модуля.
Последние две строки запрещают доступ поисковому роботу под кодовым названием «EmailSiphon» (имеется ввиду имя юзер-агента). Данный робот является сборщиком почтовых адресов с различных веб страниц.
Проверочная строка – переменная сервера, которая может быть записана в общей форме: «% {ИМЯ_ПЕРЕМЕННОЙ}».
Образец условия – регулярное выражение. Для более полного понимания темы стоит рассмотреть регулярные выражения как класс.
Регулярные выражения – это механизм, позволяющий задать шаблон для строки и осуществить поиск данных, соответствующих этому шаблону в заданном тексте. Кроме того, дополнительные функции по работе с такими выражениями позволяют получить найденные данные в виде массива строк, произвести замену в тексте по шаблону, разбиение строки по шаблону и т.п. Однако главной их функцией, на которой основаны все остальные, является именно функция поиска в тексте данных, соответствующих шаблону (образцу), описанному в синтаксисе регулярных выражений.
Регулярные выражения подобны маленькому, компактному языку программирования со своими правилами.
Например, регулярное выражение:
заменит строку «abc», на строку «xyz» во всем тексте.
Вот краткий обзор наиболее важных элементов с некоторыми примерами:
. (точка) - текст (любой символ)
| - чередование (то есть/abc|def/)
* - квантификатор (разрешено любое число)
^ $ - якоря строки
s - оператор (string1 заменить на string2)
g - модификатор (искать по всему тексту)
Регулярные выражения конструируются с помощью этих элементов и других «обычных» символов. Они не являются отдельным языком, а используются другими средствами, например языками программирования типа Perl или PHP, а также текстовыми редакторами (Emacs).
Если говорить о связи регулярных выражений и модуля mod_rewrite, то они используются в директивах RewriteRule и RewriteCond.
«^» обозначает начало строки. Из этого следует, что UserAgent должен начинаться со строки «EmailSiphon» и ни с чего другого («NewEmailSiphon», например, не работал бы).
Но, поскольку данное регулярное выражение не содержит символ "$" (якорь конца строки), UserAgent мог бы быть, например, «EmailSiphon2».
Последняя строка нашего примера:
определяет, что именно нужно делать, когда робот запросит доступ.
Регулярное выражение «^.*$» означает: «Доступ ко всем файлам запрещен».
Точка «.» в регулярном выражении – мета символ (подстановочный знак), означающий любой случайный символ.
«*» означает то, что строка может встречаться неограниченное количество раз. В этом случае, независимо от имени запрошенного файла, будет выдана ошибка.
«EmailSiphon», конечно, не единственный почтовый сборщик. Другой известный член этого семейства - «ExtractorPro». Допустим мы хотим запретить доступ и этому роботу. В таком случае нам необходимо еще одно условие.
Теперь файл .htaccess будет выглядеть так:
Третий аргумент [OR] (в первой строке RewriteCond) называется «флагом». Существуют два возможных флага:
NC – не учитывать регистр букв.
OR – означает «или следующее условие».
Флажок NC позволяет игнорировать регистр букв в искомом образце. Например:
Эта строка определяет, что и "emailsiphon" и "EmailSiphon" будут признаны как идентичные выражения.
Вы можете использовать сразу несколько флажков, разделяя их запятыми.
Нет никаких ограничений по числу условий. Таким образом, Вы можете блокировать 10, 100, 1000 или более известных почтовых сборщиков. Определение этих 1000 условий – просто вопрос загрузки сервера и прозрачности файла «.htaccess».
В вышеупомянутом примере используется глобальная переменная «HTTP_USER_AGENT». Существуют также другие переменные: REMOTE_HOST, REMOTE_ADDR
Например, если Вы хотите заблокировать паука пришедшего с www.site.ru, Вы можете использовать глобальную переменную «REMOTE_HOST» таким образом:
Если Вы хотите заблокировать определенный IP адрес, условие будет выглядеть так:
В регулярном выражении по проверке точного и полного IP адреса нужно использовать начальные и конечные якоря.
Также можно исключить целый диапазон:
Этот пример показывает, как можно заблокировать диапазон IP адресов с 212.37.64.0 по 212.37.64.255.
А вот маленькая задачка для проверки приобретенных знаний (решение будет дано в следующей части):
Внимание, вопрос!
Если мы пишем в регулярном выражении «^212.37.64» вместо «^212.37.64.» (с точкой в конце), то даст ли это тот же самый эффект, и будут ли исключены те же самые IP адреса?
До сих пор мы использовали простой RewriteRule, который генерирует сообщение об ошибках. В третьей части публикации мы проанализируем, как можно использовать RewriteRule для переадресации посетителей к определенным файлам.