new kid on the blog [HopMacro error in ticker: ReferenceError: "softwrap" is not defined. (Global/tickerFunctions.js; line 132)]
Online for 7741 days
Last update: 2004.01.21, 15:39
You're not logged in ... login
 
November 2003
Mo
Di
Mi
Do
Fr
Sa
So
 
 
 
 
 
 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
10
11
12
13
15
16
17
18
19
20
21
22
23
25
26
27
28
29
30
 
 
 
ja
Antwort: hier
by axel.berndt.berlin (2004.01.19, 10:15)
hast du zeit und interesse
mir dabei zu helfen ? Kucks dir mal an und sag bescheid...
by martin_schaeffler_berlin (2004.01.18, 23:39)
Userübersicht V1.2
Diese Version arbeitet auf der eingeführten Collabor...
by axel.berndt.berlin (2004.01.16, 14:54)
Userübersicht V1.1
Die zweite Version der Übersicht soll nach: Nachnamen...
by axel.berndt.berlin (2004.01.16, 14:50)
JO
heisses Teil! Langsam aber sicher, wird das die Killer...
by joerg.mertins.berlin (2004.01.15, 20:23)

xml version of this page

made with antville
powered by
helma object publisher
 

Freitag, 14. November 2003
Antville DB Projekt
Ich möchte mich mit den Möglichkeiten die PHP und die Datenbank hinter Antville bieten beschäftigen. Möglich sind z.B. eine Userübersicht und visualisierte Statistiken. Das Voranschreiten der Arbeit werde ich hier dokumentieren.
Die grafische Darstellung der Antville Datenbank ist abenfalls hier zu finden.

... comment

 
stephan_ziep_berlin, Samstag, 15. November 2003, 16:40
ich auch...
ich würde da auch gerne mitmachen und die datenbank hinter antville anzapfen, um rss feeds aufzubauen, die man dann über einen ticker auf seinem desktop holen kann.
Mehr in meinem Blog
Hast du Lust mit mir ein "Joint Venture zu bilden?"

... link  

 
axel.berndt.berlin, Sonntag, 16. November 2003, 14:27
klar !
Super, dann können wir ja im Team arbeiten.
Ich wollte als nächstes die Datenbank mal visualisieren, also die Tabellenstruktur optisch darstellen, m.M.n. ist da nix im Netz bei Antville dokumentiert.

... link  

 
Hans.Mittendorfer.Uni-Linz, Dienstag, 18. November 2003, 14:46
langsam kommt die Maschine in gang
vielleicht werden Sie bei dem einen, oder der anderen Teilnehmerin in Salzburg oder Linz vorstellig, denn das Anzapfen der Datenbank hat auch umfangreiche anwendungsorientierte Aspekte.

Dies betriefft z.B. die Auswertung der Beiträge und/oder Kommentare in den Blogs. Die Möglichkeiten sind - so vermute ich zumindest - zahlreich. Auswertungen ergeben sich über den:

Benutzernamen
dem Titel des Weblogs
dem Text im Beitrag (Volltextsuche ?)
dem Datum des Beitrags
dem Topic des Beitrags
dem Titel des Kommentars
dem Text im Kommentar
dem Benutzernamen des Kommentierenden
dem Datum des Kommentars

dem letzen Zugriff auf einen Beitrag
der Häufigkeit der Zugriffe auf einen Beitrag
dem letzen Zugriff auf einen Kommentar
der Häufigkeit der Zugriffe auf einen Kommentar

usw., usw.

mit entsprechenden Schnitt- und Vereinigunsmengen. Was nun publizistisch / lerntheoretisch sinnvoll und nützlich erscheint, könnte doch ein Publizist in die Hand nehmen. Es gibt Personen, die entsprechende Arbeiten bereits in Belegblog angekündigt haben, bitte werden sie dort mittels Kommentar vorstellig und leiten Sie Ihre Kollegen mittels link(s) auf Ihre Arbeiten.

Wenn sich die Sache als zu komplex herausstellt, so holen sie auch noch weitere Informatiker in Ihre Gruppe. Denken Sie ein "Datenbankportal" an, welches an prominenter Stelle unseres Blogservers (auf der Einstiegsseite) Platz findet.

