Joomla 1.5 Мамбот - BB-код

Тема в разделе "Программирование", создана пользователем APXEOLOG, 01.06.2009.

  1. Offline

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

    Регистрация:
    01.06.2009
    Сообщения:
    5
    Симпатии:
    0
    Не пойму как написать мамбот для парсинга бб-кода [TEST]content[/TEST]
    Код (PHP):
    1. // no direct access
    2. defined( '_JEXEC' ) or die( 'Restricted access' );
    3.  
    4. $mainframe->registerEvent( 'onPrepareContent', 'plgBBcodeparse' );
    5.  
    6. /**
    7. * Plugin that loads module positions within content
    8. */
    9. function plgBBcodeparse( &$row, &$params, $page=0 )
    10. {
    11.     $db =& JFactory::getDBO();
    12.     // simple performance check to determine whether bot should process further
    13.     if ( JString::strpos( $row->text, 'loadposition' ) === false ) {
    14.         return true;
    15.     }
    16.  
    17.     // expression to search for
    18.  
    19.     $regex = '/\[TEST\](\w+)\[\/TEST\]/';
    20.     $replacment = 'TEST:\${1}';
    21.  
    22.     $pluginParams = new JParameter( $plugin->params );
    23.  
    24.     // check whether plugin has been unpublished
    25.     if ( !$pluginParams->get( 'enabled', 1 ) ) {
    26.         $row->text = preg_replace( $regex, $replacment, $row->text );
    27.         return true;
    28.     }
    29. }


    Насчет регулярки я не уверен, но он и более простую не обрабатывает....Вот например я на главной написал [TEST]content[/TEST], мамбот свой поставил и включил, а оно не изменилось...В чем косяк?

    ===
    Это я кстати мамбот loadmodule изменял, если что =)
     
  2.  
  3. Offline

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

    Регистрация:
    01.06.2009
    Сообщения:
    5
    Симпатии:
    0
    Проблему решил:
    Код (PHP):
    1. function plgBBcodeparse( &$row, &$params, $page=0 )
    2. {
    3.     // Код [ITEM]$id{/ITEM]
    4.     $regex = '/\[ITEM\](\w+)\[\/ITEM\]/';
    5.     if (preg_match_all($regex, $row->text, $matches)){
    6.      foreach ($matches[1] as $buf){
    7.           $text = "<a href=\"index.php?option=com_php&Itemid=5&id=$buf\">$name</a>";
    8.       $row->text = str_replace( "[ITEM]".$buf."[/ITEM]", $text, $row->text );
    9.      }
    10.     }
    11.  
    12.         return true;
    13.    
    14. }
     

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

Загрузка...