Перейти к содержимому


description и keywords в новостях


  • Вы не можете ответить в тему
В этой теме нет ответов

#1 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 16 April 2014 - 10:39 PM

Дополнение добавляет к штатным новостям метатеги description и keywords.
Ну и показывает их, естественно. Если они заполнены. Иначе штатные description и keywords магазина, как штатно и было.

Спонсор: Lenivec

1. в файле modules_news.tpl.html

перед первым вхождением строки


<table class="adn"><tr><td class="se5"></td></tr></table>


вставляем


{* BEGIN news-metatags *}
<table class="adw">
<tr>
<td width="50%">
<table class="adn">
<tr class="linsz"><td align="left"><span class="titlecol2">{$smarty.const.ADMIN_PRODUCT_DESC2}</span></td></tr>
<tr><td align="left"><textarea name='meta_description' class="adminall" style="margin-right: 38px;">{if $edit_news}{$edit_news.meta_description}{/if}</textarea></td></tr>
</table>
</td>
<td width="50%">
<table class="adn">
<tr class="linsz"><td align="left"><span class="titlecol2">{$smarty.const.ADMIN_PRODUCT_DESC3}</span></td></tr>
<tr><td align="left"><textarea name='meta_keywords' class="adminall">{if $edit_news}{$edit_news.meta_keywords}{/if}</textarea></td></tr>
</table>
</td>
</tr>
</table>
{* END news-metatags *}



2. в файле modules_news.php

2.1. перед строкой


function _getUrlToSubmit()


вставляем


# BEGIN news-metatags
if (!db_fetch_row(db_query("SHOW COLUMNS FROM ".NEWS_TABLE." LIKE 'meta_description'"))) db_query("ALTER TABLE ".NEWS_TABLE." ADD meta_description TEXT");
if (!db_fetch_row(db_query("SHOW COLUMNS FROM ".NEWS_TABLE." LIKE 'meta_keywords'"))) db_query("ALTER TABLE ".NEWS_TABLE." ADD meta_keywords TEXT");
# END news-metatags


2.2. вместо строки


$_POST["textToPublication"], $_POST["textToMail"] );


вставляем


# BEGIN news-metatags
#$_POST["textToPublication"], $_POST["textToMail"] );
$_POST["textToPublication"], $_POST["textToMail"], $_POST["meta_description"], $_POST["meta_keywords"] );
# END news-metatags


2.3. вместо строки


newsUpdateNews($_POST["add_date"], $_POST["title"], $_POST["textToPrePublication"], $_POST["textToPublication"], $_POST["textToMail"], $_POST["edit_news_id"] );


вставляем


# BEGIN news-metatags
#newsUpdateNews($_POST["add_date"], $_POST["title"], $_POST["textToPrePublication"], $_POST["textToPublication"], $_POST["textToMail"], $_POST["edit_news_id"] );
newsUpdateNews($_POST["add_date"], $_POST["title"], $_POST["textToPrePublication"], $_POST["textToPublication"], $_POST["textToMail"], $_POST["edit_news_id"], $_POST["meta_description"], $_POST["meta_keywords"] );
# END news-metatags



3. в файле head.php

в блоке


elseif (isset($_GET["fullnews"])) // fullnews => get title
{
...
}


строки


if ( CONF_HOMEPAGE_META_DESCRIPTION != "" )
$meta_tags .= "<meta name=\"description\" content=\"".CONF_HOMEPAGE_META_DESCRIPTION."\">\n";
if ( CONF_HOMEPAGE_META_KEYWORDS != "" )
$meta_tags .= "<meta name=\"keywords\" content=\"".CONF_HOMEPAGE_META_KEYWORDS."\">\n";


заменяем


# BEGIN news-metatags
/*
if ( CONF_HOMEPAGE_META_DESCRIPTION != "" )
$meta_tags .= "<meta name=\"description\" content=\"".CONF_HOMEPAGE_META_DESCRIPTION."\">\n";
if ( CONF_HOMEPAGE_META_KEYWORDS != "" )
$meta_tags .= "<meta name=\"keywords\" content=\"".CONF_HOMEPAGE_META_KEYWORDS."\">\n";
*/
if ( $fullnews_array_head["meta_description"] != "") $meta_tags .= "<meta name=\"description\" content=\"".$fullnews_array_head["meta_description"]."\">\n";
elseif ( CONF_HOMEPAGE_META_DESCRIPTION != "" ) $meta_tags .= "<meta name=\"description\" content=\"".CONF_HOMEPAGE_META_DESCRIPTION."\">\n";
if ( $fullnews_array_head["meta_keywords"] != "" ) $meta_tags .= "<meta name=\"keywords\" content=\"".$fullnews_array_head["meta_keywords"]."\">\n";
elseif ( CONF_HOMEPAGE_META_KEYWORDS != "" ) $meta_tags .= "<meta name=\"keywords\" content=\"".CONF_HOMEPAGE_META_KEYWORDS."\">\n";
# END news-metatags