Ich hoffe Sie finden Ihre Arbeit spannend, das sie viel zur Nutzensteigerung eines lebenden Systems beiträgt.

H. Mittendorfer

... link  

 
christian_koeppe_berlin, Dienstag, 18. November 2003, 15:02
Bin dabei...
auch wenn ich mich nicht auf die Datenbank stütze, sondern versuchen werde, die Funktionalität von Antville direkt zu erweitern. Ein erster Ansatz ist mit dem demnächst fertiggestellten RSS-Feed einer Story getan, bei dem dann als Items die einzelnen Kommentare angegeben werden. Das ist äusserst hilfreich, wenn man z.B. die Entwicklung einer einzelnen Story mit einem FeedReader verfolgen möchte. Anschliessend werde ich mich mit ähnlichen Erweiterungen/Auswertungen wie die oben beschriebenen beschäftigen. Interessant ist dabei dann auch die Möglichkeit, die verschiedenen Techniken zu vergleichen und so evtl. folgende Erweiterungen effizienter gestalten zu können. Auch wäre eine Verarbeitung der erstellten Feeds mit Hilfe von PHP denkbar (über XML-Parser etc.)

Meine Beiträge veröffentliche ich in BLOGVILLE

Christian Köppe

... link  


... comment
 
jerome.griessmeier.berlin, Donnerstag, 20. November 2003, 21:17
Installtation Userübersicht
Hi Axel,
ich habe die von dir zugeschickte Version auf dem Server aufgespielt.

http://collabor.idv.edu/php/userverwaltung/

Habe auch den Datenbankuser und das Passwort angepasst. Leider bekomme ich aber noch folgende Fehlermeldung.

Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /var/www/html/collabor/php/userverwaltung/index.php on line 110


Die Datenbankverbindung scheint zu funktionieren, nur mit dem Ergebnis ist er noch nicht ganz zufrieden.
Vielleicht können wir uns das morgen oder am Montag nochmal zusammen ansehen.
Könnte evtl. die php-version oder so sein.

... link  

 
stephan_ziep_berlin, Freitag, 21. November 2003, 09:37
evtl. statement-problem?
also ich kriege das immer, wenn mit dem sql statement irgendwas nicht hinhaut... mysql ist da glaube ich ziemlich empfindlich geworden. Versuch mal alles Groß zu schreiben, oder die Tabellennamen so zu schreiben wie sie angelegt sind.

... link  

 
axel.berndt.berlin, Freitag, 21. November 2003, 14:23
momentan ratlos
Jerome und ich haben vorhin 'ne Menge Tests gemacht, auch die Groß- und Kleinschreibung in allen Kombinationen. An mysql liegt's vermutlich nicht, denn wenn wir die Datenbankanfrage per echo ausgeben und direkt auf der Datenbank ausführen geht's. Nur beim Zugriff per PHP tritt dieser Fehler auf. Bei mir zu Hause läuft's ( unter Windows).
Am Montag wollen wir dann weiterschauen.

... link  

 
joern.schmieta.berlin, Freitag, 21. November 2003, 17:33
Wie sieht denn das PHP Statement aus?
Pastet doch mal den Teil des skripts der nicht will. Vielleicht hat ja einer ne Idee wenn er sieht was du da genau versuchst. Ich hab auf meinem Server auch ein bisserl mit der Datenbank rumgespielt. Wen es interessiert kann sich ja mal die Ergebnisse anschaun.

Gruss Jörn

