Объемное облако тегов Cumulus для HostCMS
Правильно!
Только в описании метода в api есть маленькая неточность - метод возвращает нам не значение типа boolaen, а значение типа string, что нам как раз и нужно.
Теперь представим себе, что у нас есть массив с идентификаторами тех ИС, из которых нам нужно вывести теги:
надо прогнать через метод GetXml4Tags() все элементы данного массива, чтобы получить от них теги, и все их записать в одну и ту же переменную $xml
То что получится в итоге, можно будет показать на экран командой
Делаем?
Только в описании метода в api есть маленькая неточность - метод возвращает нам не значение типа boolaen, а значение типа string, что нам как раз и нужно.Теперь представим себе, что у нас есть массив с идентификаторами тех ИС, из которых нам нужно вывести теги:
$infosystemstoshow = array(1, 2, 3, 5)
надо прогнать через метод GetXml4Tags() все элементы данного массива, чтобы получить от них теги, и все их записать в одну и ту же переменную $xml
То что получится в итоге, можно будет показать на экран командой
echo htmlspecialchars($xml);
и сравнить с обычным xml для меток, на предмет того, чего же еще нам не хватает.Делаем?
Заказов не беру. Консультирую редко.
делаем! Вот только облако для магазина показывает только в магазине, и не показывает например на главной.
прошу прощения
Я как всегда сначала скажу а потом подумаю

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

