+ Improved documentation
+ Delete single local storage of a link
++ Done by uncheck the store image locally option
- + Sorting in category view
+ + Sorting in category overview
+ + Sorting in tag overview
+ Fixed a bug in tag selection SQL query
version 2.2 - Guardian of Ice - (2019-02-27)
return $ret;
}
- /**
- * find all links by given tag 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 linksByTag($id, $string, $limit=5, $offset=false) {
+ /**
+ * find all links by given tag string or id.
+ * Return array sorted by creation date DESC
+ * @param int $id Tag id
+ * @param string $string Tag as string
+ * @param array $options Array with limit|offset|sort|sortDirection
+ * @return array
+ */
+ public function linksByTag($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";
- $queryLimit = '';
- if(!empty($limit)) {
- $queryLimit .= " LIMIT $limit";
- if($offset !== false) {
- $queryLimit .= " OFFSET $offset";
- }
- }
- $query = $this->DB->query($querySelect.$queryFrom.$queryWhere.$queryOrder.$queryLimit);
+ $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 = '';
+ # 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.$queryGroup.$queryOrder.$queryLimit);
+
if(!empty($query) && $query->num_rows > 0) {
while($result = $query->fetch_assoc()) {
$linkObj = new Link($this->DB);
$sortLink['active'] = 'default';
$sortLink['activeDirection'] = false;
-$_saveSort = false;
+$_LinkColllectionQueryOptions = array(
+ 'limit' => RESULTS_PER_PAGE,
+ 'offset' =>(RESULTS_PER_PAGE * ($_curPage-1))
+);
+
if(!empty($_sort) && $_sort === 'title') {
$currentGetParameters['s'] = 'title';
$sortLink['active'] = 'title';
- $_saveSort = 'title';
+ $_LinkColllectionQueryOptions['sort'] = 'title';
}
-$_saveSortDirection = false;
if(!empty($_sortDirection) && $_sortDirection === 'asc') {
$currentGetParameters['sd'] = 'asc';
$sortLink['activeDirection'] = true;
- $_saveSortDirection = 'asc';
+ $_LinkColllectionQueryOptions['sortDirection'] = 'asc';
}
switch($_requestMode) {
$tagname = $tagObj->getData('name');
$subHeadline = $tagname.' <i class="ion-md-pricetag"></i>';
- $linkCollection = $Management->linksByTag($_id,false,RESULTS_PER_PAGE, (RESULTS_PER_PAGE * ($_curPage-1)));
+ $linkCollection = $Management->linksByTag($_id,'', $_LinkColllectionQueryOptions);
$currentGetParameters['id'] = $_id;
}
$catname = $catObj->getData('name');
$subHeadline = $catname.' <i class="ion-md-filing"></i>';
- $_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);
+ $linkCollection = $Management->linksByCategory($_id,'', $_LinkColllectionQueryOptions);
$currentGetParameters['id'] = $_id;
}
<?php } ?>
</div>
<div class="column is-half">
+ <?php if(!empty($linkCollection['results'])) { ?>
<div class="is-pulled-right">
<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['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>
+ <?php } ?>
</div>
</div>
</section>