Manlix Guestbook
О скрипте
Manlix Guestbook - гостевая книга, написана на php.
Возможности скрипта

  1. Мульти-админ (управление скриптом несколькими людьми, 19 уровней доступа).
  2. ВСТРОЕННЫЙ РУССКИЙ ЯЗЫК МИНИ-ПРОГРАММИРОВАНИЯ.
  3. Вся база хранится в обычных текстовых файлах.
  4. Умная система анти-флуд.
  5. Система антимат (автозамена).
  6. Система блокировки (банлист).
  7. Система замены смайликов в сообщениях.
  8. Есть возможность закрывать гостевую книгу.
  9. Всё управление скриптом производится, через веб интерфейс.
  10. Добавление ответов к сообщениям.
  11. Редактирование ответов на сообщения.
  12. Удаление ответов на сообщения.
  13. Редактирование непонравившихся сообщений.
  14. Удаление непонравившихся сообщений.
  15. Поля: имя, сайт, почта, аська, сообщение.
  16. Полное изменение дизайна под любой сайт.
  17. Русская дата в сообщениях [Пример: 03 Мая, 2003 (Суббота, 15:46)].
  18. При добавлении сообщения, данные посетителя добавляются в куки (cookie).
  19. Навигация по страница следующего вида:
    << < 01 02 03 04 05 06 07 08 09 > >>
  20. Использование шаблонов.
  21. Создание своих шаблонов.
  22. Редактирование шаблонов.
  23. Поддержка большинства современных веб браузеров.
  24. Корректная работа скрипта, при error_reporting=E_ALL
  25. Корректная работа скрипта, при register_globals=Off
Системные требования

  • Веб сервер
  • PHP (4.1.0 или выше)
Добавленные или обновившееся файлы в этой версии
файл: index.php
файл: admin.php
файл: inc/config.inc.dat
файл: inc/functions.inc.php
файл: inc/interpreter.inc.php
файл: inc/templates/default/message.inc.html
Права доступа (CHMOD)
index.php 660
admin.php 660

