Go to the documentation of this file.00001 <?php
00002
00008 class oxNewslist extends oxList
00009 {
00010
00016 protected $_sObjectsInListName = 'oxnews';
00017
00021 protected $_oUser = null;
00022
00030 public function loadNews($iFrom = 0, $iLimit = 10)
00031 {
00032 if ($iLimit) {
00033 $this->setSqlLimit($iFrom, $iLimit);
00034 }
00035
00036 $sNewsViewName = getViewName('oxnews');
00037 $oBaseObject = $this->getBaseObject();
00038 $sSelectFields = $oBaseObject->getSelectFields();
00039
00040 if ($oUser = $this->getUser()) {
00041
00042 $sSelect = "select $sSelectFields from $sNewsViewName ";
00043 $sSelect .= "left join oxobject2group on oxobject2group.oxobjectid=$sNewsViewName.oxid where ";
00044 $sSelect .= "oxobject2group.oxgroupsid in ( select oxgroupsid from oxobject2group where oxobjectid='" . $oUser->getId() . "' ) or ";
00045 $sSelect .= "( oxobject2group.oxgroupsid is null ) ";
00046 } else {
00047 $sSelect = "select $sSelectFields, oxobject2group.oxgroupsid from $sNewsViewName ";
00048 $sSelect .= "left join oxobject2group on oxobject2group.oxobjectid=$sNewsViewName.oxid where oxobject2group.oxgroupsid is null ";
00049 }
00050
00051 $sSelect .= " and " . $oBaseObject->getSqlActiveSnippet();
00052 $sSelect .= " and $sNewsViewName.oxshortdesc <> '' ";
00053 $sSelect .= " group by $sNewsViewName.oxid order by $sNewsViewName.oxdate desc ";
00054
00055 $this->selectString($sSelect);
00056 }
00057
00063 public function getCount()
00064 {
00065 $myConfig = $this->getConfig();
00066 $oDb = oxDb::getDb();
00067
00068 $sNewsViewName = getViewName('oxnews');
00069 $oBaseObject = $this->getBaseObject();
00070
00071
00072 if ($oUser = $this->getUser()) {
00073
00074 $sSelect = "select COUNT($sNewsViewName.`oxid`) from $sNewsViewName ";
00075 $sSelect .= "left join oxobject2group on oxobject2group.oxobjectid=$sNewsViewName.oxid where ";
00076 $sSelect .= "oxobject2group.oxgroupsid in ( select oxgroupsid from oxobject2group where oxobjectid='" . $oUser->getId() . "' ) or ";
00077 $sSelect .= "( oxobject2group.oxgroupsid is null ) ";
00078 } else {
00079 $sSelect = "select COUNT($sNewsViewName.`oxid`) from $sNewsViewName ";
00080 $sSelect .= "left join oxobject2group on oxobject2group.oxobjectid=$sNewsViewName.oxid where oxobject2group.oxgroupsid is null ";
00081 }
00082
00083 $sSelect .= " and " . $oBaseObject->getSqlActiveSnippet();
00084
00085
00086 $iRecCnt = (int) $oDb->getOne($sSelect);
00087
00088 return $iRecCnt;
00089 }
00090
00096 public function setUser($oUser)
00097 {
00098 $this->_oUser = $oUser;
00099 }
00100
00106 public function getUser()
00107 {
00108 if ($this->_oUser == null) {
00109 $this->_oUser = parent::getUser();
00110 }
00111
00112 return $this->_oUser;
00113 }
00114 }