示例#1
0
 /**
  * Display module contents.
  */
 public final function display()
 {
     // Load CSS only once
     if (static::$css) {
         $this->document->addStyleSheet(JURI::root(true) . static::$css);
         static::$css = null;
     }
     // Use caching also for registered users if enabled.
     if ($this->params->get('owncache', 0)) {
         /** @var $cache JCacheControllerOutput */
         $cache = JFactory::getCache('com_kunena', 'output');
         $me = KunenaFactory::getUser();
         $cache->setLifeTime($this->params->get('cache_time', 180));
         $hash = md5(serialize($this->params));
         if ($cache->start("display.{$me->userid}.{$hash}", 'mod_kunenalatest')) {
             return;
         }
     }
     // Initialize Kunena.
     KunenaForum::setup();
     // Display module.
     $this->_display();
     // Store cached page.
     if (isset($cache)) {
         $cache->end();
     }
 }
示例#2
0
 /**
  * @param string $cssFilename
  * @param string $path
  */
 public static function delCss($cssFilename, $path = RES_CSS)
 {
     static::$css = array_diff(static::$css, [$path . $cssFilename]);
 }
示例#3
0
 /**
  * Add css files to the array
  * @param array $files
  */
 public static function addCss(array $files)
 {
     static::$css = array_merge($files, static::$css);
 }
示例#4
0
 /**
  * Add new asset after another asset in its array
  *
  * @param string $a
  * @param string $b
  * @param string/array $params
  *
  * @return void
  */
 public static function addAfter($a, $b, $params = 'footer', $onUnknownExtension = false)
 {
     // check for '*' character
     static::checkVersion($a);
     switch (static::getAddTo($a, $onUnknownExtension)) {
         case static::ADD_TO_CSS:
             $bpos = array_search($b, array_keys(static::$css));
             if ($bpos === 0 || $bpos > 0) {
                 $barr = array_slice(static::$css, $bpos + 1);
                 $aarr = array_slice(static::$css, 0, $bpos + 1);
                 $aarr[$a] = $a;
                 static::$css = array_merge($aarr, $barr);
             } else {
                 static::$css[$a] = $a;
             }
             break;
         case static::ADD_TO_LESS:
             $bpos = array_search($b, array_keys(static::$less));
             if ($bpos === 0 || $bpos > 0) {
                 $barr = array_slice(static::$less, $bpos + 1);
                 $aarr = array_slice(static::$less, 0, $bpos + 1);
                 $aarr[$a] = $a;
                 static::$less = array_merge($aarr, $barr);
             } else {
                 static::$less[$a] = $a;
             }
             break;
         case static::ADD_TO_JS:
             if (is_array($params) && !empty($params['name'])) {
                 $name = $params['name'];
                 static::$jsParams[$name][$a] = $params;
             } else {
                 $name = $params;
             }
             if (!empty(static::$js[$name])) {
                 $bpos = array_search($b, array_keys(static::$js[$name]));
                 if ($bpos === 0 || $bpos > 0) {
                     $barr = array_slice(static::$js[$name], $bpos + 1);
                     $aarr = array_slice(static::$js[$name], 0, $bpos + 1);
                     $aarr[$a] = $a;
                     static::$js[$name] = array_merge($aarr, $barr);
                 } else {
                     static::$js[$name][$a] = $a;
                 }
             }
             break;
     }
 }
示例#5
0
 /**
  * Remove a CSS asset, or all
  *
  * @param   mixed   Asset name, or `NULL` to remove all
  * @return  mixed   Empty array or void
  */
 public static function removeCss($handle = NULL)
 {
     if ($handle === NULL) {
         return static::$css = [];
     }
     unset(static::$css[$handle]);
 }
示例#6
0
 public function getCssFiles()
 {
     static::$css = array_values(array_unique(static::$css));
     return static::$css;
 }
示例#7
0
 /**
  * Add new asset after another asset in its array
  *
  * @param string $a
  * @param string $b
  * @param string $name
  *
  * @return void
  */
 public static function addAfter($a, $b, $name = 'footer', $onUnknownExtension = false)
 {
     switch (static::getAddTo($a, $onUnknownExtension)) {
         case static::ADD_TO_CSS:
             $bpos = array_search($b, static::$css);
             if ($bpos === 0 || $bpos > 0) {
                 $barr = array_slice(static::$css, $bpos + 1);
                 $aarr = array_slice(static::$css, 0, $bpos + 1);
                 array_push($aarr, $a);
                 static::$css = array_merge($aarr, $barr);
             } else {
                 static::$css[] = $a;
             }
             break;
         case static::ADD_TO_LESS:
             $bpos = array_search($b, static::$less);
             if ($bpos === 0 || $bpos > 0) {
                 $barr = array_slice(static::$less, $bpos + 1);
                 $aarr = array_slice(static::$less, 0, $bpos + 1);
                 array_push($aarr, $a);
                 static::$less = array_merge($aarr, $barr);
             } else {
                 static::$less[] = $a;
             }
             break;
         case static::ADD_TO_JS:
             if (!empty(static::$js[$name])) {
                 $bpos = array_search($b, static::$js[$name]);
                 if ($bpos === 0 || $bpos > 0) {
                     $barr = array_slice(static::$js[$name], $bpos + 1);
                     $aarr = array_slice(static::$js[$name], 0, $bpos + 1);
                     array_push($aarr, $a);
                     static::$js[$name] = array_merge($aarr, $barr);
                 } else {
                     static::$js[$name][] = $a;
                 }
             }
             break;
     }
 }