public function files() { requireadmin(); $file = isset($_FILES["file"]) ? $_FILES["file"] : false; if ($file) { $name = $file['name']; $extArr = explode(".", $name); $ext = end($extArr); if (strtolower($ext) == 'tsfbak') { $tmpFile = 'static/temp/' . strtotime('now') . '.zip'; move_uploaded_file($file["tmp_name"], $tmpFile); $zip = new ZipArchive(); if ($zip->open($tmpFile) === TRUE) { $zip->extractTo(FCPATH); $zip->close(); unlink($tmpFile); generate_json(array('status' => 1)); } else { generate_json(array('status' => 0, 'message' => 'Failed to extract file, maybe its corrupted.')); } } else { generate_json(array('status' => 0, 'message' => 'Invalid backup file.')); } } else { generate_json(array('status' => 0, 'message' => 'No file to upload.')); } }
public function do_login() { $username = $this->input->post('username'); $password = ts_hash($this->input->post('password')); $status = 1; $message = ''; $query = $this->model->login($username, $password); if ($query->num_rows()) { $row = $query->row(); switch ($row->status) { case 0: $status = 0; $message = sprintf('Account not yet verified. <br /><a href="%s">Resend Verification?</a>', base_url('signup/resend_verification?token=' . $row->token . '&t=' . strtotime('now'))); break; case 2: $status = 0; $message = 'This account has been banned.'; break; default: $uniqueToken = random_string('unique'); $this->model->user_update(array('last_active' => today(), 'token' => $uniqueToken), array('id' => $row->id)); $sessData = array('user_id' => $row->id, 'username' => $row->username, 'userlevel' => $row->userlevel, 'display_name' => $row->display_name, 'email_address' => $row->email_address, 'token' => $uniqueToken); $this->session->set_userdata($sessData); $message = $uniqueToken; } } else { $status = 0; $message = 'Incorrect Username / Password.'; } generate_json(array('status' => $status, 'message' => $message)); }
public function index() { $myID = getUserID(); $query = $this->mdb->get_active($myID); $priorities = $this->config->item('priorities'); $priorityColors = array('bg-light', 'bg-warning dker', 'bg-danger'); $items = array(); foreach ($query->result() as $row) { $start = 'TBA'; $startOrig = ''; $end = 'TBA'; $endOrig = ''; $dateCompleted = 'TBA'; $isOverdue = 0; if (strtotime($row->date_start)) { $start = convert_datetime($row->date_start); $start = date("M d, Y", strtotime($row->date_start)); $startOrig = date("m/d/Y", strtotime($row->date_start)); } if (strtotime($row->date_end)) { $end = convert_datetime($row->date_end); $end = date("M d, Y", strtotime($row->date_end)); $endOrig = date("m/d/Y", strtotime($row->date_end)); $endDateOnly = date("Y-m-d", strtotime($row->date_end)); $endDateOnlyStr = strtotime($endDateOnly); $isOverdue = strtotime(date("Y-m-d")) >= $endDateOnlyStr ? 1 : 0; } if (strtotime($row->date_completed)) { $dateCompleted = convert_datetime($row->date_completed); $dateCompleted = date("M d, Y", strtotime($row->date_completed)); } $items[] = array('id' => $row->id, 'name' => $row->title, 'safe_name' => htmlentities($row->title), 'project_id' => $row->project_id, 'project_name' => $row->project_name, 'description' => htmlentities($row->description), 'priority' => $row->priority, 'priority_name' => $priorities[$row->priority], 'priority_class' => isset($priorityColors[$row->priority]) ? $priorityColors[$row->priority] : $priorityColors[0], 'date_start' => $start, 'date_start_orig' => $startOrig, 'date_end' => $end, 'date_end_orig' => $endOrig, 'is_overdue' => $isOverdue, 'date_completed' => $dateCompleted, 'task_master' => array('id' => $row->creator_id, 'name' => $row->task_master)); } generate_json(array('status' => 1, 'items' => $items)); }
public function task($pid = 0) { requirelogin(); updateLastActive(); $keyword = $this->input->get('q'); $tid = (int) $this->input->get('folder'); $page = (int) $this->input->get('page'); $page = $page > 1 ? $page : 1; $pageOrig = $page > 1 ? $page - 1 : 0; $itemsPerPage = 10; $sqStart = $pageOrig * $itemsPerPage; if ($tid > 0) { $query = $this->fdb->get_task_files($pid, $tid, 0, $keyword, $sqStart, $itemsPerPage); $items = $this->processItems($query); $qAllItems = $this->fdb->get_task_files($pid, $tid, 0, $keyword, 0, 0); $allItems = (int) $qAllItems->num_rows(); $total_page = $allItems > 0 ? ceil($allItems / $itemsPerPage) : 1; generate_json(array('status' => 1, 'items' => $items, 'total_page' => number_format($total_page), 'current_page' => $page, 'previous_page' => $page > 1 ? $page - 1 : '', 'next_page' => $page < $total_page ? $page + 1 : '', 'total_items' => number_format($allItems))); } else { $query = $this->fdb->get_tasks($pid, $keyword, $sqStart, $itemsPerPage); $items = array(); foreach ($query->result() as $row) { $items[] = array('id' => $row->id, 'attachment_type' => 'folder', 'uploader_id' => 0, 'uploader_name' => '', 'filename' => $row->title, 'filesize' => '', 'uploaded' => '', 'icon' => 'folder'); } $qAllItems = $this->fdb->get_tasks($pid, $keyword, 0, 0); $allItems = (int) $qAllItems->num_rows(); $total_page = $allItems > 0 ? ceil($allItems / $itemsPerPage) : 1; generate_json(array('status' => 1, 'items' => $items, 'total_page' => number_format($total_page), 'current_page' => $page, 'previous_page' => $page > 1 ? $page - 1 : '', 'next_page' => $page < $total_page ? $page + 1 : '', 'total_items' => number_format($allItems))); } }
public function index() { $myID = getUserID(); $id = $this->input->get('id'); $this->mdb->update_notif(array('id' => $id, 'notify_to' => $myID), array('is_read' => 1, 'is_new' => 0)); generate_json(array('status' => 1)); }
public function index() { $myID = getUserID(); $id = (int) $this->input->get('id'); $query = $this->mdb->delete_contact($myID, $id); generate_json(array('status' => $query ? 1 : 0)); }
public function index() { $myID = getUserID(); $id = (int) $this->input->get('id'); if ($id == $myID) { generate_json(array('status' => 0, 'message' => 'You cannot add yourself.')); } else { $query = $this->mdb->get_contact($myID, $id); if ($query->num_rows()) { generate_json(array('status' => 0, 'message' => 'You are already in contact with this user.')); } else { $query = $this->model->getUserInfo(array('id' => $id)); if ($query->num_rows()) { $this->mdb->add_contact($myID, $id); notify('contact_added', $id); // Send mail $myName = $this->session->userdata('display_name'); $redirectLink = base_url('#/app/profile/' . $myID); do_sendmail($id, "New Contact", "{$myName} added you to his/her address book. Visit <a href='{$redirectLink}'>" . $myName . "</a>"); generate_json(array('status' => 1)); } else { generate_json(array('status' => 0, 'message' => 'User not found.')); } } } }
public function index() { $myID = getUserID(); $id = $this->input->get('id'); $this->mdb->delete_event($myID, $id); generate_json(array('status' => 1)); }
public function index() { $myID = getUserID(); $title = trim(jsonInput('title')); $description = jsonInput('description'); $location = jsonInput('location'); $start = strtotime(jsonInput('start')); $end = strtotime(jsonInput('end')); if (empty($title)) { generate_json(array('status' => 0, 'message' => 'Please type event title.')); } else { if (!$start) { generate_json(array('status' => 0, 'message' => 'Start Date is required.')); } else { if ($end && $start > $end) { generate_json(array('status' => 0, 'message' => 'Dates mismatch.')); } else { $start = date("Y-m-d", $start); $end = $end ? date("Y-m-d", $end) : $start; $this->mdb->add_event(array('title' => $title, 'description' => $description, 'location' => $location, 'type' => 'default', 'start' => $start, 'end' => $end, 'date_added' => today(), 'source' => 'local', 'user_id' => $myID)); generate_json(array('status' => 1)); } } } }
public function disagree($id = 0, $cid = 0) { $myID = getUserID(); $cid = (int) $cid; $query = $this->mdb->get_feed_info($id); $errMsg = ''; if ($query->num_rows() == 0) { generate_json(array('status' => 0, 'message' => 'Post not found.')); } else { $row = $query->row(); if (!validate_access('valid_member', array('project_id' => $row->project_id, 'user_id' => $myID))) { generate_json(array('status' => 0, 'message' => 'You are not authorized to do this.')); } else { $do = $this->mdb->disagree($row->id, $cid, $myID); $result = $this->mdb->get_adc_counts($row->id, $cid); if ($do > 0) { if ($cid > 0) { //notify commentor $qComment = $this->mdb->get_comment_details($row->id, $cid); if ($qComment->num_rows()) { $commentRow = $qComment->row(); notify('comment_disagree', $commentRow->user_id, array('project_id' => $row->project_id, 'post_id' => $row->id, 'task_id' => $row->task_id, 'comment_id' => $cid)); } } else { //notify poster notify('post_disagree', $row->poster_id, array('project_id' => $row->project_id, 'post_id' => $row->id, 'task_id' => $row->task_id)); } } generate_json(array('status' => 1, 'response' => $result->row())); } } }
public function do_update() { requirelogin(); updateLastActive(); $myID = getUserID(); $pid = (int) jsonInput('id'); $myRole = (int) get_project_roles($pid, $myID); $query = $this->mdb->project_get($pid); if ($query->num_rows()) { $row = $query->row(); if ($myRole > 0 || $myID == $row->creator_id) { $title = trim(jsonInput('title')); $description = jsonInput('description'); $status = (int) jsonInput('status'); $privacy = (int) jsonInput('privacy'); $task_approval = jsonInput('task_approval') ? 1 : 0; $project_approval = jsonInput('project_approval') ? 1 : 0; if (empty($title)) { generate_json(array('status' => 0, 'message' => 'Project title is required.')); } elseif ($status < 0 || $status > 1) { generate_json(array('status' => 0, 'message' => 'Invalid status.')); } elseif ($privacy < 0 || $privacy > 2) { generate_json(array('status' => 0, 'message' => 'Invalid privacy settings.')); } else { $sql = $this->mdb->project_update($pid, array('project_name' => $title, 'description' => $description, 'completed' => $status, 'privacy' => $privacy)); $this->mdb->projSettings_update(array('project_id' => $pid), array('task_approval' => $task_approval, 'project_approval' => $project_approval)); generate_json(array('status' => 1)); } } else { generate_json(array('status' => 0, 'message' => 'You are not allowed here.')); } } else { generate_json(array('status' => 0, 'message' => 'Project not found.')); } }
public function index() { $myID = getUserID(); $get1stDayOfWeek = date("Y-m-d 00:00:00"); //$this->getFirstDayOfWeek(); $getLastDayOfWeek = date("Y-m-d 23:59:59", strtotime("+11 day")); $items = array(); //events $query = $this->mdb->get_events($myID, $get1stDayOfWeek, $getLastDayOfWeek); foreach ($query->result() as $row) { $startDate = date("m/d/Y", strtotime($row->start)); $endDate = strtotime($row->end) ? date("m/d/Y", strtotime($row->end)) : 'TBA'; $items[] = array('type' => 'event', 'title' => $row->title, 'description' => $row->description, 'start' => $startDate, 'end' => $endDate, 'location' => $row->location, 'url' => '', 'order_date' => $row->order_date); } //tasks $query = $this->mdb->get_task_events($myID, $get1stDayOfWeek, $getLastDayOfWeek); foreach ($query->result() as $row) { $startDate = date("m/d/Y", strtotime($row->date_start)); $endDate = strtotime($row->date_end) ? date("m/d/Y", strtotime($row->date_end)) : 'TBA'; $items[] = array('type' => 'task', 'title' => $row->title, 'description' => $row->description, 'start' => $startDate, 'end' => $endDate, 'location' => '', 'url' => '#/app/projects/' . $row->project_id . '/task/' . $row->id, 'order_date' => $row->order_date); } //sort arrays usort($items, function ($a, $b) { $a = strtotime($a['order_date']); $b = strtotime($b['order_date']); if ($a == $b) { return 0; } return $a < $b ? -1 : 1; }); generate_json(array('status' => 1, 'items' => $items)); }
public function index() { $myID = getUserID(); $filepath = "uploads/gallery/{$myID}/"; if (!file_exists($filepath)) { mkdir($filepath, 0777, true); } if (!file_exists($filepath . 'thumbs/')) { mkdir($filepath . 'thumbs/', 0777, true); } $config = array('upload_path' => $filepath, 'allowed_types' => 'gif|jpg|png|jpeg', 'encrypt_name' => true); $this->load->library('upload', $config); if ($this->upload->do_upload('photoimg')) { $data = $this->upload->data(); $thumbSize = 128; $thumbPath = "uploads/gallery/{$myID}/thumbs/" . $data["file_name"]; $config = array('image_library' => 'gd2', 'source_image' => $data['full_path'], 'new_image' => $thumbPath, 'create_thumb' => true, 'thumb_marker' => "", 'maintain_ratio' => true, 'width' => $thumbSize, 'height' => $thumbSize); $this->load->library('image_lib', $config); $this->image_lib->resize(); $this->cropImg($data['full_path'], $thumbPath, $data['image_width'], $data['image_height'], $thumbSize); $this->mdb->update_user_info(array('user_id' => $myID), array('profile_pic' => $data['file_name'])); generate_json(array('status' => 1)); } else { $errors = $this->upload->display_errors('', '|'); $errorsArr = explode("|", $errors); $msg = isset($errorsArr[0]) ? $errorsArr[0] : ''; generate_json(array('status' => 0, 'message' => $msg)); } }
public function lists() { requireadmin(); $this->load->helper('directory'); $database = directory_map('backup/database'); $files = directory_map('backup/files'); generate_json(array('status' => 1, 'database' => is_array($database) ? array_reverse($database) : array(), 'files' => is_array($files) ? array_reverse($files) : array())); }
private function np_validations() { $name = trim(jsonInput('name')); if (empty($name) || strlen($name) < 2) { generate_json(array('status' => 0, 'message' => 'Project name must be atleast 2 characters long.')); exit; } return true; }
public function index() { $q = trim($this->input->get('q')); if (!empty($q)) { $qUsers = $this->mdb->searchUser($q, 0, 0); $qProjs = $this->mdb->searchProjects($q, 0, 0); generate_json(array('total' => number_format($qUsers->num_rows() + $qProjs->num_rows()), 'users' => number_format($qUsers->num_rows()), 'projects' => number_format($qProjs->num_rows()))); } }
public function index() { $myID = getUserID(); $id = (int) $this->input->get('id'); $id = $id ? $id : $myID; $query = $this->mdb->get_userinfo($id); if ($query->num_rows()) { $row = $query->row(); $checkIfAddedtoContact = $this->mdb->checkIfAlreadyInContacts($myID, $row->id); $fullname = ''; /* fullname area */ if (!empty($row->lastname)) { $fullname .= $row->lastname . ', '; } if (!empty($row->firstname)) { $fullname .= $row->firstname; } if (!empty($row->middlename)) { $fullname .= " " . $row->middlename; } /* fullname end */ $contactNo = array(); $contactNoQ = unserialize($row->contact_number); if (is_array($contactNoQ) && count($contactNoQ)) { foreach ($contactNoQ as $rContact) { if (isset($rContact['privacy']) && $rContact['privacy'] == 0) { $contactNo[] = $rContact['contact']; } } } $address = ''; $addressQ = unserialize($row->location); if ($addressQ) { $address = $addressQ['privacy'] == 0 ? $addressQ['location'] : 'Private'; } #STATS $connections = $this->mdb->getConnections($row->id); $stats = array('achievements' => number_format(0), 'connections' => number_format($connections)); #SOCIAL ACCOUNT $qSocial = $this->mdb->get_socials(); $social = array(); foreach ($qSocial->result() as $socialRow) { $qUserSocial = $this->mdb->get_user_social($socialRow->id, $row->id); $socialValue = ''; if ($qUserSocial->num_rows()) { $userSocialRow = $qUserSocial->row(); $socialValue = $userSocialRow->description; } $social[$socialRow->title] = $socialValue; } $items = array('id' => $row->id, 'title' => $row->id == $myID ? 'My Profile' : $row->display_name, 'display_name' => $row->display_name, 'profile_pic' => 'pictures/avatar/' . $row->id, 'profile_pic_full' => 'pictures/avatar/' . $row->id . '/full', 'is_me' => $row->id == $myID ? 1 : 0, 'is_friend' => $checkIfAddedtoContact ? 1 : 0, 'fullname' => empty($fullname) ? '-' : $fullname, 'firstname' => $row->firstname, 'lastname' => $row->lastname, 'middlename' => $row->middlename, 'email' => $row->id == $myID || $row->email_privacy == 0 ? $row->email_address : 'Hidden', 'email_privacy' => $row->email_privacy, 'company' => $row->company, 'gender' => ucfirst($row->gender), 'address' => empty($address) ? '-' : $address, 'address2' => isset($addressQ['location']) ? $addressQ['location'] : '', 'address_privacy' => $addressQ['privacy'], 'contacts' => count($contactNo) ? implode(", ", $contactNo) : 'None', 'contacts_arr' => $contactNoQ, 'stat' => $stats, 'social' => $social); generate_json(array('status' => 1, 'items' => $items)); } else { generate_json(array('status' => 0, 'message' => 'User not found.')); } }
public function index() { $id = (int) $this->input->get('id'); $query = $this->mdb->project_get($id); $content = array(); if ($query->num_rows()) { $row = $query->row(); $content = array('description' => empty($row->description) ? '(none)' : htmlentities($row->description), 'tasks' => number_format($row->tasks), 'members' => number_format($row->members), 'files' => number_format($row->files), 'posts' => number_format($row->posts)); } generate_json(array('status' => 1, 'content' => $content)); }
public function index() { $myID = getUserID(); $type = $this->input->get('q'); $query = $this->mdb->get_data($myID, $type); $items = array(); foreach ($query->result() as $row) { $items[] = array('id' => $row->id, 'title' => $row->description, 'status' => $row->status == 1 ? true : false, 'date_create' => $row->date_added); } generate_json(array('status' => 1, 'items' => $items)); }
public function index() { $myID = getUserID(); $title = trim(jsonInput('title')); if (empty($title)) { generate_json(array('status' => 0, 'message' => 'Title is empty.')); } else { $query = $this->mdb->insert($myID, $title); generate_json(array('status' => 1)); } }
public function index() { $redir = base_url('calendar/google/auth'); $client = googleClient($redir); $access_token = $this->session->userdata('access_token'); if (strlen(trim($access_token))) { $client->setAccessToken($access_token); check_tokenExpired($client); } else { $authUrl = $client->createAuthUrl(); } generate_json(array('status' => 1, 'auth_url' => isset($authUrl) ? $authUrl : '')); }
public function index() { $myID = getUserID(); $date = today(); $title = trim(jsonInput('title')); $content = jsonInput('content'); $category = trim(jsonInput('category')); if (empty($title)) { generate_json(array('status' => 0, 'message' => 'Title is required.')); } else { $insert_id = $this->mdb->insert_note(array('user_id' => $myID, 'title' => $title, 'content' => $content, 'category' => $category, 'date_created' => $date)); generate_json(array('status' => 1, 'message' => 'Note successfully created.')); } }
public function index() { $myID = getUserID(); $id = (int) jsonInput('id'); $title = trim(jsonInput('title')); $status = jsonInput('status'); $status = $status == "true" ? 1 : 0; if (empty($title)) { generate_json(array('status' => 0, 'message' => 'Title is empty.')); } else { $query = $this->mdb->update(array('id' => $id, 'user_id' => $myID), array('status' => $status, 'description' => $title)); generate_json(array('status' => $query)); } }
public function index() { $myID = getUserID(); $q = $this->input->get('q'); $value = $this->input->get('value'); $query = $this->mdb->get_social(array('title' => $q)); if ($query->num_rows()) { $row = $query->row(); $this->mdb->update_social_data($row->id, $myID, $value); generate_json(array('status' => 1)); } else { generate_json(array('status' => 0, 'message' => 'Social Category not found.')); } }
public function index() { $myID = getUserID(); $displayName = trim(jsonInput('display_name')); $firstname = trim(jsonInput('firstname')); $lastname = trim(jsonInput('lastname')); $middlename = jsonInput('middlename'); $email = jsonInput('email'); $email_privacy = (int) jsonInput('email_privacy'); $gender = jsonInput('gender'); $contact = jsonInput('contact'); $address = strtolower(jsonInput('address')); $address_privacy = (int) jsonInput('address_privacy'); $company = trim(jsonInput('company')); $serializedContacts = ''; $location = array('location' => $address, 'privacy' => $address_privacy); if (is_array($contact) && count($contact) > 0) { $contactArr = array(); foreach ($contact as $cont) { if (trim($cont->contact)) { if (!is_numeric($cont->contact)) { generate_json(array('status' => 0, 'message' => $cont->contact . ' is not a valid number.')); exit; } $contactArr[] = array('contact' => $cont->contact, 'privacy' => (int) $cont->privacy); } } $serializedContacts = serialize($contactArr); } if (strlen($displayName) < 3) { generate_json(array('status' => 0, 'message' => 'Display name too short.')); } elseif (empty($firstname)) { generate_json(array('status' => 0, 'message' => 'First name is required.')); } elseif (empty($lastname)) { generate_json(array('status' => 0, 'message' => 'Last name is required.')); } elseif ($this->mdb->check_if_emailTaken($myID, $email)) { generate_json(array('status' => 0, 'message' => 'Email address is already in use.')); } else { //update users info table $where = array('user_id' => $myID); $this->mdb->update_user_info($where, array('firstname' => $firstname, 'lastname' => $lastname, 'middlename' => $middlename, 'gender' => $gender, 'location' => serialize($location), 'contact_number' => $serializedContacts, 'company' => $company, 'email_privacy' => $email_privacy)); //update users table $where = array('id' => $myID); $this->mdb->update_user($where, array('display_name' => $displayName, 'email_address' => $email)); //update session $sessionUpdate = array('display_name' => $displayName, 'email_address' => $email); $this->session->set_userdata($sessionUpdate); generate_json(array('status' => 1, 'message' => 'Successfully Updated.')); } }
public function index() { $q = trim($this->input->get('term')); if (!empty($q)) { $query = $this->mdb->search($q); $items = array(); foreach ($query->result() as $row) { $description = trim($row->description); $redirect = $row->type == 'user' ? "#/app/profile/" . $row->id : "#/app/projects/" . $row->id; $items[] = array('title' => $row->title, 'description' => empty($description) ? "No Description" : $description, 'picture' => $row->type == 'user' ? "pictures/avatar/" . $row->id . "/thumb" : '', 'redirect' => $redirect); } generate_json($items); } }
public function index() { requireadmin(); $from = strtotime($this->input->get("from")); $dateFrom = $from ? date("Y-m-d H:i:s", $from) : ''; $to = strtotime($this->input->get("to")); $dateTo = $to ? date("Y-m-d H:i:s", $to) : ''; $query = $this->mdb->get_auditTrail($dateFrom, $dateTo); $items = array(); foreach ($query->result() as $row) { $date = convert_datetime($row->date, "M d, Y - h:i a"); $items[] = array('action' => $row->action, 'date' => $date); } generate_json(array('status' => 1, 'items' => $items)); }
public function index() { $myID = getUserID(); $new_pass = jsonInput('password'); $re_type_pass = jsonInput('password2'); if ($new_pass != $re_type_pass) { generate_json(array('status' => 0, 'message' => 'Password does not match.')); } elseif (strlen($new_pass) < 4) { generate_json(array('status' => 0, 'message' => 'Password too short.')); } else { $where = array('id' => $myID); $this->mdb->update_user($where, array('password' => ts_hash($new_pass))); generate_json(array('status' => 1, 'message' => 'Password successfuly changed.')); } }
public function index() { $myID = getUserID(); $id = (int) jsonInput('id'); $title = trim(jsonInput('title')); $content = jsonInput('content'); $category = jsonInput('category'); if (empty($title)) { generate_json(array('status' => 0, 'message' => 'Title is required.')); } else { $data = array('title' => $title, 'content' => $content, 'category' => $category); $query = $this->mdb->update_note($data, array('user_id' => $myID, 'id' => $id)); // print_r($this->db->last_query()); generate_json(array('status' => 1, 'message' => 'Note successfully updated.')); } }
public function index() { $myID = getUserID(); $project_id = $this->input->get('id'); $query = $this->mdb->project_get($project_id); if ($query->num_rows()) { $row = $query->row(); $visitorType = visitor_type($row->id, $myID); $items = array('id' => $row->id, 'name' => $row->project_name, 'safe_name' => htmlentities($row->project_name), 'description' => $row->description, 'visitor_type' => $visitorType, 'is_admin' => $row->creator_id == $myID ? 1 : 0); //update last visit $this->mdb->setLastVisit($myID, $row->id); generate_json(array('status' => 1, 'items' => $items, 'message' => '')); } else { generate_json(array('status' => 0, 'message' => 'Project not found.')); } }