Example #1
0
 /**
  * Reset default queries and folders.
  * System will repopulate them.
  *
  * @return  void
  */
 public function resetTask()
 {
     // Check for request forgeries
     Request::checkToken(['get', 'post']);
     if (!User::authorise('core.admin', $this->_option)) {
         return $this->cancelTask();
     }
     $db = App::get('db');
     $query = new Query($db);
     $folder = new QueryFolder($db);
     $db->setQuery("DELETE FROM " . $db->quoteName($query->getTableName()));
     $db->query();
     $db->setQuery("DELETE FROM " . $db->quoteName($folder->getTableName()));
     $db->query();
     // Get all the default folders
     $folders = $folder->find('list', array('user_id' => 0, 'sort' => 'ordering', 'sort_Dir' => 'asc', 'iscore' => 1));
     if (count($folders) <= 0) {
         $defaults = array(1 => array('Common', 'Mine', 'Custom'), 2 => array('Common', 'Mine'));
         foreach ($defaults as $iscore => $fldrs) {
             $i = 1;
             foreach ($fldrs as $fldr) {
                 $f = new QueryFolder($db);
                 $f->iscore = $iscore;
                 $f->title = $fldr;
                 $f->check();
                 $f->ordering = $i;
                 $f->user_id = 0;
                 $f->store();
                 switch ($f->alias) {
                     case 'common':
                         $j = $iscore == 1 ? $query->populateDefaults('common', $f->id) : $query->populateDefaults('commonnotacl', $f->id);
                         break;
                     case 'mine':
                         $query->populateDefaults('mine', $f->id);
                         break;
                     default:
                         // Nothing for custom folder
                         break;
                 }
                 $i++;
             }
         }
     }
     $this->cancelTask();
 }