... link  

 
axel.berndt.berlin, Samstag, 22. November 2003, 15:49
eigentlich ganz simpel
...
$db = MYSQL_CONNECT($db_server,
$db_user,$db_passwort)
    or die ("Die Datenbank ist zur Zeit nicht
   erreichbar. Bitte versuch's später wieder.");

$db_select = MYSQL_SELECT_DB($db_name);
...
$query = "SELECT USER_NAME FROM AV_USER;";

$result = mysql_query($query,$db);

while($row = mysql_fetch_row($result)){     // (line 110)
   echo $row[1] . "";
}


Die Datenbankanfrage ist im eigentlichen Skript natürlich komplexer, aber wir haben sie beim testen bis auf o.g. simple Select- Anweisung reduziert und trotdem lief's nicht.

... link  

 
christian_koeppe_berlin, Samstag, 22. November 2003, 20:40
Vielleicht ist's das Semikolon...
In manchen Systemen wird das Semikolon als Fehler gewertet, wenn nur eine einzelne Abfrage gestartet wird. Probiers mal ohne das Semikolon bei der Query...

Christian Köppe

... link  

 
joern.schmieta.berlin, Montag, 24. November 2003, 02:24
Bei mir funktioniert das Codefragment...
Ob nun mit oder ohne Semikolon war dabei egal. Ich habe den Fehler allerdings provozieren können, in dem ich in der MYSQL_SELECT_DB Anweisung anstatt $db_name einfach nur $db eingetragen habe. Er meckert aber nicht etwa bei der SELECT_DB Anweisung selbst, sondern erst bei der Zeile mit dem fetch_row, mit genau der selben Warning. Der Fehler liegt daher vermutlich etwas weiter oben.

Gruß Jörn

... link  

 
axel.berndt.berlin, Mittwoch, 26. November 2003, 15:10
Letztendlich...
haben wir's jetzt noch hinbekommen. Woran es gelegen hat kann ich nicht nachvollziehen.
Danke an Christian und Jörn für die Mithilfe !

... link  


... comment
 
axel.berndt.berlin, Samstag, 22. November 2003, 15:57
Antville Datenbankstruktur
Ich habe die Antville Datenbank mal grafisch dargestellt. Dabei haben ich die Feldbezeichnungen ihren "übersetzt", um deren Funktion zu verdeutlichen.
Wenn Ihr auf die Vorschau klickt öffnet sich die große Version. Achtung der Internet Explorer 6 verkleinert die Darstellung, die Originalgröße muss man dann per Linksklick erzwingen.

Datenbank Antville

... link  

 
Hans.Mittendorfer.Uni-Linz, Sonntag, 23. November 2003, 00:55
diese Arbeit hat sich gelohnt
nun kann sich die weitere Diskussion auf Fakten beziehen. Ich nehme an, dass Herr Berndt die Bezeichungen der Tabellen und Felder (Spalten) übersetzt hat und das ist gut so. Ich ersuche alle, die mit der Datenbank arbeiten, dass sie sich an die Bezeichnungen in der obigen Grafik halten, sofern Tabellen und Felder benannt werden.

H. Mittendorfer

... link  

 
axel.berndt.berlin, Mittwoch, 26. November 2003, 15:15
Update
Ich habe die Grafik überarbeitet. Sie zeigt jetzt die MySQl Spaltenname und deren Übersetzung.

... link  

 
Hans.Mittendorfer.Uni-Linz, Donnerstag, 27. November 2003, 13:05
danke ...
jetzt ist sie sowohl von den Informatikern, als auch von den Nichtinformatikern gut nutzbar.

... link  


... comment
 
Hans.Mittendorfer.Uni-Linz, Freitag, 5. Dezember 2003, 14:49
nun, nach den ersten erfolgreichen Auswertungen
der Datenbank stellt sich die Frage, ob eine Erweiterung dieser, ohne Schädigung der darüberliegenden Schichten (Helma und Antville) möglich ist.

Sinnvoll schiene zur besseren Benutzerverwaltung bis dato eine Ergänzung der Tabelle AV_USER um:

USER_matrikelnr
USER_vorname
USER_nachname
USER_organisation (Universität)

Mit der Matrikelnummer würde zwar ein zweiter Key eingeführt, der den ersten: USER_ID ersetzen könnte.

Die Matrikelnummer ist im Zusammenhang mit der Integration von Blogs in Lernplattformen wichtig. Damit könnte die Benutzerverwaltung auch in die Verwaltung der Lernplattformen integriert werden.

Das freie Anmelden in den Blog-Services ist bei Lern- und Lehrblogs ohnehin nicht sinnvoll.

Was ist Ihre Meinung dazu ?

... link  

 
joern.schmieta.berlin, Freitag, 5. Dezember 2003, 16:10
Ich halte eine Erweiterung der Tabelle AV_USER nicht für sinnvoll.
Da ich nicht weiss wie die Projektionen innerhalb von Antville ablaufen, halte ich es für sinnvoller die Tabelle AV_USER nicht zu ändern sondern eine zusätzliche Tabelle einzufügen. Diese neue Tabelle sollte dann als Primärschlüssel die USER_ID aus AV_USER verwenden. Damit ist dann eine eindeutige Zuordnung zu den Antville Benutzern möglich. Somit ist sichergestellt, das der Betrieb von Antville nicht beinflusst wird.

Gruß Jörn

... link  

 
axel.berndt.berlin, Freitag, 5. Dezember 2003, 17:43
gute Idee
So wäre unsere Anpassung auch schön modular von der Standartinstallation getrennt.

... link  

 
axel.berndt.berlin, Dienstag, 9. Dezember 2003, 18:20
Weiterentwicklung user- Liste
Da die Datenbank wohl in der oben besprochenen Weise erweitert wird (siehe auch : /joernsB/stories/2719), werden ich die User- Liste dann anhand der neuen Tabelle generieren.

... link  

 
joern.schmieta.berlin, Montag, 15. Dezember 2003, 21:12
Datenbankerweiterung
Die Struktur der Datenbank ist jetzt um die besagte Tabelle erweitert worden. Ich habe Jerome auch schon das sql-skript mit den Userdaten geschickt.
Sobald er es in die Datenbank eingepflegt hat steht der neuen Userliste nichts mehr im Weg.

Gruß Jörn

... link  

 
joern.schmieta.berlin, Montag, 15. Dezember 2003, 22:58
Und schon fertig
Jerome hat die Daten in die Tabellen eingepflegt. Du kannst also die Userliste updaten.

Gruß Jörn

... link  


... comment
 
axel.berndt.berlin, Montag, 15. Dezember 2003, 12:52
Userübersicht V 1.0
Die erste Version der Userverwaltung listet alle user mit öffentlichen Blogs auf. Diese konnten wahlweise nach den Anfangbuchstaben des Blogs oder Usernamens gefiltert werden.
screenshot:

screenshot user?bersicht v1.0

Die notwendigen Parameter waren
- das Sortierkriterium ( Username oder Blogname) Variable $sort = ( USER_NAME | SITE_TITLE )
- der Anfangsbuchstabe Variable $letter =( a..z | "others" )

Beide wurden als GET- Variable, also in der URL übergeben, abgefragt, so dass die Userübersicht mit einer vordefinierten Anfrage aufgerufen werden konnte.

Die Datenbankanfrage war hierfür ziemlich simpel:
(Pseudocode )

SELECT USER_NAME, SITE_TITLE, SITE_ALIAS FROM AV_USER, AV_SITE WHERE USER_ID = SITE_F_USER_CREATOR AND SITE_ISONLINE = 1
AND $sort ...
a) ... LIKE "$letter%" ( Sortierkriterieum beginnt mit Buchstabe ... )
b) ... NOT REGEXP "^[a-zA-Z]" ( Sortierkriterieum beginnt nicht mit Buchstaben von a- z )
ORDER BY $sort