images
770
images/*.* 660
images/smiles 770
images/smiles/*.* 660

inc
770
inc/templates 770
inc/templates/* 770
inc/templates/*/*.* 660
inc/*.dat 660
inc/*.php 660

Обратите внимание!

ЕСЛИ ВЫ ПОЛЬЗУЕТЕСЬ БЕСЛАТЫНМ ХОСТИНГОМ, то скорей всего CHMOD нужно ставить другой, обычно у таких хостеров есть свой F.A.Q. обязательно почитайте его, а то скажите, что мол скрипт не рабочий, а на самом деле окажется, что CHMOD не такой какой надо поставили.
Установка скрипта

НЕ УСТАНАВЛИВАЙТЕ СКРИПТ В ПАПКУ CGI-BIN
  1. Создайте на своём веб сервере папку guestbook.
  2. Загрузите в неё файл index.php и две папки images & inc (вместе с их содержимом).
  3. Установите на файлы скрипта CHMOD (права доступа, установить их можно из почти любовго ftp клиента).
  4. Откройте веб браузер, введите в нём: http://ВашСайт/guestbook/index.php
  5. Если Вы увидели перед собой гостевую книгу, значит она у Вас работает :)
ИНФОРМАЦИЯ СПЕЦИАЛЬНО ДЛЯ ЛЮБИТЕЛЕЙ INCLUDE(), REQUIRE() И SSI
Настоятельно рекомендую использовать шаблоны, не зря же их придумали, ну и собственно не зря же я написал три раздела для работы с ними в управлении скриптом (admin.php).

Если Вы всё-таки противитесь, то скажу минусы, из-за которых Вы точно будете использовать шаблоны :) И так, при не использовании шаблонов Вас ждёт: (имеется ввиду, если Вы вставите скрипт, куда-нибудь с помощью include(), require() или ssi)

    1. Отключение сохранение информации посетителя в куки (cookie)
    при добавлении сообщения.
    2. Отключение умной системы анти-флуд.

Думаете, что я специально Вам это отключу? :( Анн нет...
Безопасность
По-умолчанию, к управлению скриптом установлена следующая информация:
Имя админа: admin
Пароль: password

После того, как Вы загрузите сам скрипт на веб сайт, настоятельно рекомендую создать в управлении скриптом (admin.php) нового админа, с новым паролем (раздел админ -> добавление нового админа), а админа с именем admin удалить (раздел админ
-> удаление админа
).
Установка новых смайликов
Все смайлики хранятся в папке images/smiles Например, если в сообщении есть :20: и в папке images/smiles существует файл с именем 20.gif, то :20: автоматически заменится на графический файл 20.gif, если же такой файл не существует в папке images/smiles, то :20: так и останется :20: ничего не заменится :)

Чтобы добавить в базу смайлик :abcd: просто-таки добавьте в папку images/smiles файл abcd.gif
Вместо abcd, можно использовать следующие символы: A-Z, a-z, 0-9, - и _
Константы
Константы выглядят следующим образом @название_константы@, вставлять их нужно в шаблоны (управлять ими можно, через управление скриптом (admin.php)). Каждая константа, содержит какую-либо информацию, вся эта информация указана ниже:

Шаблон "форма"
@error@ошибка
@cookie_name@имя посетителя, считывается из кук (cookie)
@cookie_homepage@сайт посетителя, считывается из кук (cookie)
@cookie_mail@адрес почты посетителя, считывается из кук (cookie)
@cookie_icq@номер icq, считывается из кук (cookie)
@cookie_message@сообщение посетителя, считывается из кук (cookie), если есть ошибка
Шаблон "сообщение"
@name@имя того, кто добавил сообщения
@nameJS@имя того, кто добавил сообщения (для JS скриптов)
@bgcolor@цвет чётный или нечётный, взависимости от номера сообщения
@message@сообщение того, кто добавил сообщения
@homepage@сайт того, кто добавил сообщения
@mail@адрес почты того, кто добавил сообщения
@icq@icq номер того, кто добавил сообщения
@author@автор (один из админов) ответа на сообщение
@answer@ответ админа
@num@номер сообщения
Шаблон "низ"
@navigation@навигация по страница гостевой книги
@AllMessages@кол-во сообщений в гостевой книге
Системные константы
(берутся из файла параметров скрипта, можно использовать в любых шаблонах)
@IniDirPath@папка, в которой хранится сам скрипт
@IniDirInc@системная папка скрипта
@IniDirTemplates@папка в которой хранятся шаблоны
@IniDirImages@папка, в которой хранятся картинки
@IniDirSmiles@папка, в которой хранятся смайлики
@IniFileBase@файл, в котором хранится база сообщений
@IniFileFunctions@файл с функциями для скрипта
@IniFileInterpreter@файл для работы с русским мини-языком программирования
@IniFileAdmins@файл, в котором хранятся имена админов, их пароли и права доступа
@IniFileAutochange@файл, с базой антимата (автозамена)
@IniFileBanlist@файл, в котором хранится инфорамция о тех посетителях, которым заблокирован доступ в гостевую книгу
@IniUrlGeneral@полный url до скрипта
@IniUrlImages@url до картинок
@IniUrlSmiles@url до смайликов
@IniSymbolLeft@левый символ в навигации
@IniSymbolRight@правый символ в навигации
@IniSymbolSeparator_between_pages@разделитель между номерами страниц в навигации
@IniNumericShow_messages@кол-во сообщений на одной странице
@IniNumericShow_pages@кол-во страниц в навигации
@IniNumericMin_name@минимальный размер имени в символах
@IniNumericMax_name@максимальный размер имени в символах
@IniNumericMin_icq@минимальный размер номера icq
@IniNumericMax_message@максимальное кол-во символов в сообщении
@IniNumericMax_word@максимальная длина каждого слова в сообщении
@IniNumericFlood@через сколько минут после добавления сообщения, можно добавлять ещё одно сообщение
@IniNumericShow_smiles@кол-во смайликов в одной строке (под формой)
@IniTemplateParse@шаблон, который использует скрипт
@IniTemplatesTop@имя шаблона "верхушка"
@IniTemplatesForm@имя шаблона "форма"
@IniTemplatesNo_messages@имя шаблона "нет сообщений"
@IniTemplatesMessage@имя шаблона "сообщение"
@IniTemplatesBottom@имя шаблона "низ"
@IniTemplatesOkay@имя шаблона "сообщение добавлено"
@IniTemplatesClosed@имя шаблона "гостевая книга закрыта"
@IniClosedClosed@статус гостевой книги (0 - открыта, 1 - закрыта)
@IniClosedMessages@если гостевая книга закрыта, то показывать ли сообщения, которые есть в базе? (0 - нет, 1 - да)
@IniScriptName@название скрипта
@IniScriptPrefix@префикс для кук (cookie)
@IniScriptRussian@имя скрипта, но по-русски
@IniScriptVersion@версия скрипта
@IniScriptInfo@дополниетльная информация
@IniColorCurrent_page@цвет текущей страницы в навигации
@IniColorNot_current_page@цвет нетекущей страницы в навигации
@IniColorEven@цвет для чёта
@IniColorUneven@цвет для нечёта
@IniColorActive_symbol@цвет для активных, боковых символов в навигации
@IniColorNot_active_symbol@цвет для неактивных, боковых символов в нацигации
Русский мини-язык программирования
Зачем он вообще нужен?
Ответ прост: для облегчения и более расширенной работы скрипта для опытных пользователей.

Как он дествует?
Его нужно писать в самом начале строки какого-либо шаблона, и действует он только на той строчке, на которой был записан, на данный момент этот язык умеет понимать, только одно условие, а именно если. Все операторы и переменные, нужно вводить, через пробел.

Примеры, с использованием оператора если:
  1. если сайт определён
  2. Сайт: @homepage@

    Описание: в этом примере, проверяется ввёл ли посетитель, адрес своей домашней странички, если ввёл, то скрипт выведет Сайт: @homepage@ (в переменной @homepage@ хранится сам адрес), а если нет, то эта строчка превратится в ноль, т.е. вообще не выводиться.

    если - оператор
    сайт - переменная
    определена - условие

    Существующие переменные:
    • сайт
    • почта
    • ася
    • ответ
    • навигация
    • чётная
    • ошибка


    Условия класса истина
    • есть
    • существует
    • определён
    • определенно
    • определена
    • определены

    Условия класса ложь
    • пустая
    • пуста
    • пустое
    • пусты
    • пуст

Подключаем в какой-нибудь шаблон текстовый файл:
  1. подключить d:/server/www/MyFile.html текст

Используем встроенный "русский мини-язык программирования".

Подключаем в какой-нибудь шаблон php файл:
  1. подключить d:/server/www/MyFile.php пхп

Опять же используем встроенный "русский мини-язык программирования".
Обращение к скрипту

  • admin.php - управление скриптом.
  • index.php - скрипт выведет первые несколько сообщений + навигацию по страницам гостевой книги.
  • index.php?guestbook_page=5 - скрипт выведет 5 страницу гостевой книги
  • index.php?guestbook_page=all - скрипт выведет все сообщения гостевой книгы на одной странице.
Распространение скрипта
Мой скрипт ялвяется полностью БЕСПЛАТНЫМ, можете добавлять его в свои каталоги, на дискеты, на CD-ROM`ы, куда угодно...
История скрипта

версия 1.4
  • Исправлены найденные ошибки.
  • Новая константа @nameJS@ для шаблона "сообщение", в ней хранится имя того, кто добавил сообщение, добавлена специально для работы с js скриптами.
версия 1.3
  • Теперь в файлы шаблонов можно подключать php и текстовые файлы с html кодом из любой папки.
  • Исправлены найденные ошибки.
  • Написано небольшое руководство по "русскому мини-языку программирования".
версия 1.2
  • Добавлена поддержка браузеров: Mozilla, Netscape и Opera.
  • Теперь при щелчке по имени автора какого-нибудь сообщения, это имя автоматически добавляется в поле для сообщения.
  • Исправлены мелкие ошибки.
  • Новая переменная в русском мини-языке программирования: чётная (определяет тип сообщения: чётное или нечётное)
  • Много новых констант (например: @IniScriptName@), автоматически берутся из файла параметров скрипта.
  • Теперь сообщения в управлении скриптом выводятся в правильном порядке.
  • Усовершенствована система замены смайликов в сообщении, засчёт этого:
         У админа появилась возможность добавлять смайлики в свои ответы на сообщения.
         Экономится около 40 байт на каждое сообщение, в котором есть смайлик.
  • Добавлен новый оператор "подключение", с помощью него можно подгружат в файлы шаблона php скрипты или обычный текст (с html кодом).
  • Появилась возможность удалять ответы на сообщения.
  • Появилась возможность редактировать сообщения пользователей.
  • Появилась возможность закрывать гостевую книгу с двумя параметрами:
         С выводом сообщений, которые есть в базе на данный момент.
         Без вывода сообщений.
  • Добавлена система АнтиМат (автозамена).
версия 1.1
  • Добавлено ограничение на использование тегов посетителями.
  • Создан раздел "изменение параметров" в управлении скриптом (admin.php).
  • Доделан раздел "просмотр параметров" в управлении скриптом (admin.php).
версия 1.0
  • Релиз скрипта.
От автора
Как говорится: "сам себя не похвалишь - никто не похвалит", скрипт на самом деле уникальный :) Это первый скрипт в русском интернете, который имеет встроенный мини-язык программирования на родном, на русском языке. Он даёт большие возможности опытным пользователям.
Так же хочу сказать ОГРОМНОЕ СПАСИБО за использование именно моего скрипта!
Разработка скрипта: Manlix