Profil / Persönliche Daten...

Dodger77
Beiträge: 3626
Registriert: Di 12. Okt 2004, 20:00
Wohnort: Voerde (Niederrhein)
Kontaktdaten:

Beitrag von Dodger77 » Mo 3. Apr 2006, 17:23

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:
Nach einem kurzen Test, den ich vorhin gemacht hatte, funktioniert das auch.

Uwe
Beiträge: 258
Registriert: Mo 30. Jun 2003, 16:05
Wohnort: Konstanz
Kontaktdaten:

Beitrag von Uwe » Di 4. Apr 2006, 11:23

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:

Code: Alles auswählen

$oFEUsers = new FrontendUserCollection;
$oFEUsers->link("FrontendGroupMemberCollection");
$oFEUsers->setWhere("FrontendGroupMemberCollection.idfrontendgroup", $lGroupID);
$oFEUsers->setOrder("FrontendUserCollection.username");
$oFEUsers->query();
Der Nachname steht in con_properties -> type: nachname -> value

Viele Grüsse aus Konstanz, Uwe

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » Di 4. Apr 2006, 12:35

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
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

Uwe
Beiträge: 258
Registriert: Mo 30. Jun 2003, 16:05
Wohnort: Konstanz
Kontaktdaten:

Beitrag von Uwe » Di 4. Apr 2006, 13:55

ohje ohje, sollte es an der Sortierung scheitern ...

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();
}
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.

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>";	
}

?>
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

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » Di 4. Apr 2006, 14:12

Lass mir bis heute abend Zeit (und poste nochmal, wenn ich es vergesse).

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

Uwe
Beiträge: 258
Registriert: Mo 30. Jun 2003, 16:05
Wohnort: Konstanz
Kontaktdaten:

Beitrag von Uwe » Di 4. Apr 2006, 14:40

HerrB hat geschrieben:Lass mir bis heute abend Zeit (und poste nochmal, wenn ich es vergesse).
:D

Uwe
Beiträge: 258
Registriert: Mo 30. Jun 2003, 16:05
Wohnort: Konstanz
Kontaktdaten:

Beitrag von Uwe » Di 4. Apr 2006, 18:26

Hallo HerrB, hast Du schon was erreichen können?

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » Di 4. Apr 2006, 20:14

"Abend" ist für einen Programmierer ein dehnbarer Begriff. In Arbeit.

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

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » Di 4. Apr 2006, 20:50

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(); 
}
Ungetestet.

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

Uwe
Beiträge: 258
Registriert: Mo 30. Jun 2003, 16:05
Wohnort: Konstanz
Kontaktdaten:

Beitrag von Uwe » Mi 5. Apr 2006, 10:03

Danke HerrB,

habs gleich getestet und es funktioniert nach einigen kleinen Änderungen - bis auf die Sortierung :cry:

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>
Das setOrder habe ich auskommentiert, weil das sortiert noch. Sonst keine Fehlermeldungen.

Viele Grüsse vom Bodensee, Uwe

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » Mi 5. Apr 2006, 10:55

Hihi, kleiner Fehler, es muss

Code: Alles auswählen

$aData = array_csort($aData, "nachname", SORT_ASC);
lauten... Wollte Dich nur auf die Probe stellen ... :wink:

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

Uwe
Beiträge: 258
Registriert: Mo 30. Jun 2003, 16:05
Wohnort: Konstanz
Kontaktdaten:

Beitrag von Uwe » Mi 5. Apr 2006, 10:55

Ich habs :D

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>
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

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » Mi 5. Apr 2006, 10:57

Ha, zeitgleich. Siehste, Probe bestanden.
Im Oktober ist ja Communido-Treffen
September

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... :wink:

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

Uwe
Beiträge: 258
Registriert: Mo 30. Jun 2003, 16:05
Wohnort: Konstanz
Kontaktdaten:

Beitrag von Uwe » Mi 5. Apr 2006, 11:27

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

abrek
Beiträge: 103
Registriert: Mi 25. Jan 2006, 12:50
Kontaktdaten:

Beitrag von abrek » Mi 26. Apr 2006, 10:23

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.
Beste Grüße
abrek

Gesperrt