Views Filter erstellen
am 10.03.2008 - 15:45 Uhr in
Hi,
ich habe einen node-type mit den cck fields emfield (embedded video) und imagefield erweitert.
Ich habe mir einen View erstellt um alle nodes von diesem Typ auszugeben. Um mir nur nodes mit embedded Video anzeigen zu lassen habe ich im filter "Embedded Video: Video - Has Embedded Video (field_video)" eingestellt. Diese Einstellung brachte das gewünschte Ergebnis.
Das gleiche wollte ich jetzt auch mit imagefield machen, d.h. es sollen mir nur nodes angezeigt werden welche eine bild (imagefield) enthalten. Leider gibt es in der Filter-auswahl-liste keine option zu diesem cck feld.
Wie kann ich mir also einen geeigneten filter erstellen. Bzw. gibt es noch einen anderen Lösungsansatz um das gewünschte Ergebnis zu erhalten?
Vielen dank!
- Anmelden oder Registrieren um Kommentare zu schreiben
Workaround
am 10.03.2008 - 16:09 Uhr
Als workaround könntest du dir im CCK ein zusätzliches Feld (bspw. als Checkbox) anlegen.
Das klickst du an, wenn du einen Beitrag mit Bild erstellst.
Und in der View steht dir dieses Feld ja als Filterkriterium zur Verfügung.
vg
--
md - DrupalCenter
mdwp* :: Drupal Services
vg
md - DrupalCenter.de
mdwp* Drupal Consulting & Services
Gibts denn keine andere
am 10.03.2008 - 16:35 Uhr
Gibts denn keine andere Lösung? Ansonsten geh ich nämlich über hook_menu und erstell mein eigenes query, würde aber doch gerne einen View filter benutzen. Kennt jemenad eine Anleitung wie ich solch einen Filter erstellen kann?
Filter werden
am 10.03.2008 - 17:04 Uhr
Solche Filter werden im jeweiligen Modul erstellt/programmiert.
Am Ende der emfield.module Datei findest du den entsprechenden Code.
vg
--
md - DrupalCenter
mdwp* :: Drupal Services
vg
md - DrupalCenter.de
mdwp* Drupal Consulting & Services
so, ich hab mich mal
am 12.03.2008 - 16:05 Uhr
so, ich hab mich mal rangesetzt und meinen ersten views filter geschrieben :) sicherlich noch voller fehler, denn ganz habe ich die views api nicht verstanden. Grundlegend funktioniert es erstmal, ich würde es aber dennoch toll finden wenn mal jemand nen blick drüber werfen könnte und ggfs. fehler bzw. verbesserungen aufzeigen könnte.
imagefield.modul
+
function imagefield_views_tables() {
require_once dirname(__FILE__) .'/imagefield_views.inc';
return _imagefield_views_tables();
}
imagefield_views.inc
<?php
function _imagefield_views_tables() {
$tables = array();
$tables['files'] = array(
'join' => array(
'left' => array(
'table' => 'node',
'field' => 'nid',
),
'right' => array(
'field' => 'nid'
),
),
'fields' => array(
'filemime' => array(
'name' => t('Imagefield: Has Image'),
'help' => t('Display a Node with an imagefield')
),
),
'filters' => array(
'filemime' => array(
'name' => 'Imagefield: Has Image',
'operator' => array('=' => t('Imagefield: Has Image')),
'list' => 'views_handler_operator_yesno',
'list-type' => 'select',
'handler' => 'imagefield_views_handler_filter_is_not_null',
'help' => t('Selecting yes will choose only nodes with this field that successfully provide an imagefield.'),
),
)
);
return $tables;
}
/**
*
*/
function imagefield_views_handler_filter_is_not_null($op, $filter, $filterinfo, &$query) {
if ($op == 'handler') {
$query->ensure_table($filterinfo['table']);
$query->add_where("INSTR(files.filemime,'image') > 0");
}
}
?>
danke..