Ejemplo n.º 1
0
 public function reset()
 {
     $adm = $this->app->user_manager->is_admin();
     if (defined('MW_API_CALL') and $adm == false) {
         return array('error' => 'Error: not logged in as admin.' . __FILE__ . __LINE__);
     }
     $table = $this->table;
     DB::table($table)->truncate();
     $cg = guess_cache_group($table);
     $this->app->cache_manager->delete($cg);
     return array('success' => 'System log is cleaned up.');
 }
Ejemplo n.º 2
0
 public function save_content_field($data, $delete_the_cache = true)
 {
     $adm = $this->app->user_manager->is_admin();
     $table = $this->tables['content_fields'];
     $table_drafts = $this->tables['content_fields_drafts'];
     if ($adm == false) {
         return false;
     }
     if (!is_array($data)) {
         $data = array();
     }
     if (isset($data['is_draft'])) {
         $table = $table_drafts;
     }
     $data = $this->app->format->strip_unsafe($data);
     if (isset($data['is_draft']) and isset($data['url'])) {
         $draft_url = $this->app->database_manager->escape_string($data['url']);
         $last_saved_date = date("Y-m-d H:i:s", strtotime("-1 week"));
         $history_files_params = array();
         $history_files_params['order_by'] = 'id desc';
         $history_files_params['fields'] = 'id';
         $history_files_params['field'] = $data['field'];
         $history_files_params['rel_type'] = $data['rel_type'];
         $history_files_params['rel_id'] = $data['rel_id'];
         $history_files_params['is_draft'] = 1;
         $history_files_params['limit'] = 20;
         $history_files_params['url'] = $draft_url;
         $history_files_params['current_page'] = 2;
         $history_files_params['created_at'] = '[lt]' . $last_saved_date;
         $history_files = $this->edit_field($history_files_params);
         if (is_array($history_files)) {
             $history_files_ids = $this->app->format->array_values($history_files);
         }
         if (isset($history_files_ids) and is_array($history_files_ids) and !empty($history_files_ids)) {
             ContentFields::whereIn('id', $history_files_ids)->delete();
         }
     }
     if (!isset($data['rel_type']) or !isset($data['rel_id'])) {
         mw_error('Error: ' . __FUNCTION__ . ' rel and rel_id is required');
     }
     if (isset($data['field']) and !isset($data['is_draft'])) {
         $fld = $this->app->database_manager->escape_string($data['field']);
         $fld_rel = $this->app->database_manager->escape_string($data['rel_type']);
         $del_params = array();
         $del_params['rel_type'] = $fld_rel;
         $del_params['field'] = $fld;
         $del_params['table'] = $table;
         if (isset($data['rel_id'])) {
             $i = $data['rel_id'];
             $del_params['rel_id'] = $i;
         } else {
             $del_params['rel_id'] = 0;
         }
         $del = $this->app->database_manager->get($del_params);
         if (!empty($del)) {
             foreach ($del as $item) {
                 $this->app->database_manager->delete_by_id($table, $item['id']);
             }
         }
         $cache_group = guess_cache_group('content_fields/' . $data['rel_type'] . '/' . $data['rel_id']);
         $this->app->cache_manager->delete($cache_group);
     }
     if (isset($fld)) {
         $this->app->cache_manager->delete('content_fields/' . $fld);
         $this->app->cache_manager->delete('content_fields/global/' . $fld);
     }
     $this->app->cache_manager->delete('content_fields/global');
     if (isset($data['rel_type']) and isset($data['rel_id'])) {
         $cache_group = guess_cache_group('content_fields/' . $data['rel_type'] . '/' . $data['rel_id']);
         $this->app->cache_manager->delete($cache_group);
         $this->app->cache_manager->delete('content/' . $data['rel_id']);
     }
     if (isset($data['rel_type'])) {
         $this->app->cache_manager->delete('content_fields/' . $data['rel_type']);
     }
     if (isset($data['rel_type']) and isset($data['rel_id'])) {
         $this->app->cache_manager->delete('content_fields/' . $data['rel_type'] . '/' . $data['rel_id']);
         $this->app->cache_manager->delete('content_fields/global/' . $data['rel_type'] . '/' . $data['rel_id']);
     }
     if (isset($data['field'])) {
         $this->app->cache_manager->delete('content_fields/' . $data['field']);
     }
     $this->app->cache_manager->delete('content_fields/global');
     $data['table'] = $table;
     $data['allow_html'] = 1;
     $save = $this->app->database_manager->save($data);
     $this->app->cache_manager->delete('content_fields');
     return $save;
 }