Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Anfängerfragen ›

Form (Button) in einem View anzeigen

Eingetragen von joya (190)
am 27.11.2012 - 09:47 Uhr in
  • Anfängerfragen
  • Drupal 7.x oder neuer

hallo,

auf meiner Internetseite motorrad-vergleichen (noch im Aufbau) benutze ich ein Properties-Compare Modul (Dynamic Properties), womit man über den Button "zum Vergleichliste" ein Item (Motorrad) zu Vergleichliste einfügen kann. Diesen Button schalte ich für Teaser-Ansicht oder große Ansicht ganz normal in Inhaltstypen>Anzeige verwalten, wo ich den ein- oder ausschalten kann. (Gibt das Module wahrscheinlich selber her).

Jetzt möchte ich aber die Seite mit VIEWS ein wenig erweitern. Als Ergebnis einer Suche sollten nicht mehr die aufgelistete Teasers kommen (wie jetzt momentan, wenn man z.B auf einen Hersteller im Menü klickt), sondern angepasste Views mit von mir definierten Felder. Das kann ich auch machen, ist kein Problem, aber was ich nicht in View einfügen kann, ist eben dieser "zum Vergleichliste" -Button.

Dies ist eine Funktion, die aus dem Dynamic Properties -Modul eine Form aufruft. Funktionen des Moduls

Ich vermute, dies könnte diese Funktion sein: properties_compare_list_add

/**
* Add a new entity to the compare list.
*
* @param $entity_type
*   Type of entity, for example node or comment.
* @param $entity
*   Entity object.
*/
function properties_compare_list_add($entity_type, $entity) {
  $list = &properties_compare_list();
  list($id, , ) = entity_extract_ids($entity_type, $entity);
  $list[properties_compare_create_key($entity_type, $entity)] = array(
    'entity_type' => $entity_type,
    'entity_id' => $id,
  );
}

Wie baue ich Aufruf von diese Funktion in mein View? Oder Allgemein, (für Anfang vielleicht noch besser), wie ruf ich so eine externe Funktion aus einem "Custom-Code", z.B. passende block.tpl.php oder node.tpl.php

Vielen Dank

(ich habe mich vor 2 Jahren richtig intensiv mit Drupal beschäftigt und damals wäre es vielleicht nicht so schwer für mich das zu verstehen, aber jetzt als Wiedereinsteiger muss ich fast alles von vorne lernen...)

‹ OpenLayer Map Im Userprofil [gelöst] Drupal hochgeladen Server ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Das ist nicht so einfach,

Eingetragen von wla (9461)
am 27.11.2012 - 10:30 Uhr

Das ist nicht so einfach, denn dann müßtest Du Dir genau ansehen, welche Funktion des Button aufruft, um darüber einzusteigen. Es gibt aber eine einfachere Möglichkeit und das ist die [do:ds Display Suite]. Dort kannst Du weiter "View-Modes" neben Teaser und Full View definieren, die genau die Felder ausgeben, die Du möchtest. Die kannst Du auch in Views ausgeben statt Teaser. Also kannst Du damit auch Deinen Button bekommen, ohne daß Du dich um Code kümmern mußt.

Beste Grüße
Werner

  • Anmelden oder Registrieren um Kommentare zu schreiben

danke für Reply, ich wollte

Eingetragen von joya (190)
am 27.11.2012 - 15:57 Uhr

danke für Reply,

ich wollte direkt in einem Test-Node folgendes ausprobieren und auf diesem Weg den Button (Form) aufrufen:

<?php print drupal_render(drupal_get_form('properties_compare_list_add')); ?>

aber das geht leider nicht, bekomme Fehlermeldung zurück...

suche weiter....

  • Anmelden oder Registrieren um Kommentare zu schreiben

Properties_compare_list_add

Eingetragen von wla (9461)
am 27.11.2012 - 16:50 Uhr

Properties_compare_list_add ist ja auch keine Form. Also kann das deshalb nicht gehen. Im übrigen ist der Aufruf von Funktionen aus nicht Core-Modulen mitunter etwas tricky.

Beste Grüße
Werner

  • Anmelden oder Registrieren um Kommentare zu schreiben

hallo, ich habe jetzt die

Eingetragen von joya (190)
am 27.11.2012 - 17:15 Uhr

hallo,

ich habe jetzt die richtige Funktion gefunden, das ist diese funktion:

