Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Allgemeines zu Drupal ›

[gelöst]php Filter bei Blöcken

Eingetragen von Alex183 (35)
am 16.08.2011 - 21:00 Uhr in
  • Allgemeines zu Drupal
  • Drupal 7.x oder neuer

Hallo zusammen,

ich habe einen Block, den ich sowohl auf Seiten eines bestimmten Inhaltstypen (Blogeintrag) als auch auf der Startseite einblenden möchte.
Ich denke mal, dazu kann man die Option "Seiten, für die dieser PHP-Code TRUE zurückliefert (nur für Experten) " nutzen, aber wie könnte dieses Statement aussehen, damit der Block eben beim Inhaltstyp und bei der Startseite eingeblendet wird?

Danke schonmal für eure Hilfe,

Viele Grüße,

Alex

‹ [gelöst] Website nur per https erreichbar [gelöst]Administrationsmenü hat bei mir keinen Pull-Down-Zugriff ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

hi alex :) du brauchst nur in

Eingetragen von 1kubik (903)
am 16.08.2011 - 21:16 Uhr

hi alex :)

du brauchst nur in den filter
admin/structure/block/manage/views/dein-block-name/configure
bei
Diesen Block nur auf den aufgelisteten Seiten anzeigen
reinschreiben:
-------------------
blogeintrag

-------------------

ist ein alias für die
startseite..

juten abend
stef

  • Anmelden oder Registrieren um Kommentare zu schreiben

PHP in Block

Eingetragen von stBorchert (6003)
am 16.08.2011 - 21:23 Uhr

Hallo.

Alex183 schrieb

ich habe einen Block, den ich sowohl auf Seiten eines bestimmten Inhaltstypen (Blogeintrag) als auch auf der Startseite einblenden möchte. ... PHP-Code ... aber wie könnte dieses Statement aussehen, damit der Block eben beim Inhaltstyp und bei der Startseite eingeblendet wird?

Die Startseite ist schonmal einfach, da genügt ein einfaches <?php return drupal_is_front_page(); ?> als Statement. Für die Abfrage nach dem Inhaltstypen wird es jedoch ein wenig schwieriger:

<?php
if ($node = menu_get_object()) {
 
$types = array('story', 'page', 'irgendwasanderes');
  return isset(
$node->type) && in_array($node->type, $types);
}
?>

Kombiniert macht das dann dieses kleine Statement:

<?php
if (drupal_is_front_page()) {
  return
TRUE;
}
else if (
$node = menu_get_object()) {
 
$types = array('story', 'page', 'irgendwasanderes');
  return isset(
$node->type) && in_array($node->type, $types);
}
return
FALSE;
?>

hth,

 Stefan

  • Anmelden oder Registrieren um Kommentare zu schreiben

Einstellungen

Eingetragen von stBorchert (6003)
am 16.08.2011 - 21:25 Uhr
phpberlin schrieb

du brauchst nur in den filter
admin/structure/block/manage/views/dein-block-name/configure
bei
Diesen Block nur auf den aufgelisteten Seiten anzeigen
reinschreiben:
-------------------
blogeintrag
<front>
-------------------

Wie kommst Du denn darauf? Er will ja nicht auf den Pfad "blogeintrag" prüfen, sondern auf Beiträge des Inhaltstypen "blogeintrag".

  • Anmelden oder Registrieren um Kommentare zu schreiben

hmmm

Eingetragen von Alex183 (35)
am 16.08.2011 - 21:36 Uhr

Vielen Danke rstmal für eure Antworten,

ich habe jetzt erstmal einen kleinen Umweg eingeschlagen.
In pathauto vergebe ich für jeden Node des Typs "Blogeintrag" den Pfad blog/blablabla

Im Block, den ich anzeigen möchte, habe ich den Filter auf

Zitat:

Diesen Block nur auf den aufgelisteten Seiten anzeigen

