keywords, description, через темизацию

Аватар пользователя otolaa otolaa 26 сентября 2010 в 16:54

Откапал Подглядел легкий способ добавить через темизацию ключевые слова ни судите строго, делюсь с Вами потому что ну не всякий любит модули nodewords и т.д. keywords и description можно будит писать в админке такое есть в темах acquia_marina и clearland

1) создаем файл theme-settings.php в папке вашей темы

в него пишим

<?php
// $Id:

/**
** Theme setting defaults
*/
function ВАШАТЕМА_default_theme_settings() {
$defaults = array(
'meta_keywords' => '',
'meta_description' => '',
'fix_css_limit' => 0,
'rounded_corners' => 0,
);

// Add site-wide theme settings
$defaults = array_merge($defaults, theme_get_settings());

return $defaults;
}

/*
** Implementation of THEMEHOOK_settings() function.
*/
function ВАШАТЕМА_settings($saved_settings) {
global $base_url;

// Retrieve & combine default and saved theme settings
$defaults = ВАШАТЕМА_default_theme_settings();
$settings = array_merge($defaults, $saved_settings);

// Create theme settings form widgets using Forms API

// Fieldset
$form['ВАШАТЕМА_set'] = array(
'#type' => 'fieldset',
'#title' => t('Îáñòàíîâêà Òåìû'),
'#description' => t('Èñïîëüçóéòå ýòè óñòàíîâî÷íûå ïàðàìåòðû, ÷òîáû èçìåíÿòü ÷òî è êàê èíôîðìàöèÿ îòîáðàæåíà â âàøåé òåìå.'),
'#collapsible' => TRUE,
'#collapsed' => FALSE,
);

// Metadata
$form['ВАШАТЕМА_set']['seo']['meta'] = array(
'#type' => 'fieldset',
'#title' => t('Meta òåãè'),
'#description' => t("Meta tags aren't used much by search engines anymore, but the meta description is important — this is what will be shown as the description of your link in search engine results. NOTE: For more advanced meta tag functionality, check out the Meta Tags (aka. Node Words) module. These theme settings do not work in conjunction with this module and will not appear if you have it enabled."),
'#collapsible' => TRUE,
'#collapsed' => TRUE,
);
if (!module_exists('nodewords')) {
$form['ВАШАТЕМА_set']['seo']['meta']['meta_keywords'] = array(
'#type' => 'textfield',
'#title' => t('Meta keywords êëþ÷èâûå ñëîâà'),
'#description' => t('Enter a comma-separated list of keywords'),
'#size' => 60,
'#default_value' => $settings['meta_keywords'],
);
$form['ВАШАТЕМА_set']['seo']['meta']['meta_description'] = array(
'#type' => 'textarea',
'#title' => t('Meta description'),
'#cols' => 60,
'#rows' => 6,
'#default_value' => $settings['meta_description'],
);
}
else {
$form['ВАШАТЕМА_set']['seo']['meta']['#description'] = t('NOTICE: You currently have the "nodewords" module installed and enabled, so the meta tag theme settings have been disabled to prevent conflicts. If you later wish to re-enable the meta tag theme settings, you must first disable the "nodewords" module.');
$form['ВАШАТЕМА_set']['seo']['meta']['meta_keywords']['#disabled'] = 'disabled';
$form['ВАШАТЕМА_set']['seo']['meta']['meta_description']['#disabled'] = 'disabled';
}

return $form;
}

?>

2) template.php добавляем

function phptemplate_preprocess_page(&$vars) {

// Set meta keywords and description (unless using Meta tags module)
if (!module_exists('nodewords')) {
if (theme_get_setting('meta_keywords') !== '') {
$keywords = '';
$vars['head'] .= $keywords ."\n";
}
if (theme_get_setting('meta_description') !== '') {
$keywords = '';
$vars['head'] .= $keywords ."\n";
}
}

}

в настройках темы появляется дополнительные поля для задания keywords description

0 Thanks

Комментарии

Аватар пользователя Ростислав Ростислав 26 сентября 2010 в 17:10

Вопрос - а разный description для разных страниц можно задавать? Если нет, то большого смысла при поисковом продвижении нету. Только если ради сниппета для Гугла...

Аватар пользователя volocuga@drupal.org volocuga@drupal.org 26 сентября 2010 в 17:14
"Ростислав" wrote:

Вопрос - а разный description для разных страниц можно задавать?

+1, полезность решения стремится к нулю

Аватар пользователя Stan.Ezersky Stan.Ezersky 26 сентября 2010 в 18:35
"otolaa" wrote:
<?php/**
** Theme setting defaults
*/
function ВАШАТЕМА_default_theme_settings() {
  
$defaults = array(
    
'meta_keywords'     => '',
    
'meta_description'  => '',
    
'fix_css_limit'     => 0,
    
'rounded_corners'   => 0,
  );
?>

.............................................

Код выдран из темы Clearland, поправлен «чтобы не было видно откуда» с БОЛЬШИМИ ошибкам!

Выдираете код из чужих тем, выдирайте правильно.

Аватар пользователя ram-ram ram-ram 26 сентября 2010 в 18:53

Дык он в самом начале написал, что подсмотрел именно в этой теме

"otolaa" wrote:

можно будит писать в админке такое есть в темах acquia_marina и clearland

Аватар пользователя Stan.Ezersky Stan.Ezersky 26 сентября 2010 в 19:27
"ram-ram" wrote:

Дык он в самом начале написал, что подсмотрел именно в этой теме

Так и написано, что выдрано с ОШИБКАМИ-)

Аватар пользователя otolaa otolaa 27 сентября 2010 в 7:53
"Stan.Ezersky" wrote:

Так и написано, что выдрано с ОШИБКАМИ-)

да КАЮСЬ ошибки, исправлюсь, если поможете с кодом буду счастлив,

"Ростислав" wrote:

а разный description для разных страниц можно задавать?

мммм тоже над этом думаю , будит решение поделюсь )

Аватар пользователя Stan.Ezersky Stan.Ezersky 27 сентября 2010 в 15:20
"otolaa" wrote:

исправлюсь, если поможете с кодом буду счастлив

Пользуйтесь готовой темой, для того и сделана-)