Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Module › Views ›

Eigenes Feld erstellen

Eingetragen von lzimon (15)
am 19.02.2009 - 11:03 Uhr in
  • Views
  • Drupal 5.x oder neuer

Hallo !

Ich bin eine Seminarverwaltung mithilfe von Event Manager,Signup, Views und CCK am erstellen.

Ich lasse mir mit Views eine Tabelle anzeigen in der alle bisher veröffentlichten Seminare aufgelistet werden. Der Benutzer kann sich die angezeigten Seminare nach Startjahr/Startmonat/ Filtern und sortieren lassen.

Des Weiteren habe ich mir ein Skript geschrieben das dem Benutzer auf der Seminarbeschreibung(=node) die belegung anzeigt (Anzahl der max. Teilnehmer und noch verfügbare Plätze). Die noch freien Plätze lasse ich mir in der MySQL Datenbank speichern und zwar in folgender Form:
---------------------
nid | anzahlderplaetze
32 10
33 24
etc...

Nun möchte ich ein Feld "Verfügbare Plätze" zu meiner Tabelle hinzufügen die sich die Daten aus der DB holt.

Ich habe bereits ein CCK-Feld erstellt und das in Views "eingefügt", jedoch bleibt meine Spalte leer.

Hoffe es kann mir jemand helfen und bitte nicht hauen wenn es bereits einen Fred dazu gibt. Ich habe nur Anleitungen gefunden bei denen die Daten vorher vom Benutzer eingegeben wurden, aber nirgends eine wo sich das Feld seine Daten aus der DB nimmt.

P.S.: Ich weiß, dass es noch ein Problem bei der zuordnung der Plätze bei Views1 gibt, jedoch werde ich mich im Nachhinein darum kümmern ;) Bei Drupal6 kann man das Problem umgehen, jedoch gibt es das Event Manager Modul noch nicht für Drupal 6 :)

‹ Wie binde ich eine node nicht als Link sondern als Text ein? View aller untermenüpunkte ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Vorschlag

Eingetragen von lzimon (15)
am 20.02.2009 - 11:10 Uhr

Wenn ich mit CCK ein neue Feld erstelle, habe ich ja die Möglichkeit PHP-Code hinzuzufügen. Soll ich dort einfach ne mysql_query einfügen ? ( SELECT anzahl FROM belegung WHERE nid = $node->nid; )
Ich habe es testweise mal so ausprobiert, wenn ich mit phpmyadmin nachschaue wo mein Feld "liegengeblieben" ;) ist, wird es unter "content_type_event" aufgefüht. Es "verweist" auf die Felder "field_teilnehmer_uid" und "field_belegung_value".

Von daher würde ich spontan sagen ich habe den falschen Ansatz und es wird nicht mit CCK+Views funzen.
Hat jemand eine andere Idee wie ich meine Belegung in der Tabelle anzeigen kann ? ( evtl. als view-seminarübersicht.tpl.php und dort die Tabelle "eigenhändig" coden ?).

  • Anmelden oder Registrieren um Kommentare zu schreiben

Allgemeine Frage

Eingetragen von lzimon (15)
am 24.02.2009 - 11:45 Uhr

Ist mein Vorhaben überhaupt möglich ? Habe gedacht ich wäre an einer Kleinigkeit hängen geblieben, aber anscheinend gibts mehr Probleme wie ich dachte (oder noch niemand hat so etwas bisher probiert, glaube ich aber nicht :p).

Deswegen nocheinmal meine Frage: Ist so etwas prinzipiell möglich ohne gleich ein Modul zu schreiben ? (Ja/Nein/Vielleicht mit kurzer begründung reicht, hauptsache es antwortet jemand :D).

  • Anmelden oder Registrieren um Kommentare zu schreiben

signup

Eingetragen von stBorchert (6003)
am 24.02.2009 - 12:04 Uhr

Mal ganz ohne jetzt auf die Möglichkeiten einzugehen: signup bietet bereits die Möglichkeit, verfügbare Plätze und Restplätze zu speichern und anzuzeigen. Zusätzlich kann dort auch noch verwaltet/angezeigt werden, ob der Nutzer wirklich teilgenommen hat.

hth,

 Stefan

  • Anmelden oder Registrieren um Kommentare zu schreiben

Bin ich blind ?

Eingetragen von lzimon (15)
am 24.02.2009 - 14:10 Uhr

Danke für die Antwort.

Es würde mich sehr wundern wenn ich diese Funktion übersehen habe, da ich seit mehreren Stunden diese Option suche und mir bereits das Skript geschrieben habe. Nichtsdestotrotz möchte ich das natürlich nicht ausschließen ;) Deswegen: kannst du mir sagen wo ich die noch freien Plätze sehe und zwar mit einer Erklärung für absolute DAU's ? Denn die einzigen Felder die ich sehe, ist "Limit" und "Total" (also verfügbare Plätze und bereits angemeldete Benutzer).

Vielleicht verwechselst du aber Signup 6.x 1.0 mit 5.x 2.7 (ich kenne nur 2.7 da ich D5 benutze). Selbst unter phpmyadmin kann ich keinen Vermerk dazu finden.

  • Anmelden oder Registrieren um Kommentare zu schreiben

view

Eingetragen von stBorchert (6003)
am 24.02.2009 - 14:54 Uhr

