openrat-cms

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

commit c6d28f6ca003bf27e949a1bad21a0c2695aebaec
parent da123e65667f3e9081d15d37b538e1111d76b86b
Author: dankert <devnull@localhost>
Date:   Thu, 15 Nov 2007 22:42:46 +0100

Beim Anlegen von Seitenvorlagen Beispiel-Vorlagen anbieten.

Diffstat:
actionClasses/TemplateAction.class.php | 113+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------
themes/default/templates/template/add.tpl.src.php | 30+++++++++++++++++++++++++-----
2 files changed, 124 insertions(+), 19 deletions(-)

diff --git a/actionClasses/TemplateAction.class.php b/actionClasses/TemplateAction.class.php @@ -20,6 +20,9 @@ // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. // --------------------------------------------------------------------------- // $Log$ +// Revision 1.19 2007-11-15 21:42:46 dankert +// Beim Anlegen von Seitenvorlagen Beispiel-Vorlagen anbieten. +// // Revision 1.18 2007-11-05 20:51:03 dankert // Aufruf von "addValidationError(...)" bei Eingabefehlern. // @@ -275,6 +278,18 @@ class TemplateAction extends Action function add() { $this->setTemplateVar( 'templates',Template::getAll() ); + + $examples = array(); + $dir = opendir( 'examples/templates'); + while( $file = readdir($dir) ) + { + if ( substr($file,0,1) != '.') + { + $examples[$file] = $file; + } + } + + $this->setTemplateVar( 'examples',$examples ); } @@ -282,17 +297,38 @@ class TemplateAction extends Action function addtemplate() { // Hinzufuegen eines Templates - if ( $this->getRequestVar('name') != '' ) + if ( $this->getRequestVar('name') == '' ) + { + $this->addValidationError('name'); + $this->callSubAction('add'); + return; + } + + // Hinzufuegen eines Templates + switch( $this->getRequestVar('type') ) { + case 'empty': - $template = new Template(); - $template->add( $this->getRequestVar('name') ); - $this->addNotice('template',$template->name,'ADDED','ok'); + $template = new Template(); + $template->add( $this->getRequestVar('name') ); + $this->addNotice('template',$template->name,'ADDED','ok'); + break; + + case 'copy': + + $copy_templateid = intval($this->getRequestVar('templateid') ); + + if ( $copy_templateid == 0 ) + { + $this->addValidationError('templateid'); + $this->callSubAction('add'); + return; + } + + $template = new Template(); + $template->add( $this->getRequestVar('name') ); + $this->addNotice('template',$template->name,'ADDED','ok'); - $copy_templateid = intval($this->getRequestVar('templateid') ); - - if ( $copy_templateid > 0 ) - { $copy_template = new Template( $copy_templateid ); $copy_template->load(); foreach( $copy_template->getElements() as $element ) @@ -304,14 +340,63 @@ class TemplateAction extends Action } $this->addNotice('template',$copy_template->name,'COPIED','ok'); - } - } - else - { - $this->addValidationError('name'); - $this->callSubAction('add'); + + break; + + case 'example': + + $template = new Template(); + + $model = Session::getProjectModel(); + $template->modelid = $model->modelid; + + $template->add( $this->getRequestVar('name') ); + + $example = parse_ini_file('examples/templates/'.$this->getRequestVar('example'),true); + + foreach( $example as $exampleKey=>$exampleElement ) + { + if ( !is_array($exampleElement) ) + { + $template->$exampleKey = $exampleElement; + } + else + { + $element = new Element(); + $element->templateid = $template->templateid; + $element->name = $exampleKey; + $element->writable = true; + $element->add(); + + foreach( $exampleElement as $ePropName=>$ePropValue) + $element->$ePropName = $ePropValue; + + $element->defaultText = str_replace(';',"\n",$element->defaultText); + $element->save(); +// Html::debug($element,"Element"); + } + } +// Html::debug($template,"Template"); + $template->name = $this->getRequestVar('name'); + $template->src = str_replace(';',"\n",$template->src); + + foreach( $template->getElementNames() as $elid=>$elname ) + { + $template->src = str_replace('{{'.$elname.'}}' ,'{{'.$elid.'}}' ,$template->src ); + $template->src = str_replace('{{->'.$elname.'}}','{{->'.$elid.'}}',$template->src ); + } + + $template->save(); + $this->addNotice('template',$template->name,'ADDED','ok'); + + break; + default: + $this->addValidationError('type'); + $this->callSubAction('add'); + return; } + $this->setTemplateVar('tree_refresh',true); } diff --git a/themes/default/templates/template/add.tpl.src.php b/themes/default/templates/template/add.tpl.src.php @@ -1,19 +1,39 @@ page form - window name:GLOBAL_TEMPLATES + window name:GLOBAL_TEMPLATES widths:10px,40px row - cell + cell colspan:2 text text:message:name cell input name:name row + cell colspan:3 + fieldset title:message:options + row + cell + radio name:type value:empty + cell + label for:type_empty + text text:message:empty + row + cell + radio name:type value:copy + cell + label for:type_copy + text text:message:copy cell - text text:message:copy + selectbox name:templateid list:templates + row + cell + radio name:type value:example + cell + label for:type_example + text text:message:example cell - selectbox name:templateid list:templates addempty:true + selectbox name:example list:examples row - cell colspan:2 class:act + cell colspan:3 class:act button type:ok focus field:name \ No newline at end of file