locale = self::get_articleAdminLocale(); // Cancel Form if (isset($_POST['cancel'])) { redirect(FUSION_SELF.fusion_get_aidlink()."§ion=article_category"); } if (isset($_GET['ref']) && $_GET['ref'] == "article_cat_form") { $this->display_article_cat_form(); } else { $this->display_article_cat_listing(); } } /** * Displays Articles Category Form */ private function display_article_cat_form() { // Empty $data = [ 'article_cat_id' => 0, 'article_cat_name' => '', 'article_cat_parent' => 0, 'article_cat_description' => '', 'article_cat_status' => 1, 'article_cat_visibility' => iGUEST, 'article_cat_language' => LANGUAGE, 'article_cat_hidden' => '' ]; // Form $formAction = FUSION_REQUEST; // Save if ((isset($_POST['save_cat'])) || (isset($_POST['save_cat_and_close']))) { // Description $cat_desc = ""; if (isset($_POST['article_cat_description'])) { $cat_desc = (fusion_get_settings("allow_php_exe") ? htmlspecialchars($_POST['article_cat_description']) : stripslashes($_POST['article_cat_description'])); } // Check Fields $inputArray = [ 'article_cat_id' => form_sanitizer($_POST['article_cat_id'], '', 'article_cat_id'), 'article_cat_name' => form_sanitizer($_POST['article_cat_name'], '', 'article_cat_name'), 'article_cat_description' => form_sanitizer($cat_desc, '', 'article_cat_description'), 'article_cat_parent' => form_sanitizer($_POST['article_cat_parent'], 0, 'article_cat_parent'), 'article_cat_visibility' => form_sanitizer($_POST['article_cat_visibility'], 0, 'article_cat_visibility'), 'article_cat_status' => form_sanitizer($_POST['article_cat_status'], 0, 'article_cat_status'), 'article_cat_language' => form_sanitizer($_POST['article_cat_language'], LANGUAGE, 'article_cat_language') ]; // Check Where Condition $categoryNameCheck = [ "when_updating" => "article_cat_name='".$inputArray['article_cat_name']."' AND article_cat_id !='".$inputArray['article_cat_id']."' ".(multilang_table("AR") ? "AND article_cat_language = '".LANGUAGE."'" : ""), "when_saving" => "article_cat_name='".$inputArray['article_cat_name']."' ".(multilang_table("AR") ? "AND ".in_group('article_cat_language', LANGUAGE) : ""), ]; // Save if (\defender::safe()) { // Update if (dbcount("(article_cat_id)", DB_ARTICLE_CATS, "article_cat_id=:articlecatid", [':articlecatid' => $inputArray['article_cat_id']])) { if (!dbcount("(article_cat_id)", DB_ARTICLE_CATS, $categoryNameCheck['when_updating'])) { dbquery_insert(DB_ARTICLE_CATS, $inputArray, 'update'); addNotice('success', $this->locale['article_0041']); if (isset($_POST['save_cat_and_close'])) { redirect(clean_request('', ['action', 'ref'], FALSE)); } else { redirect(FUSION_REQUEST); } } else { addNotice('danger', $this->locale['article_0321']); } // Insert } else { if (!dbcount("(article_cat_id)", DB_ARTICLE_CATS, $categoryNameCheck['when_saving'])) { dbquery_insert(DB_ARTICLE_CATS, $inputArray, 'save'); addNotice('success', $this->locale['article_0040']); if (isset($_POST['save_cat_and_close'])) { redirect(clean_request('', ['action', 'ref'], FALSE)); } else { redirect(FUSION_REQUEST); } } else { addNotice('danger', $this->locale['article_0321']); } } } $data = $inputArray; // Edit } else if ((isset($_GET['action']) && $_GET['action'] == "edit") && (isset($_GET['cat_id']) && isnum($_GET['cat_id']))) { $result = dbquery("SELECT * FROM ".DB_ARTICLE_CATS." ".(multilang_table("AR") ? "WHERE ".in_group('article_cat_language', LANGUAGE)." AND" : "WHERE")." article_cat_id=:articlecatid", [':articlecatid' => $_GET['cat_id']]); if (dbrows($result)) { $data = dbarray($result); } else { redirect(clean_request('', ['action'], FALSE)); } // Delete } else if ((isset($_GET['action']) && $_GET['action'] == "delete") && (isset($_GET['cat_id']) && isnum($_GET['cat_id']))) { if (!dbcount("(article_id)", DB_ARTICLES, "article_cat=:articlecat", [':articlecat' => $_GET['cat_id']]) && !dbcount("(article_cat_id)", DB_ARTICLE_CATS, "article_cat_parent=:catparent", [':catparent' => $_GET['cat_id']])) { dbquery("DELETE FROM ".DB_ARTICLE_CATS." WHERE article_cat_id=:articlecat", [':articlecat' => $_GET['cat_id']]); addNotice('success', $this->locale['article_0042']); } else { addNotice('warning', $this->locale['article_0043']); addNotice('warning', $this->locale['article_0044']); } redirect(clean_request('', ['ref', 'action', 'cat_id'], FALSE)); } // Form ?>
locale['article_0150'], $data['article_cat_name'], [ 'required' => TRUE, 'inline' => TRUE, 'error_text' => $this->locale['article_0320'] ]); echo form_select_tree('article_cat_parent', $this->locale['article_0303'], $data['article_cat_parent'], [ 'inline' => TRUE, 'disable_opts' => $data['article_cat_id'], 'hide_disabled' => TRUE, 'query' => (multilang_table("AR") ? "WHERE ".in_group('article_cat_language', LANGUAGE) : "") ], DB_ARTICLE_CATS, "article_cat_name", "article_cat_id", "article_cat_parent"); echo form_textarea('article_cat_description', $this->locale['article_0304'], $data['article_cat_description'], [ 'required' => TRUE, 'type' => fusion_get_settings('tinymce_enabled') ? 'tinymce' : 'html', 'tinymce' => fusion_get_settings('tinymce_enabled') && iADMIN ? 'advanced' : '', 'autosize' => TRUE, 'inline' => FALSE, 'preview' => TRUE, 'form_name' => 'catform', 'error_text' => $this->locale['article_0322'], 'path' => IMAGES_A ]); ?>
locale['article_0261']); if (multilang_table("AR")) { echo form_select('article_cat_language[]', $this->locale['language'], $data['article_cat_language'], [ 'inline' => TRUE, 'options' => fusion_get_enabled_languages(), 'placeholder' => $this->locale['choose'], 'multiple' => TRUE, 'delimeter' => '.' ]); } else { echo form_hidden('article_cat_language', '', $data['article_cat_language']); } echo form_select('article_cat_visibility', $this->locale['article_0106'], $data['article_cat_visibility'], [ 'options' => fusion_get_groups(), 'placeholder' => $this->locale['choose'], 'inline' => TRUE ]); echo form_select('article_cat_status', $this->locale['article_0152'], $data['article_cat_status'], [ 'options' => [0 => $this->locale['unpublish'], 1 => $this->locale['publish']], 'placeholder' => $this->locale['choose'], 'inline' => TRUE ]); closeside(); ?>
locale['cancel'], $this->locale['cancel'], ['class' => 'btn-sm btn-default', 'icon' => 'fa fa-times']); echo form_button('save_cat', $this->locale['save'], $this->locale['save'], ['class' => 'btn-sm btn-success', 'icon' => 'fa fa-hdd-o']); echo form_button('save_cat_and_close', $this->locale['save_and_close'], $this->locale['save_and_close'], ['class' => 'btn-sm btn-primary', 'icon' => 'fa fa-floppy-o']); echo closeform(); ?>
intval($article_cat_id)]) && \defender::safe()) { switch ($_POST['table_action']) { case "publish": dbquery("UPDATE ".DB_ARTICLE_CATS." SET article_cat_status=:catstatus WHERE article_cat_id=:catid", [':catstatus' => '1', ':catid' => intval($article_cat_id)]); break; case "unpublish": dbquery("UPDATE ".DB_ARTICLE_CATS." SET article_cat_status=:catstatus WHERE article_cat_id=:catid", [':catstatus' => '0', ':catid' => intval($article_cat_id)]); break; case "delete": if (!dbcount("(article_id)", DB_ARTICLES, "article_cat=:articlecat", [':articlecat' => $article_cat_id]) && !dbcount("(article_cat_id)", DB_ARTICLE_CATS, "article_cat_parent=:catparent", [':catparent' => $article_cat_id])) { dbquery("DELETE FROM ".DB_ARTICLE_CATS." WHERE article_cat_id=:articlecatid", [':articlecatid' => intval($article_cat_id)]); } else { addNotice('warning', $this->locale['article_0046']); addNotice('warning', $this->locale['article_0044']); } break; default: redirect(FUSION_REQUEST); } } } addNotice('success', $this->locale['article_0045']); redirect(FUSION_REQUEST); } else { addNotice('warning', $this->locale['article_0048']); redirect(FUSION_REQUEST); } } // Clear if (isset($_POST['article_clear'])) { redirect(FUSION_SELF.fusion_get_aidlink()."&section=article_category"); } // Search $sql_condition = multilang_table("AR") ? in_group('ac.article_cat_language', LANGUAGE) : ""; $search_string = []; if (isset($_POST['p-submit-article_cat_name'])) { $search_string['article_cat_name'] = [ 'input' => form_sanitizer($_POST['article_cat_name'], '', 'article_cat_name'), 'operator' => "LIKE" ]; } if (!empty($_POST['article_cat_status']) && isnum($_POST['article_cat_status'])) { switch ($_POST['article_cat_status']) { case 1: // published $search_string['article_cat_status'] = [ 'input' => 1, 'operator' => '=' ]; break; case 2: // unpublished $search_string['article_cat_status'] = [ 'input' => 0, 'operator' => '=' ]; break; } } if (!empty($_POST['article_cat_visibility'])) { $search_string['article_cat_visibility'] = [ 'input' => form_sanitizer($_POST['article_cat_visibility'], '', 'article_cat_visibility'), 'operator' => "=" ]; } if (!empty($search_string)) { foreach ($search_string as $key => $values) { if ($sql_condition) $sql_condition .= " AND "; $sql_condition .= "`$key` ".$values['operator'].($values['operator'] == "LIKE" ? "'%" : "'").$values['input'].($values['operator'] == "LIKE" ? "%'" : "'"); } } // Query $result = dbquery_tree_full(DB_ARTICLE_CATS, "article_cat_id", "article_cat_parent", "", "SELECT ac.*, COUNT(a.article_id) AS article_count FROM ".DB_ARTICLE_CATS." ac LEFT JOIN ".DB_ARTICLES." AS a ON a.article_cat=ac.article_cat_id ".($sql_condition ? " WHERE ".$sql_condition : "")." GROUP BY ac.article_cat_id ORDER BY ac.article_cat_parent ASC, ac.article_cat_id ASC" ); // Filters $filter_values = [ 'article_cat_name' => !empty($_POST['article_cat_name']) ? form_sanitizer($_POST['article_cat_name'], '', 'article_cat_name') : '', 'article_cat_status' => !empty($_POST['article_cat_status']) ? form_sanitizer($_POST['article_cat_status'], '', 'article_cat_status') : '', 'article_cat_visibility' => !empty($_POST['article_cat_visibility']) ? form_sanitizer($_POST['article_cat_visibility'], '', 'article_cat_visibility') : '' ]; $filter_empty = TRUE; foreach ($filter_values as $val) { if ($val) { $filter_empty = FALSE; } } ?>
"> locale['article_0005']; ?>
$this->locale['article_0150'], 'append_button' => TRUE, 'append_value' => "", 'append_form_value' => 'search_article', 'width' => '160px', 'group_size' => 'sm' ]); ?>
display_article_category($result); echo closeform(); // Toogle Options add_to_jquery(" // Toogle Options $('#toggle_options').bind('click', function(e) { e.preventDefault(); $('#article_filter_options').slideToggle(); var caret_status = $('#filter_caret').hasClass('fa-caret-down'); if (caret_status == 1) { $('#filter_caret').removeClass('fa-caret-down').addClass('fa-caret-up'); $(this).removeClass('btn-default').addClass('btn-info'); } else { $('#filter_caret').removeClass('fa-caret-up').addClass('fa-caret-down'); $(this).removeClass('btn-info').addClass('btn-default'); } }); // Select change $('#article_cat_status, #article_cat_visibility').bind('change', function(e){ $(this).closest('form').submit(); }); "); } /** * Recursive function to display administration table * * @param $data * @param int $id * @param int $level */ private function display_article_category($data, $id = 0, $level = 0) { if (!$id) : ?>
$cdata) : $edit_link = clean_request("section=article_category&ref=article_cat_form&action=edit&cat_id=".$cat_id, ["section", "ref", "action", "cat_id"], FALSE); $delete_link = clean_request("section=article_category&ref=article_cat_form&action=delete&cat_id=".$cat_id, ["section", "ref", "action", "cat_id"], FALSE); ?> display_article_category($data, $cdata['article_cat_id'], $level + 1); } ?>
locale['article_0150'] ?> locale['article_0001'] ?> locale['article_0152'] ?> locale['article_0106'] ?> locale['article_0107'] ?>
locale['fmt_article']); ?> locale['published'] : $this->locale['unpublished']); ?> locale['edit']; ?> |  locale['delete']; ?>
locale['article_0162']; ?>