Example #1
0
 /**
  * order by a property (must be set as shown property before)
  *
  * @param type    $uri the property to order by
  * @param boolean $asc true if ascending, false if descending
  */
 public function setOrderProperty($uri, $asc = true)
 {
     $this->setOffset(0);
     if ($this->_sortTriple == null) {
         $orderVar = new Erfurt_Sparql_Query2_Var('order');
         $this->_sortTriple = new Erfurt_Sparql_Query2_OptionalGraphPattern(array(new Erfurt_Sparql_Query2_Triple($this->getResourceVar(), new Erfurt_Sparql_Query2_IriRef($uri), $orderVar)));
         $this->_resourceQuery->getWhere()->addElement($this->_sortTriple);
         $this->_resourceQuery->getOrder()->add($orderVar, $asc ? Erfurt_Sparql_Query2_OrderClause::ASC : Erfurt_Sparql_Query2_OrderClause::DESC);
     } else {
         $this->_sortTriple->getElement(0)->setP(new Erfurt_Sparql_Query2_IriRef($uri));
         if ($asc) {
             $this->_resourceQuery->getOrder()->setAsc(0);
         } else {
             $this->_resourceQuery->getOrder()->setDesc(0);
         }
     }
     $this->invalidate();
 }