2003-02-10: Дневник 2.5

Новая версия Дневника 2.5 запущена и все ДВ певередены на неё. Старая версия удалена нафик с сервера. Сейчас 6:24, поэтому сил на описалово всего произошедшего у меня нет толком. Отмечу только для ДВ, что к сожалению все комментарии, написаные за прошедшие сутки — утеряны. А так, вроде бы и всё..

Скажу, что новых возможностей — жопой пруди стало. Я даже подумывал дать номер версии ваще 3, но всё же не дотягивает. Разве что чуть позже 2.7 можно натянуть.

Самая прогресивная возможность новая для ДВ — это опции. Но обо всём я напишу и распишу, когда выдрыхнусь и т.п. Всё, нет меня.

huliganka.jpg (12 Kb)

Письмо дневнико-владельцам
Написал огромное письмечишко для ДВ с описанием новой версии Дневника. Жаль, столько текста пропадает, посему продублирую и в свой дневник.

Здра-авствуйте, дорогие ДВ.

(То бишь, носящие гордое имя Дневнико-Владельцы).Все вы теперь являетесь пользователями новой версии Дневника. Была

версия 2, стала 2.5. Чем это черевато, я сейчас и попытаюсь описать.

Сразу оговорюсь, что "Дневник" - значит сам движок дневника, с которым

вы и имеете дело, а "дневник" (с маленькой буквы) - то, что у вас в

результате получается.

Так вот, начну я, пожалуй. Повествование буду вести сверху вниз, т.е.

пройдусь по новой версии дневника и опишу, всё, что вижу.

1. Вход. Скорее всего для авторизации в дневнике вам понадобится

   включенные cookies. Там используются сессии PHP'шные.

   Ссылку в букмарки можно делать такую:

   http://co3.ru/rpd/editor/

   Сессия храниться, пока не закроете окно.

2. Сразу после входа вы оказываетесь по умолчанию в редакторе, но

   лучше сперва описать настройки.

3. Настроек всё больше и больше, боюсь в будущем придётся их разбивать

   на разные страницы. Главная фишка настроек - они в целом всегда

   сохраняются. Т.е. нажав "Сохранить", вы увидите в полях то, что

   находиться в базе данных. Но.

   Но наверху могут появиться некие комментарии "сохранятора". Они

   могут просто повествовать, что без такого-то поля, такое-то мало

   имеет смысла, или просто сообщать, что такое-то отдельно взятое

   поле к сохранению не допущено и там осталось старое значение.

   Далее идёт краткое описание полей настроек:

   3.1  Название. Название дневника, которое светиться всюду в связи с

        вашим дневником.

   3.2  Ваше имя. Имя ведущего, владельца дневника. Нужно для почты,

        контактов и т.п.

   3.3  Ваш мыл. Без него никуда. Пишите смело его в это поле.

Пути.

   3.4  Адрес дневника. Обязательно поле. Отмечу, что ссылка должна

        вести в директорию дневника, т.е. оканчиваться слешем ("/").

   3.5  Удачное добавление комментария. путь, по которому отправят

        пользователя, после того, как он удачно добавил комментарий на

        вашу заметку. В этой строке есть три макроса:

        (date) - дата вида ГГГГ-ММ-ДД, за которую писался комментарий.

        (error)- результат операции, в данном случае будет "good".

        (FileType) - то, что вы прописали в соответсвующем поле FTP

        настроек.

        Если в начале данного поля не обнаружено "http://", то туда

        автоматом подставляется адрес дневника.

   3.6  То же самое, но в случае ошибки. Здесь (error) может принимать

        пока только следующие формы:

        "baddate" - пользователь некой хитростью передал в запросе не

        дату, а некую фигню.

        "nodate" - передана дата, за которую нету заметки, тоже, если

        кто-то хацкерствует.

        Планирую так же ввести проверку на пустое имя, а тем более, на

        пустое сообщение, с соответствующими ошибками. Об этом напишу

        отдельно.

        Внимание: то, что написано в этом поле по умолчанию, не есть

        хорошо.

        (date).(Filetype)

        Т.е. в случае ошибки это самое (date) вообще не понятно чему

        будет равно, так что лучше подготовить соответствующие странички

        с матюгами за хацкерство и сменить поле на такой вид:

        (error).(Filetype)