Durch die pure Anzeige der Datenbankfeldinhalte konnte die Sortierung vollständig über MySQL durchgeführt werden.

Angezeigt wurden dann:

USER_NAME - SITE_TITLE

SITE_TITLE war verlinkt mit dem Userblog.

Der Link auf den jeweiligen Blog setzt sich zusammen aus der Collabor - URL

"/" gefolgt vom Blogalias (SITE_ALIAS).

... link  

 
jerome.griessmeier.berlin, Mittwoch, 24. Dezember 2003, 16:19
Und quasi als Weihnachtsgeschenk...
wurde heute die Version 1.2 der Userübersicht freigeschalten!

... link  


... comment
 
axel.berndt.berlin, Freitag, 2. Januar 2004, 18:05
Userübersicht V1.1
Die zweite Version der Übersicht soll nach:
Nachnamen der Benutzer
nach Städten und
Blogs

sortieren. Dies ist nicht über die reine SQL- Anweisung realisierbar, solange diese Informationen in einem Datenbankfeld, dem Usernamen, kodiert sind. Zwar kann man mit Hilfe regulären Ausdrücke bestimmt Datensätze anhand von Teilstrings selektieren, jedoch nicht nach Teilstrings ordnen.
Bevor das Vorhaben einer neuen Usertabelle ( siehe ) entstand, war mein Ansatz die User per MySQL zu selectieren und anschliessend durchs PHP Skript zu sortieren.
Die User nach Nachnamen zu selektieren ist über MySQL möglich:

