protected function _sendFeedback() { // Check if demo mode is enabled if (input::demo()) { return false; } // Extra rules $rules = array('name' => array('rules' => array('required', 'is_string', 'trim', 'min_length' => 2, 'max_length' => 255)), 'email' => array('rules' => array('required', 'is_string', 'trim', 'valid_email', 'min_length' => 4, 'max_length' => 255)), 'subject' => array('rules' => array('required', 'is_string', 'trim', 'min_length' => 5, 'max_length' => 255)), 'message' => array('rules' => array('required', 'is_string', 'trim', 'min_length' => 10, 'max_length' => 10000))); if (config::item('feedback_captcha', 'feedback') == 1 || config::item('feedback_captcha', 'feedback') == 2 && !users_helper::isLoggedin()) { $rules['captcha'] = array('rules' => array('is_captcha')); } validate::setRules($rules); // Validate form values if (!validate::run($rules)) { return false; } // Get values $email = input::post('email'); $subject = input::post('subject'); $message = input::post('message') . "\n\n--\n" . input::post('name') . ' <' . input::post('email') . '>' . "\n" . input::ipaddress(); // Send feedback if (!$this->feedback_model->sendFeedback($email, $subject, $message)) { if (!validate::getTotalErrors()) { view::setError(__('send_error', 'system')); } return false; } // Success view::setInfo(__('message_sent', 'feedback')); router::redirect('feedback'); }
public function delete() { // Get URI vars $typeID = (int) uri::segment(6); $fieldID = (int) uri::segment(7); // Get user type if (!$typeID || !($type = $this->users_types_model->getType($typeID))) { view::setError(__('no_type', 'users_types')); router::redirect('cp/userstypes'); } // Delete profile question $this->deleteField('users', 'users_data_' . $type['keyword'], $typeID, $fieldID); }
public function index() { // Get license details if (!($license = $this->license_model->getLicense())) { view::setError(__('no_license', 'system_license')); router::redirect('cp/help/license/change'); } // Assign vars view::assign(array('license' => $license)); // Set title view::setTitle(__('help_license', 'system_navigation')); // Load view view::load('cp/help/license/view'); }
public function checkout() { // Get URI vars $planID = (int) uri::segment(4); $gatewayID = uri::segment(5); // Get plan if (!$planID || !($plan = $this->plans_model->getPlan($planID, false)) || !$plan['active']) { view::setError(__('no_plan', 'billing_plans')); router::redirect('billing/plans'); } $retval = $this->process($gatewayID, session::item('user_id'), 'plans', $planID, $plan['name'], $plan['price'], '', 'billing/plans'); if (!$retval) { router::redirect('billing/plans/payment/' . $planID); } }
public function checkout() { // Get URI vars $packageID = (int) uri::segment(4); $gatewayID = uri::segment(5); // Get package if (!$packageID || !($package = $this->credits_model->getPackage($packageID)) || !$package['active']) { view::setError(__('no_package', 'billing_credits')); router::redirect('billing/credits'); } // Set package name $name = __('credits_info', 'billing_credits', array('%s' => $package['credits'])); $retval = $this->process($gatewayID, session::item('user_id'), 'credits', $packageID, $name, $package['price'], '', 'billing/credits'); if (!$retval) { router::redirect('billing/credits/payment/' . $packageID); } }
protected function _submitReport($resource, $resourceID, $userID, $itemID, $subjects) { // Extra rules $rules = array('subject' => array('rules' => $subjects ? array('required', 'callback__is_valid_subject' => array($subjects)) : array('callback__is_valid_subject' => array($subjects))), 'message' => array('rules' => array('is_string', 'trim', 'max_length' => 255))); validate::setRules($rules); // Validate form values if (!validate::run($rules)) { return false; } // Get values $subject = $subjects ? (int) input::post('subject') : 0; $message = input::post('message'); // Send feedback if (!$this->reports_model->saveReport($resourceID, $userID, $itemID, $subject, $message)) { if (!validate::getTotalErrors()) { view::setError(__('save_error', 'system')); } return false; } // Success router::redirect('report/sent' . (input::get('modal') ? '?modal=1' : '')); }
protected function process($gatewayID, $userID, $type, $productID, $name, $amount, $params = '', $cancel = '', $success = '') { // Set return URLs $cancel = $cancel ? $cancel : 'users/settings'; $success = $success ? $success : 'billing/invoices'; // Get payment type if (!($type = $this->payments_model->getPaymentType($type))) { return false; } // Get gateway if (!$gatewayID || !($gateway = $this->gateways_model->getGateway($gatewayID)) || !$gateway['active']) { view::setError(__('no_gateway', 'billing_gateways')); return false; } // Create invoice if (!($invoiceID = $this->transactions_model->saveInvoice(0, $userID, $type['type_id'], $productID, $name, $amount, $params))) { view::setError(__('invoice_error', 'billing_transactions')); return false; } // Get invoice if (!($invoice = $this->transactions_model->getInvoice($invoiceID))) { view::setError(__('no_invoice', 'billing_transactions')); return false; } // Load payment library $payment = loader::library('payments/' . $gateway['keyword'], $gateway['settings'], null); // Get payment method $form = $payment->getForm($invoiceID, $name, $amount, $cancel, $success); // Is this a URL? if (preg_match('|^\\w+://|i', $form)) { router::redirect($form); } elseif (preg_match('|^<form|i', $form)) { view::load('billing/redirect', array('form' => $form)); return true; } view::setError(__('payment_invalid', 'billing_transactions')); }
public function edit() { // Get URI vars $plugin = uri::segment(5, 'system'); // Assign vars view::assign(array('plugin' => $plugin)); // Does plugin exist? if (!config::item('plugins', 'core', $plugin)) { view::setError(__('no_config_plugin', 'system_config')); router::redirect('cp/system/config/' . $plugin); } // Get meta tags if (!($tags = $this->metatags_model->getMetaTags($plugin))) { view::setError(__('no_meta_tags', 'system_metatags')); router::redirect('cp/system/config/' . $plugin); } // Process form values if (input::post('do_save_meta_tags')) { $this->_saveMetaTags($plugin, $tags); } // Assign vars view::assign(array('tags' => $tags)); // Set title view::setTitle(__('system_meta_tags_manage', 'system_navigation')); // Set trail view::setTrail('cp/system/metatags/edit/' . $plugin, text_helper::entities(config::item('plugins', 'core', $plugin, 'name'))); // Set actions if (count(config::item('languages', 'core', 'keywords')) > 1) { view::setAction('translate', ''); } // Set tabs foreach ($tags as $keyword => $group) { view::setTab('#' . $keyword, __($keyword, $plugin . '_metatags'), array('class' => 'group_' . $keyword)); } // Load view view::load('cp/system/metatags/edit'); }
public function update() { // Get URI vars $plugin = uri::segment(5); // Get plugins if (!($plugins = $this->recalculate_model->getPlugins())) { view::setInfo(__('no_plugins', 'system_plugins')); router::redirect('cp/system/config/system'); } // Get captcha if (!$plugin || !isset($plugins[$plugin])) { view::setError(__('no_plugin', 'utilities_counters')); router::redirect('cp/utilities/counters'); } // Load plugin model $model = loader::model($plugin . '/' . $plugin, array(), null); // Update counters $result = $model->updateDbCounters(); // Do we have redirect uri? if (isset($result['output']) && isset($result['redirect'])) { $result['redirect'] = $result['redirect'] ? 'update/' . $plugin . '/' . $result['redirect'] : ''; $result['output'] .= '<br/>' . __('progress_redirect', 'utilities_counters', array(), array('%' => html_helper::anchor('cp/utilities/counters/' . $result['redirect'], '\\1'))); if (!$result['redirect']) { view::setInfo(__('progress_done', 'utilities_counters', array('%1' => $plugins[$plugin]))); } // Assign vars view::assign(array('output' => $result['output'], 'redirect' => $result['redirect'])); if (input::isAjaxRequest()) { view::ajaxResponse(array('output' => $result['output'], 'redirect' => $result['redirect'])); } } // Set title view::setTitle(__('utilities_counters_manage', 'system_navigation') . ' - ' . $plugins[$plugin]); // Load view view::load('cp/utilities/counters/update'); }
public function delete() { // Check if demo mode is enabled if (input::demo(1, 'cp/content/banners')) { return false; } // Get URI vars $groupID = (int) uri::segment(6); // Get banner group if (!$groupID || !($group = $this->banners_groups_model->getGroup($groupID))) { view::setError(__('no_group', 'banners')); router::redirect('cp/content/banners/groups'); } // Delete banner group $this->banners_groups_model->deleteGroup($groupID, $group); // Success view::setInfo(__('group_deleted', 'banners')); router::redirect('cp/content/banners/groups'); }
public function toggle() { // Get URI vars $templateID = (int) uri::segment(5); // Get template if (!$templateID || !($template = $this->emailtemplates_model->getTemplate($templateID))) { view::setError(__('no_template', 'system_email_templates')); router::redirect('cp/system/config/system'); } $this->emailtemplates_model->toggleStatus($templateID, $template); router::redirect('cp/system/emailtemplates/browse/' . text_helper::entities(config::item('plugins', 'core', $template['plugin'], 'keyword'))); }
protected function parseCounters($params, $gateways) { // Set filter fields $filters = array(array('name' => __('receipt_id', 'billing_transactions'), 'type' => 'text', 'keyword' => 'receipt_id'), array('name' => __('product', 'billing'), 'type' => 'text', 'keyword' => 'product'), array('name' => __('payment_gateway', 'billing'), 'type' => 'select', 'items' => $gateways, 'keyword' => 'gateway_id'), array('name' => __('user', 'system'), 'type' => 'text', 'keyword' => 'user')); // Assign vars view::assign(array('filters' => $filters, 'values' => array())); // Did user submit the filter form? if (input::post_get('do_search')) { $values = array(); // Check extra product field $product = input::post_get('product'); if ($product != '') { $params['join_columns'][] = "`i`.`name` LIKE '" . trim($this->db->escape($product, true), "'") . "'"; $values['product'] = $product; } // Check extra receipt field $receipt_id = input::post_get('receipt_id'); if ($receipt_id != '') { $params['join_columns'][] = "`t`.`receipt_id`=" . $this->db->escape($receipt_id); $values['receipt_id'] = $receipt_id; } // Check extra gateway field $gateway_id = input::post_get('gateway_id'); if ($gateway_id && isset($gateways[$gateway_id])) { $params['join_columns'][] = "`t`.`gateway_id`=" . $gateway_id; $values['gateway_id'] = $gateway_id; } // Check extra user field $user = utf8::trim(input::post_get('user')); if ($user) { $params['join_columns'][] = $this->search_model->prepareValue($user, 'u', 'user'); $values['user'] = $user; } // Search transactions $searchID = $this->search_model->searchData('billing_transaction', $filters, $params['join_columns'], $values); // Do we have any search terms? if ($searchID == 'no_terms') { view::setError(__('search_no_terms', 'system')); } elseif ($searchID == 'no_results') { view::setError(__('search_no_results', 'system')); $params['total'] = 0; return $params; } else { router::redirect('cp/billing/transactions?search_id=' . $searchID); } } // Do we have a search ID? if (!input::post_get('do_search') && input::get('search_id')) { // Get search if (!($search = $this->search_model->getSearch(input::get('search_id')))) { view::setError(__('search_expired', 'system')); router::redirect('cp/billing/transactions'); } // Combine results $params['join_columns'] = $search['conditions']['columns']; $params['values'] = $search['values']; $params['total'] = $search['results']; // Assign vars view::assign(array('values' => $search['values'])); } else { // Count transactions if (!($params['total'] = $this->counters_model->countData('billing_transaction', 0, 0, $params['join_columns'], array(), $params))) { view::setInfo(__('no_transactions', 'billing_transactions')); } } return $params; }
public function delete($parentID = false, $actionID = false) { // Get URI vars $parentID = $parentID ? $parentID : (int) uri::segment(5); $pageID = $actionID ? $actionID : (int) uri::segment(6); // Check if demo mode is enabled if (input::demo(1, 'cp/content/pages/browse/' . $parentID)) { return false; } // Get parent if ($parentID && !($parent = $this->pages_model->getPage($parentID))) { view::setError(__('no_parent', 'pages')); router::redirect('cp/content/pages/browse/' . $parentID); } // Get page if (!$pageID || !($page = $this->pages_model->getPage($pageID)) || $page['parent_id'] != $parentID) { view::setError(__('no_page', 'pages')); router::redirect('cp/content/pages/browse/' . $parentID); } elseif ($page['system']) { view::setError(__('page_system_delete', 'pages')); router::redirect('cp/content/pages/browse/' . $parentID); } // Delete page $this->pages_model->deletePage($pageID, $page); // Is this an action call? if ($actionID) { return; } // Process query string $qstring = $this->parseQuerystring(); // Success view::setInfo(__('page_deleted', 'pages')); router::redirect('cp/content/pages/browse/' . $parentID . '?' . $qstring['url']); }
protected function parseCounters($params = array()) { // Assign vars view::assign(array('filters' => array(), 'values' => array())); // Do we have permission to search? if (session::permission('news_search', 'news')) { // Get fields $filters = $this->fields_model->getFields('news', 0, 'edit', 'in_search', true); // Set extra fields $filters[] = array('name' => __('search_keyword', 'system'), 'type' => 'text', 'keyword' => 'q'); // Assign vars view::assign(array('filters' => $filters)); // Did user submit the filter form? if (input::post_get('do_search') && session::permission('news_search', 'news')) { $values = array(); $params['total'] = $params['max'] = 0; // Check extra keyword $keyword = utf8::trim(input::post_get('q')); if ($keyword) { $params['join_columns'][] = $this->search_model->prepareValue($keyword, 'n', array('data_title_' . session::item('language'), 'data_body_' . session::item('language'))); $values['q'] = $keyword; } // Search news $searchID = $this->search_model->searchData('news', $filters, $params['join_columns'], $values, array('multilang' => true)); // Do we have any search terms? if ($searchID == 'no_terms') { view::setError(__('search_no_terms', 'system')); } elseif ($searchID == 'no_results') { view::setError(__('search_no_results', 'system')); return $params; } else { router::redirect('news?search_id=' . $searchID); } } // Do we have a search ID? if (!input::post_get('do_search') && input::get('search_id')) { // Get search if (!($search = $this->search_model->getSearch(input::get('search_id')))) { view::setError(__('search_expired', 'system')); router::redirect('news'); } // Set results $params['join_columns'] = $search['conditions']['columns']; $params['join_items'] = $search['conditions']['items']; $params['values'] = $search['values']; $params['total'] = $search['results']; $params['max'] = config::item('max_search_results', 'system') && config::item('max_search_results', 'system') < $params['total'] ? config::item('max_search_results', 'system') : $params['total']; // Assign vars view::assign(array('values' => $search['values'])); } } if (!input::get('search_id')) { // Count news if (!($params['total'] = $this->counters_model->countData('news', 0, 0, $params['join_columns'], $params['join_items'], $params))) { view::setInfo(__('no_entries', 'news')); } $params['max'] = $params['total']; } return $params; }
public function delete() { // Check if demo mode is enabled if (input::demo(1, 'cp/content/newsletters')) { return false; } // Get URI vars $newsletterID = (int) uri::segment(5); // Get newsletter if (!$newsletterID || !($newsletter = $this->newsletters_model->getNewsletter($newsletterID))) { view::setError(__('no_newsletter', 'newsletters')); router::redirect('cp/content/newsletters'); } // Delete newsletter $this->newsletters_model->deleteNewsletter($newsletterID, $newsletter); // Success view::setInfo(__('newsletter_deleted', 'newsletters')); router::redirect('cp/content/newsletters'); }
protected function parseCounters($params) { // Get fields $filters = $this->fields_model->getFields('pictures', 1, 'edit', 'in_search', true); // Set extra fields $filters[] = array('name' => __('search_keyword', 'system'), 'type' => 'text', 'keyword' => 'q'); $filters[] = array('name' => __('user', 'system'), 'type' => 'text', 'keyword' => 'user'); // Assign vars view::assign(array('filters' => $filters, 'values' => array())); // Did user submit the filter form? if (input::post_get('do_search')) { $values = array(); // Check extra keyword $keyword = utf8::trim(input::post_get('q')); if ($keyword) { $params['join_columns'][] = $this->search_model->prepareValue($keyword, 'a', array('data_title', 'data_description')); $values['q'] = $keyword; } // Check extra user field $user = utf8::trim(input::post_get('user')); if ($user) { $params['join_columns'][] = $this->search_model->prepareValue($user, 'u', 'user'); $values['user'] = $user; } // Search albums $searchID = $this->search_model->searchData('picture_album', $filters, $params['join_columns'], $values); // Do we have any search terms? if ($searchID == 'no_terms') { view::setError(__('search_no_terms', 'system')); } elseif ($searchID == 'no_results') { view::setError(__('search_no_results', 'system')); $params['total'] = 0; return $params; } else { router::redirect('cp/plugins/pictures/albums?search_id=' . $searchID); } } // Do we have a search ID? if (!input::post_get('do_search') && input::get('search_id')) { // Get search if (!($search = $this->search_model->getSearch(input::get('search_id')))) { view::setError(__('search_expired', 'system')); router::redirect('cp/plugins/pictures/albums'); } // Combine results $params['join_columns'] = $search['conditions']['columns']; $params['join_items'] = $search['conditions']['items']; $params['values'] = $search['values']; $params['total'] = $search['results']; // Assign vars view::assign(array('values' => $search['values'])); } else { // Count albums if (!($params['total'] = $this->counters_model->countData('picture_album', 0, 0, $params['join_columns'], $params['join_items'], $params))) { view::setInfo(__('no_albums', 'pictures')); } } return $params; }
public function translate() { // Get URI vars $plugin = uri::segment(5); $language = uri::segment(6); // Get plugin if (!config::item('plugins', 'core', $plugin)) { view::setError(__('no_plugin', 'system_plugins')); router::redirect('cp/system/languages/plugins/' . $language); } // Is this a system language? if ($language == 'system') { $language = array('keyword' => 'system', 'name' => 'System'); } elseif (!($language = $this->languages_model->getLanguage($language))) { view::setError(__('no_language', 'system_languages')); router::redirect('cp/system/languages'); } // Get default language data if (!($default = $this->languages_model->getLanguageData('system', $plugin))) { view::setError(__('no_language', 'system_languages')); router::redirect('cp/system/languages'); } // Get language data if (!($data = $this->languages_model->getLanguageData($language['keyword'], $plugin, true))) { view::setError(__('no_language', 'system_languages')); router::redirect('cp/system/languages'); } // Set language sections $sections = array(); foreach ($data as $section => $groups) { foreach ($groups as $group => $types) { $translated = $total = 0; foreach ($types as $type => $items) { foreach ($items as $index => $value) { if (utf8::strcasecmp($default[$section][$group][$type][$index], $value)) { $translated++; } $total++; } } $translated = $translated ? round($translated / $total * 100) : 0; $translated = $translated > 100 ? 100 : $translated; if (__('language_' . $group, $plugin . '_config') !== false) { $name = __('language_' . $group, $plugin . '_config'); } elseif (__('language_' . $group, 'users_config') !== false) { $name = __('language_' . $group, 'users_config'); } elseif (__('language_' . $group, 'system_config') !== false) { $name = __('language_' . $group, 'system_config'); } elseif ($section == $group) { $name = __('language_system', 'system_config'); } else { $name = '!' . $group; } $sections[$section . '_' . $group] = '[' . config::item('plugins', 'core', $section, 'name') . '] ' . $name . ($language['keyword'] != 'english' ? ' - ' . $translated . '%' : '') . (config::item('devmode', 'system') == 2 ? ' [' . $group . ']' : ''); } } asort($sections); // Assign vars view::assign(array('plugin' => $plugin, 'default' => $default, 'sections' => $sections, 'language' => $data)); // Process form values if (input::post('do_save_language')) { $this->_saveLanguageData($plugin, $language['keyword'], $default); } // Set title view::setTitle(__('language_translate', 'system_languages')); // Set trail view::setTrail('cp/system/languages/plugins/' . $language['keyword'], __('language_translate', 'system_languages') . ' - ' . text_helper::entities($language['name'])); view::setTrail('cp/system/languages/translate/' . $plugin . '/' . $language['keyword'], text_helper::entities(config::item('plugins', 'core', $plugin, 'name'))); // Load view view::load('cp/system/languages/translate'); }
protected function parseCounters($params = array(), $type = 'index') { // Assign vars view::assign(array('filters' => array(), 'values' => array())); // Do we have permission to search? if (session::permission('albums_search', 'pictures')) { // Get fields $filters = $this->fields_model->getFields('pictures', 1, 'edit', 'in_search', true); // Set extra fields $filters[] = array('name' => __('search_keyword', 'system'), 'type' => 'text', 'keyword' => 'q'); // Assign vars view::assign(array('filters' => $filters)); // Did user submit the filter form? if (input::post_get('do_search') && session::permission('albums_search', 'pictures')) { $values = array(); $params['total'] = $params['max'] = 0; // Check extra keyword $keyword = utf8::trim(input::post_get('q')); if ($keyword) { $params['join_columns'][] = $this->search_model->prepareValue($keyword, 'a', array('data_title', 'data_description')); $values['q'] = $keyword; } // Search albums $searchID = $this->search_model->searchData('picture_album', $filters, $params['join_columns'], $values); // Do we have any search terms? if ($searchID == 'no_terms') { view::setError(__('search_no_terms', 'system')); } elseif ($searchID == 'no_results') { view::setError(__('search_no_results', 'system')); return $params; } else { switch ($type) { case 'user': router::redirect('pictures/user/' . uri::segment(4) . '?search_id=' . $searchID); break; case 'manage': router::redirect('pictures/manage?search_id=' . $searchID); break; default: router::redirect('pictures?search_id=' . $searchID); break; } } } // Do we have a search ID? if (!input::post_get('do_search') && input::get('search_id')) { // Get search if (!($search = $this->search_model->getSearch(input::get('search_id')))) { view::setError(__('search_expired', 'system')); switch ($type) { case 'user': router::redirect('pictures/user/' . uri::segment(4)); break; case 'manage': router::redirect('pictures/manage'); break; default: router::redirect('pictures'); break; } } // Set results $params['join_columns'] = $search['conditions']['columns']; $params['join_items'] = $search['conditions']['items']; $params['values'] = $search['values']; $params['total'] = $search['results']; $params['max'] = config::item('max_search_results', 'system') && config::item('max_search_results', 'system') < $params['total'] ? config::item('max_search_results', 'system') : $params['total']; // Assign vars view::assign(array('values' => $search['values'])); } } if (!input::get('search_id')) { // Count albums if ($type == 'manage' && !$params['total'] || $type != 'manage' && !($params['total'] = $this->counters_model->countData('picture_album', 0, 0, $params['join_columns'], $params['join_items'], $params))) { if ($type == 'manage') { view::setInfo(__('no_albums_self', 'pictures')); } else { view::setInfo(__('no_albums', 'pictures')); } } $params['max'] = $params['total']; } return $params; }
public function delete() { // Get URI vars $groupID = (int) uri::segment(5); $bannerID = (int) uri::segment(6); // Check if demo mode is enabled if (input::demo(1, 'cp/content/banners/browse/' . $groupID)) { return false; } // Get banner if (!$bannerID || !($banner = $this->banners_model->getBanner($bannerID))) { view::setError(__('no_banner', 'banners')); router::redirect('cp/content/banners/browse/' . $groupID); } $this->banners_model->deleteBanner($groupID, $bannerID, $banner); view::setInfo(__('banner_deleted', 'banners')); router::redirect('cp/content/banners/browse/' . $groupID); }
protected function deleteField($plugin, $table, $categoryID, $fieldID) { // Check if demo mode is enabled if (input::demo(1, 'cp/system/fields/' . $plugin . '/browse' . ($categoryID ? '/' . $categoryID : ''))) { return false; } // Get field if (!($field = $this->fields_model->getField($fieldID))) { view::setError(__('no_field', 'system_fields')); router::redirect('cp/system/fields/' . $plugin . '/browse/' . $categoryID); } // Is this a system field? if ($field['system']) { view::setError(__('no_system_delete', 'system_fields')); router::redirect('cp/system/fields/' . $plugin . '/browse/' . $categoryID); } // Delete field if (!$this->fieldsdb_model->deleteField($plugin, $table, $fieldID, $field)) { view::setError(__('db_no_column_drop', 'system_fields')); router::redirect('cp/system/fields/' . $plugin . '/browse/' . $categoryID); } // Success view::setInfo(__('field_deleted', 'system_fields')); router::redirect('cp/system/fields/' . $plugin . '/browse' . ($categoryID ? '/' . $categoryID : '')); }
public function delete() { // Check if demo mode is enabled if (input::demo(1, 'cp/content/reports/subjects')) { return false; } // Get URI vars $subjectID = (int) uri::segment(6); // Get subject if (!$subjectID || !($subject = $this->reports_subjects_model->getSubject($subjectID))) { view::setError(__('no_subject', 'reports_subjects')); router::redirect('cp/content/reports/subjects'); } // Delete subject $this->reports_subjects_model->deleteSubject($subjectID, $subject); // Success view::setInfo(__('subject_deleted', 'reports_subjects')); router::redirect('cp/content/reports/subjects'); }
protected function parseCounters($params = array()) { // Get fields $filters = array(); if (count(config::item('usertypes', 'core', 'keywords')) > 1) { // Set extra fields $filters[] = array('name' => __('user_type', 'users'), 'type' => 'select', 'keyword' => 'type_id', 'items' => config::item('usertypes', 'core', 'names'), 'select' => 1); foreach (config::item('usertypes', 'core', 'keywords') as $id => $type) { $filters['types'][$id] = $this->fields_model->getFields('users', $id, 'edit', input::get('a') ? 'in_search_advanced' : 'in_search', true); } } else { $filters = $this->fields_model->getFields('users', config::item('type_default_id', 'users'), 'edit', input::get('a') ? 'in_search_advanced' : 'in_search', true); } // Additional options $options = array(); // Pictures if (config::item('search_option_picture', 'users')) { $options['pictures'] = __('search_option_picture', 'users', array(), array(), false); } // Online if (config::item('search_option_online', 'users')) { $options['online'] = __('search_option_online', 'users', array(), array(), false); } if ($options) { $filters[] = array('name' => __('search_options', 'system', array(), array(), false), 'type' => 'checkbox', 'keyword' => 'search_options', 'items' => $options); } // Assign vars view::assign(array('filters' => $filters, 'values' => array())); // Did user submit the filter form? if (input::post_get('do_search')) { $values = array(); $params['total'] = $params['max'] = 0; // Check extra pictures field $pictures = in_array('pictures', input::post_get('search_options', array())); if ($pictures) { $params['join_columns'][] = "`u`.`picture_id`!='' AND `u`.`picture_active`=1"; $values['search_options'][] = 'pictures'; } // Check extra online field $online = in_array('online', input::post_get('search_options', array())); if ($online) { $params['join_columns'][] = "`u`.`visit_date`>=" . (date_helper::now() - 60 * 5); $values['search_options'][] = 'online'; } // Check extra type field $typeID = count(config::item('usertypes', 'core', 'keywords')) > 1 ? input::post_get('type_id') : config::item('type_default_id', 'users'); if (config::item('usertypes', 'core', 'keywords', $typeID)) { $params['join_columns'][] = '`u`.`type_id`=' . $typeID; $values['type_id'] = $typeID; // Search users $searchID = $this->search_model->searchData('profile', $filters, $params['join_columns'], $values, array('type_id' => $typeID)); // Do we have any search terms? if ($searchID == 'no_terms') { view::setError(__('search_no_terms', 'system')); } elseif ($searchID == 'no_results') { view::setError(__('search_no_results', 'system')); return $params; } else { router::redirect('users/results?' . (input::get('a') ? 'a=1&' : '') . 'search_id=' . $searchID); } } else { view::setError(__('search_no_type', 'users')); } } // Do we have a search ID? if (!input::post_get('do_search') && input::get('search_id')) { // Get search if (!($search = $this->search_model->getSearch(input::get('search_id')))) { view::setError(__('search_expired', 'system')); router::redirect('users'); } // Set results $params['join_columns'] = $search['conditions']['columns']; $params['join_items'] = $search['conditions']['items']; $params['values'] = $search['values']; $params['total'] = $search['results']; $params['max'] = config::item('max_search_results', 'system') && config::item('max_search_results', 'system') < $params['total'] ? config::item('max_search_results', 'system') : $params['total']; // Assign vars view::assign(array('values' => $search['values'])); } return $params; }
public function delete() { // Get URI vars $slugID = urldecode(utf8::trim(uri::segment(4))); // Do we have a slug ID? if ($slugID == '') { error::show404(); } // Get user if (!($user = $this->users_model->getUser($slugID)) || !$user['active'] || !$user['verified']) { error::show404(); } elseif ($user['user_id'] == session::item('user_id')) { router::redirect($user['slug']); } // Does user exist? if (!($blocked = $this->users_blocked_model->getUser($user['user_id'], true))) { view::setError(__('no_blocked_user', 'users_blocked')); router::redirect('users/blocked'); } // Delete blocked user $this->users_blocked_model->deleteBlockedUser(session::item('user_id'), $user['user_id']); // Success view::setInfo(__('user_unblocked', 'users_blocked')); router::redirect(input::get('page') ? 'users/blocked' : $user['slug']); }
public function delete() { // Check if demo mode is enabled if (input::demo(1, 'cp/billing/plans')) { return false; } // Get URI vars $planID = (int) uri::segment(5); // Get plan if (!$planID || !($plan = $this->plans_model->getPlan($planID))) { view::setError(__('no_plan', 'billing_plans')); router::redirect('cp/billing/plans'); } // Delete plan $this->plans_model->deletePlan($planID, $plan); // Success view::setInfo(__('plan_deleted', 'billing_plans')); router::redirect('cp/billing/plans'); }
public function delete() { // Check if demo mode is enabled if (input::demo(1, 'cp/plugins/messages/templates')) { return false; } // Get URI vars $templateID = (int) uri::segment(6); // Get template if (!$templateID || !($template = $this->messages_templates_model->getTemplate($templateID))) { view::setError(__('no_template', 'messages_templates')); router::redirect('cp/plugins/messages/templates'); } // Delete template $this->messages_templates_model->deleteTemplate($templateID, $template); // Success view::setInfo(__('template_deleted', 'messages_templates')); router::redirect('cp/plugins/messages/templates'); }
protected function _resendHash() { // Create rules $rules = array('email' => array('label' => 'email', 'rules' => array('trim', 'required', 'max_length' => 255, 'valid_email'))); // Assign rules validate::setRules($rules); // Validate fields if (!validate::run()) { return false; } // Does user exist? if (!($user = $this->users_model->getUser(input::post('email')))) { validate::setFieldError('email', __('email_invalid', 'users_signup')); return false; } // Is user's email already verified? if ($user['verified']) { view::setError(__('user_already_verified', 'users_signup')); return false; } // Loader loader::library('email'); loader::model('system/requests'); // Is this a recent request? if ($this->requests_model->isRecentRequest('signup', $user['user_id'], 0, 5)) { // Success view::setError(__('request_recent_sendhash', 'users_signup')); return false; } // Save resend hash request $hash = $this->requests_model->saveRequest('signup', $user['user_id']); $user['security_hash'] = $hash; $user['activation_link'] = config::siteURL('users/signup/confirm/' . $user['user_id'] . '/' . $hash); // Send activation email $this->email->sendTemplate('users_account_confirm', $user['email'], $user, $user['language_id']); // Success view::setInfo(__('confirm_email', 'users_signup')); router::redirect('users/login/index/verify'); }
public function delete() { // Check if demo mode is enabled if (input::demo(1, 'cp/users/types')) { return false; } // Get URI vars $typeID = (int) uri::segment(5); // Is this one of the system types? if ($typeID == config::item('type_default_id', 'users')) { view::setError(__('type_delete_system', 'users_types')); router::redirect('cp/users/types'); } // Is this member's own type? if ($typeID == session::item('type_id')) { view::setError(__('type_delete_self', 'users_types')); router::redirect('cp/users/types'); } // Get user type if (!$typeID || !($type = $this->users_types_model->getType($typeID))) { view::setError(__('no_type', 'users_types')); router::redirect('cp/users/types'); } // Do we have any members of this type? if ($this->users_types_model->isUsers($typeID)) { view::setError(__('type_delete_users', 'users_types')); router::redirect('cp/users/types'); } // Delete user type if (!$this->users_types_model->deleteType($typeID, $type)) { view::setError(__('db_no_drop', 'system_fields')); router::redirect('cp/users/types'); } // Success view::setInfo(__('type_deleted', 'users_types')); router::redirect('cp/users/types'); }
public function vote() { // Is user logged in? if (!users_helper::isLoggedin()) { view::ajaxError(__('no_login', 'system_info'), 403); } // Get vars $resource = input::post_get('resource'); $itemID = (int) input::post_get('item_id'); $score = (int) input::post_get('score'); // Get resource ID $resourceID = config::item('resources', 'core', $resource, 'resource_id'); if (!$resourceID || !$itemID || $score < 1 || $score > 5) { return false; } // Load votes model loader::model('comments/votes'); // Get resource item and vote if exists $item = $this->votes_model->getResourceVote($resource, $itemID); // Do resource or vote exist? if (!$item || $item['post_date']) { return false; } // Save vote if (!$this->votes_model->saveVote($resource, isset($item['user_id']) ? $item['user_id'] : 0, $itemID, $score)) { if (!validate::getTotalErrors()) { view::setError(__('save_error', 'system')); } return false; } $rating = number_format(($item['total_score'] + $score) / ($item['total_votes'] + 1), 2); $params = array('resource' => $resource, 'itemID' => $itemID, 'votes' => $item['total_votes'] + 1, 'score' => $item['total_score'], 'rating' => $rating, 'voted' => $score, 'date' => date_helper::now()); $output = view::load('comments/rating', $params, true); view::ajaxResponse($output); }
protected function parseCounters($params, $typeID) { // Set filters $filters = array(array('name' => __('user', 'system'), 'type' => 'text', 'keyword' => 'user'), array('name' => __('user_group', 'users'), 'type' => 'select', 'keyword' => 'group', 'items' => config::item('usergroups', 'core')), array('name' => __('user_type', 'users'), 'type' => 'select', 'keyword' => 'type_id', 'items' => config::item('usertypes', 'core', 'names'))); foreach (config::item('usertypes', 'core', 'keywords') as $id => $type) { $filters['types'][$id] = $this->fields_model->getFields('users', $id, 'edit'); } $filters[] = array('name' => __('verified', 'users'), 'type' => 'boolean', 'keyword' => 'verified'); $filters[] = array('name' => __('active', 'system'), 'type' => 'boolean', 'keyword' => 'active'); // Assign vars view::assign(array('filters' => $filters, 'values' => array())); // Did user submit the filter form? if (input::post_get('do_search')) { $values = array(); // Check extra user field $user = utf8::trim(input::post_get('user')); if ($user) { $params['join_columns'][] = $this->search_model->prepareValue($user, 'u', 'user'); $values['user'] = $user; } // Check extra verified field $verified = input::post_get('verified'); if ($verified != '') { $params['join_columns'][] = '`u`.`verified`=' . (int) $verified; $values['verified'] = $verified; } // Check extra status field $status = input::post_get('active'); if ($status != '') { $params['join_columns'][] = '`u`.`active`=' . (int) $status; $values['active'] = $status; } // Check extra group field $group = input::post_get('group'); if ($group != '' && config::item('usergroups', 'core', $group)) { $params['join_columns'][] = '`u`.`group_id`=' . $group; $values['group'] = $group; } // Check extra type field $typeID = input::post_get('type_id'); if ($typeID != '' && config::item('usertypes', 'core', 'keywords', $typeID)) { $params['join_columns'][] = '`u`.`type_id`=' . $typeID; $values['type_id'] = $typeID; } // Search users $searchID = $this->search_model->searchData('profile', $filters, $params['join_columns'], $values, array('type_id' => $typeID)); // Do we have any search terms? if ($searchID == 'no_terms') { view::setError(__('search_no_terms', 'system')); } elseif ($searchID == 'no_results') { view::setError(__('search_no_results', 'system')); $params['total'] = 0; return $params; } else { router::redirect('cp/users?search_id=' . $searchID); } } // Do we have a search ID? if (!input::post_get('do_search') && input::get('search_id')) { // Get search if (!($search = $this->search_model->getSearch(input::get('search_id')))) { view::setError(__('search_expired', 'system')); router::redirect('cp/users'); } // Combine results $params['join_columns'] = $search['conditions']['columns']; $params['join_items'] = $search['conditions']['items']; $params['values'] = $search['values']; $params['total'] = $search['results']; // Assign vars view::assign(array('values' => $search['values'])); } else { // Count users if (!($params['total'] = $this->counters_model->countData('user', 0, 0, $params['join_columns'], $params['join_items'], $params))) { view::setInfo(__('no_users', 'users')); } } return $params; }
public function delete() { // Is user loggedin ? if (!users_helper::isLoggedin()) { router::redirect('users/login'); } // Get URI vars $slugID = urldecode(utf8::trim(uri::segment(4))); // Do we have a slug ID? if ($slugID == '') { error::show404(); } // Get user if (!($user = $this->users_model->getUser($slugID)) || !$user['active'] || !$user['verified']) { error::show404(); } elseif ($user['user_id'] == session::item('user_id')) { router::redirect($user['slug']); } // Does friend exist? if (!($friend = $this->users_friends_model->getFriend($user['user_id'], false))) { view::setError(__('no_friend', 'users_friends')); router::redirect($user['slug']); } // Delete friend $this->users_friends_model->deleteFriend($friend['user_id'], $friend['friend_id'], $friend['active']); // Success view::setInfo(__($friend['active'] ? 'friend_deleted' : 'friend_canceled', 'users_friends')); router::redirect(input::get('page') ? 'users/friends/requests' : $user['slug']); }