логин: 
<< предыдущая заметкаследующая заметка >>
22 января 2010
довел до ума ajax-editor

1. Перенос заметки.

2. Cоздание новой заметки (все просили, да?). Открываем на редактирование любую заметку и нажимаем вверху первую по счету кнопочку "создать новую". Кому понадобится в дизайне своей страницы ссылку на создание новой заметки (Павлову охота, я знаю) - сделайте себе чего-нибудь с атрибутом onclick="majax('editor.php',{a:'newform'})" - и это будет открывать форму новой заметки.

3. Сделал зелененькую фишечку, по которой подгружается панелька с кнопками редактирования - я рассудил, что по умолчанию она не нужна: открывая всякий раз форму редактирования, человек использует кнопки редактирования не чаще, чем 1 раз из 20. Мало ли, мобильный трафик и все такое. Пусть подкачивается по запросу, если понадобилась.

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

UPD: Да, ну и заодно приделал такую же кнопкопанель к комментариям, делов на минуту, а поди плохо.

UPD: Да, демку фотоальбома я тоже привинтил - по иконке из подгружаемой панельки в редакторе.

UPD: А миленький, я вам скажу, получается движок! Доточить мелочи, оптимизировать по скорости (базам и кэшированию) - вообще красотища небывалая будет.

<< предыдущая заметка следующая заметка >>
пожаловаться на эту публикацию администрации портала
Страницы, которые привлекли мое внимание за последние дни, рекомендую:
2017-11-22 В июне 1982
архив ссылок
Оставить комментарий
Отлично!Супер!Волшебно!
0
0
Andrey Pozdnyakov
попробовал обновиться - не работает
запускаю install.php - предлагает обновить config, далее кнопки: check back clean old
Где update?
в админко тоже зашел, вроде все понажимал
0
0
LLeo Nokia (#3043)
UPDATE - это и есть CHECK. Если ничего не предлагает - значит, обновился. Вернуться к предыдущей версии - back (если Clean не нажимался). А что именно не работает? Может, зайти в /admin и там посмотреть обновления баз?
0
0
Andrey Pozdnyakov
в общем проблема была в том, что движок находится в корне. в поле host надо вписать '/', похоже, а не оставлять пустой.
сейчас появилась страница со списочком - нажал update
0
0
Andrey Pozdnyakov
не заработало, надо разбираться

все-таки нужно чтобы в install, поле host можно было оставить пустым
0
0
Leonid Kaganov
Если движок находится в корне, поле host должно быть пустым! По-моему об этом даже строго пишет сам install, сейчас проверю. Да, вот же напротив графы: folder ('blog/' or '' for root in site) Пардон мой пиджин инглиш ;)
0
0
Andrey Pozdnyakov
да, проблема лишь в том, что install так не работает..
0
0
Andrey Pozdnyakov
ок, неимоверными усилиями удалось поставить!

все-таки репозиторий тоже нужен.
например, в моем случае было бы удобнее тупо скачать файлы.
Понятно, что вам этим неохота заниматься, так там был кто-то кто на google-code выкладывал.
Может стоит просто выкладывать время от времени стабильную версию файлов. кто захочет могут скачать.


пока что вылезли такие проблемы:
1. страница comments с ошибками
2. медленно как-то ajax ваш работает...
3. непонятно где править шаблон? dnevnik.html обновил, а дизайн старый
0
1
Andrey Pozdnyakov
3. где шаблоны править - нашел
0
0
Leonid Kaganov
Да, я пока не написал документацию, как и где правит шаблоны, как рисовать свои модули и т.п. Напишу после, когда все будет готово. Вообще - все шаблоны в /template, все css - в /css, все скрипты постараюсь сложить в /js (но часть пока в /design по старой памяти)
0
0
LLeo Nokia (#3043)
А что было? Почему не ставилось?
0
0
Andrey Pozdnyakov
Согласно моим настройкам (домен второго уровня - директория на сервере), поле
"Hosting" в install.php нужно оставить пустым. но так оно не работает

В общем я поставил обновления в lhcsurvey.org/opros/, а потом исправил конфиги, чтоб было opros.lhcsurvey.org
0
0
Andrey Pozdnyakov
еще: статистика не работает
0
0
Andrey Pozdnyakov
пишет:

mysql_query("SELECT `search`,`poiskovik`,`count`,`n` FROM `dnevnik_search` WHERE `DateID`=90 ORDER BY `count` DESC")
Unknown column 'DateID' in 'where clause'

mysql_query("SELECT `link`,`count`,`n` FROM `dnevnik_link` WHERE `DateID`=90 ORDER BY `count` DESC LIMIT 50")
Unknown column 'DateID' in 'where clause'
0
0
Leonid Kaganov
Буду думать.
0
0
Leonid Kaganov
А все обновления применены в /admin?
0
0
Andrey Pozdnyakov
Да, все.

Таблицы MySQL
dnevnik_comm: элементов 22
dnevnik_link: элементов 134
dnevnik_plusiki: элементов 1
dnevnik_posetil: элементов 43
dnevnik_search: элементов 12
dnevnik_zapisi: элементов 49
pravki: элементов 46
rekomenda: элементов 0
site: элементов 0
unic: элементов 27
unictemp: элементов 0
0
0
Leonid Kaganov
Я понял. Убейте вообще базу dnevnik_search и dnevnik_link, и зайдите в /admin, где оно предложит создать их заново. Они никогда и не работали, просто пустыми были созданы по старому шаблону, не писать же мне удалялку в самом деле? ;)
0
0
Andrey Pozdnyakov
ok
0
0
Andrey Pozdnyakov
еще: голосовалка не подключается

