Author: ornicar2
Date: 2010-01-20 16:17:57 +0100 (Wed, 20 Jan 2010)
New Revision: 26946

Modified:
   plugins/diemPlugin/trunk/dmCorePlugin/lib/view/dmHelper.php
   plugins/diemPlugin/trunk/dmCorePlugin/lib/view/html/dmHtmlTag.php
   plugins/diemPlugin/trunk/dmCorePlugin/lib/view/html/media/tag/dmMediaTag.php
   plugins/diemPlugin/trunk/dmCorePlugin/web/js/dmCoreEditPlugins.js
Log:
[Diem]
- dmMediaTag can now require javascripts and stylesheets

Modified: plugins/diemPlugin/trunk/dmCorePlugin/lib/view/dmHelper.php
===================================================================
--- plugins/diemPlugin/trunk/dmCorePlugin/lib/view/dmHelper.php 2010-01-20 
15:17:06 UTC (rev 26945)
+++ plugins/diemPlugin/trunk/dmCorePlugin/lib/view/dmHelper.php 2010-01-20 
15:17:57 UTC (rev 26946)
@@ -238,7 +238,19 @@
       throw new dmException('£media can not display '.$source.' : missing 
service '.$serviceName);
     }
 
-    return $this->serviceContainer->getService($serviceName);
+    $media = $this->serviceContainer->getService($serviceName);
+
+    foreach($media->getStylesheets() as $stylesheet)
+    {
+      $this->context->getResponse()->addStylesheet($stylesheet);
+    }
+
+    foreach($media->getJavascripts() as $javascript)
+    {
+      $this->context->getResponse()->addJavascript($javascript);
+    }
+
+    return $media;
   }
   
   public function £table()

Modified: plugins/diemPlugin/trunk/dmCorePlugin/lib/view/html/dmHtmlTag.php
===================================================================
--- plugins/diemPlugin/trunk/dmCorePlugin/lib/view/html/dmHtmlTag.php   
2010-01-20 15:17:06 UTC (rev 26945)
+++ plugins/diemPlugin/trunk/dmCorePlugin/lib/view/html/dmHtmlTag.php   
2010-01-20 15:17:57 UTC (rev 26946)
@@ -167,10 +167,6 @@
     {
       if (null !== $value)
       {
-//        if(is_array($value))
-//        {
-//          dmDebug::kill($attributes, $key, $value);
-//        }
         $htmlAttributesString .= ' '.$key.'="'.htmlspecialchars($value, 
ENT_COMPAT, 'UTF-8').'"';
       }
     }
@@ -193,6 +189,25 @@
       (array) $attribute
     );
   }
+  
+  protected function addJavascript($keys)
+  {
+    $this->javascripts = array_merge($this->javascripts, (array) $keys);
+  }
 
+  public function getJavascripts()
+  {
+    return $this->javascripts;
+  }
 
+  protected function addStylesheet($keys)
+  {
+    $this->stylesheets = array_merge($this->stylesheets, (array) $keys);
+  }
+
+  public function getStylesheets()
+  {
+    return $this->stylesheets;
+  }
+
 }
\ No newline at end of file

Modified: 
plugins/diemPlugin/trunk/dmCorePlugin/lib/view/html/media/tag/dmMediaTag.php
===================================================================
--- 
plugins/diemPlugin/trunk/dmCorePlugin/lib/view/html/media/tag/dmMediaTag.php    
    2010-01-20 15:17:06 UTC (rev 26945)
+++ 
plugins/diemPlugin/trunk/dmCorePlugin/lib/view/html/media/tag/dmMediaTag.php    
    2010-01-20 15:17:57 UTC (rev 26946)
@@ -4,7 +4,9 @@
 {
   protected
   $resource,
-  $context;
+  $context,
+  $stylesheets = array(),
+  $javascripts = array();
 
   public function __construct(dmMediaResource $resource, dmContext $context, 
array $options = array())
   {
@@ -85,4 +87,24 @@
   {
     // override me
   }
+
+  protected function addJavascript($keys)
+  {
+    $this->javascripts = array_merge($this->javascripts, (array) $keys);
+  }
+
+  public function getJavascripts()
+  {
+    return $this->javascripts;
+  }
+
+  protected function addStylesheet($keys)
+  {
+    $this->stylesheets = array_merge($this->stylesheets, (array) $keys);
+  }
+
+  public function getStylesheets()
+  {
+    return $this->stylesheets;
+  }
 }
\ No newline at end of file

Modified: plugins/diemPlugin/trunk/dmCorePlugin/web/js/dmCoreEditPlugins.js
===================================================================
--- plugins/diemPlugin/trunk/dmCorePlugin/web/js/dmCoreEditPlugins.js   
2010-01-20 15:17:06 UTC (rev 26945)
+++ plugins/diemPlugin/trunk/dmCorePlugin/web/js/dmCoreEditPlugins.js   
2010-01-20 15:17:57 UTC (rev 26946)
@@ -1,11 +1,8 @@
 (function($)
 {
+  $.dm.loadedJavascripts = new Array();
+  $.dm.loadedStylesheets = new Array();
 
-  $.extend({
-    dmLoadedJavascripts: new Array(),
-    dmLoadedStylesheets: new Array()
-  });
-
   $.fn.extend({
   
     maxLength: function(max)
@@ -81,16 +78,16 @@
 
         for (i in data.css)
         {
-          if (-1 == $.inArray(data.css[i], $.dmLoadedStylesheets))
+          if (-1 == $.inArray(data.css[i], $.dm.loadedStylesheets))
           {
             $('head').append('<link rel="stylesheet" href="' + data.css[i] + 
'" />');
-            $.dmLoadedStylesheets.push(data.css[i]);
+            $.dm.loadedStylesheets.push(data.css[i]);
           }
         }
 
         for (var i in data.js)
         {
-          if (-1 == $.inArray(data.js[i], $.dmLoadedJavascripts))
+          if (-1 == $.inArray(data.js[i], $.dm.loadedJavascripts))
           {
             ajaxDefaultData = $.ajaxSettings.data;
             $.ajaxSettings.data = null;
@@ -104,7 +101,7 @@
 
             $.ajaxSettings.data = ajaxDefaultData;
 
-            $.dmLoadedJavascripts.push(data.js[i]);
+            $.dm.loadedJavascripts.push(data.js[i]);
           }
         }
       }

-- 
You received this message because you are subscribed to the Google Groups 
"symfony SVN" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/symfony-svn?hl=en.


Reply via email to