Besonderes Nutzerprofil per Inhaltstyp
am 29.08.2007 - 10:08 Uhr in
Hallo,
ich habe über das Tutorial http://shellmultimedia.com/node/274 eine erweiterte Nutzeransicht erstellt. Man kann mehr über isch anzeigen lassen und die Freunde werden direkt eingeblendet. Das klappt soweit ganz gut.
Problem: Es gibt jede Menge Felder, die ich nicht benötige. Dafür benötige ich andere Felder, die nicht vorhanden sind.
Ich kann bei dem Inahltstyp"User Profile (uprofile)" zwar Felder hinzufügen, aber diese werden bei den Nutzern nichteinmal zum ausfüllen angezeigt. Ausnahme: ich packe sie in eine vorhandene Gruppe. Dann ist das Feld zur Eingabe vorhanden, aber es wird nicht angezeit.
In der Datei "node-uprofile.tpl.php" habe ich auch schon gewerkelt, aber es klappt nicht. Scheint was mit dne Gruppen und der Ansicht zutun zu haben.
Kennt jemand das Programm und hat eine Ahnung?
Danke und Gruß
Vielfrager
- Anmelden oder Registrieren um Kommentare zu schreiben
node-uprofile-edit.tpl.php bearbeiten
am 29.08.2007 - 10:59 Uhr
Hallo!
Also so wie ich dich verstehe, möchtest du einfach neue Felder einfügen? Bei mir hat das wunderbar geklappt. Probier doch mal, die node-uprofile-edit.tpl.php zu löschen.
Gruß
Roman
Hi Roman, ich habe die
am 29.08.2007 - 12:26 Uhr
Hi Roman,
ich habe die node-uprofile-edit.tpl.php mal gelöscht, danach waren leider alle Felder unter "edit Profile" weg und man konnte nichts mehr eingeben. Wie hast Du es denn gemacht?
Gruß
vielfrager
Nun musst du in der
am 29.08.2007 - 12:38 Uhr
Nun musst du in der Template.php noch folgendes entfernen:
<?php
function phptemplate_node_form($form) {
if ($form['#node']->type == 'uprofile') {
return _phptemplate_callback('node-uprofile-edit', array('form' => $form));
}
else {
return theme_node_form($form);
}
}
?>
Gruß
Roman
Hi Roman, sehr guter Tipp,
am 29.08.2007 - 13:09 Uhr
Hi Roman,
sehr guter Tipp, ich bekomme jetzt die Eingabefelder angezeigt, so wie ich es möchte. Nächstes Problem: Wie werden sie dann auch in der Nutzerübersicht angezeigt? welche Datei muss ich da genau bearbeiten?
Danke und Gruß
Vielfrager
Aha, verstehe. Bin gerade
am 29.08.2007 - 13:23 Uhr
Aha, verstehe. Bin gerade selbst ein Stück weiter gekommen. Schreibe das hier mal für alle auf, die ein ähnliches Problem haben.
Die Aufteilung der Punkte erfolgt anch den Gruppen, die man im Profile festlegt. Das ist logisch. Ändern kann man diese Anordnung über die "node-uprofile.tpl.php". dort ist ja eine Art HTML-Struktur, in die man an der richtigen Stelle folgenden Code eingibt (hier: die Profil-Gruppe "links"):
<div id="user-links">
<h3>Other places I hang out:</h3>
<?php
if (is_array($node->content['group_links'])) {
foreach ($node->content['group_links'] as $key => $value) {
if (is_array($value)) {
if (array_key_exists('#value', $value)) {
print $value['#value'] ;
}
}
}
}
?>
</div>
Jetzt fehlt nur noch der Tipp, wie ich die Taxonomy an diese Punkte setze ;-)
Danke und Gruß
Felix
HMMM, laos ich habe jetzt
am 29.08.2007 - 15:49 Uhr
HMMM, laos ich habe jetzt die ganze zeit herumprobiert, aber leider ohne Erfolg. Ich erstelle Kategorien, verbinde sie mit dem Inhaltstypen und das wars dann. Selbst wenn ich bei der "node-uprofile.tpl.php" den Anfang ändere:
// Split the taxonomy up into one variable per vocabulary
$level = array();
$hobbies = array();
$reading = array();
$music = array();
$video = array();
$gender = array();
foreach ((array)$node->taxonomy as $item) {
switch ($item->vid) {
case 6:
array_push($level, l($item->name, "taxonomy/term/" . $item->tid));
break;
case 2:
array_push($hobbies, l($item->name, "taxonomy/term/" . $item->tid));
break;
case 3:
array_push($reading, l($item->name, "taxonomy/term/" . $item->tid));
break;
und entsprechend die Taxonomynummer ändere, tut sich nichts. Was muss ich tun, wo muss ich den code ändern?
Danke + Gruß
vielfrager
Hallo, Lösung fast
am 30.08.2007 - 09:23 Uhr
Hallo,
Lösung fast gefunden.
Wer in dieser Ansicht taxonomierte Begriffe wünscht (also Begriffe, auf die man klicken kann um zu sehen, ob auch andere Nutzer diese Begriffe haben), der muss folgendes tun:
1. Kategorien festlegen. Hier wird auch festgelegt, ob man freetagging, oder doch lieber eine Liste angibt.
2. node-uprofile.tpl.php editieren. Dort gibt es sowohl für den Teaserblock (Kurzansicht), als auch für die Komplette Ansicht einen Teil, in dem die Kategorien festegelegt sind:
// Split the taxonomy up into one variable per vocabulary
$level = array();
$hobbies = array();
$reading = array();
$music = array();
$video = array();
foreach ((array)$taxonomy as $item) {
switch ($item->vid) {
case 10:
array_push($level, l($item->name, "taxonomy/term/" . $item->tid));
break;
case 2:
array_push($hobbies, l($item->name, "taxonomy/term/" . $item->tid));
break;
case 3:
array_push($reading, l($item->name, "taxonomy/term/" . $item->tid));
break;
case 8:
array_push($music, l($item->name, "taxonomy/term/" . $item->tid));
break;
case 5:
array_push($video, l($item->name, "taxonomy/term/" . $item->tid));
break;
}
}
Die Nummer, die hinter "case" steht, ist die Kategorien-Nummer. Man erfährt sie, indem man z.B. in der Kategorienübersicht über das Feld "Vokabular bearbeiten" geht ohne zu klicken, dann steht die Nummer unten im Browser in der Statusleiste an letzter Stelle.
Diese Nummer wird dann in einem "case" angegeben.
Jetzt muss man nur noch die Ausgabe an die richtige (gewünschte) Stelle legen. Z.B. hat im Beispiel die Variable "$level" die Kategoriennummer 10. Man kann es jetzt im Quelltext z.B: so einfügen:
<div id="user-interests">
<h3>Mein Wissens-Level:</h3>
<?php
print $node->content['field_interests']['#value'];
if (!empty($level)) {
print '<strong>Mein Wissen:</strong> ' . implode(", ", $level) . '<br />';
}
?>
Was jetzt bei mir noch nicht soweit funktioniert, ist dass dann auch wiklich andere Leute angezeigt werden, denn die Kategorien bleiben leer.
Mal sehen...
OK, also das taxonomy
am 30.08.2007 - 11:14 Uhr
OK, also das taxonomy funktioniert doch, nur nicht beim Administrator. Ist offenbar ein Fehler, an dem gerade gearbeitet wird.