Nach einem kurzen Test, den ich vorhin gemacht hatte, funktioniert das auch.HerrB hat geschrieben:Es sollte IMHO ausreichen, in der class.genericdb.php für die Methode delete($id) der ItemCollection-Klasse den angegebenen Passus auszukommentieren:
Profil / Persönliche Daten...
Danke mal, ich werde es auch mal testen, muss aber erst mal ein komplettes backup erstellen.
Noch ne andere Frage betr. Listung und Sortierung. Die Mitgliederliste wollte ich nach dem Nachnamen sortieren, bis jetzt erfolgt das nach Username. Hab einiges versucht, weiss aber nicht, wie ich nach den Plugin-Feldern sortieren kann. Das ist der aktuelle Code:
Der Nachname steht in con_properties -> type: nachname -> value
Viele Grüsse aus Konstanz, Uwe
Noch ne andere Frage betr. Listung und Sortierung. Die Mitgliederliste wollte ich nach dem Nachnamen sortieren, bis jetzt erfolgt das nach Username. Hab einiges versucht, weiss aber nicht, wie ich nach den Plugin-Feldern sortieren kann. Das ist der aktuelle Code:
Code: Alles auswählen
$oFEUsers = new FrontendUserCollection;
$oFEUsers->link("FrontendGroupMemberCollection");
$oFEUsers->setWhere("FrontendGroupMemberCollection.idfrontendgroup", $lGroupID);
$oFEUsers->setOrder("FrontendUserCollection.username");
$oFEUsers->query();
Viele Grüsse aus Konstanz, Uwe
Tja, da sind wir an den Stellen, die nicht ohne weiteres gehen.
In Contenido ist das so gelöst, dass zunächst alle Daten in ein Array geladen werden und dieses dann sortiert wird, siehe contenido/includes/include.frontend_menu.php als (schwer verständliches) Beispiel. Interessant daraus ist die arraysort-Funktion bzw. deren Anwendung.
Gruß
HerrB
In Contenido ist das so gelöst, dass zunächst alle Daten in ein Array geladen werden und dieses dann sortiert wird, siehe contenido/includes/include.frontend_menu.php als (schwer verständliches) Beispiel. Interessant daraus ist die arraysort-Funktion bzw. deren Anwendung.
Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
ohje ohje, sollte es an der Sortierung scheitern ...
gibt es da irgend eine Tricky Methode, vielleicht in der while-Schleife? Oder im Template?
Die Contenido-Funktionen sind ganz schön schwierig, Du hast sicher gemerkt, dass ich genau da meinen schwächsten Punkt habe ...
Ich versuche es mal so, aber die order by Geschichte habe ich noch nicht im Griff.
Aber das hilft nun wohl auch nicht weiter ... Bin langsam ganz schön verzweifelt. Wie es aussieht, kommen wir um ein Array nicht herum.
Für Hinweise aller Art dankbar, Uwe
gibt es da irgend eine Tricky Methode, vielleicht in der while-Schleife? Oder im Template?
Code: Alles auswählen
while ($oFEUser = $oFEUsers->next()) {
#$oTpl->set('d', 'NAME', $oFEUser->get("username"));
$oTpl->set('d', 'TITEL', $oFEUser->getProperty("titel", "address"));
$oTpl->set('d', 'VORNAME', $oFEUser->getProperty("vorname", "address"));
$oTpl->set('d', 'NACHNAME', $oFEUser->getProperty("nachname", "address"));
$oTpl->set('d', 'ORT', $oFEUser->getProperty("ort", "address"));
$oTpl->set('d', 'TELEFON', $oFEUser->getProperty("telefon", "address"));
#$oTpl->set('d', 'MOBIL', $oFEUser->getProperty("mobil", "address"));
$oTpl->set('d', 'EMAIL', $oFEUser->getProperty("email", "address"));
$oTpl->set('d', 'HOMEPAGE', $oFEUser->getProperty("homepage", "address"));
$oTpl->next();
}
Ich versuche es mal so, aber die order by Geschichte habe ich noch nicht im Griff.
Code: Alles auswählen
<?php
$db = new DB_Contenido;
$sql = "SELECT type, value, itemid FROM " .
$cfg["tab"]["properties"] .", ".
$cfg["tab"]["frontendusers"] . "
WHERE ".$cfg["tab"]["properties"].".itemid = ".$cfg["tab"]["frontendusers"].".idfrontenduser AND active = '1'
ORDER BY ".$cfg["tab"]["properties"].".type = 'nachname' AND ".$cfg["tab"]["properties"].".value ASC";
$db->query($sql);
while ($db->next_record()) {
$strg_value = urldecode($db->f("value"));
echo $strg_value." - ";
echo "<br>";
}
?>
Für Hinweise aller Art dankbar, Uwe
Lass mir bis heute abend Zeit (und poste nochmal, wenn ich es vergesse).
Gruß
HerrB
Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
"Abend" ist für einen Programmierer ein dehnbarer Begriff. In Arbeit.
Gruß
HerrB
Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Code: Alles auswählen
unset($aData);
$aData = array();
$lID = 0;
while ($oFEUser = $oFEUsers->next()) {
$lID = $oFEUser->get("idfrontenduser");
$aData[$lID]["username"] = $oFEUser->get("username"));
$aData[$lID]["titel"] = $oFEUser->getProperty("titel", "address"));
$aData[$lID]["vorname"] = $oFEUser->getProperty("vorname", "address"));
$aData[$lID]["nachname"] = $oFEUser->getProperty("nachname", "address"));
$aData[$lID]["ort"] = $oFEUser->getProperty("ort", "address"));
$aData[$lID]["telefon"] = $oFEUser->getProperty("telefon", "address"));
$aData[$lID]["email"] = $oFEUser->getProperty("email", "address"));
$aData[$lID]["homepage"] = $oFEUser->getProperty("homepage", "address"));
}
array_csort($aData, "nachname", SORT_ASC);
foreach ($aData as $lID => $aValue) {
#$oTpl->set('d', 'NAME', $aValue["username"]);
$oTpl->set('d', 'TITEL', $aValue["titel"]);
$oTpl->set('d', 'VORNAME', $aValue["vorname"]);
$oTpl->set('d', 'NACHNAME', $aValue["nachname"]);
$oTpl->set('d', 'ORT', $aValue["ort"]);
$oTpl->set('d', 'TELEFON', $aValue["telefon"]);
#$oTpl->set('d', 'MOBIL', $aValue["mobil"]);
$oTpl->set('d', 'EMAIL', $aValue["email"]);
$oTpl->set('d', 'HOMEPAGE', $aValue["homepage"]);
$oTpl->next();
}
Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Danke HerrB,
habs gleich getestet und es funktioniert nach einigen kleinen Änderungen - bis auf die Sortierung
Hab ein paar Sachen versucht (nach PHP-Buch), leider bisehr ohne Ergebnis.
So sieht das Modul nun aus:
Das setOrder habe ich auskommentiert, weil das sortiert noch. Sonst keine Fehlermeldungen.
Viele Grüsse vom Bodensee, Uwe
habs gleich getestet und es funktioniert nach einigen kleinen Änderungen - bis auf die Sortierung
Hab ein paar Sachen versucht (nach PHP-Buch), leider bisehr ohne Ergebnis.
So sieht das Modul nun aus:
Code: Alles auswählen
<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname : Frontenduser-Liste
* Author(s) : Uwe Köthen, pixelparts, HerrB
* Copyright : pixelparts, Uwe Köthen
* Created : 04.04.2006
************************************************/
cInclude('classes', 'class.frontend.users.php');
cInclude('classes', 'class.template.php');
$lGroupID = "CMS_VALUE[1]";
if (!is_numeric($lGroupID)) {
$lGroupID = 0;
}
$oTpl = new Template;
$oTpl->reset();
$oFEUsers = new FrontendUserCollection;
$oFEUsers->link("FrontendGroupMemberCollection");
$oFEUsers->setWhere("FrontendGroupMemberCollection.idfrontendgroup", $lGroupID);
#$oFEUsers->setOrder("FrontendUserCollection.username");
$oFEUsers->query();
unset($aData);
$aData = array();
$lID = 0;
while ($oFEUser = $oFEUsers->next()) {
$lID = $oFEUser->get("idfrontenduser");
#$aData[$lID]["username"] = $oFEUser->get("username");
$aData[$lID]["titel"] = $oFEUser->getProperty("titel", "address");
$aData[$lID]["vorname"] = $oFEUser->getProperty("vorname", "address");
$aData[$lID]["nachname"] = $oFEUser->getProperty("nachname", "address");
$aData[$lID]["ort"] = $oFEUser->getProperty("ort", "address");
$aData[$lID]["telefon"] = $oFEUser->getProperty("telefon", "address");
$aData[$lID]["email"] = $oFEUser->getProperty("email", "address");
$aData[$lID]["homepage"] = $oFEUser->getProperty("homepage", "address");
}
array_csort($aData, "nachname", SORT_ASC);
foreach ($aData as $lID => $aValue) {
#$oTpl->set('d', 'NAME', $aValue["username"]);
$oTpl->set('d', 'TITEL', $aValue["titel"]);
$oTpl->set('d', 'VORNAME', $aValue["vorname"]);
$oTpl->set('d', 'NACHNAME', $aValue["nachname"]);
$oTpl->set('d', 'ORT', $aValue["ort"]);
$oTpl->set('d', 'TELEFON', $aValue["telefon"]);
#$oTpl->set('d', 'MOBIL', $aValue["mobil"]);
$oTpl->set('d', 'EMAIL', $aValue["email"]);
$oTpl->set('d', 'HOMEPAGE', $aValue["homepage"]);
$oTpl->next();
}
?>
<table width="100%" height="25" cellpadding="3" cellspacing="0" border="0">
<?php
echo $oTpl->generate('templates/feuser-liste.html');
?>
</table>
Viele Grüsse vom Bodensee, Uwe
Hihi, kleiner Fehler, es muss
lauten... Wollte Dich nur auf die Probe stellen ...
Kleiner Scherz, nein, hatte ich übersehen, sorry.
Gruß
HerrB
Code: Alles auswählen
$aData = array_csort($aData, "nachname", SORT_ASC);
Kleiner Scherz, nein, hatte ich übersehen, sorry.
Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Ich habs
so schauts aus:
Und so wie ich Dich nun kenne, hast Du noch Feinschliff-Vorschläge. Vielen Dank für das! Im Oktober ist ja Communido-Treffen (die neue Seite ist echt stark), da muss ich Dir ein gewaltig grosses Bier ausgeben.
Viele Grüsse, Uwe
so schauts aus:
Code: Alles auswählen
<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname : Frontenduser-Liste
* Author(s) : Uwe Köthen, pixelparts, HerrB
* Copyright : pixelparts, Uwe Köthen
* Created : 30.03.2006
************************************************/
cInclude('classes', 'class.frontend.users.php');
cInclude('classes', 'class.template.php');
$lGroupID = "CMS_VALUE[1]";
if (!is_numeric($lGroupID)) {
$lGroupID = 0;
}
$oTpl = new Template;
$oTpl->reset();
$oFEUsers = new FrontendUserCollection;
$oFEUsers->link("FrontendGroupMemberCollection");
$oFEUsers->setWhere("FrontendGroupMemberCollection.idfrontendgroup", $lGroupID);
#$oFEUsers->setOrder("FrontendUserCollection.username");
$oFEUsers->query();
unset($aData);
$aData = array();
$lID = 0;
while ($oFEUser = $oFEUsers->next()) {
$lID = $oFEUser->get("idfrontenduser");
#$aData[$lID]["username"] = $oFEUser->get("username");
$aData[$lID]["titel"] = $oFEUser->getProperty("titel", "address");
$aData[$lID]["vorname"] = $oFEUser->getProperty("vorname", "address");
$aData[$lID]["nachname"] = $oFEUser->getProperty("nachname", "address");
$aData[$lID]["ort"] = $oFEUser->getProperty("ort", "address");
$aData[$lID]["telefon"] = $oFEUser->getProperty("telefon", "address");
$aData[$lID]["email"] = $oFEUser->getProperty("email", "address");
$aData[$lID]["homepage"] = $oFEUser->getProperty("homepage", "address");
}
$sortierung = array_csort($aData, "nachname", SORT_ASC);
foreach ($sortierung as $lID => $aValue) {
#$oTpl->set('d', 'NAME', $aValue["username"]);
$oTpl->set('d', 'TITEL', $aValue["titel"]);
$oTpl->set('d', 'VORNAME', $aValue["vorname"]);
$oTpl->set('d', 'NACHNAME', $aValue["nachname"]);
$oTpl->set('d', 'ORT', $aValue["ort"]);
$oTpl->set('d', 'TELEFON', $aValue["telefon"]);
#$oTpl->set('d', 'MOBIL', $aValue["mobil"]);
$oTpl->set('d', 'EMAIL', $aValue["email"]);
$oTpl->set('d', 'HOMEPAGE', $aValue["homepage"]);
$oTpl->next();
}
?>
<table width="100%" height="25" cellpadding="3" cellspacing="0" border="0">
<?php
echo $oTpl->generate('templates/feuser-liste.html');
?>
</table>
Viele Grüsse, Uwe
Ha, zeitgleich. Siehste, Probe bestanden.
Das einzige, was man noch machen könnte, wäre das automatisch anhand der Plugin-Definitionen aufzubauen. Zumindest die Ermittlung der Daten aus der DB könnte man automatisieren. Bei der eigentlichen Feldern will man aber sicherlich selbst entscheiden, ob sie ausgegeben werden, oder nicht.
Da könnte man im Input eine Auswahl ermöglichen .... mmmh ... ich muss aufhören, zu denken...
Gruß
HerrB
SeptemberIm Oktober ist ja Communido-Treffen
Das einzige, was man noch machen könnte, wäre das automatisch anhand der Plugin-Definitionen aufzubauen. Zumindest die Ermittlung der Daten aus der DB könnte man automatisieren. Bei der eigentlichen Feldern will man aber sicherlich selbst entscheiden, ob sie ausgegeben werden, oder nicht.
Da könnte man im Input eine Auswahl ermöglichen .... mmmh ... ich muss aufhören, zu denken...
Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Ja, hab mir die Datei include.frontend_menu.php angesehen und gemerkt, dass dass so nicht funktionieren kann. Naja, bin halt nicht so fit wie Du.
Für den Input-Bereich gibt es sicher noch Einiges. Was aber sicher von interesse ist, ist eine Blätter-Funktion ... Diese Frontenduser-Geschichte ist ja auch ein tolles Feature, bringt aber erst wirklich was, wenn auch Module wie dieses zur Verfügung stehen. Vielleicht sieht sich ja jemand motiviert und baut ein paar Sachen an . Werde das die nächsten Tage mal unter Module einstellen.
Bei ca. 300 Usern ist aber Feierabend, da die Abfragen im BE einfach zu lange dauern. Wenn einer in den FEusern arbeitet (im BE), blockiert er die ganze Server-Power und ein zweiter Redakteur kann dann eigentlich nicht mehr ordentlich arbeiten (z. B. Artikel erstellen etc). Und auf die plugin-Suche mag ich nicht verzichten, da das einfach notwendig ist. Die Ausgabe im FE läuft aber zügig genug.
Für meine Anwendung dürfte es reichen. Danke noch mal!
Viele grüsse aus Konstanz (hier schneit es übrigens), Uwe
Für den Input-Bereich gibt es sicher noch Einiges. Was aber sicher von interesse ist, ist eine Blätter-Funktion ... Diese Frontenduser-Geschichte ist ja auch ein tolles Feature, bringt aber erst wirklich was, wenn auch Module wie dieses zur Verfügung stehen. Vielleicht sieht sich ja jemand motiviert und baut ein paar Sachen an . Werde das die nächsten Tage mal unter Module einstellen.
Bei ca. 300 Usern ist aber Feierabend, da die Abfragen im BE einfach zu lange dauern. Wenn einer in den FEusern arbeitet (im BE), blockiert er die ganze Server-Power und ein zweiter Redakteur kann dann eigentlich nicht mehr ordentlich arbeiten (z. B. Artikel erstellen etc). Und auf die plugin-Suche mag ich nicht verzichten, da das einfach notwendig ist. Die Ausgabe im FE läuft aber zügig genug.
Für meine Anwendung dürfte es reichen. Danke noch mal!
Viele grüsse aus Konstanz (hier schneit es übrigens), Uwe
Hallo Community!
Vielleicht hat jemand schon das Modul für Frontenduser-Datenpflege fertig gestellt?
Ich brauche so was, damit neuer User sich mit verschiedenen Eingaben anmelden könnte (Name, Vorname, Straße, PLZ…), dann müsste er per e-mail seine Login und Passwort bekommen (wie es im Newsletter-Handler Modul gemacht ist) und nach dem Login im Frontend seine Stammdaten ändern könnte.
Vielleicht hat jemand schon das Modul für Frontenduser-Datenpflege fertig gestellt?
Ich brauche so was, damit neuer User sich mit verschiedenen Eingaben anmelden könnte (Name, Vorname, Straße, PLZ…), dann müsste er per e-mail seine Login und Passwort bekommen (wie es im Newsletter-Handler Modul gemacht ist) und nach dem Login im Frontend seine Stammdaten ändern könnte.
Beste Grüße
abrek
abrek