+ Improved documentation
+ Delete single local storage of a link
++ Done by uncheck the store image locally option
+ + Sorting in category view
+ Fixed a bug in tag selection SQL query
version 2.2 - Guardian of Ice - (2019-02-27)
return $ret;
}
- /**
- * find all links by given category string or id.
- * Return array sorted by creation date DESC
- * @param int $id
- * @param string $string
- * @param int $limit
- * @param bool $offset
- * @return array
- */
- public function linksByCategory($id, $string, $limit=5, $offset=false) {
+ /**
+ * find all links by given category string or id.
+ * Return array sorted by creation date DESC
+ * @param int $id Category ID
+ * @param string $string Category as string
+ * @param array $options Array with limit|offset|sort|sortDirection
+ * @return array
+ */
+ public function linksByCategory($id, $string, $options=array()) {
$ret = array();
+ if(!isset($options['limit'])) $options['limit'] = 5;
+ if(!isset($options['offset'])) $options['offset'] = false;
+ if(!isset($options['sort'])) $options['sort'] = false;
+ if(!isset($options['sortDirection'])) $options['sortDirection'] = false;
+
$querySelect = "SELECT ".self::COMBINED_SELECT_VALUES;
$queryFrom = " FROM `".DB_PREFIX."_combined` AS t";
$queryWhere = " WHERE ".$this->_decideLinkTypeForQuery();
return $ret;
}
- $queryOrder = "GROUP BY t.hash
- ORDER BY t.created DESC";
+ $queryGroup = " GROUP BY t.hash";
+ $queryOrder = " ORDER BY";
+ if(!empty($options['sort'])) {
+ $queryOrder .= ' t.'.$options['sort'];
+ }
+ else {
+ $queryOrder .= " t.created";
+ }
+ if(!empty($options['sortDirection'])) {
+ $queryOrder .= ' '.$options['sortDirection'];
+ }
+ else {
+ $queryOrder .= " DESC";
+ }
+
$queryLimit = '';
- if(!empty($limit)) {
- $queryLimit .= " LIMIT $limit";
- if($offset !== false) {
- $queryLimit .= " OFFSET $offset";
+ # this allows the set the limit to false
+ if(!empty($options['limit'])) {
+ $queryLimit .= " LIMIT ".$options['limit'];
+ # offset can be 0
+ if($options['offset'] !== false) {
+ $queryLimit .= " OFFSET ".$options['offset'];
}
}
- $query = $this->DB->query($querySelect.$queryFrom.$queryWhere.$queryOrder.$queryLimit);
+ $query = $this->DB->query($querySelect.$queryFrom.$queryWhere.$queryGroup.$queryOrder.$queryLimit);
+
if(!empty($query) && $query->num_rows > 0) {
while($result = $query->fetch_assoc()) {
$linkObj = new Link($this->DB);
<?php
if(!empty($orderedCategories)) {
foreach ($orderedCategories as $k=>$v) {
- $links = $Management->linksByCategory($v['id'],false);
+ $links = $Management->linksByCategory($v['id'],'');
?>
<div class="column is-one-quarter">
<div class="content">
$sortLink['active'] = 'default';
$sortLink['activeDirection'] = false;
-if(!empty($_sort) && $_sort === 'name') {
- $currentGetParameters['s'] = 'name';
- $sortLink['active'] = 'name';
+$_saveSort = false;
+if(!empty($_sort) && $_sort === 'title') {
+ $currentGetParameters['s'] = 'title';
+ $sortLink['active'] = 'title';
+ $_saveSort = 'title';
}
+$_saveSortDirection = false;
if(!empty($_sortDirection) && $_sortDirection === 'asc') {
$currentGetParameters['sd'] = 'asc';
$sortLink['activeDirection'] = true;
+ $_saveSortDirection = 'asc';
}
switch($_requestMode) {
$catname = $catObj->getData('name');
$subHeadline = $catname.' <i class="ion-md-filing"></i>';
- $linkCollection = $Management->linksByCategory($_id,false,RESULTS_PER_PAGE, (RESULTS_PER_PAGE * ($_curPage-1)));
+ $_options = array(
+ 'limit' => RESULTS_PER_PAGE,
+ 'offset' =>(RESULTS_PER_PAGE * ($_curPage-1))
+ );
+ if(!empty($_saveSort)) $_options['sort'] = $_saveSort;
+ if(!empty($_saveSortDirection)) $_options['sortDirection'] = $_saveSortDirection;
+
+ $linkCollection = $Management->linksByCategory($_id,'',$_options);
$currentGetParameters['id'] = $_id;
}
}
$sortLink['default'] = Summoner::createFromParameterLinkQuery($currentGetParameters,array('s'=>false,'sd'=>false));
-$sortLink['name'] = Summoner::createFromParameterLinkQuery($currentGetParameters,array('s'=>'name','sd'=>false));
+$sortLink['name'] = Summoner::createFromParameterLinkQuery($currentGetParameters,array('s'=>'title','sd'=>false));
$sortLink['direction'] = Summoner::createFromParameterLinkQuery($currentGetParameters,array('sd'=>'asc'));
\ No newline at end of file
<a href="index.php?<?php echo $sortLink['default']; ?>"
class="button is-small <?php if($sortLink['active'] === 'default') { ?>is-link<?php } ?>">default</a>
<a href="index.php?<?php echo $sortLink['name']; ?>"
- class="button is-small <?php if($sortLink['active'] === 'name') { ?>is-link<?php } ?>">name</a>
+ class="button is-small <?php if($sortLink['active'] === 'title') { ?>is-link<?php } ?>">title</a>
<a href="index.php?<?php echo $sortLink['direction']; ?>"
class="button is-small <?php if($sortLink['activeDirection'] === true) { ?>is-link<?php } ?>"><span class="icon"><i class="ion-md-arrow-dropup"></i></span></a>
</div>