Create New Item
×
Item Type
File
Folder
Item Name
×
Search file in folder and subfolders...
File Manager
/
wp-content
/
plugins
/
unlimited-elements-for-elementor
/
inc_php
/
framework
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php defined('UNLIMITED_ELEMENTS_INC') or die('Restricted access'); class UniteTableUC extends HtmlOutputBaseUC { const GET_FIELD_PAGE = "table_page"; const GET_FIELD_INPAGE = "table_inpage"; const GET_FIELD_SEARCH = "table_search"; const GET_FIELD_CATEGORY = "table_category"; const GET_FIELD_ORDER = "table_order"; const GET_FIELD_ORDER_DIR = "table_order_dir"; const GET_FIELD_OPTION = "option"; const GET_FIELD_VIEW = "view"; private $isPaging = false; private $isInsideTopActions = false; private $defaultOrderby; private $page; private $inPage; private $total; private $numPages; private $baseUrl; private $arrOrderFields; private $defaultInPage = 10; private function validatePaging() { if ($this->isPaging == false) { UniteFunctionsUC::throwError("The paging should be available"); } } private function validateTopActions() { if ($this->isInsideTopActions == false) { UniteFunctionsUC::throwError("The top actions form should be started"); } } private function a_GETTERS() { } private function getPageFromGet() { $page = UniteFunctionsUC::getGetVar(self::GET_FIELD_PAGE, 1, UniteFunctionsUC::SANITIZE_ID); $page = (int) $page; return $page; } private function getInPageFromGet() { $inpage = UniteFunctionsUC::getGetVar(self::GET_FIELD_INPAGE, $this->defaultInPage, UniteFunctionsUC::SANITIZE_ID); $inpage = (int) $inpage; return $inpage; } private function getCategoryFromGet() { $cat = UniteFunctionsUC::getGetVar(self::GET_FIELD_CATEGORY, "", UniteFunctionsUC::SANITIZE_KEY); if ($cat == "all" || $cat === "") { $cat = null; } else { $cat = (int) $cat; } return $cat; } private function getSearchValueFromGet() { $search = UniteFunctionsUC::getGetVar(self::GET_FIELD_SEARCH, "", UniteFunctionsUC::SANITIZE_TEXT_FIELD); return $search; } private function getOrderValueFromGet() { $order = UniteFunctionsUC::getGetVar(self::GET_FIELD_ORDER, "", UniteFunctionsUC::SANITIZE_TEXT_FIELD); if (empty($order)) { $order = $this->defaultOrderby; } return $order; } private function getGetFieldsNames($includeBaseFields = false, $isBaseOnly = false) { $fields = array(); if ($includeBaseFields == true) { $fields[] = self::GET_FIELD_OPTION; $fields[] = self::GET_FIELD_VIEW; if ($isBaseOnly == true) { return $fields; } } $fields[] = self::GET_FIELD_PAGE; $fields[] = self::GET_FIELD_INPAGE; $fields[] = self::GET_FIELD_SEARCH; $fields[] = self::GET_FIELD_CATEGORY; $fields[] = self::GET_FIELD_ORDER; $fields[] = self::GET_FIELD_ORDER_DIR; return $fields; } private function getArrFieldsValuesFromGet($fieldNames, $exceptField = null) { $arrFields = array(); foreach ($fieldNames as $name) { if (!empty($exceptField) && $name == $exceptField) { continue; } $fieldValue = UniteFunctionsUC::getGetVar($name, "", UniteFunctionsUC::SANITIZE_TEXT_FIELD); if (!empty($fieldValue)) { $arrFields[$name] = $fieldValue; } } return $arrFields; } private function getArrGetFields($includeBaseFields = false, $exceptField = null) { $fieldNames = $this->getGetFieldsNames($includeBaseFields); $arrFields = $this->getArrFieldsValuesFromGet($fieldNames, $exceptField); return $arrFields; } private function getArrBaseFields() { $fieldNames = $this->getGetFieldsNames(true, true); $arrFields = $this->getArrFieldsValuesFromGet($fieldNames); return $arrFields; } private function getUrlPage($page = null, $exceptField = null) { $arrGetFields = $this->getArrGetFields(false, $exceptField); if (!empty($page)) { $arrGetFields[self::GET_FIELD_PAGE] = $page; } $urlPage = UniteFunctionsUC::addUrlParams($this->baseUrl, $arrGetFields); return $urlPage; } private function a_SETTERS() { } public function setDefaultOrderby($orderby) { $this->defaultOrderby = $orderby; } private function a_GENERAL_GET() { } public function getPagingOptions() { $output = array(); $output["page"] = $this->getPageFromGet(); $output["inpage"] = $this->getInPageFromGet(); $output["search"] = $this->getSearchValueFromGet(); $output["category"] = $this->getCategoryFromGet(); $ordering = $this->getOrderValueFromGet(); $ordering = str_replace("_desc", " desc", $ordering); $output["ordering"] = $ordering; return $output; } public function setPagingData($baseURl, $data) { $this->baseUrl = $baseURl; $this->total = UniteFunctionsUC::getVal($data, "total"); $this->page = UniteFunctionsUC::getVal($data, "page"); $this->inPage = UniteFunctionsUC::getVal($data, "inpage"); $this->numPages = UniteFunctionsUC::getVal($data, "num_pages"); UniteFunctionsUC::validateNotEmpty($this->inPage, "in page"); if ($this->total > 0) { UniteFunctionsUC::validateNotEmpty($this->page, "page"); UniteFunctionsUC::validateNotEmpty($this->numPages, "num pages"); } $this->isPaging = true; } private function a_GET_HTML() { } private function arrFieldsToHtmlHiddenInputs($arrGetFields) { $html = ""; foreach ($arrGetFields as $name => $value) { $html .= self::TAB3 . HelperHtmlUC::getHiddenInputField($name, $value) . self::BR; } return $html; } private function getHtmlHiddenInputs($except_field) { $arrGetFields = $this->getArrGetFields(true, $except_field); $html = $this->arrFieldsToHtmlHiddenInputs($arrGetFields); return $html; } private function getHtmlHiddenBaseInputs() { $arrGetFields = $this->getArrBaseFields(); $html = $this->arrFieldsToHtmlHiddenInputs($arrGetFields); return $html; } public function putActionsFormStart() { $this->validatePaging(); $url = $this->baseUrl; $url = htmlspecialchars($url); $html = ""; $html .= self::TAB2 . "<form method='get' name='unite-table-actions' action='{$url}'>" . self::BR2; $html .= $this->getHtmlHiddenBaseInputs(); echo UniteProviderFunctionsUC::escCombinedHtml($html); $this->isInsideTopActions = true; } public function putActionsFormEnd() { $this->validateTopActions(); $html = self::TAB2 . "</form>" . self::BR; $this->isInsideTopActions = false; echo UniteProviderFunctionsUC::escCombinedHtml($html); } private function getHtmlFormSelect($htmlSelect, $htmlGetFields) { $html = ""; if ($this->isInsideTopActions == false) { $html .= "<form method='get'>"; } $html .= $htmlSelect; if ($this->isInsideTopActions == false) { $html .= $htmlGetFields; $html .= '</form>'; } return $html; } public function getHTMLInpageSelect() { $inpage = $this->getInPageFromGet(); $arrNumbers = array("10", "25", "50", "100"); $fieldInpage = self::GET_FIELD_INPAGE; $htmlSelect = HelperHtmlUC::getHTMLSelect($arrNumbers, $inpage, "name='{$fieldInpage}' class='unite-tableitems-selectrecords' onchange='this.form.submit()'"); $htmlGetFields = $this->getHtmlHiddenInputs($fieldInpage); $html = $this->getHtmlFormSelect($htmlSelect, $htmlGetFields); return $html; } public function putFilterCategory() { $cat = $this->getCategoryFromGet(); $objCats = new UniteCreatorCategories(); $arrCats = $objCats->getCatsShort("all_uncat_layouts", "layout"); $html = ""; $fieldCat = self::GET_FIELD_CATEGORY; if ($cat === "" || $cat === null) { $cat = "all"; } $htmlSelect = HelperHtmlUC::getHTMLSelect($arrCats, $cat, "name='{$fieldCat}' class='unite-tableitems-category' onchange='this.form.submit()'", true); $htmlGetFields = $this->getHtmlHiddenInputs($fieldCat); $html = "<span class='uc-table-top-filter-title'>" . esc_html__("Filter Category", "unlimited-elements-for-elementor") . "</span>"; $html .= $this->getHtmlFormSelect($htmlSelect, $htmlGetFields); echo UniteProviderFunctionsUC::escCombinedHtml($html); } private function getPaginationHtml() { $this->validatePaging(); $item_per_page = $this->inPage; $current_page = $this->page; $total_records = $this->total; $total_pages = $this->numPages; $isShowExtras = true; $pagination = ''; if ($total_pages > 0 && $total_pages != 1 && $current_page <= $total_pages) { $pagination .= '<ul class="unite-pagination class-for-pagination">'; $right_links = $current_page + 8; $previous = $current_page - 1; $next = $current_page + 1; $first_link = true; if ($current_page > 1 && $isShowExtras == true) { $previous_link = $previous == 0 ? 1 : $previous; $urlFirst = $this->getUrlPage(1); $urlPrev = $this->getUrlPage($previous_link); $titleFirst = esc_html__("First", "unlimited-elements-for-elementor"); $titlePrev = esc_html__("Previous", "unlimited-elements-for-elementor"); $textFirst = ""; $textPrev = ""; $pagination .= '<li class="unite-first"><a href="' . $urlFirst . '" title="' . $titleFirst . '" > « ' . $textFirst . '</a></li>'; $pagination .= '<li><a href="' . $urlPrev . '" title="' . $titlePrev . '">< ' . $textPrev . '</a></li>'; for ($i = $current_page - 3; $i < $current_page; $i++) { if ($i > 0) { $urlPage = $this->getUrlPage($i); $pagination .= '<li><a href="' . $urlPage . '">' . $i . '</a></li>'; } } $first_link = false; } if ($first_link) { $pagination .= '<li class="unite-first unite-active"><a href="javascript:void(0)">' . $current_page . '</a></li>'; } elseif ($current_page == $total_pages) { $pagination .= '<li class="unite-last unite-active"><a href="javascript:void(0)">' . $current_page . '</a></li>'; } else { $pagination .= '<li class="unite-active"><a href="javascript:void(0)">' . $current_page . '</a></li>'; } for ($i = $current_page + 1; $i < $right_links; $i++) { if ($i <= $total_pages) { $urlPage = $this->getUrlPage($i); $pagination .= '<li><a href="' . $urlPage . '">' . $i . '</a></li>'; } } if ($current_page < $total_pages && $isShowExtras == true) { $next_link = $i > $total_pages ? $total_pages : $i; $urlNext = $this->getUrlPage($next_link); $urlLast = $this->getUrlPage($total_pages); $titleNext = esc_html__("Next Page", "unlimited-elements-for-elementor"); $titleLast = esc_html__("Last Page", "unlimited-elements-for-elementor"); $textNext = ""; $textLast = ""; $pagination .= "<li><a href=\"{$urlNext}\" title=\"{$titleNext}\" >{$textNext} ></a></li>"; $pagination .= "<li class=\"unite-last\"><a href=\"{$urlLast}\" title=\"{$titleLast}\" >{$textLast} » </a></li>"; } $pagination .= '</ul>'; } return $pagination; } public function putPaginationHtml() { $this->validatePaging(); $html = $this->getPaginationHtml(); echo UniteProviderFunctionsUC::escCombinedHtml($html); } public function putInpageSelect() { $this->validatePaging(); if ($this->total <= 10) { return ""; } $html = $this->getHTMLInpageSelect(); echo UniteProviderFunctionsUC::escCombinedHtml($html); } public function putSearchForm($buttonText = "", $clearText = "", $putByDefault = true) { $this->validateTopActions(); $html = ""; $fieldValue = $this->getSearchValueFromGet(); $fieldValue = htmlspecialchars($fieldValue); if (empty($buttonText)) { $buttonText = esc_html__("Search", "unlimited-elements-for-elementor"); } if (empty($clearText)) { $clearText = esc_html__("Clear", "unlimited-elements-for-elementor"); } $fieldName = self::GET_FIELD_SEARCH; $htmlFields = $this->getHtmlHiddenInputs($fieldName); $urlClear = $this->getUrlPage(); $isTotalAllow = $this->total > 5; if ($isTotalAllow == false && empty($fieldValue)) { return false; } if ($putByDefault == false && empty($fieldValue)) { return false; } if ($this->isInsideTopActions == false) { $urlForm = $this->baseUrl; $html .= self::TAB2 . "<form name='unite_form_table_search' method='get' action='{$urlForm}'>" . self::BR; } $html .= self::TAB2 . "\t<input name='{$fieldName}' type='text' class='unite-input-medium mbottom_0 unite-cursor-text' value=\"{$fieldValue}\"/> " . self::BR; $html .= self::TAB2 . "\t<button class='unite-button-primary' type='submit' value='1'>" . $buttonText . "</button>" . self::BR; if (!empty($fieldValue)) { $urlClear = $this->getUrlPage(null, self::GET_FIELD_SEARCH); $html .= self::TAB2 . "\t<a class='unite-button-secondary' href=\"{$urlClear}\" >" . $clearText . "</a>" . self::BR; } if ($this->isInsideTopActions == false) { $html .= self::TAB3 . $htmlFields . self::BR; $html .= self::TAB2 . "</form>" . self::BR; } if (!empty($searchValue)) { $html .= "\t<a href=\"{$url}\" class=\"unite-button-secondary\">" . $clearText . "</a>"; } echo UniteProviderFunctionsUC::escCombinedHtml($html); } public function putTableOrderHeader($name, $text) { $currentOrder = $this->getOrderValueFromGet(); $currentOrderField = str_replace("_desc", "", $currentOrder); $isDesc = $currentOrder != $currentOrderField; $orderForLink = $name; if ($currentOrderField == $name && $isDesc == false) { $orderForLink = $name . "_desc"; } $link = $this->getUrlPage(null, self::GET_FIELD_ORDER); $link = UniteFunctionsUC::addUrlParams($link, self::GET_FIELD_ORDER . "=" . $orderForLink); $signUp = "∧"; $signDown = "∨"; $linkText = $text; if ($name == $currentOrderField) { if ($isDesc == true) { $linkText .= " " . $signUp; } else { $linkText .= " " . $signDown; } } $html = "<a href='{$link}'>{$linkText}</a>"; echo UniteProviderFunctionsUC::escCombinedHtml($html); } }