Плагин вешаем на OnLoadWebPageCache и OnBeforeLoadDocumentObject
В форму, данные которой хотим сохранить, вставляем
<input type="text" name="tblname" value="feadback" style="display:none;"/>
где значение — произвольное название формы. Ну и сам плагин://<?php
if (isset($_POST[tblname]))
{
$default = 'varchar(256)'; // Здесь задаем умолчание для типа полей
$config = array('comment'=>'varchar(256)'); //Здесь можем задать кастомные типы полей
$tbl = $modx->getFullTableName('log_'.$_POST['tblname']);
unset($_POST['tblname']);
$sql = 'CREATE TABLE IF NOT EXISTS '.$tbl.' (
`id` int(11) NOT NULL AUTO_INCREMENT,';
foreach ($_POST as $key => $poh)
{
if ($config[$key]) $sql.=' `'.$key.'` '.$config[$key].', ';
else $sql.=' `'.$key.'` '.$default.', ' ;
}
$sql.='PRIMARY KEY (`id`),
UNIQUE KEY `id` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;';
$modx->db->query($sql);
$arr = array();
foreach ($_POST as $key=>$val) $arr[$key] = $modx->db->escape($val);
$modx->db->insert($arr,$tbl);
}
Проверил на двух сайтах — работает))
Комментарии (0)