So direkt ist das natürlich nicht enthalten (wäre ja auch redundant, da berechneter Wert).
Du kannst aber im view-Template ganz einfach $limit - $total ausgeben lassen, so dass Du dort die Anzahl der noch verfügbaren Plätze hast. Ob jetzt das Feature "attend" auch in Version 5.x-2.7 enthalten ist, weiss ich jetzt so nicht.

 Stefan

  • Anmelden oder Registrieren um Kommentare zu schreiben

Für mich nicht ganz einfach :p

Eingetragen von lzimon (15)
am 24.02.2009 - 16:21 Uhr

Ich habe in modules/signup/views/views.inc folgendes array hinzugefügt:

 
'anzahl'   => array(
'name'     => t('Anzahl der verf. Plätze'),
'sortable' => TRUE,
'option'   => 'integer',
'value'    => '20',
),

aber es tut sich leider rein gar nichts (value ist einfach nur testweise da).

Um ehrlich zu sein versteh ich deine Antwort auch kaum. Was meinst du mit "attend" ?
Dein Vorschlag mit $limit - $total klingt logisch, aber es gibt einen Haken: es gibt kein $total als Variable/DBeintrag. Die Anzahl der bisher eingeschriebenen wird bei jedem Aufruf neu errechnet in dem die bisher eingeschriebenen gezählt werden.

In meinem Skript seh ich ja bereits wie viele Plätze noch verfügbar sind, ich muss sie nicht nochmal berechnen. Von daher wäre eine einfache DB-Abfrage das logischste, oder überseh ich da Schwierigkeiten ?

  • Anmelden oder Registrieren um Kommentare zu schreiben

$node->signup_total

Eingetragen von stBorchert (6003)
am 24.02.2009 - 16:33 Uhr

Der gezählte Wert der bisher angemeldeten Nutzer steht in $node->signup_total (da wird er jedenfalls beim Laden der node reingeschrieben). $node->signup_close_signup_limit enthält dann das Limit, so dass Du mit

<?php
$available
= $node->signup_close_signup_limit - $node->signup_total;
?>

die Anzahl der noch verfügbaren "Plätze" ermitteln kannst. Falls das Node-Objekt da nicht verfügbar sein sollte (müsste es aber über den View), kannst Du es ja noch über die Id nachladen:
<?php
$node
= node_load(array('nid' => $nid));
?>

 Stefan

  • Anmelden oder Registrieren um Kommentare zu schreiben

Danke für den Tip ! Ich

Eingetragen von lzimon (15)
am 25.02.2009 - 16:08 Uhr

Danke für den Tip !

Ich habe allerdings ein Problem: mein Feld bleibt leer egal was ich mache. Ich habe folgenden Code in views/modules/views_node.inc eingefügt:

'belegung' => array(
'name' => t('Anzahl der freien Plaetze'),
'sortable' => false,
'notafield' => true,
'value' = '20',
'help' => t('Zeigt die noch verfuegbaren Plaetze an'),
),

Wenn ich "notafield => false" setze kommt eine Fehlermeldung das "belegung" nicht deklariert ist. (Falls die Info von Bedeutung ist ;)).

Wo liegt mein Denkfehler ?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Lösung

Eingetragen von lzimon (15)
am 26.02.2009 - 12:18 Uhr

Ich habe eine Lösung gefunden: und zwar mithilfe des "Views Custom Field" Modules ( http://drupal.org/project/views_customfield ).

Ich habe ein eigenes Feld mit folgendem phpcode eingefügt:

$available = mysql_query("SELECT anzahl FROM belegung WHERE nid = $data->nid");
while ($row = mysql_fetch_object($available))
echo $row->anzahl;

Eine Frage habe ich dennoch: Wenn ich keine Belegung festgelegt habe (bspw. weil es kein Limit für Anmeldungen gibt) wird meine Zelle an entsprechender Stelle leer ausgegeben. Es wäre natürlich schöner wenn ich eine Nachricht bekommen würde das keine Teilnehmerbegrenzung existiert. Von daher habe ich folgenden Code ausprobiert:

$available = mysql_query("SELECT anzahl FROM belegung WHERE nid = $data->nid");
while ($row = mysql_fetch_object($available))
if ( is_null ($row))
{
echo "keine Teilnehmerbegrenzung";
}
else
{
echo $row->anzahl;
};

Jedoch verschwindet der Code nach dem Abspeichern. Habe ich einen Fehler in meiner Syntax oder ist das ein Bug im Modul?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 2 Wochen 1 Tag
  • Hey danke
    vor 2 Wochen 2 Tagen
  • Update: jetzt gibt's ein
    vor 2 Wochen 2 Tagen
  • Hallo, im Prinzip habe ich
    vor 3 Wochen 5 Stunden
  • Da scheint die Terminologie
    vor 3 Wochen 8 Stunden
  • Kannst doch auch alles direkt
    vor 3 Wochen 4 Tagen
  • In der entsprechenden View
    vor 3 Wochen 4 Tagen
  • Dazu müsstest Du vermutlich
    vor 3 Wochen 4 Tagen
  • gelöst
    vor 6 Wochen 1 Tag
  • Ja natürlich. Dass ist etwas,
    vor 6 Wochen 2 Tagen

Statistik

Beiträge im Forum: 250233
Registrierte User: 20452

Neue User:

  • ByteScrapers
  • Mroppoofpaync
  • 4aficiona2

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 18 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association