Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 33 Ответов
  • 35677 Просмотров

На страницах "блог-содержимое категории" (и что самое плохое, в том числе на главной странице) Joomla собирает теги description  и keywords из тегов каждого материала (флаги мета я оставил специально пустыми). Все было бы ничего, но собирает она с последнего материала до первого, а мне важно чтобы с первого к последнему. Но лучше, если бы  она брала для главной страницы Флаги мета , а для остальных пусть как есть, но без Флагов. Второй вариант даже предпочтительней, так как теги для главной будут нормальной длины. Подскажите как сделать? Менять, как я понимаю надо здесь, но я не программист.
* Tags ordered in with Site Keywords and Description first
   */
   function appendMetaTag( $name, $content ) {
      $name = trim( htmlspecialchars( $name ) );
      $n = count( $this->_head['meta'] );
      for ($i = 0; $i < $n; $i++) {
         if ($this->_head['meta'][$i][0] == $name) {
            $content = trim( htmlspecialchars( $content ) );
            if ( $content ) {
               if ( !$this->_head['meta'][$i][1] ) {
                  $this->_head['meta'][$i][1] = $content ;
               } else {
                  $this->_head['meta'][$i][1] = $content .', '. $this->_head['meta'][$i][1];
               }
            }
            return;
         }
      }
      $this->addMetaTag( $name , $content );
   } 
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
давным давно я предлагал следующий вариант решения проблемы:

в файле frontend.php строки:
Код
$mainframe->appendMetaTag( 'description', $mosConfig_MetaDesc ); $mainframe->appendMetaTag( 'keywords', $mosConfig_MetaKeys );
заменить на:
Код
if (($option == '') || ($option == 'com_frontpage'))
{
$mainframe->appendMetaTag( 'description', $mosConfig_MetaDesc );
$mainframe->appendMetaTag( 'keywords', $mosConfig_MetaKeys );
}
Данная модификация позволит вставлять глобальные мета только на главной страице, а на всех остальных они вставляться не будут.

Спасибо, я пробовал этот вариант, все так и просходит, но при этом добавляются часть описаний и ключевых слов из всех размещенных на главной странице материалов и мета-теги разбухают запредельно.  Это можно устранить?
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
в файле content.html.php найди строчки:

Код
		$mainframe->appendMetaTag( 'description', $row->metadesc );
$mainframe->appendMetaTag( 'keywords', $row->metakey );
и замени их на:
Код
		global $option;
if (($option != '') && ($option != 'com_frontpage')) {
$mainframe->appendMetaTag( 'description', $row->metadesc );
$mainframe->appendMetaTag( 'keywords', $row->metakey );
}
Т.е. добавление ключевых материалов будет происходить ТОЛЬКО если мы сейчас не на главной странице... Такой вариант устроит?

Спасибо, все получилось, приятно пообщаться с умным человеком. Приглашаю взглянуть http://zdobr.ru Удачи
« Последнее редактирование: 23.08.2006, 16:41:29 от zdobr »
*

Patrick

  • Захожу иногда
  • 122
  • 6 / 12

Большое спасибо, Смарт.
« Последнее редактирование: 30.07.2006, 02:58:18 от Patrick »

Да, и меня она как-то давно вот тут интересовала
http://ru-mambo.ru/smf/index.php/topic,13361.0.html

Ну и конечно, сразу меня smart направил на:

давным давно я предлагал следующий вариант решения проблемы:

в файле frontend.php строки:
....
Данная модификация позволит вставлять глобальные мета только на главной страице, а на всех остальных они вставляться не будут.

Потом я уже подобрался и к правке content.html.php, чтобы не клеило на главной.

Но ведь, по первому хаку, на всех остальных страницах (например галерери, архивы) - глобал вообще отсутсвует в мета. Поэтому как бы не совсем то.

У себя я этот вопрос уже данво так решаю (прошу прощения, если это совсем не ново, просто в других темах этого не встречал я):
1. Соответсвенно как и от smart - frontend.php, только по другому
Код
        $description='';
        $keywords = '';

        if (count ($mainframe->_head['meta'])) {
        foreach($mainframe->_head['meta'] AS $key => $value){
                if( $mainframe->_head['meta'][$key][0]=='description'){
                    $description .= $mainframe->_head['meta'][$key][1];
                }elseif ($mainframe->_head['meta'][$key][0]=='keywords'){
                    $keywords .= $mainframe->_head['meta'][$key][1];
                }
        }
        }
        if (!$description) $mainframe->appendMetaTag( 'description', $mosConfig_MetaDesc );
        if (!$keywords)    $mainframe->appendMetaTag( 'keywords', $mosConfig_MetaKeys );

