Пример #1
0
 public static function getPlugin($id = null, $element = 'jce', $folder = 'editors')
 {
     if (!isset(self::$plugin)) {
         self::$plugin = array();
     }
     $options = array($element, $folder);
     if (isset($id)) {
         $options[] = $id;
     }
     $signature = serialize($options);
     if (!isset(self::$plugin[$signature])) {
         if (defined('JPATH_PLATFORM')) {
             // get component table
             $plugin = JTable::getInstance('extension');
             if (!$id) {
                 $id = $plugin->find(array('type' => 'plugin', 'folder' => $folder, 'element' => $element));
             }
             $plugin->load($id);
             // map extension_id to id
             $plugin->id = $plugin->extension_id;
             // store result
             self::$plugin[$signature] = $plugin;
         } else {
             $plugin = JTable::getInstance('plugin');
             if (!$id) {
                 $db = JFactory::getDBO();
                 $query = 'SELECT id FROM #__plugins' . ' WHERE folder = ' . $db->Quote($folder) . ' AND element = ' . $db->Quote($element);
                 $db->setQuery($query);
                 $id = $db->loadResult();
             }
             $plugin->load($id);
             // store result
             self::$plugin[$signature] = $plugin;
         }
     }
     return self::$plugin[$signature];
 }