function createPrivate($title, $elems) { if (!isset($this->session->userdata['data']['logined'])) { die('Доступ запрещен'); } $this->db->trans_begin(); $url = short_url(); $insert = array('name' => $title, 'sys_users_id' => $this->session->userdata['data']['sys_users_id'], 'url' => $url); $this->db->insert($this->config->item('table_tasks'), $insert); $i = 1; foreach ($elems as $elem) { if ($elem['task'] != '' || $elem['description'] != '') { $description = preg_replace("/(\\s){2,}/", ' ', $elem['description']); $this->db->insert($this->config->item('table_elems'), array('url' => $url, 'name' => trim($elem['task']), 'description' => $description, 'ord' => $i)); $i++; } } if ($this->db->trans_status() === FALSE) { $this->db->trans_rollback(); return FALSE; } else { $this->db->trans_commit(); return $url; } }
function short_url() { $CI =& get_instance(); $letters = '123456789QWERTYUIPASDFGHJKLZXCVBNMqwertyuipasdfghjklzxcvbnm'; $ll = strlen($letters) - 1; $len = 5; $ret = ''; for ($i = 1; $i <= $len; $i++) { $p = mt_rand(0, $ll); $ret .= $letters[$p]; } $CI->db->where('url', $ret); if ($CI->db->count_all_results($CI->config->item('table_tasks'))) { $ret = short_url(); } return $ret; }
function publiccreate() { $this->load->library('form_validation'); $this->form_validation->set_error_delimiters('<li>', '</li>'); //$this->form_validation->set_rules('tasks', 'Список', 'required|trim|max_length[2048]'); $this->form_validation->set_rules('emails', 'Электронные адреса', 'trim|callback_checkEmails|max_length[2048]'); // $this->form_validation->set_rules('title', 'Наименование', 'trim'); $this->form_validation->set_rules('expire', 'Срок годности', 'trim'); $this->form_validation->set_message('required', 'Поле "%s" обязательно для заполнения'); $this->form_validation->set_message('max_length', 'Превышен максимальный размер поля "%s"'); if ($this->form_validation->run() == FALSE) { $errors = validation_errors(); if ($errors != '') { $errors = '<div id="errors"> <ul> ' . $errors . ' </ul> </div>'; } $con = $this->load->view('list/publiccreate', array('errors' => $errors), TRUE); } else { $data = array(); $data['name'] = $this->input->post('title'); if ($this->input->post('password')) { $data['password'] = sha1($this->input->post('password')); } else { $data['password'] = ''; } $data['expire'] = $this->input->post('expire') * 3600 * 24 + time(); $data['url'] = short_url(); $tasks = $this->input->post('double'); /*echo '<pre>'; print_r($tasks); echo '</pre>'; return;*/ if ($this->spisok->addTask($data, $tasks['double'])) { $this->sendEmails($this->input->post('emails'), $this->input->post('password'), $data); redirect(base_url() . 'sp/show/' . $data['url']); } else { $con = 'Что-то произошло и ваш список не был добавлен. Попробуйте еще раз'; } } $this->showContent($con, '', 'Создание публичного списка'); }
/** * Get short url from a post. * * @param int $post_id * @param bool $only_short_url Default false * * @return string|null */ function get_short_url($post_id, $only_short_url = false) { return short_url()->get_short_url($post_id, $only_short_url); }