Информационные технологииStfw.Ru 🔍

Автоматическая генерация ключевых слов 0.2

Плагин формирует keywords и description.
🕛 06.02.2011, 17:23
Тут немного пошаманил плагин для cotonti:
+ авто генерация keywords для листов, плагинов и разделов форума из заголовка
+ авто генерация keywords для страниц если не прописаны теги
+ description из описания разделов, форума, тем, страниц
+ description плагина из title
+ стоп-слова ключевых слов с низкой смысловой нагрузкой
+ ключевые слова от 3 символов
+ перевод в нижний регистр ключевых слов.

<?PHP
/* ====================
[BEGIN_SED_EXTPLUGIN]
Code=desc
Part=main
File=desc
Hooks=header.main
Tags=
Minlevel=0
Order=10
[END_SED_EXTPLUGIN]
==================== */
defined('SED_CODE') or die('Wrong URL');
function SW(&$item1,$key){if(strlen($item1)<=2)$item1='';}

function keystop($res)
{
$res= str_replace(array('?', '.', ',', '!', ';', ':', '+', '*', '"','«', '»', '-','-ть','-ая','%','(',')',']','[','“','-','”','’'), '', $res);
$res = preg_replace('~(?<!\[|/)\d(?!\]|/)~si', '', $res);
$res=str_replace(array('-','/',' без ',' более ',' бы ',' был ',' была ',' были ',' было ',' быть ',' вам ',' вас ',' ведь ',' весь ',' вдоль ',' вместо ',' вне ',' вниз ',' внизу ',' внутри ',' во ',' вокруг ',' вот ',' все ',' всегда ',' всего ',' всех ',' вы ',' где ',' да ',' давай ',' давать ',' даже ',' для ',' до ',' достаточно ',' его ',' ее ',' её ',' если ',' есть ',' ещё ',' же ',' за ',' за исключением ',' здесь ',' из ',' из-за ',' или ',' им ',' иметь ',' их ',' как ',' как-то ',' кто ',' когда ',' кроме ',' кто ',' ли ',' либо ',' мне ',' может ',' мои ',' мой ',' мы ',' на ',' навсегда ',' над ',' надо ',' наш ',' не ',' него ',' неё ',' нет ',' ни ',' них ',' но ',' ну ',' об ',' однако ',' он ',' она ',' они ',' оно ',' от ',' отчего ',' очень ',' по ',' под ',' после ',' потому ',' потому что ',' почти ',' при ',' про ',' снова ',' со ',' так ',' также ',' такие ',' такой ',' там ',' те ',' тем ',' то ',' того ',' тоже ',' той ',' только ',' том ',' тут ',' ты ',' уже ',' хотя ',' чего ',' чего-то ',' чей ',' чем ',' что ',' чтобы ',' чьё ',' чья ',' эта ',' эти ',' это ',' раз '), ' ', $res);
return $res;
}
function desc_fltr($res)
{
$res=str_replace ('\r', "", $res);
$res=str_replace ('\n', " ", $res);
$res=htmlspecialchars($res);
return $res;
}
function key_tags($q,$loc)
{
$tags = sed_tag_list($q,$loc);
if(count($tags) > 0)
{
$tag_i = 0;
foreach($tags as $tag)
{
$tag_t = $cfg['plugin']['tags']['title'] ? htmlspecialchars(sed_tag_title($tag)) : htmlspecialchars($tag);
if ($tag_i > 0) $tc_html .= ', ';
$tc_html .=$tag_t;
$tag_i++;
}
$tc_html.=', ';
}
return$tc_html;
}
switch($z)
{
case 'page':
 if(empty($m)){
$out['meta_desc']=(empty($pag['page_desc']))? 'Новости интернета, обзоры железа, софта и ПО, статьи и документация на stfw.ru':desc_fltr(strip_tags($pag['page_desc']));
$key = key_tags($pag['page_id'],'pages');
if ((trim($key ))== '') 
{
$pieces=$pag['page_title'];
$pieces= keystop($pieces);
$pieces=explode(" ", $pieces);
array_walk($pieces,'SW');
$pieces = implode(', ',$pieces) ;
$pieces= preg_replace('[ ,]', '', $pieces);
$pieces = rtrim($pieces, ", ");
$pieces = ltrim($pieces, ", ");
$pieces = strtolower($pieces);
$out['meta_keywords']="$pieces, ".$out['meta_keywords'];
}else{
$out['meta_keywords']=$key.$out['meta_keywords'];
}
}
break;
case 'list':
$out['meta_desc']=(empty($sed_cat[$c]['desc']))? $out['fulltitle']:desc_fltr(strip_tags($sed_cat[$c]['desc']));
$pieces=$sed_cat[$c]['title'];
$pieces= keystop($pieces);
$pieces=explode(" ", $pieces);
array_walk($pieces,'SW');
$pieces = implode(', ',$pieces) ;
$pieces= preg_replace('[ ,]', '', $pieces);
$pieces = rtrim($pieces, ", ");
$pieces = ltrim($pieces, ", ");
$pieces = strtolower($pieces);
$out['meta_keywords']="$pieces, ".$out['meta_keywords'];
break;
case 'plug':
$out3=" на портале Stfw.ru";
$out['meta_desc']=$out['subtitle'] .$out3;
$pieces=$out['subtitle'];
$pieces= keystop($pieces);

$pieces=explode(" ", $pieces);
array_walk($pieces,'SW');
$pieces = implode(', ',$pieces) ;
$pieces= preg_replace('[ ,]', '', $pieces);
$pieces = rtrim($pieces, ", ");
$pieces = ltrim($pieces, ", ");
$pieces = strtolower($pieces);

$out['meta_keywords']="$pieces, ".$out['meta_keywords'];
break;
case 'forums':
 $out['meta_keywords']=$cfg['plugin']['desc']['key_forum'];
if($m=='posts'){
$out['meta_desc']=(empty($ft_desc))? sed_cutstring(desc_fltr($ft_title),125):desc_fltr(strip_tags($ft_desc));
$pieces=$ft_title;
$pieces= keystop($pieces);
$pieces=explode(" ", $pieces);
array_walk($pieces,'SW');
$pieces = implode(', ',$pieces) ;
$pieces= preg_replace('[ ,]', '', $pieces);
$pieces = rtrim($pieces, ", ");
$pieces = ltrim($pieces, ", ");
$pieces = strtolower($pieces);
$out['meta_keywords']="$pieces, ".$cfg['plugin']['desc']['key_forum'];
 }elseif
($m=='topics'){$out['meta_desc']=(empty($fs_desc))? '':desc_fltr(strip_tags($fs_desc));
$pieces=$fs_title;
$pieces= keystop($pieces);
$pieces=explode(" ", $pieces);
array_walk($pieces,'SW');
$pieces = implode(', ',$pieces) ;
$pieces= preg_replace('[ ,]', '', $pieces);
$pieces = rtrim($pieces, ", ");
$pieces = ltrim($pieces, ", ");
$pieces = strtolower($pieces);
$out['meta_keywords']="$pieces, ".$cfg['plugin']['desc']['key_forum'];
}else{
$out['meta_desc']=(empty($cfg['plugin']['desc']['desc_forum']))? $out['meta_desc']:desc_fltr(strip_tags($cfg['plugin']['desc']['desc_forum']));
}
break;
}
?>

По ссылке ниже оформил в виде плагина.

Cotonti   Теги:

Читать IT-новости в Telegram
Информационные технологии
Мы в соцсетях ✉