404 не найден site_mod/GOLOS.php
0
0
Leonid Kaganov
Голосовалка для движка 3 поколения (единая авторизация unic) еще не готова - сделаю на неделе. Зато она будет защищена от накруток.
0
0
Andrey Pozdnyakov
а зачем старую отключать? пусть будет.
0
0
Leonid Kaganov
А как иначе? Старая система авторизации не поддерживается ядром движка, старые базы учета перестроены.

Да не волнуйтесь, все будет нормально.
0
0
Leonid Kaganov
Давайте по порядку разберем, чтобы я смог понять и исправить.

1. Вы ставили через install в чистую папку (не поверх старого движка) и install вам сам настроил config?

2. Как именно после этого не работало? Что и где удалось сделать, чтобы заработало?
0
0
Andrey Pozdnyakov
1. нет, не в чистую, именно поверх старого.
Как я написал выше,
согласно моим настройкам (домен второго уровня - директория на сервере), поле "Hosting" в install.php нужно оставить пустым. но так оно не работает - при нажатии check возвращает ту же страницу

2. Удалось поставить обновления в lhcsurvey.org/opros/, а потом исправить конфиги, чтоб было opros.lhcsurvey.org

3. Кажется нужно просто разрешить поле "Hosting" в install.php оставлять пустым, чтоб работало в моем случае.
0
0
Andrey Pozdnyakov
вероятно статистика не работает как раз из-за того, что update был с одними настройками, а сейчас работает с другими
> так там был кто-то кто на google-code выкладывал.
Все, к сожалению, свелось к svnsync, проверить стабильность работы пока невозможно, коммитов не было уже больше месяца. :)
0
0
Leonid Kaganov
Давайте вы мне скажите, что надо сделать на сайте (например, отдавать список всех файлов, отдавать файлы уже умеет). И кто-нибудь сделает.
Хм. давайте тогда определимся как лучше.
Я сейчас вижу такие варианты:
1) Вы продолжаете коммитить результаты в основной репозиторий, а гугловский с ним синхронизируется. Это вообще одна команда, ее можно просто забить в крон.

2) Сервер отдает список файлов, скрипт их скачивает и сразу заливает на гуглокод. Это тоже просто, но не будет комментариев к ревизиям.

3) Вы сами автоматически или вручную обновляете репозиторий (команда svn commit, если не ошибаюсь, ну, или каким клиентом вы пользуетесь).
0
0
Leonid Kaganov
Объясню ситуацию еще раз. Работаю я с файлами на сервере - там нет svn (невозможен по техническим причинам). Чтобы обновлять репозитарий, мне надо скачивать файлы на локальный компьютер вручную - выбирая то, что не нужно, и пытаясь не слить свой конфиг с админским паролем. Раньше у меня это делал самописный скриптик - крайне неудобный, я постоянно забывал, что добавил какой-то новый файл, а какой-то старый удалил, и он глючил.

Теперь есть модуль install.

В нем уже есть такие команды:

1) http://lleo.aha.ru/blog/install.php?action=test
Выводит список всего, что есть на сервере.

2) http://lleo.aha.ru/blog/install.php?load=[ПАПКИ/ПАПКИ/]ИМЯ_ФАЙЛА
Отдает файл.

Эта система умная - она сама понимает, какие файлы трогать, какие нет, никогда не отдаст мой конфиг, а также поддерживает некие макросы, позволяющие отдавать файлы без строчек, помеченных в начале тэгом /*lleo*/ - предназначенных именно для моего сервера (например, отладочных).

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

Вы все намекаете, чтобы этот скриптик сделал я. Я намекаю, чтобы его сделал кто-то другой ;)
> Вы все намекаете, чтобы этот скриптик сделал я.
Ненене. Я намекал, что вам будет удобней обновлять, т.к. думал, что svn на сервере уже стоит.

А раз в любом случае делать придется через install.php, то завтра вечером повешу скриптик, который и будет этим заниматься
0
0
LLeo Nokia (#3043)
Увы - на хостинге lleo.aha.ru не возможности что-либо устанавливать. На просьбы что-то изменить, Володька мне обычно отвечает, что единые настройки для 2000 пользователей он менять не станет :)
Ну, да. Я как-то забываю все время, что lleo.aha.ru - не выделенный сервер. :)

