Не обновляется кэш при обновлении рессурса
        Здравствуйте.
Установлено дополнение Tickets.
Есть свой плагин, в котором по событию OnDocFormSave обновляется содержимое pagetitle и uri.
После обновления в таблице установлены новые значения, а при открытии раздела с тикетами, тикеты отображаются со старыми pagetitle и uri.
Вот код плагина:
    
    
                                                                                
            Установлено дополнение Tickets.
Есть свой плагин, в котором по событию OnDocFormSave обновляется содержимое pagetitle и uri.
После обновления в таблице установлены новые значения, а при открытии раздела с тикетами, тикеты отображаются со старыми pagetitle и uri.
Вот код плагина:
switch($modx->event->name) {
	case 'OnDocFormSave':
		if ($mode == 'new' && $resource->class_key == "Ticket") {		
                    $resource->set('pagetitle', $id);
                    $resource->set('alias', $id);
                    $resource->set('uri', 'q/'.$id.'/');
                    $resource->set('uri_override', 1);
                    $resource->set('published', 1);
                    $resource->save();
	break;
}    Комментарии: 8
                Надо чистить кэш родительской секции тикетов.
                    if ($parent = $resource->getOne('Parent')) {
	if ($parent instanceof TicketsSection) {
		$parent->clearCache();
	}
}            
                Добавил твой код после $resource->save();
Теперь вновь созданный тикет — со старыми значениями pagetitle и uri (т.е. не изменяются), а все предыдущие становятся как нужно.
                    Теперь вновь созданный тикет — со старыми значениями pagetitle и uri (т.е. не изменяются), а все предыдущие становятся как нужно.
switch($modx->event->name) {
	case 'OnDocFormSave':
		if ($mode == 'new' && $resource->class_key == "Ticket") {		
                    $resource->set('pagetitle', $id);
                    $resource->set('alias', $id);
                    $resource->set('uri', 'q/'.$id.'/');
                    $resource->set('uri_override', 1);
                    $resource->set('published', 1);
                    $resource->save();
                    if ($parent = $resource->getOne('Parent')) {
                      if ($parent instanceof TicketsSection) {
                 	$parent->clearCache();
                      }
                    }
	break;
}            
                Попробуй добавить перед сохранением.
Я сейчас не соображу, как правильно должно быть, поэтому просто поиграйся.
У тебя есть метод для очистки и родителя и самого тикета — это clearCache().
                    Я сейчас не соображу, как правильно должно быть, поэтому просто поиграйся.
У тебя есть метод для очистки и родителя и самого тикета — это clearCache().
                Ничего не выходит — последний все-равно со старыми значениями.             
                    
                Как ни игрался, и вперед вставлял и назад, и $resource->clearCache(); добавлял — все равно последний добавленный тикет отображается со старыми значениями.            
                    
                Я не знаю, что ты там делаешь, но очистка родителя тикета происходит при его создании.
Не должно с этим быть проблем. У меня же на сайте работает, не так ли?
                    Не должно с этим быть проблем. У меня же на сайте работает, не так ли?
                Тестирую на «головм» сайте с установленным Tickets в проекте modx-test.com.
Tickets поставил и настроил точно по инструкции к дополнению.
Единственное, что настроил ЧПУ (автоматическая генерация alias с помощью translit, влючена опция friendly_urls).
Происходит вышеописанное.
Добавляю с помощью формы на сайте тикет, сайт переадресовывает на тикет с правильным урлом (алиас прописан верно), затем перехожу в категорию с эти тикетом, и в списке тикетов он с неправильным урлом.
Вот сайт: s3816.modx-test.com/
Логин s3816
Пароль dpdcqi4xyGUX
                    Tickets поставил и настроил точно по инструкции к дополнению.
Единственное, что настроил ЧПУ (автоматическая генерация alias с помощью translit, влючена опция friendly_urls).
Происходит вышеописанное.
Добавляю с помощью формы на сайте тикет, сайт переадресовывает на тикет с правильным урлом (алиас прописан верно), затем перехожу в категорию с эти тикетом, и в списке тикетов он с неправильным урлом.
Вот сайт: s3816.modx-test.com/
Логин s3816
Пароль dpdcqi4xyGUX
                Проблему решил.
А решение, как оказалось уже было засвечено на этом сайте.
bezumkin.ru/sections/tips_and_tricks/278/
            
                    А решение, как оказалось уже было засвечено на этом сайте.
bezumkin.ru/sections/tips_and_tricks/278/
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.