Cotonti не знаю - пишу плагин с нуля, решил описать процесс здесь так как информации по Cotonti очень мало - собираю по крупицам.
| Salador |
|
|---|---|
Шаг 9, Начало. Работа с базами данных:Структуру Cotonti примерно понял теперь начинаю переделывать плагин под себя. Сначала сделаю добавление сотрудников. 1. Cоздал форму добавления сотрудника в файле tpl/salazarp.addsotr.tpl
2. В файле setup/salazarp.install.sql прописываем sql таблицы сотрудников
CREATE TABLE IF NOT EXISTS `cot_sotr` (
`sotr_id` INT NOT NULL AUTO_INCREMENT,
`sotr_name` VARCHAR(100) NOT NULL,
`sotr_dolzh` VARCHAR(90) NOT NULL,
`sotr_desk` VARCHAR(255) NOT NULL,
`sotr_oklad` DECIMAL(10,2) default NULL,
PRIMARY KEY (`sotr_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
Теперь нужно в админке удалить и заного установить плагин. 3. Используя информацию по работе с базами данных Cotonti и API Cotonti в файле inc/salazarp.addsotr.php сделал добавление сотрудника в базу.
$table_sotr='cot_sotr'; // название таблицы сотрудников
$par = cot_import('par','G','TXT');
if ((!empty($par)) && $par=='add') {
$arr_sotr=array ( //получение значений из формы добавления сотрудника в массив
'sotr_name'=>cot_import('sotr_name','P','TXT'),
'sotr_dolzh'=>cot_import('sotr_dolzh','P','TXT'),
'sotr_desk'=>cot_import('sotr_desk','P','TXT'),
'sotr_oklad'=>cot_import('sotr_oklad','P','TXT')
);
if ($db->insert($table_sotr,$arr_sotr)) { //ввод данных в таблицу сотрудников
$plugin_body = $t_sz->parse('SUC_ADD_SOTR')->text('SUC_ADD_SOTR'); //успешное добавление сотрудника
} else {
$plugin_body = $t_sz->parse('NOT_ADD_SOTR')->text('NOT_ADD_SOTR'); //неудачное добавление сотрудника
}
}
$plugin_body .= $t_sz->parse('ADD_SOTR')->text('ADD_SOTR');
4. Немного понял как работает XTemplate, в $t автоматически обрабатывается только 'MAIN' блок поэтому другие блоки туда нет смысла пихать. Немного переработал вывод - так как файл tpl/salazarp.tpl перекрывает стандартный вывод плагина для шаблона /themes/barebones/plugin.tpl, то сделал его почти таким же:
<!-- BEGIN: MAIN -->
{PLUGIN_BODY}
<!-- END: MAIN -->
а в файле salazarp.php сделал подключение шаблона в переменную $t_sz и добавил:
if (!empty($plugin_body)) {
$t->assign('PLUGIN_BODY',$plugin_body); //если не пустая переменная $plugin_body, то будет выводится её содержимое
} else {
$t=$t_sz; //если переменная $plugin_body пустая, то будет выводится содержимое блока MAIN
}
Добавлено 1 день спустя: Что-то немогу добавить JS и CSS файлы в <head>. Посмотрел как в других плагинах - сделал файл salazarp.rc.php туда положил код:
/* ====================
[BEGIN_COT_EXT]
Hooks=rc
[END_COT_EXT]
==================== */
define('SALAZARP_PLUG', $cfg['plugins_dir'].'/salazarp/');
cot_rc_add_file(SALAZARP_PLUG . 'js/moment.min.js');
cot_rc_add_file(SALAZARP_PLUG . 'js/daterangepicker.jss');
cot_rc_add_file(SALAZARP_PLUG . 'tpl/daterangepicker-bs2.css');
Неработает. Может с хуками не до конца разобрался, его (этот файл) как-то подключать нужно?
Bu gönderi Salador tarafından düzenlendi (2015-02-20 13:16, 10 yıllar önce)
|