Перейти к содержимому


Фотография
- - - - -

Переиндексация JBZoo в модуле CacheCleaner


  • Закрытая тема Тема закрыта
Сообщений в теме: 4

#1 vipdle

vipdle

Отправлено 23 October 2012 - 09:15

Надоело мне каждый раз заходить в настройки приложения что бы переиндексировать каталог и захотелось мне интегрировать его в аякс модуль очистки кеша джумлы.

Кому интересно - делюсь наработкой, хоть и кустарной, но как говориться "as is":

1) Добавляем пункт меню "Переиндексация JBZoo"
administrator\modules\mod_cachecleaner\cachecleaner\helper.php
на 96 строке добавляем:
$links[] = modCacheCleaner::createLink('reindexjbzoo', "Переиндексировать JBZoo", "Обновить индексацию каталога JBZoo", $hastip);
Кто захочет может языковые переменные сам доделать.
2) Знакомим модуль CacheCleaner с функцией Переиндексации JBZoo
administrator\modules\mod_cachecleaner\cachecleaner\js\script.js
на 35 строке добавляем:
document.getElements('a.cachecleaner_reindexjbzoo').each(function(el)
	{
		el.addEvent('click', function()
		{
			cachecleaner_load('reindexjbzoo');
			return false;
		});
	});

на 61 строке добавляем:
if (task == 'reindexjbzoo') {
	params = 'option=com_zoo&tmpl=component&controller=jbtools&task=checkdb';
	url ='http://bohemiabooking.com.ua/administrator/';
	}

на 72 строке добавляем:
if (task == 'reindexjbzoo') {
			 var start = data.indexOf("JBZoo -");
			 var end = data.indexOf("\<\/li", start);
			 data = "+"+data.substring(start,end);
			}
содержимое с 103 по 106 строку заменяем на:
var msg = cachecleaner_msg_clean;
	if (task == 'purge') {
		msg = cachecleaner_msg_purge;
	} else 
	if (task == 'reindexjbzoo') {
		msg = "Начата переиндексация";
	}

В результате получаем:
Меню
Изображение
Начало и окончание переиндексации без перезагрузки текущей страницы админки:
http://i.imgur.com/dbq2r.png

P.S.Если расскажите как делать вложения к темам - выложу два готовых изменённых файла...
  • 1

#2 SmetDenis

SmetDenis

Отправлено 23 October 2012 - 09:26

А зачем каждый раз переиндексировать каталог? если у вас все настроено верно, то JBZoo сам себя переиндексирует инкрементально и в фоне.


По большому счету это нужно только при импорте (если у вас там это не через стандартные методы). При первой установке или обновлении. Думаю это довольно редкие кейсы.
  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#3 vipdle

vipdle

Отправлено 23 October 2012 - 09:52

Ну в процессе формирования каталога/-ов с разными объектами и в случаях когда уже настроено а заказчик просит добавить/поменять поля, то как-то оно не переиндексирует самостоятельно.
Например было поле радибатонов с именами батонов 1,2,3,4,5 потом заказчик захотел изменить на *,**,***,****,***** 
и даже после переиндексации в таблице индексации jbzoo значение value_string старых item`ов остаётся 1,2,3,4,5 вместо новых *,**,***,****,*****
И помогает только очистка кеша, очистка устаревшего кеша и переиндексация jbzoo

Так что у меня не очень работает "переиндексация инкрементально и в фоне". Более того мне казалось что фоновая переиндексация заявлена на следующую версию и в 1.4.1 её нет.
  • 0

#4 SmetDenis

SmetDenis

Отправлено 23 October 2012 - 09:56

Я вас понял.
Имел ввиду, что переиндексация сама происходит при добавлении, изменении и удалении материалов.
А если у вас идет активная разработка, то конечно...

Спасибо за идею.
  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#5 vipdle

vipdle

Отправлено 23 October 2012 - 10:03

Пожалуйста, ничего особенного, ну вдруг кому-то ещё будет полезно...
  • 0




Click to return to top of page in style!