views: ein Feld anzeigen wenn ein anderes einen bestimmten Inhalt hat...

am 18.11.2011 - 14:55 Uhr in
Ich möchte ein Feld nur anzeigen wenn ein anderes einen bestimmten Inhalt hat.
Wie geht man das vor?
- Anmelden oder Registrieren um Kommentare zu schreiben
Sieh Dir das Modul
am 18.11.2011 - 15:14 Uhr
Sieh Dir das Modul [do:views_customfield Views_CustomField] an. Damit kannst Du das über etwas PHP-Code erreichen.
Beste Grüße
Werner
Das sieht ja gut aus.
am 18.11.2011 - 23:26 Uhr
Das sieht ja gut aus. Danke.
So kann ich das Feld ansprechen:
<?php
if($data->node_data_field_quelle_field_quelle_url[0]['url']==''){
print 'aha';
}else{
print $data->node_data_field_quelle_field_quelle_url[0]['url'];
}
?>
Aber wie kann man diese Feld komplet formatiert ausgeben, wie gewohnt?
Das kannst Du über die
am 19.11.2011 - 09:46 Uhr
Das kannst Du über die [api:l l-Funktion] erreichen.
Beste Grüße
Werner
hm, l() lässt sich nicht
am 19.11.2011 - 10:47 Uhr
hm, l() lässt sich nicht aufrufen.
könnte man nicht einfach der Wert eines Feldes überschreiben, um seine übliche Ausgabe zu verhindern. Sozusagen "Von der Anzeige ausschließen" in obige Bedingung einbauen.
Und wie ginge das im custom field?
Wieso sollte es so nicht
am 19.11.2011 - 10:57 Uhr
Wieso sollte es so nicht gehen?
<?php
if($data->node_data_field_quelle_field_quelle_url[0]['url']==''){
print 'aha';
}else{
print l($data->node_data_field_quelle_field_quelle_url[0]['url']);
}
?>
Du hast im Custom Feld nun mal keine andere Möglichkeit als Theming-Funktionen direkt aufzurufen.
Beste Grüße
Werner
War mein Fehler, geht doch
am 19.11.2011 - 11:48 Uhr
War mein Fehler, geht doch :-)
Es wird aber nicht das erreicht was erreicht werden soll. Der Link wird von website screeshot dafür genutzt, aus dem Link einen screenshot zu machen, was auch klappt. Kann man im custom field auch den Link auch anders formatieren, also mit screenshot Format?
Mit PHP kannst Du
am 19.11.2011 - 12:01 Uhr
Mit PHP kannst Du letztendlich alles erreichen. Wie hat der Quellcode hinter dem Link denn vorher ausgesehen? So kann ich Dir nicht sagen, wie das zu codieren ist.
Beste Grüße
Werner
Wird wohl diese Funktion
am 19.11.2011 - 12:17 Uhr
Wird wohl diese Funktion sein
<?php
// TODO: names of formatters and theme functions!!!
/** implementation of hook_field_formatter_info
return an array of formatter definitions
**/
function link_screenshot_field_formatter_info() {
$lightbox_ispresent = module_exists('lightbox2') || module_exists('jLightbox');
$formatters = array();
$formatters['plain'] = array(
'label' => t('Screenshot'),
'field types' => array('link'),
);
$formatters['link'] = array(
'label' => t('Screenshot linked to URL'),
'field types' => array('link'),
);
if (module_exists('imagecache')) {
foreach(imagecache_presets() as $preset) {
$formatters['plain_'. $preset['presetname']] = array(
'label' => t('Screenshot (@preset)', array('@preset' => $preset['presetname'])),
'field types' => array('link'),
);
if(!$lightbox_ispresent){
$formatters['link_'. $preset['presetname']] = array(
'label' => t('Screenshot (@preset) linked to URL', array('@preset' => $preset['presetname'])),
'field types' => array('link'),
);
}
}
}
if (module_exists('imagecache') && $lightbox_ispresent){
foreach(imagecache_presets() as $preset) {
$formatters['popup_'. $preset['presetname']] = array(
'label' => t('Popup screenshot (@preset) no URL link', array('@preset' => $preset['presetname'])),
'field types' => array('link'),
);
$formatters['popup_link_'. $preset['presetname']] = array(
'label' => t('Popup screenshot (@preset) + URL link', array('@preset' => $preset['presetname'])),
'field types' => array('link'),
);
}
}
return $formatters;
}
?>