Т.е. я хочу использовать его на странице с табличной версткой. Подскажите, как это можно реализовать? (XML — не знаю, с ASP только начинаю знакомиться)
Своеобразно — это в смысле плоско? Ну тогда так и задумывалось. Точно так же оно работает в опере и NN, а динамика будет только на DHTML (IE). Можно сделать вторую реализацию под DOM, но это уже будет не то, да и лень матушка... :-)
ASP? Ну, во первых у нас сайт на ASP. Во вторых, по большому счету, оно на XSLT, а в то время когда оно писалось в PHP с XSLT было мягко говоря не очень. Ну и в третьих ... не люблю я его :-)
Давай так: ты предлагаешь текст Copyright, так чтоб другие сайты не могли перепечатывать наши материалы, но и пользователям было хорошо... и мы с удовольствием его поменяем.
А использовать HTML Tree Control конечно можно на здоровье где угодно (как говорится в не коммерческих и коммерческих целях) :-)
А>А как насчет исходников aspx? Сайт уже перешел на aspx, да и дерево, вижу, тоже на aspx переписано, а вот исходники к статье на asp.
Да, Ярослав, проблема актуальна.
Пару дней изголялся над ним — пытался C# его перенести, но ничего
путного не получилось. Может ты иль кто другой уже пытались на aspx
это дерево перетащить?
Буду премного благодарен, если поможешь, чем сможешь..
Заранее спасибо.
З.Ы.: мыло твоё rsdn'овское чё-т не работает
Здравствуйте, avg34, Вы писали:
А>>А как насчет исходников aspx? Сайт уже перешел на aspx, да и дерево, вижу, тоже на aspx переписано, а вот исходники к статье на asp.
Здравствуйте, woto, Вы писали:
W>Здравствуйте, avg34, Вы писали:
А>>>А как насчет исходников aspx? Сайт уже перешел на aspx, да и дерево, вижу, тоже на aspx переписано, а вот исходники к статье на asp.
W>Присоединяюсь к просьбе.
Здравствуйте, Slov, Вы писали:
S>Давай так: ты предлагаешь текст Copyright, так чтоб другие сайты не могли перепечатывать наши материалы, но и пользователям было хорошо... и мы с удовольствием его поменяем.
"Не может быть воспроизведён" -> "Не может быть опубликован в виде контента"
Здравствуйте, Аноним, Вы писали:
А>Добрый день!
А>Все конечно супер, но может кто-нибудь подскажет как сделать отложенную загрузку не с XML файла а скажем из БД?
А в чем сложность? Определенно сформированный урл дает определенно сформированный xml на который ссылается какая-то ветвь. Вот код, не претендую на красивость, точнее совсем некрасивый, т.к. написал его после 2-х месяцев изучения PHP, но у меня успешно работает уже пол года. Тебе может не подойти, т.к. некоторые изменения вносил в само дерево, но сама идея...
<?
require("fm_config.php");
// Date in the past
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
// always modified
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
// HTTP/1.1
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
// HTTP/1.0
header("Pragma: no-cache");
header("Content-Type: application/xml");
class XMLTreeBuilder {
function PrintXml()
{
echo"<?xml version=\"1.0\" encoding=\"windows-1251\"?>";
}
function PrintXMLHeader()
{
echo"<tree>\n";
}
function PrintXmlFooter()
{
echo"</tree>";
}
function PrintEmptyTree()
{
echo"<tree/>";
}
function PrintXmlItem($title, $src, $icon, $openIcon, $action, $target, $sem
ipath, $myid)
{
print"<tree text=\"$title\" ";
if(isset($semipath))
print"semipath=\"$semipath\" ";
if(isset($action))
print"action=\"$action\" ";
if(isset($target))
print"target=\"$target\" ";
if(isset($src))
print"src=\"$src\" ";
if(isset($icon))
print"icon=\"$icon\" ";
if(isset($openIcon))
print"openIcon=\"$openIcon\" ";
if(isset($myid))
print"id=\"$myid\" ";
print"/>\n";
}
}
XMLTreeBuilder:: PrintXml();
// -- treeif(!$link=mysql_connect($dbhost,$dbuser,$dbpass))
{
printf("Ошибка при соединении с MySQL !\n");
exit();
}
if (!mysql_select_db($dbname, $link)) {
printf("Ошибка базы данных !");
exit();
}
global $link;
if(isset($_GET["load"]))
{
$lvl = $_GET["load"];
$sSQL = "SELECT id, action, icon, iconOpen, hasChild, title, parentid FROM C
atalog WHERE parentid = " . $lvl . " ORDER BY title";
$result = mysql_query($sSQL, $link);
if (mysql_num_rows($result) > 0) {
XMLTreeBuilder::PrintXMLHeader();
while ( $row = mysql_fetch_array($result) ) {
if($row["hasChild"] == 1)
{
XMLTreeBuilder::PrintXmlItem($row["title"], "s.tree.
xml.php?load=" . $row["id"], $row["icon"], $row["iconOpen"], "glob(this);", null, $r
ow["action"], $row["id"]);
}
else
{
XMLTreeBuilder::PrintXmlItem($row["title"], null, $r
ow["icon"], $row["iconOpen"], "glob(this);", null, $row["action"], $row["id"]);
}
}
XMLTreeBuilder::PrintXmlFooter();
}
else
{
XMLTreeBuilder::PrintEmptyTree();
}
}
mysql_close($link);
?>
Я скачал исходники и попробовал переделать код HTML Tree Control на Java. Однако столкнулся с проблемой дозагрузки данных. У меня при нажатии на + элемента, который обозначен как дозареждаемый, появляется <DIV> таг с надписью на нем и больше ничего не происходит, т.е. подузлы не загружаются. После проверки кода было установлено что node параметр с правильным идентификатором передается как GET параметр заявки. Веб страница (в данной случае JSP) извлекает этот параметр и подает его как root параметр для трансформации. После происходит трансформация и код (HTML) который при этом генерируется абсолютно идентичен генерированному первоначально.
Насколько я успел понять эта проверка (loadToc.xsl) определяет нужно ли догрузить узлы (точнее @id=$root"):
<xsl:when test="descendant::node[@id=$selID] or descendant::node[@href=$selPath] or @id=$root">
Затем исполняется (точнее должен исполниться) код <xsl:call-template name="LoadAndShow"/> который и должен загрузить подузлы дозареждаемого узла. По моим наблюдениям этот код не исполняется, а вместо этого исполняется следующий шаблон (<xsl:call-template name="DontLoad"/>).
Если можно объясните принцип дозагрузки данных, у меня такое чувство как будто я что-то пропустил.
Я трансформировал код страницы default.jsp в эквивалентный код на Java. Однако я не уверен последний ли это код, так как я заметил разницу между кодом статьи и кодом который используется на сайте. Вышлите пожалуйста (или опубликуйте) последнюю версию файла toc\default.asp и скриптов...