[pLog-svn] r4227 - in plog/branches/lifetype-1.1.2: class/view/admin/chooser js/tinymce templates/admin/chooser

oscar at devel.lifetype.net oscar at devel.lifetype.net
Wed Nov 1 22:21:39 GMT 2006


Author: oscar
Date: 2006-11-01 22:21:39 +0000 (Wed, 01 Nov 2006)
New Revision: 4227

Modified:
   plog/branches/lifetype-1.1.2/class/view/admin/chooser/adminsimpleresourceslistview.class.php
   plog/branches/lifetype-1.1.2/js/tinymce/tiny_mce-plog-resourcelist.js
   plog/branches/lifetype-1.1.2/templates/admin/chooser/resourcelist.template
Log:
fixed issue 1097 (http://bugs.lifetype.net/view.php?id=1097) -- URL of resources added to a post do not use subdomains
Since PHP and Javascript cannot share objects (at least, not easily) there was no way to have javascript generate URLs using any of the formats we support, so the solution so far was to always use 'plain' URLs for files and images added to posts via the 'resource list' pop-up window. Now what we're doing is pre-generating the links but instead of a file or album name, the links contain placeholders for the "real" file or album name, which is put in the right place via some javascript code. 


Modified: plog/branches/lifetype-1.1.2/class/view/admin/chooser/adminsimpleresourceslistview.class.php
===================================================================
--- plog/branches/lifetype-1.1.2/class/view/admin/chooser/adminsimpleresourceslistview.class.php	2006-11-01 21:52:43 UTC (rev 4226)
+++ plog/branches/lifetype-1.1.2/class/view/admin/chooser/adminsimpleresourceslistview.class.php	2006-11-01 22:21:39 UTC (rev 4227)
@@ -28,8 +28,40 @@
             $destination = $this->getValue( "destination" );			
 			// check if htmlarea is enabled
 			$blogSettings = $this->_blogInfo->getSettings();
+			
             $this->setValue( "htmlarea", $blogSettings->getValue( "htmlarea_enabled", false ));
 
+			// generate the dummy album and resource, with the placeholders
+			$dummyAlbum = new GalleryAlbum( $this->_blogInfo->getId(),   // owner id
+				                            "XXALBUMNAMEXX",  // album name
+				                            "XXALBUMDESCXX",  // description
+				                            0,  // flags
+				                            0, // parent id
+				                            new Timestamp(),  // date 
+				                            Array(),  // properties
+				                            true,   // show blog
+				                            "XXALBUMIDXX" );    // id 
+			$dummyResource = new GalleryResource( $this->_blogInfo->getId(), // owner id
+			                                      -1,  // album id
+			                                      "XXRESOURCEDESCXX",  // description
+			                                      0, // flags
+			                                      GALLERY_RESOURCE_IMAGE, // an image, but it doesn't really matter
+			                                      "XXRESOURCEPATHXX", // file path 
+			                                      "XXRESOURCENAMEXX", // file name
+			                                      Array(), // no metadata
+			                                      new Timestamp(), // date
+			                                      THUMBNAIL_OUTPUT_FORMAT_SAME_AS_IMAGE, // it doesn't matter
+			                                      Array(),
+			                                      -1 ); // id
+			$dummyResource->setAlbumId( "XXALBUMIDXX" );
+			$dummyResource->setAlbum( $dummyAlbum );
+			// generate 4 urls with the current blog settings
+			$url = $this->_blogInfo->getBlogRequestGenerator();
+			$this->setValue( "albumlink", $url->albumLink( $dummyAlbum ));
+			$this->setValue( "resourcelink", $url->resourceDownloadLink( $dummyResource ));
+			$this->setValue( "resourcepreviewlink", $url->resourcePreviewLink( $dummyResource ));
+			$this->setValue( "resourcemediumpreviewlink", $url->resourceMediumSizePreviewLink( $dummyResource ));
+
 			$this->_pagerUrl = "?op=resourceList&mode=$destination&page=";
 
 			parent::render();

Modified: plog/branches/lifetype-1.1.2/js/tinymce/tiny_mce-plog-resourcelist.js
===================================================================
--- plog/branches/lifetype-1.1.2/js/tinymce/tiny_mce-plog-resourcelist.js	2006-11-01 21:52:43 UTC (rev 4226)
+++ plog/branches/lifetype-1.1.2/js/tinymce/tiny_mce-plog-resourcelist.js	2006-11-01 22:21:39 UTC (rev 4227)
@@ -19,40 +19,66 @@
     return htmlCode;
 }
 
