Mr.M.I.T. http://joinmuse.ru/#discography/invinci ... h_vinyl%29 Тоже сайт на аяксе. Писал давно, тогда еще мало что было известно про всякие библиотеки и json. С тех пор сделал сайт доступным и тем, кто без js (поисковикам, в большей степени), правда при этом сайт стал дышать на ладан. Хочу переписать... Костян Попробуй #F9F9FF для .code, может понравится
Костян сыро, много лишнего вот например, зачем это нужно PHP: $Dispatcher = new Dispatcher('standart'); //Регистрируем команду "login" в модуле "standart" $Dispatcher->RegisterAction('login', 'standart'); //Регистрируем команду "reg" в модуле "standart" $Dispatcher->RegisterAction('reg', 'standart'); //Регистрируем команду "user" в модуле "standart" $Dispatcher->RegisterAction('user', 'standart'); //Также регистрируем ее как команду по умолчанию $Dispatcher->RegisterDefault('user', 'standart'); опять же, а если несколько модулей на одну страницу? или "модуль в модуле" (тоесть вызов действия из действия) ArrayList это вообще загадка =) даёшь vector? не нужно писать фреймвок в чистом виде, достаточно просто "вспомогательного" АПИ
Ну например такое вытворить можно PHP: <?php foreach(User::GetInstance(Session::GetUserId())->Access as $ModuleName=>$ActionName) { $Dispatcher->RegisterAction($ActionName, $ModuleName); } PHP: <?php $Dispatcher->RegisterAction('login', 'module1'); $Dispatcher->RegisterAction('reg', 'module2'); Где то так: PHP: <?php class loginAction extends Action { public function Run(ArrayList $Params) { Dispatcher::Init('./actions/standart/'); //Или дописать в экземпляр SetPath $Dispatcher = new Dispatcher('submodule'); $Dispatcher->RegisterAction('subaction', 'submodule'); $Result = $Dispatcher->GetResponse(Request::Get('a'), Request::Get('m')); } } То есть я тебе почти любой граф сделаю, не то что дерево!!
убери диспетчер нафиг, или хотя бы RegisterAction, оно не нужно вообще права доступа определяет модуль какой из этого смысл, если зарегестрировано только 'subaction', 'submodule' может тогда уж так $Result = $Dispatcher->GetResponse('subaction', 'submodule'); нет, я имел ввиду блоки страницы (авторизация,голосование и тд) разные для опред. страниц. впринципе у тебя это можно реализовать через дополнительный модуль-действие с роутингом
ну может и модуль мне влом было регистрировать еще )) $Dispatcher->GetResponse('subaction', 'submodule');
чтобы не реализовывать велосипеды с ручным прописыванием модулей и прав в User'е собственно по этой же причине говорю тебе сделать автоРоутинг
вообщем, можешь меня не слушать попробуй реализовать какой-нибудь сайт на этом каркасе, подумай как упростить работу с ним, сделать его более гибким, написать под него реальных модулей побольше, админку напиши, права эти увидишь что получится
Mr.M.I.T. ну что ты, я прислушался к твоему совету. Действительно то что ты говоришь можно сделать. Возможно так и будет. а можешь пример какой нить, а то я не сильно понимаю что ты подразумеваешь именно. блог пашет еще на более худшем варианте... так что всё вполне сносно и я не говорю что это идеальное решение ))
самое тривиальное работа с файловой системой. в дополнение можешь оставить и регистрацию, для особых случаев попробуй сделать идеальный
ну я в принципе так и думал, но мне не нравиться завязка на структуре дистка, потому, что особых, как ты говоришь случаев может быть довольно не мало, например, если есть набор стандартных как бы модулей, но разбитых по другим критериям. Идеальный, может когда-то и попробую ))
Mr.M.I.T. ну я делаю так допустим чтобы не запутываться. Допустим стандартный модуль включает 40 эшенов половино из который не возвращают выводимых данных. То я их поделю в две директории show и do, тогда удобнее оперировать кучей. Ну это уже моя карачка ))
Mr.M.I.T. клацать в дереве редактора )) ну это такое, а вообще я хотел делать роутинг по адресной строке, а не расположению директорий, понимаешь?