Создание keywords и description для тем форум

Тема закрыта
3.57K
.
нужный модуль. во первых, делясь ссылкой в соц сетях, автоматически показывается дескрипшн. это свое рода анонс. и в результатах поиска выглядит это не очень красиво, когда один десприпшен на весь сайт
.
такой мод автор движка должен по идее подготовить. на мой фор мод не стал. ёк...
.
ех не пошло мне...
.
valik619, Надо взять функцию и скопировать её в файл с функциями, а в форуме, еси для 4.4.0 то там надо и верхний запрос дописывать, щас..
.
function.php
public static function create_keywords($story, $separator = ', ', $keyword_count = 20) {  
   
    global $set;  
      
    $fastquotes = array ("\x22", "\x60", "\t", "\n", "\r", '"', "\\", '\r', '\n', "-", "{", "}", "[", "]" );  
    $story1 = str_replace( $fastquotes, " ", $story );  
    $story2 = preg_replace("/[^\w\x7F-\xFF\s]/", " ", $story1);  
    $story = preg_replace("/ {,1}/", " ", $story2);  
      
    $story3 = str_replace( $fastquotes, '', trim( strip_tags( str_replace( '<br />', ' ', stripslashes( $story1 ) ) ) ) );  
      
    $story3 = preg_replace("/ {,1}/", " ", $story3);  
      
      
    $set['meta_desc'] = mb_substr( $story3, 0, 190, 'UTF-8' );  
      
    $arr = explode( " ", $story );  
      
    foreach ( $arr as $word ) {  
        if( mb_strlen( $word, 'UTF-8') > 4 ) $newarr[] = $word;  
    }  
      
    $arr = array_count_values( $newarr );  
    arsort( $arr );  
      
    $arr = array_keys( $arr );  
      
    $total = count( $arr );  
      
    $offset = 0;  
      
    $arr = array_slice( $arr, $offset, $keyword_count );  
      
    $set['meta_key'] = implode( $separator, $arr );  

}
.
../forum/index/php
----------------------------------------------------------------- 
Заголовки страниц форума 
----------------------------------------------------------------- 
*/ 
if (empty($id)) { 
    $textl = '' . $lng['forum'] . ''; 
} else { 
$req = mysql_query("SELECT `text`, `type` FROM `forum` WHERE `id`= '" . $id . "' LIMIT 1;");
    $res = mysql_fetch_assoc($req); 
    $hdr = strtr($res['text'], array( 
        '&quot;' => '', 
        '&amp;' => '', 
        '&lt;' => '', 
        '&gt;' => '', 
        '&#039;' => '' 
    )); 
    $hdr = mb_substr($hdr, 0, 30); 
    $hdr = functions::checkout($hdr); 
    $textl = mb_strlen($res['text']) > 30 ? $hdr . '...' : $hdr; 
if ($res['type']=='t') {
        $id_post = mysql_result(mysql_query("SELECT MIN(`id`) FROM `forum` WHERE `type`= 'm' AND `refid`='$id';"), 0);  
        $q = mysql_fetch_assoc(mysql_query("SELECT `text` FROM `forum` WHERE `id`= '" . $id_post . "' LIMIT 1;"));  
        functions::create_keywords($q['text'], ', ', 20);  
    }
} 

/* 
----------------------------------------------------------------- 
Переключаем режимы работы
.
Блиносвёрт ?
Fublin, чем ридми не устраивает?
.
Jane, повторенье - мать ученья
.
для библиотеки 4.4.0
../library/index.php
// Заголовки библиотеки 
if ($id) { 
    $req = mysql_query("SELECT * FROM `lib` WHERE `id`= '$id'"); 
    $zag = mysql_fetch_array($req); 
    $hdr = $zag['type'] == 'bk' ? $zag['name'] : $zag['text'];
    $hdr = htmlentities(mb_substr($hdr, 0, 30), ENT_QUOTES, 'UTF-8'); 
$textl = mb_strlen($zag['text']) > 30 ? $hdr . '...' : $hdr;
//TESRT 
if ($zag['type']=='bk') {
        $id_post = mysql_result(mysql_query("SELECT MIN(`id`) FROM `lib` WHERE `type`= 'bk' AND `refid`='$id';"), 0);   
        $q = mysql_fetch_assoc(mysql_query("SELECT `text` FROM `lib` WHERE `id`= '" . $id . "' LIMIT 1;"));  
        functions::create_keywords($q['text'], ', ', 20);   
    }
}
.
может лучше сделать к форуму хак, который позволит самому тэги вписывать при создании темы на форуме?
Всего: 122