-function _generateResourceLink( dest, blogId, type, resourceName, resourceDesc, preview, mimeType, resId )
+function _generateResourceLink( dest, blogId, type, resourceName, resourceDesc, preview, mimeType, resId, albumName, albumId )
 {
     var htmlCode = '';
+
+	// build the templates and use the default ones if no templates available
+	if( resourceLink == '' )
+		resourceLink = plogBaseUrl+'/resserver.php?blogId='+blogId+'&resource=XXRESOURCENAMEXX';
+	if( resourcePreviewLink == '' )
+		resourcePreviewLink = plogBaseUrl+'/resserver.php?blogId='+blogId+'&resource=XXRESOURCENAMEXX&mode=preview';		
+	if( resourceMediumPreviewLink == '' )
+		resourceMediumPreviewLink = plogBaseUrl+'/resserver.php?blogId='+blogId+'&resource=XXRESOURCENAMEXX&mode=medium';
+		
+	// link template
+	resLink = resourceLink.replace( /XXRESOURCENAMEXX/i, encodeURIComponent(resourceName));
+	resLink = resLink.replace( /XXRESOURCEIDXX/i, resId );
+	resLink = resLink.replace( /XXALBUMNAMEXX/i, albumName );
+	resLink = resLink.replace( /XXALBUMIDXX/i, albumId );	
+	// preview template
+	prevLink = resourcePreviewLink.replace( /XXRESOURCENAMEXX/i, encodeURIComponent(resourceName));
+	prevLink = prevLink.replace( /XXRESOURCEIDXX/i, resId );
+	prevLink = prevLink.replace( /XXALBUMNAMEXX/i, albumName );
+	prevLink = prevLink.replace( /XXALBUMIDXX/i, albumId );
+	// medium preview link
+	medPrevLink = resourceMediumPreviewLink.replace( /XXRESOURCENAMEXX/i, encodeURIComponent(resourceName));
+	medPrevLink = medPrevLink.replace( /XXRESOURCEIDXX/i, resId );
+	medPrevLink = medPrevLink.replace( /XXALBUMNAMEXX/i, albumName );
+	medPrevLink = medPrevLink.replace( /XXALBUMNAMEXX/i, albumName );	
+	medPrevLink = medPrevLink.replace( /XXALBUMIDXX/i, albumId );
+
     if( type == 1 ) {
 	    // if the resource is an image, check the second parameter to see wether we'd like
 	    // to show the preview with a link to the real size image or the real image
 	    // inlined with the text
-	    if( preview == 1 ) {
-		    htmlCode = '<a id="res_' + resId+ '" href="'+plogBaseUrl+'/resserver.php?blogId='+blogId+'&amp;resource='+encodeURIComponent(resourceName)+'" type="'+mimeType+'">';
-		    htmlCode += '<img style="margin: 5px;" border="0" alt="'+resourceDesc+'" src="'+plogBaseUrl+'/resserver.php?blogId='+blogId+'&amp;resource='+encodeURIComponent(resourceName)+'&amp;mode=preview" />';
+	    if( preview == 1 ) {			 
+		    htmlCode = '<a id="res_' + resId+ '" href="'+resLink+'" type="'+mimeType+'">';
+		    htmlCode += '<img style="margin: 5px;" border="0" alt="'+resourceDesc+'" src="'+prevLink+'" />';
 		    htmlCode += '</a>';
 	    }
 		else if ( preview == 2 ) {
-		    htmlCode = '<a id="res_' + resId+ '" href="'+plogBaseUrl+'/resserver.php?blogId='+blogId+'&amp;resource='+encodeURIComponent(resourceName)+'" type="'+mimeType+'">';
-		    htmlCode += '<img style="margin: 5px;" border="0" alt="'+resourceDesc+'" src="'+plogBaseUrl+'/resserver.php?blogId='+blogId+'&amp;resource='+encodeURIComponent(resourceName)+'&amp;mode=medium" />';
+		    htmlCode = '<a id="res_' + resId+ '" href="'+resLink+'" type="'+mimeType+'">';
+		    htmlCode += '<img style="margin: 5px;" border="0" alt="'+resourceDesc+'" src="'+medPrevLink+'" />';
 		    htmlCode += '</a>';
 		}
 	    else {
-		    htmlCode = '<img style="margin: 5px;" alt="'+resourceDesc+'" src="'+plogBaseUrl+'/resserver.php?blogId='+blogId+'&amp;resource='+encodeURIComponent(resourceName)+'" />';
+		    htmlCode = '<img style="margin: 5px;" alt="'+resourceDesc+'" src="'+resLink+'" />';
 	    }
     }
     else {
 	    // if not an image, there is not much we can do
-	    htmlCode = '<a id="res_'+resId+'" title="'+resourceDesc+'" href="'+plogBaseUrl+'/resserver.php?blogId='+blogId+'&amp;resource='+encodeURIComponent(resourceName)+'" type="'+mimeType+'">'+resourceName+'</a>';
+	    htmlCode = '<a id="res_'+resId+'" title="'+resourceDesc+'" href="'+resLink+'" type="'+mimeType+'">'+resourceName+'</a>';
     }
   
     return htmlCode;
 
 }
 
-function addResourceLink( dest, reqFormat, blogId, type, resourceName, resourceDesc, preview, mimeType, resId ) 
+function addResourceLink( dest, reqFormat, blogId, type, resourceName, resourceDesc, preview, mimeType, resId, albumName, albumId ) 
 {
     // generate the link
-    var htmlCode = _generateResourceLink( dest, reqFormat, blogId, type, resourceName, resourceDesc, preview, mimeType, resId );
+    var htmlCode = _generateResourceLink( dest, reqFormat, blogId, type, resourceName, resourceDesc, preview, mimeType, resId, albumName, albumId );
   
     // and now send the value to the text area where we are typing the post
     if( dest == 1 ) {
@@ -77,7 +103,14 @@
     if( indexPage == '' )
         indexPage = 'index.php';
 
-    htmlCode = '<a title="'+albumDesc+'" href="'+plogBaseUrl+'/'+indexPage+'?op=ViewAlbum&amp;blogId='+blogId+'&amp;albumId='+albumId+'">'+albumName+'</a>';
+	defaultAlbumLink = plogBaseUrl+'/'+indexPage+'?op=ViewAlbum&amp;blogId='+blogId+'&amp;albumId=XXALBUMIDXX';
+	if( albumLink == '' )
+		albumLink = defaultAlbumLink;
+		
+	albumLink = albumLink.replace(/XXALBUMNAMEXX/i,albumName);
+	albumLink = albumLink.replace(/XXALBUMIDXX/i,albumId);
+
+    htmlCode = '<a title="'+albumDesc+'" href="'+albumLink+'">'+albumName+'</a>';
 	
     return htmlCode;      
 }
@@ -111,8 +144,8 @@
 // -------
 //
 
-function addHtmlareaLink(dest, blogId, type, resourceName, resourceDesc, preview, mimeType, resId ) {
-    var htmlCode = _generateResourceLink( dest, blogId, type, resourceName, resourceDesc, preview, mimeType, resId );
+function addHtmlareaLink(dest, blogId, type, resourceName, resourceDesc, preview, mimeType, resId, albumName, albumId ) {
+    var htmlCode = _generateResourceLink( dest, blogId, type, resourceName, resourceDesc, preview, mimeType, resId, albumName, albumId );
     
     tinyMCE.execCommand("mceInsertContent",true,htmlCode);
 	tinyMCE.selectedInstance.repaint();
@@ -134,4 +167,4 @@
 
 function onCancel() {
 	tinyMCE.closeWindow(window);
-};
+};
\ No newline at end of file

Modified: plog/branches/lifetype-1.1.2/templates/admin/chooser/resourcelist.template
===================================================================
--- plog/branches/lifetype-1.1.2/templates/admin/chooser/resourcelist.template	2006-11-01 21:52:43 UTC (rev 4226)
+++ plog/branches/lifetype-1.1.2/templates/admin/chooser/resourcelist.template	2006-11-01 22:21:39 UTC (rev 4227)
@@ -17,6 +17,12 @@
 }
 </style>
 {/literal}
+<script type="text/javascript">
+	var albumLink = '{$albumlink}';
+	var resourceLink = '{$resourcelink}';
+	var resourcePreviewLink = '{$resourcepreviewlink}';
+	var resourceMediumPreviewLink = '{$resourcemediumpreviewlink}';		
+</script>
 <div id="list_nav_bar">
 <div id="list_nav_select"> 
 <form id="resourceListAlbum" action="admin.php" method="post">
@@ -108,19 +114,22 @@
   <script type="text/javascript">
     var resName_{$resource->getId()} = '{$resource->getFileName()|escape:"javascript"}';
     var resDesc_{$resource->getId()} = '{$resource->getDescription()|escape:"javascript"}';
+    {assign var=resourceAlbum value=$resource->getAlbum()}
+	var resAlbumName_{$resource->getId()} = '{$resourceAlbum->getName()|escape:"javascript"}';
+	var resAlbumId_{$resource->getId()} = '{$resourceAlbum->getId()}';	
   </script>
   {if $htmlarea}
-  <a href="javascript:addHtmlareaLink({$destination},{$blog->getId()},{$resource->getResourceType()},resName_{$resource->getId()},resDesc_{$resource->getId()},false,'{$resource->getMimeType()}','{$resource->getId()}');">{$locale->tr("add_resource")}</a><br/> 
+  <a href="javascript:addHtmlareaLink({$destination},{$blog->getId()},{$resource->getResourceType()},resName_{$resource->getId()},resDesc_{$resource->getId()},false,'{$resource->getMimeType()}','{$resource->getId()}',resAlbumName_{$resource->getId()},resAlbumId_{$resource->getId()});">{$locale->tr("add_resource")}</a><br/> 
   {else}
- <a href="javascript:addResourceLink({$destination},{$blog->getId()},{$resource->getResourceType()},resName_{$resource->getId()},resDesc_{$resource->getId()},false,'{$resource->getMimeType()}','{$resource->getId()}');">{$locale->tr("add_resource")}</a><br/> 
+ <a href="javascript:addResourceLink({$destination},{$blog->getId()},{$resource->getResourceType()},resName_{$resource->getId()},resDesc_{$resource->getId()},false,'{$resource->getMimeType()}','{$resource->getId()}',resAlbumName_{$resource->getId()},resAlbumId_{$resource->getId()});">{$locale->tr("add_resource")}</a><br/> 
   {/if}
   {if $resource->hasPreview()}
    {if $htmlarea}
-    <a href="javascript:addHtmlareaLink({$destination},{$blog->getId()},{$resource->getResourceType()},resName_{$resource->getId()},resDesc_{$resource->getId()},1,'{$resource->getMimeType()}','{$resource->getId()}');">{$locale->tr("add_resource_preview")}</a><br/>
-    <a href="javascript:addHtmlareaLink({$destination},{$blog->getId()},{$resource->getResourceType()},resName_{$resource->getId()},resDesc_{$resource->getId()},2,'{$resource->getMimeType()}','{$resource->getId()}');">{$locale->tr("add_resource_medium")}</a><br/>
+    <a href="javascript:addHtmlareaLink({$destination},{$blog->getId()},{$resource->getResourceType()},resName_{$resource->getId()},resDesc_{$resource->getId()},1,'{$resource->getMimeType()}','{$resource->getId()}',resAlbumName_{$resource->getId()},resAlbumId_{$resource->getId()});">{$locale->tr("add_resource_preview")}</a><br/>
+    <a href="javascript:addHtmlareaLink({$destination},{$blog->getId()},{$resource->getResourceType()},resName_{$resource->getId()},resDesc_{$resource->getId()},2,'{$resource->getMimeType()}','{$resource->getId()}',resAlbumName_{$resource->getId()},resAlbumId_{$resource->getId()});">{$locale->tr("add_resource_medium")}</a><br/>
    {else}
-   <a href="javascript:addResourceLink({$destination},{$blog->getId()},{$resource->getResourceType()},resName_{$resource->getId()},resDesc_{$resource->getId()},1,'{$resource->getMimeType()}','{$resource->getId()}');">{$locale->tr("add_resource_preview")}</a><br/>
-   <a href="javascript:addResourceLink({$destination},{$blog->getId()},{$resource->getResourceType()},resName_{$resource->getId()},resDesc_{$resource->getId()},2,'{$resource->getMimeType()}','{$resource->getId()}');">{$locale->tr("add_resource_medium")}</a><br/>
+   <a href="javascript:addResourceLink({$destination},{$blog->getId()},{$resource->getResourceType()},resName_{$resource->getId()},resDesc_{$resource->getId()},1,'{$resource->getMimeType()}','{$resource->getId()}',resAlbumName_{$resource->getId()},resAlbumId_{$resource->getId()});">{$locale->tr("add_resource_preview")}</a><br/>
+   <a href="javascript:addResourceLink({$destination},{$blog->getId()},{$resource->getResourceType()},resName_{$resource->getId()},resDesc_{$resource->getId()},2,'{$resource->getMimeType()}','{$resource->getId()}',resAlbumName_{$resource->getId()},resAlbumId_{$resource->getId()});">{$locale->tr("add_resource_medium")}</a><br/>
    {/if}
   {/if}
  </td>



More information about the pLog-svn mailing list