4. в файле news_function.php

4.1. в функции newsGetFullNewsToCustomer

строку


$q = db_query( "select add_date, title, textToPrePublication, textToPublication from ".NEWS_TABLE." where NID=".(int)$newsid);


заменяем на


# BEGIN news-metatags
#$q = db_query( "select add_date, title, textToPrePublication, textToPublication from ".NEWS_TABLE." where NID=".(int)$newsid);
$q = db_query( "select * from ".NEWS_TABLE." where NID=".(int)$newsid);
# END news-metatags



4.2. в функции newsGetNewsToEdit

строку


#$q = db_query( "select add_date, title, textToPrePublication, textToPublication, textToMail from ".NEWS_TABLE." where NID=".(int)$newsid);


заменяем на


# BEGIN news-metatags
#$q = db_query( "select add_date, title, textToPrePublication, textToPublication, textToMail from ".NEWS_TABLE." where NID=".(int)$newsid);
$q = db_query( "select * from ".NEWS_TABLE." where NID=".(int)$newsid);
# END news-metatags



4.3. в функции newsAddNews

строку


function newsAddNews( $add_date, $title, $textToPrePublication, $textToPublication, $textToMail )


заменяем на


# BEGIN news-metatags
#function newsAddNews( $add_date, $title, $textToPrePublication, $textToPublication, $textToMail )
function newsAddNews( $add_date, $title, $textToPrePublication, $textToPublication, $textToMail, $metaDescription, $metaKeywords)
# END news-metatags


строки


db_query( "insert into ".NEWS_TABLE." ( add_date, title, textToPrePublication, textToPublication, textToMail, add_stamp ) ".
" values( '".xEscSQL(dtDateConvert($add_date))."', '".xToText(trim($title))."', '".xEscSQL($textToPrePublication)."', '".xEscSQL($textToPublication)."', '".xEscSQL($textToMail)."', ".$stamp." ) ");


заменяем на


# BEGIN news-metatags
#db_query( "insert into ".NEWS_TABLE." ( add_date, title, textToPrePublication, textToPublication, textToMail, add_stamp ) ".
#" values( '".xEscSQL(dtDateConvert($add_date))."', '".xToText(trim($title))."', '".xEscSQL($textToPrePublication)."', '".xEscSQL($textToPublication)."', '".xEscSQL($textToMail)."', ".$stamp." ) ");
db_query( "insert into ".NEWS_TABLE." ( add_date, title, textToPrePublication, textToPublication, textToMail, add_stamp, meta_description, meta_keywords ) ".
" values( '".xEscSQL(dtDateConvert($add_date))."', '".xToText(trim($title))."', '".xEscSQL($textToPrePublication)."', '".xEscSQL($textToPublication)."', '".xEscSQL($textToMail)."', ".$stamp.",'".xEscSQL($metaDescription)."', '".xEscSQL($metaKeywords)."' ) ");
# END news-metatags



4.4. в функции newsUpdateNews

строку


function newsUpdateNews( $add_date, $title, $textToPrePublication, $textToPublication, $textToMail, $id_news )


заменяем на


# BEGIN news-metatags
#function newsUpdateNews( $add_date, $title, $textToPrePublication, $textToPublication, $textToMail, $id_news )
function newsUpdateNews( $add_date, $title, $textToPrePublication, $textToPublication, $textToMail, $id_news, $metaDescription, $metaKeywords)
# END news-metatags


перед строкой


" textToMail='".xEscSQL($textToMail)."' ".


вставляем


# BEGIN news-metatags
"meta_description='".xEscSQL($metaDescription)."',".
"meta_keywords='".xEscSQL($metaKeywords)."',".
# END news-metatags

  • 1
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)