FTP настройки.

   3.7  Сервер. Если тут ничего не написано, система не будет себя

        утруждать заливкой файлов.

   3.8  Логин. Ваш логин к серверу.

   3.9  Пароль. Ура, новшество - пароль "зазвёздочен" :)

   3.10 Путь. Путь, что надо будет совершить скрипту, дабы дойти до

        папки в дневником. Например у меня так:

        /htdocs/journal

   3.11 Тип файлов. То, что будет стоять в именах файлов после точки.

   3.12 Файл вступление. Имя файла, который обычно открывается в папке

        по умолчанию.

Интерфейс.

   3.13 По умолчанию в редакторе может открываться либо текущая дата,

        либо дата последней заметки. Первое удобно для написания новых

        заметок, второе, для написания ответов комментаторам.

   3.14 Ширина. То, что будет прописано в атрибуте cols тэга textarea,

        который образует поле для редактирования заметки.

        В "продвинутых" браузерах там всё равно будет стилями

        прописана ширина 100%.

   3.15 То же самое, но высота.

   3.16 Авто-отсыл. Если тут поставить галочку, то при сохранении

        заметки, будет сама открываться консоль отправки заметок на

        сервер и сама же будет закрываться, коли это дело пройдёт без

        ошибок.

        Если не эта опция, то надо будет самому жать "Отослать", когда

        решите, что замета готова и надо бы её предъявить публике.

   3.17 Отсыл 1. Полезная вещь. Определяет, стоит ли по умолчанию в

        редакторе одноимённая галочка. О её функции читайте в описании

        редактора.

   3.18 Подсказки. Отображать ли кругом подсказки и сюсюкаться ли по

        поводу и без. Пока эта галочка ничего не даёт, но авось придёт

        время и сделаю.

Безопасность.

   3.19 Ввод нового пароля в Дневнику. Всё как положено - звёздочки :)

   3.20 Повтор нового пароля. Если всё ок, у вас будет новый пароль к

        Дневнику.

   3.21 Заморозить FTP настройки. Если это сделать, то возможность

        смотреть и менять оные пропадёт. Из соображений безопасности.

        Многим я так и сделал при переносе дневников на новую

        платформу.

Почта / СМС.

   3.22 To mail. Адрес, который является аллиасом (автоматом

        перекидывает всю почту) для адреса fordnevnik@co3.ru.

        Если себе такой завести, то можно будет управлять многими

        функциями дневника по почте. Например писать новые заметки,

        отправлять пополнения по СМС.

   3.23 Тема пароль. Дополнительная мера безопасности. То, что должно

        быть прописано в теме письма, дабы подтвердить вашу

        авторизованность.

   3.24 Подтверждать письма. Коли тут галочку поставить, то к вам

        будут приходить письма с подтверждением того, что ваше письмо

        добавлено в заметки.

   3.25 Трафарет письма. То, по какому виду оформиться письмо с

        заметкой, коли вы его пришлёте. Макроса два:

        (Message) - само сообщение.

        (Time) - какая-то дата со временем, что прописана в заголовке

        письма.

   3.26 Номер GSM телефона. Если сюда его написать, то только им вы и

        ограничите возможность отправлять СМСками пополнения в

        дневник. Номер тогда должен быть в полном формате и начинаться

        с 7. Например 79021234567.

   3.27 Трафарет SMS. Тот случай, если сообщение приходит посредством

        СМСки. Макросы тут следующие:

        (Message) переведённый с транислита текст сообщения.

        (MessageOrig) оригинальный текст сообщения.

        (FromPhone) - номер телефона, с которого пришла СМСка.

        (Time) - время.

   3.28 Присылать комментарии. Пока просто сами комменташи будут

        приходить к вам на ящик, когда их будет кто-нить оставлять. В

        скором времени сделаю возможность, нажав "Ответить" - удалять,

        или отвечать на эти комменташи.

