die Reihenfolge im Profil
Eingetragen von Piet (500)
am 21.01.2008 - 18:35 Uhr in
am 21.01.2008 - 18:35 Uhr in
Habe in den Profilen folgende Nodes ausgegeben wenn man ein Profil aufruft:
1.: Ganz oben> Benutzerbild
2.: darunter> Gallerie 10 thumbnails, wenn man auf ein Bild klickt erscheint Full Size ( mit thickbox realisiert).
3.: darunter> Ein Video, auch hier wenn man druaft klickt läd und spielt der player Datei ab.
4.: hier werden die Profileangaben -adresse, homepage etc.- (profile.module) ausgegeben.
Die Frage: wie kann ich die Reihenfolge tauschen, dass z.B.: Nr: 4 (Profilangaben)neben oder unter neben Nr: 1
erscheint, die Gewichtung?
- Anmelden oder Registrieren um Kommentare zu schreiben
eventuell via minimodul?
am 22.01.2008 - 13:11 Uhr
eventuell via minimodul? wäre es damit machbar?
Hat denn keiner eine Ahnung????
kannst du nicht einfach das
am 22.01.2008 - 13:27 Uhr
kannst du nicht einfach das Profil Themen über user-profile.tpl.php -> bezüglich der Dateibennenung bin ich nicht ganz sicher.
______________________________
Yet Another Drupal Site (YADS)
http://www.rapsli.ch
******************************
dan müsste ich ja komplett
am 23.01.2008 - 00:56 Uhr
dann müsste ich ja komplett alles neu erstellen, und da weiss ich auch nicht wie man dann alles ausgibt. Gibt es dazu ein tutorial?
Oder: wenn ich contemplate installiert habe und ich ja verschiedene Nodes als Inhaltypen habe wie:
Videoseite, fotogallery usw. und diese in der Usernode/ Profil ausgegeben werden, kann ich
dann mit Contemplate mit hinzufügen von neuen ID´s das ganze struckturieren?
Ich weiss nicht recht wie es gehen soll, wenn es denn möglich ist.
???
wirklich kein Drupalprofi
am 23.01.2008 - 23:46 Uhr
wirklich kein Drupalprofi eine Meinung dazu?
Wirklich süss
am 24.01.2008 - 00:17 Uhr
Wirklich süss, wie Du hier die Profis rauskitzeln willst :)
Die folgende Funktion solltest Du in die template.php Deines Themes einfügen, wobei die zweite Zeile wieder weg muss (steht ja auch da) - die dient nur dazu, Dir den Anhaltspunkt zu liefern, dass Du mit Zugriff auf das $fields-Array die Reihenfolge anders ausgeben könntest. Das ist aber kein Profi-Tipp, obwohl Du einen wolltest. Denn man kann sicher noch früher ansetzen und das $fields-Array neu gewichten bzw. umsortieren, aber da hab' ich jetzt als Nicht-Profi, der ich nämlich in Wahrheit bin, keine Lust nachzugucken.
<?php
function phptemplate_user_profile($account, $fields) {
print_r($fields); // !!diese Zeile muss wieder weg!!
$output = '<div class="profile">';
$output .= theme('user_picture', $account);
foreach ($fields as $category => $items) {
if (strlen($category) > 0) {
$output .= '<h2 class="title">'. check_plain($category) .'</h2>';
}
$output .= '<dl>';
foreach ($items as $item) {
if (isset($item['title'])) {
$output .= '<dt class="'. $item['class'] .'">'. $item['title'] .'</dt>';
}
$output .= '<dd class="'. $item['class'] .'">'. $item['value'] .'</dd>';
}
$output .= '</dl>';
}
$output .= '</div>';
return $output;
}
?>
Hoppla
am 24.01.2008 - 14:04 Uhr
Da läuft mir doch eben diese Funktion über den Weg:
<?php
function hook_profile_alter(&$account, &$fields) {
foreach ($fields AS $key => $field) {
// do something: i. e. sort new
}
}
?>
Das gehört nun aber zwar in ein Modul, ist aber der richtigere Ort für die Änderung, siehe auch die offizielle Drupal-Description:
Perform alterations profile items before they are rendered. You may omit/add/re-sort/re-categorize, etc.
ob Profi oder nicht bin für
am 24.01.2008 - 14:59 Uhr
ob Profi oder nicht bin für Hilfestellungen dankbar! Aber liest sich professioneller wie meine Erfahrungen.
zu deinem ersten Kommentar: benötige ich dazu auch eine user-profile.tpl.php im Theme? denn ich habe keines und
ich hatte ein tutorial mitgemacht in dem praktisch mit dem user-profile.tpl.php alle ausgaben neu defeneirt werden und
die alten gelöscht oder ignoriert werden. Leider aber gab diese version gar nichts aus ergebniss = :-).
Wie auch immer> der letze beitrag: dieses kommt ja in ein eigenes Sitemodul oder minimodul, denke ich?
Wir kann ich allerdings meine einzelnen nodes ( bildergallery, video ) die im Profil ausgegeben werde ermitteln und dann im Minimodulscript gewichten? "nett grins" :-)
PHP-Array-Geek
am 24.01.2008 - 20:13 Uhr
benötige ich dazu auch eine user-profile.tpl.php im Theme?
Nein.
der letze beitrag: dieses kommt ja in ein eigenes Sitemodul oder minimodul, denke ich?
Ja - wenn Du diese sauberere Lösung vorziehst, dann schon. Man könnte aber aus Gründen der Bequemlichkeit und wenn Du keinen externen Themer zu bemühen vorhast (sprich: wenn Du keine saubere Coding-Theme-Schnittstelle brauchst), die template.php-Lösung verwenden.
Wir kann ich allerdings meine einzelnen nodes ( bildergallery, video ) die im Profil ausgegeben werde ermitteln und dann im Minimodulscript gewichten? "nett grins" :-)
Das ist reines PHP-Array-Sort-Handling und hat nicht so sehr viel mit Drupal zu tun. Wie Dein zu sortierendes Array aussieht, verrät Dir die zweite PHP-Zeile meines ersten Lösungsvorschlags. Ansonsten musst Du eben mal gucken, wie man Arrays sortiert.
Falls Du nicht weiterkommst, poste mal Deine print_r-Ausgabe hierher und vielleicht findet sich ein PHP-Array-Geek, der Dir das macht.
HI tumplingmug,
am 28.01.2008 - 16:09 Uhr
HI tumplingmug,
leider komme ich nicht weiter trotz deiner superhilfe, ich poste mal den quelltext eines profils, vielleicht sagt dir das dann was, habe versucht die ID rauzulesen, finde aber die passenden nicht...... :((
EDIT:
Code entfernt -- pebosi
ist wohl doch zuviel info
am 29.01.2008 - 16:22 Uhr
ist wohl doch zuviel info auf einmal??? Nun ich habe eins festgestellt, da ich USERNODE verwende und die Inhaltstypen: bildergalerie und video in den profilen ausgegeben werden haben sie alle als ID: dd .nodeprofile-nodeprofile-display in dem dann unter id nochmal: ".nodeprofile-display" steckt, aber eine eigene ID wie z.B.: video-form, haben sie nicht.
Wie is dies also zu ermitteln um gewichten zu können?
EDIT: kein Thema, da es anscheinend wenig gebracht hat, aber du als Gurru pebobsi hättest mal ein kleines Kommentar zu meinem Problemchen schreiben können.
Freie Sortierung bei Userprofil-Anzeige
am 29.01.2008 - 20:02 Uhr
Falls Du nicht weiterkommst, poste mal Deine print_r-Ausgabe hierher
Hattest Du das nun gemacht? Das kann ja kein Roman gewesen sein?! Na dann hoffe ich mal, dass pebosi meinen Beitrag stehen lässt...
Dies ist doch noch der Versuch einer Erklärung für alle diejenigen, die ihre Userprofil-Einträge umsortieren wollen:
also angenommen, Ihr habt die Standard-Kategorie 'Account' (erkennbar am, falls übersetzt, deutschen Output 'Verlauf') und eine weitere, selbstdefinierte Kategorie 'account2' via Profile-Modul angelegt, dann würde jetzt standardmässig 'account2' vor 'Verlauf' ausgegeben. Nun ergibt
<?php print_r($fields); ?>
, eingefügt in die phptemplate_user_profile()-Funktion, welche ja in die template.php kopiert gehört (wie oben erwähnt und unten noch einmal vervollständigt angegeben), folgendes:Array
(
[Verlauf] => Array
(
[history] => Array
(
[title] => Mitglied seit
[value] => 11 Wochen 6 Tage
[class] => user-member
)
)
[account2] => Array
(
[profile_test] => Array
(
[title] => test
[value] => aaa
[class] => profile-profile_test
)
)
)
Wenn ich jetzt 'account2' und 'Verlauf' bei der Ausgabe im Profil vertauscht anzeigen will, muss ich folgende Funktion in die template.php einfügen:
<?php
function phptemplate_user_profile($account, $fields) {
/*** die beiden Schrägstriche zu Beginn der folgenden Zeile entfernen,
um print_r zu aktivieren: ***/
// print_r($fields);
// *** BEGINN: DEFINITION DER EIGENEN REIHENFOLGE *** //
$new['Verlauf'] = $fields['Verlauf'];
$new['account2'] = $fields['account2'];
$fields = $new;
#// *** DEFINITION: ENDE *** //
$output = '<div class="profile">';
$output .= theme('user_picture', $account);
foreach ($fields as $category => $items) {
if (strlen($category) > 0) {
$output .= '<h2 class="title">'. check_plain($category) .'</h2>';
}
$output .= '<dl>';
foreach ($items as $item) {
if (isset($item['title'])) {
$output .= '<dt class="'. $item['class'] .'">'. $item['title'] .'</dt>';
}
$output .= '<dd class="'. $item['class'] .'">'. $item['value'] .'</dd>';
}
$output .= '</dl>';
}
$output .= '</div>';
return $output;
}
?>
Jetzt wird 'Verlauf' vor 'account2' ausgegeben – und das kann ich nun mit beliebig vielen Kategorien machen. Ich erkläre zeilenweise einfach
<?php $new['KatName'] = $fields['KatName']; ?>
in meiner gewünschten Reihenfolge und schliesse die Sortierung mit<?php $fields = $new; ?>
ab, damit ich den nachfolgenden PHP-Code nicht ändern muss.Wie geht das?
am 04.06.2008 - 16:21 Uhr
Hallo Piet,
ich bin Drupal Anfänger, und würde gerne eine Profilseite, wie Du sie beschreibst, realisieren.
Also 1.) Benutzerbild, 2.) Gallerie mit 10 Thumbs 4.) Profilangaben
Kannst Du mir ein paar Tipps geben? Welche Module brauche ich dafür?
Welche Dokumentation, Tutorials etc. hast Du gelesen ?
Über Deine Hilfe würde ich mich freuen.
Gruß
Piet
Skating away on the thin ice of a new day ...
hi, für das Benutzerbild
am 04.06.2008 - 19:56 Uhr
hi,
für das Benutzerbild hast du ja im Corebereits alles, einfach unter >admin/user/settings: Benutzerbild aktivieren.
Für eine Galerie nehme ich immer das Modul: Image Cache, Thickbox, Views und CCK, hier hast du ein TUT für:
http://chripf.tibit.at/2007/07/einfach-wartbare-galerien-unter-drupal-mi...