--=REKLAMA=--

J3.2

Tworzenie prostego modułu/Pliki instalacji-deinstalacji-aktualizacji

Z Joomla!WikiPL

Wstęp

Instalacja, aktualizacja i deinstalacja modułów może wymagać dodatkowych czynności, które mogą nie być osiągalne przez podstawowe operacje opisane w głównym pliku XML. Joomla oferuje nowe podejście do rozwiązania tego problemu. Polega ono na użyciu pliku PHP zawierającego klasę z pięcioma metodami:

  • inspekcji wstępnej, wykonywanej przed instalacją lub aktualizacją
  • instalacji
  • aktualizacji
  • deinstalacji
  • inspekcji końcowej, wykonywanej po instalacji lub aktualizacji

Tworzenie pliku rozszerzenia

Tworzenie pliku rozszerzenia polega na zadeklarowaniu klasy, której nazwa zbudowana jest według wzoru mod_NazwaModuluInstallerScript i umieszczeniu w niej 5 metod.

script.php

<?php
// Zabezpieczenie przed bezpośrednim dostępem
defined('_JEXEC') or die('Restricted access');
 
class mod_helloWorldInstallerScript
{
	/**
	 * Metoda instalacji rozszerzenia
	 * $parent - klasa wywołująca metodę
	 *
	 * @return void
	 */
	function install($parent) 
	{
		echo '<p>Moduł został zainstalowany.</p>';
	}
 
	/**
	 * Metoda deistalacji rozszerzenia
	 * $parent - klasa wywołująca metodę
	 *
	 * @return void
	 */
	function uninstall($parent) 
	{
		echo '<p>Moduł został odinstalowany</p>';
	}
 
	/**
	 * Metoda aktualizacji rozszerzenia
	 * $parent - klasa wywołująca metodę
	 *
	 * @return void
	 */
	function update($parent) 
	{
		echo '<p>Moduł został zaktualizowany do wersji ' . $parent->get('manifest')->version) . '</p>';
	}
 
	/**
	 * Metoda która zostaje wywołana przed zainstalowaniem/aktualizacją/ deistalacją rozszerzenia
	 * $parent - klasa wywołująca metodę
	 * $type - typ zmian (instalacja, aktualizacja...)
	 *
	 * @return void
	 */
	function preflight($type, $parent) 
	{
		echo '<p>Wszystko, co tu się dzieje przed instalacją/ aktualizacją/ deinstalacją modułu</p>';
	}
 
	/**
	 * Metoda która zostaje wywołana po zainstalowaniu/aktualizacji/ deistalacji rozszerzenia
	 * $parent - klasa wywołująca metodę
	 * $type - typ zmian (instalacja, aktualizacja...)
	 *
	 * @return void
	 */
	function postflight($type, $parent) 
	{
		echo '<p>Wszystko, co tu się dzieje po instalacji/ aktualizacji/ deinstalacji modułu</p>';
	}
}

W metodzie aktualizacji wyświetlamy nową wersję rozszerzenia $parent->get('manifest')->version. Możemy również przekierować użytkownika do strony wyboru modułu $parent->getParent()->setRedirectURL('index.php?option=com_modules');.

© Ten materiał jest dokładnym albo swobodnym tłumaczeniem artykułu http://docs.joomla.org/J3.2:Creating_a_simple_module udostępnionego na licencji JEDL na witrynie: Oficjalnej dokumentacji Joomla!.Pierwszy autor oryginału: Wilsonge.
© Tłumaczenie: Robertm. Tłumaczenie wykonano na warunkach licencji JEDL.