LiveInternetMail.ru
Форум русской поддержки Joomla!® CMS
19.05.2013, 04:32:07 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 2.5 FAQ Joomla 1.5 FAQ Joomla 1.0 FAQ Правила форума Новости Joomla Войти Регистрация Помощь  
Страниц: [1] 2  Все   Вниз
  Добавить закладку  |  Печать  
Автор Тема: Как поменять порядок формирования "description"  (Прочитано 31589 раз)
0 Пользователей и 1 Гость смотрят эту тему.
zdobr
Гость
« : 02.06.2006, 16:06:35 »

На страницах "блог-содержимое категории" (и что самое плохое, в том числе на главной странице) 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
Администратор
*******

Репутация: +1205/-14
Offline Offline

Пол: Мужской
Сообщений: 7571


снова дома...


« Ответ #1 : 02.06.2006, 16:21:42 »

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

в файле 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 );
}
Данная модификация позволит вставлять глобальные мета только на главной страице, а на всех остальных они вставляться не будут.
Записан
zdobr
Гость
« Ответ #2 : 02.06.2006, 16:47:35 »

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

Репутация: +1205/-14
Offline Offline

Пол: Мужской
Сообщений: 7571


снова дома...


« Ответ #3 : 02.06.2006, 17:00:02 »

в файле 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 );
}
Т.е. добавление ключевых материалов будет происходить ТОЛЬКО если мы сейчас не на главной странице... Такой вариант устроит?
Записан
zdobr
Гость
« Ответ #4 : 02.06.2006, 17:29:31 »

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

Репутация: +6/-12
Offline Offline

Пол: Мужской
Сообщений: 151


« Ответ #5 : 30.07.2006, 02:19:58 »


Большое спасибо, Смарт.
« Последнее редактирование: 30.07.2006, 02:58:18 от Patrick » Записан
_Sash@
Гость
« Ответ #6 : 07.08.2006, 21:35:59 »

Да, и меня она как-то давно вот тут интересовала
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
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Сообщений: 39



« Ответ #7 : 02.01.2007, 01:43:21 »

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

но и для статического материала?
а то для динамических это работает, а для стат нет....  ????
Записан
ArtPV
Осваиваюсь на форуме
***

Репутация: +3/-0
Offline Offline

Пол: Мужской
Сообщений: 45


Компания ArtPV.ru


« Ответ #8 : 28.10.2007, 23:03:33 »

Поменял код как написано выше и все равно description головной страницы все равно висит в описании любого материала.
Как убрать на материале description головной страницы и поставить description материала?
Помогите!
Записан
Mr.Friction
Осваиваюсь на форуме
***

Репутация: +1/-6
Offline Offline

Сообщений: 124


« Ответ #9 : 29.11.2007, 19:44:41 »

