Мета-теги на статичной странице
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение
).
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды
Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение
-
Eridani
- phpBB 1.4.2
- Сообщения: 56
- Стаж: 13 лет
- Благодарил (а): 17 раз
Мета-теги на статичной странице
Доброго всем!
Для СЕО необходимо было создать статичную страницу. Сделал путем копирования файла faq.php из корневой и faq_body из теплейтов.
Все отлично, все отображается как надо, почти идеальная площадка под статью, но...
Как можно задать мета-теги этой странице?
Я понимаю, что у меня в начале файла faq_body идет <!-- INCLUDE overall_header.html -->, откуда, видимо и берутся теги, но есть ли у кого-нибудь идейка, как без танцев с бубном задать каждой статичной заточенной под текст странице свои мета-теги?
Для СЕО необходимо было создать статичную страницу. Сделал путем копирования файла faq.php из корневой и faq_body из теплейтов.
Все отлично, все отображается как надо, почти идеальная площадка под статью, но...
Как можно задать мета-теги этой странице?
Я понимаю, что у меня в начале файла faq_body идет <!-- INCLUDE overall_header.html -->, откуда, видимо и берутся теги, но есть ли у кого-нибудь идейка, как без танцев с бубном задать каждой статичной заточенной под текст странице свои мета-теги?
-
Татьяна5
- Поддержка

- Сообщения: 13159
- Стаж: 15 лет 1 месяц
- Благодарил (а): 236 раз
- Поблагодарили: 3750 раз
Re: Мета-теги на статичной странице
Задать свои переменные под мета-теги для каждой страницы
По аналогии с Создание страниц в стиле конференции (все страницы будут открываться через один php-файл, а передавать переменные можно для каждой страницы свои)
В
Добавлено спустя 7 минут 56 секунд:
Или в таком варианте (запись короче)
По аналогии с Создание страниц в стиле конференции (все страницы будут открываться через один php-файл, а передавать переменные можно для каждой страницы свои)
Код: Выделить всё
$cond=request_var("page", "");
switch($cond)
{
case "aboutus":
$template->assign_vars(array(
'CUSTOM_META_KEYWORDS' => $user->lang['KEYWORDS_ABOUTUS'],
'CUSTOM_META_DESCRIPTION' => $user->lang['DESCRIPTION_ABOUTUS'],
));
break;
case "page2":
$template->assign_vars(array(
'CUSTOM_META_KEYWORDS' => $user->lang['KEYWORDS_PAGE2'],
'CUSTOM_META_DESCRIPTION' => $user->lang['DESCRIPTION_PAGE2'],
));
break;
}
KEYWORDS_ABOUTUS, DESCRIPTION_ABOUTUS, KEYWORDS_PAGE2, DESCRIPTION_PAGE2 задать в языковом файле, который подключён к страницамВ
overall_header.html использовать (в мета-тегах)
Код: Выделить всё
<!-- IF CUSTOM_META_KEYWORDS -->{CUSTOM_META_KEYWORDS}<!-- ENDIF -->
<!-- IF CUSTOM_META_DESCRIPTION -->{CUSTOM_META_DESCRIPTION}<!-- ENDIF -->Или в таком варианте (запись короче)
Код: Выделить всё
$cond=request_var("page", "");
switch($cond)
{
case "aboutus":
case "page2":
$template->assign_vars(array(
'CUSTOM_META_KEYWORDS' => $user->lang['KEYWORDS_' . strtoupper($cond)],
'CUSTOM_META_DESCRIPTION' => $user->lang['DESCRIPTION_' . strtoupper($cond)],
));
break;
}-
Eridani
- phpBB 1.4.2
- Сообщения: 56
- Стаж: 13 лет
- Благодарил (а): 17 раз
Re: Мета-теги на статичной странице
Не понимаю, в пхп не силен. То есть, условие проверяет название страницы и если оно соответствует, то тогда применяется та или иная переменная?
У меня вообще ничего не получается.
Адрес я ввожу как www.site.ru/polezno.php
В index.php используется языковой viewforum, его же я использовал для своего файла.
Добавил как:
Мой созданный файл в корне имеет вид
Тело:
и functions.php
В overall_header это выглядит так:
В итоге - фиг, ничего, даже строки meta description, meta keywords и title даже неотображаются в исходном коде при просмотре страницы, либо я вообще не могу читать код.
В моем понимании, скрипт в functions проверяет название страницы, если оно соответствует одному из перечисленных, тогда он применяет те переменные, которые в теле условия и указаны.
У меня вообще ничего не получается.
Адрес я ввожу как www.site.ru/polezno.php
В index.php используется языковой viewforum, его же я использовал для своего файла.
Добавил как:
Код: Выделить всё
'KEYWORDS_ABOUTUS' => 'кейвордс',
'DESCRIPTION_ABOUTUS' => 'дескрипшн',
'TITLE_ABOUTUS' => 'титл',Код: Выделить всё
<?php
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup('viewforum');
page_header('polezno');
$template->set_filenames(array(
'body' => 'polezno_body.html',
));
make_jumpbox(append_sid("{$phpbb_root_path}viewforum.$phpEx"));
page_footer();
?>Код: Выделить всё
<!-- INCLUDE overall_header.html -->
<div class="panel">
<div class="inner"><span class="corners-top"><span></span></span>
<div class="content">
<p>
Тра та та
</p>
</div>
<span class="corners-bottom"><span></span></span></div>
</div>
<!-- INCLUDE jumpbox.html -->
<!-- INCLUDE overall_footer.html -->Код: Выделить всё
$cond=request_var("page", "");
switch($cond)
{
case "polezno":
$template->assign_vars(array(
'CUSTOM_META_KEYWORDS' => $user->lang['KEYWORDS_ABOUTUS'],
'CUSTOM_META_DESCRIPTION' => $user->lang['DESCRIPTION_ABOUTUS'],
'CUSTOM_META_TITLE' => $user->lang['TITLE_ABOUTUS'],
));
break;
case "page2":
$template->assign_vars(array(
'CUSTOM_META_KEYWORDS' => $user->lang['KEYWORDS_PAGE2'],
'CUSTOM_META_DESCRIPTION' => $user->lang['DESCRIPTION_PAGE2'],
));
break;
}Код: Выделить всё
<!-- IF CUSTOM_META_KEYWORDS --><meta name="keywords" content="{CUSTOM_META_KEYWORDS}" /><!-- ENDIF -->
<!-- IF CUSTOM_META_DESCRIPTION --><meta name="description" content="{CUSTOM_META_DESCRIPTION}" /><!-- ENDIF --><!-- IF CUSTOM_META_TITLE --><title>{CUSTOM_META_TITLE}</title><!-- ENDIF -->В моем понимании, скрипт в functions проверяет название страницы, если оно соответствует одному из перечисленных, тогда он применяет те переменные, которые в теле условия и указаны.
-
Татьяна5
- Поддержка

