Магазин бумаги Procreate бумажные текстуры Dogma добавил(а) новый ресурс:
Магазин бумаги Procreate бумажные текстуры - Улучшите свои проекты с помощью этого тщательно отобранного набора кистей с текстурой бумаги.
...
Листва набор кистей Photoshop Dogma добавил(а) новый ресурс:
Листва набор кистей Photoshop - Набор кистей и штампов для пейзажных зарисовок, хорошая основа для иллюстраций, матовой живописи.
...
Регистрация на нашем ресурсе Друзья, с 19 февраля 2021 года наш ресурс ограничивает бесплатную регистрацию для бесплатного скачивания цифрового материала с нашего официального форума на choice-art.ru.
Мы на ...
Функции получения данных от пользователя ---------------------------------------- Эти функции используются для получения данных, которые были отправлены браузером на сервер.
Имеется 4 функции:
1. %GET()% - получение данных, переданных браузером методом GET 2. %POST()% - получение данных, переданных браузером методом POST 3. %COOKIE()% - получение данных, переданных браузером в параметрах cookie 4. %AGENT()% - получение версии браузера
Функции %GET()%, %POST()% и %COOKIE()% одинаковы по синтаксису вызова и принимают один единственный аргумент - имя запрашиваемой переменной.
Функция %AGENT()% возвращает версию запрашиваемого типа браузера. Функция определяет браузер по полю User-Agent, которое браузер обязан передать на сервер в HTTP-заголовке. Аргументом функции является строка, версию какого браузера мы хотим узнать, иными словами, функция не возвращает нам название браузера, мы должны его передать сами. Допустимыми аргументами являются четыре строки: IE - запросить, является ли браузер Internet Explorer, возвращает версию, если это так, иначе 0 Opera - запросить, является ли браузер Opera, возвращает версию, если это так, иначе 0 NN - запросить, является ли браузер Netscape Navigator, возвращает версию, если это так, иначе 0 Mozilla - запросить, является ли браузер Mozilla, возвращает версию, если это так, иначе 0
В структуре чата есть два фрейма, которые выпадают из общего принципа формирования кода. Это фреймы "баннер" и "меню". В то время, как почти все фреймы и окна чата формируются по шаблонам, основные правила которых описаны ТУТ, эти два фрейма не проходят через парсер сервера. Этому есть две причины. Во первых код этих фреймов достаточно прост и нет смысла его проводить через парсер, во вторых, для ускорения загрузки чата код формируется динамически непосредственно в браузере. Тем не менее, некоторая схожесть с шаблонами присутствует, т.к. в коде присутствуют шаблонные переменные, которые необходимы для определения положения элементов.
В коде фрейма "баннер" можно использовать всего три шаблонных переменных:
• %BANNER% - в это место устанавливается баннер, список баннеров необходимо задать в разделе "Баннеры", смена баннеров происходит после каждой отправки сообщения; • %LOGO% - в это место устанавливается логотип, который загружен в разделе "Логотип"; • %MENU% - в это место, куда устанавливаются кнопки меню, кнопки всегда расположены в ряд, настройка меню производится в разделе "Меню".
В коде фрейма "меню" можно использовать только одну шаблонную переменную %MENU%.
Если во фрейме баннера будет установлено меню, то необходимости во фрейме "меню" нет и его необходимо убрать в разделе "Фреймы".
Если не предполагается использовать баннеры и логотип, то необходимо убрать фрейм баннера, оставить только фрейм меню.
В остальном эти фреймы аналогичны остальным фреймам чата и в них можно использовать произвольный HTML-код, нельзя только использовать шаблоны системы.
Важно помнить, что во всех остальных окнах и фреймах чата для отображения баннера и логотипа необходимо пользоваться шаблонными функциями %CHAT('BANNER')% и %CHAT('LOGO')% соответственно.
Стилевые параметры этих фреймов задаются в разделе "Дизайн".
Альтернативное меню
Стандартное меню чата состоит из прямоугольных кнопок одинаковой ширины и высоты, стили которых можно настраивать через "Дизайн". Однако, имеется возможность создавать меню из графических или текстовых кнопок. В этом случае необходимо самостоятельно прописать в коде расположение кнопок, используя для графических кнопок тэг
<img>
, а для текстовых –
<a>...</a>
.
Чтобы кнопки функционировали необходимо указать ряд параметров в этих тегах:
• name — обязательный параметр, указывает какую функцию выполняет кнопка (см. ниже); • frame — необязательный параметр, должен принимать значение "1", указывает на то, что функция будет выводиться во фрейме чата, а не во всплывающем окне, параметр не должен использоваться вместе с параметром win; • win — необязательный параметр, указывает на то, что функция будет выводиться во всплывающем окне, значение этого параметра определяет конфигурацию всплывающего окна (см. ниже), если отсутствуют оба параметра win и frame, то это заставит создать всплывающее окно, конфигурация которого определяется админкой чата, параметр win не должен использоваться вместе с параметром frame; • menu — необязательный параметр, должен принимать значение "1", указывает на то, что данная кнопка является кнопкой меню чата, имеет смысл использовать только если данная функция кнопки является нестандартной (например, открывается внешний URL).
Стандартные функции (параметр name):
• help — окно помощи; • rules — окно правил чата; • people — окно раздела "Люди"; • people/form — окно регистрации; • who — список посетителей в онлайне • whowas — список посетителей, побывавших в чате; • calendar — окно календаря; • gb — окно гостевой книги, функция работает, только если корректно настроены виртуальные каталоги; • creation — окно творчества, функция работает, только если корректно настроены виртуальные каталоги.
Также в качестве функции можно использовать любой URL.
Определение конфигурации всплывающих окон (параметр win).
В конфигурации окна необходимо указать три параметра – десятичных числа, разделенных символом двоеточия. Первое число указывает, какой ширины должно быть окно, значение указывается в пикселах, если указать ноль, то ширина окна будет соответствовать ширине родительского окна. Второе число указывает, какой высоты должно быть окно, значение указывается в пикселах, если указать ноль, то высота окна будет соответствовать высоте родительского окна. Третий параметр является суммой чисел, которые определяют элементы окна:
• 1 — окно должно содержать полосы прокрутки; • 2 — окно должно быть изменяемым; • 4 — окно должно содержать меню браузера; • 8 — окно должно содержать кнопки браузера; • 16 — окно должно содержать адресную строку; • 32 — окно должно содержать статусную строку; • 64 — окно должно открываться по середине экрана.
ВАЖНО! Многие современные браузеры по соображениям безопасности всегда включают в состав окна часть перечисленных элементов, например, некоторые браузеры всегда выводят адресную и статусную строки, независимо от того, были переданы эти параметры или нет.
Пример. Чтобы открыть окно размером с родительское и при это окно содержало полосы прокрутки и его можно было изменять, необходимо в кнопке указать параметр win="0:0:3", где 3 – это сумма чисел 1 (полосы прокрутки) и 2 (изменяемый размер).
Второй пример. Чтобы открыть окно фиксированного размера по центру экрана и при это окно содержало полосы прокрутки необходимо в кнопке указать параметр win="500:400:65", где 500 и 400 – ширина и высота окна соответственно, а 65 – сумма чисел 1 (полосы прокрутки) и 64 (окно по центру).
Устанавливать альтернативное меню можно в любой фрейм чата, кроме окна сообщений. Это вносит большее разнообразие при создании неповторимого облика чата.
Увеличить функциональность чата можно с помощью функций-ботов. Отличие функций-ботов от остальных функций чата заключается в том, что боты находятся в чате как обычные посетители и имеют собственные имена, а вызов функций производится путем отправки сообщений в чат на имя бота.
Боты разбиты на две группы:
медиа-боты — позволяют выводить в чат медиа-контент, такой как: музыка, катринки и видео. инфо-боты — позволяют получать такую информацию как: прогноз погоды, курс валют, перевод текста с одного языка на другой. Разбиение ботов на группы позволяет более гибко манипулировать привилегиями пользователей для доступа к этим функциям.
Медиа-боты
Запросы на медиа-боты перенаправляются на сторонние сервера для поиска запрашиваемого медиа-контента. Так поиск музыки осуществляется на различных mp3-серверах, поиск видео осуществляется сервером www.youtube.com, поиск картинок — поисковиком www.google.com.
Т.к. поиск медиа-контента может выдавать более одного результата, то по результатам поиска формируется список. Для управления списком служат команды бота, команды начинаются с символа "." (точка) и следом указывается название команды.
Список команд медиа-ботов:
• where/где — выводит список серверов, на которых осуществляется поиск; • list/лист — выводит текущую страницу списка из результата поиска, список всегда содержит не более 10 элементов; • page/страница — выводит следующую страницу списка из результата поиска; • next/еще — воспроизводит в чате следующий элемент из списка, для нового поиска воспроизведение всегда начинается с первого элемента списка; • число — воспроизводит произвольный элемент, номер должен совпадать с номером из списка.
Все медиа-боты имеют одинаковый синтаксис поиска и управления.
Инфо-боты
К ботам группы "инфо-боты" относятся следующие боты:
• информер — выдает информацию о погоде и курсе валют. • переводчик — переводит текст. • калькулятор — производит вычисление выражений.
Боты группы "инфо-боты" не так однородны, как боты группы "медиа-боты" и для них не существует общих команд, но некоторым из них можно послать команду "?" (знак вопроса) для получения справки по командам.
Погода
Для получения информации о погоде необходимо информеру послать команду "погода название_города" или "weather название_города". Если не указывать город, то он будет вычислен автоматически на основании данных входа пользователя. Бывает, что информер выдает погоду в городе не той страны, которая ожидалась, это случается когда в разных странах имеются города с одним и тем же названием. Для такого случая необходимо информеру явно указать страну, в которой находится город, используя следующий синтаксис: "погода co:название_города", где co — двухбуквенное обозначение страны, например для России это ru, для США — us.
Курсы валют
Для получения курсов валют необходимо информеру послать команду "курс валюта" или "rate валюта", где валюта указывается трехбуквенным кодом. Чтобы получить все возможные коды, которые понимает информер, необходимо ему послать команду "валюта" или "currency".
Переводчик Если язык оригинала — русский, то переводчик будет переводить текст на английский язык. Если язык оригинала не русский, то переводчик попытается сам определить язык, на котором написан текст и переведет его на русский язык. Кроме того, переводчику можно явно указать язык оригинала и язык перевода, для этого применяется следующий синтаксис: sl|tl|текст, где sl — код языка оригинала, tl — код языка перевода, коды языков перечислены на этой странице.
Калькулятор
Кроме возможности вычислять простые арифметические выражения в калькулятор встроены мощные механизмы для проведения сложных и длинных расчетов. Так, калькулятор снабжен памятью, в которую заносятся все ваши выражения и их результаты, это позволяет использовать результаты этих выражений в следующих выражениях. Также, каждое выражение можно снабдить комментарием и впоследствии проконтролировать ход всех вычислений. Но самое интересное в калькуляторе — это возможность задавать пользовательские функции, что значительно упрощает проведение сложных расчетов и уменьшает вероятность допустить ошибку.
Удобство пользования калькулятором наглядно можно продемонстрировать на примерах.
Пример 1, простой расчет, демонстрирует работу с памятью и комментарием.
В этом примере в память заносятся два числа и над ними производятся четыре математических действия
Пример 2, демонстрирует работу пользовательских функций.
August: калькулятор, .clear калькулятор: August: список очищен August: калькулятор, .def sh ( $1) = (e ^ $1 - e ^ (-$1)) / 2 // гиперболический синус калькулятор: August: определена новая функция `sh` August: калькулятор, .def ch ( $1) = (e ^ $1 + e ^ (-$1)) / 2 // гиперболический косинус калькулятор: August: определена новая функция `ch` August: калькулятор, .def калькулятор: August: 1: sh ( $1 ) = (e ^ $1 - e ^ (-$1)) / 2 // гиперболический синус 2: ch ( $1 ) = (e ^ $1 + e ^ (-$1)) / 2 // гиперболический косинус August: калькулятор, sh (1) калькулятор: August: $1 = 1.175201 August: калькулятор, ch (1) калькулятор: August: $2 = 1.543081 August: калькулятор, ch (pi) калькулятор: August: $3 = 11.591953 August: калькулятор, .def sind ( $1 ) = sin ( pi * $1 / 180 ) // вычисление синуса угла, заданного в градусах калькулятор: August: определена новая функция `sind` August: калькулятор, sind (90) калькулятор: August: $4 = 1 August: калькулятор, sind (30) калькулятор: August: $5 = 0.5 August: калькулятор, sind (60) калькулятор: August: $6 = 0.866025 August: калькулятор, sqrt (3) / 2 калькулятор: August: $7 = 0.866025 August: калькулятор, .def калькулятор: August: 1: sh ( $1 ) = (e ^ $1 - e ^ (-$1)) / 2 // гиперболический синус 2: ch ( $1 ) = (e ^ $1 + e ^ (-$1)) / 2 // гиперболический косинус 3: sind ( $1 ) = sin ( pi * $1 / 180 ) // вычисление синуса угла, заданного в градусах August: калькулятор, .list калькулятор: August: $1 = 1.175201 // sh (1) $2 = 1.543081 // ch (1) $3 = 11.591953 // ch (pi) $4 = 1 // sind (90) $5 = 0.5 // sind (30) $6 = 0.866025 // sind (60) $7 = 0.866025 // sqrt (3) / 2
Команды калькулятора:
• .list/лист — выводит результаты ваших выражений и сами выражения. • .def имя ( список_аргументов ) = выражение — определяет пользовательскую функцию с именем имя, список аргументов функции указывается через запятую, отсчет всегда от единицы, например, для функции, которая принимает три аргумента список должен выглядеть как ($1, $2, $3). Команда .def без параметров выводит список всех пользовательских функций. • .del имя — удаляет пользовательскую функцию с именем имя. • .clear/.reset/.очистить — очищает список выражений и список пользовательских функций. • .precision/.точность число — определяет точность, с которой выводятся результаты вычислений, число указывает, сколько знаков после запятой требуется выводить, максимальное значение равно 20. • .exp — включает/выключает вывод результатов в экспоненциальной форме.
Управление ботами
Управление ботами может осуществлять только главный администратор чата. Для управление ботами используются четыре команды: запуск, остановка, стилизация и управление видимостью в комнатах.
Запуск ботов
Для запуска бота необходимо в чат передать команду:
/bot имя_бота start тип_бота
где:
• имя_бота — любое имя, которые вы хотите дать боту. • тип_бота — какого типа бот должен быть запущен.
Допустимые типы ботов:
• MUSIC — медиа-бот для поиска музыки. • YOUTUBE — медиа-бот для поиска видео. • IMAGES — медиа-бот для поиска картинок. • INFORMER — инфо-бот "информер". • TRANSLATOR — инфо-бот "переводчик". • CALC — инфо-бот "калькулятор".
В чате не допускается запускать несколько ботов одного типа.
Остановка ботов
Для остановки бота необходимо в чат передать команду:
/bot имя_бота stop
где:
• имя_бота — имя бота, который находится в чате.
Стилизация ботов
Стилизация ботов позволяет задавать никам и фразам ботов любые цвета и шрифты. Для стилизации бота необходимо в чат передать команду:
/bot имя_бота setup параметры_стилизации
где:
• имя_бота — имя бота, который находится в чате. • параметры_стилизации — такие параметры, как: nickcolor, nickfont, nickstyle, messcolor, messfont, messstyle, синтаксис полностью аналогичен синтаксису команды /setup.
Боты в других комнатах
Запуск ботов всегда производится только в одной комнате чата. Если в чате несколько комнат, то в них также можно установить ботов. Чтобы боты были доступны в других комнатах надо выполнить следующую команду:
/bot имя_бота room номер_комнаты
где:
• имя_бота — имя бота, который находится в чате. • номер_комнаты — номер комнаты чата, номера комнат можно увидеть в админке чата в разделе "комнаты". Допускается передавать сразу несколько номеров, номера должны указываться через пробел.
Повторное выполнение команды для той же комнаты отключит бота в этой комнате.
Боты в списке посетителей
Чтобы в списке посетителей боты не смешивались с другими пользователями чата, их можно посместить в отдельный список, для этого необходимо отредактировать шаблон "кто в чате" и указать в функции %CHAT("WHO", ... )% подсписок для ботов (подробнее об этой функции написано в документации Шаблон списка посетителей).
Общедоступные команды, работают у всех пользователей:
/clear очищает окно сообщений; /visit[nick] без параметра выводит дату вашего последнего посещения, c параметром nick — дату последнего посещения пользователя которого вы хотите узнать; /date или /дата выводит текущую дату и время согласно установкам чата, строка форматирования настраивается в админке; /stat выводит текущую статистику чата; /status[строка] или /статус[строка] устанавливает свой статус (надпись рядом с ником в списке посетителей), доступно тем, кто имеет привилегию "свой статус", команда без параметра отключает свой статус; /invisible или /inv устанавливает режим невидимости в чате доступно тем, кто имеет привилегию "невидимость"; /ignore[nick] или /игнор[nick] альтернатива окну личного игнора, поместит/удалит пользователя в/из личного игнора, допускается задавать ники списком, разделять ники надо запятыми, команда без параметров отобразит список пользователей, находящихся в личном игноре; /friends[nick] или /друзья[nick] поместит/удалит пользователя в/из список друзей, которым разрешено видеть вас когда вы находитесь в невидимках, доступно только тем, у кого имеется привилегия "невидимость", команда без параметров отобразит список пользователей, находящихся в друзьях; /list или /лист выводит список онлайн-пользователей, для модераторов выводится дополнительная информация; /mypriv выводит таблицу с привилегиями, которые вам доступны; /translit или /транслит включает/выключает переводчик транслита; /setup[параметры] устанавливает настройки пользователя (команда без параметров выводит все возможные настройки), все настройки устанавливаются согласно актуальным привилегиям пользователя, установленные таким образом настройки не сохраняются в базе и действуют только в текущем сеансе; /autoanswer[сообщение|on|off] или /автоответчик[сообщение|on|off] автоответчик, предназначен для автоматической отправки сообщения при обращении к пользователю, чтобы установить сообщение в параметре надо передать это сообщение, параметр on включает автоответчик, параметр off выключает автоответчик, команда без параметров выводит текст сообщения, команда доступна только тем, у кого имеется привилегия "автоответчик"; /exit[строка] или /выход[строка] покинуть чат, аналогично выходу через навигацию, команда с текстом выводит этот текст как фразу выхода; /awaynick отображает временя, в течении которого пользователь был неактивен; /copy или /copyright выводит информацию о дате и времени сборки программы чата. Слеюдующие команды предназначены только для мини-комнат и не работают в чате: /roomname имя устанавливает название комнаты, название отображается в списке всех мини-комнат; /room private меняет состояние комнаты на приватную, приватные комнаты не отображаются в общем спсике мини-комнат попасть в приватную комнату можно только по вызову ее владельца; /room public меняет состояние комнаты на публичную; /callnick выдает приглашение пользователю зайти в мини-комнату.
Также в мини-комнатах работают некоторые команды чата.
Команды только для админа и модератора:
/cls очищает окно сообщений всем пользователям; /infonick или /инфоnick выводит информацию о компьютере пользователя; /infosetupnick или /setupinfonick выводит информацию о личных настройках пользователя; /killnick удаляет пользователя из чата; /offlinenick только для админа, переводит пользователя в режим оффлайн, при этом никаких сообщений в чат не выводится; /privnick только для админа, выводит таблицу с актуальными привилегиями, которые доступны данному пользователю, актуальные привилегии — назначенные привилегии плюс привилегии от звания; /privsetnick список_привилегий или /setprivnick список_привилегий только для админа, устанавливает для данного пользователя привилегии из списка, назначенные привилегии действуют только в течении текущей сессии, привилегии в списке разделяются пробелом и имеют следующие названия:
colornick — цветной ник; stylenick — стилизованный ник; colormess — цветные сообщения; stylemess — стилизованные сообщения; gradientnick — градиентный цвет ника; gradientmess — градиентный цвет сообщений; nicksmile — смайлики в нике; publichtml — общие HTML тэги; stylehtml — стили в тэгах; phrases — личные фразы входа/выхода; invisible — невидимость; mystatus — личный статус; nocensor — отключенный автоцензор; nosilence — неограниченное время молчания; private — личка; privatewin — приватные комнаты; miniroom — мини-комнаты; smiles — смайлики; privatesmiles — личные смайлики; vote — функция голосования; notebook — записная книжка; photo — фотоальбом; incognito — режим "инкогнито"; armour — режим "броня"; special — специальные символы HTML; autoanswer — автоответчик; status — статусы; mystatussmiles — смайлики в личном статусе; botmedia — медиа-боты; botinfo — инфо-боты;
/privunsetnick список_привилегий или /unsetprivnick список_привилегий только для админа, сбрасывает для данного пользователя привилегии из списка, привилегии сбрасываются только для текущей сессии; /ipпараметр выводит список пользователей с данным ip-адресом или в данной сети, параметр может иметь одно из значений: a.b.c.d - выводит список пользователей с ip-адресом a.b.c.d; a.b.c - выводит список пользователей в сети a.b.c.0 - a.b.c.255; a.b - выводит список пользователей в сети a.b.0.0 - a.b.255.255; a - выводит список пользователей в сети a.0.0.0 - a.255.255.255; 0 - выводит весь список пользователей;
/systemtest[blacklist|tor] IP или /testsystem[blacklist|tor] IP проверят указанный ip-адрес на наличие его в черном списке (параметр blacklist) или его принадлежность к сети TOR (параметр tor); /censorlog[on|off|clear] только для админа, журнал работы автоцензора, для включения журнала надо выполнить команду /censorlog on; /locklog[on|off|clear] только для админа, журнал блокировок, дублирование журнала из админки (пользователей, которые находятся в тотальном игноре и пытаются войти в чат), для включения журнала надо выполнить команду /locklog on; /bot
Функция подсчитывает просмотры анкеты, запоминает пользователей, которые просматривали анкету и позволяет выводить список просмотревших.
Запоминаются пользователи как находящиеся в чате, так и те, которые просматривают анкету, не входя в чат. В последнем случае ник будет отсутствовать, но запоминается IP-адрес и идентификатор компьютера. Просмотры учитываются только в том случае, если пользователь в текущих сутках открыл анкету первый раз, либо анкета была изменена, т.е. если один и то же пользователь в текущих сутках (от 00:00:00 до 23:59:59) будет открывать анкету несколько раз и при этом владелец анкеты ее не изменял, будет учтен только первый просмотр, если анкета была отредактирована, будет учитываться каждый просмотр.
Для вывода счетчика просмотров в анкете необходимо установить переменную %VIEWS%. Для получения списка просмотревших в анкету необходимо установить ссылку или кнопку с id или name равным show_viewers, пример:
<a id=show_viewers max=10>последние просмотры</a>
Допускается задавать количество элементов списка "последние просмотры", для этого необходимо задать атрибут max в тэге. Минимальное количество в списке ограничено числом 10, а максимальное - 100 элементов.
Внешний вид списка последних просмотров определяется шаблон "последние просмотры" раздела "Анкеты". Пример код шаблона в случае двухколончатого вывода:
%NUM% — порядковый номер в списке. %NICK% — ник просмотревшего (если есть). %DATE% — дата последнего просмотра. %COUNT% — сколько раз пользователь открывал эту анкету. %IP% — IP-адрес просмотревшего. %CC(n)% — функция проверки номера колонки, где n — номер колонки.
В приведенном шаблоне в случае отсутствия ника у пользователя (пользователь не вошел в чат) будет выводиться надпись "нет ника", но вместо надписи можно выводить, например, его IP-адрес, для этого можно использовать шаблонную переменную %IP%.
Кроме счетчика просмотров анкеты имеется счетчик, подсчитывающий сколько раз владелец анкеты просматривал текущую анкету, для вывода этого счетчика в анкету надо установить код:
%?<tr><td>Сколько раз Вы просматривали эту анкету:<td><b>%MY_VIEWS%</b></tr>?%
Вместе с этими функциями имеется привилегия "скрывать просмотры". Данная привилегия предоставляет доступ к одноименной настройке, т.е. настройке "скрывать просмотры". С включенной привилегией в личных настройках появляются дополнительный переключатель (чекбокс). Эта настройка позволяет скрывать свой ник в списке последних просмотров, однако счетчик будет учитывать просмотры в любом случае. Кроме того, настройка "скрывать просмотры" не скрывает ник пользователя в списке от администратора, администратор всегда видит полный список. Также состояние переключателя можно изменять консольной командой чата /setup hideviews. Данная команда меняет состояние переключателя только для текущей сессии, не сохраняя настройку, т.е. после перезахода в чат состояние переключателя "скрывать просмотры" будет определяться личными настройками.
Для защиты чата от автоматических регистраций анкет имеется возможность установить капчу (CAPTCHA) — специальную картинку с изображением случайного числа, которое легко будет читаться человеком, но крайне тяжело обрабатываться роботом.
ВАЖНО! Установка капчи требует изменение шаблонов чата, прежде необходимо открыть к ним доступ.
Для установки капчи требуется внести изменения в два шаблона.
Первый шаблон — "HTML-код анкеты" раздела "Люди", необходимо добавить в начало следующий код:
%ERROR_CAPTCHA = "Код с картинки указан неверно."%
Второй шаблон — "страница ников" раздела "Люди", необходимо найти код:
Функция капчи может принимать до трех параметров, влияющие на внещний вид капчи, синтаксис выглядит так:
%CAPTCHA(A0, A1, A2)%
где: A0 — оттенок серого, цвет, которым выводятся цифры: от черного (0) до белого (255), A1 — уровень искажения картинки: 0 – нет искажения, 10 – максимальное искажение A2 — уровень зашумленности картинки случайными линиями, число от 0 до 10, 0 – нет зашумленности
без A1 и A2 будет выводиться самая легко читаемая картинка, но и роботам будет легче ее опознать.
Функции для работы с формой --------------------------- Эти функции предназначены для упрощения создания формы ввода пользовательских данных.
Всего имеется 7 функций для формирования тэгов формы:
1. %input()% - однострочный ввод текста 2. %text()% - многострочный ввод текста 3. %checkbox()% - флажки (чекбоксы) 4. %radio()% - переключатели %radio2()% - альтернатива %radio()% 5. %select()% - выпадающее меню %select2()% - альтернатива %select()% 6. %button()% - кнопка 7. %submit()% - кнопка для отправки данных на сервер
Все функции имеют схожий синтаксис вызова. Необязательно задавать все агрументы у функций, если какой то агрумент не задан - будет использовано значение по умолчанию.
Для определения стилей большинства тэгов функции имеют аргумент style, который может принимать следующие значения: - пустая строка ("") добавляет в тэг стиль по умолчанию, который задан парсером - 0 - ничего в тэг добавлено не будет - любая другая строка будет определять пользовательский стиль оформления тэга (css или название класса)
функция может принимать до 6-и аргументов: 1. name - имя тэга, под этим именем данные будут отправлены на сервер 2. value - начальное значение строки 3. size - размер поля ввода, определяет размер поля на экране 4. maxlength - максимальное количество символов, которое можно ввести 5. style - стиль тэга 6. extra - любые дополнительные параметры тэга
функция может принимать до 7-и аргументов: 1. name - имя тэга, под этим именем данные будут отправлены на сервер 2. value - начальное значение строки 3. cols - количество видимых столбцов 4. rows - количество видимых строк 5. wrap - опрелеяет поведение при выходе строки в поле ввод за видимые границы поля 6. style - стиль тэга 7. extra - любые дополнительные параметры тэга
1. name - имя тэга, под этим именем данные будут отправлены на сервер 2. checked - первоначальное значение флажка (выбран/не выбран - 1/0) 3. value - значение, которое будет отправлено на сервер, если флажок будет установлен 4. label - подпись к флажку
1. name - имя тэга, под этим именем данные будут отправлены на сервер 2. checked - значение, которое будет выбрано первоначально 3. values - набор значений и их подписи, из которых должен производиться выбор. набор задается в квадратных скобках ([]), значения и подписи перечисляются через запятую. Для альтернативного варианта %radio2()% необходимо задавать только набор значений, подписи будут браться из значений. 4. sep - строка разделителя, которая определяет как будут разделены тэги переключателя (напимер: " " или " ")
1. name - имя тэга, под этим именем данные будут отправлены на сервер 2. checked - значение, которое будет выбрано первоначально 3. values - набор значений и их подписи, из которых должен производиться выбор. набор задается в квадратных скобках ([]), значения и подписи перечисляются через запятую. Для альтернативного варианта %select2()% необходимо задавать только набор значений, подписи будут браться из значений. 4. style - стиль тэга 5. extra - любые дополнительные параметры тэга
1. name - имя тэга 2. value - надпись на кнопке 3. title - подсказка (tooltip), всплывающая при наведении курсора на кнопку 4. style - стиль тэга 5. extra - любые дополнительные параметры тэга
7. %submit(name, value, title, style, extra)% описание: кнопка для отправки данных на сервер, тэг
<input type="submit" />
1. name - имя тэга 2. value - надпись на кнопке 3. title - подсказка (tooltip), всплывающая при наведении курсора на кнопку 4. style - стиль тэга 5. extra - любые дополнительные параметры тэга
--------------------------------
Чтобы лучше понять, как работают эти функции, а также шаблоны в целом, вы можете использовать этот пример. Загрузите этот код в любую дополнительную страницу и изучайте его, меняя параметры.
Универсальная функция для работы с анкетами. Рассмотрим только одно применение этой функции с аргументом 'LIST'.
Функция %PEOPLE('LIST')% предназначена для получения списка зарегистрированных пользователей по определенным критериям.
Полный список всех возможных аргументов:
0 = 'LIST' 1. номер выводимой страницы, отсчет от 1. Т.к. список может быть достаточно длинный, весь вывод разбивается на страницы. 2. количество записей на странице. Управляет разбитием списка на страницы. 3. количество колонок в таблице. Для вывода используется таблица (тэг
<table />
), здесь задается количество колонок этой таблицы. 4. шаблон ячейки таблицы. Как должен выглядеть вывод. 5. опции поиска — набор флагов, указывающих по каким критериям необходимо осуществлять поиск анкет (см. ниже). 6. (необязательный) подстрока поиска ника, может содержать начало ника. 7. (необязательный) критерий поиска: начальная дата регистрации, строка вида DDMMYY. 8. (необязательный) критерий поиска: конечная дата регистрации, строка вида DDMMYY. 9. (необязательный) критерий поиска: IP-адрес для поиска 10. (необязательный) критерий поиска: CompID — одно из значений CompID для поиска 11. (необязательный) критерий поиска: день рождения, строка, может иметь три варианта: DD-MM — для поиска по дню и месяцу, DD-MM-YYYY — для поиска по дню, месяцу и году, YYYY — для поиска только по году.
Список пользователей формируется с учетом опций поиска. Набор этих опций передается в функцию как строка, в которой записана комбинация параметров для выбора требуемых данных. Для более наглядной записи опций поиска, все опции имеют предопределенные имена. Для комбинации множества опция в строке необходимо использовать символ вертикальной черты '|'.
Список опций для поиска:
CHECKED — проверенная анкета NO_CHECKED — непроверенная анкета LOCKED — заблокированная анкета NO_LOCKED — незаблокированная анкета DELETED — удаленная анкета NO_DELETED — неудаленная анкет UNIQUE — в спсике будет присутствовать только один ник от анкеты SORT_NICK — вывод списка осуществляется с сортировкой по никам SORT_DATE — вывод списка осуществляется с сортировкой по дате регистрации SORT_LOCK — вывод списка осуществляется с сортировкой по дате блокировки (если требуется найти заблокированные анкеты) SORT_REVERSE — сортировка осуществляется от большего к меньшему IP_REG — используется только если указан IP в поиске, искать по данным регистрации IP_EDIT — используется только если указан IP в поиске, искать по данным редактирования анкеты IP_ENTER — используется только если указан IP в поиске, искать по данным последнего захода в чат IP_NET — используется только если указан IP в поиске, искать в подсети, к которой принадлежит этот IP-адрес CID_REG — используется только если указан CompID в поиске, искать по данным регистрации CID_EDIT — используется только если указан CompID в поиске, искать по данным редактирования анкеты CID_ENTER — используется только если указан CompID в поиске, искать по данным последнего захода в чат BIRTHDAY — используется для поиска по дате рождения
Пример:
Необходимо найти анкеты по следующим критериям: анкеты проверены, не заблокированы и не удалены, требуется только один ник от анкеты, сортировать по никам. Строка с комбинацией опций записывается так:
"CHECKED|NO_LOCKED|NO_DELETED|UNIQUE|SORT_NICK"
Результатом работы функции %PEOPLE("LIST")% будет HTML-код списка. Дополнительно эта функция создает 5 переменных, которые можно использовать на странице:
1.%FIRST% — номер первого элемента текущей страницы 2.%LAST% — номер последнего элемента текущей страницы 3. %PAGE% — номер текущей страницы 4. %PAGES% — количество страниц 5. %TOTAL% — количество всех элементов с данным критерием поиска
%CHAT('NAME')% — выводит название чата %CHAT('CHARSET')% — выводит кодировку чата %CHAT('ROOM_NAME')% — выводит название комнаты, если таковые имеются, для корректного вывода необходимо передать номер сессии %CHAT('CHAT')% — выводит название домена 3-го уровня, на который зарегистрирован чат %CHAT('ADDRESS')% — выводит адрес чата %CHAT('ROOM')% — выводит номер комнаты, если таковые имеются, для корректного вывода необходимо передать номер сессии %CHAT('DESIGN')% — выводит номер дизайна, для корректного вывода необходимо передать номер сессии %CHAT('FIRST')% — время первого сообщения в чате %CHAT('LAST')% — время последнего сообщения в чате %CHAT('LONG')% — выводит длительность разговора в секундах (разница %CHAT('LAST')% — %CHAT('FIRST')%), это число является общим для всех комнат чата %CHAT('ONLINE')% — количество человек в онлайне %CHAT('LOGO')% — выводит логотип чата %CHAT('BANNER')% — выводит один из баннеров (выбирается случайно) %CHAT('TAGS')% — выводит список тэгов, имеются дополнительные аргументы для формирования таблицы тэгов %CHAT('WHO')% — специальная функция для окна "кто в чате" %CHAT('WHOWAS')% — специальная функция для окна "кто был в чате"
Числа, возвращаемые функциями %CHAT('FIRST')% и %CHAT('LAST')%, являются количество секунд, прошедших от даты 1 января 1970 года (такой отсчет времени принят в UNIX-системах). Эти значения можно использовать в функции %DATE()%.
НАЗНАЧЕНИЕ И ПРАВИЛА ИСПОЛЬЗОВАНИЯ ШАБЛОНОВ ===========================================
Определения ----------- Шаблон — HTML-код, содержащий переменные и функции шаблона. Назначение шаблона заключается в создании каркаса кода. Конечный HTML-код формируется в результате парсинга шаблона.
Парсинг — процесс обработки шаблона программой парсера, при котором происходит замена переменных и функций шаблона на свои значения. Результатом парсинга является конечный HTML-код, выводимый в окно браузера.
Переменные шаблона — специальные коды, указывающие парсеру, что в этом месте должны производиться замены переменных на свои значения. Значения переменных зависят от конкретного шаблона.
Функции шаблона — аналогичны переменным шаблона, но принимают аргументы, которые передаются внутри круглых скобок, результат функции зависит от переданных ей параметров.
Синтаксис --------- Шаблонные переменные определяются своим именем, которое с двух сторон ограничивается знаком процента (%). Шаблонные функции отличаются от шаблонных переменных наличием круглых скобок, в которых указывается список аргументов, перечисленных через запятую. Количество аргументов определяется назначением функции. Имена шаблонных переменных и функций могут состоять только из латинских букв, цифр и символа подчеркивания, длина имени может быть равна одному символу и более. Аргументами функций могут быть следующие данные: - десятичные числа; - строки; - массивы; - шаблонные переменные; - шаблонные функции. Все функции встроены в парсер и определить свою функцию нельзя.
Пример шаблонной переменой: %NAME% Пример шаблонной функции: %input("name", "", 10, %len%)%
Типы ---- Десятичные числа - это последовательность цифр от 0 до 9. Пример: 12345
Строка - это набор символов, ограниченный слева и справа символами кавычек (") или апострофа ('). Пример строки: "это строка"
Если внутри строки требуется применить символ кавычек, то его надо экранировать - перед символом поставить обратный слэш (\). Чтобы вывести сам обратный слеш его также надо экранировать, т.е. два обратных слэша (\\) выводятся как один. Пример: "это \"слово\" в кавычках".
Внутри строк можно использовать шаблонные переменные и функции, записываться они должны с символами процента по краям, при парсинге они будут заменяться своим значением. Пример: "Мое имя: %NAME%"
Если требуется, чтобы парсер не делал замен шаблонных переменных и функций, символ процента надо дублировать, иными словами, два символа процента в строке (%%) будут выводиться как один. Пример: "в этой строке переменная %%NAME%% не будет заменена"
Массивы - набор данных, объединенных в одну переменную, элементы массива записываются в квадратных скобках через запятую. Типы данных элементов массива могут быть те же, что и аргументы у функций. Пример: [1, "один", 2, "два"] Примечание: массивы можно применять только в качестве аргументов функций, присваивать переменным массивы нельзя.
Использование ------------- Переменные и функции шаблона предназначены для подстановки значений в HTML-код. Это означает, что переменные и функции шаблона после парсинга будут заменены своим значением - последовательностью символов (строкой), либо пустой строкой (никаких символов не содержится).
Важное замечание: любая конструкция с переменными или функциями шаблона возвращает строку, даже при использовании выражения присваивания эта конструкция вернет пустую строку. Если переменная шаблона не определена - она возвращает пустую строку.
Самый простой способ использования переменной шаблона - просто ее написать. Пример:
%NAME%
Если у нас была определена переменная NAME, то после парсинга она будет заменена на свое значение.
В шаблоне можно определить свои переменные. Для этого есть два способа определения переменных. Первый, аналогичен оператору присваивания в языках программирования. Значением для присваивания может быть: десятичное число, строка, другая переменная или функция. Присваивание десятичного числа: %NUMBER = 10%
Присваивание строки: %NAME = "Вася Пупкин"%
Присваивание другой переменой: %MY_VAR = %NAME%%
Присваивание функции %INPUT = %input("name", "", 10, %len%)%%
Важное замечание: выражение присваивания шаблонной переменной слева и справа ограничено символами процента (%), при этом, если в выражении используются другие переменные или функции, то они так же должны ограничиваться символами процента.
Второй способ предназначен для занесения в переменную многострочного текста, при этом, парсинг не осуществляется, т.е., если в тексте будет встречена конструкция шаблонных переменных или функций никаких замен производиться не будет, они будут выводиться точно таком же виде как и были записаны. Сам многострочный текст должен находиться внутри блока, который определяется строкой-ограничителем. Пример:
%TEXT<<Здесь находится многострочный текст Все встреченные шаблонные переменные и функции обрабатываться парсером не будут. END%
Здесь слово END (можно выбрать любое слово) является строкой-ограничителем и определяется сразу после имени переменной (TEXT) и тройного символа меньше (<<<). С новой строки начинается многострочный текст. Для обозначения конца текста это же слово-ограничитель должно быть записано в начале новой строки.
Конструкции присваивания ничего не возвращают, поэтому в конечном HTML-коде на их месте будут пустые строки.
Есть две конструкции, выполняющие дополнительную обработку строк. Первая имеет такую запись:
%{"строка"}%
Смысл этого выражения заключается в том, что можно динамически формировать имя переменой, которая будет заменена своим значением. Пример:
%{"NAME"}%
Эта конструкция полностью эквивалента записи %NAME% и не имеет практического смысла. Другой пример показывает гибкость этой записи:
Теперь от значения переменной STATE зависит какой будет результат парсинга:
STATE | результат ------+---------- 0 | выключено 1 | включено
Вторая конструкция предназначена для парсинга строки и записывается в таком виде:
%(%TEXT%)%
Если переменная TEXT содержит некий шаблон, то эта запись выполнит парсинг этого шаблона и вернет результат. Удобно применять такую запись после определения многострочного текста.
Условные операторы ------------------
Кроме обычных замен в шаблоне парсер позволяет управлять логикой разбора шаблона. Для этого существуют два варианта записи условных конструкций. * Первый вариант:
%? шаблон_1 %:% шаблон_2 ?%
В этой конструкции выбор между шаблонами шаблон_1 и шаблон_2 зависит от значения всех шаблонных переменных и функций из первого шаблона (шаблон_1). Если все переменные и функции в первом шаблоне возвращают не пустые строки, то обработан будет этот первый шаблон, второй будет проигнорирован. Если хотя бы одна переменная или функция из первого шаблона вернет пустую строку - обработан будет второй шаблон. Есть упрощенный вариант записи этой конструкции, когда второго шаблона нет:
%? шаблон ?%
Шаблон будет обработан только при условии, что все переменные и функции в шаблоне вернули не пустую строку.
* Второй вариант записи условия. В этом варианте используется шаблонная функция, которая определена в самом парсере. Есть две формы вызова этой функции: 1. %IF(%COND%, "строка_1", "строка_2")% 2. %IF("строка_1", "строка_2")%
В первой форме функции %IF()% передаются три аргумента: первый - это условная переменная, от значения который зависит выбор между вторым и третьим аргументом второй - строка, которую вернет функция %IF()%, если значение условной переменной истинно третий - строка, которую вернет функция %IF()%, если значение условной переменной ложно
Во второй форме функции %IF()% передаются два аргумента - оба строки, если первая строка не пустая, функция вернет ее, иначе, функция вернет вторую строку.
Для операций сравнения в парсере определены четыре функции, которые можно использовать в качестве условия в функции %IF()%. 1. %TRUE()% функция может принимать один и более аргументов, возвращает истинно только если все аргументы функции имеют истинное значение. 2. %EQ()% функция принимает два аргумента и сравнивает строки на равенство, возвращает истинно, если обе строки равны посимвольно. 3. %LT()% функция принимает два аргумента и сравнивает два числа, возвращает истинно, если первое число меньше второго. 4. %GT()% функция принимает два аргумента и сравнивает два числа, возвращает истинно, если первое число больше второго.
Важное замечание: значения "истинно" и "ложно" в шаблонах имеет немного иной смысл, чем в языках программирования. Так как, все шаблонные функции возвращают строку, то результат работы функций сравнения не должен никак отображаться в конечном HTML-коде. Для это были выбраны следующие значения, которые возвращают функции сравнения: истинно - одиночный символ пробела, в HTML-коде его не будет видно ложно - пустая строка
Однако, для входных аргументов строка "0" имеет значение "ложно", т.к. в случае если строка полностью состоит из цифр значение "истинно" будет принято только для цифр отличных от нуля.
Список всех шаблонных функций, встроенных в парсер -------------------------------------------------- Функции для условного выполнения кода: %TRUE()% %IF()% %EQ()% %LT()% %GT()%
Функции общего назначения: %SESS()% %CHAT()% %CFG()% %CFGJS()% %PEOPLE()% %CSS()% %DATE()% %TIME()% %LONG_DAYS()% %LONG_TIME()% %NAVIGATION()%
Функции для получения данных: %GET()% %POST()% %COOKIE()% %AGENT()% %SERVER()%
Функции для строк: %TRIM()% %UP_CASE()% %LOW_CASE()%
Функции для форм: %input()% %text()% %checkbox()% %radio()% %radio2()% %select()% %select2()% %button()% %submit()%
Уважаемый пользователь! Вы используете устаревший браузер Internet Explorer 6. Дальнейшее использование этого браузера влечет за собой высокий риск заражения Вашего компьютера вирусами. Чтобы сделать пребывание в Интернете более удобным и безопасным, рекомендуем установить себе Internet Explorer 9