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'); Неработает. Может с хуками не до конца разобрался, его (этот файл) как-то подключать нужно? |
|
Отредактировано: Salador (20.02.2015 13:16, 10 лет назад) |