Добавление столбца в таблицу при установке плагина

Пишу свой плагин для miniShop2. И мне необходимо при установке моего плагина в таблицу modx_ms2_products добавить столбец. Но при установке плагина происходит затык (никаких ошибок при этом нет) и плагин не устанавливается. Пробовал разные варианты, но никак не получается.

Что я делаю не так? Содержание файлов и лог админки под катом.

Нашёл временное решение. В файл _build/resolvers/resolve.tables.php вбить прямой запрос к БД. Может кто знает правильное решение?
<?php

if ($object->xpdo) {
	/* @var modX $modx */
	$modx =& $object->xpdo;

	switch ($options[xPDOTransport::PACKAGE_ACTION]) {
		case xPDOTransport::ACTION_INSTALL:
		case xPDOTransport::ACTION_UPGRADE:

			$table = $modx->getTableName('msProductData');
			$sql = 'ALTER TABLE ' . $table . '  ADD `fieldname` TINYINT(1) UNSIGNED NULL DEFAULT "0";';
			$modx->exec($sql);

			break;

		case xPDOTransport::ACTION_UNINSTALL:
			break;
	}
}
return true;

Изначально пробовал так:

Лог админки:
Консоль запущена...
Пробуем установить пакет с подписью: pluginname-1.0.3-beta
Пакет найден... сейчас идёт подготовка к его установке.
Загрузка рабочего пространства пакета...
Рабочее пространство загружено, сейчас устанавливаем пакет...
Attempting to preserve files at C:/WebServer/www/modx/assets/components/pluginname into archive C:/WebServer/www/modx/core/packages/pluginname-1.0.3-beta/modCategory/8588a440f49806125fcfa3047da40594.0.preserved.zip
Attempting to preserve files at C:/WebServer/www/modx/core/components/pluginname into archive C:/WebServer/www/modx/core/packages/pluginname-1.0.3-beta/modCategory/8588a440f49806125fcfa3047da40594.1.preserved.zip
Дальше установка не идёт, просто висит всё без каких-либо надписей и предупреждений. В консоли браузера есть такая запись:
Failed to load resource: the server responded with a status of 500 (Internal Server Error)     http://localhost/modx/connectors/index.php
Как вот посмотреть в чём ошибка, из-за чего 500 статус страницы?

core/components/pluginname/model/schema/pluginname.mysql.schema.xml
<?xml version="1.0" encoding="UTF-8"?>
<model package="pluginname" baseClass="msProduct" platform="mysql" defaultEngine="MyISAM" phpdoc-package="pluginname" phpdoc-subpackage="" version="1.1">

	<object class="pluginNameField" extends="msProductData">
		<field key="fieldname" dbtype="tinyint" precision="1" attributes="unsigned" phptype="boolean" null="true" default="0" />
	</object>

</model>

_build/resolvers/resolve.table.php
<?php

if ($object->xpdo) {
	/* @var modX $modx */
	$modx =& $object->xpdo;

	switch ($options[xPDOTransport::PACKAGE_ACTION]) {
		case xPDOTransport::ACTION_INSTALL:
		case xPDOTransport::ACTION_UPGRADE:
			$modelPath = $modx->getOption('pluginname_core_path',null,$modx->getOption('core_path').'components/pluginname/').'model/';
			$modx->addPackage('pluginname',$modelPath);

			$manager = $modx->getManager();
			$manager->addField('pluginNameField', 'fieldname');

			break;

		case xPDOTransport::ACTION_UNINSTALL:
			break;
	}
}
return true;
Сергей Фещуков
27 марта 2015, 06:41
modx.pro
1 684
0
Поблагодарить автора Отправить деньги

Комментарии: 1

Сергей Фещуков
27 марта 2015, 12:23
0
Никто не писал плагины что-ли? :)
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    1