/** * Show and process config category form * * @param void * @return null */ function update_category() { $category = ConfigCategories::findById(get_id()); if (!$category instanceof ConfigCategory) { flash_error(lang('config category dnx')); $this->redirectToReferer(get_url('administration')); } // if if ($category->isEmpty()) { flash_error(lang('config category is empty')); $this->redirectToReferer(get_url('administration')); } // if $options = $category->getOptions(false); $categories = ConfigCategories::getAll(false); tpl_assign('category', $category); tpl_assign('options', $options); tpl_assign('config_categories', $categories); $submitted_values = array_var($_POST, 'options'); if (is_array($submitted_values)) { foreach ($options as $option) { $new_value = array_var($submitted_values, $option->getName()); if (is_null($new_value) || $new_value == $option->getValue()) { continue; } $option->setValue($new_value); $option->save(); } // foreach flash_success(lang('success update config category', $category->getDisplayName())); $this->redirectTo('administration', 'configuration'); } // if $this->setSidebar(get_template_path('update_category_sidebar', 'config')); }
/** * Show invoicing settings panel * * @param void * @return null */ function index() { require_once INVOICING_MODULE_PATH . '/models/InvoicePdfGenerator.class.php'; $paper_formats = array(PAPER_FORMAT_A4, PAPER_FORMAT_A3, PAPER_FORMAT_A5, PAPER_FORMAT_LETTER, PAPER_FORMAT_LEGAL); $paper_orientations = array(PAPER_ORIENTATION_PORTRAIT, PAPER_ORIENTATION_LANDSCAPE); $pdf_settings_data = $this->request->post('pdf_settings'); if (!is_array($pdf_settings_data)) { $pdf_settings_data = array('paper_format' => ConfigOptions::getValue('invoicing_pdf_paper_format'), 'paper_orientation' => ConfigOptions::getValue('invoicing_pdf_paper_orientation'), 'header_text_color' => ConfigOptions::getValue('invoicing_pdf_header_text_color'), 'page_text_color' => ConfigOptions::getValue('invoicing_pdf_page_text_color'), 'border_color' => ConfigOptions::getValue('invoicing_pdf_border_color'), 'background_color' => ConfigOptions::getValue('invoicing_pdf_background_color')); } // if if ($this->request->isSubmitted()) { db_begin_work(); ConfigOptions::setValue('invoicing_pdf_paper_format', array_var($pdf_settings_data, 'paper_format', 'A4')); ConfigOptions::setValue('invoicing_pdf_paper_orientation', array_var($pdf_settings_data, 'paper_orientation', 'Portrait')); ConfigOptions::setValue('invoicing_pdf_header_text_color', array_var($pdf_settings_data, 'header_text_color', '000000')); ConfigOptions::setValue('invoicing_pdf_page_text_color', array_var($pdf_settings_data, 'page_text_color', '000000')); ConfigOptions::setValue('invoicing_pdf_border_color', array_var($pdf_settings_data, 'border_color', '000000')); ConfigOptions::setValue('invoicing_pdf_background_color', array_var($pdf_settings_data, 'background_color', 'FFFFFF')); db_commit(); flash_success('Successfully modified PDF settings'); $this->redirectTo('admin_invoicing_pdf'); } // if $this->smarty->assign(array('paper_formats' => $paper_formats, 'paper_orientations' => $paper_orientations, 'pdf_settings_data' => $pdf_settings_data)); }
/** * Delete version * * @param void * @return null */ function delete() { if ($this->request->isSubmitted()) { if (!$this->active_page_version->canDelete($this->logged_user)) { $this->httpError(HTTP_ERR_FORBIDDEN); } // if $delete = $this->active_page_version->delete(); if ($delete && !is_error($delete)) { if ($this->request->isAsyncCall()) { $this->httpOk(); } else { flash_success('Version #:version has been deleted', array('version' => $this->active_page_version->getVersion())); } // if } else { if ($this->request->isAsyncCall()) { $this->httpError(HTTP_ERR_OPERATION_FAILED); } else { flash_success('Failed to delete version #:version', array('version' => $this->active_page_version->getVersion())); } // if } // if $this->redirectToUrl($this->active_page->getViewUrl()); } else { $this->httpError(HTTP_ERR_BAD_REQUEST); } // if }
/** * Settings form * * @param void * @return null */ function index() { js_assign('test_svn_url', assemble_url('admin_source_test_svn')); $source_data = $this->request->post('source'); if (!is_foreachable($source_data)) { $source_data = array('svn_path' => ConfigOptions::getValue('source_svn_path'), 'svn_config_dir' => ConfigOptions::getValue('source_svn_config_dir'), 'source_svn_use_output_redirect' => ConfigOptions::getValue('source_svn_use_output_redirect'), 'source_svn_trust_server_cert' => ConfigOptions::getValue('source_svn_trust_server_cert')); } // if if ($this->request->isSubmitted()) { $svn_path = array_var($source_data, 'svn_path', null); $svn_path = $svn_path ? with_slash($svn_path) : null; ConfigOptions::setValue('source_svn_path', $svn_path); $svn_config_dir = array_var($source_data, 'svn_config_dir') == '' ? null : array_var($source_data, 'svn_config_dir'); ConfigOptions::setValue('source_svn_config_dir', $svn_config_dir); $svn_use_output_redirection = array_var($source_data, 'source_svn_use_output_redirect') == "1"; ConfigOptions::setValue('source_svn_use_output_redirect', $svn_use_output_redirection); $svn_trust_server_certificate = array_var($source_data, 'source_svn_trust_server_cert') == "1"; ConfigOptions::setValue('source_svn_trust_server_cert', $svn_trust_server_certificate); flash_success("Source settings successfully saved"); $this->redirectTo('admin_source'); } // if if (!RepositoryEngine::executableExists()) { $this->wireframe->addPageMessage(lang("SVN executable not found. You won't be able to use this module"), 'error'); } // if $this->smarty->assign(array('source_data' => $source_data)); }
function add() { $pt = DB::escape(array_var($_GET, 'pt')); $t = DB::escape(array_var($_GET, 't')); $dep = ProjectTaskDependencies::findOne(array('conditions' => "`previous_task_id` = {$pt} AND `task_id` = {$t}")); if (!$dep instanceof ProjectTaskDependency) { try { DB::beginWork(); $dep = new ProjectTaskDependency(); $dep->setPreviousTaskId(array_var($_GET, 'pt')); $dep->setTaskId(array_var($_GET, 't')); $dep->save(); DB::commit(); } catch (Exception $e) { flash_error($e->getMessage()); DB::rollback(); } } flash_success(lang('success add task dependency')); $reload = array_var($_GET, 'reload', true); if ($reload) { ajx_current("reload"); } else { ajx_current("empty"); } }
/** * Show pages * * @param string $type */ public function index($action = '', $subaction = NULL) { new Menu_Tabs('pages', Url::gear('pages')); switch ($action) { case 'create': if (!page_access('pages create')) { return; } $form = new Form('Pages.createdit'); if ($result = $form->result()) { $page = new Pages_Object(); $page->object($result); $page->aid = cogear()->user->id; $page->created_date = time(); $page->last_update = time(); $page->save(); flash_success(t('New page has been successfully added!', 'Pages')); redirect($page->getUrl()); } append('content', $form->render()); break; case 'show': $this->showPage($subaction); break; case 'edit': $page = new Pages_Object(); $page->where('id', intval($subaction)); if ($page->find()) { if (access('pages edit_all') or $cogear->user->id == $page->aid) { $form = new Form('Pages.createdit'); $form->init(); if (access('pages delete')) { $form->addElement('delete', array('label' => t('Delete'), 'type' => 'submit')); } $form->setValues($page->object()); if ($result = $form->result()) { if ($result->delete) { $page->delete(); redirect(Url::gear('pages')); } $page->object()->mix($result); $page->last_update = time(); $page->update(); $link = $page->getUrl(); success(t('Page has been update. You can visit it by link <a href="%s">%s</a>', 'Pages', $link, $link)); //redirect($page->getUrl()); } $form->elements->submit->setValue(t('Update')); append('content', $form->render()); } else { return _403(); } } else { return _404(); } break; default: $this->showPages($action); } }
function enable_all_context_help() { $context_help_options = UserWsConfigOptions::getOptionsByCategoryName('context help', true); foreach ($context_help_options as $option) { set_user_config_option($option->getName(), true, logged_user()->getId()); } ajx_current("empty"); flash_success(lang('success enable all context help')); }
/** * Настройки */ public function admin_action() { $form = new Form(array('#name' => 'admin.parser', 'title' => array('label' => t('Настройки')), 'nl2br' => array('type' => 'checkbox', 'label' => t('Автоматическая обработка строк'), 'value' => config('Parser.nl2br')), 'save' => array())); if ($result = $form->result()) { $this->set('Parser.nl2br', $result->nl2br); flash_success(t('Настройки сохранены!')); reload(); } $form->show(); }
function show_context_help() { $show_context_help = array_var($_GET, 'show_context_help'); set_user_config_option('show_context_help', $show_context_help, logged_user()->getId()); ajx_current("empty"); if ($show_context_help == 'until_close') { flash_success(lang('success enable context help')); } else { flash_success(lang('success disable context help')); } }
/** * Панель управления */ public function admin_action() { $this->theme->hookAdminMenu(); $form = new Form(array('#name' => 'admin.bootstrap', 'title' => array('label' => icon('wrench') . ' ' . t('Настройки')), 'theme' => array('type' => 'select', 'label' => t('Выберите тему'), 'values' => array('default' => t('Стандартная'), 'amelia' => 'Amelia', 'cerulean' => 'Cerulean', 'cosmo' => 'Cosmo', 'cyborg' => 'Cyborg', 'journal' => 'Journal', 'readable' => 'Readable', 'simplex' => 'Simplex', 'slate' => 'Slate', 'spacelab' => 'Spacelab', 'spruce' => 'Spruce', 'superhero' => 'Superhero', 'united' => 'United'), 'value' => config('bootstrap.theme', 'default')), 'save' => array())); if ($result = $form->result()) { $this->set('bootstrap.theme', $result->theme); flash_success(t('Настройки сохранены успешно!')); reload(); } $form->show(); }
function delete_state() { $this->setTemplate(get_template_path('back')); ajx_current("empty"); try { $query = "DELETE FROM `" . TABLE_PREFIX . "guistate` WHERE `contact_id` = " . DB::escape(logged_user()->getId()); DB::executeAll($query); flash_success(lang("success reset gui state")); } catch (Exception $e) { flash_error($e->getMessage()); } }
/** * Reset access data * * @param string $action */ public function index($action = NULL) { if ($this->user->id != 1) { back(); } switch ($action) { case 'reset': $this->clear(); flash_success(t('Access rights have been reseted successfully!', 'Access')); back(); break; } }
/** * Delete specific user * * @access public * @param void * @return null */ function delete() { $this->setTemplate('del_user'); $user = Users::findById(get_id()); if (!$user instanceof User) { flash_error(lang('user dnx')); $this->redirectTo('administration'); } // if if (!$user->canDelete(logged_user())) { flash_error(lang('no access permissions')); $this->redirectToReferer(get_url('dashboard')); } // if $delete_data = array_var($_POST, 'deleteUser'); tpl_assign('user', $user); tpl_assign('delete_data', $delete_data); if (!is_array($delete_data)) { $delete_data = array('really' => 0, 'password' => ''); // array tpl_assign('delete_data', $delete_data); } else { if ($delete_data['really'] == 1) { $password = $delete_data['password']; if (trim($password) == '') { tpl_assign('error', new Error(lang('password value missing'))); return $this->render(); } if (!logged_user()->isValidPassword($password)) { tpl_assign('error', new Error(lang('invalid login data'))); return $this->render(); } try { DB::beginWork(); $user->delete(); ApplicationLogs::createLog($user, null, ApplicationLogs::ACTION_DELETE); DB::commit(); flash_success(lang('success delete user', $user->getDisplayName())); } catch (Exception $e) { DB::rollback(); flash_error(lang('error delete user')); } // try $this->redirectToUrl($user->getCompany()->getViewUrl()); } else { flash_error(lang('error delete user')); $this->redirectToUrl($user->getCompany()->getViewUrl()); } } }
function __construct($request) { parent::__construct($request); $three_o_four_data = $this->request->post('three_o_four'); if (!is_array($three_o_four_data)) { $three_o_four_data = array('etag_enabled' => ConfigOptions::getValue('three_o_four_etag_enabled'), 'response_cache_enabled' => ConfigOptions::getValue('three_o_four_response_cache_enabled')); } // if $this->smarty->assign(array('three_o_four' => $three_o_four_data)); if ($this->request->isSubmitted()) { ConfigOptions::setValue('three_o_four_etag_enabled', array_var($three_o_four_data, 'etag_enabled', null)); ConfigOptions::setValue('three_o_four_response_cache_enabled', array_var($three_o_four_data, 'response_cache_enabled', null)); flash_success('Cache settings have been updated'); $this->redirectTo('three_o_four_settings'); } }
/** * Main Backup page * */ function index() { $backup_data = $this->request->post('backup'); if (!is_array($backup_data)) { $backup_data = array('enabled' => $this->backup_enabled, 'how_many_backups' => $this->how_many_backups); } // if $this->smarty->assign(array('backup_data' => $backup_data, 'how_many_values' => array(3, 5, 10, 15, 30, 60))); if ($this->request->isSubmitted()) { ConfigOptions::setValue('backup_enabled', (bool) array_var($backup_data, 'enabled', 0)); $how_many = (int) array_var($backup_data, 'how_many_backups', 5); ConfigOptions::setValue('backup_how_many_backups', $how_many < 0 ? 5 : $how_many); flash_success('Backup settings have been updated'); $this->redirectTo('admin'); } // if }
/** * PublicSubmitAdmin index page * */ function index() { $public_submit_data = $this->request->post('public_submit'); if (!is_array($public_submit_data)) { $public_submit_data = array('project_id' => ConfigOptions::getValue('public_submit_default_project'), 'enabled' => ConfigOptions::getValue('public_submit_enabled'), 'captcha' => ConfigOptions::getValue('public_submit_enable_captcha')); } // if $this->smarty->assign(array('public_submit_data' => $public_submit_data)); if ($this->request->isSubmitted()) { ConfigOptions::setValue('public_submit_default_project', array_var($public_submit_data, 'project_id', null)); ConfigOptions::setValue('public_submit_enabled', array_var($public_submit_data, 'enabled', null)); ConfigOptions::setValue('public_submit_enable_captcha', array_var($public_submit_data, 'captcha', null)); flash_success('Public Submit settings have been updated'); $this->redirectTo('admin_settings_public_submit'); } // if }
/** * Index page * * @param void * @return null */ function index() { js_assign('invoicing_precision', INVOICE_PRECISION); $this->wireframe->addBreadCrumb(lang('Invoicing'), assemble_url('admin')); $this->wireframe->addBreadCrumb(lang('Number Generator'), assemble_url('admin_invoicing_number')); // prepare javascript variables and counters for preview $pattern = Invoices::getInvoiceNumberGeneratorPattern(); list($total_counter, $year_counter, $month_counter) = Invoices::getDateInvoiceCounters(); $total_counter++; $year_counter++; $month_counter++; $variable_year = date('Y'); $variable_month = date('n'); $variable_month_short = date('M'); $variable_month_long = date('F'); js_assign('pattern_variables', array(INVOICE_VARIABLE_CURRENT_YEAR => $variable_year, INVOICE_VARIABLE_CURRENT_MONTH => $variable_month, INVOICE_VARIABLE_CURRENT_MONTH_SHORT => $variable_month_short, INVOICE_VARIABLE_CURRENT_MONTH_LONG => $variable_month_long, INVOICE_NUMBER_COUNTER_TOTAL => $total_counter, INVOICE_NUMBER_COUNTER_YEAR => $year_counter, INVOICE_NUMBER_COUNTER_MONTH => $month_counter)); $generator_data = $this->request->post('generator'); if (!is_foreachable($generator_data)) { $generator_data = array('pattern' => Invoices::getinvoiceNumberGeneratorPattern()); } // if $this->smarty->assign(array('generator_data' => $generator_data)); if ($this->request->isSubmitted()) { $errors = new ValidationErrors(); $posted_pattern = array_var($generator_data, 'pattern', null); if (!trim($posted_pattern)) { $errors->addError(lang('Pattern is required'), 'pattern'); } // if if (strpos($posted_pattern, INVOICE_NUMBER_COUNTER_TOTAL) === false && strpos($posted_pattern, INVOICE_NUMBER_COUNTER_YEAR) === false && strpos($posted_pattern, INVOICE_NUMBER_COUNTER_MONTH) === false) { $errors->addError(lang('One of invoice counters is required (:total, :year, :month)', array('total' => INVOICE_NUMBER_COUNTER_TOTAL, 'year' => INVOICE_NUMBER_COUNTER_YEAR, 'month' => INVOICE_NUMBER_COUNTER_MONTH)), 'pattern'); } // if if ($errors->hasErrors()) { $this->smarty->assign(array('errors' => $errors)); } else { Invoices::setInvoiceNumberGeneratorPattern($posted_pattern); flash_success('Pattern for invoice number generator is saved'); $this->redirectTo('admin'); } // if } // if }
/** * Show comment post form * * @param object $Page */ public function showForm($Page) { if (access('comments post')) { $form = new Form('Comments.add'); if ($result = $form->result()) { $comment = new Comments_Object(); $comment->pid = $Page->id; $comment->aid = $this->user->id; $comment->created_date = time(); $comment->body = $result->body; $comment->ip = $this->session->ip; if ($comment->save()) { $Page->comments = $this->db->where('pid', $Page->id)->count('comments'); $Page->save(); flash_success(t('Your comment has been successfully posted!')); redirect($Page->getUrl()); } } $form->show(); } }
/** * Show and process manage categories page * * @param void * @return null */ function index() { $category_definitions = array(); event_trigger('on_master_categories', array(&$category_definitions)); $this->smarty->assign('category_definitions', $category_definitions); if ($this->request->isSubmitted()) { if (is_foreachable($category_definitions)) { foreach ($category_definitions as $category_definition) { $value = $this->request->post($category_definition['name']); if (!is_array($value) || count($value) < 1) { $value = array(lang('General')); } // if ConfigOptions::setValue($category_definition['name'], $value); } // foreach } // if flash_success('Master categories have been updated'); $this->redirectTo('admin'); } // if }
/** * Delete locale logo * * @param void * @return null */ function delete_logo() { $locale = I18nLocales::findById(get_id()); if (!$locale instanceof I18nLocale) { flash_error(lang('locale dnx')); $this->redirectToReferer(get_url('i18n', 'index')); } // if if (!$locale->canEdit(logged_user())) { flash_error(lang('no access permissions')); $this->redirectTo('i18n', 'index'); } // if try { DB::beginWork(); $locale->deleteLogo(); $locale->save(); ApplicationLogs::createLog($locale, 0, ApplicationLogs::ACTION_EDIT); DB::commit(); flash_success(lang('success delete logo')); } catch (Exception $e) { DB::rollback(); flash_error(lang('error delete logo', $e)); } // try $this->redirectToUrl($locale->getEditLogoUrl()); }
/** * User Регистрация */ public function register_action($code = NULL) { $this->theme->template('User/templates/login'); if (!config('user.register.active', FALSE)) { return error(t('Регистрация отключена администрацией сайта.')); } if ($this->isLogged()) { return error('Вы уже авторизированы!'); } $this->showMenu(); if ($code) { $user = new User(); $user->hash = $code; if ($user->find()) { $form = new Form('User/forms/verify'); $form->email->setValue($user->email); if ($result = $form->result()) { $user->object()->extend($result); $result->realname && ($user->name = $result->realname); $user->hashPassword(); $user->hash = $this->secure->genHash($user->password); $user->reg_date = time(); $user->last_visit = time(); if ($user->save()) { event('user.register', $user); if ($user->login()) { flash_success(t('Регистрация завершена!')); redirect($user->getLink()); } } } $form->show(); } else { error(t('Регистрационный код не найден.')); } } else { $form = new Form('User/forms/register'); if ($result = $form->result()) { $user = new User(); $user->email = $result->email; $user->find(); $user->hash = $this->secure->genHash(date('H d.m.Y') . $this->session->get('ip') . $result->email); if (config('user.register.verification', TRUE)) { $verify_link = l('/user/register/' . $user->hash, TRUE); $mail = new Mail(array('name' => 'register.verify', 'subject' => t('Регистрация на сайте %s', SITE_URL), 'body' => t('Вы успешно зарегистрировались на сайте http://%s. <br/> Пожалуйста, перейдите по ссылке ниже, для того чтобы подтвердить данный почтовый ящик:<p> <a href="%s">%s</a>', SITE_URL, $verify_link, $verify_link))); $mail->to($user->email); if ($mail->send()) { $user->save(); event('user.confirmation', $user); success(t('Письмо с подтвержденим регистрации было отправлено на почтовый адрес <b>%s</b>. Следуйте инструкциям.', $user->email)); } } else { $user->save(); redirect(l('/user/register/' . $user->hash)); } } else { $form->show(); } } }
/** * Delete specific project form * * @param void * @return null */ function delete() { $project_form = ProjectForms::findById(get_id()); if (!$project_form instanceof ProjectForm) { flash_error(lang('project form dnx')); if (ProjectForm::canAdd(logged_user(), active_project())) { $this->redirectTo('form'); } else { $this->redirectToUrl(active_project()->getOverviewUrl()); } // if } // if if (!$project_form->canDelete(logged_user())) { flash_error(lang('no access permissions')); if (ProjectForm::canAdd(logged_user(), active_project())) { $this->redirectTo('form'); } else { $this->redirectToUrl(active_project()->getOverviewUrl()); } // if } // if if ($project_form->delete()) { ApplicationLogs::createLog($project_form, active_project(), ApplicationLogs::ACTION_DELETE, true); flash_success(lang('success delete project form', $project_form->getName())); } else { flash_error(lang('error delete project form')); } // if $this->redirectTo('form'); }
/** * Delete post * * @param type $cid */ public function delete_action($post_id) { $post = new Post(); $post->id = $post_id; if ($post->find() && access('Post.delete.all')) { if ($post->delete()) { $message = t('Пост удалён'); if (Ajax::is()) { $data['success'] = TRUE; $data['messages'] = array(array('type' => 'success', 'body' => $message)); $data['redirect'] = server('referer'); $ajax = new Ajax(); $ajax->json($data); } $post = new Post(); $post->id = $post->post_id; flash_success($message); back(-2); } } }
function update_unset_billing_values() { ajx_current("empty"); if (!logged_user()->isAdministrator()) { flash_error(lang("no access permissions")); return; } try { DB::beginWork(); $count = Timeslots::updateBillingValues(); DB::commit(); flash_success(lang("success update billing values", $count)); } catch (Exception $e) { DB::rollback(); flash_error($e->getMessage()); } }
/** * Hide welcome info message * * @param void * @return null */ function hide_welcome_info() { if (!logged_user()->isAdministrator(owner_company())) { flash_error(lang('no access permissions')); $this->redirectTo('dashboard'); } // if try { owner_company()->setHideWelcomeInfo(true); owner_company()->save(); flash_success(lang('success hide welcome info')); } catch (Exception $e) { flash_error(lang('error hide welcome info')); } // try $this->redirectTo('dashboard'); }
/** * Open specific milestone * * @access public * @param void * @return null */ function open() { $milestone = ProjectMilestones::findById(get_id()); if (!$milestone instanceof ProjectMilestone) { flash_error(lang('milestone dnx')); $this->redirectTo('milestone'); } // if if (!$milestone->canChangeStatus(logged_user())) { flash_error(lang('no access permissions')); $this->redirectToReferer(get_url('milestone')); } // if try { $milestone->setCompletedOn(null); $milestone->setCompletedById(0); DB::beginWork(); $milestone->save(); ApplicationLogs::createLog($milestone, active_project(), ApplicationLogs::ACTION_OPEN); DB::commit(); flash_success(lang('success open milestone', $milestone->getName())); } catch (Exception $e) { DB::rollback(); flash_error(lang('error open milestone')); } // try $this->redirectToReferer($milestone->getViewUrl()); }
/** * Delete specific comment * * @param void * @return null */ function delete() { $comment = Comments::findById(get_id()); if (!$comment instanceof Comment) { flash_error(lang('comment dnx')); ajx_current("empty"); return; } // if $object = $comment->getRelObject(); if (!$object instanceof ContentDataObject) { flash_error(lang('object dnx')); ajx_current("empty"); return; } // if if (trim($object->getObjectUrl())) { $redirect_to = $object->getObjectUrl(); } if (!$comment->canDelete(logged_user())) { flash_error(lang('no access permissions')); ajx_current("empty"); return; } // if try { DB::beginWork(); $comment->trash(); ApplicationLogs::createLog($comment, ApplicationLogs::ACTION_TRASH); DB::commit(); flash_success(lang('success delete comment')); ajx_current("reload"); } catch (Exception $e) { DB::rollback(); flash_error(lang('error delete comment')); ajx_current("empty"); } // try }
/** * Управление элементами отдельного меню * * @param mixed $id */ public function items_action($menu_id, $id = NULL) { $this->theme->hookAdminMenu(); $this->hookAdminMenu(); if ($menu = menu($menu_id)) { append('content', '<div class="page-header"><h2>' . $menu->name . '</h2></div>'); } else { return event('empty'); } $pills = new Menu_Pills(array('name' => 'admin.menu.items', 'render' => FALSE, 'elements' => array(array('label' => icon('list') . ' ' . t('Список пунктов'), 'link' => l('/admin/theme/menu/' . $menu_id . '/items')), array('label' => icon('plus') . ' ' . t('Добавить'), 'link' => l('/admin/theme/menu/' . $menu_id . '/item/add'), 'class' => 'fl_r'), array('label' => icon('pencil') . ' ' . t('Редактировать'), 'link' => l('/admin/theme/menu/' . $menu_id . '/item/' . $this->router->getSegments(5)), 'access' => check_route('admin/theme/menu/\\d+/item/\\d+'), 'class' => 'fl_r')))); append('content', $pills->render()); if (NULL === $id) { $handler = new Menu_Db_Item(); $handler->menu_id = $menu->id; if ($items = $handler->findAll()) { $tree = new Db_Tree_DDList(array('items' => $items, 'saveUri' => l('/admin/theme/menu/ajax/saveItemsTree/'))); } else { return event('empty'); } } else { $form = new Form('Menu/forms/item'); $item = new Menu_Db_Item(); if ($id != 'add' && is_numeric($id)) { $item->id = $id; if ($item->find()) { $form->object($item); } else { return event('empty'); } } else { $form->remove('delete'); $item->menu_id = $menu_id; } $form->pid->setValues($item->getSelectValues('label')); if ($result = $form->result()) { if ($result->delete && $item->delete()) { flash_success(t('Элемент меню <b>«%s»</b> был удалён!', $item->label), '', 'growl'); redirect(l('admin/theme/menu/' . $menu_id . '/items')); } $item->object()->extend($result); if ($id !== 'add') { $item->branching(); } if ($item->save()) { flash_success($id == 'add' ? t('Элемент меню <b>«%s»</b> успешно создан!', $item->label) : t('Элемент меню <b>«%s»</b> успешно отредактирован!', $item->label), '', 'growl'); redirect(l('admin/theme/menu/' . $menu_id . '/items')); } } $form->show(); } }
/** * Default dispatcher * * @param string $action * @param string $subaction */ public function index($action = '') { template('Install/templates/header')->show('info'); new Menu_Tabs(array('name' => 'install', 'render' => 'content', 'elements' => array(array('label' => t('1. Начало'), 'link' => '', 'active' => check_route('install$')), array('label' => t('2. Проверка'), 'link' => '', 'active' => check_route('check$')), array('label' => t('3. Настройки'), 'link' => '', 'active' => check_route('site$')), array('label' => t('4. Завершение'), 'link' => '', 'active' => check_route('finish$'))))); switch ($action) { case 'check': $tpl = new Template('Install/templates/check'); $tpl->show(); break; case 'site': append('content', '<p class="alert alert-info">' . t('Определите базовые настройки сайта.') . '</p>'); $form = new Form('Install/forms/site'); if ($result = $form->result()) { $site = new Config(SITE . DS . 'site' . EXT); $config = new Config(SITE . DS . 'config' . EXT); $config->site->name = $result->sitename; $site->key or $site->key = md5(md5(time()) + time() + $site->site->name); $result->port or $result->port = 3306; $site->database = array('driver' => config('database.driver'), 'host' => $result->host, 'base' => $result->base, 'user' => $result->user, 'pass' => $result->pass, 'port' => $result->port, 'prefix' => $result->prefix); $db = Db::factory('temp', $site->database); if (!$db->connect()) { if ($result->create_db && $db->connect(FALSE)) { $db->query("CREATE DATABASE `{$site->database->base}` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;\n CREATE USER '{$site->database->user}'@'{$site->database->host}' IDENTIFIED BY '{$site->database->pass}';\n GRANT ALL ON `{$site->database->base}`.* TO '{$site->database->user}'@'localhost';\n FLUSH PRIVILEGES;"); } $db->connect(); } if ($db->is_connected) { $site->store(TRUE); $config->store(TRUE); if ($db->import($this->dir . DS . 'cogear.sql', $site->database->prefix)) { redirect(l('/install/finish')); } } else { error(t("Не удалось установить подключение к базе данных."), '', 'content'); } } else { $form->save->label = t('Попробуйте снова'); } $form->show(); break; case 'finish': $tpl = new Template('Install/templates/finish'); $tpl->show(); break; case 'done': // $site = new Config(SITE . DS . 'site' . EXT); // $site->store(TRUE); flash_success(t('Ваш сайт успешно настроен! <p> Данные для входа – логин <b>admin</b> и пароль <b>password</b>.'), '', 'info'); $this->disable(); redirect(); break; default: case 'welcome': $tpl = new Template('Install/templates/welcome'); $tpl->show(); } }
/** * @author Ignacio Vazquez <elpepe.uy at gmail dot com> * Handle quick add submit */ function quick_add() { if (array_var($_GET, 'current') == 'overview-panel') { ajx_current("reload"); }else { ajx_current("empty"); } //---------- REQUEST PARAMS -------------- // $_POST = Array ( // [member] => Array ( // [name] => pepe 333 // [dimension_id] => 1 // [parent_member_id] => 0 // [dimension_id] => 19 // ) // [contact] => Array ( // [email] => slkdjflksjdflksdf@kldsjflkdf.com // [user] => Array ( // [create-user]=>on // [type] => 25 // [first_name] => // [surname] => // ) //---------------------------------------- // Init variables $max_users = config_option('max_users'); if ($max_users && (Contacts::count() >= $max_users)) { flash_error(lang('maximum number of users reached error')); ajx_current("empty"); return; } if (!can_manage_security(logged_user())) { flash_error(lang('no access permissions')); ajx_current("empty"); return; } $email = trim(array_var(array_var($_POST, 'contact'),'email')) ; $member = array_var($_POST, 'member'); $name = array_var($member, 'name'); $firstName = trim(array_var(array_var($_POST, 'contact'),'first_name')); $surname = trim(array_var(array_var($_POST, 'contact'),'surname')); $parentMemberId = array_var($member, 'parent_member_id'); $objectType = ObjectTypes::findById(array_var($member, 'object_type_id'))->getName(); // 'person', 'company' $dimensionId = array_var($member, 'dimension_id'); $company = array_var(array_var(array_var($_POST, 'contact'),'user'),'company_id'); // Create new instance of Contact and set the basic fields $contact = new Contact(); $contact->setObjectName($name); if ($firstName) { $contact->setFirstName($firstName); }else{ $contact->setFirstName($name); } if ($surname) { $contact->setSurname($surname); } $contact->setCompanyId($company); $contact->setIsCompany($objectType == "company"); if ($parentMemberId){ if ( $companyId = Members::findById($parentMemberId)->getObjectId()) { $contact->setCompanyId($companyId); } } // Save Contact try { DB::beginWork(); $contact->save(); if ($email && is_valid_email($email)) { if (!Contacts::validateUniqueEmail($email)) { DB::rollback(); flash_error(lang("email address must be unique")); return false; }else{ if (!array_var (array_var(array_var($_POST, 'contact'),'user'), 'create-user')) { $contact->addEmail($email, 'personal', true); } flash_success(lang("success add contact", $contact->getObjectName())); } } // User settings $user = array_var(array_var($_POST, 'contact'),'user'); $user['username'] = str_replace(" ","",strtolower($name)) ; $this->createUserFromContactForm($user, $contact->getId(), $email); // Reload contact again due to 'createUserFromContactForm' changes Hook::fire("after_contact_quick_add", Contacts::instance()->findById($contact->getId()), $ret); DB::commit(); }catch (Exception $e){ DB::rollback(); flash_error($e->getMessage()); } // Reload evt_add("reload dimension tree", array('dim_id' => $dimensionId)); }