[gelöst] Signup: Verbleibende Plätze
Eingetragen von SJoseph (2)
am 06.10.2009 - 10:17 Uhr in
am 06.10.2009 - 10:17 Uhr in
Guten Tag,
ist mein erster Post hier und ich hoffe, dass ich das richtige Forum getroffen habe. Ich setze im Moment am einen Veranstaltungsplan auf Drupal um und versuche jetzt die verbleibenden Plätze in einem View anzeigen lassen. Allein mit Views funktioniert das ja nicht. Ist das dann durch eine Kombination mehrerer Module möglich oder nicht.
Die Suche habe ich verwendet und Google ist mir auch bekannt.
Freu mich auf Antwort ^^
SJoseph
- Anmelden oder Registrieren um Kommentare zu schreiben
verbleibende Plätze
am 06.10.2009 - 10:45 Uhr
Hallo.
Mit signup und views ist zwar eine ganze Menge möglich, dies jedoch leider (noch) nicht.
Du könntest Dir jedoch ein zusätzliches Feld zum View hinzufügen (mittels Views Custom Field), in dem Du mittels eigener Funktion die Anzahl der noch verbleibenden Plätze abfragst.
Die Funktion könnte dann in etwa so aussehen:
<?php
function _signup_get_remaining($nid) {
$signup = db_fetch_object(db_query("SELECT * FROM {signup} WHERE nid = %d", $nid));
if ($signup->close_signup_limit == 0) {
return t('No limit');
}
$effective_total = db_result(db_query("SELECT SUM(count_towards_limit) FROM {signup_log} WHERE nid = %d", $nid));
return ($signup->close_signup_limit - $effective_total);
}
?>
Das gibt Dir dann die Anzahl der effektiv verbleibenden Anmeldungen aus.
hth,
Stefan
--
sei nett zu Deinem Themer
Tipp: Beachte die Verhaltensregeln des DrupalCenter.
Danke stBorchert, ich habe
am 06.10.2009 - 11:12 Uhr
Danke stBorchert, ich habe es mit Customfields hinbekommen.
Fürs Protokoll und alle die danach Suchen, ich musste nur den von stBorchert bereitgestellten Code wie folgt anpassen und als PHP-Code in ein Customfield einfügen:
<?php
$signup = db_fetch_object(db_query("SELECT * FROM {signup} WHERE nid = %d", $data->nid));
if ($signup->close_signup_limit == 0) {
echo t('No limit');
return;
}
$effective_total = db_result(db_query("SELECT SUM(count_towards_limit) FROM {signup_log} WHERE nid = %d", $data->nid));
echo ($signup->close_signup_limit - $effective_total);
?>