Danneo CMS v0.5.5. Как сделать исключения, для анкоров?

Danneo CMS v0.5.5. Как сделать исключения, при которых анкоры не заменяются ссылками?

Danneo CMS v0.5.5. Как сделать исключения, для анкоров?

» » Сообщение:

Danneo CMS v0.5.5. Как сделать исключения, при которых анкоры не заменяются ссылками?

Здравствуйте.
Пытаюсь допилить модуль перелинковки, нужна ваша помощь. Нужно сделать исключения, при которых анкоры не заменяються ссылками.

Например есть текст вида:

Код: Выделить всё Развернуть
<p><strong>CMS Danneo (некоммерческий продукт)</strong> - это бесплатная,c открытым исходным кодом система управления сайтами.</p>
<p>Система Danneo разработана на языке программирования PHP и может работать почти на любой платформе(хостинг площадке), используя в качестве базы данных [anchor=http://likbezz.ru/viewtopic.php?t=1539|Массовая замена бб-кода в phpBB. Как заменить один бб-код другим? mySql UPDATE]MySQL[/anchor]</p>

Наша ссылка перелинковки с анкором "Danneo"
Вопрос:
Можно ли поставить такое условие: Если анкор находиться в теге <strong> (именно таким образом, как в тексте), то ссылка в данном случае не ставиться?

Попробуйте так:

php Код: Выделить всё Развернуть
    /**
     * Перелинковка
     */
    $ins['text'] = $api->siteuni($item['textshort'].$item['textmore']);
    if ($setting['anchor'] == 'yes') {
        $l = @unserialize($setting['seolink']);
        if (isset($l[$siteglobal['dn']])) {
            $mid = isset($setting['mod'][$siteglobal['dn']]['modid']) ? intval($setting['mod'][$siteglobal['dn']]['modid']): 0;
            if ($mid > 0) {
                $anchor = $db->query("SELECT * FROM ".$basepref."_seo_anchor WHERE modid='$mid'");
                while ($seo = $db->fetchrow($anchor)) {
                      if (strpos($seo['link'],'http://') === false) {
                            $seo['link'] = $setting['site_url'].'/'.$seo['link'];
                      }
                      $ins['text'] = @preg_replace(
                      '/([^\<\>])'.$seo['word'].'(?![^<]*>)(?=\W|$)/mi',
                      ' <a href="'.$seo['link'].'" title="'.$seo['title'].'">'.$seo['word'].'</a>',
                      $ins['text'],
                      $seo['count']
                      );
                      // убрать перелинковку для <strong> 
                      $ins['text'] = preg_replace_callback('#<strong>(.*?)<\/strong>#',                             
                      create_function
('$w', 'return preg_replace("#<a([^>]*)>#", "", str_replace("</a>", "", $w[0]));'),
                      $ins['text']);
                }
            }
        }
    }  

А именно, вот этот фрагмент:

php Код: Выделить всё Развернуть
                      // убрать перелинковку для <strong> 
                      $ins['text'] = [anchor=http://likbezz.ru/viewtopic.php?t=1637|Самый простой способ передать более одного параметра в функцию preg_replace_callback]preg_replace_callback[/anchor]('#<strong>(.*?)<\/strong>#',                             
                      create_function('$w', 'return preg_replace("#<a([^>]*)>#", "", str_replace("</a>", "", $w[0]));'),
                      $ins['text']);
danneo cms v0.5.5, как сделать, исключения для анкоров, анкоры не заменяются ссылками



Похожие темыКомментарии ПросмотрыПоследнее сообщение
02326Клонирование модуля "Файлы&quo...
Сообщение от: Admin
0686Клонирование модуля "Файлы&quo...
Сообщение от: Admin
01227Как сделать загрузочную флешку с Wi...
Сообщение от: Admin
02924Danneo CMS модуль Music - добавляем...
Сообщение от: Admin
01274Danneo CMS v0.5.5. Добвляем keyword...
Сообщение от: Admin