Joomla 1.5 Модификация content

Тема в разделе "Создание расширений для Joomla", создана пользователем ZLO, 21.11.2008.

  1. Offline

    ZLO Недавно здесь

    Регистрация:
    21.11.2008
    Сообщения:
    2
    Симпатии:
    0
    Пишу плагин/ мамбот, прочитал кучу документации только и непонял как перехватить вывод статей, те есть готовая статья необходимо вместо вывода этой статьи вывести измененную .... про изменение ключевых слов описания делается все элементарно а вот со статьями завал. :'(
    Задачка для СЕО если поможите напишу и выложу в общее пользование
    Прошу помощи версия джумлы 1.5

    С джумлой недавно общаюсь так что не пинать ногами.
     
  2.  
  3. Dead Krolik
    Offline

    Dead Krolik специалист

    Регистрация:
    13.04.2007
    Сообщения:
    3 688
    Симпатии:
    101
    Пол:
    Мужской
    Дак смотри любой плагин группы content. Говори в чем конкретно непонятка.
     
  4. Offline

    gdX Недавно здесь

    Регистрация:
    26.11.2008
    Сообщения:
    3
    Симпатии:
    0
    Приведу пример простого плагина для модификации содержимого контента.
    XML файл replace.xml:
    Код (CODE):
    1. <?xml version="1.0" encoding="utf-8"?>
    2. <!DOCTYPE install SYSTEM "http://dev.joomla.org/xml/1.5/plugin-install.dtd">
    3. <install version="1.5" type="plugin" group="content">
    4.     <name>replace</name>
    5.     <author>authorName</author>
    6.     <authorEmail>authorEmail</authorEmail>
    7.     <authorUrl>authorUrl</authorUrl>
    8.     <creationDate>2008</creationDate>
    9.     <copyright>©</copyright>
    10.     <license>license</license>
    11.     <version>1.0</version>
    12.     <description>description</description>
    13.     <files>
    14.         <filename plugin="replace">replace.php</filename>
    15.     </files>
    16.     <params />
    17. </install>


    PHP файл replace.php:
    Код (PHP):
    1. defined( '_JEXEC' ) or die( 'Restricted access' );
    2. $mainframe->registerEvent( 'onPrepareContent', 'plgSearchModuleModify' );
    3. function plgSearchModuleModify(&$row, &$params, $page=0){
    4.     $what = '/2001/';
    5.     $repl = '2222';
    6.     $row->text = preg_replace($what, $repl, $row->text);
    7. }


    Оба файла сжимаете в архив replace.zip, устанавливаете и всё готово.

    Файлы плагина появятся в папке www\plugins\content в следствии того, что Вы выбрали группу «content» в строке <install version="1.5" type="plugin" group="content">

    Такой плагин должен заменять в тексте статьи «2001» на «2222»

    p.s. Сам не программист, но плагин работает. Если есть ошибки, то укажите в чём.

    По разработке плагинов можете посмотреть эту статью: Полное руководство по созданию плагинов в Joomla 1.5 (часть 1)
    Там пока первая часть, думаю, что вскоре появится продолжение.

    Удачи ;)
     
    Последнее редактирование: 26.11.2008
  5. Dead Krolik
    Offline

    Dead Krolik специалист

    Регистрация:
    13.04.2007
    Сообщения:
    3 688
    Симпатии:
    101
    Пол:
    Мужской
    Согласен, котофеич намана пишет. Только я бы придрался к preg_match, ибо тут можно и обычным str_replace
     
  6. Offline

    ZLO Недавно здесь

    Регистрация:
    21.11.2008
    Сообщения:
    2
    Симпатии:
    0
    Мужики не в обиду сказнно, но тут загвоздка намного круче и регулярки тоже

    $text = "webе WELCOME free welcome web";
    $word = 'welcome';
    $pattern = '/([\s\>]+)'.$word.'([\s\<]+)/i';

    echo preg_replace($pattern, '\\1qu\\2', $text);
    вроде ничего сложного но толкьо меняешь $text на $row->text перестает работать

    2ое может все расскажу но как допустим менять текст внутри тегов HTML например $pattern = '/\b.$word.\b/i' сами занете что делает а вот если коснструкция намного веселее есть незакрывающиеся теги ...

    <table class="blog" cellpadding="0" cellspacing="0" aligin="top">
    <tr> <b> тут чтото для top замены top
    <td valign="top" >
    нужно нетрогая саму верстку заменить где (тут чтото для замены) top на допустим not top
    статей по регулярным много но именно мало
    помогите !!! пробелма еще в том что слово в тексте может быть уж очень весело написанно например <strong>WEB</strong>-сайт
    голову сломал может что посоветуете
    PS. str_replace вообще не вариант
    пример с top тому доказательство
    еще совсем забыл в тексте необходимо отсекать вот такое <font face='Arial, Courier New, Times, MS Sans Serif'> спец символы типа кавычек
     
    Последнее редактирование: 27.11.2008
  7. sectus
    Offline

    sectus специалист

    Регистрация:
    19.04.2006
    Сообщения:
    1 210
    Симпатии:
    46
    Пол:
    Мужской
    Я честно пытался понять, но когда я дошел до этой строчки...
    Ставь нормально задачу.
    Есть *текст, из него должен получится *текст. Пытался сделать так *код, но получается вот это *результат
     
  8. Physicist
    Offline

    Physicist Недавно здесь

    Регистрация:
    12.09.2006
    Сообщения:
    116
    Симпатии:
    9
    Пол:
    Мужской
    Ну так и отсекай теги, тут же ничего сложного.
    Простейший вариант такой (первое, что приходит в голову):
    ищем
    /^((<[^>]*>)*?[^<>]*?)тутточтонужнонайти/s
    и заменяем на
    \1тоначтонужнозаменить
     

Поделиться этой страницей

Загрузка...