NPJ next: ПланыМатлингво ...

Главная | Каталог | Изменения | НовыеКомментарии | Пользователи | Регистрация | Вход:  Пароль:  

Планы модернизации @ahe

Общая идея


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


Развитие модульной структуры: Функциональные модули + стандартизованный API.


Работы в порядке приоритета

(Зависят от выполнения других пунктов, возрастания сложности и вырисовывания видения)


1. Капча – защита от спама и предотвращения попадания в список вредоносных сайтов done WITH PROBLEMS всплыли проблемы (болтается PHPNPJID в $_GET) – см. п. 3


2. AJAX done прикрутил Xajax пример , но может быть лучше будет использовать другую библиотеку, в зависимости от сторонних примочек, если они будут использоваться – см. п. 4


3. Разобраться со старым косяком с потерей $_POST/$_SESSION – см. здесь, вроде уже решен, но всплывает снова при прикручивании ADODB и вообще какой-то хитрой работе с сессиями. done Косяк был в другом! ADODB, в отл. от ADODBLite при вызове ADOConnection::Quote() на неопределенном аргументе выдает в строку запроса “NULL”, в результате чего запрос для добавления постов, документов и комментариев пытался скормить кучу NULL'ов в поля NOT NULL, после чего вызывал ./core/classes/DBAL_adodb::DBAL_Error_Silent(), а редирект в конце /handlers/record/edit.php радиректил хер знает куда. Т.о. в _save_record.php
$query.= $f."=".$db->Quote( $data[$f] ); было поправлено на $query.= $f."=".(($data[$f])?$db->Quote( $data[$f] ):"''"); Аналогично для комментариев (в handlers/comments/_save.php): $sql.= $db->Quote( $this->data[$field] ); заменил на $sql.= ($this->data[$field]?$db->Quote( $this->data[$field] ):"''"); (Это в цикле foreach( $fields as $field ) ... ).


//И еще один косячок выплыл:
Почему-то передача подтверждения удаления через <input type="hidden" value="record_delete_granted"> работает некорректно (само это поле заполняется в State Set?::Pack() ), поэтому теперь я отправляю его через GET, для чего в Confirm Form?::Handle() вызов $this->rh->state->Set() закомменчен, а редирект исправлен на
$this->rh->Redirect( $this->rh->Href($this->rh->url, 0) . $this->handler.($this->success?"_granted":"_denied") ); Хотя это, конечно, workaround. По-хорошему надо бы переписать Request Handler::Href() и понять, что не так с State Set?::Pack//


Таки еще один косячок. Сабмит формы из /manage сломался. TODO


4. Upload как модуль (можно посмотреть на Relay: Ajax directory manager для примера – через AJAX, но, кажется, у них другая библиотека для аякса) – работает «из коробки» вот здесь (Собственно, работает ок только в FF, в IE и Опере косячит что-то крепко...): http://npj.mathlingvo.ru/lib/relay/index.php – тестовый аккаунт test/test начато


5. Админка как модуль начато здесь


6. ADODB в качестве штатного DBAL (вместо ADODBLite) начато


7. Adodb-ext-504.zip – расширение к ADODB, заменяющее часть его кода на С (до 100% увеличения быстродействия). Отложено На удивление, на хостинге все скомпилилось (даже phpize отработал), но, конечно, не поставилось. Все развлечения на localhost... Можно вернуться к этому вопросу при dedicated/collocation


8. Сбор статистики по БД средствами ADODB (вывод в админке). Готово в той мере, в какой это сейчас возможно, см. http://mathlingvo.ru/administratorосновная проблема на сайчас в корректном подключении ADODB – см. п. 3; кроме того, есть ограничения на доступ к БД (не все функции из ADODB performance monitoring сейчас работают – может решаться путем перехода на Dedicated/Collocation, когда они, собственно, и станут по-настоящему нужны. – см. п. 14)


9. Оптимизация кривых скриптов, кэширование, индексация таблиц.


Читать:

10. Умеренный рефакторинг и улучшение структуры движка (особенно в части форм-процессора)


11. Исправить скрипты для работы под PHP5. Что может повлечь за собой необходимость замены или апдейта нескольких сторонних библиотек.


12. 2 новых шкуры: для рабочей группы и для блога (вторая – на основе Simplifica) – можно закладывать AJAX начато пример шкуры и минимальная документация Проблемы: подогнать формы под новые шкуры, особенно если они хитрые – нетривиальная задача. Видимо, надо крепко рефакторить форм-процессор.


13. Модули: файловый репозиторий (будет использовать модуль upload или объединен с ним), библиографический сервер.


(14.) Extra: Dedicated/Collocation + спонсоры. Внедрение потребует больших гигабайт (load по числу запросов, скорее всего, останется небольшим, но трафик может быть значительным), так что можно поднять вопрос о Collocation и спонсорах/грантах.


NB: Внимательно читать багтрекер!!!http://www.npj.ru/in/npjdev/by/bugs/view_all_bug_page.php


Еще:


Еще, если следовать линии – чем меньше «кустомных» частей, тем легче привлечь других людей к разработке – то можно подумать о замене родного TE на Smarty


Сроки



На сладкое


Написать английскую документацию (в процессе), сделать релиз “NPJ – Mathlingvo Edition”, выложить на SourceForge.net


Credits


I've started using so many third-party GNU GPL, BSD and Creative Commons?-licenced goodies, it's getting hard to remember all of them. Just for that reason I put this record here even though it will be some time until release. So anyways, you guys make my life so much easier.




Оригинал доступен по адресу: vtqveant@ahe:npjplans


 
Файлов нет. [Показать файлы/форму]
Комментариев нет. [Показать комментарии/форму]