Go to the documentation of this file.00001 <?php
00002
00003 if (!defined('OXTAGCLOUD_MINFONT')) {
00004 define('OXTAGCLOUD_MINTAGLENGTH', 4);
00005 define('OXTAGCLOUD_STARTPAGECOUNT', 20);
00006 define('OXTAGCLOUD_EXTENDEDCOUNT', 200);
00007 }
00013 class oxTagList extends oxI18n implements oxITagList
00014 {
00015
00021 protected $_oTagSet = null;
00022
00028 protected $_blExtended = false;
00029
00033 public function __construct()
00034 {
00035 parent::__construct();
00036 $this->_oTagSet = oxNew( 'oxtagset' );
00037 }
00038
00044 public function getCacheId()
00045 {
00046 return 'tag_list_'.$this->getLanguage();
00047 }
00048
00054 public function loadList()
00055 {
00056 $oDb = oxDb::getDb( oxDb::FETCH_MODE_ASSOC );
00057
00058 $iLang = $this->getLanguage();
00059
00060 $sArtView = getViewName( 'oxarticles', $iLang );
00061 $sViewName = getViewName( 'oxartextends', $iLang );
00062
00063
00064 $oArticle = oxNew( 'oxarticle' );
00065 $oArticle->setLanguage( $iLang );
00066 $sArtActive = $oArticle->getActiveCheckQuery( true );
00067
00068 $sQ = "SELECT {$sViewName}.`oxtags` AS `oxtags`
00069 FROM {$sArtView} AS `oxarticles`
00070 LEFT JOIN {$sViewName} ON `oxarticles`.`oxid` = {$sViewName}.`oxid`
00071 WHERE `oxarticles`.`oxactive` = 1 AND $sArtActive";
00072
00073 $oDb->setFetchMode( oxDb::FETCH_MODE_ASSOC );
00074 $oRs = $oDb->select( $sQ );
00075
00076 $this->get()->clear();
00077 while ( $oRs && $oRs->recordCount() && !$oRs->EOF ) {
00078 $this->_addTagsFromDb( $oRs->fields['oxtags'] );
00079 $oRs->moveNext();
00080 }
00081
00082 return $this->_isLoaded = true;
00083 }
00084
00090 public function get()
00091 {
00092 return $this->_oTagSet;
00093 }
00094
00102 public function addTag( $mTag )
00103 {
00104 $this->_oTagSet->addTag( $mTag );
00105 }
00106
00114 protected function _addTagsFromDb( $sTags )
00115 {
00116 if ( empty( $sTags ) ) {
00117 return;
00118 }
00119 $sSeparator = $this->get()->getSeparator();
00120 $aTags = explode( $sSeparator, $sTags );
00121 foreach ( $aTags as $sTag ) {
00122 $oTag = oxNew( "oxtag" );
00123 $oTag->set( $sTag, false );
00124 $oTag->removeUnderscores();
00125 $this->addTag( $oTag );
00126 }
00127 }
00128 }