Bilder ersetzen Wörter

am 09.07.2008 - 11:18 Uhr in
Aloha zusammen,
keine Angst bei dem Thementitel fallen selbst mir die Haare aus, aber irgendwie wusste ich keine andere Umschreibung.
Folgeeeendes: Ich habe über CCK verschiedene Felder erstellt, unter anderem mit "select lists" (deutsche Bezeichnung?), in welcher sich nun sagen wir mal Option A B C D befinden. Nun kann der Nutzer aus diesen Optionen wählen. Unter anderem funktioniert das so bei einem so erstellten "News-Script". Ausgeben tue (tu tun?) ich das Ganze als Views Seite. Gemeint ist in diesem Fall das was man hier immer unter den News als Kategorie sieht: Link
Gleiches habe ich auch mit dem Standard-Profil-Modul von Drupal gemacht.
So was ich nun will ist das bei der Ausgabe dort nicht der Text aus der Liste als solches, sondern ein Bild anstelle dessen angezeigt wird. Ich weiß das sind nun zwei paar Schuhe, einmal CCK und einmal das Profil. Die Frage ist, gibt es eine Möglichkeit beides zu realisieren? Gibt es vllt eine CCK-Erweiterung die das Übernimmt, die ich übersehen habe? Dann wäre da aber immer noch das Profil. *kopfschmerz*
Für die Views-Ausgabe der CCK-Felder, bzw die entsprechende Node habe ich ein Template angelegt. Dort wird das Feld ja direkt angesprochen, vllt ließe sich da ja auch etwas über PHP machen, indem man vllt die einzelnen "Values" abgreift, und die Werte durch Bilder ersetzt, aber ich habe sowas von keine Ahnung von PHP. Ginge bestimmt mit if/else, etc, aber da hörts dann bei mir schon auf...
Kann mir hier vllt jemand weiter helfen, hat vllt sogar schon Erfahrung damit?
Ich bin gerade dabei die komplette Seite neu zu designen, diesmal ohne Tabellen (stolz ist, meine erste Tabellenlose HP!), und wenn es möglich ist würde ich es gern gleich mit ins Design einfliessen lassen! :)
Vielen, vielen Dank im Voraus,
Genesis
P.s.: Ab nächste Woche habe ich Urlaub, dann habe ich mir fest vorgenommen PHP zu lernen, ist ja wirklich peinlich. :) Andere fahren in den Urlaub ich lern PHP, Sprit kann eh niemand mehr bezahlen. ;)
- Anmelden oder Registrieren um Kommentare zu schreiben
Ich muss hier nochmal
am 14.07.2008 - 12:17 Uhr
Ich muss hier nochmal nachhaken, weils mir echt nicht aus dem Kopf geht. :)
Wenn keiner helfen kann, oder will ist das wirklich okay, aber Fragen kostet ja bekanntlich nichts. Wäre denn nicht folgendes möglich, und in genau solchen Momenten hasse ich das ich so wenig von PHP verstehe :
Ich theme meine Node, und in dieser platziere ich die select list:
<?php print $node->content['field_news_kategorie']['#value'] ?>
Kann der Code dann nicht irgendwie so angepasst werden:
if ['#value'][o]
{
echo "bild1.img";
}
if ['#value'][1]
{
echo "bild2.img";
}
else
{
echo "bild3.img";
}
Das ist wahrscheinlich ziemlicher Humbug, aber vom logischen Verständnis her müsste das doch irgendwie so möglich sein. :/
Ist echt nervig, habe schon wordfilter ausprobiert, aber das wollte auch nicht so recht...
Ich weiß nicht, ob ich Dir
am 14.07.2008 - 14:47 Uhr
Ich weiß nicht, ob ich Dir so richtig folgen konnte. Wenn Du anstelle eines oder mehrere vorgegebener Texte/Strings ein Bild ausgeben lassen möchtest, warum benennst Du die Bilder nicht nach den Strings und baust ein
<?php
print '<img src="' . base_path() . path_to_theme() . $string '.jpg" alt="" />'
?>
<?phpswitch
am 14.07.2008 - 15:09 Uhr
switch ($node->content['field_news_kategorie']['#value']) {
case 0:
echo "bild_0.jpg";
break;
case 1:
echo "bild_1.jpg";
break;
case 2:
echo "bild_3.jpg";
break;
default:
echo "bild_default.jpg";
}
Grüße,
Robin
Erst einmal...
am 15.07.2008 - 14:38 Uhr
... vielen Dank für die Hilfe!
Leider funktioniert das Ganze so nicht. :/ Er gibt immer nur den ersten Wert aus, egal was in der Select Liste angewählt wurde. Ich habe die "Ausgabe" erstmal in Test geändert, aber wie gesagt, er gibt stets nur "Test" aus, die anderen Sachen interessieren ihn gar nicht.
switch ($node->content['field_news_kategorie']['#value']) {
case 0:
echo "Test";
break;
case 1:
echo "Test2";
break;
case 2:
echo "Test3";
break;
case 4:
echo "Test4";
break;
default:
echo "Test5";
}
Jemand noch eine Idee? Ich bin ja mittlerweile echt geneigt aufzugeben, aber andersrum glaube ich das ich gar nicht so weit weg bin vom Ziel. Es ist um Mäuse melken...
Zitat: Jemand noch eine
am 15.07.2008 - 14:45 Uhr
Jemand noch eine Idee?
Ja. Versuche es mal mit
$node->content['field_news_kategorie'][0]['value']
Leider gleiches
am 15.07.2008 - 14:52 Uhr
Leider gleiches Ergebnis.
Immer nur "Test", sonst nichts. Er gibt immer nur den Wert bei "case 0" aus, egal an welcher Position dieser steht. :|
Ich hatte schon überlegt, ob man nicht die eigentlichen Werte, in diesem Fall:
Sternengarde
Ankündigungen
Warhammer
Sonstiges
nimmt, und sie vergleicht, und danach dann die Bilder ausgibt, aber da hörts dann auch schon auf bei mir. :)
Dann lass doch bitte mal den
am 15.07.2008 - 15:04 Uhr
Dann lass doch bitte mal den Inhalt der node mit
<pre><?php print_r($node) ?></pre>
ausgeben.
Also der Code gibt eine
am 15.07.2008 - 18:48 Uhr
Also der Code gibt eine ganze Menge Zeugs aus. :) Kurz zur Erklärung die "gethemte" Node gehört zu einem Inhaltstyp der sich Neuigkeiten nennt.
Der Code der Node sieht derzeit so aus. Ich weiß nicht perfekt, aber es ist mein erstes komplettes Div-Layout. :)
<div style="width:736px; clear:left;">
<div class="newskat"><div style="padding-top:48px; text-align:center; width:150px; padding-left:27px; color:#105e91;"><strong>
<?php print $node->content['field_news_kategorie']['#value'] ?></strong></div></div>
<div class="newstitel"><div style="padding-top:9px; padding-left:40px;"><a class="wb" href="<?php print $node_url ?>" title="<?php print $title ?>"><strong><?php print $title ?></strong></a></div><div style="padding-left:40px; color:#6a6555;"><?php print $node->content['field_untertitel']['#value'] ?></div></div>
<div class="newsbg"><div style="width:674px; padding-left:32px; overflow:auto; color:#9f9780; font-family:Verdana, Arial, Helvetica, sans-serif; font-size:10px;"><?php print $node->content['body']['#value']?></div></div>
<div style="float:left;" class="newslinks">
<div style="padding-left:60px; padding-top:20px;"><div style="float:left; width:96px; line-height:15px;"><?php print $node->content['field_kategorie_1']['#value'] ?><br><?php print $node->content['field_kategorie_2']['#value'] ?><br><?php print $node->content['field_kategorie_3']['#value'] ?></div><div style="float:left; width:168px; line-height:15px;"><?php print $node->content['field_link_1']['#value'] ?><br><?php print $node->content['field_link_2']['#value'] ?><br><?php print $node->content['field_link_3']['#value'] ?></div></div>
</div><div style="float:left;" class="newsautor"><div style="padding-top:20px; padding-left:24px;"><?php print t('!date — !username', array('!username' => theme('username', $node), '!date' => format_date($node->created))); ?></div></div>
</div>
Das ist die Ausgabe von:
<?php
print_r($node)
?>
stdClass Object
(
[nid] => 115
[vid] => 115
[type] => neuigkeiten
[status] => 1
[created] => 1210506811
[changed] => 1210507838
[comment] => 0
[promote] => 0
[sticky] => 0
[revision_timestamp] => 1210507838
[title] => Darkfall Release angekündigt!
[body] =>
Open Beta noch dieses Jahr
Sonstiges
Grüße!
Im aktuellen Dev Journal des MMORPG's auf warcry.com wurde der Release des MMORPG-Titels Darkfall Online für dieses Jahr angekündigt. Das Spiel lockt mit der scheinbar unendlichen Freiheit des Spielers und dem innovativen Kampfsystem.
Zum Q&A gehts hier.
Forum:
Kommentare
[log] =>
[format] => 3
[uid] => 4
[name] => Alberich
[picture] => files/avatare/picture-4.jpg
[data] => a:7:{s:7:"contact";i:1;s:14:"picture_delete";s:0:"";s:14:"picture_upload";s:0:"";s:16:"guestbook_status";s:1:"0";s:15:"guestbook_intro";s:0:"";s:20:"guestbook_send_email";s:0:"";s:5:"block";a:1:{s:4:"menu";a:1:{i:46;i:1;}}}
[signup] => 0
[field_untertitel] => Array
(
[0] => Array
(
[value] => Open Beta noch dieses Jahr
[view] => Open Beta noch dieses Jahr
)
)
[field_news_kategorie] => Array
(
[0] => Array
(
[value] => Sonstiges
[view] => Sonstiges
)
)
[field_kategorie_1] => Array
(
[0] => Array
(
[value] => Forum:
[view] => Forum:
)
)
[field_link_1] => Array
(
[0] => Array
(
[url] => http://www.sternengarde.de/forum/viewtopic.php?f=4&t=160&p=1486#p1486
[title] => Kommentare
[attributes] => N;
[view] => Kommentare
)
)
[field_kategorie_2] => Array
(
[0] => Array
(
[value] =>
[view] =>
)
)
[field_link_2] => Array
(
[0] => Array
(
[url] =>
[title] =>
[attributes] => N;
[view] =>
)
)
[field_kategorie_3] => Array
(
[0] => Array
(
[value] =>
[view] =>
)
)
[field_link_3] => Array
(
[0] => Array
(
[url] =>
[title] =>
[attributes] => N;
[view] =>
)
)
[0] => Array
(
[url] => http://www.sternengarde.de/forum/viewtopic.php?f=4&t=160&p=1486#p1486
[title] => Kommentare
[attributes] =>
)
[1] => Array
(
[url] =>
[title] =>
[attributes] =>
)
[2] => Array
(
[url] =>
[title] =>
[attributes] =>
)
[last_comment_timestamp] => 1210506811
[last_comment_name] =>
[comment_count] => 0
[taxonomy] => Array
(
)
[readmore] =>
[content] => Array
(
[field_untertitel] => Array
(
[#access] => 1
[#value] =>
Open Beta noch dieses Jahr
[#weight] => -4
[#printed] => 1
)
[field_news_kategorie] => Array
(
[#access] => 1
[#value] =>
Sonstiges
[#weight] => -3
[#printed] => 1
)
[body] => Array
(
[#weight] => 0
[#value] =>
Grüße!
Im aktuellen Dev Journal des MMORPG's auf warcry.com wurde der Release des MMORPG-Titels Darkfall Online für dieses Jahr angekündigt. Das Spiel lockt mit der scheinbar unendlichen Freiheit des Spielers und dem innovativen Kampfsystem.
Zum Q&A gehts hier.
[#printed] => 1
)
[field_kategorie_1] => Array
(
[#access] => 1
[#value] =>
Forum:
[#weight] => 1
[#printed] => 1
)
[field_link_1] => Array
(
[#access] => 1
[#value] =>
Kommentare
[#weight] => 2
[#printed] => 1
)
[field_kategorie_2] => Array
(
[#access] => 1
[#value] =>
[#weight] => 3
[#printed] => 1
)
[field_link_2] => Array
(
[#access] => 1
[#value] =>
[#weight] => 4
[#printed] => 1
)
[field_kategorie_3] => Array
(
[#access] => 1
[#value] =>
[#weight] => 5
[#printed] => 1
)
[field_link_3] => Array
(
[#access] => 1
[#value] =>
[#weight] => 6
[#printed] => 1
)
[#children] =>
Open Beta noch dieses Jahr
Sonstiges
Grüße!
Im aktuellen Dev Journal des MMORPG's auf warcry.com wurde der Release des MMORPG-Titels Darkfall Online für dieses Jahr angekündigt. Das Spiel lockt mit der scheinbar unendlichen Freiheit des Spielers und dem innovativen Kampfsystem.
Zum Q&A gehts hier.
Forum:
Kommentare
[#printed] => 1
)
[links] => Array
(
)
)
Die Kategorie um die es hier geht ist "Sonstiges".
Ich bin wirklich sehr dankbar für die Hilfe!
Grüße vom,
Genesis
Aha. Der Wert von
am 15.07.2008 - 18:59 Uhr
Aha. Der Wert von $node->field_news_kategorie[0][value] ist 'Sonstiges' und keine Zahl, was zu keiner Deiner case Bedingungen passt...
Also:
<?php
switch($node->field_news_kategorie[0][value]) {
case 'Sonstiges': echo 'Bild für Sonstiges'; break;
case 'Sonstwas': echo 'Bild für Sonstwas'; break;
case 'Undsonst': echo 'Bild für Undsonst'; break;
}
?>
Oder die Key|Value Paare des CCK Felds nochmal prüfen.
Ich weiß gar nicht wie ich
am 15.07.2008 - 19:09 Uhr
Ich weiß gar nicht wie ich mich bedanken soll. Wenn man bedenkt das mich dieses Problem verfolgt seit ich mit Drupal angefangen habe, und bisher auch mehrfache Fragen nicht geholfen haben, dann ist das wirklich nur noch perfekt wenn man dann zum Ergebnis kommt.
Bei einigen Dingen ist man schlichtweg verloren wenn man kein PHP versteht/kann, eben bei solchen Dingen. Etwas ähnliches steht mit nochmal bevor, aber ich trau mich ehrlich schon nicht mehr zu fragen. :| :)
Ich bin dir jedenfalls zu riesem Dank verpflichtet! Danke schön!! Das Ganze ermöglicht mir nun eine Art News-Script mit News Icons. Sicher gibt es elegantere Wege als das hier, z.B. über Taxonomie und Taxonomy_Image, aber da lerne ich wahrscheinlich schneller PHP als das zu verstehen. ;)
Einen schönen Abend noch,
Genesis
P.s.: Das heißt übrigens, das es funktioniert hat. :)
Das freut mich. Ich stehe
am 15.07.2008 - 19:14 Uhr
Das freut mich. Ich stehe auch noch ganz am Anfang und vor einigen Hürden (siehe http://www.drupalcenter.de/node/11327), aber das wird schon noch.
Ja, habe ich schon gelesen
am 15.07.2008 - 19:26 Uhr
Ja, habe ich schon gelesen gehabt, aber bei Taxonomy setzt es bei mir ganz aus. Ich habe mich da bisher nie mit beschäftigt wenn ich ehrlich bin, vllt auch weil ich es nie brauchte, oder zumindest glaubte es nicht zu brauchen. Am Ende bin ich bisher so ausgekommen, und eigentlich habe ich alles was ich brauche.
Jetzt muss ich wirklich dringend in absehbarer Zeit PHP lernen, sonst stecke ich immer wieder in solchen Sackgassen, und bin auf die Hilfe anderer angewiesen, was sicherlich auch nicht wenige nervt. :) Ich habe schon angefangen, aber es kommt immer wieder was dazwischen. Ich bin eigentlich 3D-Designer, da bleibt für so Privatsachen manchmal keine Zeit, und schwupps hat man das gelernte schon wieder verdrängt. :)
Ich werde später, oder morgen noch ein Thema starten, in dem es um etwas ganz Ähnliches wie hier geht, vllt magst du es dir ja mal ansehen, das wäre die letzte Hürde. Aber kein Stress, wenns nicht klappt dann klappts nicht. Mir haben wirklich schon viele Leute hier bei für mich kniffligen Problemen geholfen, und man kann wahrscheinlich nicht immer auf Hilfe hoffen. :)
Ich wünsche dir jedenfalls das du dein Problem gelöst bekommst. Kleiner Tipp am Rande vllt: Ich habe sehr viel von meinem (Halb)Wissen auf der "offiziellen" Seite zusammen getragen, da dort nicht selten einfach vom Aufkommen mehr los ist, und von daher auch mehr Themen behandelt werden. Vllt findest du ja dort auch Hilfe für deine Problematik!
Grüße vom,
Genesis
Puh, ganz schön ins Schwafeln gekommen! :)