Этим мы избегаем приклея глобал-мета в контенте и оставляем возможность их клеить в других компонентах (в большинстве они-мета вообще отсутствуют, не во всех конечно, например в VM при просмотре деталей товара, категории, а в докмэне их нет). Тем более, теперь даже контент, если мы забыли написать туда мета - теперь пустовать он не будет - хотя бы глобал

2. Ну и соответственно для content.html.php - чтобы к главной не лепило (а иначе мета есть-и проверка даст то, что и глобал не приклеится) - код выше в ответе smart

По-моему, теперь все универсально под любой компонент.

В общем, если кто-то подскажет лучше - буду рад.
« Последнее редактирование: 11.08.2006, 03:07:03 от _Sash@ »
*

Dmitriy

  • Осваиваюсь на форуме
  • 41
  • 2 / 0
Спасибо за код, все супер за одним исключекнием можно сделать тоже самое
Этим мы избегаем приклея глобал-мета в контенте и оставляем возможность их клеить в других компонентах (в большинстве они-мета вообще отсутствуют, не во всех конечно, например в VM при просмотре деталей товара, категории, а в докмэне их нет). Тем более, теперь даже контент, если мы забыли написать туда мета - теперь пустовать он не будет - хотя бы глобал

но и для статического материала?
а то для динамических это работает, а для стат нет....  ????
*

ArtPV

  • Осваиваюсь на форуме
  • 42
  • 3 / 0
  • Компания ArtPV.ru
Поменял код как написано выше и все равно description головной страницы все равно висит в описании любого материала.
Как убрать на материале description головной страницы и поставить description материала?
Помогите!
*

Mr.Friction

  • Захожу иногда
  • 81
  • 1 / 6
А как поменять формирование мета description в контенте чтоб сначало были $row->metadesc а потом глобальное описание ? 
*

