3 if (!defined(
'OXTAGCLOUD_MINTAGLENGTH')) {
4 define(
'OXTAGCLOUD_MINTAGLENGTH', 4);
24 'admin',
'application',
'core',
'export',
'modules',
'out',
'setup',
'tmp'
55 protected $_aMetaChars = array(
'+',
'-',
'>',
'<',
'(',
')',
'~',
'*',
'"',
'\'',
'\\',
'[',
']',
'{',
'}',
';',
':',
'.',
'/',
'|',
'!',
'@',
'#',
'$',
'%',
'^',
'&',
'?',
'=',
'`');
77 $this->_iTagMaxLength = $iTagMaxLength;
96 public function set($sTag, $blPrepare =
true)
98 $this->_sTag = $blPrepare ? $this->
prepare($sTag) : $sTag;
107 public function get()
119 $this->_iHitCount = $iHitCount;
147 $blValid = strlen($this->_sTag) > 0 ?
true :
false;
148 if ($blValid && in_array($this->_sTag, $this->_aForbiddenTags)) {
162 if (is_null($this->_sTagLink)) {
163 $this->_sTagLink = $this->
formLink($this->
get());
176 $this->_sTagLink = $sTagLink;
186 return getStr()->htmlentities($this->
get());
211 $iLen = $oStr->strlen($sTag);
213 $sTag = trim($oStr->substr($sTag, 0, $this->getMaxLength()));
216 return $oStr->strtolower($sTag);
231 $sText = str_replace($this->_aMetaChars,
' ', $sText);
234 $sText = $oStr->preg_replace(
"/\s+/",
" ", trim($sText));
254 $sUrl = $oSeoEncoderTag->getTagUrl($sTag, $iLang);
257 return $sUrl ? $sUrl : $this->
getConfig()->getShopUrl() . $oSeoEncoderTag->getStdTagUri($sTag) .
"&lang=" . $iLang;
266 $aTagParts = explode(
' ', $this->
get());
267 foreach ($aTagParts as &$sTagPart) {
268 if ($oStr->strlen($sTagPart) < OXTAGCLOUD_MINTAGLENGTH) {
269 $sTagPart .= str_repeat(
"_", OXTAGCLOUD_MINTAGLENGTH - $oStr->strlen($sTagPart));
273 $this->
set(implode(
' ', $aTagParts),
false);
284 if ($oStr->preg_match_all(
"/([\s\-]?)([^\s\-]+)([\s\-]?)/", $this->get(), $aMatches)) {
285 foreach ($aMatches[2] as $iKey => $sMatch) {
286 if ($oStr->strlen($sMatch) <= OXTAGCLOUD_MINTAGLENGTH) {
287 $sMatch = rtrim($sMatch,
"_");
289 $sRes .= $aMatches[1][$iKey] . $sMatch . $aMatches[3][$iKey];
292 $this->
set($sRes,
false);