Example #1
0
 public function add_post($type = '', $id = -1)
 {
     $groups_name = $this->users->get_user_group_name(get_active_user_id());
     $groups = array();
     $user_created_posts = '';
     $user_created_categories = '';
     $default_user_post_category = '';
     foreach ($groups_name as $key => $value) {
         $group = $this->users->get_groups($value);
         if ($group[0]->allow_posts) {
             $user_created_posts = 1;
         }
         if ($group[0]->allow_categories) {
             $user_created_categories = 1;
         }
         $default_user_post_category .= $group[0]->default_user_post_category;
         $groups[] = $group[0];
     }
     if (!$this->user->is_logged_in()) {
         redirect("/user/main/userLogin", 'location');
     } else {
         // if($this->builderengine->get_option('user_created_posts') == 'yes' && $type != '')
         if ($user_created_posts && $type != '') {
             $category = new Category();
             $categores = explode(',', $default_user_post_category);
             $data['default_user_post_category'] = $category->where_in('name', $categores)->get();
             $this->load->model('post');
             $post = new Post($id);
             $data['object'] = $post;
             $data['page'] = ucfirst($type);
             if ($this->input->post() && $this->input->post('category_id')) {
                 $image_name = mt_rand() . '.jpg';
                 $this->load->model('user');
                 $this->user->upload_file('image', 'files/users', $image_name);
                 $_POST['groups_allowed'] = implode(',', $this->users->get_user_group_name($this->user->get_id()));
                 $_POST['image'] = base_url() . 'files/users/' . $image_name;
                 $post->create($_POST);
                 redirect('/user/blog/posts', 'location');
             }
             $this->show->set_user_backend();
             $this->show->user_backend('add_post', $data);
         } else {
             redirect("user/main/dashboard", 'location');
         }
     }
 }
Example #2
0
 public function update()
 {
     $this->load->library('form_validation');
     $this->form_validation->set_rules('task[name]', 'lang:admin_tasks_form_field_name', 'required');
     $this->form_validation->set_rules('task[text]', 'lang:admin_tasks_form_field_text', 'required');
     $this->form_validation->set_rules('task[categories][]', 'lang:admin_tasks_form_field_categories', 'required');
     $this->form_validation->set_rules('task_id', 'id', 'required');
     if ($this->form_validation->run()) {
         $task_id = $this->input->post('task_id');
         $task = new Task();
         $task->get_by_id($task_id);
         if ($task->exists()) {
             $task_data = $this->input->post('task');
             $overlay = $this->input->post('overlay');
             $task->from_array($task_data, array('name', 'internal_comment'));
             $task->text = remove_base_url($task_data['text']);
             $author = new Teacher();
             if ((int) $task_data['author_id'] > 0) {
                 $author->get_by_id((int) $task_data['author_id']);
             }
             $this->_transaction_isolation();
             $this->db->trans_begin();
             $categories = new Category();
             $categories->where_in('id', $task_data['categories']);
             $categories->get();
             $task->category->get();
             $task->delete($task->category->all);
             if ($task->save(array('category' => $categories->all, 'author' => $author)) && $this->lang->save_overlay_array(remove_base_url_from_overlay_array($overlay, 'text')) && $this->db->trans_status()) {
                 $this->db->trans_commit();
                 $this->messages->add_message('lang:admin_tasks_flash_message_save_successful', Messages::MESSAGE_TYPE_SUCCESS);
                 $this->_action_success();
             } else {
                 $this->db->trans_rollback();
                 $this->messages->add_message('lang:admin_tasks_flash_message_save_failed', Messages::MESSAGE_TYPE_ERROR);
             }
         } else {
             $this->messages->add_message('lang:admin_tasks_error_message_task_not_found', Messages::MESSAGE_TYPE_ERROR);
         }
         redirect(create_internal_url('admin_tasks'));
     } else {
         $this->edit();
     }
 }
 function members()
 {
     list($params, $id, $slug) = $this->parse_params(func_get_args());
     $cat = new Category();
     if (isset($params['content'])) {
         $getter = new Content();
         $model = $url_bit = 'content';
     } else {
         if (isset($params['albums'])) {
             $getter = new Album();
             $model = 'album';
             $url_bit = 'albums';
         } else {
             if (isset($params['essays'])) {
                 $getter = new Text();
                 $model = $url_bit = 'text';
             }
         }
     }
     if (is_null($id) && !$slug) {
         $this->error('403', 'Required parameter "id" not present.');
         return;
     } else {
         if (is_array($id)) {
             list($id, $content_id) = $id;
         }
     }
     if ($this->method != 'get') {
         $id = explode(',', $id);
         if (!isset($content_id)) {
             $this->error('403', 'Required content id not present.');
             return;
         }
         if (strpos($content_id, ',') !== FALSE) {
             $ids = explode(',', $content_id);
         } else {
             $ids = array($content_id);
         }
         if (isset($params['content'])) {
             $c = new Content();
         } else {
             if (isset($params['albums'])) {
                 $c = new Album();
             } else {
                 $c = new Text();
                 $c->where('page_type', 0);
             }
         }
         $categories = $cat->where_in('id', $id)->get_iterated();
         $first_category_id = false;
         foreach ($categories as $category) {
             if (!$first_category_id) {
                 $first_category_id = $category->id;
             }
             $members = $category->{$model . 's'}->select('id')->get_iterated();
             $member_ids = array();
             foreach ($members as $member) {
                 $member_ids[] = $member->id;
             }
             $contents = $c->where_in('id', $ids)->order_by('id ASC')->get_iterated();
             foreach ($contents as $content) {
                 if ($content->exists()) {
                     switch ($this->method) {
                         case 'post':
                         case 'put':
                             $category->save($content);
                             break;
                         case 'delete':
                             $category->delete($content);
                             break;
                     }
                 }
             }
             $category->update_counts($c->model);
         }
         if (count($categories) > 1 || $this->method == 'delete') {
             exit;
         } else {
             $this->redirect("/categories/{$first_category_id}/{$url_bit}");
         }
     }
     if (!is_null($id)) {
         $category = $cat->get_by_id($id);
     } else {
         if ($slug) {
             $category = $cat->get_by_slug($slug);
         }
     }
     if (!$category->exists()) {
         $this->error('404', 'Category not found.');
         return;
     }
     $params['auth'] = $this->auth;
     if ($model === 'album') {
         $final = $getter->listing(array_merge($params, array('category' => $category->id)));
     } else {
         $params['category'] = $category->id;
         $final = $getter->listing($params);
     }
     $final['category'] = $category->to_array();
     $this->set_response_data($final);
 }