Ale][R

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
Сделал как написано в постах 1 и 3
Подскажите, как сделать так что бы на главной странице не добавлялись описания и ключевые слова всех страниц размещенных на главной. А отображалось только дескрипшион и кейворд с главной страницы?
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Подскажите, как сделать так что бы на главной странице не добавлялись описания и ключевые слова всех страниц размещенных на главной.
ну так в 4-м посте я это и описывал...
*

Ale][R

  • Осваиваюсь на форуме
  • 17
  • 0 / 0
ну так в 4-м посте я это и описывал...
Ну да, я сделал так, все равно не то что то, вот посмотри _http://medicstyle.ru
Еще пробовал делать так http://joomlaportal.ru/content/view/249/68/
Да и еще, у меня стоит MamboeZine может из за него у меня на главной отображаются кейворды всех статей кторые там опубликованы?
« Последнее редактирование: 17.01.2008, 11:46:22 от Ale][R »
*

Mr.Friction

  • Захожу иногда
  • 81
  • 1 / 6
А так как писал я - сделать невозможно?
*

ArtPV

  • Осваиваюсь на форуме
  • 42
  • 3 / 0
  • Компания ArtPV.ru
Выходит что проще вобще отключит глобальное описание и тогда на материалах появится описание именно материала? !!!???!!!
*

Mr.Friction

  • Захожу иногда
  • 81
  • 1 / 6
Да.....
Но тогда надо переделывать все компоненты.
*

ART-DELI

  • Давно я тут
  • 801
  • 75 / 9
  • Не успеешь ты – сделают другие.
Я так понимаю проблема только  с некоторыми версиями Joomla?
Вот читал постик, глянул у себя, версия 1.0.13
Описание Description для каждой статьи свое а не глобальное. Хака никакого не делал.
Или я не о том?
*

ART-DELI

  • Давно я тут
  • 801
  • 75 / 9
  • Не успеешь ты – сделают другие.
Я так понимаю что я  нечего не понимаю..

Когда просматриваю через лису информацию у странице, то описание нормальное, именно статьи а не глобальное, тесть description.
Но гугл почему то выдает глобальное описание?

И как так может быть? Тоесть description статьи в редакторе, существует только для красоты?
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Но гугл почему то выдает глобальное описание?
может быть он просто давным давно проиндексировал с тех пор не менял? удалите из кэша эту страницу и подождите пока он снова проиндексирует (с sitemap будет быстрее)
*

ART-DELI

  • Давно я тут
  • 801
  • 75 / 9
  • Не успеешь ты – сделают другие.
Да, все сделал.. Но факт в том что сайт был закрыт, потом открыть с description уникальными для каждой страницы. Но пока выдает только глобальное.
Будем ждать.... Если нет то прийдется отключить глобальное описание

*

ART-DELI

  • Давно я тут
  • 801
  • 75 / 9
  • Не успеешь ты – сделают другие.
Вот только что посмотрел статистику индекса сайта..

Для всех страниц сайта,показывает глобальное description.
Но для главной страницы, description того раздела который опубликован на главной..
Как с этим бороться?
*

bog74

  • Осваиваюсь на форуме
  • 45
  • 0 / 0
В этом топике интересующий меня вопрос присутствует три раза, все без ответа, но рискну его еще раз задать, авось появится решение или другая интересная информация.

Вообщем-то вопрос в следующем:
После проведения модификации указанной здесь
А именно
Цитировать
# Открываем файл /includes/frontend.php
# Находим в нем строчки:

  $mainframe->appendMetaTag( 'description', $mosConfig_MetaDesc );
  $mainframe->appendMetaTag( 'keywords', $mosConfig_MetaKeys );

и заменяем на

  $description = '';
  $keywords = ''; и т.д.

Описание для всех страниц сайта остается глобальное. В случае его удаления, ни какого.
И того получаем на всех индексированых Google страницах примерно следующее
Цитировать
Секретариат президента обвиняет правительство во ...
События Дня - портал о событиях в политике, экономике, спорте, культуре, охране здоровья.
www.sobutiya.net/index.php?option=com_content&task=view&id=511&Itemid=72 - 65k - Сохранено в кэше - Похожие страницы - Записать
Как выглядит тройка самых дорогих поисковиков мира?
События Дня - портал о событиях в политике, экономике, спорте, культуре, охране здоровья.
www.sobutiya.net/index.php?option=com_content&task=view&id=468&Itemid=50 - 63k - Сохранено в кэше - Похожие страницы - Записать

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

Какой есть выход из этой ситуации?
Возможно не проводить этой модернизации и удалить глобальное описание и ключевые слова?
Установлена версия 1.0.15 RE.
*

bog74

  • Осваиваюсь на форуме
  • 45
  • 0 / 0
Попробовал только что
Возможно не проводить этой модернизации и удалить глобальное описание и ключевые слова?
В результате описания нет ни глобального, ни конкретного из материала.С ключевыми словами все нормально (как впрочем и было).
Вернул все назад.

В чем может быть проблема?
*

ART-DELI

  • Давно я тут
  • 801
  • 75 / 9
  • Не успеешь ты – сделают другие.
Попробовал только чтоВ результате описания нет ни глобального, ни конкретного из материала.С ключевыми словами все нормально (как впрочем и было).
Вернул все назад.

В чем может быть проблема?
Если вы сделали все правильно то никаких проблем нету..
У меня после всех работ  для SEO а именно

1. Поле keywords передается в поле title для каждой страницы
2. Сначала идет название title страницы, потом ключевые слова в поле title потом название сайта
3. хак с index.php тоже удался
4. descreption для каждой страницы свое, глобальное только для страниц компонентов, где нету возможности указать свое ( ну по крайней мере я не пробовал пока).


Все получилось...

Так что могу сказать уверено что для Joomla 1.0.14 все работает.

То что у вас, так єто означает что Google не обновил кеш для ваших страниц.... Так что нужно подождать..
*

bog74

  • Осваиваюсь на форуме
  • 45
  • 0 / 0
То что у вас, так єто означает что Google не обновил кеш для ваших страниц.... Так что нужно подождать..

Не Гугл был не причем. Я привел пример его страницы, что бы было понятно. А то что глобальное описание у меня присутствовало во всех ссылках было видно при просмотре исходного кода страницы.

Экспериментальным путем выяснил что влиял на это вот этот хак
Цитировать
   1. Открываем файл /components/com_content/content.html.php
   2. Находим в нем строчку:

          $mainframe->appendMetaTag( 'description', $row->metadesc );

      и заменяем ее на:

          global $option, $task;
          if ( $option != 'com_frontpage' && $task != 'view' ) {
            $mainframe->appendMetaTag( 'description', $row->title );
          }

   3. Сохраняем изменения в файле

Откатился назад и описание появилось конкретное, каждого материала.
Я думаю специалисты, если будет желание, определят в чем была проблема и нам скажут.
*

text

  • Захожу иногда
  • 93
  • 0 / 0
в файле content.html.php найди строчки:

Код
		$mainframe->appendMetaTag( 'description', $row->metadesc );
$mainframe->appendMetaTag( 'keywords', $row->metakey );
и замени их на:
Код
		global $option;
if (($option != '') && ($option != 'com_frontpage')) {
$mainframe->appendMetaTag( 'description', $row->metadesc );
$mainframe->appendMetaTag( 'keywords', $row->metakey );
}
Т.е. добавление ключевых материалов будет происходить ТОЛЬКО если мы сейчас не на главной странице... Такой вариант устроит?

Вопрос: Где изменить код, чтобы в description не было бы новых абзацев, как в кодк внизу?

Код
<title>Товар1 - сайт.ru - магазин</title>
<meta name="description" content="Товар1 улучшает

настроение, улучшает настроение улучшает настроение улучшает настроение 

улучшает настроение улучшает настроение улучшает настроение улучшает настроение 

улучшает настроение улучшает настро" />

Помимо твоего предложения поставил в frontend.php другое улучшение - нашел на форуме:
Код
$description = '';
  $keywords = '';

  $_meta_keys_index = -1;
  $_meta_desc_index = -1;

  $n = count( $mainframe->_head['meta'] );
  for ($i = 0; $i < $n; $i++) {
    if ($mainframe->_head['meta'][$i][0] == 'keywords') {
      $_meta_keys_index = $i;
      $keywords = $mainframe->_head['meta'][$i][1];               
    } else if ($mainframe->_head['meta'][$i][0] == 'description') {
      $_meta_desc_index = $i;
      $description = $mainframe->_head['meta'][$i][1];               
    }
  }

  if (!$description) {
    $mainframe->appendMetaTag( 'description', $mosConfig_MetaDesc );
  }

  if (!$keywords) {
    $mainframe->appendMetaTag( 'keywords', $mosConfig_MetaKeys );
  }
   if ($_meta_keys_index != -1) {
    $keys = $mainframe->_head['meta'][$_meta_keys_index][1];
    $keys = preg_replace("/\,+/is", ", ", $keys);
    $keys = preg_replace("/\s+/is", " ", $keys);
    $keys = strtolower($keys);
    $keys = implode(', ', array_unique(split(', ', $keys)));
    $mainframe->_head['meta'][$_meta_keys_index][1] = $keys;
  }
*

text

  • Захожу иногда
  • 93
  • 0 / 0
В каком файле исправить, чтобы в description не было абзацев?
*

AlexAl

  • Захожу иногда
  • 309
  • 13 / 0
это с точки SEO плохо ?
*

text

  • Захожу иногда
  • 93
  • 0 / 0
лучше без абзацев
*

text

  • Захожу иногда
  • 93
  • 0 / 0
J 1.0.12 LE, VM
Кто знает, как отключить или стереть <meta name="description".../>
Чтобы вообще не было в коде?
Через админ.панель не выключается.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

meta-description не отображается в Google

Автор Игарь

Ответов: 39
Просмотров: 4745
Последний ответ 20.11.2021, 18:17:12
от Byzi
Не получается поменять description на главной странице Joomla 3.

Автор illimited

Ответов: 11
Просмотров: 744
Последний ответ 21.12.2020, 14:39:49
от illimited
Не работает тег description при выдаче результатов в поисковике

Автор tao2en

Ответов: 3
Просмотров: 1536
Последний ответ 25.01.2017, 02:55:24
от tao2en
Где лучше перечислять keywords и description

Автор DeniTornado

Ответов: 3
Просмотров: 940
Последний ответ 17.01.2017, 17:59:17
от vitzer
Помогите побороть дубли title и description на страницах ( не стандартные )

Автор 40477

Ответов: 9
Просмотров: 2649
Последний ответ 15.12.2016, 20:14:18
от Litop