Merge branch 'MDL-30044-master' of git://github.com/ankitagarwal/moodle
authorSam Hemelryk <sam@moodle.com>
Mon, 7 Nov 2011 22:58:10 +0000 (11:58 +1300)
committerSam Hemelryk <sam@moodle.com>
Mon, 7 Nov 2011 22:58:10 +0000 (11:58 +1300)
blocks/html/block_html.php
course/lib.php
lib/filestorage/file_types.mm
lib/minify/lib/Minify/CSS/Compressor.php
lib/minify/readme_moodle.txt
lib/modinfolib.php

index bead128..f030401 100644 (file)
@@ -121,4 +121,14 @@ class block_html extends block_base {
 
         return true;
     }
+
+    /**
+     * The block should only be dockable when the title of the block is not empty
+     * and when parent allows docking.
+     *
+     * @return bool
+     */
+    public function instance_can_be_docked() {
+        return (!empty($this->config->title) && parent::instance_can_be_docked());
+    }
 }
index 79ccf91..8fc57f2 100644 (file)
@@ -1149,6 +1149,9 @@ function get_array_of_activities($courseid) {
                                if (!empty($info->extraclasses)) {
                                    $mod[$seq]->extraclasses = $info->extraclasses;
                                }
+                               if (!empty($info->iconurl)) {
+                                   $mod[$seq]->iconurl = $info->iconurl;
+                               }
                                if (!empty($info->onclick)) {
                                    $mod[$seq]->onclick = $info->onclick;
                                }
@@ -1186,7 +1189,7 @@ function get_array_of_activities($courseid) {
                    // Minimise the database size by unsetting default options when they are
                    // 'empty'. This list corresponds to code in the cm_info constructor.
                    foreach (array('idnumber', 'groupmode', 'groupingid', 'groupmembersonly',
-                           'indent', 'completion', 'extra', 'extraclasses', 'onclick', 'content',
+                           'indent', 'completion', 'extra', 'extraclasses', 'iconurl', 'onclick', 'content',
                            'icon', 'iconcomponent', 'customdata', 'showavailability', 'availablefrom',
                            'availableuntil', 'conditionscompletion', 'conditionsgrade',
                            'completionview', 'completionexpected', 'score', 'showdescription')
index 64a12bb..71ff4fb 100644 (file)
@@ -36,6 +36,9 @@
 <node ID="_Freemind_Link_810187762" TEXT=".wmv"/>
 <node ID="_Freemind_Link_763870397" TEXT=".asf"/>
 <node TEXT=".ogv"/>
+<node TEXT=".f4v"/>
+<node TEXT=".m4v"/>
+<node TEXT=".webm"/>
 </node>
 <node ID="_Freemind_Link_1019644700" TEXT="non_web_video">
 <node ID="_Freemind_Link_190589975" TEXT=".avi"/>
index d483b2f..dad700a 100644 (file)
@@ -236,15 +236,16 @@ class Minify_CSS_Compressor {
      */
     protected function _fontFamilyCB($m)
     {
-        $m[1] = preg_replace('/
-                \\s*
-                (
-                    "[^"]+"      # 1 = family in double qutoes
-                    |\'[^\']+\'  # or 1 = family in single quotes
-                    |[\\w\\-]+   # or 1 = unquoted family
-                )
-                \\s*
-            /x', '$1', $m[1]);
-        return 'font-family:' . $m[1] . $m[2];
+        // Issue 210: must not eliminate WS between words in unquoted families
+        $pieces = preg_split('/(\'[^\']+\'|"[^"]+")/', $m[1], null, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);
+        $out = 'font-family:';
+        while (null !== ($piece = array_shift($pieces))) {
+            if ($piece[0] !== '"' && $piece[0] !== "'") {
+                $piece = preg_replace('/\\s+/', ' ', $piece);
+                $piece = preg_replace('/\\s?,\\s?/', ',', $piece);
+            }
+            $out .= $piece;
+        }
+        return $out . $m[2];
     }
 }
index bd798f2..bc14db5 100644 (file)
@@ -15,3 +15,6 @@ Changes:
  * Removed .htaccess - Not needed
  * Changed config.php - Changed settings to Moodle specific settings incase this
    ever gets accidentally used.
+ * Updated lib/Minify/CSS/Compressor.php - Applied an upstream fix for MDL-29864
+   to allow usage of unquoted font-familes with spaces in CSS.
+   http://code.google.com/p/minify/issues/detail?id=210
index bdf82ff..20ac75c 100644 (file)
@@ -578,6 +578,11 @@ class cm_info extends stdClass  {
      */
     private $extraclasses;
 
+    /**
+     * @var moodle_url full external url pointing to icon image for activity
+     */
+    private $iconurl;
+
     /**
      * @var string
      */
@@ -650,7 +655,7 @@ class cm_info extends stdClass  {
 
     /**
      * Note: Will collect view data, if not already obtained.
-                * @return string Extra HTML code to display after link
+     * @return string Extra HTML code to display after link
      */
     public function get_after_link() {
         $this->obtain_view_data();
@@ -675,7 +680,12 @@ class cm_info extends stdClass  {
         if (!$output) {
             $output = $OUTPUT;
         }
-        if (!empty($this->icon)) {
+        // Support modules setting their own, external, icon image
+        if (!empty($this->iconurl)) {
+            $icon = $this->iconurl;
+
+        // Fallback to normal local icon + component procesing
+        } else if (!empty($this->icon)) {
             if (substr($this->icon, 0, 4) === 'mod/') {
                 list($modname, $iconname) = explode('/', substr($this->icon, 4), 2);
                 $icon = $output->pix_url($iconname, $modname);
@@ -729,6 +739,18 @@ class cm_info extends stdClass  {
         $this->extraclasses = $extraclasses;
     }
 
+    /**
+     * Sets the external full url that points to the icon being used
+     * by the activity. Useful for external-tool modules (lti...)
+     * If set, takes precedence over $icon and $iconcomponent
+     *
+     * @param moodle_url $iconurl full external url pointing to icon image for activity
+     * @return void
+     */
+    public function set_icon_url(moodle_url $iconurl) {
+        $this->iconurl = $iconurl;
+    }
+
     /**
      * Sets value of on-click attribute for JavaScript.
      * Note: May not be called from _cm_info_view (only _cm_info_dynamic).
@@ -856,6 +878,7 @@ class cm_info extends stdClass  {
         $this->indent           = isset($mod->indent) ? $mod->indent : 0;
         $this->extra            = isset($mod->extra) ? $mod->extra : '';
         $this->extraclasses     = isset($mod->extraclasses) ? $mod->extraclasses : '';
+        $this->iconurl          = isset($mod->iconurl) ? $mod->iconurl : '';
         $this->onclick          = isset($mod->onclick) ? $mod->onclick : '';
         $this->content          = isset($mod->content) ? $mod->content : '';
         $this->icon             = isset($mod->icon) ? $mod->icon : '';
@@ -1199,9 +1222,16 @@ class cached_cm_info {
      */
     public $extraclasses;
 
+    /**
+     * External URL image to be used by activity as icon, useful for some external-tool modules
+     * like lti. If set, takes precedence over $icon and $iconcomponent
+     * @var $moodle_url
+     */
+    public $iconurl;
+
     /**
      * Content of onclick JavaScript; escaped HTML to be inserted as attribute value
      * @var string
      */
     public $onclick;
-}
\ No newline at end of file
+}