예제 #1
0
 public function save_usage_action()
 {
     // delete old usage
     MarketPluginUsage::deleteBySQL('user_id = ? AND name = ?', array(User::findCurrent()->id, Request::get('tag')));
     // create new usages
     foreach (Request::getArray('plugins') as $pluginid) {
         MarketPluginUsage::create(array('plugin_id' => $pluginid, 'user_id' => User::findCurrent()->id, 'name' => Request::get('tag')));
         $this->done++;
     }
 }
예제 #2
0
 public function up()
 {
     $db = DBManager::get();
     // Setup new table
     $db->exec("\n            CREATE TABLE IF NOT EXISTS `pluginmarket_plugin_usages` (\n  `usage_id` varchar(32) NOT NULL,\n  `plugin_id` varchar(32) NOT NULL,\n  `user_id` varchar(32) NOT NULL,\n  `name` varchar(128) NOT NULL,\n  `approved` tinyint(4) NOT NULL DEFAULT 0,\n  `chdate` int(11) NOT NULL,\n  `mkdate` int(11) NOT NULL,\n  PRIMARY KEY (`usage_id`),\n  KEY (`plugin_id`),\n  KEY (`user_id`),\n  KEY (`name`)\n) ENGINE=MyISAM\n        ");
     SimpleORMap::expireTableScheme();
     $stmt = $db->query("SELECT * FROM pluginmarket_plugins");
     while ($plugin = $stmt->fetch(PDO::FETCH_ASSOC)) {
         $hits = preg_split("/(?:\n|,|\t)/", $plugin['in_use']);
         $hits = array_map('trim', $hits);
         $hits = array_filter($hits);
         foreach ($hits as $hit) {
             MarketPluginUsage::create(array('plugin_id' => $plugin['plugin_id'], 'user_id' => $plugin['user_id'], 'name' => $hit));
         }
     }
     // Modify old table
     $db->exec("ALTER TABLE pluginmarket_plugins DROP COLUMN in_use");
 }
예제 #3
0
 public function propose_usage_action($plugin_id)
 {
     $this->plugin = new MarketPlugin($plugin_id);
     // Submit propose usage
     if (Request::submitted('propose')) {
         CSRFProtection::verifyUnsafeRequest();
         MarketPluginUsage::create(array('plugin_id' => $plugin_id, 'user_id' => User::findCurrent()->id, 'name' => Request::get('used_at')));
         $this->redirect('presenting/details/' . $plugin_id);
     }
     $this->most_used = DBManager::get()->fetchFirst('SELECT name FROM pluginmarket_plugin_usages WHERE user_id = ? AND name NOT IN (SELECT name FROM pluginmarket_plugin_usages WHERE plugin_id = ?) GROUP BY name ORDER BY count(*)', array(User::findCurrent()->id, $plugin_id));
 }