4 if (!defined(
'OXTAGCLOUD_MINTAGLENGTH')) {
5 define(
'OXTAGCLOUD_MINTAGLENGTH', 4);
28 'admin',
'application',
'core',
'export',
'modules',
'out',
'setup',
'tmp'
59 protected $_aMetaChars = array(
'+',
'-',
'>',
'<',
'(',
')',
'~',
'*',
'"',
'\'',
'\\',
'[',
']',
'{',
'}',
';',
':',
'.',
'/',
'|',
'!',
'@',
'#',
'$',
'%',
'^',
'&',
'?',
'=',
'`');
81 $this->_iTagMaxLength = $iTagMaxLength;
100 public function set($sTag, $blPrepare =
true)
102 $this->_sTag = $blPrepare ? $this->
prepare($sTag) : $sTag;
111 public function get()
123 $this->_iHitCount = $iHitCount;
151 $blValid = strlen($this->_sTag) > 0 ?
true :
false;
152 if ($blValid && in_array($this->_sTag, $this->_aForbiddenTags)) {
166 if (is_null($this->_sTagLink)) {
167 $this->_sTagLink = $this->
formLink($this->
get());
180 $this->_sTagLink = $sTagLink;
190 return getStr()->htmlentities($this->
get());
215 $iLen = $oStr->strlen($sTag);
217 $sTag = trim($oStr->substr($sTag, 0, $this->getMaxLength()));
220 return $oStr->strtolower($sTag);
235 $sText = str_replace($this->_aMetaChars,
' ', $sText);
238 $sText = $oStr->preg_replace(
"/\s+/",
" ", trim($sText));
258 $sUrl = $oSeoEncoderTag->getTagUrl($sTag, $iLang);
261 return $sUrl ? $sUrl : $this->
getConfig()->getShopUrl() . $oSeoEncoderTag->getStdTagUri($sTag) .
"&lang=" . $iLang;
270 $aTagParts = explode(
' ', $this->
get());
271 foreach ($aTagParts as &$sTagPart) {
272 if ($oStr->strlen($sTagPart) < OXTAGCLOUD_MINTAGLENGTH) {
273 $sTagPart .= str_repeat(
"_", OXTAGCLOUD_MINTAGLENGTH - $oStr->strlen($sTagPart));
277 $this->
set(implode(
' ', $aTagParts),
false);
288 if ($oStr->preg_match_all(
"/([\s\-]?)([^\s\-]+)([\s\-]?)/", $this->get(), $aMatches)) {
289 foreach ($aMatches[2] as $iKey => $sMatch) {
290 if ($oStr->strlen($sMatch) <= OXTAGCLOUD_MINTAGLENGTH) {
291 $sMatch = rtrim($sMatch,
"_");
293 $sRes .= $aMatches[1][$iKey] . $sMatch . $aMatches[3][$iKey];
296 $this->
set($sRes,
false);