Объемное облако тегов Cumulus для HostCMS

#
Re: Объемное облако тегов Cumulus для HostCMS
По итогам "осмотра на месте" - видимо это связано в настройками конкретного xslt-процессора на хостинге, но при обработке оригинального шаблона внутрь java-script'a вставлялся тег CDATA, который приводил к ошибке выполнения js.
В данной ситуации помогло изменение части шаблона вывода на такую:
<!--Подключим Flash-облако с помощью библиотеки SWFObject-->
      <script>
            var tags_list = encodeURI('<tags><xsl:apply-templates select="//tags/tag">
               <xsl:with-param name="min_size" select="$min_size"/>
               <xsl:with-param name="total" select="sum(//tag/count)"/>
               <xsl:with-param name="coeff_size" select="$coeff_size"/>
            </xsl:apply-templates></tags>');
            var so = new SWFObject("/cumulus/tagcloud.swf", "tagcloud", "190", "290", "7", "#ffffff");
            // uncomment next line to enable transparency
            so.addParam("wmode", "transparent");
            so.addVariable("tcolor", "0x333333");
            so.addVariable("mode", "tags");
            so.addVariable("distr", "true");
            so.addVariable("tspeed", "100");
            so.addVariable("tagcloud", tags_list);
            // в следующей строке параметром является ID div-контейнера, созданного выше.
            so.write("smallcloudflashcontent");            
      </script>
Хотя, как мне кажется, с точки зрения правильности кода это не совсем кошерно, но может быть я в этом не прав...
Тем не менее, сейчас на этом сайте работает именно такой код.
Заказов не беру. Консультирую редко.
#
Re: Объемное облако тегов Cumulus для HostCMS
Не перестаю удивляться.
Неужто хорошая система хороших людей к себе притягивает?
Не стыдно что-либо не знать или не понимать. Стыдно бояться спросить.
#
Re: Объемное облако тегов Cumulus для HostCMS
sivruk, возможно

Ну и потом, хоть предлагаемые мною решения предлагаются "AS IS", но я все же в некоторой степени в ответе за их работоспособность.
Заказов не беру. Консультирую редко.
#
Re: Объемное облако тегов Cumulus для HostCMS
Добрый день, увидел тему про облако решил сделать себе, сделал все как написано , тока облако не объемное? можете помочь?
#
Re: Объемное облако тегов Cumulus для HostCMS
Это облако моя мечта, увидела на одном из сайтов и очень хотелось на свой поставить, новую хост загрузила специально, но не работает. Помогите пожалуйста!!!
ICQ 318174168
#
Re: Объемное облако тегов Cumulus для HostCMS
york, это облако написано еще для windows-1251 версии HostCMS. То есть для того чтобы оно работало в новых HostCMS нужно, по меньшей мере, всюду поменять кодировку на utf-8.
Если не получится то стучитесь завтра в аську - погляжу в чем дело, может еще что-то надо поправить, для соответствия нынешним реалиям
Заказов не беру. Консультирую редко.
#
Re: Объемное облако тегов Cumulus для HostCMS
кое-где поменяла кодировку, но вылазет лишняя СData/ спасибо, завтра стуканусь!!!
ICQ 318174168
#
Re: Объемное облако тегов Cumulus для HostCMS
Cdata можно выкинуть нафиг - см. первый пост на этой странице.
Заказов не беру. Консультирую редко.
#
Re: Объемное облако тегов Cumulus для HostCMS
Спасибо огромное, Ведь остались ещё люди с Большой буквы на этой Земле.
Kotoff - вы супер!
Решена проблема с показом в новой версии 5,9,23 с облаком! и всё благодаря ВАМ!!!
ICQ 318174168
#
Re: Объемное облако тегов Cumulus для HostCMS
york, да не за что!

Однако, поскольку за последний месяц вы второй человек, обратившийся ко мне по этой теме, то я решил выпустить-таки апдейт для этого рецепта

Что обновилось
1. все файлы переведены в кодировку utf-8
2. в xsl-шаблоне из скрипта убраны CData
3. в связи с тем, что в комплекте с HostCMS уже давно идет jQuery, изменена js-библиотека для загрузки flash - вместо классической SWFObject теперь используется jquery.swfobject.1-1-1
4. в связи с п.п. 2 и 3 немного изменен сам xsl-шаблон в части генерации ссылок на метки и инициализации flash

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

Измененный xsl-шаблон находится в архиве, и на всякий случай дублирую его здесь:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xsl:stylesheet>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
   <xsl:output xmlns="http://www.w3.org/TR/xhtml1/strict" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" encoding="UTF-8" indent="yes" method="html" omit-xml-declaration="no" version="1.0" media-type="text/xml"/>

   <!-- УниверсальноеОблакоТэговCumulus  -->

   <xsl:template match="/">

      <h2>Метки</h2>

      <!--Подключим библиотеку-загрузчик Flash-->
      <script type="text/javascript" src="/cumulus/jquery.swfobject.1-1-1.js"></script>


      <!--Определим количество элементов для наиболее распространенной метки-->
      <xsl:variable name="max_tag_count" select="(//tag/count[not(. &lt; //tag/count)])[1] - 1"/>

      <!--Зададим минимальный и максимальный размер шрифта-->
      <xsl:variable name="max_size" select="24"/>
      <xsl:variable name="min_size" select="9"/>

      <!--Вычислим коэффициент размерности шрифта для меток с различным количеством элементов-->
      <xsl:variable name="coeff_size">
         <xsl:choose>
            <xsl:when test="$max_tag_count &gt; 0">
               <xsl:value-of select="($max_size - $min_size) div $max_tag_count"/>
            </xsl:when>
            <xsl:otherwise>0</xsl:otherwise>
         </xsl:choose>
      </xsl:variable>

      <!--Создадим контейнер для Flash-облака.
      ОБРАТИТЕ ВНИМАНИЕ! Если на странице несколько облаков, то id у их контейнеров должен быть разным!-->
      <div id="smallcloudflashcontent">
         <!--Выведем сюда классическое облако тегов, для тех у кого отключен Flash или Javascript-->
         <div class="TagsCloud">
            <xsl:apply-templates select="//tags/tag">
               <xsl:with-param name="min_size" select="$min_size"/>
               <xsl:with-param name="total" select="sum(//tag/count)"/>
               <xsl:with-param name="coeff_size" select="$coeff_size"/>
            </xsl:apply-templates>
         </div>
      </div>

      <!--Подключим Flash-облако с помощью библиотеки SWFObject-->
      <script>
         <xsl:text disable-output-escaping="yes">&lt;!--</xsl:text>
         var tags_list = '&lt;tags><xsl:apply-templates select="//tags/tag">
               <xsl:with-param name="min_size" select="$min_size"/>
               <xsl:with-param name="total" select="sum(//tag/count)"/>
               <xsl:with-param name="coeff_size" select="$coeff_size"/></xsl:apply-templates>&lt;/tags>';                            
    
      $('#smallcloudflashcontent').flash(
         {
         swf: 'tagcloud.swf',
         width: 190,
         height: 190,
            wmode: 'transparent',         
         allowScriptAccess: 'always',
            allowFullScreen: false,
         flashvars: {
         tcolor: '0x333333',         
         mode: 'tags',
         distr: 'true',
         tspeed: '100',
         tagcloud: tags_list
         }
      },
         { version: 8 }
      );

         <xsl:text disable-output-escaping="yes">--&gt;</xsl:text>
      </script>
   </xsl:template>

   <!-- Облако из групп -->
   <xsl:template match="tag">
      <xsl:param name="min_size"/>
      <xsl:param name="total"/>
      <xsl:param name="coeff_size" select="10"/>
      <xsl:variable name="size" select="round($min_size + ((count - 1) * $coeff_size))"/><xsl:text disable-output-escaping="yes">&lt;</xsl:text>a href="http://<xsl:value-of select="/document/current_alias"/><xsl:value-of select="parent::*/parent::*/path"/><xsl:value-of select="parent::*/parent::*/url"/>tag/<xsl:value-of select="tag_path_name"/>/" style="font-size: <xsl:value-of select="$size"/>pt"<xsl:text disable-output-escaping="yes">&gt;</xsl:text><xsl:value-of select="tag_name"/><xsl:text disable-output-escaping="yes">&lt;</xsl:text>/a<xsl:text disable-output-escaping="yes">&gt;</xsl:text><xsl:text> </xsl:text></xsl:template>
</xsl:stylesheet>
Заказов не беру. Консультирую редко.
Авторизация