[Помогите] Мета-тег Description для страниц, в которых он не предусмотрен

Тема в разделе "OpenCart", создана пользователем Дмитрич, 4 май 2014.

  1. Дмитрич

    Дмитрич

    Регистрация:
    10 апр 2014
    Сообщения:
    191
    Симпатии:
    23
    Добрый всем день!
    Где храняться Мета-тег Description? В Базе, ведь больше негде? А к своим страничкам они на уровне базы привязаны или нет? Можно прямо в базу добавить Мета-тег Description для тех страниц, для которых он не предусмотрен в админке?
    Это и доставка, и оплата, и главная страница на языке, отличным от основного.
    Если нельзя просто подстановкой в базу, то как можно реализовать?

    Спасибо.
     
  2. Bnopen

    Bnopen Команда форума

    Регистрация:
    3 мар 2013
    Сообщения:
    1.264
    Симпатии:
    534
    Дмитрич, страницы доставки и оплаты - это обычные информационные страницы, при создании и редактировании страницы для каждого языка появляется вкладка со своими полями (название, тайтл, дескрипшн, и т.д.). А вот чтоб для главной сделать такое, можно попробовать сделать условие на проверку языка. Ну, а вообще я бы смотрел в сторону создания мультиязычности сторонними плагинами, где каждый язык имеет свой урл: /ru/, /en/, и т.п. Толку от стандартной мультиязычности мало.
     
    Дмитрич нравится это.
  3. Дмитрич

    Дмитрич

    Регистрация:
    10 апр 2014
    Сообщения:
    191
    Симпатии:
    23
    Спасибо, Bnopen. У меня реализована мультиязычность через дополнительный каталог ua/ к украиноязычной части. Но Вы же знаете, что для главной страницы есть одно поле для тегов, без вкладок языков. У меня или на русском будет тег на обеих главных, или на украинском. Гугл ругается по этому поводу, но я не знаю как исправить ситуацию.
     
  4. Bnopen

    Bnopen Команда форума

    Регистрация:
    3 мар 2013
    Сообщения:
    1.264
    Симпатии:
    534
    Дмитрич, попробуйте условие по сессии. Делал так для перевода пунктов меню:
    <?php if($_SESSION['language']=='ru'){ echo "Текст на русском"; } else { echo "Текст українською";} ?>
     
    Дмитрич нравится это.
  5. Дмитрич

    Дмитрич

    Регистрация:
    10 апр 2014
    Сообщения:
    191
    Симпатии:
    23
    Извините, это где использовать?
    В header.tpl у меня:
    <meta name="description" content="<?php echo $description; if (isset($_GET['page'])) { echo " - ". ((int) $_GET['page'])." ".$text_page;} ?>" />
    <?php } ?>

    В header.php у меня:
    $this->data['description'] = $this->document->getDescription();
     
  6. NinoZombie

    NinoZombie

    Регистрация:
    27 окт 2013
    Сообщения:
    223
    Симпатии:
    61
    Код:
    <meta name="description" content="<?php if($_SESSION['language']=='ru') {
    echo "Текст на русском"; } else { echo "Текст українською";} ?>" />
     
    Последнее редактирование: 4 май 2014
    Дмитрич нравится это.
  7. Дмитрич

    Дмитрич

    Регистрация:
    10 апр 2014
    Сообщения:
    191
    Симпатии:
    23
    NinoZombie, спасибо, но в таком виде на русской страничке пропал совсем тег. а вот на украинском - всё получилось.
     
  8. NinoZombie

    NinoZombie

    Регистрация:
    27 окт 2013
    Сообщения:
    223
    Симпатии:
    61
    Вывод - нифига не 'ru' сессия, а по-другому как-то. 'russian' может быть?
     
  9. Bnopen

    Bnopen Команда форума

    Регистрация:
    3 мар 2013
    Сообщения:
    1.264
    Симпатии:
    534
    Дмитрич, на русском надо оставить дескрипшн, который вы заполняете для главной в настройках магазина, а вот на укр уже ввести свое, вот как-то так надо:
    PHP:
    <meta name="description" content="<?php if($_SESSION['language']=='ru') {
    echo 
    $description; } else { echo "Текст українською";} ?>" />
    --- Добавлено, 4 май 2014 ---
    ru - точно. В вашем коде нет echo для русского.
    --- Добавлено, 4 май 2014 ---
    Это, чтоб текст весь был в коде:
    PHP:
    <meta name="description" content="<?php if($_SESSION['language']=='ru') {
    echo 
    "Текст на русском"; } else { echo "Текст українською";} ?>" />
     
    Последнее редактирование: 4 май 2014
    Дмитрич и NinoZombie нравится это.
  10. Дмитрич

    Дмитрич

    Регистрация:
    10 апр 2014
    Сообщения:
    191
    Симпатии:
    23
    )) Спасибо, так получилось с главными страницами, но на всех страницах половины сайта на украинском языке выводится один текст тега, вбитый в header. Эх... А я уже так обрадовался... (
    Можно ли ограничить действие только страницей с жёстко заданным адресом?
    --- Добавлено, 4 май 2014 ---
    Или так: выводить тег по умолчанию, а если его нет, то:
    <meta name="description" content="<?php if($_SESSION['language']=='ru') {
    echo "Текст на русском"; } else { echo "Текст українською";} ?>" />
    Тогда можно убрать с админки тег для главной и всё должно работать. Только вот есть же ещё страницы без этого тега? И на них будет одинаковый отображаться - это тоже плохо.
    --- Добавлено, 4 май 2014 ---
    Посмотрите, пожалуйста! Может что-то вроде этого?

    <meta name="description" content="<?php echo $description; ?>" />
    <?php } else { ?>
    <meta name="description" content="<?php if($_SESSION['language']=='ru') {
    echo "Текстнарусском"; } else { echo "Текстукраїнською";} ?>" />
     
    Последнее редактирование: 4 май 2014
  11. blackfm

    blackfm

    Регистрация:
    29 янв 2013
    Сообщения:
    182
    Симпатии:
    35
    страниц вроде корзины, поиска, и т.п... не должно быть в индексе ПС, закрывать в роботс.тхт, поэтому, без разницы какое там metadescription.
    В опенкарте для каталогов, товаров и статичных страниц из раздела information есть возможность прописать мета описание на разных языках, больше и не нужно
     
    Дмитрич нравится это.
  12. Дмитрич

    Дмитрич

    Регистрация:
    10 апр 2014
    Сообщения:
    191
    Симпатии:
    23
    Спасибо, blackfm, наверное так. Мета ещё нет и в контактах, вроде. Тоже лучше закрыть?
    А вообще я прописал тот вариант, который выше сам же и предложил. Всё работает.
    Спасибо Bnopen и NinoZombie за советы и рецепты, приведшие к результату.
     
  13. blackfm

    blackfm

    Регистрация:
    29 янв 2013
    Сообщения:
    182
    Симпатии:
    35
    дефолтная страница контактов очень скудная, я всегда делаю простую информационную страницу с контактными данными + текст, а функция "Обратный звонок" и "Написать жалобу / предложения и т.п." через модальные окна.
     
    Дмитрич нравится это.
  14. Дмитрич

    Дмитрич

    Регистрация:
    10 апр 2014
    Сообщения:
    191
    Симпатии:
    23
    Просто создать статью и вставить в неё код окон обратной связи?
    Это описано где-то? А то меня эти контакты тоже не устраивают. Адрес ведь выдодится из админки на одном языке для всех версий сайта. Пришлось в языковых файлах всё прописывать. Ну и тегов у неё нет никаких описательных.
     
  15. blackfm

    blackfm

    Регистрация:
    29 янв 2013
    Сообщения:
    182
    Симпатии:
    35
    есть расширения / модули формы обратной связи... ищите на форуме, если не ошибаюсь, одно и таких называется callme
     
    Дмитрич нравится это.
  16. Дмитрич

    Дмитрич

    Регистрация:
    10 апр 2014
    Сообщения:
    191
    Симпатии:
    23
    понизилась позиция главной страницы, смотрю, а Гугл ругается, что Мета-тег одинаковый у неё с картой сайта. Ведь для карты сайта в админке тоже тега нет.... Можно ли его как-то где-то прописать конкретно для страницы карты сайта?
    Пока я вообще запретил её в роботс и удалил из индекса.
     
  17. Дмитрич

    Дмитрич

    Регистрация:
    10 апр 2014
    Сообщения:
    191
    Симпатии:
    23
    Ребята, помогите пожалуйста решить наконец проблему с тегами на мультиязычном Опенкарт.
    Как в header.tpl можно жёстко задать title и meta name="description" для определённых страниц?
    Типа <title>www.mysite.com.ua</title>
    И как это встроить в конструкцию:
    <title><?php echo $title;
    if (isset($_GET['page'])) {
    echo " - ". ((int) $_GET['page'])." ".$text_page;} ?></title>

    Гугл ругается на повторы, так как название совпадает на двух языках и Мета-описания совпадают на главной и карте сайта и пр.
    Главная страницу улетела из выдачи.
    --- Добавлено, 30 май 2014 ---
    Понял, что не правильно выразился.
    Нужно выражение типа:

    Если для страницы не задан титл, то
    если страница = www.mysite.com.ua,
    то <title>некое название</title>,
    если страница = www.mysite.com.ua/ua,
    то <title>другое название</title>,
     
    Последнее редактирование: 30 май 2014