Variable $anfangsbuchstabe : zu selektierender anfangsbuchstabe des Nachnamens

SELECT USER_NAME, SITE_TITLE, SITE_ALIAS, USER_ID FROM AV_USER, AV_SITE WHERE USER_ID = SITE_F_USER_CREATOR AND SITE_ISONLINE = 1 AND USER_NAME REGEXP "[\._] $anfangsbuchstabe.*[\._]"

Die ausgewählten User entsprechen folgendem Muster: der String enthält einen Punkt oder einen Unterstrich gefolgt vom entsprechenden Anfangsbuchstaben, dieser gefolgt von mehreren unbestimmten Zeichen, aber nach einer unbestimmten Anzahl Dieser folgt ein weiterer Punkt oder Unterstrich. Dies funktioniert solange die User die Namenskonvention eingehalten haben (vorname.nachname.ort oder vorname.nachname_ort usw. )

Im zweiten Schritt müssen diese User mit gleichem Nachnamensanfang alphabetisch sortiert werden. Dies sollte übers php- Skript durchgeführt werden. Meine Idee war dafür ein indiziertes zweidimensionales Array zu verwenden.

Den Schlüssel zu einem Arrayeintrag sollte der Username, wie er in der späteren Übersicht erscheinen sollte, bilden, und zwar ein String folgenden Formats „nachname, vorname“.
Die Bestandteile des Usernamens erhält man durch
$teile = split("[._]",$user_id)
Der assoziierte Wert zum Schlüssel war ein weiteres Array mit den weiteren Daten Blogtitel, Blogalias ( gefolgt von weiteren Titel- Alias- Paaren, wenn der User mehrere Blogs erstellt hat). Es entsteht dadurch ein Array aller user diesen Nachnamens, nach diesem Aufbau:

$userlist[berndt, axel] -> ['new kid on the blog','nkotb']
$userlist[muster, max] -> ['maxblog','mb','maxblog2','mb2']
:
.

Das Userarray kann man dann mittels ksort() nach den Keys ordnen und seinen Inhalt anzeigen, so entsteht die geordnete Übersicht.

Die Übersicht nach Städtenamen, findet in dieser Version ebenfalls über den Usernamen statt.

Staedteuebersicht Userverwaltung

Die SQL- Abfrage hat folgenden Aufbau

Variable $ort : der zu selektierenden Ort des Users (berlin | linz | salzburg)

SELECT USER_NAME, SITE_TITLE, SITE_ALIAS FROM AV_USER, AV_SITE WHERE USER_ID = SITE_F_USER_CREATOR AND SITE_ISONLINE = 1 AND USER_NAME LIKE "%$ort"

Es werden alle User selektiert deren USER_NAME mit dem entsprechenden Ortsnamen endet.
Sollen diese User nach Namen sortiert werden, muss die oben beschrieben PHP Funktion die Ergebnisse sortieren.

... link  

 
Hans.Mittendorfer.Uni-Linz, Donnerstag, 8. Januar 2004, 11:37
scheint ausgezeichnet zu funktionieren ..
.. und ist auch gut nachvollziehbar dokumentiert
gute Arbeit!

H. Mittendorfer

... link  


... comment
 
axel.berndt.berlin, Donnerstag, 15. Januar 2004, 18:41
Userübersicht V1.2
Diese Version arbeitet auf der eingeführten Collabor usertabelle AV_COLL_EXT, zusätzlich zeigt sie die Art der Mitgliedschaft eines Users zu einem Blog an.