/**
* Form builder function; displays a form to add an entity to the compare list.
*/
function properties_compare_add_form($form, &$form_state, $entity_type, $entity) {
  $form['entity_type'] = array(
    '#type' => 'value',
    '#value' => $entity_type,
  );
  $form['entity'] = array(
    '#type' => 'value',
    '#value' => $entity,
  );
  $exists = properties_compare_list_exists($entity_type, $entity);
  $full = properties_compare_list_is_full();
  $form['submit'] = array(
    '#type' => 'submit',
    '#disabled' => $exists || $full,
    '#value' => $exists ? t('In comparison') : ($full ? t('Comparison list full') : t('Add to compare list')),
  );
  return $form;
}

so, wenn ich in meiner test.tpl.php diese Funktion so aufrufe:

  <div class="teaser-test"><?php print drupal_render(drupal_get_form('properties_compare_add_form')); ?></div>

bekomme ich White Screen mit folgendem Fehler:

Fatal error: Class name must be a valid object or a string in /...../includes/common.inc on line 7679

Im übrigen ist der Aufruf von Funktionen aus nicht Core-Modulen mitunter etwas tricky

ja, das ist mir bewusst, aber an diesem Modul setzt fast meine ganze Internetseite. (ja ich weiß dass dies suboptimal, aber...... damals hatte ich keine andere Lösung)

Wenn es mir geling, diese Funktion properties_compare_add_form($form, &$form_state, $entity_type, $entity) sauber aus meinem Test-Node aufzurufen, dann werde ich es auch wahrscheinlich in ein Custom-Modul einpflegen.....

jetzt hänge ich noch da.. Wie ruf ich diese Funktion sauber auf, somit der Button richtig dargestellt wird? Ich vermute, da fehlen mir noch einige Parameter die ich dazuhängen sollte.....

  • Anmelden oder Registrieren um Kommentare zu schreiben

Du siehst doch, daß die

Eingetragen von wla (9461)
am 27.11.2012 - 20:22 Uhr

Du siehst doch, daß die Form-Funktion weitere Parameter benötigt. Die gibst Du aber nicht mit. Also mußt Du die Quellen dieses Moduls genauer studieren, und sehen, wo diese Form aufgerufen wird, und wie und woher dort die Parameter geliefert werden.

Beste Grüße
Werner

  • Anmelden oder Registrieren um Kommentare zu schreiben

ja, ich sehe das

Eingetragen von joya (190)
am 28.11.2012 - 08:53 Uhr

ja, ich sehe das ($entity_type, $entity) und habe auch schon etwas testweise abgegeben.
Aber leider noch nicht richtig... muss ich wohl weiter suchen

falls jemand Tipp hat....... wäre sehr dankbar.

phuuuu....... es ist schon richtig schwierig wieder neu anzufangen nach so viel Zeit mit Drupal. Vielleicht sogar schwieriger als Neuanfang. Als reiner Neuanfänger weißt man das was man eben weiß und tut nicht weh wenn man etwas nicht findet. Aber als Wiedereinsteiger..... man weiß dass es irgendwie geht .... aber wie war das nochmal... :-)

Gruß aus Schwarzwald

  • Anmelden oder Registrieren um Kommentare zu schreiben

ich glaube, ($entity) ist ein

Eingetragen von joya (190)
am 28.11.2012 - 10:00 Uhr

ich glaube, ($entity) ist ein Objekt. Ich finde aber keinen Weg, woher könnte ich dieses Objekt holen und in den Funktion-Aufrug einbauen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

sche.....e, ist doch

Eingetragen von joya (190)
am 28.11.2012 - 14:21 Uhr

sche.....e,

ist doch wirklich nicht so einfach.....

DS mag ich nicht verwenden, ist doch ein Overkill, das ganze für nur ein Funktionsaufruf in einem View.....

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • wmtbpo361x
  • Rolle erstellen nicht zu finden
  • Medien und andere Daten mit Feeds von Drupal 7 auf Drupal 10 migrieren
  • 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
Weiter

Neue Kommentare

  • Rollen
    vor 5 Tagen 7 Stunden
  • Inzwischen sind wir bei
    vor 2 Wochen 2 Tagen
  • Migrieren von D7 auf D8/ D10/ D11
    vor 2 Wochen 2 Tagen
  • melde mich mal wieder, da ich
    vor 9 Wochen 6 Tagen
  • Hey danke
    vor 10 Wochen 15 Stunden
  • Update: jetzt gibt's ein
    vor 10 Wochen 1 Tag
  • Hallo, im Prinzip habe ich
    vor 10 Wochen 5 Tagen
  • Da scheint die Terminologie
    vor 10 Wochen 5 Tagen
  • Kannst doch auch alles direkt
    vor 11 Wochen 3 Tagen
  • In der entsprechenden View
    vor 11 Wochen 3 Tagen

Statistik

Beiträge im Forum: 250238
Registrierte User: 20467

Neue User:

  • LorisBen
  • StevenEness
  • ocvk2810

» 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 29 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