Themning vom node title im View
Eingetragen von Miguelito (153)
am 22.09.2008 - 10:17 Uhr in
am 22.09.2008 - 10:17 Uhr in
Hallo,
brauche mal zur Abwechslung ein bisschen Hilfe von euch.
Ich habe einen View der mir ein Grid-view von einem bestimmten
Inhaltstyp erstellt. Als Felder habe ich ein Vorschaubild und den Titel mit
Link zum Node.
Jetzt habe ich die Aufgabe einen Titel(Link zum Node) eines bestimten Beitrags von diesem
Inhaltstyp eine kursive Formatierung zu geben.
Kann ich das irgendwie mit dem Argumenten machen oder muss ich ein extra theme
für den ganzen View machen.
Für Anregungen bin ich euch sehr Dankbar.
Schöne Grüße
Miguelito
- Anmelden oder Registrieren um Kommentare zu schreiben
mit CSS Formatierung
am 22.09.2008 - 10:46 Uhr
Inhaltstyp eine kursive Formatierung zu geben.
Sollte sich doch mit recht einfach CSS Formatierung loesen lassen.
Den Titel als Link zur Node kann man mit Sicherheit mittels CSS konkret ansprechen.
Einmal sollte es innerhalb der zu definierenden CSS Kaskade den Namen des View als konkrete CSS ID oder CSS KLasse geben.
Zum Anderen kann man eventuell, das haengt vom verwendeten Theme ab, im Body Tag eine Nodetypebezogene CSS Klasse verwenden/ansprechen um die CSS Kaskade bis hin zum Nodetitel-Link des View eindeutig zu identifizieren.
Bei dieser Aufgabenstellung ist also kein View-Template notwendig.
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Da geht noch was.
So einfach ist es dann doch
am 22.09.2008 - 12:26 Uhr
So einfach ist es dann doch nicht.
Hätte vielleicht mal erwähnen sollen das nur ein Wort aus dem Titel kursiv dargestellt werden soll.
Hast du dazu eine Idee, den mit CSS komme ich da nicht weit.
Ich habe es zum Beispiel im Menü hinbekommen,
indem ich in der Template.php und der Methode 'phptemplate_menu_item'
jeden Menülink abfrage und dann den gefunden Teil mit str_replace in
eingeschweiften 'kursiv' tag ersetze, aber ich weis es nicht wie ich es im View
mache.
Deswegen meine Frage, ob ich es mit dem Argument Handling Code irgendwie hinbekomme.
Kann ich da den title des jeweiligen Nodes abfragen?
Geiz ist nicht immer Geil, wenn die Qualität nicht stimmt. mickor solutions
Ein Wort aus dem Titel? Ich
am 22.09.2008 - 14:58 Uhr
Ein Wort aus dem Titel? Ich kann mir absolut nicht vorstellen, wie du das abfragen willst? Ist es eine feste Größe? Also z.B. immer das 2. Wort im Titel oder so? Sonst kann ich mir das einfach nicht vorstellen...
undpaul
Longevity Insights from Top Health Podcasts
Erfassbarkeit von Navigationselementen.
am 22.09.2008 - 15:09 Uhr
Die Loesung Deines Kursiv-Problemes ist ganz einfach:
Lass es sein mitten in einem Link kursive Worte zu haben.
Etwas drastischer formuliert.
Hast Du schon mal was von Usability und Lesbarkeit von Schrift gehoert?
Vor allem guter und schneller Lesbarkeit von Schrift bei Darstellung auf einem Bildschirm. Gehe dabei auch davon aus das nicht alle Besucher einer Website die Schrift so sehen (koennen) wie Du es kannst.
Ein andere Betrachtung dieser Thematik koennte man auch umschreiben mit: Erfassbarkeit von Navigationselementen.
PS
Solche Spielereien habe vor vielen Jahren als ich mit HTML angefangen habe auch gemacht.
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Da geht noch was.
Kunde ist König
am 22.09.2008 - 18:07 Uhr
Tja, da der Kunde das unbedingt haben will und sich auch nicht vom Gegenteil überzeugen will,
muss ich es umsetzen.
Es ist ein Node mit einem festen Titel, der auch nur einmal vorkommt, daher ist es auch leicht abzufangen.
Beim Titel des Nodes und beim Link im Menü habe ich es ohne Probleme gemacht.
Ich weis nur nicht wie ich es beim View hinkriege.
Ich muss nur wissen wie ich den jeweiligen Nodetitle im View abfange.
Dann würde ich das entweder als Themeing
im Template machen oder per Argument Handling Code.
Kann mir dann also bitte einer eine Hilfestellung geben?
Geiz ist nicht immer Geil, wenn die Qualität nicht stimmt. mickor solutions
Was ist das fuer ein View? Gibt er eine Liste aus?
am 22.09.2008 - 19:08 Uhr
Was ist das fuer ein View? Gibt er zur Anzeige eine Liste aus?
Wenn nicht, dann kannst Du ihn als Liste entsprechend ausgeben? Ist das fuer Dich moeglich?
Dann erstelle Dir mittels des Viewsmodules "Views Theme Wizard" ein Template fuer diesen View. In diesem Template solltest Du an den Titel rankommen.
PS
"Views Theme Wizard" funktioniert nur mit Listen-Views.
Man kann in einem View Teaseransichten auch als Listenansichten ausgeben. Man muss nur die entsprechenden Felder (bei einer Liste) verwenden - dann hat man mit einer Listenansicht auch Teaseransichten. Den List-Bullit kann man ja mit CSS killen.
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Da geht noch was.
Alles ist möglich function
am 22.09.2008 - 19:16 Uhr
Alles ist möglich
<?php
function THEMENAME_views_handle_field_node_title($fieldinfo, $fielddata, $value) {
$info = $fields[$field['fullname']];
if ($field['handler'] && function_exists($field['handler'])) {
return $field['handler']($info, $field, $data->$field['queryname'], $data);
}
if ($info['handler'] && is_string($info['handler']) && function_exists($info['handler'])) {
return $info['handler']($info, $field, $data->$field['queryname'], $data);
}
$data->$field['queryname'] = str_replace('blub', '<b>Blub</b>', $data->$field['queryname']);
return check_plain($data->$field['queryname']);
}?>
Fertig
--------------
Blog www.freeblogger.org: Deutscher IRC-Channel: irc.freenode.net #drupal.de ... Jabber-me: dwehner@im.calug.deXING
Oh man.
am 22.09.2008 - 21:53 Uhr
danke euch für eure Mühe, aber ihr scheint nicht wirklich begreifen was ich machen muss.
Ich habe geschrieben, dass ich ein Grid-View benutze, wegen der Tabellenansicht, die ich
gebraucht habe. Dazu habe ich geschrieben, dass zu jedem Node in der Ansicht jeweils ein
Bild und der Titel als Nodelink angezeigt wird. Diesen Titel möchte ich nur irgendwie abgreifen und
überprüfen, ob das der bestimmte Node mit dem bestimmten Link ist und dann die Formatierung einsetzen.
Ich habe das mit der Breadcrumbanzeige auch hinbekommen. Da habe ich in der template.php eine Themefunktion,
in der ich das genau tue. Ich weis nur nicht wie ich es mit dem Nodetitle aus dem View mache.
Den View habe ich schon fertig mit CSS Formatiert, so wie ich es haben will, ich muss nur noch
den Teil aus den einen Titel kursiv stellen, weil der Kunde das unbedingt will.
Geiz ist nicht immer Geil, wenn die Qualität nicht stimmt. mickor solutions
Screenshot
am 22.09.2008 - 21:59 Uhr
Tja, in diesem Fall sagt ein Bild mehr als tausend Worte: Wie soll es denn am Ende aussehen - oder wie sieht es jetzt aus? Dann können wir uns das leichter vorstellen. (off topic: Kult: Anja hat das Drupalchix Logo als Avatar. Schade, dass man das so klein kaum noch erkennen kann...)
Drupal - too unorganised to be a system
<?phpfunction
am 22.09.2008 - 22:14 Uhr
MH Das ganze bricht hier falsch um
http://pastebin.com/m6735a5ab
Probiere mal folgenden Code
themename wie immer ersetzten
In dem Code kannste vor return $output, die $output verändern und nach deinen Vorstellungen anpassen
--------------
Blog www.freeblogger.org: Deutscher IRC-Channel: irc.freenode.net #drupal.de ... Jabber-me: dwehner@im.calug.deXING
eigentor schrieb (off
am 23.09.2008 - 07:37 Uhr
(off topic: Kult: Anja hat das Drupalchix Logo als Avatar. Schade, dass man das so klein kaum noch erkennen kann...)
Gut aufgepasst :-)
undpaul
Longevity Insights from Top Health Podcasts
Danke für die Snippets, die
am 23.09.2008 - 07:47 Uhr
Danke für die Snippets, die aber leider beide nicht die gewünschte Wirkung gezeigt haben.
Ich habe es aber trotzdem hinbekommen und zwar hatte ich bereits eine Themefunktion
für einen Grid View dort habe ich die Felder abgefangen und dann das entsprechende ersetzt.
Anbei der Code, falls mal jemand auf die gleiche Blöde Idee kommt.
Der Fettgedruckte Part ist der neu eingefügte für das Kursive.
function THEMENAME_views_bonus_view_grid($view, $nodes, $type) {
drupal_add_css(drupal_get_path('module', 'views_bonus_grid') .'/views_bonus.css');
$fields = _views_get_fields();
$content = '<table class="view-grid view-grid-' . $view->name . '">';
// set default count.
$cols = $view->gridcount ? $view->gridcount : 6;
$count = 0;
$total = count($nodes);
foreach ($nodes as $node) {
$item = '';
if ($count % $cols == 0) {
$content .= '<tr>';
}
foreach ($view->field as $field) {
if ($fields[$field['id']]['visible'] !== FALSE) {
if ($field['label']) {
$item .= "<td class='view-label view-label-$field[queryname]'>" . $field['label'] . "</td>";
}
$item .= "<td class='view-field view-data-$field[queryname]'>" . views_theme_field('views_handle_field',
$field['queryname'], $fields, $field, $node, $view) . "</td>";
}
<strong>if($pos = strpos($item, 'SPORT'))
$item = str_replace('SPORT<', '<i>SPORT</i><',$item);</strong>
}
if($view->name == 'Galleriezusatz' && $count >= 1) {
$pos = strpos($item, 'src');
$i1 = substr($item, 0, $pos);
$i2 = substr($item, $pos);
$item = $i1 . 'width="0" height="0" ' . $i2;
}
$content .= "<td class='view-grid-item'><div class='view-item view-item-$view->name'>$item</div></td>\n";
$count++;
if ($count % $cols == 0 || $count == $total) {
if($count == $total && $count % $cols != 0){
for($i = 0; $i < ($cols - ($count % $cols)); $i++)
$content .= '<td colspan="2"> </td>';
}
$content .= '</tr>';
}
}
$content .= '</table>';
if ($content) {
return $content;
}
}
Danke nochmal für eure Mühe.
Gruß
Miguelito
Geiz ist nicht immer Geil, wenn die Qualität nicht stimmt. mickor solutions