Автоматическое размещение и публикация модуля после установки

  • 20.08.2014

Задача и её решение взяты с форума. Задача была такая:

я написал небольшой модуль "mod_cobalticons" для админки Joomla 3 серии, он просто выводит иконки со ссылками на некоторые страницы. Я хочу, чтобы после инсталляции этого модуля, он автоматически был опубликован в позиции cpanel админки

Для решения этой задачи необходимо создать установочный скрипт и поместить в него следующий код:

<?php

defined('_JEXEC') or die;

class Mod_CobalticonsInstallerScript
{
	public function postflight($type, $parent)
	{
		$db = JFactory::getDbo();
		$query = $db->getQuery(true);
 
		// Публикуем модуль в нужной позиции
		$query->update($db->quoteName('#__modules'))
			->set('position = cpanel')
			->set('published = 1')
			->where('module = ' . $db->quote('mod_cobalticons'));
 
		$db->setQuery($query);
		$db->execute();
 
		$query->clear();
 
		// Получаем ID модуля
		$query->select('id')
			->from($db->quoteName('#__modules'))
			->where('module = ' . $db->quote('mod_cobalticons'));
 
		$moduleId = $db->setQuery($query)
			->loadResult();
 
		$query->clear();
 
		// Привязываем ко всем пунктам меню
		$query->insert($db->quoteName('#__modules_menu'))
			->columns('moduleid', 'menuid')
			->values($moduleId, 0);
 
		$db->setQuery($query)
			->execute();
	}
}

Обратите внимание на такой важный момент - если не привязать модуль ко всем пунктам меню, то он не отобразится на панели быстрых иконок.

Удачной разработки!

резервное копирование сайта на яндекс диск

Добавить комментарий

Обновить
Защитный код

Joomla!® CMS — пожалуй, лучшая система управления контентом с открытым исходным кодом

Joomla! — это больше, чем просто программное обеспечение, это люди, включающие разработчиков, дизайнеров, системных администраторов, переводчиков, копирайтеров, и, что самое главное — простых пользователей.

Мы рады пригласить вас в ряды нашего сообщества!

Скачать Joomla! 3 Документация Joomla! CMS Свернуть

Расширения Joomla

Новости портала

Новое в блогах

Видео