openrat-cms

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

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 }