Попутно нашел бажечку - все файлы скриптом отдаются с content-type text/plain. В том числе и бинарные (например, design/fon1.jpg), что, в теории, может привести к неприятным странностям.
К примеру, у меня уже после сохранения такой жипег неправильно распознается просмотрщиками. Но это, возможно, из-за особенностей языка. У себя-то я могу вставить костыль - например, определять тип по расширению файла.
0
0
LLeo Nokia (#3043)
Очень сложно и ненадежно строить распознавалку файла по расширению. И я не слышал, чтобы install где-то стянул бинарные файлы с ошибками. По идее, если файл на том конце ловит не браузер, а скрипт, -работающий с ним как с бинарником, то все должно отдаваться без ошибок. Транспорту не велено глядеть внутрь и курочить текст. Мало ли, может у меня там какой-то юникод аццкий...
0
0
Leonid Kaganov
Вспомнил: если к строке запроса файла добавить &mode=install, то он их должен отдавать с другим хедером, каким-то более бинарным.
Ага. application/octet-stream
Но вроде и выборка по расширению нормально работает.

Теперь вот что.
Я думаю, лучше всего синхронизировать это дело 1-2 раза в сутки. На какие часы тогда настроить?
Или просто вам скрипт отдать, сами будете запускать?

И что с гуглом? Есть у вас аккаунт или, может, заведете? :)
А какие команды там могут быть кроме add и mkdir?
Скрипт написал, в общем-то, немного засрал вам error.log, наверно %). Завтра погоняю.
0
0
LLeo Nokia (#3043)
Команды эти вообще следует удалять - они лишние. Опция test - отладочная затычка, подразумевается, что некий хост прислал пустой список своих файлов, и в ответ сервер ему пишет, что надо установить все файлы (add), создавая по ходу папки. А если где-то файлов нет, а надо создать только папку - то mkdir.

Есть еще команды del и update, но они могут появиться только если хост прислал не пустой список, а с именами файлов и хэшами md5 для сличения. Это дикий гемор, поверьте. При размерах движка не более 500кб с блэкджеком, ttf и иконками, проще его скачать в секунду заново-для репозитария. Это с хостами беда - они свои файлы написали авторские, надо аккуратно менять, да еще откатку обеспечить, поэтому такие сложности.
Понятно. Но add и mkdir вроде нормально обрабатываются. Остается пофиксить бинарные файлы и собственно коммитить результат.
0
0
LLeo Nokia (#3043)
я бы скачал список, add заменил на wget... :)
Скрипт пишу и тестирую под виндовс, поэтому никаких внешних программ. Да, итак все нетрудно.

А вот и первый, тестовый, полуавтоматический коммит: http://code.google.com/p/lleoblog/source/detail?r=75

Если у вас есть гуглоаккаунт - говорите, допишу в смотрители. :)
0
0
Roman Erykalov
Красота - не то слово! Скорость появления новых плюшек радует необычайно! И с дизайном наконец-то можно экспериментировать. И install - очень впечатляет.
Но есть и непонятные мне косяки с iceweasel 3.0.6 (он же FF). Не работает новый аякс никак. При нажатии на заголовок страницы ничего не происходит. Удивительно, что на вашей странице форма редактирования открывается (в тестовом режиме). И комменты иногда меняют фон по неизвестной логике. Хотя все это - мелочи и пустяки. Удобно, приятно работать.
Еще раз спасибо!!!
0
0
Leonid Kaganov
Я надеюсь, когда будут готовы все модули (сейчас делаю закачку фоток и работу с фотоальбомом), и движок установится как основной в основном дневнике, попросим специалистов посмотреть, что именно не работает в каких браузерах, и как исправить. Потому что все то, что может не работать (основные JS-процедуры), очень мизерно по объему - строк 20-30 всего и собрано в index.php.
0
0
Roman Erykalov
Забыл написать, что в Опере все работает прекрасно. Хотя именно Опера глючит периодически у меня на других сайтах.
в windows 7 IE8 практически на любое действие вылазит ошибка жаваскрипта
Сведения об ошибке на веб-странице

Сообщение: Недопустимый аргумент.
Строка: 297
Символ: 51
Код: 0
URI-код: http://remlo.ru/blog/2010/01/25.html


при попытке зайти на /comm/ выдается
Fatal error: Call to undefined function: file_put_contents() in /home/remlo/remlo.ru/blog/module/comm.php on line 35
Добавлю, в опере работают ссылки на ответить, залогиниться и т.д.
0
0
Leonid Kaganov
Ох... Так я не пойму. Кончится тем, что я как-нибудь сяду за комп сестры, открою putty на сервер и параллельно IE и буду ковырять, пока не победю.
function loadCSS(src){ src='/blog/css/'+src;
if(JSload[src]=='load') return; JSload[src]='load';
var headID = document.getElementsByTagName('head')[0];
var s = document.createElement('link');
s.type = 'text/css';
s.rel = 'stylesheet';
s.href = src;
s.media = 'screen';
headID.appendChild(s);
ajaxon();
}

выделенная жирным строчка ругается.
0
0
LLeo Nokia (#3043)
Странно: как эта строчка может ругаться при загрузке, если она работает только сильно позже при некоторых особо сложных вызовах типа логина или редактора.
ээээ... я, наверное, не так выразился)))
оно именно на любое МОЕ действие на странице так реагирует.
т.е.: на попытку логина, на попытку ответить/прокомментировать.

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

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