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:
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