FormIt и расширение модели
Добрый день,
Подскажите затупку как расширить модель FormIt
Я хочу добавить в общую табличку картинку вот так
yadi.sk/i/NiuxZK7tNXPp6w
Я создал в БД поле
yadi.sk/i/TbDR0LDMHw5H4g
Потом в файле, который отвечает за рендер таблички прописал поля
yadi.sk/i/7A618k_pdx00oQ
Потом пошел в shema и прописал там
прописал
Подскажите затупку как расширить модель FormIt
Я хочу добавить в общую табличку картинку вот так
yadi.sk/i/NiuxZK7tNXPp6w
Я создал в БД поле
yadi.sk/i/TbDR0LDMHw5H4g
Потом в файле, который отвечает за рендер таблички прописал поля
yadi.sk/i/7A618k_pdx00oQ
Потом пошел в shema и прописал там
<?xml version="1.0" encoding="UTF-8"?>
<model package="formit" baseClass="xPDOObject" platform="mysql" defaultEngine="InnoDB" phpdoc-package="formit">
<object class="FormItForm" table="formit_forms" extends="xPDOSimpleObject">
<field key="form" dbtype="varchar" precision="255" phptype="string" null="false" default=""/>
<field key="context_key" dbtype="varchar" precision="100" phptype="string" null="false" default=""/>
<field key="values" dbtype="text" phptype="string" null="false" default=""/>
<field key="ip" dbtype="varchar" precision="100" phptype="string" null="false" default=""/>
<field key="date" dbtype="int" precision="11" phptype="integer" null="false" default=""/>
<field key="encrypted" dbtype="tinyint" precision="1" phptype="boolean" null="false" default="0"/>
<field key="encryption_type" dbtype="int" precision="2" phptype="integer" null="false" default="1"/>
<field key="hash" dbtype="varchar" precision="255" phptype="string" null="false" default=""/>
<field key="images" dbtype="varchar" precision="255" phptype="string" null="false" default=""/>
</object>
</model>
в formitform.map.inc.phpпрописал
<?php
/**
* @package formit
*/
$xpdo_meta_map['FormItForm']= array (
'package' => 'formit',
'version' => NULL,
'table' => 'formit_forms',
'extends' => 'xPDOSimpleObject',
'tableMeta' =>
array (
'engine' => 'InnoDB',
),
'fields' =>
array (
'form' => '',
'context_key' => '',
'values' => '',
'ip' => '',
'date' => 0,
'encrypted' => 0,
'encryption_type' => 1,
'hash' => '',
),
'fieldMeta' =>
array (
'form' =>
array (
'dbtype' => 'varchar',
'precision' => '255',
'phptype' => 'string',
'null' => false,
'default' => '',
),
'context_key' =>
array (
'dbtype' => 'varchar',
'precision' => '100',
'phptype' => 'string',
'null' => false,
'default' => '',
),
'values' =>
array (
'dbtype' => 'text',
'phptype' => 'string',
'null' => false,
'default' => '',
),
'ip' =>
array (
'dbtype' => 'varchar',
'precision' => '100',
'phptype' => 'string',
'null' => false,
'default' => '',
),
'date' =>
array (
'dbtype' => 'int',
'precision' => '11',
'phptype' => 'integer',
'null' => false,
'default' => 0,
),
'encrypted' =>
array (
'dbtype' => 'tinyint',
'precision' => '1',
'phptype' => 'boolean',
'null' => false,
'default' => 0,
),
'encryption_type' =>
array (
'dbtype' => 'int',
'precision' => '2',
'phptype' => 'integer',
'null' => false,
'default' => 1,
),
'hash' =>
array (
'dbtype' => 'varchar',
'precision' => '255',
'phptype' => 'string',
'null' => false,
'default' => '',
),
'images' =>
array (
'dbtype' => 'varchar',
'precision' => '255',
'phptype' => 'string',
'null' => false,
'default' => '',
),
),
);
Что еще нужно сделать?) или это вообще не правильно?) Комментарии: 10
При следующем обновлении компонента все это затрется.
Я знаю,
но так тоже не работает
но так тоже не работает
<?php
switch ($modx->event->name) {
case 'OnMODXInit':
$modx->loadClass('FormItForm');
$modx->map['FormItForm']['fields']['images'] = '';
$modx->map['FormItForm']['fieldMeta']['images'] = array(
'dbtype' => 'varchar',
'precision' => 255,
'attributes' => 'unsigned',
'phptype' => 'string',
'null' => false,
'default' => '',
);
break;
}
Ошибка /core/xpdo/xpdo.class.php: 644) Could not load class: FormItForm from mysql.formitform.
Тут просто нужно было дописать:
$modx->addPackage('formit', $modx->getOption('core_path').'components/formit/model/');
Помимо предыдущего справедливого замечания: а хук есть? Который сохранит загруженный в форму файл на сервер и добавит путь к файлу в новое поле?
Естественно)) Да мне просто интересно как это вообще работает. Это не проект. Сижу уже часов 7 над этим, интересно)
В $xpdo_meta_map['FormItForm'] есть поле fields, как минимум туда image забыли добавить.
Подскажите где это?
metadata.mysql.php
А разве он не возьмет схему, которую я поправил?
А разве он не возьмет схему, которую я поправил?
В файле в formitform.map.inc.php, вы там изменения вносили, но в одном месте не дописали.
Да, точно, заработало))) Спасибо, в первый раз мне тут реально помогли)
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.