| Server IP : 195.130.67.5 / Your IP : 216.73.216.231 Web Server : Microsoft-IIS/10.0 System : Windows NT WEBSERVER1 10.0 build 17763 (Windows Server 2016) i586 User : IUSR ( 0) PHP Version : 7.4.19 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : C:/inetpub/wwwroot/includes/ |
Upload File : |
<?
////////////////////////////////////////////////////////////////////////////////////////
// Class: Categories
// Purpose: Κλάση διαχείρισης κατηγοριών
///////////////////////////////////////////////////////////////////////////////////////
require_once('Translator.php');
class Categories
{
public $category_settings;
public $menuData;
private $connector;
private $translator;
public function __construct($db, $current_lang_id=0, $untranslated_categories_policy=0)
{
$this->connector = $db;
$this->translator = new Translator($db);
if ($current_lang_id!=0)
$this->menuData = $this->buildMenuData($current_lang_id, $untranslated_categories_policy);
}
// Καθορισμός της τρέχουσας κατηγορίας και των παραμέτρων της
public function defineCurrentCategorySettings($cat_id, $id)
{
// Καθορισμός της τρέχουσας κατηγορίας
if ($cat_id==0 and $id!=0)
{
$result = $this->connector->query("SELECT * FROM content WHERE id=$id");
if ($myrow = $this->connector->fetchArray($result))
$cat_id = $myrow["category_id"];
}
if ($this->menuData['items'][$cat_id]!=NULL) // Αν το $cat_id αντιστοιχεί σε υπάρχουσα κατηγορία
{
$this->category_settings = $this->menuData['items'][$cat_id];
}
else // Εαν δεν υπάρχει κατηγορία με το συγκεκριμένο id γύρνα στην default κατηγορία
{
$result = $this->connector->query("SELECT * FROM categories WHERE default_cat=1");
if (!($myrow = $this->connector->fetchArray($result))) // Αν δεν υπάρχει default κατηγορία, όρισε σαν default την πρώτη στη σειρά
{
$result = $this->connector->query("SELECT * FROM categories WHERE parent_id=0 ORDER BY sort_order ASC LIMIT 0,1");
if ($myrow = $this->connector->fetchArray($result))
{
$this->connector->query("UPDATE categories SET default_cat=1 WHERE id=".$myrow["id"]);
}
else
{
return false;
}
}
$this->category_settings = $this->menuData['items'][$myrow["id"]];
}
// Αν τελικά δε βρέθηκε καμία κατηγορία ως τρέχουσα (πιθανόν να μην έχει δημιουργηθεί καμία κατηγορία ακόμα) βάλε ως τρέχουσα κατηγορία την 1
if (empty($this->category_settings["id"]))
{
$this->category_settings["id"] = 1;
$this->category_settings["parent_id"] = 0;
$this->category_settings["title"] = "";
$this->category_settings["menu_type"] = 1;
$this->category_settings["articles_layout"] = "blog";
$this->category_settings["blog_head_articles"] = 0;
$this->category_settings["blog_article_rows"] = 1;
$this->category_settings["list_show_date"] = 1;
$this->category_settings["list_show_author"] = 1;
$this->category_settings["articles_per_page"] = 5;
$this->category_settings["articles_sort_order"] = 0;
$this->category_settings["access"] = 0;
}
return $this->category_settings;
}
// Επιστρέφει πίνακα με τα στοιχεία των πεδίων της κατηγορίας με το δοσμένο id
public function getCategoryById($id)
{
$result = $this->connector->query("SELECT * FROM categories WHERE id=$id");
$myrow = $this->connector->fetchArray($result);
return $myrow;
}
// Προσθέτει νέα κατηγορία κάτω από τη δοσμένη γονική κατηγορία (parent_id) και στο τέλος των ήδη υπαρχόντων υποκατηγοριών και επιστρέφει το id της νέας κατηγορίας
public function insertCategory($parent_id, $new_category_title)
{
$result = $this->connector->query("SELECT MAX(sort_order) FROM categories WHERE parent_id=".$parent_id);
$myrow = $this->connector->fetchArray($result);
$new_sort_number = $myrow["MAX(sort_order)"] + 1;
$result = $this->connector->query("INSERT INTO categories (parent_id, sort_order, title, menu_type, show_submenu) VALUES ('$parent_id','$new_sort_number','$new_category_title',1,0)");
return $result;
}
// Ενημερώνει στα πεδία μιας κατηγορίας
public function updateCategory($id, $title, $description, $internal_link, $external_link, $show_submenu, $menu_type, $show_in_primarymenu, $picture, $articles_per_page, $articles_sort_order, $contact_type, $contact_id, $contact_category_id, $contact_parameters, $multiple_cat_ids, $articles_layout, $blog_head_articles, $blog_article_rows, $list_show_date, $list_show_author, $auth_page_type, $search_in, $access, $photogallery_id, $classname, $show_rss_link)
{
$result = $this->connector->query("UPDATE categories SET title='$title', description='$description', internal_link=$internal_link, external_link='$external_link', show_submenu='$show_submenu', menu_type='$menu_type', show_in_primarymenu='$show_in_primarymenu', picture='$picture', articles_per_page='$articles_per_page', articles_sort_order='$articles_sort_order', contact_type=$contact_type, contact_id=$contact_id, contact_category_id=$contact_category_id, contact_parameters='$contact_parameters', multiple_cat_ids='$multiple_cat_ids', articles_layout='$articles_layout', blog_head_articles=$blog_head_articles, blog_article_rows=$blog_article_rows, list_show_date=$list_show_date, list_show_author=$list_show_author, auth_page_type=$auth_page_type, search_in=$search_in, access=$access, photogallery_id=$photogallery_id, classname='$classname', show_rss_link=$show_rss_link WHERE id=$id");
return $result;
}
// Διαγράφει την κατηγορία με συγκεκριμένο id
public function deleteCategory($id)
{
$result = $this->connector->query("DELETE FROM categories WHERE id=".$id);
return $result;
}
// Ελέγχει αν μια κατηγορία είναι γονέας άλλων υποκατηγοριών. Αν δε δοθεί η παράμετρος id ελέγχεται η τρέχουσα κατηγορία
public function hasSubCategories($id="")
{
if ($id=="")
$id = $this->category_settings["id"];
$result = $this->connector->query("SELECT * FROM categories WHERE parent_id=".$id);
if ($this->connector->getNumRows($result)>0)
return true;
else
return false;
}
// Επαναταξινομεί με συνεχόμενο αύξοντα αριθμό τις κατηγορίες με το δοσμένο κοινό γονέα (parent_id)
public function reorderCategories($parent_id)
{
$result = $this->connector->query("SELECT * FROM categories WHERE parent_id=".$parent_id." ORDER BY sort_order, title");
$pos = 0;
while ($myrow = $this->connector->fetchArray($result))
{
++$pos;
$this->connector->query("UPDATE categories SET sort_order=".$pos." WHERE id=".$myrow["id"]);
}
}
// Θέτει τη συγκεκριμένη κατηγορία ως default
public function setDefaultCategory($id)
{
$result = $this->connector->query("UPDATE categories SET default_cat=0");
if ($result==true)
$result = $this->connector->query("UPDATE categories SET default_cat=1 WHERE id=".$id);
return $result;
}
// Μετακινεί μια κατηγορία είτε αναταξινομώντας της με βάση τη νέα της τιμή sort_order είτε αλλάζοντας τον γονέα της με βάση τον νέο parent_id
public function moveCategory($id, $new_parent_id, $new_sort_order)
{
// Αποθήκευσε το παλιό parent_id για επαναφορά σε περίπτωση αποτυχίας
$myrow = $this->getCategoryById($id);
$old_parent_id = $myrow["parent_id"];
// Βγάλε προσωρινά την επιλεγμένη κατηγορία από τον αρχικό της γονέα
$result = $this->connector->query("UPDATE categories SET parent_id=-1 WHERE id=$id");
$this->reorderCategories($new_parent_id); // Επαναταξινόμησε τις υποκατηγορίες του νέου γονέα με συνεχόμενο αύξοντα αριθμό (ξεκινώντας από 1)
// Βρες και αύξησε κατά ένα το sort_order όλων των υποκατηγοριών που έχουν sort_order μεγαλύτερο ή ίσο με το $new_sort_order της υπο μετακίνηση κατηγορίας
$result = $this->connector->query("SELECT * FROM categories WHERE parent_id=$new_parent_id and sort_order>=$new_sort_order ORDER BY sort_order");
while ($myrow = $this->connector->fetchArray($result))
{
$this->connector->query("UPDATE categories SET sort_order=".($myrow["sort_order"]+1)." WHERE id=".$myrow["id"]);
}
// Μετακίνησε την επιλεγμένη κατηγορία στον νέο γονέα και θέση
$result = $this->connector->query("UPDATE categories SET parent_id=$new_parent_id, sort_order=$new_sort_order WHERE id=$id");
// Επανέφερε την κατηγορία στην αρχική της θέση σε περίπτωση αποτυχίας
if ($result==false)
$this->connector->query("UPDATE categories SET parent_id=$old_parent_id WHERE id=$id");
return $result;
}
// Καθορίζει τα κατάλληλα category_settings ανάλογα με το δοσμένο $action. Μετά το 100 όλα τα menu_type είναι ελεύθερα προς χρήση
public function actionController($action)
{
if ($action=="login")
{
$this->category_settings["menu_type"] = 8;
$this->category_settings["auth_page_type"] = 0;
$this->category_settings["id"] = -1; // To id=-1 αντιστοιχεί σε σελίδα αυθεντικοποίησης
}
else if ($action=="register" or $action=="register_submit" or $action=="activation")
{
$this->category_settings["menu_type"] = 8;
$this->category_settings["auth_page_type"] = 1;
$this->category_settings["id"] = -1; // To id=-1 αντιστοιχεί σε σελίδα αυθεντικοποίησης
$this->category_settings["title"] = _CREATE_ACCOUNT;
}
else if ($action=="lost_password_request" or $action=="submit_new_password")
{
$this->category_settings["menu_type"] = 8;
$this->category_settings["auth_page_type"] = 3;
$this->category_settings["id"] = -1; // To id=-1 αντιστοιχεί σε σελίδα αυθεντικοποίησης
$this->category_settings["title"] = _LOST_PASSWORD_QUESTION;
}
else if ($action=="myaccount" and isset($_SESSION["userid"]))
{
$this->category_settings["menu_type"] = 8;
$this->category_settings["auth_page_type"] = 2;
$this->category_settings["id"] = -1; // To id=-1 αντιστοιχεί σε σελίδα αυθεντικοποίησης
$this->category_settings["title"] = _USER_MYACCOUNT;
}
else if ($action=="search" and $this->category_settings["menu_type"] != 5)
{
$this->category_settings["menu_type"] = 5;
$this->category_settings["id"] = -2; // To id=-2 αντιστοιχεί σε σελίδα αναζήτησης άρθρων
$this->category_settings["title"] = _SEARCH;
}
else if ($action=="calendar")
{
$this->category_settings["menu_type"] = 101;
$this->category_settings["id"] = -3; // To id=-3 αντιστοιχεί σε σελίδα αρχείου άρθρων
$this->category_settings["title"] = _ARCHIVE;
$this->category_settings["articles_layout"] = "list";
$this->category_settings["articles_per_page"] = 99999;
$this->category_settings["list_show_date"] = 1;
$this->category_settings["list_show_author"] = 0;
}
else if ($action=="newsletter_register_submit" or $action=="subscriber_activation" or $action=="unsubscribe")
{
$this->category_settings["menu_type"] = 102;
$this->category_settings["id"] = -4; // To id=-4 αντιστοιχεί σε σελίδα εγγραφής στο Newsletter
$this->category_settings["title"] = _NEWSLETTER_REGISTRATION;
}
else if ($action=="searchtags")
{
$this->category_settings["menu_type"] = 103;
$this->category_settings["id"] = -5; // To id=-5 αντιστοιχεί σε σελίδα προβολής άρθρων με συγκεκριμένο tag
$this->category_settings["title"] = _TAGS;
}
return $this->category_settings;
}
// Φτιάχνει πίνακα με τα μενού (κατηγορίες) και τις διασυνδέσεις μεταξύ τους
public function buildMenuData($current_lang_id, $untranslated_categories_policy)
{
$menuData = array('items' => array(), 'parents' => array());
$sql = "SELECT * FROM categories WHERE 1 ORDER BY parent_id, sort_order, title";
$result = $this->connector->query($this->translator->fixSqlStatement($sql, $current_lang_id, "categories", $untranslated_categories_policy));
while ($menuItem = mysqli_fetch_assoc($result))
{
if ($current_lang_id != $this->translator->default_lang["id"]) // Αν δεν έχουμε Default γλώσσα
{
$translated_fields = $this->translator->fetchTranslatedContent($current_lang_id, $menuItem["id"], "categories");
if (count($translated_fields)>0) // Αν υπάρχει μετάφραση στην τρέχουσα γλώσσα
{
$menuItem["title"] = $translated_fields["title"];
$menuItem["description"] = $translated_fields["description"];
}
}
$menuData['items'][$menuItem['id']] = $menuItem;
$menuData['parents'][$menuItem['parent_id']][] = $menuItem['id'];
}
return $menuData;
}
// Δημιουργεί και επιστρέφει σε HTML όλη τη δομή ενός μενού (ul>li>ul>li κλπ) ξεκινώντας από τον γονέα $parent_id και φτάνοντας μέχρι βάθος $depth
public function buildMenu($parent_id, $current_catpath = array(), $depth=9999)
{
$html = '';
if (isset($this->menuData['parents'][$parent_id]) and $depth>0)
{
$html = '<ul class="nav_list">';
foreach ($this->menuData['parents'][$parent_id] as $itemId)
{
if ($this->menuData['items'][$itemId]['access']==1 and $_SESSION["perm_frontend_view_registered_content"]==0) // Δεν εμφανίζει το μενού αν είναι Ιδιωτικό και ο χρήστης δεν έχει εξουσιοδότηση
continue;
if (strstr($this->menuData['items'][$itemId]['link'],"?"))
$param_mark="&";
else
$param_mark="?";
$menu_class="";
$menu_class ="";
if ($this->menuData['items'][$itemId]['show_in_primarymenu']==0)
$menu_class = 'noprimarymenu';
if (in_array($itemId,$current_catpath))
{
if ($menu_class!="")
$menu_class .= ' ';
$menu_class .= 'active';
}
if (!empty($this->menuData['parents'][$itemId]) and count($this->menuData['parents'][$itemId])>0) // Ελέγχει αν η κατηγορία περιέχει υποκατηγορίες και θέτει την αντίστοιχη κλάση
{
if ($menu_class!="")
$menu_class .= ' ';
$menu_class .= 'has_submenus';
}
if ($this->menuData['items'][$itemId]['classname']!="")
{
if ($menu_class!="")
$menu_class .= ' ';
$menu_class .= $this->menuData['items'][$itemId]['classname'];
}
if ($menu_class!="")
$menu_class = ' class="'.$menu_class.'"';
if ($this->menuData['items'][$itemId]['menu_type']==3)
{
if ($this->menuData['items'][$itemId]['external_link']=="" or $this->menuData['items'][$itemId]['external_link']=="http://")
$anchor_params = ' href="javascript:;"';
else
{
$anchor_params = ' href="'.$this->menuData['items'][$itemId]['external_link'].'"';
if (strstr($this->menuData['items'][$itemId]['external_link'],"http://"))
$anchor_params .= ' target="_blank"';
}
}
else
$anchor_params = ' href="index.php?cat_id='.$this->menuData['items'][$itemId]['id'].'"';
$menu_picture = "";
if ($this->menuData['items'][$itemId]['picture']!="")
{
if ($dimensions = getimagesize($this->menuData['items'][$itemId]['picture'])) // Ελέγχει αν υπάρχει το αρχείο, αν είναι εικόνα και επιστρέφει και τις διαστάσεις της
$menu_picture = "<img src=".$this->menuData['items'][$itemId]['picture']." ".$dimensions[3]." />";
}
$html .= '<li'.$menu_class.'><a'.$anchor_params.'>'.$menu_picture.($menu_picture!=""?"<span>":"").$this->menuData['items'][$itemId]['title'].($menu_picture!=""?"</span>":"").'</a>';
// find childitems recursively
$html .= $this->buildMenu($itemId, $current_catpath, ($depth-1));
$html .= '</li>';
}
$html .= '</ul>';
}
return $html;
}
// CMS: Δημιουργεί και επιστρέφει σε μορφή HTML options list όλη τη δομή ενός μενού ξεκινώντας από τον γονέα $parent_id
public function buildControlMenu($parent_id, $selected_categories_array=array(), $disabled_category=0, $depth=0)
{
$html = '';
if (isset($this->menuData['parents'][$parent_id]))
{
++$depth;
foreach ($this->menuData['parents'][$parent_id] as $itemId)
{
$spaces="";
for ($i=0; $i<$depth; ++$i)
{
$spaces.=" ";
}
$new_option = '<option value='.$this->menuData['items'][$itemId]['id'];
if ($depth>1)
$new_option .= ' style="background: url(images/categories_tree_line.png) no-repeat '.($depth*20-14).'px 1px;"';
if (in_array($this->menuData['items'][$itemId]['id'], $selected_categories_array))
$new_option .= ' selected';
if ($this->menuData['items'][$itemId]['id']==$disabled_category)
$new_option .= ' disabled';
$new_option .='>'.$spaces.$this->menuData['items'][$itemId]['title'].'</option>';
$html .= $new_option;
// find childitems recursively
$html .= $this->buildControlMenu($itemId, $selected_categories_array, $disabled_category, $depth);
$html .= '</option>';
}
}
return $html;
}
// CMS: Δημιουργεί και επιστρέφει σε μορφή HTML ordered λίστας όλη τη δομή ενός μενού ξεκινώντας από τον γονέα $parent_id
public function buildControlNestedListMenu($parent_id, $selected_categories_array, $disabled_category=0, $depth=0)
{
if ($depth==0)
$html = '<ol class="sortable">';
else
$html = '<ol>';
if (isset($this->menuData['parents'][$parent_id]))
{
++$depth;
foreach ($this->menuData['parents'][$parent_id] as $itemId)
{
$extra_style = '';
if ($this->menuData['items'][$itemId]['default_cat'] == 1)
$extra_style = 'default';
if (in_array($this->menuData['items'][$itemId]['id'], $selected_categories_array))
$extra_style .= ' selected';
if ($extra_style!='')
$extra_style = ' class="'.$extra_style.'"';
$li = '<li id="cat_'.$this->menuData['items'][$itemId]['id'].'"><div'.$extra_style.'>'.$this->menuData['items'][$itemId]['title'];
$li .= '<span class="actions"><img class="move" src="images/sortable_move.png" title="Μετακίνηση"><a href="#" class="add_category" title="Νέα υπο-κατηγορία"><img src="images/sortable_add_category.png"></a><a href="#" class="delete_category"title="Διαγραφή κατηγορίας"><img src="images/sortable_delete.png"></a><a href="#" class="default_category" title="Προεπιλεγμένη κατηγορία"><img src="images/icon_default.png"></a></span></div>';
$html .= $li;
// find childitems recursively
$html .= $this->buildControlNestedListMenu($itemId, $selected_categories_array, $disabled_category, $depth);
$html .= '</li>';
}
}
$html .= '</ol>';
return $html;
}
// Επιστρέφει έναν πίνακα με τα IDs όλων των υποκατηγοριών παιδιών της δοσμένης κατηγορίας
public function findAllChildCategories($parent_id, $recurcivecall=0)
{
$html = "";
if (isset($this->menuData['parents'][$parent_id]))
{
foreach ($this->menuData['parents'][$parent_id] as $itemId)
{
$html .= $this->menuData['items'][$itemId]['id']."#";
// find childitems recursively
$html .= $this->findAllChildCategories($itemId, 1);
}
}
if ($recurcivecall==0)
{
$html = rtrim($html,"#");
if ($html!="")
return explode("#",$html);
else
return array();
}
else
return $html;
}
// Αποθηκεύει στον πίνακα $cat_path = array('id' => array(), 'title' => array()); το πλήρες path (γονικές κατηγορίες μέχρι το root) της δοσμένης κατηγορίας
public function buildCategoryPath($cat_id, $current_lang_id=0)
{
global $current_lang;
$cat_path = array('id' => array(), 'title' => array());
$next_cat_id = "";
$next_cat_title = "";
$cur_cat_id = $cat_id;
$result = $this->connector->query("SELECT * FROM categories WHERE id=$cur_cat_id");
$loop = 0;
while ($myrow = $this->connector->fetchArray($result))
{
if ($current_lang_id!=0 and $current_lang_id != $this->translator->default_lang["id"]) // Αν δεν έχουμε Default γλώσσα
{
$translated_fields = $this->translator->fetchTranslatedContent($current_lang_id, $myrow["id"], "categories","title");
if (count($translated_fields)>0) // Αν υπάρχει μετάφραση στην τρέχουσα γλώσσα
{
$myrow["title"] = $translated_fields["title"];
}
}
if ($loop==0)
{
$next_cat_id=$myrow["id"];
$next_cat_title=$myrow["title"];
++$loop;
}
else
{
$next_cat_id.="##".$myrow["id"];
$next_cat_title.="##".$myrow["title"];
}
if (($cur_cat_id=$myrow["parent_id"])==0)
break;
$result = $this->connector->query("SELECT * FROM categories WHERE id=$cur_cat_id");
}
$cat_path['id'] = explode("##",$next_cat_id);
$cat_path['id'] = array_reverse($cat_path['id']);
$cat_path['title'] = explode("##",$next_cat_title);
$cat_path['title'] = array_reverse($cat_path['title']);
return $cat_path;
}
// Επιστρέφει σε μια μεταβλητή τον HTML κώδικα του breadcrumb
public function buildBreadcrumb($cat_path)
{
$html='<ul><li class="home"><a href="index.php">'._HOME.'</a></li>';
if ($this->category_settings["id"]<0)
$html .= '<li><a href="index.php?'.$_SERVER["QUERY_STRING"].'">'.$this->category_settings["title"].'</a></li>';
else
{
for ($i=0; $i< count($cat_path['id']); ++$i)
$html .= '<li><a href="index.php?cat_id='.$cat_path['id'][$i].'">'.$cat_path['title'][$i].'</a></li>';
}
if ($html=='<ul>')
$html = '';
else
$html .= '</ul>';
return $html;
}
// Δημιουργεί τον HTML κώδικα του μενού της σελιδοποίησης για τις κατηγορίες με πολλά άρθρα
public function buildPagination($total_articles, $start)
{
$html = "";
if ($total_articles>$this->category_settings["articles_per_page"])
{
$html .= "<ul>";
if ($start==0)
{
$html .= '<li class="pagination_first"><span class="pagenav">« '._FIRST_PAGE.'</span></li>';
$html .= '<li class="pagination_prev"><span class="pagenav">‹ '._PREV_PAGE.'</span></li>';
}
else
{
$html .= '<li class="pagination_first"><a href="index.php?cat_id='.$this->category_settings["id"].'&start=0" class="pagenav" title="'._FIRST_PAGE.'">« '._FIRST_PAGE.'</a></li>';
$html .= '<li class="pagination_prev"><a href="index.php?cat_id='.$this->category_settings["id"].'&start='.($start-$this->category_settings["articles_per_page"]).'" class="pagenav" title="'._PREV_PAGE.'">‹ '._PREV_PAGE.'</a></li>';
}
$displayed_pagenumbers = 8; // Το μέγιστο πλήθος των αριθμών σελίδων (pagenumbers) που θα εμφανίζονται στο μενού της σελιδοποίησης
$total_pagenumbers = ceil($total_articles/$this->category_settings["articles_per_page"]); // Ο συνολικός αριθμός σελίδων
$current_pagenumber = $start/$this->category_settings["articles_per_page"] + 1; // Το τρέχον pagenumber
$start_pagenumber = $current_pagenumber - floor($displayed_pagenumbers/2); // Το πρώτο εμφανιζόμενο pagenumber
if ($start_pagenumber<1)
{
$start_pagenumber = 1;
}
if (($start_pagenumber + $displayed_pagenumbers) > $total_pagenumbers)
{
$stop_pagenumber = $total_pagenumbers;
if ($total_pagenumbers < $displayed_pagenumbers)
{
$start_pagenumber = 1;
}
else
{
$start_pagenumber = $total_pagenumbers - $displayed_pagenumbers + 1;
}
}
else
{
$stop_pagenumber = $start_pagenumber + $displayed_pagenumbers - 1;
}
for ($i=$start_pagenumber; $i<=$stop_pagenumber ; ++$i)
{
if ((($i-1)*$this->category_settings["articles_per_page"])==$start)
{
$html .= '<li><span class="pagenav">'.$i.'</span></li>';
}
else
{
$html .= '<li><a href="index.php?cat_id='.$this->category_settings["id"].'&start='.(($i-1)*$this->category_settings["articles_per_page"]).'" class="pagenav" title="'.$i.'">'.$i.'</a></li>';
}
}
$last_page_articles_num = $total_articles%$this->category_settings["articles_per_page"];
if ($last_page_articles_num==0)
{
$last_page_articles_num = $this->category_settings["articles_per_page"];
}
if (($start + $last_page_articles_num) == $total_articles)
{
$html .= '<li class="pagination_next"><span class="pagenav">'._NEXT_PAGE.' ›</span></li>';
$html .= '<li class="pagination_last"><span class="pagenav">'._LAST_PAGE.' »</span></li>';
}
else
{
$html .= '<li class="pagination_next"><a href="index.php?cat_id='.$this->category_settings["id"].'&start='.($start+$this->category_settings["articles_per_page"]).'" class="pagenav" title="'._NEXT_PAGE.'">'._NEXT_PAGE.' ›</a></li>';
$html .= '<li class="pagination_last"><a href="index.php?cat_id='.$this->category_settings["id"].'&start='.($total_articles-$last_page_articles_num).'" class="pagenav" title="'._LAST_PAGE.'">'._LAST_PAGE.' »</a></li>';
}
$html .= "</ul>";
$html .= '<p class="counter">'._PAGE.' '.($start/$this->category_settings["articles_per_page"]+1).' '._OF.' '.ceil($total_articles/$this->category_settings["articles_per_page"]).'</p>';
}
return $html;
}
public function getContentType($menu_type)
{
if ($menu_type==0 or $menu_type==1 or $menu_type==7)
return 0;
else if ($menu_type==4)
return 1;
else
return -1;
}
// Επιστρέφει πίνακα με τις τιμές του πεδίου contact_parameters της κατηγορίας
public function getContactParametersArray()
{
if ($this->category_settings["contact_parameters"]!="")
return explode(",",$this->category_settings["contact_parameters"]);
else
return array(1,1,1,1,1,1,1,1,1);
}
}