Example #4
0
 function index_get()
 {
     $filters = $this->get("filter")["filters"];
     $page = $this->get('page');
     $limit = $this->get('limit');
     $sort = $this->get("sort");
     $data["results"] = array();
     $data["count"] = 0;
     $obj = new Category(null, $this->entity);
     //Sort
     if (!empty($sort) && isset($sort)) {
         foreach ($sort as $value) {
             $obj->order_by($value["field"], $value["dir"]);
         }
     }
     //Filter
     if (!empty($filters) && isset($filters)) {
         foreach ($filters as $value) {
             if (!empty($value["operator"]) && isset($value["operator"])) {
                 if ($value["operator"] == "where_in") {
                     $obj->where_in($value["field"], $value["value"]);
                 } else {
                     if ($value["operator"] == "or_where_in") {
                         $obj->or_where_in($value["field"], $value["value"]);
                     } else {
                         if ($value["operator"] == "where_not_in") {
                             $obj->where_not_in($value["field"], $value["value"]);
                         } else {
                             if ($value["operator"] == "or_where_not_in") {
                                 $obj->or_where_not_in($value["field"], $value["value"]);
                             } else {
                                 if ($value["operator"] == "like") {
                                     $obj->like($value["field"], $value["value"]);
                                 } else {
                                     if ($value["operator"] == "or_like") {
                                         $obj->or_like($value["field"], $value["value"]);
                                     } else {
                                         if ($value["operator"] == "not_like") {
                                             $obj->not_like($value["field"], $value["value"]);
                                         } else {
                                             if ($value["operator"] == "or_not_like") {
                                                 $obj->or_not_like($value["field"], $value["value"]);
                                             } else {
                                                 if ($value["operator"] == "startswith") {
                                                     $obj->like($value["field"], $value["value"], "after");
                                                 } else {
                                                     if ($value["operator"] == "endswith") {
                                                         $obj->like($value["field"], $value["value"], "before");
                                                     } else {
                                                         if ($value["operator"] == "contains") {
                                                             $obj->like($value["field"], $value["value"], "both");
                                                         } else {
                                                             if ($value["operator"] == "or_where") {
                                                                 $obj->or_where($value["field"], $value["value"]);
                                                             } else {
                                                                 $obj->where($value["field"] . ' ' . $value["operator"], $value["value"]);
                                                             }
                                                         }
                                                     }
                                                 }
                                             }
                                         }
                                     }
                                 }
                             }
                         }
                     }
                 }
             } else {
                 $obj->where($value["field"], $value["value"]);
             }
         }
     }
     if (!empty($limit) && !empty($page)) {
         $obj->get_paged_iterated($page, $limit);
         $data["count"] = $obj->paged->total_rows;
     }
     if ($obj->result_count() > 0) {
         foreach ($obj as $value) {
             //Results
             $data["results"][] = array("id" => $value->id, "name" => $value->name, "sub_of" => $value->sub_of);
         }
     }
     //Response Data
     $this->response($data, 200);
 }