логин: 
<< предыдущая заметкаследующая заметка >>
07 марта 2010
Начал писать документацию на модули

Ибо данный движок, мягко говоря, не имеет особого смысла без модулей — в них самый смак. А модули — они не имеют никакого смысла без документации. Ведь даже я не помню, что там, какой где формат и какие опции и аргументы указывать. А уж про остальных пользователей движка и говорить нечего — они этого никогда не увидят. Ведь снаружи не видно, в каком формате я изнутри пишу свои заметки и какие модули использую при этом. Следовательно нужна документация. Хелп всплывающий.

Выяснилось, что документация, если грамотно написать пару строчек кода, достаточно просто верстается сама собой — главное теперь вписать в начале каждого модуля комментарий.

Итак, владельцам движка надо во-первых, обновиться.

Затем — открыть редактор заметки, нажать зеленую стрелочку, чтобы подгрузить дополнительные меню, и нажать там новую кнопку Help! (все прочие ее могут нажать прямо здесь) и наслаждаемся красотой документации.

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

<< предыдущая заметка следующая заметка >>
пожаловаться на эту публикацию администрации портала
архив понравившихся мне ссылок
Оставить комментарий
Windows Opera
0
1
ArCh (#4300)
"Несколько примеров" скучно и однообразно говорят "надо залогиниться админом"...
Linux Firefox
 Москва
0
0
Ага. А теперь?
Windows Opera
0
0
ArCh (#4300)
А теперь "могу позавидовать" :)
Linux Ubuntu Firefox
2
0
Andrey Pozdnyakov
Как насчет сделать сайт wiki.lleo.aha.ru чтоб и другие пользователи внесли свою лепту в документацию?
Например у temapavloff много всего интересного.
Linux Ubuntu Firefox
0
0
Andrey Pozdnyakov
вау!
редактировать камменты можно!
Nokia-E90 Safari
 Москва
0
0
LLeo Nokia (#3043)
Да, я обнаружил в коде отлуп и закомментарил его. Уж не знаю, зачем я его ставил. Должно первые 15 минут давать редактировать.
Nokia-E90 Safari
 Москва
0
0
LLeo Nokia (#3043)
Я не умею...
Windows Safari Chrome
0
0
Вот собственно сам движок вики:
http://www.mediawiki.org/wiki/MediaWiki/ru

Для установки, по сути, требуется только создать базу данных и через веб настроить:
http://www.mediawiki.org/wiki/Manual:Running_MediaWiki_on_Li[...]

Ставится очень просто, и очень удобно для желающих - так что очень хотелось бы увидеть вики движка данного блога.
Windows Opera
0
0
Mediawiki, конечно, просто устанавливает, но это такое прожорливое и кривое говно, что...

2lleo: Если-таки захотите поднять вику, причем у себя (а не на какой-нибудь wikia.com), вот хороший сайтик: http://www.wikimatrix.org/ в нем можно посмотреть свойства кучи вики-движков и сравнить их между собой.
Linux Firefox
 Москва
0
0
Вот я что-то как-то боюсь ставить на сайт чужой и излишне громоздкий код...
Если не хочется возиться самому с установкой и настройкой можно просто зарегистрировать проект на каком нибудь Github или Sourceforge. Особенно это имеет смысл если планируется в перспективе участие нескольких разработчиков.
Linux Firefox
 Москва
0
0
Так зарегистрируйте ;)
Windows IE
0
0
sobomax (#4947)
Ну и зарегистрировал:

https://sourceforge.net/apps/mediawiki/lleoblog/index.php
Linux Firefox
 Москва
0
0
Жуткое дело. Оно мне какой-то логин предлагает.
Windows IE
0
0
sobomax (#4947)
Да, оно какое-то странное, как включить редактирование для всех совершенно не ясно. Побродил по нему с пол-часа. Хотя там поддержка openid вроде фигурирует, может этого достаточно будет? Правильная ссылка http://sourceforge.net/apps/mediawiki/lleoblog/ .

А что хочется получить на выходе? Чтобы кто угодно мог редактировать a-la wikipedia?
Windows IE
0
0
sobomax (#4947)
В общем wiki на sourceforge оказался слишком заточен под их цели и вправить ему мозг не получается. У github wiki еще более ограниченый. Поэтому я взялся и сделал отдельную виртуальную машинку на своем сервере в которую залил mediawiki, то что получилось сейчас вот тут:

http://lleoblog.sippysoft.com (адрес временный)

Если уважаемый автор не возражает, я могу отдать эту вику в пользование ему, плюс зарегить домен под проект, скажем lleoblog.org и направить его туда и/или сюда. Сервер у нас в production так что она бекапится и мониторится 24/7. На тот случай если вдруг меня переедет автобусом можно каждый день делать дамп базы wiki который сделать доступеным по какому-нибудь URL. Теоретически так как это отдельный ВМ, не проблема и ssh логин дать. :)
Nokia-E90 Safari
 Москва
0
0
LLeo Nokia (#3043)
давайте я лучше ссылку пропишу
Windows IE
0
0
sobomax (#4947)
http://wiki.lleoblog.org, пользуйтесь на здоровье, вроде все работает. Если будет желание таки применить sourceforge проект (я его не стал удалять) для хостинга репозитория и выкладывания релизов дай знать! :)
Windows IE
0
0
sobomax (#4947)
ПыСы по поводу домена и тд можете не волноваться. Никаких коммерческих интересов я не питаю, деньги мы зарабатываем совсем в другой области. :)

Просто хочется посильно помочь интересному open source проекту.
Просто ссылку? Красивее был бы CNAME с wiki.lleo.aha.ru, в зеноновской админке это, кстати, просто.
Windows Opera
0
0
Хм. Кстати, надо будет разобраться, как и где эта документация прописана и попробовать автоматом вытягивать ее в http://code.google.com/p/lleoblog/w/list
Windows Opera
0
0
P.S. Баг? Если сначала запостить коммент без ссылки, а потом отредактировать его, то он не прячется.

Или движок мне уже верит? :))
Linux Firefox
 Москва
0
0
Или я уже успел его раскрыть? Попробуйте еще.
Windows Opera
0
0
хлабысь раз
хлабысь 2 http://ya.ru/
Windows Opera
0
0
Обновил - показывает.
И, кстати, окошко редактирования высотой в кол-во строк в оригинальном комменте.
Из-за чего однострочные каменты неудобно редактировать. :-)
>*у меня есть хороший юзерскрипт, конечно, но это у меня*
Linux Firefox
 Москва
0
0
ЧТО?!! 40 мегабайт (блять, МЕГАБАЙТ!!! СОРОК МЕГАБАЙТ!!!) кода?!!

Нет, вы меня извините, но мне проще будет самому дописать в свой движок модуль Вики килобайт на 15. У меня весь движок занимает 400кб - в сто раз меньше.
Windows Opera
0
0
Оно еще и хранит в базе _все_. И это _все_ постоянно держит в памяти.
В процессе эксплуатации модсостав lurkmore.ru пришел к выводу, что википедия редко падает только из-за того, что там неебический кластер. :)
Windows Safari Chrome
0
0
У медиавики есть ряд удобных вещей типа знакомого и удобного многим формата шаблонов, хорошего юзабилити правок (сравнение версий, откат, отображение данных...), юзабилити ссылок, шаблонов, категорий и прочего, да и просто привычный внешний вид.

Если получится реализовать хотя бы большую часть юзабилити - это многократно повысит ценность движка (хоть и весить будет совсем не 15Кб).
Linux Firefox
 Москва
0
0
Бугага ;)
Давайте считать.

Система шаблонов - мягко говоря, в движке получше будет, ибо (помимо задаваемых шаблонов) позволят быстро и неограниченно дописать модуль любого свойства и вызывать его из текста страницы с параметрами.

Система правок - сколько угодно, и принятие и откат. Сравнения версия нет - такой задачи в системе личного блога не возникало, только правка принятая, непринятая и отмененная, и объяснение причины. В общем, есть система правки. Однако, что-то я не припомню за Википедией, чтобы правки там можно было вносить прямо с листа без перезагрузки страницы. А здесь: выделил мышкой - поправил опечатку.

Так что я не вижу никакого технологически-конструктивного различия функционала, который бы объяснял 100-кратное увеличение кода.

PS: А еще в Википедии каменты отключены. А это 40% движка. Написать грамотную систему приема, обработки, вывода и администрирование каментов - полагаю, стоило бы им еще 40 мегабайт:)
Windows Safari Chrome
0
0
В Википедии есть "обсуждения", которые по сути заменяют комменты.

