Beispiel #1
0
 /**
  * Сохранение шаблона письма в файл
  * @param string ключ шаблона                                           
  * @param array (body=>string, subject=>string) данные шаблона
  */
 function saveMailTemplateToFile($sTemplateKey, $aTemplateData)
 {
     return CDir::putFileContent(SENDMAIL_TEMPLATES_PATH . $sTemplateKey . SENDMAIL_TEMPLATES_EXT, serialize($aTemplateData));
 }
Beispiel #2
0
 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');
 }
Beispiel #3
0
 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');
 }