/** * Сохранение шаблона письма в файл * @param string ключ шаблона * @param array (body=>string, subject=>string) данные шаблона */ function saveMailTemplateToFile($sTemplateKey, $aTemplateData) { return CDir::putFileContent(SENDMAIL_TEMPLATES_PATH . $sTemplateKey . SENDMAIL_TEMPLATES_EXT, serialize($aTemplateData)); }
function edit() { if (!$this->haveAccessTo('edit')) { return $this->showAccessDenied(); } $aData = array('content' => '', 'title' => '', 'filename' => ''); $nRecordID = func::POSTGET('rec', false, true); if ($nRecordID <= 0) { $this->adminRedirect(Errors::IMPOSSIBLE); } if (func::isPostMethod()) { $sFilename = func::POST('filename', true); $sTitle = func::POST('title', true); $sMetaDescription = func::POST('mdescription', true); $sMetaKeywords = func::POST('mkeywords', true); $sContent = stripslashes(func::POST('content')); $sContent = eregi_replace('\\\\"', '"', $sContent); $sContent = eregi_replace('\\"', '"', $sContent); $sContent = eregi_replace('\\"', '"', $sContent); $sFilename = $this->db->one_data('SELECT filename FROM ' . TABLE_PAGES . ' WHERE id=' . $nRecordID . ' LIMIT 1'); if ($this->errors->no()) { CDir::putFileContent(PAGES_PATH . $sFilename . PAGES_EXTENSION, $sContent); if (BFF_GENERATE_META_AUTOMATICALY) { if ((empty($sMetaKeywords) || empty($sMetaDescription)) && !empty($sContent)) { func::generateMeta($sContent, $aData); if (empty($sMetaDescription)) { $sMetaDescription = $aData['mdescription']; } if (empty($sMetaKeywords)) { $sMetaKeywords = $aData['mkeywords']; } } } $this->db->execute('UPDATE ' . TABLE_PAGES . ' SET title = ' . $this->db->str2sql($sTitle) . ', mkeywords = ' . $this->db->str2sql($sMetaKeywords) . ', mdescription = ' . $this->db->str2sql($sMetaDescription) . ", \n modified = {$this->db->getNOW()}\n WHERE id={$nRecordID}"); $this->adminRedirect(Errors::SUCCESSFULL); } $aData = $_POST; } else { $aData = $this->db->one_array('SELECT * FROM ' . TABLE_PAGES . ' WHERE id=' . $nRecordID . ' LIMIT 1'); $aData['content'] = CDir::getFileContent(PAGES_PATH . $aData['filename'] . PAGES_EXTENSION); } $this->tplAssign('aData', $aData); return $this->tplFetch('admin.form.tpl'); }
function module_create() { if (!FORDEV) { return $this->showAccessDenied(); } //получаем список существующих модулей $aModules = CDir::getDirs(PATH_MODULES, false, false, false); foreach ($aModules as $k => $v) { if ($v[0] != '.' && $v[0] != '_') { $aModules[$v] = $v; } unset($aModules[$k]); } $aData = array('modules' => $aModules, 'title' => '', 'languages' => ''); if (func::isPostMethod()) { $aData['title'] = mb_strtolower(func::POST('title', true)); $aData['languages'] = func::POST('languages', true); $aData['aLanguages'] = !empty($aData['languages']) ? explode(',', $aData['languages']) : array(LANG_DEFAULT); do { if (empty($aData['title'])) { $this->errors->set('no_title'); break; } if (in_array($aData['title'], $aData['modules'])) { $this->errors->set('title_exists'); break; } $sModuleName = ucfirst($aData['title']); $sModuleFileName = mb_strtolower($sModuleName); $sModulesPath = PATH_MODULES; if (file_exists($sModulesPath . $sModuleFileName . DIRECTORY_SEPARATOR . $sModuleName . '.class.php')) { $this->errors->set('title_exists'); break; } $sModuleDirectory = $sModulesPath . $sModuleFileName . DIRECTORY_SEPARATOR; if (!@mkdir($sModuleDirectory, 0666)) { $this->errors->set('create_dir_error', '', false, $sModulesPath . $sModuleFileName); break; } //create Template Directories if (!@mkdir($sModuleDirectory . 'tpl', 0666)) { $this->errors->set('create_dir_error', '', false, $sModuleDirectory . 'tpl'); break; } foreach ($aData['aLanguages'] as $lng) { @mkdir($sModuleDirectory . 'tpl' . DIRECTORY_SEPARATOR . $lng . DIRECTORY_SEPARATOR, 0666); } //create Language Files [+directory] if (!@mkdir($sModuleDirectory . 'lang', 0666)) { $this->errors->set('create_dir_error', '', false, $sModuleDirectory . 'lang'); break; } foreach ($aData['aLanguages'] as $lng) { CDir::putFileContent($sModuleDirectory . 'lang' . DIRECTORY_SEPARATOR . "{$lng}.inc.php", "<?php\n" . ($lng != 'def' ? "include_once 'def.inc.php';" : '') . "\n\n"); } //create BL file if (!CDir::putFileContent($sModuleDirectory . $sModuleFileName . '.bl.class.php', "<?php\n\nabstract class {$sModuleName}Base extends Module\n{\n var \$securityKey = '" . md5(uniqid($sModuleName)) . "';\n}\n")) { $this->errors->set('create_file_error', '', false, $sModuleFileName . '.bl.class.php'); break; } //create Menu file if (!CDir::putFileContent($sModuleDirectory . 'm.' . $sModuleFileName . '.class.php', "<?php\n\nclass M_{$sModuleName}\n{\n function declareAdminMenu()\n {\n global \$oMenu;\n\n \$oMenu->assign('{$sModuleName}', 'Список', '{$sModuleFileName}', 'listing', true, 1);\n\n }\n\n}\n")) { $this->errors->set('create_file_error', '', false, 'm.' . $sModuleFileName . '.class.php'); break; } //create Install.SQL file if (!CDir::putFileContent($sModuleDirectory . 'install.sql', "")) { $this->errors->set('create_file_error', '', false, 'install.sql'); break; } //[create Admin directory] $sModuleAdmDirectory = $sModuleDirectory; //create Admin file if (!CDir::putFileContent($sModuleAdmDirectory . $sModuleFileName . '.adm.class.php', "<?php\n\nclass {$sModuleName} extends {$sModuleName}Base\n{\n\n\n}\n")) { $this->errors->set('create_file_error', '', false, $sModuleFileName . '.adm.class.php'); break; } //create Frontend file if (!CDir::putFileContent($sModuleDirectory . $sModuleFileName . '.class.php', "<?php\n\nclass {$sModuleName} extends {$sModuleName}Base\n{\n\n\n}\n")) { $this->errors->set('create_file_error', '', false, $sModuleFileName . '.class.php'); break; } $this->adminRedirect(Errors::SUCCESSFULL, 'module_create'); } while (false); } $this->tplAssign('aData', $aData); return $this->tplFetch('admin.module.create.tpl'); }