- Сообщения: 13159
- Стаж: 15 лет 1 месяц
- Благодарил (а): 236 раз
- Поблагодарили: 3750 раз
Re: Мета-теги на статичной странице
Да, часть из адреса послеEridani писал(а):проверяет название страницы
page= (а в адресе этой части нет)
Там правки не нужныEridani писал(а):и functions.php
page.php
Код: Выделить всё
<?php
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup('viewforum');
$cond = request_var('page', '');
switch($cond)
{
case 'polezno':
case 'page2':
case 'page3':
$template->assign_vars(array(
'CUSTOM_META_KEYWORDS' => $user->lang['KEYWORDS_' . strtoupper($cond)],
'CUSTOM_META_DESCRIPTION' => $user->lang['DESCRIPTION_' . strtoupper($cond)],
'PAGE_TITLE' => $user->lang['TITLE_' . strtoupper($cond)],
));
page_header($user->lang['TITLE_' . strtoupper($cond)]);
$template->set_filenames(array(
'body' => $cond . '_body.html',
));
make_jumpbox(append_sid("{$phpbb_root_path}viewforum.$phpEx"));
page_footer();
break;
default:
trigger_error('404 page');
break;
}
?>overall_header.html(Новые строки в файл не добавлять)
Найти
Код: Выделить всё
<meta name="keywords" content="" />
<meta name="description" content="" />Код: Выделить всё
<meta name="keywords" content="<!-- IF CUSTOM_META_KEYWORDS -->{CUSTOM_META_KEYWORDS}<!-- ENDIF -->" />
<meta name="description" content="<!-- IF CUSTOM_META_DESCRIPTION -->{CUSTOM_META_DESCRIPTION}<!-- ENDIF -->" />title переменная там уже естьlanguage/ru/viewforum.php
Код: Выделить всё
'KEYWORDS_POLEZNO' => 'кейвордс',
'DESCRIPTION_POLEZNO' => 'дескрипшн',
'TITLE_POLEZNO' => 'титл',
'KEYWORDS_PAGE2' => 'кейвордс 2',
'DESCRIPTION_PAGE2' => 'дескрипшн 2',
'TITLE_PAGE2' => 'титл 2',
'KEYWORDS_PAGE3' => 'кейвордс 3',
'DESCRIPTION_PAGE3' => 'дескрипшн 3',
'TITLE_PAGE3' => 'титл 3',Код: Выделить всё
polezno_body.html
page2_body.html
page3_body.htmlКод: Выделить всё
http://форум/page.php?page=polezno
http://форум/page.php?page=page2
http://форум/page.php?page=page3case в page.php, задать языковые переменные и создать шаблон-
Eridani
- phpBB 1.4.2
- Сообщения: 56
- Стаж: 13 лет
- Благодарил (а): 17 раз
Re: Мета-теги на статичной странице
Татьяна5, Спасибо. Все получилось.
Но тут вопросик:
Дело в том, что я переменную для титла и дескрипшена в Overall header не использовал, только текст который там прописан.
Можно ли, что бы на всех страницах кроме тех, которые мне нужны, был один титл, дескрипшн и кейвордс?
Своего рода конструкция (прошу прощения, если накосячил, не силен)
Грубо говоря, если страница $такая то, то к ней применить переменную мета тегов, если страница2, то к ней свои, а если ни одна из них (в противном случае), то применить описание \ мета теги, которые будут распространяться на весь остальной форум
Но тут вопросик:
Дело в том, что я переменную для титла и дескрипшена в Overall header не использовал, только текст который там прописан.
Можно ли, что бы на всех страницах кроме тех, которые мне нужны, был один титл, дескрипшн и кейвордс?
Своего рода конструкция (прошу прощения, если накосячил, не силен)
Код: Выделить всё
<?php
if ($cond == 'polezno') {
$template->assign_vars(array(
'CUSTOM_META_KEYWORDS' => $user->lang['KEYWORDS_' . strtoupper($cond)],
'CUSTOM_META_DESCRIPTION' => $user->lang['DESCRIPTION_' . strtoupper($cond)],
'PAGE_TITLE' => $user->lang['TITLE_' . strtoupper($cond)],
));
page_header($user->lang['TITLE_' . strtoupper($cond)]);
$template->set_filenames(array(
'body' => $cond . 'polezno_body.html',
));
}
elseif ($username == 'page2') {
$template->assign_vars(array(
'CUSTOM_META_KEYWORDS' => $user->lang['KEYWORDS_' . strtoupper($cond)],
'CUSTOM_META_DESCRIPTION' => $user->lang['DESCRIPTION_' . strtoupper($cond)],
'PAGE_TITLE' => $user->lang['TITLE_' . strtoupper($cond)],
));
page_header($user->lang['TITLE_' . strtoupper($cond)]);
$template->set_filenames(array(
'body' => $cond . 'page2_body.html',
));
}
else {
$template->assign_vars(array(
'CUSTOM_META_KEYWORDS' => $user->lang['KEYWORDS_' . strtoupper($cond)],
'CUSTOM_META_DESCRIPTION' => $user->lang['DESCRIPTION_' . strtoupper($cond)],
'PAGE_TITLE' => $user->lang['TITLE_' . strtoupper($cond)],
));
page_header($user->lang['TITLE_' . strtoupper($cond)]);
}
?>
-
Татьяна5
- Поддержка