Gesamtliste Useruebersicht

Die Vorgehensweise bei der Zuordnung der blogs zu den User hat sich ebenfalls erheblich geändert. Wurde bisher der User dem blog, den er erstellt hat gegeüber gestellt, wird jetzt eine genauere Zuordnung über die Mitgliedschaft (AV_MEMBERSHIP) gemacht. Dies ist sinnvoll, da ein User z.B. als Contributor erheblichen Anteil an einem Blog haben kann. Weiterhin wird dadurch der Fall abgefangen, daß ein User nicht mit seinem Ersteller- account auf seinem Blog veröffentlicht, z.B. nach Einführung der Namenskonventionen mit neuem Usernamen.

SQL- Abfrage:
SELECT ID, USER_VORNAME, USER_NACHNAME, SITE_TITLE, SITE_ALIAS, MEMBERSHIP_LEVEL FROM AV_COLL_EXT, AV_MEMBERSHIP, AV_SITE WHERE ID = MEMBERSHIP_F_USER AND MEMBERSHIP_F_SITE = SITE_ID AND SITE_ISBLOCKED = 0 AND SITE_ISONLINE = 1 AND MEMBERSHIP_LEVEL > 0 AND ...

Die Sortierung kann dank der Zusatztabelle AV_COLL_EXT vereinfacht durchgeführt werden:
... USER_NACHNAME oder SITE_TITLE LIKE "%<anfangsbuchstabe>"
alle die nicht mit Buchstaben des Alphabets beginnen:
... USER_NACHNAME oder SITE_TITLE NOT REGEXP "^[a-zA-Z]"

Das MEMBERSHIP_LEVEL ist in der Datenbank mit Zahlencodes verschlüsselt, diese müssen bei der Anzeige übersetzt werden:
9361 : "contributor"
16383 : "contentmanager"
131071 :"admin"


Die Städteübersicht arbeitet mit der selben Abfrage, die Zuordnung zur Stadt muß nun nicht mehr über eine reguläre Expression auf dem Usernamen duchgeführt werden, sondern kann nun ganz einfach aus der Tabelle AV_COLL_EXT entnommen werden.

Ein wichtiges neues Feature der Übersicht ist die Anzeige der veröffentlichten Inhalte des Benutzers. Per Klick auf den Namen wird sein öffentlich zugänglicher Content angezeigt. Dies kann relativ simpel aus der Tabelle AV_TEXT entnommen werden. Interessanter ist der Zusammenbau des Links auf die Beiträge. Dieser setzt sich wie folgt zusammen:
http://collabor.idv.edu/<SITE_ALIAS>/stories ...
wenn es eine Story ist:
...<TEXT_ID>
wenn ein comment:
...<TEXT_F_TEXT_STORY>/#<TEXT_ID>

Die zentrale Datenbankabfrage sieht dann so aus:

SELECT TEXT_ID, SITE_ALIAS, TEXT_TITLE, TEXT_MODIFYTIME, TEXT_TOPIC, TEXT_PROTOTYPE, TEXT_READS, TEXT_F_TEXT_STORY FROM AV_TEXT, AV_USER, AV_SITE WHERE TEXT_F_USER_CREATOR = <$userID> AND USER_ID = TEXT_F_USER_CREATOR AND TEXT_F_SITE = SITE_ID AND SITE_ISBLOCKED = 0 AND SITE_ISONLINE = 1 AND TEXT_ISONLINE > 0 ORDER BY TEXT_MODIFYTIME DESC

... link  


... comment
 
martin_schaeffler_berlin, Sonntag, 18. Januar 2004, 23:39
hast du zeit und interesse
mir dabei zu helfen ?
Kucks dir mal an und sag bescheid !
Gruss
martin

... link  

 
axel.berndt.berlin, Montag, 19. Januar 2004, 10:15
ja
Antwort: hier

... link  


... comment


To prevent spam abuse referrers and backlinks are displayed using client-side JavaScript code. Thus, you should enable the option to execute JavaScript code in your browser. Otherwise you will only see this information.