Beispiel #1
0
 public function all_action()
 {
     if (Request::get("search")) {
         $this->plugins = MarketPlugin::findBySQL("\n                    (\n                        name LIKE :likesearch\n                        OR (SELECT CONCAT(Vorname, ' ', Nachname) FROM auth_user_md5 WHERE user_id = pluginmarket_plugins.user_id LIMIT 1) LIKE :likesearch\n                        OR MATCH (short_description, description) AGAINST (:search IN BOOLEAN MODE)\n                        OR (SELECT GROUP_CONCAT(' ', tag) FROM pluginmarket_tags WHERE pluginmarket_tags.plugin_id = plugin_id GROUP BY pluginmarket_tags.plugin_id LIMIT 1) LIKE :likesearch\n                        OR (SELECT 1 FROM pluginmarket_plugin_usages WHERE pluginmarket_plugins.plugin_id = pluginmarket_plugin_usages.plugin_id AND name LIKE :likesearch LIMIT 1)\n                    )\n                    AND publiclyvisible = 1\n                    AND approved = 1\n                ORDER BY (IF(name LIKE :likesearch, 6, 0) + MATCH (short_description, description) AGAINST (:search)),name ", array('likesearch' => "%" . Request::get("search") . "%", 'search' => Request::get("search")));
     } elseif (Request::get("tag")) {
         $statement = DBManager::get()->prepare("\n                SELECT pluginmarket_plugins.*\n                FROM pluginmarket_plugins\n                    INNER JOIN pluginmarket_tags ON (pluginmarket_plugins.plugin_id = pluginmarket_tags.plugin_id)\n                WHERE pluginmarket_tags.tag = :tag\n                    AND pluginmarket_plugins.approved = 1\n                    AND pluginmarket_plugins.publiclyvisible = 1\n                ORDER BY name\n            ");
         $statement->execute(array('tag' => Request::get("tag")));
         $plugin_data = $statement->fetchAll(PDO::FETCH_ASSOC);
         $this->plugins = array();
         foreach ($plugin_data as $data) {
             $plugin = new MarketPlugin();
             $plugin->setData($data);
             $plugin->setNew(false);
             $this->plugins[] = $plugin;
         }
     } else {
         $this->plugins = MarketPlugin::findBySQL("publiclyvisible = 1 AND approved = 1 ORDER BY name ASC");
     }
     // Filter version
     if ($_SESSION['pluginmarket']['version']) {
         $this->plugins = array_filter($this->plugins, function ($plugin) {
             return $plugin->checkVersion($_SESSION['pluginmarket']['version']);
         });
     }
     $this->show_all = true;
     $this->render_action('overview_' . $_SESSION['pluginmarket']['view']);
 }