Относительно модулей: они, насколько я понял, не универсальны. Например, нельзя нативно сделать модуль, организующий на странице сноски с указанием текста сносок рядом со ссылкой на сноску (само собой, чтобы оно корректно отображалось без JS).

Относительно системы правок: правки для дневника и для вики имеют принципиальное различие, например, в наличии премодерации. Из-за неё, собственно, и нужен большой функционал быстрых откатов на любое более раннее состояние (война правок в вики не редкость), и сравнение версий. Наличествующая здесь система правок не приспособлена к добавлению новой информации на страницу, не приспособлена к указанному выше функционалу.

Далее, система страниц. Важно, чтобы пользователи могли создавать страницы, шаблоны, каталоги, переименовывать их, создавать линки, и прочее...

Таким образом, надо переписывать систему правок, создавать вики-систему страниц, создавать громоздкие модули для всяких сносок, итд... Это, само собой, не 40Мб, но на несколько сотен килобайт растянется.
Linux Firefox
 Москва
0
0
Насчет модулей, поясните: какой такой созданный камень бог сам не сможет поднять? Какие там сноски и заусенцы технологически невозможны в модулях? Жажду услышать. Модуль - это модуль. Он может вернуть текстовую строку как результат выполнения, но это частный случай. В общем случае модуль, вызванный из текста заметки, может выполнить любую другую работу - уничтожить базы на сервере и создать новые, заменить в тексте все буквы О на У, разослать емайлы и т.п. Модуль средствами языка имеет доступ ко всем ресурсам и данным. Какая проблема пройтись по тексту (который хранится в переменной $article['Body']) и расставить в нем какие-то там сноски? Три строчки кода, была бы надобность.