- Сообщения: 13159
- Стаж: 15 лет 1 месяц
- Благодарил (а): 236 раз
- Поблагодарили: 3750 раз
Re: Мета-теги на статичной странице
Если внести правки вEridani писал(а):на весь остальной форум
page.php - то изменения будут распространяться только доп.страницы (которые открываются через page.php)Можно проще, без правок в php
overall_header.html
Код: Выделить всё
<meta name="keywords" content="<!-- IF CUSTOM_META_KEYWORDS -->{CUSTOM_META_KEYWORDS}<!-- ELSE -->{L_KEYWORDS}<!-- ENDIF -->" />
<meta name="description" content="<!-- IF CUSTOM_META_DESCRIPTION -->{CUSTOM_META_DESCRIPTION}<!-- ELSE -->{L_DESCRIPTION}<!-- ENDIF -->" />DESCRIPTION и KEYWORDS задать в ru/common.php-
Eridani
- phpBB 1.4.2
- Сообщения: 56
- Стаж: 13 лет
- Благодарил (а): 17 раз
Re: Мета-теги на статичной странице
Спасибо, всё сработало.Татьяна5 писал(а):Можно проще, без правок в phpEridani писал(а):на весь остальной форум
Только вот с title не очень получилось.
Keywords и Description применяются к этим страницам в page свои, на всех других оно одинаковое, дефолтное, чего я и добивался, и title применяется к этим страницам свой, но во всех других он выдает их реальные названия типа "портал", "просмотр форума" "главная страница" вместо заготовленного. Пытался сделать так, но ничего не вышло
Код: Выделить всё
<!-- IF PAGE_TITLE -->{PAGE_TITLE}<!-- ELSE -->{L_TITLE}<!-- ENDIF -->Я, наверное, чокнусь с этим, но интерес, как это делается, превыше
-
Татьяна5
- Поддержка

- Сообщения: 13159
- Стаж: 15 лет 1 месяц
- Благодарил (а): 236 раз
- Поблагодарили: 3750 раз
Re: Мета-теги на статичной странице
Перевожу на русский:Eridani писал(а):Код: Выделить всё
<!-- IF PAGE_TITLE -->{PAGE_TITLE}<!-- ELSE -->{L_TITLE}<!-- ENDIF -->
Код: Выделить всё
<!-- ЕСЛИ переменная PAGE_TITLE задана и не равна нулю --> выводим переменную PAGE_TITLE <!-- ИНАЧЕ --> выводим языковую переменную TITLE <!-- КОНЕЦ УСЛОВИЯ -->PAGE_TITLE задаётся через функцию page_header()К примеру, в
index.php
Код: Выделить всё
page_header($user->lang['INDEX']);language/ru/common.php
Код: Выделить всё
'INDEX' => 'Главная страница',index.php в заголовке будет выведено "Главная страница"
