PATH:
home
/
letacommog
/
letaweb
/
admin
/
api
<?php // class to process api request from content editor class ContentManager extends BaseManager { //function to convert json data to css content protected function json2CSS($css) { return Functions::getCSSTextFormArray($css); } // function to save site builder data public function actionupdateSite() { $page_id = $_REQUEST['page_id']; $page = BPages::model()->find('file_name=:file_name', array(':file_name' => $page_id)); if (!$page) { $this->ajaxError(1); return; } $siteObj = Yii::app()->site; if (Yii::app()->site->model->isExpired()) { $this->ajaxError(1); return; } $structure = $_REQUEST['structure']; if (isset($_REQUEST['deleted'])) { $deleted = $_REQUEST['deleted']; Yii::app()->site->model->deleteModules($deleted); } if (isset($_REQUEST['configurations'])) { $configurations = $_REQUEST['configurations']; $this->_updateConfigurations($configurations); } $parts = $structure['parts']; $file_name = $page->file_name; foreach ($parts as $z) { $part_structure = $this->json2PagePartStructure($z); $content = $part_structure['content']; $ptype = $this->getIndex($z, 'type'); if ($ptype == 'main') { $type = $file_name; Yii::app()->site->model->writeFile('page_data', $page->id, implode(',', $part_structure['elements']), '.json'); } else { $type = '_'.$ptype; Yii::app()->site->model->writeFile('page_data', $type, implode(',', $part_structure['elements']), '.json'); } Yii::app()->site->model->writeFile('views', $type, $content); } if (isset($_REQUEST['styleSheets'])) { $styleSheets = $_REQUEST['styleSheets']; foreach ($styleSheets as $style_item) { $name = $style_item['name']; if ($name == 'themes') { continue; } $css_arr = array(); $skin_arr = array(); if (isset($style_item['css'])) { $css_arr = $style_item['css']; } if (isset($style_item['skin'])) { $skin_arr = $style_item['skin']; } $css = $this->json2CSS($skin_arr); Yii::app()->site->model->writeFile('css', $name, $css, '.css_skin'); $css = $this->json2CSS($css_arr); Yii::app()->site->model->writeFile('css', $name, $css, '.css'); } } $this->ajaxSuccess(true); } //convert POST pageZone data to HTML Structure public function json2PagePartStructure($part) { $s = ''; $elements = array(); if (isset($part['zones'])) { $zones = $part['zones']; foreach ($zones as $r) { $zone_structure = $this->json2ZoneStructure($r); $elements = array_merge($elements, $zone_structure['elements']); $s .= $zone_structure['content']; } } return array('content' => $s,'elements' => $elements); } //convert POST Zone data to HTML Structure public function json2ZoneStructure($zone, $data_mode = 1) { $s = ''; $elements = array(); if (isset($zone['rows'])) { $rows = $zone['rows']; foreach ($rows as $r) { $row_structure = $this->json2RowStructure($r, $data_mode); $elements = array_merge($elements, $row_structure['elements']); $s .= $row_structure['content']; } } $content = ''; $content .= "<?php Yii::app()->controller->beginWidget('application.widgets.CWidgetZone', array('page_id'=>'".$this->getIndex($zone, 'id')."','page_class'=>'".$this->getIndex($zone, 'class')."')) ?>"; $content .= $s; $content .= '<?php Yii::app()->controller->endWidget(); ?>'; $elements[] = $this->getIndex($zone, 'id'); return array('content' => $content,'elements' => $elements); } //convert POST Row data to HTML Structure public function json2RowStructure($row, $data_mode = 1) { $row_content = ''; $content = ''; $elements = array(); if (isset($row['columns'])) { $columns = $row['columns']; foreach ($columns as $c) { $column_structure = $this->json2ColumnStructure($c, $data_mode); $elements = array_merge($elements, $column_structure['elements']); $row_content .= $column_structure['content']; } $content .= "<?php Yii::app()->controller->beginWidget('application.widgets.CWidgetRow', array('page_id'=>'".$this->getIndex($row, 'id')."','page_class'=>'".$this->getIndex($row, 'class')."')) ?>"; $content .= $row_content; $content .= '<?php Yii::app()->controller->endWidget(); ?>'; } $elements[] = $this->getIndex($row, 'id'); return array('content' => $content,'elements' => $elements); } //convert POST Column data to HTML Structure public function json2ColumnStructure($column, $data_mode = 1) { $content = ''; $column_content = ''; $elements = array(); if (isset($column['modules'])) { $modules = $column['modules']; foreach ($modules as $m) { $module_structure = $this->json2ModuleStructure($m, $data_mode); $elements = array_merge($elements, $module_structure['elements']); $column_content .= $module_structure['content']; } } $content .= "<?php Yii::app()->controller->beginWidget('application.widgets.CWidgetColumn', array('page_id'=>'".$this->getIndex($column, 'id')."','page_class'=>'".$this->getIndex($column, 'class')."')) ?>"; $content .= $column_content; $content .= '<?php Yii::app()->controller->endWidget(); ?>'; $elements[] = $this->getIndex($column, 'id'); return array('content' => $content,'elements' => $elements); } //convert POST Module data to HTML Structure public function json2ModuleStructure($module, $data_mode = 1) { $content = ''; $module_content = ''; $elements = array(); if (isset($module['boxes'])) { $this->saveModule($module); $boxes = $module['boxes']; $box_module_content = ''; foreach ($boxes as $c) { $box_structure = $this->json2RowStructure($c); $elements = array_merge($elements, $box_structure['elements']); $box_module_content .= $box_structure['content']; } if ($data_mode == 1) { $content .= "<?php Yii::app()->controller->beginWidget('application.widgets.modules.CWidgetBox', array('page_id'=>'".$this->getIndex($module, 'id')."')); ?>"; } else { $content .= "<?php Yii::app()->controller->beginWidget('application.widgets.modules.CWidgetBox', array('dataJson'=>'".json_encode($this->getIndex($module, 'data'))."')); ?>"; } $content .= $box_module_content; $content .= '<?php Yii::app()->controller->endWidget(); ?>'; } elseif (isset($module['tabs'])) { $this->saveModule($module); $tabs = $module['tabs']; $navigation_content = ''; $tab_content = ''; $i = 0; foreach ($tabs as $t) { $tab_content .= "<?php Yii::app()->controller->beginWidget('application.widgets.modules.tab.CWidgetTabContent', array('page_id'=>'".$this->getIndex($module, 'id')."','tab_index'=>".$i.')); ?>'; if (isset($t['rows'])) { foreach ($t['rows'] as $c) { $tab_structure = $this->json2RowStructure($c); $elements = array_merge($elements, $tab_structure['elements']); $tab_content .= $tab_structure['content']; } } $tab_content .= '<?php Yii::app()->controller->endWidget(); ?>'; ++$i; } $this->saveModule($module); if ($data_mode == 1) { $content .= "<?php Yii::app()->controller->beginWidget('application.widgets.modules.tab.CWidgetTab', array('page_id'=>'".$this->getIndex($module, 'id')."')); ?>"; } else { $content .= "<?php Yii::app()->controller->beginWidget('application.widgets.modules.tab.CWidgetTab', array('dataJson'=>'".json_encode($this->getIndex($module, 'data'))."')); ?>"; } $content .= $tab_content; $content .= '<?php Yii::app()->controller->endWidget(); ?>'; } elseif (isset($module['accordions'])) { $this->saveModule($module); $accordions = $module['accordions']; $navigation_content = ''; $tab_content = ''; $i = 0; foreach ($accordions as $t) { $tab_content .= "<?php Yii::app()->controller->beginWidget('application.widgets.modules.accordion.CWidgetAccordionContent', array('page_id'=>'".$this->getIndex($module, 'id')."','tab_index'=>".$i.",'name'=>'".$this->getIndex($t, 'name')."')); ?>"; if (isset($t['rows'])) { foreach ($t['rows'] as $c) { $tab_structure = $this->json2RowStructure($c); $elements = array_merge($elements, $tab_structure['elements']); $tab_content .= $tab_structure['content']; } } $tab_content .= '<?php Yii::app()->controller->endWidget(); ?>'; ++$i; } if ($data_mode == 1) { $content .= "<?php Yii::app()->controller->beginWidget('application.widgets.modules.accordion.CWidgetAccordion', array('page_id'=>'".$this->getIndex($module, 'id')."')); ?>"; } else { $content .= "<?php Yii::app()->controller->beginWidget('application.widgets.modules.accordion.CWidgetAccordion', array('dataJson'=>'".json_encode($this->getIndex($module, 'data'))."')); ?>"; } $content .= $tab_content; $content .= '<?php Yii::app()->controller->endWidget(); ?>'; } elseif (isset($module['slicks'])) { $this->saveModule($module); $slicks = $module['slicks']; $box_module_content = ''; foreach ($slicks as $c) { $box_module_content .= "<?php Yii::app()->controller->beginWidget('application.widgets.modules.slick.CWidgetSlickItem', array('page_id'=>'".$this->getIndex($module, 'id')."')); ?>"; if (isset($c['rows'])) { foreach ($c['rows'] as $row) { $box_module_structure = $this->json2RowStructure($row); $elements = array_merge($elements, $box_module_structure['elements']); $box_module_content .= $box_module_structure['content']; } } $box_module_content .= '<?php Yii::app()->controller->endWidget(); ?>'; } if ($data_mode == 1) { $content .= "<?php Yii::app()->controller->beginWidget('application.widgets.modules.CWidgetSlick', array('page_id'=>'".$this->getIndex($module, 'id')."')); ?>"; } else { $content .= "<?php Yii::app()->controller->beginWidget('application.widgets.modules.CWidgetSlick', array('dataJson'=>'".json_encode($this->getIndex($module, 'data'))."')); ?>"; } $content .= $box_module_content; $content .= '<?php Yii::app()->controller->endWidget(); ?>'; } else { if ($data_mode == 1) { $this->saveModule($module); } if ($data_mode == 1) { $content .= "<?php Yii::app()->controller->widget('application.widgets.CWidgetModuleRenderer', array('page_id'=>'".$this->getIndex($module, 'id')."')); ?>"; } else { $content .= "<?php Yii::app()->controller->widget('application.widgets.CWidgetModuleRenderer', array('dataJson'=>'".json_encode($this->getIndex($module, 'data'))."')); ?>"; } } $elements[] = $this->getIndex($module, 'id'); return array('content' => $content,'elements' => $elements); } // function to save widget data to database protected function saveModule($module) { $data = getIndex($module, 'data', array()); $type = getIndex($module, 'type'); $id = getIndex($module, 'data_id', 0); $skin = getIndex($module, 'skin'); $data_id = getIndex($module, 'id'); $moduleForm = new ModuleForm(); $moduleForm->id = $id; $moduleForm->type = $type; $moduleForm->data_id = $data_id; $moduleForm->data = $data; $moduleForm->skin = $skin; if ($moduleForm->save()) { return true; } return false; } // get all skin for an module public function actiongetSkinList() { $type = $_REQUEST['name']; $format = $_REQUEST['format']; $skin_list = array(); $skins = BSkins::model()->findAll('type=:name and format=:format', array(':name' => $type, ':format' => $format)); $prefix = 'b_'; $postfix = ''; for ($i = 0; $i < sizeof($skins); ++$i) { $skin = $skins[$i]->attributes; $skin['html'] = Functions::parseSkinHtml($skin['html']); $skin['name'] = $prefix.$skin['name'].$postfix.'_'.$skins[$i]['format']; $skin_list[] = $skin; } $prefix = 'a_'; $postfix = ''; $skin = array(); $filePath = Yii::getPathofAlias('application.skins').DIRECTORY_SEPARATOR.$type; if(file_exists($filePath)) { foreach(glob($filePath. DIRECTORY_SEPARATOR.'*.skn.php') as $file) { $filename = basename($file); $skinName = str_replace('.skn.php', '',$filename); $skin = @include($file); if(isset($skin) && is_array($skin)) { $skin['name'] = $prefix.$skinName.$postfix.'_'.(isset($skin['format']) ? $skin['format'] : 0); $skin['html'] = Functions::parseSkinHtml($skin['html']); $skin_list[] = $skin; } } } $this->ajaxSuccess($skin_list); } // get default skin for all modules public function actiongetdefaultSkinsList() { $module = new BModule(); $skins = BSkins::model()->findAll(array( 'select' => '*', 'group' => 'type,format', 'distinct' => true, )); $rs = $this->ar_toArray($skins); $this->ajaxSuccess($rs); } public function actiongetZoneTemplate() { $name = $_REQUEST['name']; $c = $this->_getTemplate('zone_templates/'.$name); $this->ajaxSuccess($c); } public function actiongetzone_templatesList() { $list = Zone_Templates::model()->findAll(); $rs = $this->ar_toArray($list); $this->ajaxSuccess($rs); } public function actiongetFullModuleList() { $criteria = new CDbCriteria(); $criteria->condition = '1'; if (!Yii::app()->cms->isEnabled()) { $criteria->condition .= ' and blog=0'; } $criteria->order = 'priority asc'; $modulecategories = ModuleCategory::model()->findAll(array('order' => 'id asc, priority asc')); $modules = ModuleList::model()->findAll(); $data = array(); foreach ($modulecategories as $category) { $m = array(); $m['name'] = $category['name']; $j = 0; $m['items'] = array(); foreach ($modules as $module) { if($module['category'] == $category['id']) { $display = (isset($module['display']) ? $module['display'] : 1); if($display == 1) { $iconPath = Yii::getPathOfAlias('application_root.images.module').DIRECTORY_SEPARATOR .$module['name'].'.png'; if(file_exists($iconPath)) $preview = '/images/module/'.$module['name'].'.png'; else $preview = '/images/module/module.png'; $m['items'][] = array('name' => $module['name'], 'preview'=>$preview, 'display'=>(isset($module['display']) ? $module['display'] : 1),'display_name' => $module['display_name']); } } } $data[] = $m; } $this->ajaxSuccess($data); } }
[+]
..
[-] SettingsManager.php
[edit]
[-] BaseManager.php
[edit]
[+]
settings
[-] BlogManager.php
[edit]
[+]
blog
[-] AssetManager.php
[edit]
[+]
customize
[-] ContentManager.php
[edit]
[+]
content
[-] CustomizeManager.php
[edit]
[-] EcommerceManager.php
[edit]