Щас попробую. А пока Спасибо вам что откликнулись. я сегодня целый день копать буду и на форуме естественно тоже.
Как я пока что понял:
"Sсript file" - он же "скрипт файл", во первых, это специальное нагромождение или конструкция, которую понимает установщик Joomla. Во вторых, подключается он сугубо в файле манифеста и содержит PHP-код, который выполняется перед, во время и/или после установки, удаления и обновления плагина, модуля или другого компонента).
Подключается он так (смотри комент в блоке кода манифест файла):
<extension type="plugin" version="3.0" method="upgrade" client="administrator" group = "system">
<name>JshopPostalBlank</name>
<author>Вася Пупкин</author>
<creationDate>Дата создания</creationDate>
<authorEmail>VasyaPoopkin@mail.ru</authorEmail>
<authorUrl>Ваш сайт</authorUrl>
<copyright>Информация о копирайте</copyright>
<license>Информация о лицензии</license>
<version>1.0.0</version>
<description>PLG_JSHOP_POSTAL_BLANK_DESCRIPTION</description>
<scriptfile>script_file.php</scriptfile> <!--Вот эта строка, подключающая скрипт файл.-->
<files>
<filename plugin="JshoppPostalBlank">JshoppPostalBlank.php</filename>
<filename>20px_Russian_Post.png</filename>
<filename>index.html</filename>
</files>
</extension>
Этот "скрипт файл" обязательно должен содержать класс с именем "<имя_элемента>InstallerScript", где <имя_элемента> - это имя расширения, которое вы пытаетесь написать (например com_componentname - если вы пишите компонент, mod_modulename - если вы пишите модуль). Значит этот класс в "скрипт файле" будет иметь имя "com_componentnameInstallerScript" - это если мы пишем компонент, "mod_modulenameInstallerScript" - так, если мы пишем модуль .
А вот с именованием класса в скрипт файле у плагинов вообще всё по другому! Установщик Joomla требует, что бы название класса в "скрипт файле" при создании плагинов содержало имя группы (group) плагина. То есть так: "plg <group><pluginname>InstallerScript". Для нашего случая будем иметь название класса "plgsystemJshopPostalBlankInstallerScript". Содержимое скрипт файла (script_file.php) со структурой кода класса:
class plgsystemJshopPostalBlankInstallerScript
{
/**
* Constructor
*
* @param JAdapterInstance $adapter Объект, ответственный за выполнение этого скрипта
*/
public function __construct(JAdapterInstance $adapter);
/**
* Вызывается перед любым типом действий
*
* @param string $route Действие которое происходит (install|uninstall|discover_install|update)
* @param JAdapterInstance $adapter Объект, ответственный за выполнение этого скрипта
*
* @return boolean True - Верно в случае успеха
*/
public function preflight($route, JAdapterInstance $adapter);
/**
* Вызывается перед любым типом действий
*
* @param string $route Действие которое происходит (install|uninstall|discover_install|update)
* @param JAdapterInstance $adapter Объект, ответственный за выполнение этого скрипта
*
* @return boolean True - Верно в случае успеха
*/
public function postflight($route, JAdapterInstance $adapter);
/**
* Вызов установки
*
* @param JAdapterInstance $adapter Объект, ответственный за выполнение этого скрипта
*
* @return boolean True on success
*/
public function install(JAdapterInstance $adapter);
/**
* Called on update
*
* @param JAdapterInstance $adapter Объект, ответственный за выполнение этого скрипта
*
* @return boolean True on success
*/
public function update(JAdapterInstance $adapter);
/**
* Called on uninstallation
*
* @param JAdapterInstance $adapter Объект, ответственный за выполнение этого скрипта
*/
public function uninstall(JAdapterInstance $adapter);
}