本文整理汇总了PHP中Model_Base::getOptions方法的典型用法代码示例。如果您正苦于以下问题:PHP Model_Base::getOptions方法的具体用法?PHP Model_Base::getOptions怎么用?PHP Model_Base::getOptions使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Model_Base
的用法示例。
在下文中一共展示了Model_Base::getOptions方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: addUser
public function addUser($data)
{
$vData = $data;
$validation = Validation::factory($vData);
$validation->rule('username', 'not_empty');
$validation->rule('username', 'email');
if (!$validation->check()) {
$this->errors = $validation->errors('userErrors');
return FALSE;
}
$pass = Arr::get($data, 'pass');
$username = addslashes(Arr::get($data, 'username'));
$myuser = ORM::factory('Myuser');
$auth = Auth::instance();
$pass = $auth->hash($pass);
//Создаем пользователя
$myuser->username = $username;
$myuser->email = $username;
$myuser->password = $pass;
$myuser->name = addslashes(Arr::get($data, 'name'));
$myuser->phone = addslashes(Arr::get($data, 'phone'));
try {
$myuser->save();
//Узнаем id пользователя
$add_user_id = ORM::factory("user", array("username" => $username))->id;
$token = substr($auth->hash($add_user_id . $username), 0, 20);
//добавляем роль пользователя
$model_addrole = new Model_Addrole();
$model_addrole->user_id = $add_user_id;
$model_addrole->role_id = Arr::get($data, "role");
$model_addrole->save();
//добавляем запись для активации
$model_addtoken = new Model_Addtoken();
$model_addtoken->user_id = $add_user_id;
$model_addtoken->token = $token;
$model_addtoken->save();
//отправляем пользователю сообщение для авторизации
$config = Kohana::$config->load('email');
$mbase = new Model_Base();
$options = $mbase->getOptions();
Email::connect($config);
$to = $username;
$subject = 'Добро пожаловать на сайт ' . $options['sitename'];
$from = $config['options']['username'];
$message = '<b>Отправитель</b>: ' . Kohana::$base_url . '<br>';
$message .= 'Для работы с заказами на сайте Вам необходимо активировать учетную запись. <br>
<br>
Ваш логин: ' . $username . '<br>
Ваш пароль: ' . Arr::get($data, 'pass') . '<br><br>
Для активации перейдите по <a href="' . Kohana::$base_url . 'registration?token=' . $token . '&user=' . $username . '">этой ссылке</a>
<hr>
Спасибо за то, что пользуетесь услугами нашего сайта. По всем вопросам обращайтесь в техподдержку: ' . $config['options']['username'];
$res = Email::send($to, $from, $subject, $message, $html = TRUE);
return $add_user_id;
} catch (ORM_Validation_Exception $e) {
$this->errors = $e->errors('validation');
return false;
}
}
示例2: uploads_dir
protected function uploads_dir()
{
$base = new Model_Base();
$options = $base->getOptions();
if (isset($options['photos_base_path'])) {
$this->baseDir = $this->baseDir . $options['photos_base_path'] . DIRECTORY_SEPARATOR;
}
return DOCROOT . $this->baseDir . DIRECTORY_SEPARATOR;
}
示例3: _execute
/**
* Test action
*
* @param array $params
* @return void
*/
protected function _execute(array $params)
{
$base = new Model_Base();
$options = $base->getOptions();
$excel = new Model_Excel();
$file = DOCROOT . '/upload/task/file.xlsx';
$load = $excel->load_xls($file, 602, $options['xls_offset'], $options['xls_limit']);
$new_offset = $options['xls_offset'] + $options['xls_limit'];
$options = $base->saveOptions(array('xls_offset' => $new_offset));
}
示例4: action_restore_pass
public function action_restore_pass()
{
$model = array();
$model["error"] = "";
$model["success"] = "";
if ($_POST) {
$vData = $_POST;
$validation = Validation::factory($vData);
$validation->rule('email', 'not_empty');
// валидация пройдена
if ($validation->check()) {
$email = $_POST["email"];
$user = DB::select()->from('users')->where('email', '=', $email)->execute()->current();
// Пользователь зарегистрирован
if ($user) {
$model_user = new Model_User();
// Создаём новый пароль
$auth = Auth::instance();
$pass = $model_user->generate_pass();
$hash_pass = $auth->hash($pass);
DB::update("users")->set(array("password" => $hash_pass))->where("email", "=", $email)->execute();
//отправляем пользователю сообщение для восстановления пароля
$config = Kohana::$config->load('email');
$mbase = new Model_Base();
$options = $mbase->getOptions();
Email::connect($config);
$to = $email;
$subject = 'Восстановление пароля на ' . $options['sitename'];
$from = $config['options']['username'];
$message = '<h2>Мы создали вам новый пароль для входа на <a href="' . Kohana::$base_url . '">' . $options['sitename'] . '</a>!</h2><hr>';
$message .= '<h3>Ваши реквизиты для входа:<h3>';
$message .= '<p><small>Логин: <input type="text" value="' . $email . '"></small></p>';
$message .= '<p><small>Пароль: <input type="text" value="' . $pass . '"></small></p>';
$message .= '<hr>Спасибо за то, что пользуетесь услугами нашего портала. По всем вопросам обращайтесь в техподдержку: ' . $config['options']['username'];
Email::send($to, $from, $subject, $message, $html = true);
$model["success"] = '<div class="alert alert-success"><p>На ваш эл. ящик отправлены инструкции по восстановлению пароля.</p></div>';
// Пользователь не зарегистрирован
} else {
$model["error"] .= '<div class="alert alert-danger"><p>Данный адрес эл. почты не зарегистрирован.</p></div>';
}
// Валидация не пройдена
} else {
$model["error"] .= '<div class="alert alert-danger"><p>Вы не ввели адрес эл. почты</p></div>';
}
}
$this->title('Забыли пароль?');
$this->page_title('Забыли пароль?');
$this->keywords('Забыли пароль?');
$this->description('Забыли пароль?');
$this->render('user/cabinet/restore_pass.php', $model, "response");
}
示例5: reg
public function reg($name, $pass, $role)
{
PC::debug(array($name, $pass, $role), "reg");
$myuser = new Model_Myuser();
$auth = Auth::instance();
$hash_pass = $auth->hash($pass);
//Создаем пользователя
$myuser->username = $name;
$myuser->email = $name;
$myuser->password = $hash_pass;
try {
$myuser->save();
//Узнаем id пользователя
//$usertmp = ORM::factory('user', array('username'=>$name));
$adduserid = DB::select()->from('users')->where('username', '=', $name)->execute()->as_array()[0]["id"];
$adduser = new Model_Addrole();
$adduser->user_id = $adduserid;
$adduser->role_id = $role;
$adduser->save();
//добавляем запись для активации
$token = substr($auth->hash($adduserid . $name), 0, 20);
$addtoken = new Model_Addtoken();
$addtoken->user_id = $adduserid;
$addtoken->token = $token;
$addtoken->save();
//отправляем пользователю сообщение для авторизации
$config = Kohana::$config->load('email');
$mbase = new Model_Base();
$options = $mbase->getOptions();
Email::connect($config);
$to = $name;
$subject = 'Добро пожаловать на сайт ' . $options['sitename'];
$from = $config['options']['username'];
$message = '<h2>Вы успешно зарегистрировались на сайте <a href="' . Kohana::$base_url . '">' . $options['sitename'] . '</a>!</h2><hr>';
$message .= '<p>Перед входом пожалуйста подтвердите свою учётную запись, для этого перейдите по <a href="' . Kohana::$base_url . 'user/activate?token=' . $token . '&user=' . $name . '">этой ссылке</a>.</p><hr>';
$message .= '<h3>Ваши реквизиты для входа:<h3>';
$message .= '<p><small>Логин: <input type="text" value="' . $name . '"></small></p>';
$message .= '<p><small>Пароль: <input type="text" value="' . $pass . '"></small></p>';
$message .= '<hr>Спасибо за то, что пользуетесь услугами нашего портала. По всем вопросам обращайтесь в техподдержку: ' . $config['options']['username'];
Email::send($to, $from, $subject, $message, $html = true);
return true;
} catch (ORM_Validation_Exception $e) {
$this->errors = $e->errors('validation');
return false;
}
}
示例6: get_response
public function get_response()
{
$this->template = View::factory('base');
$config = Kohana::$config->load('main')->site;
$base = new Model_Base();
$options = $base->getOptions();
$this->template->styles = $config['styles'];
$this->template->styles[] = 'css/menu.css';
$this->template->scripts = $config['scripts'];
$this->template->scripts[] = 'js/errors.js';
$this->template->title = 'Ошибка 404 - Страница не найдена';
$this->template->description = $options['description'];
$this->template->keywords = $options['keywords'];
$this->template->page_title = null;
$header = View::factory('header');
$footer = View::factory('footer');
$this->template->header = $header;
$this->template->footer = $footer;
$this->template->for_cart = null;
$this->template->top_menu = array(Request::factory('widgets/menu/index/4')->execute());
$this->template->left_menu = null;
$this->template->block_left = null;
$this->template->block_right = null;
$this->template->pathway = null;
$this->message = '<h1>Упс! Ошибка 404.</h1><br><p>Запрашиваемая страница не найдена. Скорее всего она была перемещена или удалена.</p>';
// Remembering that `$this` is an instance of HTTP_Exception_404
//проверка редиректов
$gid = 34;
$materials = new Model_Material('group');
$redirects = $materials->getMaterials($gid, 1000, 0);
$url = Request::detect_uri();
foreach ($redirects as $redirect) {
if ($redirect['name'] == Kohana::$base_url . substr($url, 1)) {
$fields = $materials->getFields2($redirect['id'], TRUE);
$this->redirect = $fields['to'];
}
}
if (Kohana::$environment === Kohana::PRODUCTION) {
$view = View::factory('errors/404')->set('message', $this->message)->set('redirect', $this->redirect)->render();
} else {
$view = View::factory('errors/404')->set('message', $this->message)->render();
}
$this->template->block_center = array($view);
$response = Response::factory()->status(404)->body($this->template->render());
return $response;
}
示例7: mail_send
public function mail_send($to, $from, $subject, $message)
{
$email_config = Kohana::$config->load("email");
$res = Email::connect($email_config);
if (!Email::send($to, $from, $subject, $message, $html = true)) {
$model_base = new Model_Base();
$options = $model_base->getOptions();
$to = $options['admin_email'];
$subject = 'Ошибки на сайте ' . $options['sitename'];
$from = $email_config['options']['username'];
foreach ($this->errors as $error) {
$message = '<h2>Ошибка</h2>';
$message .= $error;
$message .= ' <em>Отправлено: ' . date("G:i:s M j Y") . '</em>';
}
Email::send($to, $from, $subject, $message, $html = true);
}
}
示例8: before
public function before()
{
$session = Session::instance();
$session->set('auth_redirect', $_SERVER['REQUEST_URI']);
$auth = Auth::instance();
if ($auth->logged_in('admin') == 0) {
Controller::redirect('auth');
}
// Выполняем функцию родительского класса
parent::before();
$myuser = new Model_Myuser();
$config = Kohana::$config->load('main')->admin;
$base = new Model_Base();
$options = $base->getOptions();
$this->template->styles = $config['styles'];
$this->template->scripts = $config['scripts'];
$this->user = $auth->get_user()->as_array();
$this->user['role'] = $myuser->get_role($this->user['id']);
$this->template->sitename = $options['sitename'];
$this->template->user = $this->user;
$this->template->title = 'Панель управления';
}
示例9: action_index
//.........这里部分代码省略.........
//сохраняем данные виджета
$data['errors'] = $widgets->saveWidget($_POST);
}
$data['widget'] = $widgets->getWidget($widgetId);
$data['widgetTypes'] = $widgets->getWidgetTypes();
if ($data['widget']['template'] && $data['widget']['template'] != '') {
$template = $data['widget']['template'];
} else {
$template = $data['widget']['def_template'];
}
$lessfile = DOCROOT . 'css/' . $data['widget']['name'] . '.less';
$jsfile = DOCROOT . 'js/' . $data['widget']['name'] . '.js';
if ($template) {
$filename = DOCROOT . 'application/views/widgets/' . $template . '.php';
if (is_file($filename) && is_readable($filename) && filesize($filename) > 0) {
$fh = fopen($filename, "r");
$file = fread($fh, filesize($filename));
$data['file'] = $file;
fclose($fh);
}
}
if (is_file($lessfile) && is_readable($lessfile) && filesize($lessfile) > 0) {
$fh = fopen($lessfile, "r");
$file = fread($fh, filesize($lessfile));
$data['less'] = $file;
fclose($fh);
}
if (is_file($jsfile) && is_readable($jsfile) && filesize($jsfile) > 0) {
$fh = fopen($jsfile, "r");
$file = fread($fh, filesize($jsfile));
$data['js'] = $file;
fclose($fh);
}
$num_backups = 10;
$template .= '.php';
$lname = $data['widget']['name'] . '.less';
$jname = $data['widget']['name'] . '.js';
for ($n = 1; $n <= $num_backups; ++$n) {
$name1 = str_replace($template, str_replace(".", "_" . $n . ".", $template), $template);
$res = str_replace($template, 'backups/' . $name1, $filename);
if (is_file($res)) {
$data['template_backups'][$n]['file'] = $res;
$data['template_backups'][$n]['name'] = $name1;
}
$namel = str_replace($lname, str_replace(".", "_" . $n . ".", $lname), $lname);
$namej = str_replace($jname, str_replace(".", "_" . $n . ".", $jname), $jname);
$lres = str_replace($lname, 'backups/' . $namel, $lessfile);
if (is_file($lres)) {
$data['less_backups'][$n]['file'] = $lres;
$data['less_backups'][$n]['name'] = $namel;
}
$jres = str_replace($jname, 'backups/' . $namej, $jsfile);
if (is_file($jres)) {
$data['js_backups'][$n]['file'] = $jres;
$data['js_backups'][$n]['name'] = $namej;
}
}
}
if (isset($_POST['imgUpload'])) {
//get uploadDir
$uploadDir = DOCROOT . 'img/user/menu';
$name = $_POST['filename'];
//перебираем массив файлов
for ($i = 0; $i < count($_FILES['file']['name']); ++$i) {
if ($_FILES['file']['size'][$i] > 11100000) {
echo 'Файл не должен быть больше 10 Мб';
} else {
$ext = explode('.', $_FILES['file']['name'][$i]);
$extension = array_pop($ext);
$base = new Model_Base();
$extarr = explode('.', $_FILES['file']['name'][$i]);
$ext = array_pop($extarr);
$filename = $name . '.' . $ext;
//$filename = substr(md5(microtime() * time()),0,rand(20,10)).'.'.$extension;
if (copy($_FILES['file']['tmp_name'][$i], $uploadDir . "/" . $filename)) {
$base = new Model_Base();
$options = $base->getOptions();
$size = explode(',', Arr::get($options, 'structure_photos_size'));
//изменяем картинку
//открываем изображение
$image = Image::factory($uploadDir . "/" . $filename);
//начинаем работу с нужной картинкой. Путь указан от корня приложения
//меняем размер картинки
if (count($size) == 2) {
$image->resize($size[0], $size[1]);
}
//сохраняем новое изображение
$image->save(NULL, 90);
//первый параметр - путь, имя и формат изображения. Второй - качество изображения
unset($image);
}
}
}
}
//Получаем группу пользователя
$auth = Auth::instance();
$user = $auth->get_user();
// echo '<pre>';
$this->template->content = View::factory('admin/admIndex', array('data' => $data, 'user' => $this->user, 'request' => $this->request, 'response' => $this->response));
}
示例10: newParam
public function newParam($mid, $pid, $value, $files = array())
{
$index = 'image_' . $pid;
$materials = new Model_Material('group');
$material = $materials->getMaterial($mid);
if ($files[$index]['size'] > 0) {
foreach ($files as $file_key => $file) {
$file_param = explode('_', $file_key);
if ($file_param[0] == 'image') {
//загружаем изображение
if ($file['size'] < 5000000 && $file['size'] > 0) {
$ext = explode('.', $file['name']);
$extension = array_pop($ext);
//генерируем имя изображения
$base = new Model_Base();
$extarr = explode('.', $file['name']);
$ext = array_pop($extarr);
$filename = $material['url'] . '_' . substr(md5(microtime() * time()), 0, rand(20, 10)) . '.' . $ext;
if (copy($file['tmp_name'], DOCROOT . $this->dir . $filename)) {
$base = new Model_Base();
$options = $base->getOptions();
$size = explode(',', $options['upload_size']);
//изменяем картинку
//открываем изображение
$image = Image::factory(DOCROOT . $this->dir . $filename);
//начинаем работу с нужной картинкой. Путь указан от корня приложения
// if(count($size)==2)
// {
// $size = explode(',', $options['upload_size']);
// $image->resize($size[0], $size[1]);
// }
//сохраняем новое изображение
$image->save(NULL, $options['image_quality']);
//первый параметр - путь, имя и формат изображения. Второй - качество изображения
$value = DIRECTORY_SEPARATOR . $this->dir . $filename;
}
}
}
}
} else {
$server_name = Request::parseUrl($value);
if ($server_name != Kohana::$base_url && $server_name != '') {
$ext = explode('.', $value);
$extension = array_pop($ext);
//генерируем имя изображения
$base = new Model_Base();
$extarr = explode('.', $value);
$ext = array_pop($extarr);
$filename = $material['url'] . '_' . substr(md5(microtime() * time()), 0, rand(20, 10)) . '.' . $ext;
if (copy($value, DOCROOT . $this->dir . $filename)) {
//загружаем их к себе
//открываем изображение
$image = Image::factory(DOCROOT . $this->dir . $filename);
//начинаем работу с нужной картинкой. Путь указан от корня приложения
//меняем размер картинки
$image->resize(800, 1000);
//изменение размера по короткой стороне
//сохраняем новое изображение
$image->save();
//первый параметр - путь, имя и формат изображения. Второй - качество изображения
unset($image);
$value = DIRECTORY_SEPARATOR . $this->dir . $filename;
}
} else {
$value = str_replace($server_name, DIRECTORY_SEPARATOR, $value);
}
}
//сохраняем картинку
$insert = DB::insert('images', array('id', 'value'))->values(array('', $value));
$result = $insert->execute();
$insertId = $result[0];
//Добавляем связь материала с папкой
$insert = DB::insert('group_param_values', array('id', 'pid', 'mid', 'value'))->values(array('', $pid, $mid, $insertId))->execute();
if ($insert != NULL) {
return TRUE;
} else {
return FALSE;
}
}
示例11: action_new
public function action_new()
{
$fieldset = array();
$folders = $this->getFolders();
$group = new Model_Material('groups');
$data['groups'] = $group->getTree();
$gid = $this->request->param('id');
if ($gid != NULL) {
$fields = $group->getParams($gid);
foreach ($fields as $field) {
//генерируем код для каждого поля
//если поле - список выбора
if ($field['type'] == 'select') {
$values = $group->getSelectValues($field['id']);
$field['myValues'] = $values;
}
if ($field['type'] == 'photoalbum') {
$base = new Model_Base();
$options = $base->getOptions();
$field['photos_base_path'] = $options['photos_base_path'];
}
if ($field['type'] == 'files') {
$base = new Model_Base();
$options = $base->getOptions();
$field['files_base_path'] = $options['files_base_path'];
}
$fieldset[] = View::factory('admin/fields/' . $field['type'])->bind('data', $field)->bind('folders', $folders)->bind('multiselect', $field['multiselect'])->bind('user', $this->user)->render();
}
$data['fieldset'] = $fieldset;
}
if (isset($_POST['new_material'])) {
//PC::debug($_POST);
//var_dump($_POST);
$res = $group->newMaterial($_POST, $gid, $_FILES);
if ($res) {
Controller::redirect('admin/materials/' . $gid);
} else {
$data['errors'] = $group->getErrors();
}
}
if (isset($_POST['save_selects'])) {
$selects = new Model_Params_Selects();
$values = $_POST;
unset($values['save_selects']);
$selects->saveSelectsValues($values, $_POST['save_selects']);
}
if (isset($_POST['save_param'])) {
$selects = new Model_Selects();
$values = $_POST;
unset($values['save_param']);
$selects->saveSelectsParam($values, $_POST['save_param'], $_FILES);
}
$wpm['status'] = Cookie::get('wpm', FALSE);
$wpm['folder'] = Cookie::get('wpm_folder', '');
$pictures = $this->action_pictures($wpm['folder']);
$this->template->content = View::factory('admin/admMaterials', array('data' => $data, 'folders' => $folders, 'pictures' => $pictures, 'wpm' => $wpm, 'user' => $this->user));
}
示例12: newParam
public function newParam($mid, $pid, $value, $files = array(), $export = FALSE)
{
$materials = new Model_Material('group');
$material = $materials->getMaterial($mid);
/*ONLY FOR EXPORT OPTION!*/
if ($export == TRUE) {
foreach ($value as $val) {
$server_name = Request::parseUrl($val);
if ($server_name != Kohana::$base_url && $server_name != '') {
$info = getimagesize($val);
$ext = image_type_to_extension($info[2]);
//смотрим сколько файлов в текущей папке файтов
//генерируем имя изображения
// $base = new Model_Base();
// $extarr = explode('.', $val);
// $ext = array_pop($extarr);
$filename = $material['url'] . '_' . substr(md5(microtime() * time()), 0, rand(20, 10)) . $ext;
// if(exec("cp ".$val." ".DOCROOT . $this->dir . $filename))
if (copy($val, DOCROOT . $this->dir . $filename)) {
//загружаем их к себе
//открываем изображение
$image = Image::factory(DOCROOT . $this->dir . $filename);
//начинаем работу с нужной картинкой. Путь указан от корня приложения
//меняем размер картинки
// $image->resize(800, 1000); //изменение размера по короткой стороне
//сохраняем новое изображение
$image->save(NULL, 90);
//первый параметр - путь, имя и формат изображения. Второй - качество изображения
unset($image);
$val = DIRECTORY_SEPARATOR . $this->dir . $filename;
}
}
$insert = DB::insert('photoalbum', array('id', 'value'))->values(array('', $val));
$result = $insert->execute();
$paramId = $result[0];
$insert = DB::insert('group_param_values', array('id', 'pid', 'mid', 'value'))->values(array('', $pid, $mid, $paramId))->execute();
}
} else {
for ($i = 0; $i < count($files['photos']['name']); ++$i) {
if ($files['photos']['size'][$i] < 15000000 && $files['photos']['size'][$i] > 100) {
//расширение файла
$ext = explode('.', $files['photos']['name'][$i]);
$extension = array_pop($ext);
//генерируем имя изображения
$base = new Model_Base();
$extarr = explode('.', $files['photos']['name'][$i]);
$ext = array_pop($extarr);
$filename = $material['url'] . '_' . substr(md5(microtime() * time()), 0, rand(20, 10)) . '.' . $ext;
if (copy($files['photos']['tmp_name'][$i], DOCROOT . $this->dir . $filename)) {
$base = new Model_Base();
$options = $base->getOptions();
//изменяем картинку
//открываем изображение
$image = Image::factory(DOCROOT . $this->dir . $filename);
//начинаем работу с нужной картинкой. Путь указан от корня приложения
//меняем размер картинки
$size = explode(',', $options['upload_size']);
if (count($size) == 2) {
$size = explode(',', $options['upload_size']);
$image->resize($size[0], $size[1]);
}
$crop = explode(',', $options['upload_crop']);
if (count($crop) == 2) {
$crop = explode(',', $options['upload_crop']);
$image->crop($crop[0], $crop[1]);
}
//изменение размера по короткой стороне
// $watermark=Image::factory(DOCROOT . '/img/watermark.png'); //берем изображение для водяного знака
//
// $offset_x = $image->width - $watermark->width - 10;
// $offset_y = $image->height - $watermark->height - 10;
//
// $image->watermark($watermark, $offset_x, $offset_y, $opacity = 70);
// var_dump($image);
//сохраняем новое изображение
$image->save(NULL, $options['image_quality']);
//первый параметр - путь, имя и формат изображения. Второй - качество изображения
$insert = DB::insert('photoalbum', array('id', 'value'))->values(array('', DIRECTORY_SEPARATOR . $this->dir . $filename));
$result = $insert->execute();
$paramId = $result[0];
$insert = DB::insert('group_param_values', array('id', 'pid', 'mid', 'value'))->values(array('', $pid, $mid, $paramId))->execute();
}
}
}
}
}
示例13: saveSelectsValues
public function saveSelectsValues($values, $pid)
{
$ord_arr = array();
$o = 0;
foreach ($values as $key => $name) {
++$o;
$ord_arr[$o] = $key;
}
//сначала находим старые значения
$old_vals = DB::select()->from('select_values')->where('pid', '=', $pid)->execute()->as_array();
$old_values = array();
foreach ($old_vals as $key => $value) {
$old_values[$value['id']] = $value['id'];
$old_values2[$value['id']] = $value['value'];
}
//удаляем только те значения, которые не пришли
$del_arr = array_diff($old_values, $ord_arr);
$new_arr = array_diff($ord_arr, $old_values);
$upd_arr = array_diff($ord_arr, $del_arr);
$upd_arr = array_diff($upd_arr, $new_arr);
//добавляем если есть значения
if (!empty($new_arr)) {
foreach ($new_arr as $ord => $value) {
//добавляем новое значение
$insert = DB::insert('select_values', array('id', 'pid', 'value', 'multiselect', 'count', 'ordering'))->values(array('', $pid, $values[$value], '1', '', $ord))->execute();
}
}
// //сохраняем новый порядок для фоток
foreach ($upd_arr as $ord => $value) {
$selects = ORM::factory('SelectsValues', array('id' => $value));
$selects->value = $values[$value];
$selects->ordering = $ord;
$selects->save();
unset($selects);
}
$base = new Model_Base();
$options = $base->getOptions();
foreach ($del_arr as $id => $value) {
//находим все связи в рамках данного параметра
$q = 'SELECT a.* FROM group_param_values a, `select` b WHERE a.pid = ' . $pid . ' AND a.value = b.id AND b.value = \'' . $old_values2[$id] . '\'';
$result = DB::query(Database::SELECT, $q)->execute();
foreach ($result as $val) {
//удаляем значения из таблицы select
$res = DB::delete('select')->where('id', '=', $val['value'])->execute();
//удаляем связи
$res = DB::delete('group_param_values')->where('id', '=', $val['id'])->and_where('pid', '=', $pid)->execute();
}
$res = DB::delete('select_values')->where('value', '=', $old_values2[$id])->and_where('pid', '=', $pid)->execute();
// //удаляем связи
// $result = DB::delete('group_param_values')
// ->where('value', '=', $key)
// ->and_where('pid', '=', $pid)
// ->execute();
//
// $result = DB::delete('photoalbum')
// ->where('id', '=', $key)
// ->execute();
}
}
示例14: action_finish
public function action_finish()
{
$email_config = Kohana::$config->load("email");
$owner_emails = array("lexa4ok@li.ru");
$owner_pushall_ids = array(8189);
$owner_icq_uins = array(673151743);
$model_base = new Model_Base();
$options = $model_base->getOptions();
$url = URL::base() . 'admin/orders/' . $_POST["order_id"];
// Ссылка на заказ
$sitename = $options['sitename'];
// Название сайта
$icon_url = URL::base() . '/img/pushall_icon.jpg';
$title = "Вам поступил заказ в интернет-магазине \"{$sitename}\"!";
$text = "Кликните для выяснения деталей.";
PC::debug($sitename);
$pushall_options = array("type" => 'unicast', "title" => $title, "text" => $text, "url" => $url, "icon" => $icon_url, "priority" => 1);
// --- Обновление БД -----------------------------------------------------------------------
// Регистрация пользователя
$model_user = new Model_User();
$email = Arr::get($_POST, 'email');
$user = $model_user->getUser($email);
// Пользователь не зарегистрирован
if (!$user) {
$user_data["username"] = $email;
$user_data["pass"] = $model_user->generate_pass();
$user_data["role"] = 4;
$user_data["name"] = Arr::get($_POST, 'name');
$user_data["phone"] = Arr::get($_POST, 'phone');
$add_user_id = $model_user->addUser($user_data);
$user = $model_user->getUser($email);
}
// Регистрация заказа
$order_params = array("name", "phone", "email", "order_id", "delivery_type", "street", "house", "apartment", "access", "floor", "date", "delivery_time", "delivery_point", "comment", "payment_type", "payment_comment", "user_id");
$order_data = array();
foreach ($order_params as $param) {
$order_data[$param] = Arr::get($_POST, $param);
}
$order_data["user_id"] = $user['id'];
$model_orders = new Model_Orders();
$model_orders->finishOrder($order_data);
$model_email = new Model_Email();
$model_email->addSubscriber($order_data["email"], $order_data["name"]);
// --- /Обновление БД ----------------------------------------------------------------------
// --- Отправка уведомлений ----------------------------------------------------------------
include APPPATH . '/classes/Pushes.class.php';
$pushes = new Pushes();
// Уведомление в браузер
foreach ($owner_pushall_ids as $owner_pushall_id) {
$pushes->pushall_send(array_merge($pushall_options, array("uid" => $owner_pushall_id)), 'get');
}
// Уведомление в аську
foreach ($owner_icq_uins as $owner_icq_uin) {
$pushes->icq_send($owner_icq_uin, "Вам поступил заказ в интернет-магазине!\n\tПодробнее: " . $url);
}
// Отправка почты
//$subject = 'Поступила заявка с сайта ' . $sitename . ' от ' .$order_data['name'];
$subject = 'Поступила заявка с сайта ' . '"' . $sitename . '"';
$from = $email_config['options']['username'];
$message = '<h2>Новая заявка</h2>';
$message .= 'Отправитель: <b>' . $order_data['name'] . ', </b><br>';
$message .= 'Тел: <b>' . $order_data['phone'] . ', </b><br>';
$message .= '<em>Отправлено: ' . date("d.m.Y H:i:s") . '</em>';
$message .= '<p><a href="' . $url . '">Подробнее</a></p>';
foreach ($owner_emails as $owner_email) {
$pushes->mail_send($owner_email, $from, $subject, $message);
}
$model = array("order_id" => $order_data["order_id"]);
// Подключение шаблона
$this->set_template('widgets/w_success_ordering.php')->render($model)->body();
// --- /Отправка уведомлений ---------------------------------------------------------------
}
示例15: before
public function before()
{
// Выполняем функцию родительского класса
parent::before();
$base = new Model_Base();
$config = Kohana::$config->load('main')->site;
$positions = Kohana::$config->load('main')->positions;
$options = $base->getOptions();
$auth = Auth::instance();
if (isset($options['work']) && $options['work'] == 'TRUE' && $auth->logged_in('admin') == 0) {
$this->template = View::factory('cap');
}
$this->template->title = $options['title'];
$this->template->description = $options['description'];
$this->template->keywords = $options['keywords'];
$this->template->page_title = null;
$this->template->links = array();
// $cart = Request::factory("widgets/");
$header = Request::factory('widgets/header/index')->execute();
// ->bind('cart', $cart);
$footer = Request::factory('widgets/footer/index')->execute();
foreach ($positions as $key => $value) {
$this->template->{$key} = $value;
}
$this->template->header = $header;
$this->template->footer = $footer;
if (isset($_GET['login'])) {
//активируем пользователя
$vData = $_GET;
$validation = Validation::factory($vData);
$validation->rule('username', 'not_empty');
$validation->rule('username', 'min_length', array(':value', '2'));
$validation->rule('username', 'max_length', array(':value', '250'));
$validation->rule('password', 'not_empty');
$validation->rule('password', 'min_length', array(':value', '6'));
$validation->rule('password', 'max_length', array(':value', '50'));
if (!$validation->check()) {
$errors[] = $validation->errors('registrationErrors');
} else {
$auth = Auth::instance();
$username = Arr::get($_GET, 'username', '');
$password = Arr::get($_GET, 'password', '');
if ($auth->login($username, $password)) {
Controller::redirect('/user');
} else {
$errors[] = 'Не верный логин или пароль.';
}
}
}
if (isset($_GET['site_version'])) {
if ($_GET['site_version'] == 'standart') {
Cookie::set('site_version', 'standart');
} else {
Cookie::set('site_version', 'adaptive');
}
}
$site_version = Cookie::get('site_version', 'adaptive');
//проверка редиректов
$gid = 46;
$materials = new Model_Material('group');
$redirects = $materials->getMaterials($gid, 1000, 0);
$url = Request::detect_uri();
foreach ($redirects as $redirect) {
if ($redirect['name'] == DIRECTORY_SEPARATOR . substr($url, 1)) {
$fields = $materials->getFields2($redirect['id'], TRUE);
Controller::redirect(Kohana::$base_url . substr($fields['to'], 1), 301);
}
}
$auth = Request::factory('widgets/auth/')->execute();
$this->template->site_version = $site_version;
$this->template->auth = $auth;
$this->template->styles = array();
$this->template->scripts = $config['scripts'];
}