Eigener Views Sort Handler
am 07.09.2010 - 12:06 Uhr in
Hi,
kann mir jemand sagen, wie ich einen Views Sort Handler richtig schreibe?
Was ist dafür nötig? Welche hooks? Wie sieht die query Funktion richtig aus?
Das ist meine views_data Funktion soweit.
<?php
function cs_vote_views_data()
{
$data = array();
$data['votingapi_vote']['table']['group'] = t('Cs_Vote');
$data['votingapi_vote']['table']['join'] = array(
'node' => array(
// 'left_field' => 'nid',
'field' => 'nid',
'left_table' => 'votingapi_vote',
'left_field' => 'vote_id',
),
);
$data['votingapi_vote']['numeric_field'] = array(
'title' => t('Numeric field'),
'help' => t('Just a numeric field.'),
'sort' => array(
'handler' => 'cs_vote_views_handler_sort_monthly_votes',
),
);
}
?>
Und das mein jetztiger sort handler:
<?php
class cs_vote_views_handler_sort_monthly_votes extends views_handler_sort {
function query() {
global $db_type;
switch ($db_type) {
case 'mysql':
case 'mysqli':
$t=getdate();
$randseed = mktime(0, 0, 0, $t[mday], $t[mon], $t[year]);
$formula = 'RAND('.$randseed.')';
break;
}
if (!empty($formula)) {
$this->ensure_table($this->table, $this->relationship);
$this->query->add_orderby(NULL, /*$formula*/'', $this->options['order'], /*'_' . */$this->field);
}
}
}
?>
Leider weiß ich nicht wirklich weiter. Kann mir jemand helfen?
Wenn ich den aktuellen Sort handler benutzen möchte bekomme ich immer folgende Fehlermeldung:
user warning: Unbekanntes Tabellenfeld 'vote' in order clause query: SELECT node.nid AS nid, votingapi_cache_node_points_sum.timestamp AS votingapi_cache_node_points_sum_timestamp, value, value_type FROM node node LEFT JOIN votingapi_cache votingapi_cache_node_points_sum ON node.nid = votingapi_cache_node_points_sum.content_id AND (votingapi_cache_node_points_sum.content_type = 'node' AND votingapi_cache_node_points_sum.value_type = 'points' AND votingapi_cache_node_points_sum.function = 'sum') ORDER BY vote ASC in /var/www/web64/html/cloudscapes/sites/all/modules/views/includes/view.inc on line 775.
- Anmelden oder Registrieren um Kommentare zu schreiben
Neue Kommentare
vor 18 Stunden 16 Minuten
vor 23 Stunden 35 Minuten
vor 1 Tag 2 Stunden
vor 1 Tag 13 Stunden
vor 1 Tag 16 Stunden
vor 1 Tag 16 Stunden
vor 1 Tag 16 Stunden
vor 1 Tag 16 Stunden
vor 1 Tag 16 Stunden
vor 1 Tag 16 Stunden