А как поменять формирование мета description в контенте чтоб сначало были $row->metadesc а потом глобальное описание ? 
Записан
Ale][R
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 14


« Ответ #10 : 16.01.2008, 14:15:32 »

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

Репутация: +1205/-14
Offline Offline

Пол: Мужской
Сообщений: 7571


снова дома...


« Ответ #11 : 16.01.2008, 23:52:21 »

Подскажите, как сделать так что бы на главной странице не добавлялись описания и ключевые слова всех страниц размещенных на главной.
ну так в 4-м посте я это и описывал...
Записан
Ale][R
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 14


« Ответ #12 : 17.01.2008, 11:23:41 »

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

Репутация: +1/-6
Offline Offline

Сообщений: 124


« Ответ #13 : 09.02.2008, 14:15:11 »

А так как писал я - сделать невозможно?
Записан
ArtPV
Осваиваюсь на форуме
***

Репутация: +3/-0
Offline Offline

Пол: Мужской
Сообщений: 45


Компания ArtPV.ru


« Ответ #14 : 15.02.2008, 19:54:47 »

Выходит что проще вобще отключит глобальное описание и тогда на материалах появится описание именно материала? Huh
Записан
Mr.Friction
Осваиваюсь на форуме
***

Репутация: +1/-6
Offline Offline

Сообщений: 124


« Ответ #15 : 16.02.2008, 14:14:19 »

Да.....
Но тогда надо переделывать все компоненты.
Записан
ART-DELI
Живу я здесь
******

Репутация: +75/-9
Offline Offline

Пол: Мужской
Сообщений: 911


Не успеешь ты – сделают другие.


« Ответ #16 : 29.06.2008, 20:00:51 »

Я так понимаю проблема только  с некоторыми версиями Joomla?
Вот читал постик, глянул у себя, версия 1.0.13
Описание Description для каждой статьи свое а не глобальное. Хака никакого не делал.
Или я не о том?
Записан
ART-DELI
Живу я здесь
******

Репутация: +75/-9
Offline Offline

Пол: Мужской
Сообщений: 911


Не успеешь ты – сделают другие.


« Ответ #17 : 29.06.2008, 20:23:30 »

Я так понимаю что я  нечего не понимаю..

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

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

Репутация: +1205/-14
Offline Offline

Пол: Мужской
Сообщений: 7571


снова дома...


« Ответ #18 : 01.07.2008, 11:40:05 »

Но гугл почему то выдает глобальное описание?
может быть он просто давным давно проиндексировал с тех пор не менял? удалите из кэша эту страницу и подождите пока он снова проиндексирует (с sitemap будет быстрее)
Записан
ART-DELI
Живу я здесь
******

Репутация: +75/-9
Offline Offline

Пол: Мужской
Сообщений: 911


Не успеешь ты – сделают другие.


« Ответ #19 : 01.07.2008, 11:53:47 »

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

Записан
ART-DELI
Живу я здесь
******

Репутация: +75/-9
Offline Offline

Пол: Мужской
Сообщений: 911


Не успеешь ты – сделают другие.


« Ответ #20 : 01.07.2008, 12:06:29 »

Вот только что посмотрел статистику индекса сайта..

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

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 51



« Ответ #21 : 10.07.2008, 00:31:43 »

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

Вообщем-то вопрос в следующем:
После проведения модификации указанной здесь
А именно
Цитировать
# Открываем файл /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
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 51



« Ответ #22 : 10.07.2008, 01:51:00 »

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

В чем может быть проблема?
Записан
ART-DELI
Живу я здесь
******

Репутация: +75/-9
Offline Offline

Пол: Мужской
Сообщений: 911


Не успеешь ты – сделают другие.


« Ответ #23 : 10.07.2008, 11:58:35 »

Попробовал только чтоВ результате описания нет ни глобального, ни конкретного из материала.С ключевыми словами все нормально (как впрочем и было).
Вернул все назад.

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

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


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

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

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

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 51



« Ответ #24 : 11.07.2008, 20:13:52 »

То что у вас, так єто означает что 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
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 93


« Ответ #25 : 22.02.2010, 23:35:25 »

в файле 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
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 93


« Ответ #26 : 25.02.2010, 15:24:50 »

В каком файле исправить, чтобы в description не было абзацев?
Записан
AlexAl
Давно я тут
****

Репутация: +13/-0
Offline Offline

Сообщений: 309



« Ответ #27 : 26.02.2010, 17:31:29 »

это с точки SEO плохо ?
Записан
text
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 93


« Ответ #28 : 26.02.2010, 18:56:00 »

лучше без абзацев
Записан
text
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 93


« Ответ #29 : 04.03.2010, 12:25:05 »

J 1.0.12 LE, VM
Кто знает, как отключить или стереть <meta name="description".../>
Чтобы вообще не было в коде?
Через админ.панель не выключается.
Записан
Страниц: [1] 2  Все   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Рейтинг@Mail.ru Rambler Top100 Powered by SMF 1.1.18 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet