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

Войти
   
   Начало   Поиск Joomla 1.7 FAQ Joomla 1.5 FAQ Joomla 1.0 FAQ Правила форума Новости Joomla Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор Тема: Google, JComments,NOSCRIPT etc....  (Прочитано 883 раз)
0 Пользователей и 1 Гость смотрят эту тему.
gimmoroy
Захожу иногда
**

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

Сообщений: 6


« : 30.09.2011, 05:40:18 »

Суть проблемы :

1.Гоогле не видит то, что родом из JS. Включая RSS комментов.
2.Он очень злится что от него что-то скрывают и требует дубля содержимого под тэгом NOSCRIPT

== мой любимый компонент будучи установлен моментально снижает позиции в выдаче Sad

Суть вопроса - КАК ( используя ресурсы компонента ) предоставить поисковику то, что он хочет?
Т.Е. выдать список всех комментов в статье без помощи JS или дополнительных (внешних) запросов к базе, т.е. используя уже выбранные с ( где? каким? ) объектом данные.

Хотелось бы получить совет вида "Вот так можно запросить это в комконтент , а дальше обрабатывай и выводи"   

Заранее спасибо за помощь и разъяснения, если я совсем заблудился.
Записан
smart
Администратор
*******

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

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


тружусь даже во сне...


« Ответ #1 : 30.09.2011, 11:14:09 »

1. RSS ни от кого не прячутся, никаких проблем с индексацией их нет
2. За более чем 3 года использования расширения на десятках сайтов ни разу не было снижения позиций, так что ищите, что послужило причиной. Уж никак не данный компонент.
3. На форуме есть как минимум пара тем, где я описывал, каким образом можно сделать комментарии индексируемыми (кстати, в этом случае, я сталкивался как минимум с десятком жалоб, что поисковик начинает индексировать "лишние" слова из интерфейса компонента (цитировать, ответить, ответить с цитатой, хороший комментарий, плохой комментарий, цитата и т.д.), а заключение каждого из слов в noindex приводит к существенному утяжелению страницы и, как следствие, снижению скорости загрузки.
Записан
gimmoroy
Захожу иногда
**

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

Сообщений: 6


« Ответ #2 : 30.09.2011, 18:55:29 »

Темы читал - я задал совсем другой вопрос :: как вывести комментарии под тегом NOSCRIPT , а не как сделать их индексируемыми.
RSS :: если в Файрфоксе отключить Яваскрипт - никаких ссылок на RSS не остаётся. Так что может они и не прячутся , но никто об этом не знает.

Пожалуйста ответтьте на мой вопроc: как вывести комментарии под тегом NOSCRIPT без участия JS , и не создавая доп запросов к базе??

Спасибо.   
Записан
smart
Администратор
*******

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

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


тружусь даже во сне...


« Ответ #3 : 30.09.2011, 19:13:22 »

Стандартными средствами - никак. Нестандартными - переписать часть логики компонента, запрос к базе можно использовать прежний, а вот шаблон комментариев нужно будет делать другой, без JS. В общем возни довольно много будет.

А что касается RSS, то, что при отключенном JS не видно иконки с RSS, это еще не значит, что RSS нет. Если на странице есть комментарии, то в заголовке страницы ОБЯЗАТЕЛЬНО будет тег с ссылкой на RSS, который прекрасно видят поисковики.

Код:
<link href="/index.php?option=com_jcomments&amp;task=rss&amp;object_id=1&amp;object_group=com_content&amp;format=raw" rel="alternate" type="application/rss+xml" title="Welcome to Joomla!" />
или вот так (если включен SEF):
Код:
<link href="/index.php/component/jcomments/feed/com_content/1" rel="alternate" type="application/rss+xml" title="Welcome to Joomla!" />

Так что поисковик может без проблем увидеть ссылку на RSS, а по ссылке получить все комментарии к данной странице.

Хм, как вариант, можно попробовать взять какой-нибудь модуль, который умеет показывать RSS, опубликовать его под статьей в теге NOSCRIPT, и скормить этому модулю RSS-ленту комментариев к статье. По идее может получиться дешево и сердито.
Записан
gimmoroy
Захожу иногда
**

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

Сообщений: 6


« Ответ #4 : 03.10.2011, 05:54:04 »

Cсылку увидел - спасибо. Насчёт модуля - Получается действительно весёленький протез. Печалит только XML разметка, которая теперь выполняет роль мусора. Нельзя ли от неё избавиться?
Не "как от неё избавиться регэкспом" а "как вызвать RSS без XML (или как-то со спецшаблоном??  или вообще без шаблона) " и возможно ли это без пролития моря крови  ? Roll Eyes
« Последнее редактирование: 05.10.2011, 06:54:14 от gimmoroy » Записан
smart
Администратор
*******

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

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


тружусь даже во сне...


« Ответ #5 : 03.10.2011, 14:11:23 »

Ну почему протез-то? Вам хочется чего-то такого эдакого. Я предложил вполне безболезненное решение. Другое дело, пожалейте обычных пользователей, у них будет грузится 2 копии текста комментариев (вторая будет в noscript)...
Записан
gimmoroy
Захожу иногда
**

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

Сообщений: 6


« Ответ #6 : 03.10.2011, 18:17:28 »

Решение мне нравится. Не нравится лишняя разметка.

Юзеров мне не жалко - сайт имеет Yslow A , так что несколько килобайт текста каши не испортят. Иное дело трэшевая XML разметка, которая будет учтена поисковиком в этом месте именно как мусор.

Вот если бы её убрать без процессороёмких регэкспов... может подскажете как?  Или это паранойя - отдаваться всё равно всё будет из кэша...

Ок. Закончу возню - отпишу результаты подробно. Спасибо за хорошую идею. 
« Последнее редактирование: 04.10.2011, 00:28:58 от gimmoroy » Записан
smart
Администратор
*******

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

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


тружусь даже во сне...


« Ответ #7 : 03.10.2011, 18:22:19 »

Если использовать модуль, который выводит содержимое RSS-ленты, то никакого XML не будет, а будет лишь то, что вернет модуль. А как это реализовано внутри модуля - это вопрос конкретного модуля. В конце концов его можно кэшировать.
Записан
gimmoroy
Захожу иногда
**

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

Сообщений: 6


« Ответ #8 : 04.10.2011, 00:27:47 »

Перелопатил десяток модулей - это ужас ! Shocked

Может я не прав, но мне проще добавить 5 строк в шаблон вывода статей.

file_get_contents - simplexml_load_string - foreach...бла бла бла

а потом можно оформить как модуль ( для доступности и обновлябельности)

 
Записан
gimmoroy
Захожу иногда
**

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

Сообщений: 6


« Ответ #9 : 05.10.2011, 06:42:11 »

Получилось такое: ( поставил в шаблон вывода статьи )

<?php

/* config */

$rss_url    = JURI::base(). "/index.php?option=com_jcomments&task=rss&object_id=".$this->article->id."&object_group=com_content&format=raw";
$file_name  = 'cache/'.md5($rss_url);
$cache_time = 24*60*60; // 24 hours

// check cache

if(file_exists($file_name) and strtotime('now') - filemtime($file_name) < $cache_time) {
$rss = file_get_contents($file_name);
} else {
    // retrieve feed from server
    $rss = file_get_contents($rss_url);
    // cache content
    if(strlen($rss) > 3000)
        file_put_contents($file_name, $rss);
}

$rss = simplexml_load_string($rss);
foreach($rss->channel->item as $item) {
echo $item->title.'<br />'. $item->pubDate.'<br />'.$item->description.'<br />';
}
?>

 Yes!

Грустно только что dc:creator не пролезает .... пхп не нравится двоеточие ..
« Последнее редактирование: 05.10.2011, 06:52:50 от gimmoroy » Записан
smart
Администратор
*******

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

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


тружусь даже во сне...


« Ответ #10 : 05.10.2011, 10:31:23 »

Грустно только что dc:creator не пролезает .... PHP не нравится двоеточие ..
ну с этим сложно что-либо сделать, ибо имя автора в чистом RSS некуда прописать (не нарушая стандартов).
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Рейтинг@Mail.ru Rambler Top100 Powered by SMF 1.1.16 | 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