Äste verschieben mit DB_NestedSet

Hier findet man die Möglichkeiten zum Verschieben von Ästen.

NESE_MOVE_AFTER = 'AF' (line 48)
NESE_MOVE_BEFORE = 'BE' (line 46)
NESE_MOVE_BELOW = 'SUB' (line 50)

Ich bin mir nie sichter 🙂
Das gibt dann diesen hier:

$mv = $NeSe->moveTree($src, $to, 'SUB');
if(PEAR::isError($mv)) {
echo "<br><b>ERROR:</b> ".$ERROR[] = $mv->getCode().": ".$mv->getMessage();
}


Macht $src-Node (und Kinder) ein Subnode von $to.

Doku zu DB_NestedSet von PEAR.

Vgl. auch Listen mit DB_NestedSet.



Mehr PEAR-Links in der Linksammlung unter PHP/PEAR.

Listen mit DB_NestedSet

“NestedSets” nennt man verschachtelte Datensätze,in SQL sind die relativ komplex zum Abbilden. Das Prinzip ist auf develnet.org schön erklärt.

Ich hab mich vor einer ziemlichen Weile mal entschieden, die PEAR-Klasse DB_NestedSet [1] von Daniel Khan zu nutzen. Die aktuelle Version ist 1.3.1. Was für mich nicht ganz optimal ist, dass bei der Klasse nur Output-Driver für Java-Script bestehen. Da mir das aber nicht passt, weil ich ganz normale Listen möchte, hab ich folgende kleine Funktion
geschrieben:

<?php
function makeList($root_id, $parent_id, $lft, $rgt, $level){
global $linkCats;
global $list;
if($rgt - 1 != $lft):
$list .= '<ul>'."n";
$children = $linkCats->getChildren($parent_id);
foreach($children AS $key=>$val):
$list .=' <li>';
$list .=$val->name;
$li++;
makeList($val->root_id, $val->id, $val->l, $val->r, $val->level);
$list .='</li>'."n";
endforeach;
if($val->order != "1"):
$list .= '</ul>'."n";
endif;
endif;
return $list;
}
?>


Das gibt mir jedenfalls eine XHTML-Strict konforme Liste zurück. Das Unschöne ist, dass ich dem Nested-Set-Prinzip widersprechend in Rekursion gehen muss und entsprechend Performance-lastig werden kann. Da ich die Resultate aber in ein File schreibe, muss ich das nur bei einer Änderung der Navigation laufen lassen.

An der Version 2 dürfte laut Daniel Khan ab Mai weiterentwickelt werden.

Als Alternative zu der PEAR-Klasse gibt es noch eine andere Klasse, die genau auf dem Prinzip der NestedSets in SQL beruht, wie es auf develnet.org [2] beschrieben ist. Arne Klempert hat dies ins Netz gestellt [3].

[1] http://oss.webcluster.at
[2] http://develnet.org/36.html
[3] http://klempert.de/php/nested_sets/

Screenshot mit Safari ohne Mac

Für alle armen Leute, die keinen Mac haben (wie ich) und trotzdem ihre Seite im Safari-Browser testen möchten, gibts diesen absoluten Knallerdienst auf iCapture.

So go on, give it a try by entering your URL above. You’ll be delivered a screenshot of your site as a Mac sees it through the Safari version of your choice, all in 30 seconds or so. (Assuming the queue is empty)

aus http://www.danvine.com/icapture/


Mein so automatisch generierter Screenshot:

http://gallery.sequenz.ch/albums/daily_gallery/screenshot_safari.thumb.png

Der Hinweis hab ich in der deutschen CSS-Mailingliste aufgeschnappt. Danke an Michael Charlier.

Schweizer Kommunikationspreis

Hab heute zum ersten Mal vom Preis “Ritter für Kommunikation” des BAKOM (Bundesamt für Kommunikation) gehört.

Die Informations- und Kommunikationstechnologien (ICT) haben die Kommunikation der Menschen untereinander erleichtert, den Informationsaustausch unabhängig von Ort und Zeit möglich und den Zugang zu Wissen fast grenzenlos gemacht. Doch nicht für alle: Vier von zehn Menschen in der Schweiz können mit Computer und Internet nicht umgehen.
Diese digitale Spaltung schafft ein Ungleichgewicht. Der Ritter der Kommunikation setzt sich für eine Gerechte und selbstbestimmte Informationsgesellschaft für alle ein. Gesucht sind Projekte, deren Ziel es ist, einer breiteren Bevölkerungsschicht den Zugang zu den ICT zu ermöglichen oder zu erleichtern.

aus http://www.comknight.ch/deutsch/index.html


Gefunden via webwriting.ch: Moritz sucht Ritter der Kommunikation. Der Bemerkung KLIK! kann ich nur zustimmen.
Danke auch für die Aufnahme in den Blogroll.

Wissensverwaltung mit Blogs und Wikis

Ein sehr interessanter Workshop: “Akademisches Arbeiten mit Weblogs und Wikis“.

Der Workshop soll aufzeigen, wie Weblogs und Wikis zur persönlichen Wissenssammlung eingesetzt werden können, wie sie wissenschaftliches Arbeiten unterstützen und dabei helfen, aus Rechercheergebnissen verwertbares Wissen für die Diplomarbeit zu machen.

aus http://www.roell.net/workshop-weblogs-wikis.shtml


Via den neu gestalteten dienstraum gefunden.