Что касается всего остального - вы мне пытаетесь объяснить, что у меня в движке тот или иной функционал внешне выглядит не так. Это глупое утверждение, поскольку более чем очевидное - да, совсем не так. Но я говорил о том, что технологически в моем движке присутствуют все наработки. Нет никакой проблемы на имеющейся базе вместо последовательно отменяемых правок приделать откат к состоянию на какое-то конкретно число. Никаких форматов и структур таблиц изобретать не придется - все уже есть, только дописать строчки три: выборка из базы правок от заданного числа и старше, и поочередный откат в обратном порядке циклом.

Понимаете? Вы мыслите внешним дизайном, а я-то знаю, как оно устроено внутри и прикидываю, что изобразить тот или иной функционал наличествующие средства вполне позволяют.
Windows Safari Chrome
0
0
Система вызова модуля такая, что он может работать с выданными ей параметрами и сторонними вещами (типа мускульной базы). В случае сносок надо работать с заметкой целиком. Само собой, подразумевается, что при дальнейших изменениях будут видны именно вызовы модуля сносок, а не уже обработанные модулем ссылки, что важно для удобства изменения/добавления/удаления сносок. Это всё-таки не так просто, как Вы описали. Вернее, вопрос следующий: могут ли Ваши модули работать как автоматические фильтры, обрабатывая текст непосредственно перед выдачей?

Относительно правок: я, может быть, что-то недоулавливаю, так что представим простой пример:
Требуется добавить в середину страницы небольшой раздел с копипастой с другой страницы (со сносками и прочим форматированием), и исправить в 2 местах опечатки.
В случае вики, редактируется страница целиком, путём вписывания заголовка, копирования с другой страницы текста и исправлением 2 опечаток. Изменения отображаются ровно так, как и должны, что позволяет удобным образом отслеживать изменения.
В случае Вашего движка, это будет либо 2 правки опечаток + правка пустого места для создания раздела, либо (что более привычно для пользователя) правка всей страницы целиком. В последнем случае наличествующая система правок не даст удобного просмотра изменений, и займёт довольно много места в базе.

А теперь представим, что началась типичная война правок, когда несколько соревнующихся делают за час несколько сотен полных правок страницы (по примеру выше). В вики всё довольно удобно откатывается до нужного состояния, в случае же данного движка придётся пересматривать много страниц, высматривая нужную, с немалым шансом ошибиться.

Решается эта проблема исключительно серьёзной обработкой поступающих правок, например, с разделением их на несколько.

Леонид, я всего лишь пытаюсь объяснить, что нужного функционала (с точностью до небольших доработок) у Вас как раз нет. И дело тут совсем не в дизайне.
Linux Firefox
 Москва
0
0
Мне сложно отвечать, потому я не понимаю ваших вопросов, а вы - моих ответов. Но попробую.

