[CMF] MODx - CMF на Ajaxе

Через filter и реализован поиск )
Тогда, исходя из корня самой проблемы (превышается установленный лимит по использованию памяти), есть несколько путей.
1. Увеличить кол-во выделенной памяти (проблему решит только на время)
2. Переделать выборку из базы, исключив filter
3. Использовать CacheExtender (самый правильный способ). Он позволит оптимизировать систему кэширования, что в итоге должно исключить вашу ошибку=) и повысит общую производительность!
 
Тогда, исходя из корня самой проблемы (превышается установленный лимит по использованию памяти), есть несколько путей.
1. Увеличить кол-во выделенной памяти (проблему решит только на время)
2. Переделать выборку из базы, исключив filter
3. Использовать CacheExtender (самый правильный способ).
После проверки всех возможных вариантов пришлось написать свой сниппет для замены стандартного Ditto.

Вещь не универсальная, но мои проблемы решила полностью :) :
- ошибки нехватки памяти больше не будет;
- время некоторых поисков уменьшилась с 3 сек до 0.1 сек.
 
После проверки всех возможных вариантов пришлось написать свой сниппет для замены стандартного Ditto.
*** скрытое содержание ***
Вещь не универсальная, но мои проблемы решила полностью :) :
- ошибки нехватки памяти больше не будет;
- время некоторых поисков уменьшилась с 3 сек до 0.1 сек.

Сейчас вот столкнулся тоже с проблемой, но с Jot. При большом кол-ве комментариев генерит много запросов, примерно 2 запроса на вывод 1 комментария, к БД.

Чувствую тоже придется переписывать под свои нужды. Вообще Ditto и Jot до ужаса кривые скрипты(
 
Чувствую тоже придется переписывать под свои нужды. Вообще Ditto и Jot до ужаса кривые скрипты(

Как по мне, Ditto нормальный скрипт, но в силу своей универсальности и множества функций, выполняет некоторые задачи не самым оптимальным образом.
 
Вопрос про ЧПУ в навигации по страницам, у modx такие ссылки Для просмотра ссылки Войди или Зарегистрируйся, может кто-нибудь переделывал их типа: Для просмотра ссылки Войди или Зарегистрируйся или что-то похожее. Облазил весь инет - нигде ничего нет.
 
gls, данной инфой инет завален чуть меньше, чем полностью :) нужно только правильно искать:
 
gls, данной инфой инет завален чуть меньше, чем полностью :) нужно только правильно искать:
*** скрытое содержание ***
ну я вроде как ясно проблему описал, зачем ссылками разбрасываться если сам не в теме!
 
Это я не в теме? :D
Сделай это:
1)Включи friendly Url в МОДх.
2)Создай .htaccess в котором запиши вот это правило
Код:
# Убедись в том, что RewriteBase указывает на директорию, где установлен MODx.
# Например, "/modx" если установка в поддиректории "modx".
#
# Чтобы URLs не были чувствительны к регистру - добавь директиву  NC
# к твоему правилу: RewriteRule ^(.*)$ index.php?q=$1 [L,QSA,NC]
<IfModule mod_rewrite.c>
	Options +FollowSymlinks
	RewriteEngine On
	RewriteBase /
</IfModule>
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
 
Это я не в теме? :D
Сделай это:
1)Включи friendly Url в МОДх.
2)Создай .htaccess в котором запиши вот это правило
Код:
# Убедись в том, что RewriteBase указывает на директорию, где установлен MODx.
# Например, "/modx" если установка в поддиректории "modx".
#
# Чтобы URLs не были чувствительны к регистру - добавь директиву  NC
# к твоему правилу: RewriteRule ^(.*)$ index.php?q=$1 [L,QSA,NC]
<IfModule mod_rewrite.c>
	Options +FollowSymlinks
	RewriteEngine On
	RewriteBase /
</IfModule>
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

Судя по всему вы действительно не в теме. Был задан конкретный вопрос: как офомить в ЧПУ пагинацию дитто. А вы бред пишите.

А для решения задачи, как я пробовал, требуется внести пару изменений:

1. в класс Ditto, который формирует урлы ditto.class.inc.php
Найти функцию buildURL (примерно 1030 строка)
там строку $queryString .= '&'.$param.'='.(is_array($value) ? implode(",",$value) : $value); заменить на строку $queryString .= (is_array($value) ? implode(",",$value) : $value);
далее $url = (isset($modx->documentObject['id']))? $modx->makeURL(trim($cID), '', $queryString) : 'index.php?id='.$GLOBALS['modID'].$queryString; заменить на $url = (isset($modx->documentObject['id']))? $modx->makeURL(trim($cID))."/".$queryString : 'index.php?id='.$GLOBALS['modID'].$queryString;
Эти действия приведут к тому что адрес, который формирует дитто будет в виде page.html/6 и т.п.

2. Прописать в хтаксесс правило, которое будет полученный урл отправилять на page.html?start=6
Но я не особо разобрался еще (не силен в правилах), может в свободное время посмотрю подробнее=)
 
  • Нравится
Реакции: gls
Назад
Сверху