в плагине SpThumbnail для
public function onContentPrepare($context, &$article, &$params, $limitstart=0)
это реализуется вот так
{
if (empty($article->text)) return true; //exit if empty article
$app = JFactory::getApplication();
$type = $this->params->get('thumbnails_for');
$class = $this->params->get('class');
// Loop to find and replace
$pos_img = 0;
$pos_img = strpos($article->text, '<img', $pos_img + 1);
$new_txt = $article->text;
while ($pos_img > 0)
{
//Find class
$pos_greater = strpos($article->text, '>', $pos_img + 1);
$replace_str = substr($article->text, $pos_img, $pos_greater - $pos_img + 1);
$pos_class = strpos($replace_str, 'class');
$class_str = '';
if ($pos_class > 0) {
$pos_class_start = strpos($replace_str, '"', $pos_class + 1);
$pos_class_end = strpos($replace_str, '"', $pos_class_start + 1);
$class_str = substr($replace_str, $pos_class_start + 1, $pos_class_end - $pos_class_start - 1);
}
switch ($type) {
case 0:
if (strpos($class_str, $class)!== false) {
$new_txt = $this->convertString($new_txt, $replace_str);
}
break;
case 1:
if (strpos($class_str, $class) === false) {
$new_txt = $this->convertString($new_txt, $replace_str);
}
break;
case 2:
$new_txt = $this->convertString($new_txt, $replace_str);
break;
default:
break;
}
$pos_img = strpos($article->text, '<img', $pos_img + 1);
}
$article->text = $new_txt;
return true;
}
function onBeforeRender(){
JHTML::_('behavior.modal');
}
private function convertString($text, $replace_str) {
$pos = strpos($replace_str, 'src=');
$pos_start = strpos($replace_str, '"', $pos + 1);
$pos_end = strpos($replace_str, '"', $pos_start + 1);
$image_str = substr($replace_str, $pos_start + 1, $pos_end - $pos_start - 1);
$new_str = '<a class="modal" href="'.$image_str.'">'.$replace_str.'</a>';
$return_str = str_replace($replace_str, $new_str, $text);
return $return_str;
}
}
хотелось бы для события (думаю, что этого)
public function onContentBeforeSave($context, $article, $isNew)
создать подобное, но в рнр и Joomla разбираюсь плохо, поэтому прошу хотя бы задать нужное направление..
задача: чтобы при сохранении статьи (даже после редактирования) это
<img alt="Описание" src="images/картинка.jpg" />
заменялось на
<a rel="boxplus" href="images/картинка.jpg" title="Описание"><img alt="Описание" src="images/картинка.jpg" />
</a>
хотя только сейчас дошло, что это может не получится, ибо при пересохранении опять будет заменять.. так ли? можно ли избежать?. . буду благодарен за хоть какие-то ответы