Трафареты.

   3.29 Трафарет заметки. Самая главная часть настроек, да и всего

        дневника в целом. Именно по этому скромному текстовому полю

        определяется, как будет формироваться простая пролетарская

        заметка, при отправке на ваш буржуазный сервер.

        Т.е. то, как будет сформирован файл, вида

        ГГГГ-ММ-ДД.(FileType).

        Тут всё делается макросами. Вообще, макросами я называю всякие

        инструкции, которые заключены в круглые скобки.

        Именно работая над этим делом, я изрёк мысль, что пися ну

        ОЧЕНЬ настраиваемую программу, в идеале напишешь язык

        программирования. Как пример - система 1С :)

        Так что про макросы, и как их использовать.

        Сперва просто списком:

        (Stat_Body) - тело самой заметки. Мало того, все макросы с

           приставкой "Stat_" относятся именно к данной заметке.

        (Stat_Header) - заголовок заметки.

        (Stat_DateYear) - гад написания заметки. Вид ГГГГ.

        (Stat_Mon) - месяц написания заметки. Вида ММ. (Январь - 01).

        (Stat_MonInt) - тоже самое, но вида М (Январь - 1).

        (Stat_MDay) - день написания замекти. Вида ДД.

        (Stat_MDayInt) - тоже самое, но вида Д.

        (DateName1_Число) - преобразует строку типа (DateName1_01) в

           соответствующий месяц именительным падежом - январь.

           Можно делать так: (DateName1_(Stat_Mon)).

        (DateName2_Число) - тоже самое, но в родительном падеже.

        (Stat_ID) - не знаю зачем, но это ваш ID.

        (Stat_Back) - имя файла предыдущей заметки. Если заметки нет,

           то пусто.

        (Stat_Forward) - имя файла следующей заметки.

        (Stat_FileName) - имя файла текущей заметки.

        (Stat_Calendar) - старый добрый календарик. Напоминаю, что

           наличие данного макроса обычно притормаживает отсыл страниц

           на сервер (т.к. приходиться больше страниц генерировать и

           отправлять). Как с этим бороться - ниже.

        (Stat_Book) - сформированный список комментариев

           пользователей. Без самой формы, для их, комментариев,

           добавления. Об этом ниже.

        (Option_CHAR) - вместо CHAR некий символ. Великая вещь, эти

           опции. В редакторе появилась возможность в статье указывать

           не только содержание и заголовок, но и строку опций.

           Так вот, благодаря этому макросу, можно узнать, если ли

           некий символ в строке опций данной заметки. Возвертается

           либо 0 (нету), либо 1 (есть). Как это используется - ниже.

        (IfDef)ПРОВЕРКА(Then)ТОГДА(Else)ИНАЧЕ(EndIf)

           Вот он, первый шаг к языку программирования. Кривой, но

           шаг. Перед вами инструкция действия по условию.

           Если ПРОВЕРКА не равна нулю (или пустоте), то используется

           (печатается) ТОГДА. А иначе печатается ИНАЧЕ.

           Главный баг этого дела - вложеные инструкции не работают

           нафиг :-( Скоро я поймаю человека ,который рулит в

           регулярках и узнаю у него ,как сделать, что бы оно работало

           и во вложеном виде.

           Как это используется - ниже.

        (CGI) - URL до программы-сервера Дневника. Например сейчас это:

           http://co3.ru/cgi-bin/rpd/rpd.cgi

           Но лучше использовать макрос - а вдруг изменится :)

   3.30 Трафарет вступления. Т.е. первой страницы дневника.

        Тут работают все макросы, что и в трафареты заметки. С учетом

        того, что они работают, как для последней заметки. Т.е. данные

        будут даваться так. Кароче понятно.

        Плюс ко всему этому счастью, есть еще один макрос:

        (LastStats Count=ЧИСЛО)

           ТРАФАРЕТ_СТРОКИ

        (LastStatsEnd)

        Где:

        Данный макрос выводит список заметок дневника. Тут:

        ЧИСЛО - сколько элементов выводить. Если написать заведомо

        большое число (10000), то выведутся все.

        ТРАФАРЕТ_ЗАМЕТКИ - трафарет, где может быть любой макрос

        группы Stat_. Как используется - ниже.

А ниже всего-то несколько приёмов:

        Дата. Можно прилично оформить дату заметки таким образом:

           (Stat_MDayInt) (DateName2_(Stat_Mon)) (Stat_DateYear) года

           и получиться:

           1 января 2002 года

Менюшка для перемещения по смежным замектам:

           <table width="100%" border="0"><tr><td align="left">

           (IfDef)(Stat_Back)(Then)<a href="(Stat_Back)" mce_href="(Stat_Back)"><< Назад</a>(Else)<u><font color="#aaaaaa"><<

Назад</font></u>(EndIf)

           </td><td align="right">

           (IfDef)(Stat_Forward)(Then)<a href="(Stat_Forward)" mce_href="(Stat_Forward)">Вперед >></a>(Else)<u><font

