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

block Sichtbarkeit abhängig von Wert eines fields in content-type

Eingetragen von thombuck (9)
am 12.07.2016 - 09:24 Uhr in
  • Module
  • Drupal 7.x oder neuer

Hallo zusammen,

ich stehe gerade vor einem Problem, für das ich keine Lösung finden kann. Dazu muss man sagen, dass dies meine erste Drupal-Page ist und ich nicht der PHP-Profi vor dem Herrn bin :-)

Ich habe ein webform-block erstellt, der auf ganz bestimmten Seitentypen angezeigt werden soll. Eigentlich kein Problem, aber die Schwierigkeit liegt darin, dass die Sichtbarkeit des blocks an einem field innerhalb des content-types abhängt.

Also: Es gibt einen block mit einem webform. Dann gibt es einen content-type "contenttype". In diesem gibt es ein spezifisches Feld "status" mit den möglichen Werten "active", "paused" oder "hidden". Den content-type mit dem jew. status lasse ich über views als Liste auf einer übersichtsseite ausgeben (für jeden status eine). Das Webform soll nun nur bei artikeln erscheinen, die den status "active" besitzen und bei "closed" und "hidden" nicht.

Ich habe es schon geschafft, dass das webform generell beim content-type "contenttype" angezeigt wird:

<?php
$nodeType
= "contenttype";

// valid node id in view mode
if ( arg(0) == 'node' AND is_numeric(arg(1)) AND arg(2) == FALSE ) {

   
$node = node_load(arg(1)); // cached

   
if ($node->type == $nodeType) {
        return
true;
    }
}

return
FALSE;
?>

Wie kann ich diesen Code erweitern, so dass er in diesem content-type zusätzlich noch den status des fields "status" abfragt und nur true zurückgibt, wenn "status" auf "active" steht?

Vielen Dank schonmal vorab für eure Hilfe.

‹ CCK Pflichtfeld für Node Author aufheben Leere Seite nach Colorbox installation ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Hallo,ich würde in der

Eingetragen von Hyp1 (1463)
am 12.07.2016 - 10:28 Uhr

Hallo,

ich würde in der unteren if Abfrage folgendes hinzufügen:

if ($node->type == $nodeType && $node->status == 1) {
        return true;
    }

MfG

Robert

PS: Der node status sollte nach Deinem node_load als Integer Variable in $node vorhanden sein.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hi Robert, vielen Dank für

Eingetragen von thombuck (9)
am 12.07.2016 - 11:44 Uhr

Hi Robert,

vielen Dank für deine schnelle Rückmeldung. Habs eben ausprobiert - so hat es leider noch nicht funktioniert. Der webform block wird trotzdem bei allen artikeln des content-types angezeigt und ignoriert weiter die variable "status"

<?php


$nodeType
= "contenttype";

// valid node id in view mode
if ( arg(0) == 'node' AND is_numeric(arg(1)) AND arg(2) == FALSE ) {

   
$node = node_load(arg(1)); // cached

   
if ($node->type == $nodeType && $node->field_status == 1) {
     return
true;
    }
}

return
FALSE;


?>

Der Maschinenlesbare Name der content-type Variable ist "field_status" und der Wert "active" steht in der Auswahlliste als 1.

VG Thom

  • Anmelden oder Registrieren um Kommentare zu schreiben

Hi Thom, sorry ich dachte Du

Eingetragen von Hyp1 (1463)
am 12.07.2016 - 12:16 Uhr

Hi Thom,

sorry ich dachte Du meinst den Orginalen Node Status, ob veröffentlicht oder nicht:
0: published
1: not published
und nicht ein Feld mit eigenen Werten.

Mach mal einen

var_dump($node->field_satus[LANGUAGE_NONE]);
die();

Um zu sehen wie Du an den Wert in field_status kommst.
Das kann ja auch sprachabhängig sein.

In dem Fall müsste der Code mit einem String Value verglichen werden:

if ($node->type == $nodeType && $node->field_status[LANGUAGE_NONE][0]['value'] == 'active')

Gruss

Robert

  • Anmelden oder Registrieren um Kommentare zu schreiben

Genial

Eingetragen von thombuck (9)
am 12.07.2016 - 16:52 Uhr

Hey Robert - Du bist genial! :-) Vielen Dank. Der Value war statt 'active' ein integer. Jetzt funktioniert es genau wie es soll. Vielen Dank!!!

  • 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 Tagen 18 Stunden
  • Hey danke
    vor 3 Tagen 13 Stunden
  • Update: jetzt gibt's ein
    vor 4 Tagen 7 Stunden
  • Hallo, im Prinzip habe ich
    vor 1 Woche 1 Tag
  • Da scheint die Terminologie
    vor 1 Woche 1 Tag
  • Kannst doch auch alles direkt
    vor 1 Woche 6 Tagen
  • In der entsprechenden View
    vor 1 Woche 6 Tagen
  • Dazu müsstest Du vermutlich
    vor 1 Woche 6 Tagen
  • gelöst
    vor 4 Wochen 2 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 4 Wochen 3 Tagen

Statistik

Beiträge im Forum: 250233
Registrierte User: 20449

Neue User:

  • Mroppoofpaync
  • 4aficiona2
  • AppBuilder

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