', ' - ', $desc); $desc = str_replace('
', ' - ', $desc); while (strpos($desc, ' - - ') !== false) { $desc = str_replace(' - - ', ' - ', $desc); } $desc = str_replace("'", '\'', $desc); $desc = str_replace("'", '\'', $desc); $desc = str_replace('"', '\'', $desc); $desc = str_replace("\r\n", ' ', $desc); $desc = str_replace("\n\r", ' ', $desc); $desc = str_replace("\r", ' ', $desc); $desc = str_replace("\n", ' ', $desc); return JString::substr(JString::trim($desc), 0, 512); } function shIncludeMetaPlugin() { $option = JRequest::getCmd('option'); // get extension plugin $extPlugin = &Sh404sefFactory::getExtensionPlugin($option); // which plugin file are we supposed to use? $extPluginPath = $extPlugin->getMetaPluginPath(Sh404sefFactory::getPageInfo()->currentNonSefUrl); if (!empty($extPluginPath)) { include $extPluginPath; } } // utility function to insert data into an html buffer, after, instead or before // one or more instances of a tag. If last parameter is 'first', then only the // first occurence of the tag is replaced, or the new value is inserted only // after or before the first occurence of the tag function shInsertCustomTagInBuffer($buffer, $tag, $where, $value, $firstOnly) { if (!$buffer || !$tag || !$value) return $buffer; $bits = explode($tag, $buffer); if (count($bits) < 2) return $buffer; $result = $bits[0]; $maxCount = count($bits) - 1; switch ($where) { case 'instead': for ($i = 0; $i < $maxCount; $i++) { $result .= ($firstOnly == 'first' ? ($i == 0 ? $value : $tag) : $value) . $bits[$i + 1]; } break; case 'after': for ($i = 0; $i < $maxCount; $i++) { $result .= $tag . ($firstOnly == 'first' ? ($i == 0 ? $value : $tag) : $value) . $bits[$i + 1]; } break; default: for ($i = 0; $i < $maxCount; $i++) { $result .= ($firstOnly == 'first' ? ($i == 0 ? $value : $tag) : $value) . $tag . $bits[$i + 1]; } break; } return $result; } function shPregInsertCustomTagInBuffer($buffer, $tag, $where, $value, $firstOnly, $rawPattern = false) { if (!$buffer || !$tag || !$value) return $buffer; $pattern = $rawPattern ? $tag : '#(' . $tag . ')#iUsu'; switch ($where) { case 'instead': $replacement = $value; break; case 'after': $replacement = '$1' . $value; break; default: $replacement = $value . '$1'; break; } $result = preg_replace($pattern, $replacement, $buffer, $firstOnly ? 1 : 0); if (empty($result)) { $result = $buffer; ShlSystem_Log::error('shlib', '%s::%s::%d: %s', __CLASS__, __METHOD__, __LINE__, 'RegExp failed: invalid character on page ' . Sh404sefFactory::getPageInfo()->currentSefUrl); } return $result; } function shDoLinkReadMoreCallback($matches) { if (count($matches) != 3) return empty($matches) ? '' : $matches[0]; $mask = '