color="#aaaaaa">Вперед >></font></u>(EndIf)

           </td></tr></table>

Комменташи:

           <form action="(CGI)" method="POST" name="CommentaryForm">

           <input type="hidden" name="name" value="(Stat_ID)">

           <input type="hidden" name="tw" value="enterCommentary">

           <input type="hidden" name="Date" value="(Stat_DateYear)-(Stat_DateMon)-(Stat_DateMDay)">

           <a name="Commentary"><b>Коли есть, оставьте тут ваш комментарий:</b></a>

           <table border="0">

           <tr>

                   <td width="20%">Представьтесь:</td>

                   <td><input type="text" name="Name" maxlenght="128"></td>

           </tr>

           <tr>

                   <td>Ваш адрес:</td>

                   <td><input type="text" name="Address" maxlenght="128"></td>

           </tr>

           <tr>

                   <td colspan="2">Комментарий:</td>

           </tr>

           <tr>

                   <td colspan="2"><textarea name="Commentary" cols="60" rows="7"></textarea></td>

           </tr>

           <tr>

                   <td colspan="2"><input type="submit" value="Отправить"></td>

           </tr>

           </form>

           </table>

           <br>

           (IfDef)(Stat_Book)(Then)<p><b>Комментарии народа:</b></p>(Stat_Book)(Else)(EndIf)

Просто одна опция:

           (IfDef)(Option_Z)(Then)<p><b>Я сегодня ЗЛОЙ!</b></p>(Else)<p><b>Я сегодня Добрый

:)</b></p>(EndIf)

           Теперь если среди опций есть буква Z, то все будут в курсе,

           на каком душевном настрое писалась заметкка.

           Благодаря опциям можно настраивать внешний вид, структуру и

           чего хошь в заметках.

Содержание.

           Как у меня реализована страница с содержанием дневника. Для

           у меня во вступлении такой трафаретик забит:

<?if ($HTTP_GET_VARS['tw'] != 'contents'):?>

           <?include("(Stat_FileName)");?>

           <?else:?>

<?include("../inc.php")?>

           <?PrintHead(" - онлайн дневник Соziдателя - полное содержание", "Дневник/Содержание")?>

           <?Ugol(0)?><div align="center">

           (Stat_Calendar)</div>

           <br>

           <?include("menu.php");?>

           <?Ugol(1)?>

           <h1>Содержание</h1>

           <p align="justify">Тут ссылки на все заметки, когда-либо писанные в дневнике. Те, что без

названия писались просто в то время, когда у Дневника не было и такого понятия, как навание заметки.</p>

           <ul>

           (LastStats Count=1000)

           <li><a href="(Stat_FileName)" mce_href="(Stat_FileName)">(Stat_DateYear).(Stat_DateMon).(Stat_DateMDay).

(Stat_Header)</a></li>

           (LastStatsEnd)

           </ul>

           <?PrintBottom()?>

<?endif;?>

Тут PHP код, но для думающего человека будет понятно.

           Отмечу, что функция PrintHead у меня печатает верх

           страницы, а PrintBottom - низ.

           Так получается, что по умолчанию моё вступление = последней

           заметке, а при указании в строке адреса ?tw=contents  -

           принтуется содержание дневника.

В это сложно поверить, но описание настроек окончено :)

4. Тут сразу забежим в раздел "Инструменты" в единственный сейчас

   подраздел "Упревление шаблонами". Тут можно создать кнопочки, типа

   "Время", что располагаются в редакторе и позволяют одним кликом

   вставить заранее определённую конструкцию.

   Например назвать кнопочку "Абзац", а текст набить такой:

   <p align="justify"></p>

   Тогда в редакторе появиться кнопка "Абзац", при клике по которой в

   поле редактирования заметки появиться выше написанный код.

   Так что тут всё просто, идём дальше, отметив на ходу, что текст,

   что втыкается кнопочкой, может быть большим.