front
blog/*

gesetzt.

Funktioniert erstmal...kann man das so gelten lassen oder ist die Lösung über das php Skript besser?

lg Alex

PS wieso werden denn ´hier Sachen zwischen größer/kleiner Zeichen ausgeblendet :(

  • Anmelden oder Registrieren um Kommentare zu schreiben

hallo stefanZitat:Wie

Eingetragen von 1kubik (903)
am 16.08.2011 - 22:06 Uhr

hallo stefan

Zitat:

Wie kommst Du denn darauf? Er will ja nicht auf den Pfad "blogeintrag" prüfen, sondern auf Beiträge des Inhaltstypen "blogeintrag".

autsch, sorry! da hab ich zu schnell schlecht gelesen..!

ich bin voreilig von einem pfad ausgegangen ...

gruss
stef

  • Anmelden oder Registrieren um Kommentare zu schreiben

Das Problem war eben, dass

Eingetragen von Alex183 (35)
am 16.08.2011 - 21:40 Uhr

Das Problem war eben, dass ich nicht beides gleichzeitig setzen konnte... :(

Nur auf front und Typ Blogeintrag schließen sich ja aus...

  • Anmelden oder Registrieren um Kommentare zu schreiben

Zitat: else if ($node =

Eingetragen von Alex183 (35)
am 16.08.2011 - 21:45 Uhr
Zitat:

else if ($node = menu_get_object())

Warum genau menu_get_object?

Kenne das nur mit $node=node_load(arg(1));

Hmm...sorry für die vielleicht dumme Frage aber will das ja irgendwie auch lernen :)

Gruß,

Alex

  • Anmelden oder Registrieren um Kommentare zu schreiben

Wird in der Doku von arg

Eingetragen von valderama (47)
am 16.08.2011 - 21:48 Uhr

Wird in der Doku von arg empfohlen :)

http://api.drupal.org/api/drupal/includes--bootstrap.inc/function/arg/7

  • Anmelden oder Registrieren um Kommentare zu schreiben

menu_get_object()

Eingetragen von stBorchert (6003)
am 16.08.2011 - 22:02 Uhr
Alex183 schrieb

Warum genau menu_get_object?
Kenne das nur mit $node=node_load(arg(1));

[api:menu_get_object:7] liefert Dir das passende Objekt zum aktuellen Pfad. Wenn Du also einen Pfad wie z.B. "node/1" aufrufst, bekommst Du über [api:menu_get_object:7] das aktuelle Node-Objekt zurückgeliefert. Wenn Du allerdings einen Pfad aufrufst, der nicht direkt einen Beitrag anzeigt, bekommst Du von der Funktion nichts.

Das erspart den lästigen (und unschönen) Umweg über <?php if (arg(0) == 'node' && is_numeric(arg(1))) { $node = node_load(arg(1)); }?.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Pfad

Eingetragen von stBorchert (6003)
am 16.08.2011 - 22:06 Uhr
Alex183 schrieb

pathauto ... Funktioniert erstmal...kann man das so gelten lassen oder ist die Lösung über das php Skript besser?

Ja, das kann man durchaus so gelten lassen. Es funktioniert ja auch (ungefähr nach dem gleichen Prinzip).

Alex183 schrieb

PS wieso werden denn hier Sachen zwischen größer/kleiner Zeichen ausgeblendet

Schau mal in den Quelltext der Seite. Dort tauchen die Zeichen wieder auf. Dein Browser nimmt an, das wäre ein HTML-Tag. Da jedoch <front> in der HTML-Notation gänzlich unbekannt ist, zeigt der Browser den Text nicht an.
Tipp: code-Tags (siehe Toolbar des WYSIWYG-Editors) verwenden.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ah ok das hab ich jetz soweit

Eingetragen von Alex183 (35)
am 16.08.2011 - 22:19 Uhr

Ah ok

das hab ich jetz soweit verstanden denk ich :)

Vielen Dank nochmal an alle für die Hilfe :)

PS: Hoffentlich habe ich mit mit Drupal und php lernen nicht etwas zu viel vorgenommen ;)

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • canadian pharmacy lotrisone cream used for cellulitis
  • 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?
Weiter

Neue Kommentare

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

Statistik

Beiträge im Forum: 250234
Registrierte User: 20461

Neue User:

  • WugPiola
  • marouane.blel
  • capilclinic

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