What's new? | Help | Directory | Sign in
Google
maxsite
Система управления сайтом, блогом
  
  
  
  
    
Search
for
Updated May 01, 2008 by maxsite.org
roadmap  
Ход работ

Планы (ближайшие)

В связи с открытием моего сайта, дальнейший ход работ планирую публиковать на http://max-3000.com/

15 апреля 2008 г.

12 апреля 2008 г.

11 апреля 2008 г.

10 апреля 2008 г.

8 апреля 2008 г.

7 апреля 2008 г.

4 апреля 2008 г.

3 апреля 2008 г.

2 апреля 2008 г.

1 апреля 2008 г.

То есть алгоритм такой: если обычным способом получается page_404 (т.е. не найдено), то дополнительно проверяется существование page с таким slug. Если такой нет, то проверяется рубрика с таким slug. И уже если и этого нет, то отдается в page_404. Если же есть, то модифицируется тип страницы и управление передается вьюверу page или category. Следует учесть, что для каждого такого поиска выполняется дополнительный sql-запрос.

30 марта 2008 г.

29 марта 2008 г.

26 марта 2008г.

25 марта 2008 г.

22 марта 2008 г.

5 марта 2008 г.

3 марта 2008 г.

28 февраля 2008 г.

27 февраля 2008 г.

24 февраля 2008 г.

18 февраля 2008 г.

16 февраля 2008 г.

11 февраля 2008 г.

7 февраля 2008 г.

28 января 2008 г.

27 января 2008 г.

25 января 2008 г.

21 января 2008 г.

20 января 2008 г.

19 января 2008 г.

до этого


Comment by akzhan.abdulin, Mar 13, 2008

чтобы не растекаться мыслею по древу, - стоит уйти от ограничения CodeIgniter? вида модуль/действие.

Вот мой код для REST. Ещё есть нечто полезно-похожее для блоков.

index.php <?php

require_once(путь конфига); require_once(PATH_INC. '/ModuleBase?.class.php');

ModuleBase?::runAppropriateModule();

?>

ModuleBase?.class.php <?php

class ModuleBase? {

function do_default($parts) { }

function run($parts) {
$tail = array(); while (count($parts) > 0) {
$proposedName = 'do'. implode('', $parts); array_unshift($tail, array_pop($parts)); if (method_exists($this, $proposedName)) {
call_user_func(array(&$this, $proposedName), $tail); return;
}
} $this->do_default($tail);
}
static function getClearQParam() {
if (!array_key_exists('q', $GET)) {
return '';
} $q = $
GET['q']; $q = preg_replace(
'/[\#\<\>\\\:\@]/', '', $q );
$q = preg_replace("/(\.[\.]+)/", "\.", $q); $q = preg_replace("/(\/[\/]+)/", "\/", $q); if (strlen($q) > 0 && $q0? == '/') {
$q = substr($q, 1);
} if (strlen($q) > 0 && $q[strlen($q) - 1] == '/') {
$q = substr($q, 0, -1);
} return $q;
}
static function getQueryParts() {
return explode('/', self::getClearQParam());
}
static function runNotFoundModule() {
$module = new NotFoundModule?(); $module->run(self::getQueryParts());
}
static function handleRedirects($parts) {
global $q_Redirects; $q = implode('/', $parts); if (array_key_exists($q, $q_Redirects)) {
header('Location: http://'. $SERVER['HTTP_HOST']. '/'. $q_Redirects[$q]); exit;
}
}
static function runAppropriateModule() {
$parts = self::getQueryParts();
if (implode('', $parts) != '') {
self::handleRedirects($parts); $tail = array(); $moduleClassName = 'NotFoundModule?'; while (count($parts) > 0) {
$proposedFileName = PATH_MODULE. '/'. implode('.', $parts). '.module.php'; $proposedModuleName = implode('', $parts); if (file_exists($proposedFileName)) {
require_once($proposedFileName); $moduleClassName = $proposedModuleName; break;
} array_unshift($tail, array_pop($parts));
} $module = new $moduleClassName(); $module->run($tail);
} else {
self::runFront(); return;
}
}
static function runFront() {
require_once(dirname(FILE). '/FrontModule?.class.php'); $module = new FrontModule?(); $module->run(self::getQueryParts());
}

}


Sign in to add a comment