TypeError: Joomla.optionsStorage is undefined - быстрый fix

Если часть плагинов не работает в админке сайта и консоль разработчика выдает ошибку:

TypeError: Joomla.optionsStorage is undefined

как описывал в другой статье (Joomla 3.7.x - если не работает плагин TinyMCE), это связано с косяком параметров. Так вот нашел более предпочтительный вариант чем везде и всюду вставлять парсер параметров. Для решения задачи нам необходимо в исполняемом .js вставить кусок кода.

Подробнее...

Joomla 3.7.x - если не работает плагин TinyMCE

Если не работает TinyMCE плагин и в консоле разработчика выдает вот такие ошибки:

TypeError: Joomla.optionsStorage is undefined - tinymce-builder.js:278:1
TypeError: Joomla.optionsStorage is undefined - tinymce.min.js:1:361

, это значит что плагин не может вытащить параметры передаваемые Joomla в json формате

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

И так приступим:

Подробнее...

Joomla 2.5 - API reCaptcha для работы с ajax формой

Если необходимо быстро без сторонних компонентов и модулей реализовать отправку jquery.ajax формы обратной связи и при этом защититься reCaptcha - вот решение. Сразу оговорюсь, не буду описывать как для начинающих, кому надо тот поймет как применить.

Вывод капчи в форме:

<?
JPluginHelper::importPlugin('captcha');
$dispatcher = JDispatcher::getInstance();
// Обрабатываем блок dynamic_recaptcha_1 капчей
$dispatcher->trigger('onInit','dynamic_recaptcha_1');
?>
<form action="<?=JURI::root()?>?tmpl=ajax" method="POST">
	<input type="text" name="name" value="" />
	<input type="text" name="phone" value="" />
	<div id="dynamic_recaptcha_1"></div>
	<input type="submit" value="ОТПРАВИТЬ" class="submit" />
</form>
<script>
// Сценарий отправки формы на адрес обработчика
</script>

Скрипт обработчик:

$post = JRequest::get('post');     
JPluginHelper::importPlugin('captcha');
$dispatcher = JDispatcher::getInstance();
$captcha = $dispatcher->trigger('onCheckAnswer',$post['recaptcha_response_field']);
if ($captcha[0] == false) {
	echo 'false';
} else {
	echo 'true';
}

Вот и все. Естественно не забываем выбрать reCaptcha по умолчанию и прописать в плагине ключики.

Joomla - как убрать id материала

Не буду рассказывать про ARTIO JoomSEF, SH404SEF так как не уважаю подобные компоненты/расширения. Предпочитаю следовать архитектуре Joomla, чего и другим советую.

Изучай архитектуру движка, а не ломайте сайты как тебе привычно.

И так, доставучие seo'шники требуют убрать id из url'а материала типа блог. Проделать подобное можно подправив router.php компонента com_content. В функция build() и parse() находим:

$advanced = $params->get('sef_advanced_link', 0);

и меняем на:

$advanced = $params->get('sef_advanced_link', 1);

Так же в функции parse() находим кусок кода и комментируем его:

Подробнее...

Joomla слэш на конце

Joomla не любит слэши на конце, сталкивался с глюками Virtuemart. Но иногда сделать это жизненно необходимо. Конечно можно воспользоваться 301 редиректом .htaccess, но ПС все-равно видит ее без слэша, а перейдя получает 301 редирект. Немножко облегчим задачу роботам )

(j2.5) редактируем includes/router.php в классе JRouterSite находим функцию _buildSefRoute() в ней меняем последнюю строчку

$uri->setPath($route.'/');

(j3.x) редактируем libraries/cms/router/site.php в классе JRouterSite находим функцию buildSefRoute() в ней меняем последнюю строчку

$uri->setPath($route.'/');

Да, этот способ плох тем что после обновления слетит. Но SEO'шники неисправимы, требуют.

Ну и для верности сделать 301 редирект через .htaccess с без слэша на слэшь. Ссылку на статью приводил выше.

Joomla подключение языкового файла

Бывает необходимо подключить языковой файл другого компонента или модуля. Все просто

JFactory::getLanguage()->load('com_namecomponent')

Вот как то так

Cackle комметарии - обработка плагинами Joomla

Пользуюсь системой комментариев от Cackle. В связке с виджетом использую плагин синхронизации комментариев, который индексируется ПС. На днях в комментариях вел дискуссию, в который указал свой email. Надеюсь не для кого не секрет что в дистрибутиве joomla есть плагин маскировки email адресов. Так вот, заметил что комментарии Cackle не обрабатываются плагинами. Полез дорабатывать )))

Лень выкладывать файликами, просто опишу что надо сделать.

Подробнее...

Конвертер CSV из XLS со своим разделителем

Давно это было когда прайсы конвертировались из xls в csv и через компонент CSVI импортировались в Virtuemart. В своей практике делал все связки, но на данный момент чаще задача импорта xml или xls. Но да это случилось, попалась мне такая задача импорта.

Подробнее...

Умный поиск - плагин поиска товаров Virtuemart

Написал плагин для товаров Virtuemart, с помощью которого можно организовать так называемый Умный поиск.

Преимущество думаю всем известны:

  • Релевантный поиск.
  • Фильтры.
  • Автоподсказки для пользователей.
  • Простота настройки.

По надобности писал для Virtuemart 2.6 и Joomla 2.5

Подробнее...

Demo IcoMoon Joomla 3.x

Собрал демку классов IcoMoon. Backend разработчикам сайтов на Joomla пригодится, мне уж точно понадобилось. Делюсь :)

Для тех кто пользуется шаблоном Protostar

демо в отдельном окне

<span class="icon-joomla"></span>

Подробнее...

Подкатегории