TemplateSrcAction.class.php (3581B)
1 <?php 2 namespace cms\action\template; 3 use cms\action\Action; 4 use cms\action\Method; 5 use cms\action\RequestParams; 6 use cms\action\TemplateAction; 7 use cms\model\Element; 8 use cms\model\Project; 9 use cms\model\TemplateModel; 10 use language\Messages; 11 12 13 class TemplateSrcAction extends TemplateAction implements Method { 14 public function view() { 15 $project = new Project( $this->template->projectid ); 16 $modelId = $this->request->getModelId(); 17 18 $modelSrc = array(); 19 20 $templatemodel = new TemplateModel( $this->template->templateid, $modelId ); 21 $templatemodel->load(); 22 23 $text = $templatemodel->src; 24 25 foreach( $this->template->getElementIds() as $elid ) 26 { 27 $element = new Element( $elid ); 28 $element->load(); 29 30 // Fix old stuff: 31 $text = str_replace('{{'.$elid.'}}', 32 '{{'.$element->name.'}}', 33 $text ); 34 $text = str_replace('{{->'.$elid.'}}', 35 '{{goto.'.$element->name.'}}', 36 $text ); 37 $text = str_replace('{{IFEMPTY:'.$elid.':BEGIN}}', 38 '{{^'.$element->name.'}}', 39 $text ); 40 $text = str_replace('{{IFEMPTY:'.$elid.':END}}', 41 '{{/'.$element->name.'}}', 42 $text ); 43 $text = str_replace('{{IFNOTEMPTY:'.$elid.':BEGIN}}', 44 '{{#'.$element->name.'}}', 45 $text ); 46 $text = str_replace('{{IFNOTEMPTY:'.$elid.':END}}', 47 '{{/'.$element->name.'}}', 48 $text ); 49 } 50 51 $this->setTemplateVar( 'modelid',$modelId ); 52 $this->setTemplateVar( 'source' ,$text ); 53 $this->setTemplateVar( 'extension',$templatemodel->extension ); 54 } 55 56 57 /** 58 * Saving template source. 59 */ 60 public function post() { 61 $modelId = $this->request->getModelId(); 62 63 $templatemodel = new TemplateModel($this->template->templateid, $modelId); 64 $templatemodel->load(); 65 66 $newSource = $this->request->getRaw('source'); 67 68 /* 69 // Not useful any more. Technical name of a element should not be changed. 70 foreach ($this->template->getElementNames() as $elid => $elname) { 71 $newSource = str_replace('{{' . $elname . '}}', '{{' . $elid . '}}', $newSource); 72 $newSource = str_replace('{{->' . $elname . '}}', '{{->' . $elid . '}}', $newSource); 73 $newSource = str_replace('{{' . \cms\base\Language::lang('TEMPLATE_SRC_IFEMPTY') . ':' . $elname . ':' . \cms\base\Language::lang('TEMPLATE_SRC_BEGIN') . '}}', '{{IFEMPTY:' . $elid . ':BEGIN}}', $newSource); 74 $newSource = str_replace('{{' . \cms\base\Language::lang('TEMPLATE_SRC_IFEMPTY') . ':' . $elname . ':' . \cms\base\Language::lang('TEMPLATE_SRC_END') . '}}', '{{IFEMPTY:' . $elid . ':END}}', $newSource); 75 $newSource = str_replace('{{' . \cms\base\Language::lang('TEMPLATE_SRC_IFNOTEMPTY') . ':' . $elname . ':' . \cms\base\Language::lang('TEMPLATE_SRC_BEGIN') . '}}', '{{IFNOTEMPTY:' . $elid . ':BEGIN}}', $newSource); 76 $newSource = str_replace('{{' . \cms\base\Language::lang('TEMPLATE_SRC_IFNOTEMPTY') . ':' . $elname . ':' . \cms\base\Language::lang('TEMPLATE_SRC_END') . '}}', '{{IFNOTEMPTY:' . $elid . ':END}}', $newSource); 77 } 78 */ 79 80 $templatemodel->src = $newSource; 81 $templatemodel->extension = $this->request->getText('extension'); 82 $templatemodel->public = $this->request->isTrue('release'); 83 $templatemodel->persist(); 84 85 $this->addNoticeFor($this->template,Messages::SAVED); 86 } 87 }