надо указывать на магазин конкретно ...
Я в отчаянии! Не могу заставить работать. Ну никак!. Выводит простое облако тэгов хотя вроде все правильно сделал!
Константа ALLOW_FORMAT_XSL_HTML false активна
Файлики загружены права 666 пути правильные.
Фрагмент шаблона странички:
XSL приведу полностью
HTML выводит такой
Все вроде правильно, а вот не работает. Или не углядел чего? Подскажите.
Константа ALLOW_FORMAT_XSL_HTML false активна
Файлики загружены права 666 пути правильные.
Фрагмент шаблона странички:
<?php
/* Отображаем тэги ИС */
// автоматическое определение id текущей инфосистемы из настроек структуры
// для шаблона главной страницы нужно вбить id вручную,
// заменив следующую строку, например, на $InformationSystemId = 1;
$InformationSystemId = to_int($GLOBALS['LA']['InformationSystemID']);
$xsl_name = 'УниверсальноеОблакоТэговCumulus';
// Определим текущий домен сайта, для передачи его в XML
$site = &singleton('site');
$alias_row = $site->GetAlias($_SERVER['HTTP_HOST']);
$current_alias = $site->GetCurrentAlias($alias_row['site_id']);
$property = array();
$property['count'] = 10;
$external_propertys = array();
// Передадим текущий домен сайта в XML
$external_propertys['current_alias'] = $current_alias;
$InformationSystem = &singleton('InformationSystem');
$InformationSystem->ShowTagsCloud($InformationSystemId, $xsl_name, $property, $external_propertys);
?>
/* Отображаем тэги ИС */
// автоматическое определение id текущей инфосистемы из настроек структуры
// для шаблона главной страницы нужно вбить id вручную,
// заменив следующую строку, например, на $InformationSystemId = 1;
$InformationSystemId = to_int($GLOBALS['LA']['InformationSystemID']);
$xsl_name = 'УниверсальноеОблакоТэговCumulus';
// Определим текущий домен сайта, для передачи его в XML
$site = &singleton('site');
$alias_row = $site->GetAlias($_SERVER['HTTP_HOST']);
$current_alias = $site->GetCurrentAlias($alias_row['site_id']);
$property = array();
$property['count'] = 10;
$external_propertys = array();
// Передадим текущий домен сайта в XML
$external_propertys['current_alias'] = $current_alias;
$InformationSystem = &singleton('InformationSystem');
$InformationSystem->ShowTagsCloud($InformationSystemId, $xsl_name, $property, $external_propertys);
?>
XSL приведу полностью
<?xml version="1.0" encoding="windows-1251"?>
<!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="Windows-1251" indent="yes" method="html" omit-xml-declaration="no" version="1.0" media-type="text/xml"/>
<!-- УниверсальноеОблакоТэговCumulus -->
<xsl:template match="/">
<!--Подключим библиотеку-загрузчик Flash-->
<!--Определим количество элементов для наиболее распространенной метки-->
<xsl:variable name="max_tag_count" select="(//tag/count[not(. < //tag/count)])[1] - 1"/>
<!--Зададим минимальный и максимальный размер шрифта-->
<xsl:variable name="max_size" select="28"/>
<xsl:variable name="min_size" select="8"/>
<!--Вычислим коэффициент размерности шрифта для меток с различным количеством элементов-->
<xsl:variable name="coeff_size">
<xsl:choose>
<xsl:when test="$max_tag_count > 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">
<!--
<![CDATA[var tags_list = encodeURI('<tags>]]>
</xsl:text>
<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>
<xsl:text disable-output-escaping="yes">
<![CDATA[</tags>');
var so = new SWFObject("/cumulus/tagcloud.swf", "tagcloud", "190", 190", "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");
]]>
-->
</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"/>
<!-- Нужный размер шрифта вычисляется по формуле $min_size + количество * $coeff_size -->
<xsl:variable name="size" select="round($min_size + ((count - 1) * $coeff_size))"/>
<a href="http://{//current_alias}{parent::*/parent::*/path}{parent::*/parent::*/url}tag/{tag_path_name}/" style="font-size: {$size}pt">
<xsl:value-of select="tag_name"/>
</a>
<xsl:text disable-output-escaping="yes"> </xsl:text>
</xsl:template>
</xsl:stylesheet>
<!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="Windows-1251" indent="yes" method="html" omit-xml-declaration="no" version="1.0" media-type="text/xml"/>
<!-- УниверсальноеОблакоТэговCumulus -->
<xsl:template match="/">
<!--Подключим библиотеку-загрузчик Flash-->
<!--Определим количество элементов для наиболее распространенной метки-->
<xsl:variable name="max_tag_count" select="(//tag/count[not(. < //tag/count)])[1] - 1"/>
<!--Зададим минимальный и максимальный размер шрифта-->
<xsl:variable name="max_size" select="28"/>
<xsl:variable name="min_size" select="8"/>
<!--Вычислим коэффициент размерности шрифта для меток с различным количеством элементов-->
<xsl:variable name="coeff_size">
<xsl:choose>
<xsl:when test="$max_tag_count > 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">
<!--
<![CDATA[var tags_list = encodeURI('<tags>]]>
</xsl:text>
<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>
<xsl:text disable-output-escaping="yes">
<![CDATA[</tags>');
var so = new SWFObject("/cumulus/tagcloud.swf", "tagcloud", "190", 190", "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");
]]>
-->
</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"/>
<!-- Нужный размер шрифта вычисляется по формуле $min_size + количество * $coeff_size -->
<xsl:variable name="size" select="round($min_size + ((count - 1) * $coeff_size))"/>
<a href="http://{//current_alias}{parent::*/parent::*/path}{parent::*/parent::*/url}tag/{tag_path_name}/" style="font-size: {$size}pt">
<xsl:value-of select="tag_name"/>
</a>
<xsl:text disable-output-escaping="yes"> </xsl:text>
</xsl:template>
</xsl:stylesheet>
HTML выводит такой
<div id="smallcloudflashcontent"><div class="TagsCloud"><a href="http://www.hsn-ltd.ru/info/news/tag/%CA%EB%E5%F9/" style="font-size: 9pt">Клещ</a> <a href="http://www.hsn-ltd.ru/info/news/tag/%D7%E5%EC%EF%E8%EE%ED%E0%F2/" style="font-size: 28pt">Чемпионат</a> <a href="http://www.hsn-ltd.ru/info/news/tag/%C7%E0%EA%E0%E7%ED%E8%EA/" style="font-size: 8pt">Заказник</a> <a href="http://www.hsn-ltd.ru/info/news/tag/%D4%E8%E4%E5%F0/" style="font-size: 10pt">Фидер</a> <a href="http://www.hsn-ltd.ru/info/news/tag/%C1%F0%E0%F2%FC%FF%20%D9%E5%F0%E1%E0%EA%EE%E2%FB/" style="font-size: 12pt">Братья Щербаковы</a> <a href="http://www.hsn-ltd.ru/info/news/tag/%CA%E0%EC%FB%F8/" style="font-size: 10pt">Камыш</a> <a href="http://www.hsn-ltd.ru/info/news/tag/%C3%EB%EE%E1%E0%EB%FC%ED%EE%E5%20%EF%EE%F2%E5%EF%EB%E5%ED%E8%E5/" style="font-size: 8pt">Глобальное потепление</a> <a href="http://www.hsn-ltd.ru/info/news/tag/%CD%E0%20%D3%EA%F0%E0%E8%ED%E5/" style="font-size: 20pt">На Украине</a> <a href="http://www.hsn-ltd.ru/info/news/tag/%CB%E5%F8%E8%E9/" style="font-size: 8pt">Леший</a> <a href="http://www.hsn-ltd.ru/info/news/tag/%D0%EE%F1%F1%E8%FF/" style="font-size: 15pt">Россия</a> </div></div>
<script><![CDATA[
<!--
]]><![CDATA[var tags_list = encodeURI('<tags>]]>
<a href="http://www.hsn-ltd.ru/info/news/tag/%CA%EB%E5%F9/" style="font-size: 9pt">Клещ</a> <a href="http://www.hsn-ltd.ru/info/news/tag/%D7%E5%EC%EF%E8%EE%ED%E0%F2/" style="font-size: 28pt">Чемпионат</a> <a href="http://www.hsn-ltd.ru/info/news/tag/%C7%E0%EA%E0%E7%ED%E8%EA/" style="font-size: 8pt">Заказник</a> <a href="http://www.hsn-ltd.ru/info/news/tag/%D4%E8%E4%E5%F0/" style="font-size: 10pt">Фидер</a> <a href="http://www.hsn-ltd.ru/info/news/tag/%C1%F0%E0%F2%FC%FF%20%D9%E5%F0%E1%E0%EA%EE%E2%FB/" style="font-size: 12pt">Братья Щербаковы</a> <a href="http://www.hsn-ltd.ru/info/news/tag/%CA%E0%EC%FB%F8/" style="font-size: 10pt">Камыш</a> <a href="http://www.hsn-ltd.ru/info/news/tag/%C3%EB%EE%E1%E0%EB%FC%ED%EE%E5%20%EF%EE%F2%E5%EF%EB%E5%ED%E8%E5/" style="font-size: 8pt">Глобальное потепление</a> <a href="http://www.hsn-ltd.ru/info/news/tag/%CD%E0%20%D3%EA%F0%E0%E8%ED%E5/" style="font-size: 20pt">На Украине</a> <a href="http://www.hsn-ltd.ru/info/news/tag/%CB%E5%F8%E8%E9/" style="font-size: 8pt">Леший</a> <a href="http://www.hsn-ltd.ru/info/news/tag/%D0%EE%F1%F1%E8%FF/" style="font-size: 15pt">Россия</a>
<![CDATA[</tags>');
var so = new SWFObject("/cumulus/tagcloud.swf", "tagcloud", "190", 190", "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>
<script><![CDATA[
<!--
]]><![CDATA[var tags_list = encodeURI('<tags>]]>
<a href="http://www.hsn-ltd.ru/info/news/tag/%CA%EB%E5%F9/" style="font-size: 9pt">Клещ</a> <a href="http://www.hsn-ltd.ru/info/news/tag/%D7%E5%EC%EF%E8%EE%ED%E0%F2/" style="font-size: 28pt">Чемпионат</a> <a href="http://www.hsn-ltd.ru/info/news/tag/%C7%E0%EA%E0%E7%ED%E8%EA/" style="font-size: 8pt">Заказник</a> <a href="http://www.hsn-ltd.ru/info/news/tag/%D4%E8%E4%E5%F0/" style="font-size: 10pt">Фидер</a> <a href="http://www.hsn-ltd.ru/info/news/tag/%C1%F0%E0%F2%FC%FF%20%D9%E5%F0%E1%E0%EA%EE%E2%FB/" style="font-size: 12pt">Братья Щербаковы</a> <a href="http://www.hsn-ltd.ru/info/news/tag/%CA%E0%EC%FB%F8/" style="font-size: 10pt">Камыш</a> <a href="http://www.hsn-ltd.ru/info/news/tag/%C3%EB%EE%E1%E0%EB%FC%ED%EE%E5%20%EF%EE%F2%E5%EF%EB%E5%ED%E8%E5/" style="font-size: 8pt">Глобальное потепление</a> <a href="http://www.hsn-ltd.ru/info/news/tag/%CD%E0%20%D3%EA%F0%E0%E8%ED%E5/" style="font-size: 20pt">На Украине</a> <a href="http://www.hsn-ltd.ru/info/news/tag/%CB%E5%F8%E8%E9/" style="font-size: 8pt">Леший</a> <a href="http://www.hsn-ltd.ru/info/news/tag/%D0%EE%F1%F1%E8%FF/" style="font-size: 15pt">Россия</a>
<![CDATA[</tags>');
var so = new SWFObject("/cumulus/tagcloud.swf", "tagcloud", "190", 190", "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>
Все вроде правильно, а вот не работает. Или не углядел чего? Подскажите.
Не стыдно что-либо не знать или не понимать. Стыдно бояться спросить.
Прошу прощения, код XSL указал не тот. Экспериментировал с отключением скрипта.
Реальный код XSL
Реальный код XSL
<?xml version="1.0" encoding="windows-1251"?>
<!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="Windows-1251" indent="yes" method="html" omit-xml-declaration="no" version="1.0" media-type="text/xml"/>
<!-- УниверсальноеОблакоТэговCumulus -->
<xsl:template match="/">
<!--Подключим библиотеку-загрузчик Flash-->
<!--Определим количество элементов для наиболее распространенной метки-->
<xsl:variable name="max_tag_count" select="(//tag/count[not(. < //tag/count)])[1] - 1"/>
<!--Зададим минимальный и максимальный размер шрифта-->
<xsl:variable name="max_size" select="28"/>
<xsl:variable name="min_size" select="8"/>
<!--Вычислим коэффициент размерности шрифта для меток с различным количеством элементов-->
<xsl:variable name="coeff_size">
<xsl:choose>
<xsl:when test="$max_tag_count > 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 у их контейнеров должен быть разным!-->
<script type="text/javascript" src="/cumulus/swfobject.js"></script>
<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:comment>
<xsl:text disable-output-escaping="yes">
<![CDATA[var tags_list = encodeURI('<tags>]]>
</xsl:text>
<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>
<xsl:text disable-output-escaping="yes">
<![CDATA[</tags>');
var so = new SWFObject("/cumulus/tagcloud.swf", "tagcloud", "190", 190", "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");
]]>
</xsl:text>
</xsl:comment>
</SCRIPT>
</xsl:template>
<!-- Облако из групп -->
<xsl:template match="tag">
<xsl:param name="min_size"/>
<xsl:param name="total"/>
<xsl:param name="coeff_size" select="10"/>
<!-- Нужный размер шрифта вычисляется по формуле $min_size + количество * $coeff_size -->
<xsl:variable name="size" select="round($min_size + ((count - 1) * $coeff_size))"/>
<a href="http://{//current_alias}{parent::*/parent::*/path}{parent::*/parent::*/url}tag/{tag_path_name}/" style="font-size: {$size}pt">
<xsl:value-of select="tag_name"/>
</a>
<xsl:text disable-output-escaping="yes"> </xsl:text>
</xsl:template>
</xsl:stylesheet>
<!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="Windows-1251" indent="yes" method="html" omit-xml-declaration="no" version="1.0" media-type="text/xml"/>
<!-- УниверсальноеОблакоТэговCumulus -->
<xsl:template match="/">
<!--Подключим библиотеку-загрузчик Flash-->
<!--Определим количество элементов для наиболее распространенной метки-->
<xsl:variable name="max_tag_count" select="(//tag/count[not(. < //tag/count)])[1] - 1"/>
<!--Зададим минимальный и максимальный размер шрифта-->
<xsl:variable name="max_size" select="28"/>
<xsl:variable name="min_size" select="8"/>
<!--Вычислим коэффициент размерности шрифта для меток с различным количеством элементов-->
<xsl:variable name="coeff_size">
<xsl:choose>
<xsl:when test="$max_tag_count > 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 у их контейнеров должен быть разным!-->
<script type="text/javascript" src="/cumulus/swfobject.js"></script>
<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:comment>
<xsl:text disable-output-escaping="yes">
<![CDATA[var tags_list = encodeURI('<tags>]]>
</xsl:text>
<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>
<xsl:text disable-output-escaping="yes">
<![CDATA[</tags>');
var so = new SWFObject("/cumulus/tagcloud.swf", "tagcloud", "190", 190", "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");
]]>
</xsl:text>
</xsl:comment>
</SCRIPT>
</xsl:template>
<!-- Облако из групп -->
<xsl:template match="tag">
<xsl:param name="min_size"/>
<xsl:param name="total"/>
<xsl:param name="coeff_size" select="10"/>
<!-- Нужный размер шрифта вычисляется по формуле $min_size + количество * $coeff_size -->
<xsl:variable name="size" select="round($min_size + ((count - 1) * $coeff_size))"/>
<a href="http://{//current_alias}{parent::*/parent::*/path}{parent::*/parent::*/url}tag/{tag_path_name}/" style="font-size: {$size}pt">
<xsl:value-of select="tag_name"/>
</a>
<xsl:text disable-output-escaping="yes"> </xsl:text>
</xsl:template>
</xsl:stylesheet>
Не стыдно что-либо не знать или не понимать. Стыдно бояться спросить.
sivruk, то что указанный XSL отображает вам обычное облако тегов - это правильно. Он специально так устроен, чтобы сначала сгенерировать обычное облако, которое отобразится у тех, у кого не установлен флеш, или отключен javascript.
А у вас - просто неправильный код в xsl для формирования облака.
Сравните -
это у вас:
а так должно быть (код из файла в архиве):
А у вас - просто неправильный код в xsl для формирования облака.
Сравните -
это у вас:
<SCRIPT>
<xsl:comment>
<xsl:text disable-output-escaping="yes">
<![CDATA[var tags_list = encodeURI('<tags>]]>
</xsl:text>
<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>
<xsl:text disable-output-escaping="yes">
<![CDATA[</tags>');
var so = new SWFObject("/cumulus/tagcloud.swf", "tagcloud", "190", 190", "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");
]]>
</xsl:text>
</xsl:comment>
</SCRIPT>
<xsl:comment>
<xsl:text disable-output-escaping="yes">
<![CDATA[var tags_list = encodeURI('<tags>]]>
</xsl:text>
<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>
<xsl:text disable-output-escaping="yes">
<![CDATA[</tags>');
var so = new SWFObject("/cumulus/tagcloud.swf", "tagcloud", "190", 190", "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");
]]>
</xsl:text>
</xsl:comment>
</SCRIPT>
а так должно быть (код из файла в архиве):
<!--Подключим Flash-облако с помощью библиотеки SWFObject-->
<script>
<xsl:text disable-output-escaping="yes">
<!--
<![CDATA[var tags_list = encodeURI('<tags>]]></xsl:text>
<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>
<xsl:text disable-output-escaping="yes"><![CDATA[</tags>');
var so = new SWFObject("/cumulus/tagcloud.swf", "tagcloud", "190", "190", "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");
]]>
-->
</xsl:text>
</script>
<script>
<xsl:text disable-output-escaping="yes">
<!--
<![CDATA[var tags_list = encodeURI('<tags>]]></xsl:text>
<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>
<xsl:text disable-output-escaping="yes"><![CDATA[</tags>');
var so = new SWFObject("/cumulus/tagcloud.swf", "tagcloud", "190", "190", "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");
]]>
-->
</xsl:text>
</script>
Заказов не беру. Консультирую редко.
Kotoff,
Разве это не диалект одного и того же наречия
и
Тем более что все равно ни так ни так не работает.
Создается упорное впечатление, что затыкается на исполнения swfobject.js
Скачал и закинул с все равно такая же история.
Разве это не диалект одного и того же наречия
<script>
<xsl:text disable-output-escaping="yes">
<!--
<xsl:text disable-output-escaping="yes">
<!--
и
<SCRIPT>
<xsl:comment>
<xsl:text disable-output-escaping="yes">
<xsl:comment>
<xsl:text disable-output-escaping="yes">
Тем более что все равно ни так ни так не работает.
Создается упорное впечатление, что затыкается на исполнения swfobject.js
Скачал и закинул с все равно такая же история.
Не стыдно что-либо не знать или не понимать. Стыдно бояться спросить.
sivruk писал(а):

xsl:comment действует на текущийс xsl сценарий, а <!-- работает только в итоговом html
У вас сейчас на выводится
а должно быть
А у вас, видимо из-за того что CDATA оказывается внутри xsl:comment, она потом не вырезается из результирующего кода. И видимо из-за этого возникает ошибка.
Либо где-то в других js-файлах проблема.
Если что, стучитесь в аську с доступом, посмотрю в чем дело.
Разве это не диалект одного и того же наречия
в общем случае - да, а вот в данном конкретном - нет 
xsl:comment действует на текущийс xsl сценарий, а <!-- работает только в итоговом html
У вас сейчас на выводится
<script><![CDATA[
<!--
]]><![CDATA[var tags_list = encodeURI('<tags>]]><a href="http://www.hsn-ltd.ru/info/articles/tag/%CE%F5%EE%F2%E0/" style="font-size: 8pt">Охота</a> <a href="http://www.hsn-ltd.ru/info/articles/tag/%D1%E0%EF%EE%E3%E8/" style="font-size: 8pt">Сапоги</a> <a href="http://www.hsn-ltd.ru/info/articles/tag/%CE%E1%F3%E2%FC/" style="font-size: 8pt">Обувь</a> <a href="http://www.hsn-ltd.ru/info/articles/tag/%CA%EE%F1%F2%FE%EC%20%C4%EE%E6%E4%FC/" style="font-size: 8pt">Костюм Дождь</a> <a href="http://www.hsn-ltd.ru/info/articles/tag/%C4%EE%E6%E4%FC/" style="font-size: 8pt">Дождь</a> <a href="http://www.hsn-ltd.ru/info/articles/tag/%D5%E0%EA%E8/" style="font-size: 8pt">Хаки</a> <a href="http://www.hsn-ltd.ru/info/articles/tag/%CE%F5%EE%F2%ED%E8%EA/" style="font-size: 8pt">Охотник</a> <a href="http://www.hsn-ltd.ru/info/articles/tag/%C1%EE%F2%E8%ED%EA%E8/" style="font-size: 8pt">Ботинки</a> <a href="http://www.hsn-ltd.ru/info/articles/tag/%C4%E8%F7%FC/" style="font-size: 8pt">Дичь</a> <a href="http://www.hsn-ltd.ru/info/articles/tag/%CA%EE%F1%F2%FE%EC/" style="font-size: 28pt">Костюм</a> <a href="http://www.hsn-ltd.ru/info/articles/tag/%C4%F3%E1%EE%EA/" style="font-size: 8pt">Дубок</a> <a href="http://www.hsn-ltd.ru/info/articles/tag/%CA%EE%E6%E0/" style="font-size: 8pt">Кожа</a> <a href="http://www.hsn-ltd.ru/info/articles/tag/%CB%EE%F1%FC/" style="font-size: 8pt">Лось</a> <a href="http://www.hsn-ltd.ru/info/articles/tag/%D1%E5%E7%EE%ED%20%EE%F5%EE%F2%FB/" style="font-size: 8pt">Сезон охоты</a> <a href="http://www.hsn-ltd.ru/info/articles/tag/%D9%F3%EA%E0/" style="font-size: 8pt">Щука</a> <a href="http://www.hsn-ltd.ru/info/articles/tag/%C1%E5%EB%EA%E0/" style="font-size: 8pt">Белка</a> <a href="http://www.hsn-ltd.ru/info/articles/tag/%D0%FB%E1%EE%EB%EE%E2/" style="font-size: 8pt">Рыболов</a> <![CDATA[</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>
<!--
]]><![CDATA[var tags_list = encodeURI('<tags>]]><a href="http://www.hsn-ltd.ru/info/articles/tag/%CE%F5%EE%F2%E0/" style="font-size: 8pt">Охота</a> <a href="http://www.hsn-ltd.ru/info/articles/tag/%D1%E0%EF%EE%E3%E8/" style="font-size: 8pt">Сапоги</a> <a href="http://www.hsn-ltd.ru/info/articles/tag/%CE%E1%F3%E2%FC/" style="font-size: 8pt">Обувь</a> <a href="http://www.hsn-ltd.ru/info/articles/tag/%CA%EE%F1%F2%FE%EC%20%C4%EE%E6%E4%FC/" style="font-size: 8pt">Костюм Дождь</a> <a href="http://www.hsn-ltd.ru/info/articles/tag/%C4%EE%E6%E4%FC/" style="font-size: 8pt">Дождь</a> <a href="http://www.hsn-ltd.ru/info/articles/tag/%D5%E0%EA%E8/" style="font-size: 8pt">Хаки</a> <a href="http://www.hsn-ltd.ru/info/articles/tag/%CE%F5%EE%F2%ED%E8%EA/" style="font-size: 8pt">Охотник</a> <a href="http://www.hsn-ltd.ru/info/articles/tag/%C1%EE%F2%E8%ED%EA%E8/" style="font-size: 8pt">Ботинки</a> <a href="http://www.hsn-ltd.ru/info/articles/tag/%C4%E8%F7%FC/" style="font-size: 8pt">Дичь</a> <a href="http://www.hsn-ltd.ru/info/articles/tag/%CA%EE%F1%F2%FE%EC/" style="font-size: 28pt">Костюм</a> <a href="http://www.hsn-ltd.ru/info/articles/tag/%C4%F3%E1%EE%EA/" style="font-size: 8pt">Дубок</a> <a href="http://www.hsn-ltd.ru/info/articles/tag/%CA%EE%E6%E0/" style="font-size: 8pt">Кожа</a> <a href="http://www.hsn-ltd.ru/info/articles/tag/%CB%EE%F1%FC/" style="font-size: 8pt">Лось</a> <a href="http://www.hsn-ltd.ru/info/articles/tag/%D1%E5%E7%EE%ED%20%EE%F5%EE%F2%FB/" style="font-size: 8pt">Сезон охоты</a> <a href="http://www.hsn-ltd.ru/info/articles/tag/%D9%F3%EA%E0/" style="font-size: 8pt">Щука</a> <a href="http://www.hsn-ltd.ru/info/articles/tag/%C1%E5%EB%EA%E0/" style="font-size: 8pt">Белка</a> <a href="http://www.hsn-ltd.ru/info/articles/tag/%D0%FB%E1%EE%EB%EE%E2/" style="font-size: 8pt">Рыболов</a> <![CDATA[</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>
а должно быть
<script>
<!--
var tags_list = encodeURI('<tags><a href="http://test.pskelectro.ru/news/tag/Best%20Buy/" style="font-size: 9pt">Best Buy</a> <a href="http://test.pskelectro.ru/news/tag/iTunes/" style="font-size: 9pt">iTunes</a> <a href="http://test.pskelectro.ru/news/tag/%C0%E2%F1%F2%F0%E8%FF/" style="font-size: 9pt">Австрия</a> <a href="http://test.pskelectro.ru/news/tag/%C3%E0%F0%F0%E8%20%CF%EE%F2%F2%E5%F0/" style="font-size: 9pt">Гарри Поттер</a> <a href="http://test.pskelectro.ru/news/tag/%C8%ED%EE%EF%EB%E0%ED%E5%F2%FF%ED%E8%ED/" style="font-size: 9pt">Инопланетянин</a> <a href="http://test.pskelectro.ru/news/tag/%CA%CD%C4%D0/" style="font-size: 9pt">КНДР</a> <a href="http://test.pskelectro.ru/news/tag/%CC%EE%F6%E0%F0%F2/" style="font-size: 9pt">Моцарт</a> <a href="http://test.pskelectro.ru/news/tag/%D1%EE%E2%E1%E5%E7/" style="font-size: 9pt">Совбез</a> <a href="http://test.pskelectro.ru/news/tag/%D5%E8%E6%E8%ED%E0%20%E4%FF%E4%E8%20%D2%EE%EC%E0/" style="font-size: 9pt">Хижина дяди Тома</a> <a href="http://test.pskelectro.ru/news/tag/%D5%F0%EE%ED%E8%EA%E8%20%CD%E0%F0%ED%E8%E8/" style="font-size: 9pt">Хроники Нарнии</a> <a href="http://test.pskelectro.ru/news/tag/%DD%F0%EC%E8%F2%E0%E6/" style="font-size: 9pt">Эрмитаж</a> </tags>');
var so = new SWFObject("/cumulus/tagcloud.swf", "tagcloud", "190", "190", "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>
это пример с test.pskelectro.ru выведенный тем кодом который я выкладывал в предыдущем сообщении.<!--
var tags_list = encodeURI('<tags><a href="http://test.pskelectro.ru/news/tag/Best%20Buy/" style="font-size: 9pt">Best Buy</a> <a href="http://test.pskelectro.ru/news/tag/iTunes/" style="font-size: 9pt">iTunes</a> <a href="http://test.pskelectro.ru/news/tag/%C0%E2%F1%F2%F0%E8%FF/" style="font-size: 9pt">Австрия</a> <a href="http://test.pskelectro.ru/news/tag/%C3%E0%F0%F0%E8%20%CF%EE%F2%F2%E5%F0/" style="font-size: 9pt">Гарри Поттер</a> <a href="http://test.pskelectro.ru/news/tag/%C8%ED%EE%EF%EB%E0%ED%E5%F2%FF%ED%E8%ED/" style="font-size: 9pt">Инопланетянин</a> <a href="http://test.pskelectro.ru/news/tag/%CA%CD%C4%D0/" style="font-size: 9pt">КНДР</a> <a href="http://test.pskelectro.ru/news/tag/%CC%EE%F6%E0%F0%F2/" style="font-size: 9pt">Моцарт</a> <a href="http://test.pskelectro.ru/news/tag/%D1%EE%E2%E1%E5%E7/" style="font-size: 9pt">Совбез</a> <a href="http://test.pskelectro.ru/news/tag/%D5%E8%E6%E8%ED%E0%20%E4%FF%E4%E8%20%D2%EE%EC%E0/" style="font-size: 9pt">Хижина дяди Тома</a> <a href="http://test.pskelectro.ru/news/tag/%D5%F0%EE%ED%E8%EA%E8%20%CD%E0%F0%ED%E8%E8/" style="font-size: 9pt">Хроники Нарнии</a> <a href="http://test.pskelectro.ru/news/tag/%DD%F0%EC%E8%F2%E0%E6/" style="font-size: 9pt">Эрмитаж</a> </tags>');
var so = new SWFObject("/cumulus/tagcloud.swf", "tagcloud", "190", "190", "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>
А у вас, видимо из-за того что CDATA оказывается внутри xsl:comment, она потом не вырезается из результирующего кода. И видимо из-за этого возникает ошибка.
Либо где-то в других js-файлах проблема.
Если что, стучитесь в аську с доступом, посмотрю в чем дело.
Заказов не беру. Консультирую редко.
Не мудрствуя лукаво, один в один скопировал код, что Вы предоставили на первой страничке (модернизированный вариант)
Получил опять обычное облако, а в HTML
а не
Непонятно откуда вылезла
Получил опять обычное облако, а в HTML
<script><![CDATA[
<!--
]]><![CDATA[var tags_list = encodeURI('<tags>]]><a
<!--
]]><![CDATA[var tags_list = encodeURI('<tags>]]><a
а не
<script>
<!--
var tags_list = encodeURI('<tags>
<!--
var tags_list = encodeURI('<tags>
Непонятно откуда вылезла
<![CDATA[
перед <!--
Не стыдно что-либо не знать или не понимать. Стыдно бояться спросить.
sivruk, стукнитесь в аську, посмотрю в чем проблема.
Заказов не беру. Консультирую редко.
Авторизация