[pLog-svn] r5890 - in plog/trunk: class/action/admin class/controller js/ui/pages locale/admin templates/admin

oscar at devel.lifetype.net oscar at devel.lifetype.net
Sun Sep 2 05:20:38 EDT 2007


Author: oscar
Date: 2007-09-02 05:20:38 -0400 (Sun, 02 Sep 2007)
New Revision: 5890

Added:
   plog/trunk/class/action/admin/adminnewtemplatefileaction.class.php
   plog/trunk/class/action/admin/adminuploadtemplatefileaction.class.php
   plog/trunk/templates/admin/newtemplatefile_form.template
Modified:
   plog/trunk/class/controller/admincontrollermap.properties.php
   plog/trunk/js/ui/pages/templateeditor.js
   plog/trunk/locale/admin/locale_en_UK.php
Log:
Implemented file uploads for the template editor.


Added: plog/trunk/class/action/admin/adminnewtemplatefileaction.class.php
===================================================================
--- plog/trunk/class/action/admin/adminnewtemplatefileaction.class.php	                        (rev 0)
+++ plog/trunk/class/action/admin/adminnewtemplatefileaction.class.php	2007-09-02 09:20:38 UTC (rev 5890)
@@ -0,0 +1,33 @@
+<?php
+
+	lt_include( PLOG_CLASS_PATH."class/action/admin/adminbasetemplateeditoraction.class.php" );
+	lt_include( PLOG_CLASS_PATH."class/view/admin/admintemplatedview.class.php" );
+
+	class AdminNewTemplateFileAction extends AdminBaseTemplateEditorAction
+	{
+	
+		function __construct( $actionInfo, $request )
+		{
+			$this->AdminBaseTemplateEditorAction( $actionInfo, $request );
+		}
+		
+		function validate()
+		{
+			// we override the default one in AdminBaseTemplateEditorAction::validate()
+			return( true );
+		}
+		
+		function perform()
+		{
+			return( $this->performAjax());
+		}
+		
+		function performAjax()
+		{
+			$this->_view = new AdminTemplatedView( $this->_blogInfo, "newtemplatefile_form" );
+			$this->setCommonData();
+			
+			return( true );
+		}
+	}
+?>
\ No newline at end of file

Added: plog/trunk/class/action/admin/adminuploadtemplatefileaction.class.php
===================================================================
--- plog/trunk/class/action/admin/adminuploadtemplatefileaction.class.php	                        (rev 0)
+++ plog/trunk/class/action/admin/adminuploadtemplatefileaction.class.php	2007-09-02 09:20:38 UTC (rev 5890)
@@ -0,0 +1,63 @@
+<?php
+
+	lt_include( PLOG_CLASS_PATH."class/action/admin/adminbasetemplateeditoraction.class.php" );
+	lt_include( PLOG_CLASS_PATH."class/view/admin/adminedittemplateview.class.php" );
+    lt_include( PLOG_CLASS_PATH."class/file/fileuploads.class.php" );	
+	lt_include( PLOG_CLASS_PATH."class/view/admin/adminsitetemplateslistview.class.php" );	
+	lt_include( PLOG_CLASS_PATH."class/data/validator/uploadvalidator.class.php" );
+
+	class AdminUploadTemplateFileAction extends AdminBaseTemplateEditorAction
+	{
+	
+		function __construct( $actionInfo, $request )
+		{
+			$this->AdminBaseTemplateEditorAction( $actionInfo, $request );
+			
+			$this->registerFieldValidator( "templateId", new TemplateNameValidator(), false);
+			$this->registerFieldValidator( "path", new StringValidator(), true );
+			$view = new AdminSiteTemplatesListView( $this->_blogInfo );
+			$view->setErrorMessage( $this->_locale->tr( "error_uploading_template_file" ));
+			$this->setValidationErrorView( $view );
+
+			$this->requireAdminPermission( "edit_global_templates" );			
+		}
+		
+		function validate()
+		{
+			return( parent::validate( Array( "templateId", "path" )));
+		}		
+		
+		function perform()
+		{
+			$this->_view = new AdminEditTemplateView( $this->_blogInfo, $this->_templateId, $this->_path );
+
+			// process the files and make sure that we're uploading an allowed file
+            $uploads = new FileUploads();			
+			$v = new UploadValidator();
+			foreach( $uploads as $upload ) {
+				if( $v->validate( $upload ) < 0) {
+					$this->_view->setErrorMessage( $this->_locale->tr("error_uploading_template_file" ));
+					$this->setCommonData();
+					return( false );
+				}				
+			}
+
+			// we can now move the uploaded file to the destination folder
+			$folder = TemplateSetStorage::getTemplateFolder( $this->_templateId) . "/" . $this->_path . "/";			
+			$result = $uploads->process( $folder );
+			
+			// check if the file was correctly saved
+            if( $result[0]->getError() != 0 ) {
+                $this->_view->setErrorMessage( $this->_locale->tr("error_uploading_template_file"));
+				$this->setCommonData();
+                return false;
+            }
+
+			$this->_view->setSuccessMessage( $this->_locale->tr( "template_file_uploaded_ok" ));
+			
+			$this->setCommonData();
+
+			return true;
+		}
+	}
+?>
\ No newline at end of file

