public function edit_contact() { if (isset($_POST['edit_contact_btn'])) { $data_post = $this->input->post(); $this->load->helper('HTMLPurifier'); $config = HTMLPurifier_Config::createDefault(); $purifier = new HTMLPurifier($config); $data_update['content'] = $purifier->purify($data_post['content_contact']); if ($this->Contact->update($data_update)) { $content = 'Cập nhật thông tin liên lạc thành công.'; set_notice('status', SUCCESS_STATUS, $content); header('location:' . base_url() . 'index.php/_admin/manage_site/contact/show_contact'); } else { $content = 'Cập nhật thông tin liên lạc thất bại.'; set_notice('status', FAILED_STATUS, $content); header('location:' . base_url() . 'index.php/_admin/manage_site/contact/show_contact'); } } else { $data['contact'] = $this->Contact->get_contact(); $data['subView'] = '/manage_site/contact/edit_contact_layout'; $data['title'] = "Cập nhật thông tin liên hệ"; $data['subData'] = $data; $this->load->view('/main/main_layout', $data); } }
public function do_order() { date_default_timezone_set("Asia/Ho_Chi_Minh"); $this->load->model('Order_model', 'Order'); if (isset($_POST['phone'])) { $this->load->helper('validation'); $customer_name = trim_input($_POST['customer_name']); $phone = trim_input($_POST['phone']); $arr_product_id = (array) $_POST['product_id']; $arr_order_qty = (array) $_POST['order_qty']; $error = array(); //====================== VALIDATION: START ==================== if ($customer_name == '') { $error[] = 'Tên khách hàng không được để trống.'; } $regex = "/^[0-9]{9,11}\$/"; if ($phone == '') { $error[] = "Số điện thoại không được rỗng."; } elseif (!preg_match($regex, $phone, $maches)) { $error[] = "Số điện thoại không đúng."; } if (empty($arr_product_id)) { $error[] = "Không có có sản phẩm nào trong đơn hàng."; } else { foreach ($arr_product_id as $key => $value) { if (!$this->Product->check_product_exist($value)) { $error[] = 'Sản phẩm có mã <span style="color:red;">' . $value . '</span> không có trong hệ thống.'; } else { if ($arr_order_qty[$key] <= 0) { $product_name = $this->Product->get_product_name_by_id($arr_product_id[$key]); $error[] = 'Số lượng sản phẩm <span style="color:red;">' . $product_name . '</span> không thể bằng ' . '<span style="color:red;">' . $arr_order_qty[$key] . '</span>'; } } } } //====================== VALIDATION: END ====================== if (count($error) > 0) { set_notice('order', FAILED_STATUS, $error); header("location:" . base_url() . "index.php/site/cart/view_order"); } else { $now = new DateTime(date('Y-m-d H:i:s')); $data_insert['order_datetime'] = $now->format('Y-m-d H:i:s'); $data_insert['product_id_and_qty'] = ''; for ($i = 0; $i < count($arr_product_id); $i++) { $data_insert['product_id_and_qty'] .= $arr_product_id[$i] . '-' . $arr_order_qty[$i] . '|'; } $data_insert['product_id_and_qty'] = trim($data_insert['product_id_and_qty'], '|'); $data_insert['customer_name'] = $customer_name; $data_insert['phone'] = $phone; if ($this->Order->insert($data_insert)) { $this->cart->destroy(); //================ SEND MAIL TO ADMIN: START ================ $this->load->model('Account_model', 'Account'); $this->load->helper('mymail'); $arr_to_mail = $this->Account->get_list_email_admin(); if (!empty($arr_to_mail)) { $date_time_order = date('d/m/Y') . ' - ' . date("h:i:sa"); $subject = 'ĐƠN ĐẶT HÀNG MỚI (' . $date_time_order . ')'; $message = 'Có đơn đặt hàng mới từ:' . '<br>Khách hàng: ' . $customer_name . '<br>Số điện thoại: ' . $phone . '<br><br>'; $message .= '<html><body>'; $message .= '<table rules="all" style="min-width:300px; border-color: #666;" cellpadding="10">'; $message .= "<tr style='background: #eee;'><td><strong>Tên sản phẩm:</strong> </td><td>Số lượng</td></tr>"; foreach ($arr_product_id as $key => $value) { $message .= "<tr><td><strong>" . $this->Product->get_product_name_by_id($arr_product_id[$key]) . "</strong> </td><td>" . $arr_order_qty[$key] . "</td></tr>"; } $message .= "</table>"; $message .= "</body></html>"; send_mail($arr_to_mail, $subject, $message); } //================ SEND MAIL TO ADMIN: START ================ $content = '<div style="color: rgb(129, 127, 123); font-size: 16px;">' . 'Khách hàng: <span style="color:rgb(0, 165, 255);">' . $customer_name . '</span>' . '<br> Số điện thoại: <span style="color:rgb(0, 165, 255);">' . $phone . '</span>' . '<br><span style="color:rgb(129, 127, 123);"> Chúng tôi sẽ liên lạc lại cho quý khách trong thời gian sớm nhất!</span>' . '</div>'; set_notice('order', SUCCESS_STATUS, $content); header("location:" . base_url()); } else { header("location:" . base_url() . "index.php/site/cart/view_order"); $content = 'Có lỗi trong quá trình đặt hàng. <br> Vui lòng làm lại thực hiện lại!'; set_notice('order', FAILED_STATUS, $content); } } } else { header("location:" . base_url()); } }
function _check() { $prob = FALSE; if (version_compare(phpversion(), '5.2.0') < 0) { set_notice('error', _('You need at least PHP version 5.2.0 to run FoOlSlide. This means you have a many years old version. It is suggested to upgrade to a more recent version of PHP to avoid security issues with your server in general.')); $prob = TRUE; return FALSE; } if (!file_exists('assets/config.sample.php')) { set_notice('error', sprintf(_('The file %s was removed. The installation can\'t continue without that file. You can find it in the FoOlSlide download.'), FCPATH . 'config.sample.php')); $prob = TRUE; return FALSE; } if (!is_writable('content')) { set_notice('error', sprintf(_('The %s directory needs to be writable. Use this command in your shell if possible: %s or change its permissions recursively to 777 with your own FTP software. You won\'t be able to install or run FoOlSlide without this.'), FCPATH . 'content/', '<br/><b><code>chmod -R 777 ' . FCPATH . 'content/</code></b><br/>')); $prob = TRUE; return FALSE; } if (!is_writable('content/themes')) { set_notice('error', sprintf(_('The %s directory needs to be writable as well. Use this command in your shell if possible: %s or change its permissions recursively to 777 with your own FTP software. You won\'t be able to install or run FoOlSlide without this.'), FCPATH . 'content/themes', '<br/><b><code>chmod -R 777 ' . FCPATH . 'content/</code></b><br/>')); $prob = TRUE; return FALSE; } // check if base folder is writable if (!is_writable('.')) { $whoami = FALSE; // if exec is enable, just check with whoami function who's running php if ($this->_exec_enabled()) { $whoami = exec('whoami'); } // if exec is not enabled, write a file and check who has the permissions on it if (!$whoami && is_writable('content') && function_exists('posix_getpwid')) { write_file('content/testing_123.txt', 'testing_123'); $whoami = posix_getpwuid(fileowner('content/testing_123.txt')); $whoami = $whoami['name']; unlink('content/testing_123.txt'); } // if absolutely unable to tell who's the php user, just apologize // else, give a precise command for shell to enter if ($whoami != "") { set_notice('warn', sprintf(_('The %s directory would be better if writable, in order to deliver automatic updates. Use this command in your shell if possible: %s'), FCPATH, '<br/><b><code>chown -R ' . $whoami . ' ' . FCPATH . '</code></b>')); } else { set_notice('warn', sprintf(_('The %s directory would be better if writable, in order to deliver automatic updates.<br/>It was impossible to determine the user running PHP. Use this command in your shell if possible: %s where www-data is an example (usually it\'s www-data or Apache)'), FCPATH, '<br/><b><code>chown -R www-data ' . FCPATH . '</code></b><br/>')); } set_notice('warn', sprintf(_('If you can\'t do the above, after the installation you will be given a textfile to paste in config.php. More info after submitting.'))); $prob = TRUE; } // there was an issue? suggest to refresh the page to check again if ($prob) { set_notice('notice', _('If you made any changes, just refresh this page to recheck the directory permissions.')); } // all good return TRUE; }
/** * Removes the thumbnail and its original image both from database and directory. * * @author Woxxy * @return string true on success, false on failure. */ public function remove_comic_thumb() { // Get directory $dir = "content/comics/" . $this->directory() . "/"; // Remove the full image if (!unlink($dir . $this->thumbnail)) { set_notice('error', _('Failed to remove the thumbnail\'s original image. Please, check file permissions.')); log_message('error', 'Model: comic_model.php/remove_comic_thumb: failed to delete image'); return false; } // Remove the thumbnail if (!unlink($dir . "thumb_" . $this->thumbnail)) { set_notice('error', _('Failed to remove the thumbnail image. Please, check file permissions.')); log_message('error', 'Model: comic_model.php/remove_comic_thumb: failed to delete thumbnail'); return false; } // Set the thumbnail variable to empty and save to database $this->thumbnail = ""; if (!$this->save()) { set_notice('error', _('Failed to remove the thumbnail image from the database.')); log_message('error', 'Model: comic_model.php/remove_comic_thumb: failed to remove from database'); return false; } // All's good. return true; }
/** * Checks if the database entry reflects the files for the page * * @author Woxxy * @return array with error codes (missing_page, missing_thumbnail) */ public function check($repair = FALSE) { // Let's make sure the chapter and comic is set if ($this->get_chapter() === FALSE) { $errors[] = 'page_chapter_entry_not_found'; set_notice('warning', _('Found a page entry without a chapter entry, ID: ' . $this->id)); log_message('debug', 'check: page entry without chapter entry'); if ($repair) { $this->remove_page_db(); } return FALSE; } $errors = array(); // check the files $path = "content/comics/" . $this->chapter->comic->directory() . "/" . $this->chapter->directory() . "/" . $this->filename; // get paths and remove the thumb if (!file_exists($path)) { $errors[] = 'missing_page'; set_notice('warning', _('Page file not found in:') . ' ' . $this->chapter->comic->name . ' > ' . $this->chapter->title()); log_message('debug', 'check_page: page not found in ' . $path); } if ($repair) { if (in_array('missing_page', $errors)) { // no better suggestion than removing $this->remove_page_db(); return TRUE; } } return $errors; }
public function get_teams_id($array, $create_joint = FALSE) { if (count($array) < 1) { set_notice('error', _('There were no groups selected.')); log_message('error', 'get_groups: input array empty'); return false; } if (count($array) == 1) { $team = new Team(); $team->where("name", $array[0])->get(); if ($team->result_count() < 1) { set_notice('error', _('There\'s no team under this ID.')); log_message('error', 'get_groups: team not found'); return false; } $result = array("team_id" => $team->id, "joint_id" => 0); return $result; } if (count($array) > 1) { $id_array = array(); foreach ($array as $key => $arra) { $team = new Team(); $team->where('name', $arra[$key])->get(); if ($team->result_count() < 1) { set_notice('error', _('There\'s no teams under this ID.')); log_message('error', 'get_groups: team not found'); return false; } $id_array[$key] = $team->id; } $joint = new Joint(); if (!$joint->check_joint($id_array) && $create_joint) { if (!$joint->add_joint($id_array)) { log_message('error', 'get_groups: could not create new joint'); return false; } } return array("team_id" => 0, "joint_id" => $joint->joint_id); } set_notice('error', _('There\'s no group found with this ID.')); log_message('error', 'get_groups: no case matched'); return false; }
public function edit_super_category() { if (null != $this->input->post('edit_super_category_btn')) { $data_post = $this->input->post(); $this->load->helper('Validation'); $this->load->helper('HTMLPurifier'); $config = HTMLPurifier_Config::createDefault(); $purifier = new HTMLPurifier($config); $id = $data_post['super_category_id']; $data_update['super_categoryName'] = $purifier->purify($data_post['super_categoryName']); //========================= VALIDATION: START ======================= $error = array(); if (trim_input($data_update['super_categoryName']) == '') { $error = 'Tên loại danh mục không thể rỗng.'; } if ($this->Category->has_duplicate_super_category_name($data_update['super_categoryName'], $id)) { $error = 'Loại danh mục này đã tồn tại.'; } //========================= VALIDATION: END ========================= if (count($error) > 0) { // has error validate set_notice('status', FAILED_STATUS, $error); $data['re_super_category_name'] = $data_post['super_categoryName']; $data['re_super_category_id'] = $data_post['super_category_id']; $data['subView'] = '/category/edit_super_category_layout'; $data['title'] = "Cập nhật loại danh mục"; $data['subData'] = $data; $this->load->view('/main/main_layout', $data); } else { // not error validate $old_super_category_name = $this->Category->get_super_category_name_by_id($id); $new_super_category_name = $data_post['super_categoryName']; if ($this->Category->update_super_category($id, $data_update)) { if ($old_super_category_name != $new_super_category_name) { $content = 'Cập nhật loại danh mục <span style="color:blue;">' . $old_super_category_name . '</span> thành <span style="color:blue;">' . $new_super_category_name . '</span>'; } else { $content = 'Cập nhật loại danh mục <span style="color:blue;">' . $old_super_category_name . '</span> thành công.'; } set_notice('status', SUCCESS_STATUS, $content); header('location:' . base_url() . 'index.php/_admin/category/show_super_category'); } else { $content = 'Cập nhật loại danh mục <span style="color:blue;">' . $old_super_category_name . '</span> thất bại.'; set_notice('status', FAILED_STATUS, $content); header('location:' . base_url() . 'index.php/_admin/category/show_super_category'); } } } else { if (null !== $this->uri->segment(4) && is_numeric($this->uri->segment(4)) && $this->Category->has_super_category_exist_by_id($this->uri->segment(4))) { $super_category_id = $this->uri->segment(4); $data['super_category_info'] = $this->Category->get_super_category_info($super_category_id); $data['subView'] = '/category/edit_super_category_layout'; $data['title'] = "Cập nhật loại danh mục"; $data['subData'] = $data; $this->load->view('/main/main_layout', $data); } else { $data['pre_page'] = base_url() . 'index.php/_admin/category/show_super_category'; $this->load->view('/error/404_layout', $data); } } }
function balancers() { if ($this->input->post()) { $result = array(); if ($urls = $this->input->post('url')) { $priorities = $this->input->post('priority'); if (is_array($urls)) { foreach ($urls as $key => $item) { if (!$item) { unset($urls[$key]); break; } if ($priorities[$key] >= 0 && $priorities[$key] <= 100) { $result[] = array('url' => $item, 'priority' => $priorities[$key]); } } } $result = serialize($result); $this->db->from('preferences'); $this->db->where(array('name' => 'fs_balancer_clients')); if ($this->db->count_all_results() == 1) { $this->db->update('preferences', array('value' => $result), array('name' => 'fs_balancer_clients')); } else { $this->db->insert('preferences', array('name' => 'fs_balancer_clients', 'value' => $result)); } } if ($value = $this->input->post('fs_balancer_ips')) { if (is_array($value)) { foreach ($value as $key => $val) { if ($value[$key] == "") { unset($value[$key]); } } $value = serialize($value); } $this->db->from('preferences'); $this->db->where(array('name' => 'fs_balancer_ips')); if ($this->db->count_all_results() == 1) { $this->db->update('preferences', array('value' => $value), array('name' => 'fs_balancer_ips')); } else { $this->db->insert('preferences', array('name' => 'fs_balancer_ips', 'value' => $value)); } } load_settings(); set_notice('notice', _('Updated settings.')); } if (get_setting('fs_balancer_clients')) { $data["balancers"] = unserialize(get_setting('fs_balancer_clients')); } else { $data["balancers"] = array(); } if (get_setting('fs_balancer_ips')) { $data["ips"] = unserialize(get_setting('fs_balancer_ips')); } else { $data["ips"] = array(); } $this->viewdata['function_title'] = _('Balancers'); $this->viewdata["main_content_view"] = $this->load->view("admin/loadbalancer/balancers_list.php", $data, TRUE); $this->load->view("admin/default.php", $this->viewdata); }
function teams($stub = "") { if ($stub == "") { $this->viewdata["function_title"] = "Team list"; $teams = new Team(); $teams->order_by('name', 'ASC')->get_iterated(); $rows = array(); foreach ($teams as $team) { $rows[] = array('title' => '<a href="' . site_url('admin/members/teams/' . $team->stub) . '">' . $team->name . '</a>'); } $data['list'] = lister($rows); $this->viewdata["main_content_view"] = $this->load->view('admin/members/users', $data, TRUE); $this->load->view("admin/default", $this->viewdata); } else { $team = new Team(); $team->where('stub', $stub)->get(); if ($this->tank_auth->is_admin() || $this->tank_auth->is_group('mod')) $can_edit = true; else $can_edit = false; if ($this->tank_auth->is_team_leader($team->id) && !$can_edit) $can_edit_limited = true; else $can_edit_limited = false; if (($post = $this->input->post()) && ($can_edit || $can_edit_limited)) { $team = new Team(); $team->where('stub', $stub)->get(); $post["id"] = $team->id; if ($can_edit_limited) { unset($post['name']); } $team->update_team($post, TRUE); set_notice('notice', _('Saved.')); } $this->viewdata["function_title"] = "Team"; $this->viewdata["extra_title"][] = $team->name; if ($can_edit_limited) $team->validation['name']['disabled'] = 'true'; $result = ormer($team); $result = tabler($result, TRUE, ($can_edit || $can_edit_limited)); $data['table'] = $result; $data['team'] = $team; $members = new Membership(); $users = $members->get_members($team->id); $users_arr = array(); foreach ($users->all as $key => $item) { $users_arr[$key][] = '<a href="' . site_url('/admin/members/member/' . $item->id) . '">' . $item->username . '</a>'; if ($can_edit) $users_arr[$key][] = $item->email; $users_arr[$key][] = $item->last_login; $users_arr[$key][] = ($item->is_leader) ? _('Leader') : _('Member'); if ($this->tank_auth->is_team_leader($team->id) || $this->tank_auth->is_allowed()) { $buttoner = array(); $buttoner = array( 'text' => _("Remove member"), 'href' => site_url('/admin/members/reject_application/' . $team->id . '/' . $item->id), 'plug' => _('Do you want to remove this team member?') ); } $users_arr[$key][] = (isset($buttoner) && !empty($buttoner)) ? buttoner($buttoner) : ''; if (!$item->is_leader && ($this->tank_auth->is_team_leader($team->id) || $this->tank_auth->is_allowed())) { $buttoner = array(); $buttoner = array( 'text' => _("Make leader"), 'href' => site_url('/admin/members/make_team_leader/' . $team->id . '/' . $item->id), 'plug' => _('Do you want to make this user a team leader?') ); } if ($item->is_leader && ($this->tank_auth->is_team_leader($team->id) || $this->tank_auth->is_allowed())) { $buttoner = array(); $buttoner = array( 'text' => _("Remove leader"), 'href' => site_url('/admin/members/remove_team_leader/' . $team->id . '/' . $item->id), 'plug' => _('Do you want to remove this user from the team leadership?') ); } $users_arr[$key][] = (isset($buttoner) && !empty($buttoner)) ? buttoner($buttoner) : ''; } // Spawn the form for adding a team leader $data["no_leader"] = FALSE; if ($this->tank_auth->is_allowed()) $data["no_leader"] = TRUE; $data['members'] = tabler($users_arr, TRUE, FALSE); $this->viewdata["main_content_view"] = $this->load->view('admin/members/team', $data, TRUE); $this->load->view("admin/default", $this->viewdata); } }
function advertising() { $this->viewdata["function_title"] = _("Advertising"); $form = array(); $form[] = array( _('Top banner'), array( 'type' => 'textarea', 'name' => 'fs_ads_top_banner', 'help' => _('Insert the HTML provided by your advertiser'), 'preferences' => 'fs_ads' ) ); $form[] = array( _('Reload every pageview?'), array( 'type' => 'checkbox', 'name' => 'fs_ads_top_banner_reload', 'placeholder' => '', 'preferences' => 'fs_ads', 'help' => _('Reload the advertising. Useful for ProjectWonderful.com. Use it without violating the TOS of your advertiser.') ) ); $form[] = array( _('Active'), array( 'type' => 'checkbox', 'name' => 'fs_ads_top_banner_active', 'placeholder' => '', 'preferences' => 'fs_ads' ) ); $form[] = array( _('Right banner'), array( 'type' => 'textarea', 'name' => 'fs_ads_left_banner', 'help' => _('Insert the HTML provided by your advertiser'), 'preferences' => 'fs_ads' ) ); $form[] = array( _('Reload every pageview?'), array( 'type' => 'checkbox', 'name' => 'fs_ads_left_banner_reload', 'placeholder' => '', 'preferences' => 'fs_ads', 'help' => _('Reload the advertising. Useful for ProjectWonderful.com. Use it without violating the TOS of your advertiser.') ) ); $form[] = array( _('Active'), array( 'type' => 'checkbox', 'name' => 'fs_ads_left_banner_active', 'placeholder' => '', 'preferences' => 'fs_ads' ) ); $form[] = array( _('Bottom banner'), array( 'type' => 'textarea', 'name' => 'fs_ads_bottom_banner', 'help' => _('Insert the HTML provided by your advertiser'), 'preferences' => 'fs_ads' ) ); $form[] = array( _('Reload every pageview?'), array( 'type' => 'checkbox', 'name' => 'fs_ads_bottom_banner_reload', 'placeholder' => '', 'preferences' => 'fs_ads', 'help' => _('Reload the advertising. Useful for ProjectWonderful.com. Use it without violating the TOS of your advertiser.') ) ); $form[] = array( _('Active'), array( 'type' => 'checkbox', 'name' => 'fs_ads_bottom_banner_active', 'placeholder' => '', 'preferences' => 'fs_ads' ) ); if ($post = $this->input->post()) { $this->_submit($post, $form); $ad_before = '<!DOCTYPE html> <html> <head> <title>FoOlSlide ads</title> <style>body{margin:0; padding:0; overflow:hidden;}</style> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body>'; $ad_after = '</body> </html>'; $ads = array('fs_ads_top_banner' => 'ads_top.html', 'fs_ads_bottom_banner' => 'ads_bottom.html', 'fs_ads_left_banner' => 'ads_left.html'); foreach ($ads as $ad => $adfile) { if (!write_file('./content/ads/' . $adfile, $ad_before . $this->input->post($ad) . $ad_after)) { log_message('error', 'preferences.php/advertising: couldn\'t update HTML files'); set_notice('error', _('Couldn\'t save the advertising code in the HTML')); } } } $table = tabler($form, FALSE); $data['table'] = $table; $this->viewdata["main_content_view"] = $this->load->view("admin/preferences/general.php", $data, TRUE); $this->load->view("admin/default.php", $this->viewdata); }
function teams($stub = "") { // no team selected if ($stub == "") { // set subtitle $this->viewdata["function_title"] = _('Teams'); // we can use get_iterated on teams $teams = new Team(); // support filtering via search if ($this->input->post()) { $teams->ilike('name', $this->input->post('search')); $this->viewdata['extra_title'][] = _('Searching') . " : " . $this->input->post('search'); } $teams->order_by('name', 'ASC')->get_iterated(); $rows = array(); // produce links for each team foreach ($teams as $team) { $rows[] = array('title' => '<a href="' . site_url('admin/members/teams/' . $team->stub) . '">' . $team->name . '</a>'); } // put in a list the teams $data['form_title'] = _('Teams'); $data['table'] = lister($rows); // print out $this->viewdata["main_content_view"] = $this->load->view('admin/members/users', $data, TRUE); $this->load->view("admin/default", $this->viewdata); } else { // team was selected, let's grab it and create a form for it $team = new Team(); $team->where('stub', $stub)->get(); // if the team was not found return 404 if ($team->result_count() != 1) { show_404(); } // if admin or mod allow full editing rights if ($this->tank_auth->is_allowed()) { $can_edit = true; } else { $can_edit = false; } // if it's a team leader, but not admin or mod, allow him to change data but not the team name if ($this->tank_auth->is_team_leader($team->id) && !$can_edit) { $can_edit_limited = true; } else { $can_edit_limited = false; } // if allowed in any way to edit, if (($post = $this->input->post()) && ($can_edit || $can_edit_limited)) { $post["id"] = $team->id; // save the stub in case it's changed $old_stub = $team->stub; // don't allow editing of name for team leaders if ($can_edit_limited) { unset($post['name']); } // send the data to database $team->update_team($post); // green box to tell data is saved set_notice('notice', _('Saved.')); if ($team->stub != $old_stub) { flash_notice('notice', _('Saved.')); redirect('admin/members/teams/' . $team->stub); } } // subtitle $this->viewdata["function_title"] = '<a href="' . site_url("admin/members/teams") . '">' . _('Teams') . '</a>'; // subsubtitle! $this->viewdata["extra_title"][] = $team->name; // gray out the name field for team leaders by editing directly the validation array if ($can_edit_limited) { $team->validation['name']['disabled'] = 'true'; } // convert the team information to an array $result = ormer($team); // convert the array to a form $result = tabler($result, TRUE, $can_edit || $can_edit_limited); $data['table'] = $result; $data['team'] = $team; // get the team's members $members = new Membership(); $users = $members->get_members($team->id); // the team members' array needs lots of buttons and links $users_arr = array(); foreach ($users->all as $key => $item) { $users_arr[$key][] = '<a href="' . site_url('/admin/members/member/' . $item->id) . '">' . $item->username . '</a>'; // show the email only to admins and mods if ($can_edit) { $users_arr[$key][] = $item->email; } $users_arr[$key][] = $item->last_login; // leader of normal member? $users_arr[$key][] = $item->is_leader ? _('Leader') : _('Member'); if ($this->tank_auth->is_team_leader($team->id) || $this->tank_auth->is_allowed()) { $buttoner = array(); $buttoner = array('text' => _("Remove member"), 'href' => site_url('/admin/members/reject_application/' . $team->id . '/' . $item->id), 'plug' => _('Do you want to remove this team member?')); } // add button to array or stay silent if there's no button $users_arr[$key]['action'] = isset($buttoner) && !empty($buttoner) ? buttoner($buttoner) : ''; if (!$item->is_leader && ($this->tank_auth->is_team_leader($team->id) || $this->tank_auth->is_allowed())) { $buttoner = array(); $buttoner = array('text' => _("Make leader"), 'href' => site_url('/admin/members/make_team_leader/' . $team->id . '/' . $item->id), 'plug' => _('Do you want to make this user a team leader?')); } if ($item->is_leader && ($this->tank_auth->is_team_leader($team->id) || $this->tank_auth->is_allowed())) { $buttoner = array(); $buttoner = array('text' => _("Remove leader"), 'href' => site_url('/admin/members/remove_team_leader/' . $team->id . '/' . $item->id), 'plug' => _('Do you want to remove this user from the team leadership?')); } // add button to array or stay silent if there's no button $users_arr[$key]['action'] .= isset($buttoner) && !empty($buttoner) ? buttoner($buttoner) : ''; } // Spawn the form for adding a team leader $data["no_leader"] = FALSE; if ($this->tank_auth->is_allowed()) { $data["no_leader"] = TRUE; } // make a form out of the array of members $data['members'] = tabler($users_arr, TRUE, FALSE); // print out $this->viewdata["main_content_view"] = $this->load->view('admin/members/team', $data, TRUE); $this->load->view("admin/default", $this->viewdata); } }
public function edit_acticle() { if (null != $this->input->post('edit_acticle_btn')) { $data_post = $this->input->post(); $this->load->helper('Validation'); $this->load->helper('HTMLPurifier'); $config = HTMLPurifier_Config::createDefault(); $purifier = new HTMLPurifier($config); $id = $data_post['acticle_id']; $data_update['acticle_name'] = $purifier->purify($data_post['acticle_name']); $data_update['acticle_content'] = $purifier->purify($data_post['acticle_content']); // $data_update['acticle_content'] = trim_input($data_update['acticle_content']); if ($this->Acticle->update($id, $data_update)) { $content = 'Cập nhật bài viết thành công.'; set_notice('status', SUCCESS_STATUS, $content); header('location:' . base_url() . 'index.php/_admin/acticle/show_acticle'); } else { $content = 'Cập nhật bài viết thất bại.'; set_notice('status', FAILED_STATUS, $content); header('location:' . base_url() . 'index.php/_admin/acticle/show_acticle'); } } else { if (null !== $this->uri->segment(4) && is_numeric($this->uri->segment(4)) && $this->Acticle->has_acticle_exist_by_id($this->uri->segment(4))) { $acticle_id = $this->uri->segment(4); $data['acticle_info'] = $this->Acticle->get_acticle_info($acticle_id); $data['subView'] = '/acticle/edit_acticle_layout'; $data['title'] = "Chỉnh sửa bài viết"; $data['subData'] = $data; $this->load->view('/main/main_layout', $data); } else { $data['pre_page'] = base_url() . 'index.php/_admin/acticle/show_acticle'; $this->load->view('/error/404_layout', $data); } } }
function check($repair = FALSE) { // make sure we got the comic if ($this->get_comic() === FALSE) { $errors[] = 'chapter_comic_entry_not_found'; set_notice('warning', _('Found a chapter entry without a comic entry, Chapter ID: ' . $this->id)); log_message('debug', 'check: chapter entry without comic entry'); if ($repair) { $this->remove_chapter_db(); } return FALSE; } $errors = array(); // check if the directory exists at all $path = 'content/comics/' . $this->comic->directory() . '/' . $this->directory() . '/'; if (!is_dir($path)) { $errors[] = 'chapter_directory_not_found'; set_notice('warning', _('No directory found for:') . ' ' . $this->comic->name . ' > ' . $this->title()); log_message('debug', 'check: chapter directory missing at ' . $path); // the folder doesn't exist, so get rid of the entry from database if ($repair) { $this->remove_chapter_db(); } // there's no recovery from this, return the error codes return $errors; } // check if there are extraneous files in the folder $files = get_dir_file_info($path); foreach ($files as $key => $file) { // check that the file is writable if (!is_writable($file['relative_path'])) { // non writable files are horrendous, send a notice and stop the machines $errors[] = 'chapter_non_writable_file'; set_notice('warning', _('Found non writable files in the comics folder. Check your files permissions.')); log_message('debug', 'check: non writable file: ' . $file['relative_path']); return $errors; } // get the extension $ext = strtolower(substr($file['name'], -4)); if (in_array($ext, array('.zip'))) { // maybe it's just the zip created by the archive system $archives = new Archive(); $archives->where('comic_id', $this->comic_id)->where('chapter_id', $this->id)->where('volume_id', 0)->get(); if ($archives->result_count()) { foreach ($archives as $archive) { // we actually have an archive, but is it the same file? if ($file['name'] == $archive->filename) { // same file, unset to confirm unset($files[$key]); continue; } } } } if (in_array($ext, array('.png', '.jpg', 'jpeg', '.gif'))) { $page = new Page(); $page->where('chapter_id', $this->id)->where('filename', $file['name'])->get(); if ($page->result_count() == 1) { // it's a simple page, unset to confirm unset($files[$key]); continue; } } } // now we have an array with files that don't belong here foreach ($files as $file) { $errors[] = 'chapter_unidentified_file'; set_notice('warning', _('Unidentified file found in:') . ' ' . $this->comic->name . ' > ' . $this->title() . ': ' . $file['name']); log_message('debug', 'check: unidentified file ' . $file['relative_path'] . $file['name']); // repairing this means getting rid of extraneous files if ($repair) { // it's possible the file is not removeable if (is_writable($file['relative_path'] . $file['name'])) { // the files SHOULD be writable, we checked it earlier if (is_dir($file['relative_path'] . $file['name'])) { delete_files($file['relative_path'] . $file['name']); rmdir($file['relative_path'] . $file['name']); } else { unlink($file['relative_path'] . $file['name']); } } } } // everything's been checked. The errors are in the set_notice system return $errors; }
function _check() { $prob = FALSE; if (!file_exists('assets/config.sample.php')) { set_notice('error', sprintf(_('The file %s was removed. The installation can\'t continue without that file. You can find it in the FoOlSlide download.'), FCPATH . 'config.sample.php')); $prob = TRUE; return FALSE; } if (!is_writable('content')) { set_notice('error', sprintf(_('The %s directory needs to be writable. Use this command in your shell if possible: %s or change its permissions recursively to 777 with your own FTP software. You won\'t be able to install or run FoOlSlide without this.'), FCPATH . 'content/', '<br/><b><code>chmod -R 777 ' . FCPATH . 'content/</code></b><br/>')); $prob = TRUE; return FALSE; } if (!is_writable('content/themes')) { set_notice('error', sprintf(_('The %s directory needs to be writable as well. Use this command in your shell if possible: %s or change its permissions recursively to 777 with your own FTP software. You won\'t be able to install or run FoOlSlide without this.'), FCPATH . 'content/themes', '<br/><b><code>chmod -R 777 ' . FCPATH . 'content/</code></b><br/>')); $prob = TRUE; return FALSE; } if (!is_writable('.')) { $whoami = FALSE; if ($this->_exec_enabled()) $whoami = exec('whoami'); if (!$whoami && is_writable('content') && function_exists('posix_getpwid')) { write_file('content/testing_123.txt', 'testing_123'); $whoami = posix_getpwuid(fileowner('content/testing_123.txt')); $whoami = $whoami['name']; unlink('content/testing_123.txt'); } if ($whoami != "") set_notice('warn', sprintf(_('The %s directory would be better if writable, in order to deliver automatic updates. Use this command in your shell if possible: %s'), FCPATH, '<br/><b><code>chown -R ' . $whoami . ' ' . FCPATH . '</code></b>')); else set_notice('warn', sprintf(_('The %s directory would be better if writable, in order to deliver automatic updates.<br/>It was impossible to determine the user running PHP. Use this command in your shell if possible: %s where www-data is an example (usually it\'s www-data or Apache)'), FCPATH, '<br/><b><code>chown -R www-data ' . FCPATH . '</code></b><br/>')); set_notice('warn', sprintf(_('If you can\'t do the above, after the installation you will be given a textfile to paste in config.php. More info after submitting.'))); $prob = TRUE; } if ($prob) { set_notice('notice', 'If you made any changes, just refresh this page to recheck the directory permissions.'); } return TRUE; }
* @Since 1.0.0 * @copyright Copyright (C) 2011 5Twenty Studios * */ defined('ABSPATH') or die("Cannot access pages directly."); //initializing $user = FiveTable::getInstance('user'); if (BRequest::getVar('verify', false)) { // LOGIN USER mysql_query("update user set status='active' where secToken='" . BRequest::getVar('verify', false) . "'") or die(mysql_error()); $result = mysql_query("select id,username,email,zip from user where secToken='" . BRequest::getVar('verify', false) . "'") or die(mysql_error()); $row = mysql_fetch_row($result); set_session($row[0], stripslashes($row[1]), stripslashes($row[2]), $row[3]); $user->load(get_current_user_id()); set_notice('Please make sure to update your password before continuing.'); } //redirect if successful if (!is_user_logged_in()) { redirect(Router::url(array('controller' => 'user', 'action' => 'login'))); } //loading the user $user->load(get_current_user_id()); if ($post = BRequest::get('post', false)) { //$user->load( get_current_user_id() ); if ($user->save($post)) { set_notice("Profile Saved."); } else { set_error($user->getErrors()); } } require $view;
public function folder_chapter($cachedir, $chapter) { // Get the filename $dirarray = get_dir_file_info($cachedir, FALSE); $this->db->reconnect(); $pages_added = array(); foreach ($dirarray as $key => $value) { $extentsion = ""; $extension = pathinfo($value["server_path"], PATHINFO_EXTENSION); if ($extension && !in_array(strtolower($extension), array('jpeg', 'jpg', 'png', 'gif'))) { continue; } $page = new Page(); $error = false; if (!$page->add_page($value['server_path'], $value['name'], $chapter->id)) { log_message('error', 'compressed_chapter: one page in the loop failed being added'); $error = true; } if ($error) { set_notice('error', 'Some pages weren\'t uploaded'); } $pages_added[] = $page->get_clone(); } return $pages_added; }
public function download($comic, $language = 'en', $volume = 0, $chapter = "", $subchapter = 0, $team = 0, $joint = 0, $pagetext = 'page', $page = 1) { if(!get_setting('fs_dl_enabled')) show_404(); $comice = new Comic(); $comice->where('stub', $comic)->get(); if ($comice->result_count() == 0) { set_notice('warn', 'This comic doesn\'t exist.'); } if ($chapter == "") { redirect('/reader/comic/' . $comic); } $chaptere = new Chapter(); $chaptere->where('comic_id', $comice->id)->where('language', $language)->where('volume', $volume)->where('chapter', $chapter)->order_by('subchapter', 'ASC'); if (!is_int($subchapter) && $subchapter == 'page') { $current_page = $team; } else { $chaptere->where('subchapter', $subchapter); if ($team == 'page') $current_page = $joint; else { if ($team != 0) { $teame = new Team(); $teame->where('stub', $team)->get(); $chaptere->where('team_id', $teame->id); } if ($joint == 'page') $current_page = $pagetext; if ($joint != 0) { $chaptere->where('joint_id', $joint); } } } if (!isset($current_page)) { if ($page != 1) $current_page = $page; else $current_page = 1; } $chaptere->get(); if ($chaptere->result_count() == 0) { show_404(); } $archive = new Archive(); $url = $archive->compress($chaptere); redirect($url); }
public function edit_account() { if (null != $this->input->post('edit_account_btn')) { $data_post = $this->input->post(); $this->load->helper('Validation'); $this->load->helper('HTMLPurifier'); $config = HTMLPurifier_Config::createDefault(); $purifier = new HTMLPurifier($config); //====================== Validate ====================== $error = array(); if (empty($_POST["username"])) { $error[] = "Username không được rỗng"; } else { if ((preg_match('/^[A-Za-z0-9_\\.]{4,30}$/', $_POST["username"], $maches) || preg_match('/^[A-Za-z0-9_\\.]{4,30}$/', $_POST["username"], $maches)) && (strlen($_POST["username"]) >= 4 && strlen($_POST["username"]) <= 30)) { $username = $_POST["username"]; $username = trim_input(trim($_POST["username"])); $username_exist = $this->Account->check_username_exist($username, $data_post['id']); if ($username_exist) { $error[] = "Username đã tồn tại"; } } else { $error[] = "Username gồm kí tự a-Z và có độ dài 4 - 30"; } } $regex = "/^[a-zA-Z0-9]+@[a-zA-Z0-9]+\\.[a-zA-Z]+\$/"; if (empty($_POST["email"])) { $error[] = "Email không được rỗng!"; } elseif (preg_match($regex, $_POST["email"], $maches)) { $insert_data['email'] = $_POST["email"]; } else { $error[] = "Email không hợp lệ!"; } if ($_POST['password'] != '' && strlen($_POST['password']) < 4) { $error[] = "Password phải nhiều hơn hoặc bằng 4 kí tự!"; } if ($data_post['password'] != '') { if (strlen($_POST['password']) < 4 || strlen($_POST['password']) > 32) { $error[] = "Password từ 4 đến 32 kí tự!"; } else { $data_update['password'] = md5($data_post['password']); } } if (!empty($_FILES['avatar']['name'])) { $avatar_name = $_FILES['avatar']['name']; $tmp = new SplFileInfo($avatar_name); $avatar_type = $tmp->getExtension(); if (strtolower($avatar_type) != 'jpg' && strtolower($avatar_type) != 'gif' && strtolower($avatar_type) != 'png') { $error[] = "Định dạng ảnh đại diện sản phẩm không cho phép!"; } elseif (!isImage($_FILES['avatar']['tmp_name'])) { $error[] = "Ảnh đại diện sản phẩm không phải là file ảnh!"; } elseif ($_FILES['avatar']['size'] > 2048000) { $error[] = "Ảnh đại diện sản phẩm phải nhỏ hơn 2MB"; } else { $tmp_name_avatar = $_FILES['avatar']['tmp_name']; $data_update['avatar'] = md5($_POST["username"]) . '-' . time() . '.' . $avatar_type; } } //====================== Validate ====================== if (count($error) > 0) { $redata['re_id'] = $_POST['id']; $redata['re_username'] = $_POST['username']; $redata['re_email'] = $_POST['email']; $redata['avatar'] = $this->Account->get_avatar_by_id($_POST['id']); $alert_time = 20000; set_notice('status', FAILED_STATUS, $error, $alert_time); $data['subData'] = $redata; $data['title'] = "Cập nhật tài khoản"; $data['subView'] = '/account/edit_account_layout'; $this->load->view('/main/main_layout', $data); } else { $id = $data_post['id']; $data_update['username'] = $purifier->purify($data_post['username']); $data_update['email'] = $data_post['email']; $old_avatar = $this->Account->get_avatar_by_id($id); $rs = $this->Account->update($id, $data_update); if (rs) { // ============= Upload anh avatar =================== if ($rs && isset($_FILES['avatar'])) { $path = "public/img/avatar/"; if (move_uploaded_file($tmp_name_avatar, $path . $data_update['avatar'])) { resizeImage($path . $data_update['avatar'], $path . $data_update['avatar'], 600, 600); @unlink($path . $old_avatar); } } // ============= Upload anh avatar =================== $this->load->model('Login_model', 'Login'); $user = $this->Login->getInfo($username); $_SESSION['user'] = $user; $content = 'Cập nhật tài khoản thành công.'; set_notice('status', SUCCESS_STATUS, $content); header('location:' . base_url() . 'index.php/_admin/order/show_order'); } else { $content = 'Cập nhật tài khoản thất bại.'; set_notice('status', FAILED_STATUS, $content); header('location:' . base_url() . 'index.php/_admin/order/show_order'); } } } else { if (null !== $this->uri->segment(4) && is_numeric($this->uri->segment(4)) && $this->Account->has_account_exist_by_id($this->uri->segment(4))) { $account_id = $this->uri->segment(4); $data['account_info'] = $this->Account->get_account_info($account_id); $data['subView'] = '/account/edit_account_layout'; $data['title'] = "Cập nhật tài khoản"; $data['subData'] = $data; $this->load->view('/main/main_layout', $data); } else { $data['pre_page'] = base_url() . 'index.php/_admin/acticle/show_account'; $this->load->view('/error/404_layout', $data); } } }
function import($stub) { if (!$this->tank_auth->is_admin()) { show_404(); } if (!$stub) { show_404(); } $comic = new Comic(); $comic->where('stub', $stub)->get(); $data['comic'] = $comic; $this->viewdata["extra_title"][] = $comic->name; $archive[] = array(_("Absolute directory path to ZIP archive for the series") . ' ' . $comic->name, array('type' => 'input', 'name' => 'directory', 'help' => sprintf(_('Insert the absolute directory path. This means from the lowest accessible directory. Example: %s'), '/var/www/backup/' . $comic->stub))); $data['archive'] = tabler($archive, FALSE, TRUE, TRUE); $this->viewdata["function_title"] = _("Import"); if ($this->input->post('directory')) { $data['directory'] = $this->input->post('directory'); if (!is_dir($data['directory'])) { set_notice('error', _('The directory you set does not exist.')); $this->viewdata["main_content_view"] = $this->load->view("admin/series/import", $data, TRUE); $this->load->view("admin/default.php", $this->viewdata); return FALSE; } $data['archives'] = $this->files_model->import_list($data); $this->viewdata["main_content_view"] = $this->load->view("admin/series/import_compressed_list", $data, TRUE); $this->load->view("admin/default.php", $this->viewdata); return TRUE; } if ($this->input->post('action') == 'execute') { $result = $this->files_model->import_compressed(); if (isset($result['error']) && !$result['error']) { $this->output->set_output(json_encode($result)); return FALSE; } else { $this->output->set_output(json_encode($result)); return true; } } $this->viewdata["main_content_view"] = $this->load->view("admin/series/import", $data, TRUE); $this->load->view("admin/default.php", $this->viewdata); }
/** * Displays the errors in a user friendly box */ function show_notifications() { $errors = set_notice(); if (!empty($errors)) { $errors = implode('<br/>', $errors); show_view('five-notification-success', array('notification' => $errors)); } }
public function doedit() { if (isset($_POST["btnSubmit"])) { //============================== Purifier ============================== $this->load->helper('Validation'); $this->load->helper('HTMLPurifier'); $config = HTMLPurifier_Config::createDefault(); $purifier = new HTMLPurifier($config); // $clean_html = $purifier->purify($dirty_html); //su dung //============================== Purifier ============================== $update_data = array(); $war = array(); $loi = array(); $has_new_detail_image = false; $product_id = $_POST['product_id']; $page = isset($_POST['page']) && is_numeric($_POST['page']) ? $_POST['page'] : 1; $old_detail_image = $this->Product->get_detail_image($product_id); $old_avatar = $this->Product->get_avatar($product_id); $delete_detail_img = empty($_POST['delete_detail_img']) ? array() : $_POST['delete_detail_img']; if (count($_FILES['detail_img']['name']) > 0) { $imgs = $_FILES['detail_img']; $url = ''; $tmp_name_detail_img = array(); for ($i = 0; $i < count($_FILES['detail_img']['name']); $i++) { if ($_FILES['detail_img']['name'][$i] != '') { $tmp = new SplFileInfo($_FILES['detail_img']['name'][$i]); $type = $tmp->getExtension(); if (strtolower($type) != 'jpg' && strtolower($type) != 'gif' && strtolower($type) != 'png') { $war[] = "Dịnh dạng ảnh chi tiết sản phẩm không cho phép!"; $type = $tmp->getExtension(); } elseif ($_FILES['detail_img']['size'][$i] > 1024000) { $war[] = "Ảnh chi tiết sản phẩm phải nhỏ hơn 2MB"; } elseif (!isImage($_FILES['detail_img']['tmp_name'][$i])) { $war[] = "Ảnh chi tiết không phải là file ảnh!"; } else { $url = $url . '|' . htmlspecialchars(md5($_POST['product_name'])) . '-' . $i . time() . '.' . $type; $tmp_name_detail_img[] = $_FILES['detail_img']['tmp_name'][$i]; } } } if (trim($url, '|') != '') { $new_detail_image = trim($url, '|'); $update_data['detail_image'] = $old_detail_image . '|' . $new_detail_image; $update_data['detail_image'] = trim($update_data['detail_image'], '|'); $has_new_detail_image = true; } } if (!empty($delete_detail_img)) { if ($has_new_detail_image) { foreach ($delete_detail_img as $value) { $update_data['detail_image'] = str_replace($value . '|', '', $update_data['detail_image']); } } else { $update_data['detail_image'] = $old_detail_image . '|'; foreach ($delete_detail_img as $value) { $update_data['detail_image'] = str_replace($value . '|', '', $update_data['detail_image']); } } $update_data['detail_image'] = trim($update_data['detail_image'], '|'); } $update_data['product_name'] = trim_input($_POST["product_name"]); $update_data['category_id'] = $_POST["category_id"]; $update_data['des'] = $purifier->purify($_POST["des"]); $update_data['price'] = trim_input($_POST["price"]); $update_data['size'] = $purifier->purify($_POST["size"]); $update_data['substance'] = $purifier->purify($_POST["substance"]); //====================== Validate START ====================== if (!empty($_FILES['avatar']['name'])) { $avatar_name = $_FILES['avatar']['name']; $tmp = new SplFileInfo($avatar_name); $avatar_type = $tmp->getExtension(); if (strtolower($avatar_type) != 'jpg' && strtolower($avatar_type) != 'gif' && strtolower($avatar_type) != 'png') { $loi[] = "Định dạng ảnh đại diện sản phẩm không cho phép!"; } elseif (!isImage($_FILES['avatar']['tmp_name'])) { $loi[] = "Ảnh đại diện sản phẩm không phải là file ảnh!"; } elseif ($_FILES['avatar']['size'] > 2048000) { $loi[] = "Ảnh đại diện sản phẩm phải nhỏ hơn 2MB"; } else { $tmp_name_avatar = $_FILES['avatar']['tmp_name']; $update_data['image'] = md5($update_data['product_name']) . '-' . time() . '.' . $avatar_type; } } if (empty($_POST["product_name"])) { $loi[] = "Tên sản phẩm không được rỗng"; } elseif (strip_tags($_POST["product_name"]) == '') { $loi[] = "Tên sản phẩm không hợp lệ!"; } else { if (strlen($_POST["product_name"]) >= 4 && strlen($_POST["product_name"]) <= 100) { $update_data['product_name'] = $_POST["product_name"]; $update_data['product_name'] = trim($_POST["product_name"]); $update_data['product_name'] = strip_tags($_POST["product_name"]); $update_data['product_name'] = addslashes($update_data['product_name']); $product_name_exist = $this->Product->has_exist_product_name($update_data['product_name'], $product_id); if ($product_name_exist) { $loi[] = "Sản phẩm đã tồn tại"; } } else { $loi[] = "Tên sản phẩm phải dài hơn 4 và nhỏ hơn 100 kí tự!"; } } if (empty($update_data['category_id'])) { $loi[] = "Chưa chọn loại sản phẩm!"; } elseif (!is_numeric($update_data['category_id']) || !$this->Category->has_sub_category_exist_by_id($update_data['category_id'])) { $loi[] = "Loại sản phẩm không hợp lệ!"; } if (!empty($update_data['price'])) { if (!is_numeric($update_data['price'])) { $loi[] = "Giá phải là kiểu số!"; } } //====================== Validate END ====================== if (count($loi) > 0) { $alert_time = 20000; set_notice(FAILED_STATUS, $loi, $alert_time); $data['category'] = $this->Category->list_all_sub_category(); $redata['info'] = $this->Product->get_product_by_id($product_id); $redata['re_product_name'] = $_POST['product_name']; $redata['re_category_id'] = $_POST['category_id']; $redata['re_price'] = $_POST['price']; $redata['re_size'] = $_POST['size']; $redata['re_substance'] = $_POST['substance']; $redata['re_des'] = $_POST['des']; $redata['re_page'] = $page; $data['subView'] = '/product/edit_product_layout'; $data['title'] = 'Cập nhật sản phẩm'; $data['subData'] = $redata; $this->load->view('/main/main_layout', $data); } else { $rs = $this->Product->update($product_id, $update_data); // ============= Xoa anh chi tiet =================== if ($rs && !empty($delete_detail_img)) { foreach ($delete_detail_img as $value) { @unlink('public/img/detail_img/' . $value); } } // ============= Xoa anh chi tiet =================== // ============= Upload anh chi tiet =================== if ($rs && $has_new_detail_image) { $detail_image_name = explode('|', $new_detail_image); for ($i = 0; $i < count($detail_image_name); $i++) { $path = "public/img/detail_img/"; move_uploaded_file($tmp_name_detail_img[$i], $path . $detail_image_name[$i]); resizeImage($path . $detail_image_name[$i], $path . $detail_image_name[$i], 600, 600); } } // ============= Upload anh chi tiet =================== // ============= Upload anh avatar =================== if ($rs && isset($_FILES['avatar'])) { $path = "public/img/products/"; if (move_uploaded_file($tmp_name_avatar, $path . $update_data['image'])) { resizeImage($path . $update_data['image'], $path . $update_data['image'], 600, 600); @unlink('public/img/products/' . $old_avatar); } } // ============= Upload anh avatar =================== if ($rs) { if (!empty($war)) { $war['title'] = 'Cập nhật sản phẩm <span style="color:blue;"> ' . $update_data['product_name'] . '</span> thành công!'; $content = $war; $alert_time = 15000; set_notice(FAILED_STATUS, $content, $alert_time); header('location:' . base_url() . 'index.php/_admin/product'); } else { $mess = 'Cập nhật sản phẩm <span style="color:blue;"> ' . $update_data['product_name'] . '</span> thành công!'; set_notice(SUCCESS_STATUS, $mess); header('location:' . base_url() . 'index.php/_admin/product'); } } else { $mess = 'Có lỗi xảy ra cập nhật sản phẩm.'; set_notice(FAILED_STATUS, $mess); header('location:' . base_url() . 'index.php/_admin/product/add_product'); } } } }
public function rebuild_thumbnail() { // Let's make sure the chapter and comic is set $this->get_chapter(); $path = "content/comics/" . $this->chapter->comic->directory() . "/" . $this->chapter->directory() . "/" . $this->filename; // get paths and remove the thumb if (!file_exists($path)) { set_notice('warning', _('Page not found while creating thumbnail:') . ' ' . $this->chapter->comic->name . ' > ' . $this->chapter->title()); log_message('error', 'rebuild_thumbnail: there\'s a missing image in ' . $path); // don't stop the process return TRUE; } $thumb_path = "content/comics/" . $this->chapter->comic->directory() . "/" . $this->chapter->directory() . "/" . $this->thumbnail . $this->filename; if (file_exists($thumb_path)) { if (!unlink($thumb_path)) { set_notice('error', _('Failed to remove the thumbnail while rebuilding it. Please, check file permissions.')); log_message('error', 'rebuild_thumbnail: failed to remove thumbnail while rebuilding'); return FALSE; } } // Prepare the image library to create the thumbnail $CI =& get_instance(); $CI->load->library('image_lib'); $img_config['image_library'] = find_imagick() ? 'ImageMagick' : 'GD2'; // Use GD2 as fallback $img_config['library_path'] = find_imagick() ? get_setting('fs_serv_imagick_path') ? get_setting('fs_serv_imagick_path') : '/usr/bin' : ''; // If GD2, use none $img_config['source_image'] = $path; $img_config["new_image"] = $thumb_path; $img_config['width'] = 250; $img_config['height'] = 250; $img_config['maintain_ratio'] = TRUE; $img_config['master_dim'] = 'auto'; $CI->image_lib->initialize($img_config); // Resize to create the thumbnail if (!$CI->image_lib->resize()) { set_notice('error', _('Failed to recreate the thumbnail of the page.')); log_message('error', 'rebuild_thumbnail: failed to recreate thumbnail'); return FALSE; } // update the kind of compression used and thumbnail filesize $this->thumbsize = filesize($thumb_path); $this->description = find_imagick() ? 'im' : ''; if (!$this->save()) { set_notice('error', _('Failed to save the image compression method in the database.')); log_message('error', 'rebuild_thumbnail: failed to save the image compression method'); return FALSE; } // Clear the image library for who knows who else calls it $CI->image_lib->clear(); // Good return TRUE; }
function permissions_suggest() { if (!is_writable('.')) { $whoami = FALSE; if ($this->_exec_enabled()) $whoami = exec('whoami'); if (!$whoami && is_writable('content') && function_exists('posix_getpwid')) { write_file('content/testing_123.txt', 'testing_123'); $whoami = posix_getpwuid(fileowner('content/testing_123.txt')); $whoami = $whoami['name']; unlink('content/testing_123.txt'); } if ($whoami != "") set_notice('warn', sprintf(_('The %s directory would be better if writable, in order to deliver automatic updates. Use this command in your shell if possible: %s'), FCPATH, '<br/><b><code>chown -R ' . $whoami . ' ' . FCPATH . '</code></b>')); else set_notice('warn', sprintf(_('The %s directory would be better if writable, in order to deliver automatic updates.<br/>It was impossible to determine the user running PHP. Use this command in your shell if possible: %s where www-data is an example (usually it\'s www-data or Apache)'), FCPATH, '<br/><b><code>chown -R www-data ' . FCPATH . '</code></b><br/>')); set_notice('warn', sprintf(_('If you can\'t do the above, you can follow the manual upgrade instructons at %sthis link%s.'), '<a href="http://trac.foolrulez.com/foolslide/wiki/installation_guide#Manualupgradeorifautomaticupgradebrokeeverything">', '</a>')); $prob = TRUE; } if ($prob) { set_notice('notice', 'If you made any changes, just refresh this page to recheck the directory permissions.'); } }
public function remove_team_from_all($team_id) { $joints = new Joint(); $joints->where('team_id', $team_id)->get(); if (!$joints->delete_all()) { set_notice('error', _('Couldn\'t remove the team from all the joints.')); log_message('error', 'remove_team_from_all (joint.php): removing failed'); return false; } }
public function add_slider() { if (isset($_POST['edit_slider_btn'])) { $data_post = $this->input->post(); $this->load->helper('Validation'); $this->load->helper('HTMLPurifier'); $config = HTMLPurifier_Config::createDefault(); $purifier = new HTMLPurifier($config); //====================== Validate START ====================== $error = array(); $link_slider = array(); for ($i = 0; $i < count($_FILES['image_slider']['name']); $i++) { $data_insert['link_slider'][$i] = ''; if ($_FILES['image_slider']['name'][$i] != '') { $tmp = new SplFileInfo($_FILES['image_slider']['name'][$i]); $type = $tmp->getExtension(); if (strtolower($type) != 'jpg' && strtolower($type) != 'gif' && strtolower($type) != 'png') { $error[] = "Không đúng định dạng ảnh cho phép!"; } elseif (!isImage($_FILES['image_slider']['tmp_name'][$i])) { $error[] = "Không phải là file ảnh!"; } elseif ($_FILES['image_slider']['size'][$i] > 2048000) { $error[] = "Ảnh lớn hơn 2MB"; } else { $data_insert['link_slider'][$i] = $i . microtime() . '.' . $type; $tmp_name_image_slider[$i] = $_FILES['image_slider']['tmp_name'][$i]; } } else { $error[] = "Bắt buộc phải upload 1 ảnh cho 1 slide."; } } for ($i = 0; $i < count($data_post['des_slider']); $i++) { if ($data_post['des_slider'][$i] !== '') { $data_insert['des_slider'][$i] = $purifier->purify($data_post['des_slider'][$i]); } else { $data_insert['des_slider'][$i] = ''; } } //====================== Validate END ====================== if (count($error) > 0) { $alert_time = 15000; set_notice('status', FAILED_STATUS, $error, $alert_time); $redata['re_des_slider'] = $data_post['des_slider']; $data['subView'] = '/manage_site/slider/add_slider_layout'; $data['title'] = "Thêm hình ảnh vào slider"; $data['subData'] = $redata; $this->load->view('/main/main_layout', $data); } else { $tmp_insert = array(); for ($i = 0; $i < count($data_post['des_slider']); $i++) { // $this->Slider->insert($data_insert[]); $tmp_insert['link_slider'] = $data_insert['link_slider'][$i]; $tmp_insert['des_slider'] = $data_insert['des_slider'][$i]; $tmp_rs = $this->Slider->insert($tmp_insert); } // ============= Upload anh image_slider =================== for ($i = 0; $i < count($_FILES['image_slider']['name']); $i++) { if (!empty($_FILES['image_slider']['name'][$i])) { $path = "public/img/slider/"; if (move_uploaded_file($tmp_name_image_slider[$i], $path . $data_insert['link_slider'][$i])) { resizeImage($path . $data_insert['link_slider'][$i], $path . $data_insert['link_slider'][$i], 400, 400); } } } // ============= Upload anh image_slider =================== $content = 'Thêm mới slide thành công.'; set_notice('status', SUCCESS_STATUS, $content); header('location:' . base_url() . 'index.php/_admin/manage_site/slider/show_slider'); } } else { $data['subView'] = '/manage_site/slider/add_slider_layout'; $data['title'] = "Thêm hình ảnh vào slider"; $data['subData'] = $data; $this->load->view('/main/main_layout', $data); } }
/** * Removes the chapter folder with all the data that was inside of it. * This means pages and props too. * * @author Woxxy * @return boolean true if success, false if failure. */ public function remove_chapter_dir() { // Get the comic if we didn't yet. if (!$this->get_comic()) { set_notice('error', _('No comic related to this chapter.')); log_message('error', 'remove_chapter_dir: comic did not exist'); return false; } // Create the direcotry name $dir = "content/comics/" . $this->comic->directory() . "/" . $this->directory() . "/"; // Delete all files inside of it if (!delete_files($dir, TRUE)) { set_notice('error', _('Failed to remove the files inside the chapter directory. Please, check file permissions.')); log_message('error', 'remove_chapter_dir: files inside folder could not be removed'); return false; } else { // On success of emptying, remove the chapter directory itself. if (!rmdir($dir)) { set_notice('error', _('Failed to remove the chapter directory. Please, check file permissions.')); log_message('error', 'remove_chapter_dir: folder could not be removed'); return false; } } return true; }
/** * Removes the image file and the thumbnail. * * @author Woxxy * @return boolean true if success, false if failure. */ public function remove_page_file() { // Make sure chapter and comic are set $this->get_chapter(); // Get the chapter directory $dir = "content/comics/" . $this->chapter->comic->directory() . "/" . $this->chapter->directory() . "/"; // Remove the image if (!unlink($dir . $this->filename)) { set_notice('error', _('Failed to remove the page\'s file. Please, check file permissions.')); log_message('error', 'remove_page_file: failed to delete image'); return false; } // Remove the thumbnail if (!unlink($dir . "thumb_" . $this->filename)) { set_notice('error', _('Failed to remove the page\'s thumbnail. Please, check file permissions.')); log_message('error', 'remove_page_file: failed to delete thumbnail'); return false; } // Good return true; }
public function download($comic, $language = 'en', $volume = null, $chapter = null, $subchapter = 0) { if (!get_setting('fs_dl_enabled')) { show_404(); } $comice = new Comic(); $comice->where('stub', $comic)->get(); if ($comice->result_count() == 0) { set_notice('warn', 'This comic does not exist.'); } $archive = new Archive(); $result = $archive->compress($comice, $language, $volume, $chapter, $subchapter); if ($this->input->is_cli_request()) { echo $result["server_path"] . PHP_EOL; } else { redirect($result["url"]); } }