Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) Модули Лишние символы в ссылке в модуле глоссарий. Как исправить?

Лишние символы в ссылке в модуле глоссарий. Как исправить?


     07.03.2015    Модули    870

вопрос
После установки модуля глоссарий обнаружил что в ссылке прописываются лишние символы верхних ковычек " (ссылка имеет вид http://gosudarstvo-chernobyl.com/glossary/dkba/") . Из-за чего в переходе на страницу получается ошибка. Установка выполнена вроде правильно. Подскажите в каком файле проблема?

Вот отрывки кода:

.htaccееss


# Glossary 2.0

RewriteRule ^glossary(/?)+$ index.php?do=glossary [L]

RewriteRule ^glossary/([^/]+)(/?)+$ index.php?do=glossary&word=$1 [L]

RewriteRule ^glossary/page/([^/]+)(/?)+$ index.php?do=glossary&page=$1 [L]


engine

elseif ($do == 'orderdesc') $nam_e = "Стол заказов";

elseif ($do == 'feedback') $nam_e = $lang['title_feed'];

elseif ($do == 'glossary') $nam_e = "Глоссарий";

elseif ($do == 'lastcomments') $nam_e = $lang['title_last'];


switch ( $do ) {

case "glossary" :
    include( ENGINE_DIR."/modules/glossary/glossary.php" );
    break;

case "orderdesc":

        include ENGINE_DIR . '/modules/orderdesc.php';

        break;


show.full

    $tpl->set( '{title}', $row['title'] );
        // Glossary 2.0
    $do = "full_story";
    require_once ENGINE_DIR . '/modules/glossary/insert.php';
    // Glossary 2.0
        if ( preg_match( "#\\{title limit=['\"](.+?)['\"]\\}#i", $tpl->copy_template, $matches ) ) {
            $count= intval($matches[1]);
            $row['title'] = strip_tags( $row['title'] );

Ответил: Attyla


В файле engine/modules/glossary/insert.php нужно поменять местами сткоки 34 и 35, должно получится вот так:
if ( !defined( 'DATALIFEENGINE' ) ) die( "Hacking attempt!" );
if ($do) {
    $glossary_sql = $db -> query("SELECT * FROM " . PREFIX . "_glossary");
    if ( $db -> num_rows($glossary_sql) ) {
        while( $glossary = $db -> get_row($glossary_sql) ) {
            if ( $config['allow_alt_url'] ) $glossary_link = $config['http_home_url']."glossary/".$glossary['link']."/";
            else $glossary_link = $config['http_home_url']."?do=glossary&word=".$glossary['link'];
                
            $glossary['description'] = preg_replace( "#<!--TBegin(.+?)<!--TEnd-->#is", "", $glossary['description'] );
            $glossary['description'] = str_replace( "</p><p>", " ", $glossary['description'] );
            $glossary['description'] = strip_tags( $glossary['description'], "<br>" );
            $glossary['description'] = trim(str_replace( "<br>", " ", str_replace( "<br />", " ", str_replace( "\n", " ", str_replace( "\r", "", $glossary['description'] ) ) ) ));

            //$glossary["word"] = substr( stripslashes ($glossary["word"]), 0,-2 );

            // Обработка текста
            if (($do != "static") or ($do == "full_story") or ($do == "custom")) {
                $row[$do] = preg_replace('/('.$glossary["word"].')/is', '<a href="'.$glossary_link.'" title="'.$glossary['description'].'" id=1>$1</a>', $row[$do]);                
                $row[$do] = preg_replace('/<a(.*?)href=[^>](.*?)>(.*)<a href=[^>].*? id=1>(.*?)<\/a>(.*?)<\/a>/is', '<a$1href=$2>$3$4$5</a>', $row[$do]);
                $row[$do] = preg_replace('/<img(.*?)alt=[^>](.*?)<a href=[^>].*? id=1>(.*?)<\/a>(.*?)\/>/is', '<img$1alt=$2$3$4/>', $row[$do]);
                
                // Обработка доп. полей
                if ($do != "custom") $row['xfields'] = preg_replace("'".$glossary['word']."'i", "<a href=\"".$glossary_link."\">".$glossary['word']."</a>", $row['xfields']);
            } else {
                $template = preg_replace('/('.$glossary["word"].')/is', '<a href="'.$glossary_link.'" title="'.$glossary['description'].'" id=1>$1</a>', $template);
                $template = preg_replace('/<a(.*?)href=[^>](.*?)>(.*)<a href=[^>].*? id=1>(.*?)<\/a>(.*?)<\/a>/is', '<a$1href=$2>$3$4$5</a>',$template);
                $template = preg_replace('/<img(.*?)alt=[^>](.*?)<a href=[^>].*? id=1>(.*?)<\/a>(.*?)\/>/is', '<img$1alt=$2$3$4/>', $template);
            }
        }
    }
}
Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы