Комментарии пользователя «EvgeniyKuklin»

+3
На форуме это уже обсуждалось. Решается путем создания екстендера для Дитто. Создаешь файл вроде:
assets\snippets\ditto\extenders\nosort.extender.inc.php
<?php
if (!function_exists('nosort')){
	function nosort($a, $b){
		$pos_a=array_search($a['id'],$GLOBALS['documents']);
		$pos_b=array_search($b['id'],$GLOBALS['documents']);
		if ($pos_a == $pos_b){return 0;}
		return ($pos_a < $pos_b)?-1:1;
	}
}
$GLOBALS['documents']=explode(',',$documents);
$orderBy['custom'][]=array('id', 'nosort');
$ditto->advSort = true;
?>
Дитто вызываешь с параметрами: 'extenders' => 'nosort', 'sortBy' => 'id'
avatar

EvgeniyKuklin

  • 30 октября 2011, 14:57
0
Дык if-else и все дела. Открой какой-нить другой сниппет, посмотри как там сделано. Главное не бояться!!!
avatar

EvgeniyKuklin

  • 6 июня 2011, 13:00
0
Напиши свой сниппет. Проверяем $_REQUEST['secret_code']. Если есть — ставим куку или сессионную переменную. Если есть кука или сессионная переменная — показываем то что надо, если нет — то не показываем.
avatar

EvgeniyKuklin

  • 6 июня 2011, 12:43
+3
Работает 100%:

<?php
ini_set('max_execution_time', '3600');

define('MODX_API_MODE', true);
require_once 'manager/includes/protect.inc.php';
include_once 'manager/includes/config.inc.php';
include_once 'manager/includes/document.parser.class.inc.php';
$modx = new DocumentParser;
$modx->db->connect();
$modx->getSettings();

/* что-то делаем */

$modx->clearCache();
include_once MODX_BASE_PATH . 'manager/processors/cache_sync.class.processor.php';
$sync = new synccache();
$sync->setCachepath(MODX_BASE_PATH . "assets/cache/");
$sync->setReport(false);
$sync->emptyCache();
?>
avatar

EvgeniyKuklin

  • 6 июня 2011, 10:01
0
Просто вызываешь Ditto не из шаблона, а из сниппета (назовем его SomeSnippet) через $modx->runSnippet(). В SomeSnippet проверяешь наличие и значение нужных тебе GET-переменных (в данном случае sortBy), исходя из чего $modx->runSnippet('Ditto', ...) у тебя будет с теми или иными параметрами.
avatar

EvgeniyKuklin

  • 28 мая 2011, 17:18
0
Да, действительно, language не поможет — для форматирования даты используется php-шная ф-ия и текущая локаль. Проще всего наверное написать свой сниппет для форматирования даты (обычный или phx).
avatar

EvgeniyKuklin

  • 25 мая 2011, 14:22
+1
В шаблоне:

[!Ditto? ... !]
[!SomeSnippet!]

В сниппете SomeSnippet:

<?php
if (isset($_GET['start']) && $_GET['start']) {
echo 'Выводим одно';
} else {
echo 'Выводим другое';
}
?>

Таких сниппетов может быть несколько. Вызов Ditto можно также запихать в сниппет (например, возникнет потребность использовать немного различающиеся &tpl).
avatar

EvgeniyKuklin

  • 25 мая 2011, 13:19
0
В шаблоне — вызов некешируемого сниппета (или сниппетов), в котором в зависимости от наличия $_GET['start'] (или $_GET['someid_start'], если Ditto вызываешь c id=someid) ты выводишь то что тебе нужно.
avatar

EvgeniyKuklin

  • 25 мая 2011, 08:51
0
Для начала. Посмотри исходный код страницы — у тебя не закрытый тег:
<div class=«main»

avatar

EvgeniyKuklin

  • 23 мая 2011, 23:02
0
Ну так без ссылки на страницу и кода вызова сниппета вряд ли кто-то ответит.
avatar

EvgeniyKuklin

  • 23 мая 2011, 21:29
0
Добавьте в head:
<base href="[(site_url)]" />

И еще, тег поставьте нормальный, например: «AjaxSearch».
avatar

EvgeniyKuklin

  • 23 мая 2011, 21:05
0
Правда, не представляю, зачем это может понадобиться.
avatar

EvgeniyKuklin

  • 20 мая 2011, 02:11
+1
Если ответить на твой вопрос формально, то $modx->getParentIds(777) вернет массив родителей — можно посчитать на каком уровне находится ресурс. В явном виде его нигде нет.
avatar

EvgeniyKuklin

  • 20 мая 2011, 02:09
0
Типичная задача — вывод товаров в каталоге, когда должна быть возможность менять порядок товаров. С ручным выставлением menuindex это очень неудобно.
avatar

EvgeniyKuklin

  • 20 мая 2011, 00:39
0
Вообщем если в DocManager-е оставить только вкладку с сортировкой пунктов меню, то для конечного пользователя решение получается вполне удобное.
Тему можно считать закрытой.
avatar

EvgeniyKuklin

  • 20 мая 2011, 00:37
0
Ну так и надо. То есть меняем порядок в админке — меняется порядок на сайте.
avatar

EvgeniyKuklin

  • 20 мая 2011, 00:34
0
Про DocManager я и забыл. Посмотрю.
Интересно, может что-то еще есть. Попроще. Для конечного пользователя так сказать.
avatar

EvgeniyKuklin

  • 20 мая 2011, 00:16
0
Хоть топик и старый, но может кому и пригодится решение. Простой плагин.

Конфигурация:
&ids=Идентификаторы документов, удаление которых запрещено;text;1,2

События:
OnBeforeDocFormDelete, OnDocFormDelete

Код плагина:
$e = &$modx->Event;

$ids= explode(',', $ids);

switch($e->name) {

	case 'OnBeforeDocFormDelete':
		if (isset($_REQUEST['id']) && in_array(intval($_REQUEST['id']), $ids)) {
			echo '<div style="padding: 50px 100px; font: bold 12px Arial, sans-serif;">Удаление данного раздела невозможно</div>';
			exit;
		}
	break;

	case 'OnDocFormDelete':
		if (isset($_REQUEST['id']) && in_array(intval($_REQUEST['id']), $ids)) {
			exit;
		}
	break;

	default:
		return;
	break;

}
avatar

EvgeniyKuklin

  • 19 мая 2011, 23:58
0
Как от текущих дел освобожусь, выложу аналог MultiPhotos и MultiFiles в виде Сustom TV.
avatar

EvgeniyKuklin

  • 16 мая 2011, 01:23