1) Модуль имеет доступ ко всему. В частности к переменной $article[Body], которая - текст обрабатываемой в данный момент страницы. Что помешает ему обработать сноски во всем тексте? И что вообще такое эти сноски?

2) Система правок у меня устроена так:

Есть ТЕКСТ - актуальная его версия. Это может быть текст заметки в базе MySQL или файл rasskaz.htm в папке - система одинаково работает и с тем и с другим. Для удобства понимания будем рассматривать случай, когда текст располагается физически на диске как file.htm

И есть БАЗА ПРАВОК. В которой хранятся как принятые, так и отклоненные правки (правка - короткий кусок, показывающий что на что заменилось), а еще дата и автор. Правка бывает принятая (внесенная в файл) и не принятая (не внесенная). Любую принятую правку можно отклонить, любую отклоненную - вновь принять. Соответственно, имея файл и набор ПРАВОК можно при помощи нехитрого цикла в одну строчку кода хронологически откатить файл до любого состояния на любой момент. Либо - поудалять все правки, оставленные неким автором. И так далее.

Берем наш файл (под файлом подразумевается его нынешнее последнее состояние, каким его сейчас видят посетители), откатываем его до правок, оставленных автором А, берем файл снова, откатываем его до правок, оставленных автором Б. Выводим на экран результат сравнения двух этих откатов. Выводим графики активности авторов А и Б по сезонам года с весенними обострениями. Выводим 365 состояний файла, каким он был каждый день в году. Понимаете?

Объяснения словами занимают больше строк, чем реальный код, который для этого понадобится. Все процедуры сравнения, отката и т.п. давно готовы - там элементарщина. В чем проблема, я понять не могу. Какого такого функционала нет? И уверены ли вы, кстати, что Википедия внутренне построена иначе и на ином принципе? Я понятия не имею. Но не хранит же она целиком файлы после каждого изменения, это же маразм? Значит, там та же система - база с правками.
Windows Firefox
 Комсомольск-на-Амуре
0
0
Я тоже что-то не пойму, про что Вы уважаемый antarx пишите? Я тут на одном хостенге эксперимент поставил, на этом движке . Смысл эксперимента в том, что хостер запрещает размещать сайты на русском языке ! Так вот, для постарения дизайна страницы использовался модуль IFBRO , который выводит элементы дизайна и текст в зависимости от строки браузера допустим, если в строке браузера Содержатся – ru, то движок отдаёт русскую страницу если нет ru то английскую – так чем это не автоматический фильтр? - У других движков это целый геморрой (В NetCat есть, вроде нечто подобное но - это уебище много мегабайтное и стоит ещё уйму денег ) - в движке Леонида это делается элементарно.
Linux Firefox
0
0
lleo.me/[email protected]Артем Павлов
Странно, тот /ajax/login.php, который мне подсовывает система обновления не хочет принимать пароль, говорит, неверный, а старый login.php, которому уже черт знает сколько времени, работает как надо...
Linux Firefox
 Москва
0
0
Какой пароль? Админский? Он совсем не в /ajax/login.php

Еще имеет смысл проверить в config.php $db_unic="`unic`"; Ибо если это какая-то совсем старая версия login.php, и в конфиг по какой-то причине (по какой?!) не добавилась эта строка, то он ищет пароли неизвестно где.
Linux Firefox
0
0
lleo.me/[email protected]Артем Павлов
Кажется, я понял. Нашел разницу в названии переменных в которых передаются значения логина/пароля в новом login.php одни, а в старом login.php и в openid_editform.js (в функции login_go) - другие. Странно то, что install.php вообще ничего не пишет про папку js/ и ее содержимое...