Modified: plog/trunk/class/controller/admincontrollermap.properties.php
===================================================================
--- plog/trunk/class/controller/admincontrollermap.properties.php	2007-09-02 09:15:31 UTC (rev 5889)
+++ plog/trunk/class/controller/admincontrollermap.properties.php	2007-09-02 09:20:38 UTC (rev 5890)
@@ -363,4 +363,14 @@
 	$actions["addTemplateFolder"] = "AdminAddTemplateFolderAction";		
 	$actions["copyTemplateFile"] = "AdminCopyTemplateFileAction";
 	$actions["copyTemplateSet"] = "AdminCopyTemplateSetAction";
+	$actions["newTemplateFile"] = "AdminNewTemplateFileAction";	
+	$actions["uploadTemplateFile"] = "AdminUploadTemplateFileAction";	
+	// template editor for blog-specific templates
+	$actions["editBlogTemplate"] = "AdminEditBlogTemplateAction";
+	$actions["editBlogTemplateFile"] = "AdminEditBlogTemplateFileAction";	
+	$actions["updateBlogTemplateFile"] = "AdminUpdateBlogTemplateFileAction";
+	$actions["deleteBlogTemplateFile"] = "AdminDeleteBlogTemplateFileAction";
+	$actions["addBlogTemplateFolder"] = "AdminAddBlogTemplateFolderAction";		
+	$actions["copyBlogTemplateFile"] = "AdminCopyBlogTemplateFileAction";
+	$actions["copyBlogTemplateSet"] = "AdminCopyBlogTemplateSetAction";	
 ?>
\ No newline at end of file

Modified: plog/trunk/js/ui/pages/templateeditor.js
===================================================================
--- plog/trunk/js/ui/pages/templateeditor.js	2007-09-02 09:15:31 UTC (rev 5889)
+++ plog/trunk/js/ui/pages/templateeditor.js	2007-09-02 09:20:38 UTC (rev 5890)
@@ -76,6 +76,25 @@
 	var v = Lifetype.UI.Prompt.OkCancelPrompt.show( tr('enter_new_template_name'), { handleOk:Lifetype.UI.Pages.TemplateEditor.handleCopyTemplateOk });	
 }
 
+Lifetype.UI.Pages.TemplateEditor.templateFileUploadHandler = function( form )
+{
+	var pathField = document.createElement( 'input' );
+	pathField.value = Lifetype.Dom.$('currentPath').value;
+	pathField.style.display = 'none';
+	pathField.name = 'path';
+	pathField.type = 'text';
+	form.appendChild( pathField );
+	
+	var templateField = document.createElement( 'input' );
+	templateField.value = Lifetype.Dom.$('templateId').value;
+	templateField.style.display = 'none';	
+	templateField.name = 'templateId';
+	templateField.type = 'text';
+	form.appendChild( templateField );
+
+	return( true );
+}
+
 YAHOO.util.Event.addListener( window, "load", function() {
 	var t = new Lifetype.Effects.Table( "templateFiles" );
 	t.stripe();

Modified: plog/trunk/locale/admin/locale_en_UK.php
===================================================================
--- plog/trunk/locale/admin/locale_en_UK.php	2007-09-02 09:15:31 UTC (rev 5889)
+++ plog/trunk/locale/admin/locale_en_UK.php	2007-09-02 09:20:38 UTC (rev 5890)
@@ -1328,6 +1328,9 @@
 $messages['error_loading_template_set'] = 'Error loading the template set';
 $messages['enter_template_folder_name'] = 'Enter a name for the new template folder';
 $messages['error_deleting_template_file'] = 'There was an error deleting the template file';
+$messages['error_uploading_template_file'] = 'There was an error uploading the template file';
+$messages['new_template_file_help'] = 'Please select a file to upload';
+$messages['template_file_uploaded_ok'] = 'Template file successfully uploaded';
 
 $messages['ok'] = 'Ok';
 $messages['cancel'] = 'Cancel';

Added: plog/trunk/templates/admin/newtemplatefile_form.template
===================================================================
--- plog/trunk/templates/admin/newtemplatefile_form.template	                        (rev 0)
+++ plog/trunk/templates/admin/newtemplatefile_form.template	2007-09-02 09:20:38 UTC (rev 5890)
@@ -0,0 +1,20 @@
+<form id="newTemplateFile" name="newTemplateFile" action="admin.php" method="post" enctype="multipart/form-data" onSubmit="Lifetype.UI.Pages.TemplateEditor.templateFileUploadHandler(this);">
+  <fieldset class="inputField">
+   <legend>{$locale->tr("newTemplateFile")}</legend>
+   <div class="field" id="fileFields">
+    <label for="resourceFile_1">{$locale->tr("file")}</label>
+	<span class="required">*</span>
+	<div class="formHelp">{$locale->tr("new_template_file_help")}</div>  
+    <input type="file" id="templateFile" name="templateFile" />
+  </div>
+  </fieldset>
+  <div class="buttons" id="buttons">
+    <input type="reset" name="resetButton" value="{$locale->tr("reset")}" />
+    <input type="submit" name="addFile" onclick="showProgressBar('buttons')" value="{$locale->tr("add")}" />
+    <input type="hidden" name="op" value="uploadTemplateFile" />
+  </div>
+  <div class="status_bar" id="status_bar" style="display:none">
+    {$locale->tr("upload_in_progress")}&nbsp;
+    <img src="imgs/admin/spinner_small.gif" alt="Spinner" />    
+  </div>
+ </form>
\ No newline at end of file



More information about the pLog-svn mailing list