5. Редактор. Ну вот и подошли к самой главной, а точнее, к самой

   часто используемой части дневника. А значит к которой нужно

   отнестись особенно ответственно.

   Интерфейс в большей части остался таким же, как и в старой версии.

   Те же списки для выбора даты, та же кнопка "Перейти".

   Далее вниз идёт панелька с кнопками быстрой вставки (по умолчанию

   там висит только Время) и поле для опций, про которые я уже писал.

   5.1 Сам редактор.

   Поля:

       Опции. Тут задаётся строка опций. Не больше 16 символов в

       строке. Если вдруг понадобиться больше - пишите.

       Заголовок. Заголовок статьи.

       Тело заметки. Собственно, содержание.

   Кнопки:

       Наверху:

          Время - вставляет текущее время на компьютере пользователя.

          Другие кнопки - создаются пользователем.

       Внизу:

          Сохранить - сохраняет статью в базу данных.

             Если в настройках включить "Авто-отсыл", то после акта

             сохранения, вылетит консоль с отсылом заметы на сервер и

             закроется автоматом, коли не будет ошибок.

          Удалить - удаляет статью из базы данных вместе с

          комментариями.

          Отправить - открывает консоль с процессом отправки заметок на

          сервер.

          Отправить всё - тоже самое, но отправляются все замекти, что

          есть в дневнике.

    Галочка "Отправить только 1 файл".

       Тут надо отвлечься. Когда вы отправляете один файл, система сама

       пытается определить, какие еще нужно захватить до кучи, дабы

       соблюсти линковочную целостность. Т.е. по умолчанию это будут

       смежные две заметки, чтобы работали ссылки типа "вперёд" и

       "назад". Потом, если вы используете календарь, то возможно будут

       присватаны все заметки из текущего месяца, и возможно из

       смежных.

       Так вот, если поставить тут эту галочку, то система париться с

       определением списка дополнительных заметок не будет. Она

       сгенерирует и отправит только 1 файл. Что будет, естно, быстрее.

       Данная возможность нужна, когда вы не добавляете новую заметку,

       а только редактируете существующую, т.е. в плане ссылок ничего

       не меняется.

   5.2 Файлы. Тут вам возможность заливать файлы в дневник.

       Добавить файл просто - нажать что-то типа кнопки "Обзор",

          выбрать нужное и задавить рядом "Залить". Если файл не

          больше 2-х мегабайт - он будет благосклонно принят системой.

          Если в имени файла встречаются русские буквы - они автоматом

          переделываются на англицкие. После добавления файла,

          открывается консоль с копированием его на сервер. Коли

          ошибок при этом действе не будет - окошко само же прикажет

          долго жить.

          Коли есть ошибки - удалите файл из базы данных (ниже

          написано), т.к. он там всё равно останется.

       Добавленый файлы к заметке отображаются чуть ниже. Там есть

          галочка, дабы удалить файл (пока только из базы данных,

          физически он остаётся у вас на сервере).

          Название файла является ссылкой на него.

          Размер.

          Кнопки быстрой вставки.

             Первая - ^

                Вставит оригинальное имя файла в панель редактирования

                заметки.

             Вторая - a

                Вставит оформленную ссылку на файл.

             Третья - i - если файл является картинкой

                Вставит тэг изображения.

       Удалить файлы легко - отметить галочкой ненужные и нажать

       соответствующую кнопку.

   5.3 Комментарии. Если они есть, то они тут отображаются. Всё точно

       так же, как было в старой версии - можно редактировать сами

       комменташи, можно написать ответ, можно удалить. Разве что еще

       можно теперь еще и имя с адресом менять :)

       А еще они теперь и отсортированы точно так же, как в дневнике.

       Т.е. новые - внизу. А то в дневнике одно было, в редакторе

       другое.

На данный момент вроде бы всё. Будут вопросы - пишите. Это письмо я

опубликую где-нить на http://co3.ru/rpd/, так что не потеряете.

Добавлю, что скоро будут еще инструменты и улучшения. Когда я их все

сделаю, тогда точно будет версия 2.7.

Еще: я приветствую новых ДВ. Напомню, что если ДВ пишет интересно и не

мало - то он может смело участвовать на некоммерческих началах. То

есть даром. Так что если у вас есть знакомые, которым интересен

дневник для себя, которые в потенциале могут его из него сделать

что-то *интересное* - тогда шлите его ко мне.

То же касается знакомых, которые готовы вложиться финансово.

Вроде бы всё.

Моя совесть чиста :)

Не смотря на то, что все комментарии, писаные с ночи СБ-ВС на ночь

ВС-ПН, похерились. Не ту таблицу удалил :)

А для тех, кто не является ДВ, дам три аттача — это скриншоты:
rpd_editor.gif (29 Kb)
rpd_settiongs.gif (24 Kb)
rpd_templates.gif (10 Kb)

А так же приглашаю в дневники
Ллео
и
ТМ Арены.

Добавить комментарий