UPD. Нет, кажется не понял :(
Linux Firefox
 Москва
0
0
Э-э-э... Переменные там менялись, но это было ОЧЕНЬ давно: была такая ошибка с паролями, давно исправлена. А почему папка js не обновляется?!
Linux Firefox
0
0
lleo.me/[email protected]Артем Павлов
Все-таки каким-то чудом починил.
Linux Firefox
 Москва
0
0
Да что там было-то? И о каком пароле речь? Не могу понять.
Linux Firefox
0
0
lleo.me/[email protected]Артем Павлов
Проблема была с авторизацией по юнику, форма не хотела принимать пароль ни в какую, только после отката на предыдущую версию работала. В конце концов я просто грохнул файлы в которых, как я решил, могла быть проблема и выкачал их заново, тогда все заработало как надо.

А панику я поднял зря, похоже проблема возникла из-за моего неуемного желания поковыряться в коде системных модулей.
Linux Firefox
0
0
lleo.me/[email protected]Артем Павлов
Обновил кое-что, но редактор пока поленился, т.к. только к нему рубрикатор прикрутил как надо.

P.S. Ага, нажатие на примеры ничего не дает, движок предлагает админом залогиниться.
Windows Firefox
 Комсомольск-на-Амуре
0
0
Обновил, всё работает, отлично!
Windows Firefox
0
0
Roman Erykalov
спасибо, документация - это кстати. Лично я очень жду инфо про recomenda.
И еще: что-то у меня с модулем Golos. При попытке сохранить страницу с примером вываливает длинную простыню ошибок:
mysql_query("SELECT COUNT(*) FROM golosovanie2_golosa WHERE name='golos' AND (sc='' OR ipipx='80.247.34.162 ')")
Table 'romblog.golosovanie2_golosa' doesn't exist

mysql_query("SELECT `value` FROM `golosovanie2_golosa` WHERE `name`='golos' LIMIT 0,1000")
Table 'romblog.golosovanie2_golosa' doesn't exist
и так далее
Linux Firefox
 Москва
0
0
Модуль golos пока не работает - не пережил переезда на ненакруточную систему unic. Разберусь в ближайшее время.
Windows Firefox
0
0
Mik (#2984)
нюанс касательно модуля lju

если в нике, как у меня, есть подчёркивание, то ссылка на ЖЖ будет не mik_. а вовсе даже www.... /users/mik_
Linux Firefox
 Москва
0
0
Да, но так лень ;)
Windows Safari Chrome
0
0
Почти верно, но не совсем. Достаточно просто заменять "_" на "-", и всё должно работать. Хотя, на практике оно работает и с "_".
Linux Firefox
 Москва
0
0
Вот мне тоже всегда казалось, что это какие-то голые понты. Необъяснимые с точки зрения адресации и архитектуры доменных имен.
Windows Safari Chrome
0
0
Формально, по RFC-952 в имени домена могут быть только маленькие английские буквы, цифры, дефисы и точки. Поэтому в жж при изменении адресации (появлении имя.livejournal.com) всем пользователям с "_" предлагалось бесплатно переименоваться, остальным предоставили линкованные учётки с "-" вместо "_".

На практике, браузерам оказывается глубоко всё равно, какие буквы используются в имени, если днс всё сможет срезольвить.
Linux Firefox
 Москва
0
0
Ох уж эти стандарты... Они даже в html требуют, чтобы все значения переменных внутри тэгов были в кавычках. width=100 типа нельзя, надо width="100" А все браузеры мира уже 15 лет кладут на это член, и всюду работает адресация без дурацких кавычек (если конечно без русских букв и пробелов)
Windows Safari Chrome
0
0
Вообще-то именно из-за несоответствия работы браузеров стандартам, и, соответственно, несоответствия html-кода на ряде страниц, Ваша Nokia криво отображает ряд страниц, да и вообще разработка мобильных браузеров сильно тормозится.
Linux Firefox
 Москва
0
0
Моя Нокия вроде все нормально отображает. У нее только design-mode не работает. Ну это уж извиняйки...
Меню 'а ля mary kay' к сожалению не работает. Во всяком случае у меня и в Вашей справке.
Windows Opera
0
0
gryzchick
А в чем отличие IFADMIN и is_admin? Традиция PHP? :)
Nokia-E90 Safari
 Москва
1
0
LLeo Nokia (#3043)
Теперь - ничем. Просто я сделал модуль, потом забыл и снова сделал модуль. Как по-вашему, какой смотрится лучше, а какой удалить?
zhzhot
Windows Opera
0
0
Monstradamus (sing1eton)
По идее, пример к модулю S как-то странно скопирован с модуля B. Или я торможу...
Windows Firefox
0
0
lleo.me/[email protected] aka Mem0
Я понимаю, что у меня криво сделано и всё такое, но разве нельзя сделать как - нибудь, что бы не возникала нижняя полоса прокрутки при открытии всплывающих окон( комментариев и справки)?...
Linux Firefox
 Москва
0
0
У меня не возникает. Проверить не на чем.

всего комментариев: 69

<< предыдущая заметка следующая заметка >>