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

PHP Befehl Ergänzung um mehrere Inhaltstypen zu integrieren

Eingetragen von axelschulz@drup... (343)
am 17.04.2009 - 07:45 Uhr in
  • Anfängerfragen
  • Drupal 6.x

Hallo,

um ausschließlich neben dem Inhaltstyp gruppenbeitrag einen Block zu zeigen, fand ich diesen PHP Code. Klasse! :-)

<?php
$match
= FALSE;
$types = array('gruppenbeitrag' => 1);
if (
arg(0) == 'node' && is_numeric(arg(1))) {
$nid = arg(1);
$node = node_load(array('nid' => $nid));
$type = $node->type;
if (isset(
$types[$type])) {
$match = TRUE;
}
}
return
$match;
?>

Nun habe ich ohne PHP Wissen rumexperimentiert, wie dieser Block nicht nur beim Inhaltstyp gruppenbeitrag sondern auch noch z.b. bei organicgroupund gruppendokument angezeigt werden könnte.
vermutlich irgendwie diese Zeile erweitern, nur wie?

##
$types = array('gruppenbeitrag' => 1);
##

Besten Dank
Axel

‹ Umgang mit Mitgliedern, die erst später zu Drupal Usern werden Multisite + Subdomains + Groß- und Kleinschreibung ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

PHP

Eingetragen von stBorchert (6003)
am 17.04.2009 - 08:52 Uhr

Moin!
Mal vor der Lösung noch etwas Grundsätzliches: Grundlagen von PHP sollten bei der Arbeit mit Drupal in Muss sein (speziell, wenn man etwas tiefer in die Materie einsteigen will). Es bringt überhaupt nichts, wenn man ständig Code "vor die Nase gesetzt bekommt" und nicht versteht, was da überhaupt passiert.
Und Ausreden wie beispielsweise "ich hab einfach keine Zeit, mich damit zu beschäftigen" zählen nicht. Das klingt für mich eher nach "ich hab keine Lust dazu und hier bekommt man doch auch so die Antwort".

Nun zur Lösung.
Der obige Code ist etwas umständlich geschrieben.

<?php
function block_visible() {
 
$types = array('gruppenbeitrag', 'gruppendokument', 'organicgroup');
  if (
arg(0) == 'node' && is_numeric(arg(1))) {
   
$nid = arg(1);
   
$node = node_load(array('nid' => $nid));
   
$type = $node->type;
    if (
in_array($type, $types)) {
      return
TRUE;
    }
  }
  return
FALSE
}
?>

hth,

 Stefan

  • Anmelden oder Registrieren um Kommentare zu schreiben

[gelöst] PHP Code & PHP lernen

Eingetragen von axelschulz@drup... (343)
am 17.04.2009 - 09:46 Uhr

Hallo Stefan,

herzlichen Dank für Deine Antwort sowie für den Code, der perfekt funktioniert.

Zum Thema

Grundsätzliches: Grundlagen von PHP sollten bei der Arbeit mit Drupal ein Muss sein

Ich kann sehr gut verstehen, dass PHP-Könner/ Profis (ich weiß nicht wie ich es nennen soll, aber es ist sicher klar) genervt sind, wenn sie ständig das gleiche gefragt werden. Ich bewundere die Geduld, mit der hier im Forum geantwortet wird, einfach klasse und immer wieder vielen Dank!!!

Gleichzeitig habe ich aus dem Grund mit Drupal zu tun, weil es eben für Nicht-Coder machbar ist. Auf einem Seminar bei Hagen Graf (ja, ich habe live einen Drupalkurs bei ihm besucht) war auch Tenor, Drupal eröffnet Möglichkeiten, die ansonsten nur für Profis .... etc. So kam ich zu Drupal, ansonsten hätte ich komplett meine Finger von einem CMS gelassen.

Ich habe vor einiger Zeit nicht nur PHP Bücher gekauft sondern auch damit gekämpft (bzw. dann mehr mit den Online-Angeboten) und ... ja, extrem erfolglos.
{HTML: begriffen, ok, kleine PHP Lösungen teilweise nutzen (von 10 Scripten, die ich teste bzw. mich Stunden damit beschäftigte, schaffe ich immer vielleicht gerade 2 auch zum laufen zu kriegen). CSS: naja ... rudimentär, schnell entflieht mir die Logik, warum etwas wie oder mal wieder nicht funktioniert.}

Fazit:

  • keine Zeit? ist es nicht.
  • Dummheit? Ich vermute nicht, aber wer weiß.
  • Faulheit? ne, es wäre ja viel genialer, zeitsparender und befriedigender, es selbst machen zu können
  • Andere Art des Denkens? Vielleicht.

Letztendlich weiß ich es nicht.

Was ich aber sicher weiß, dass ich nicht vor habe hier Wissen, Geduld und Hilfsbereitschaft auszunutzen, sondern mir eher überlege "Kannst du jetzt wieder etwas hier fragen?" "Schaffst Du es aktuell wirklich nicht selbst?" "Hast Du das Drupalforum auch wirklich durchsucht?"

Kurzum:
ich danke Dir für den kritischen Einwurf; ich befürchtete sowieso, dass so etwas irgendwann kommt. Eine befriedigende Antwort habe ich leider nicht, sondern nur meine Dankbarkeit für dies, dass hier im Drupalcenter gegenseitig so viel geholfen wird.

vielen Dank
Axel
www.globale-welt.de ( <---- vielleicht mein Beitrag, an andere Stelle etwas zu geben [Plattform, damit Menschen "Neues" entsprechend eigener Wünsche erschaffen können]... , ... vielleicht)

  • Anmelden oder Registrieren um Kommentare zu schreiben

axelschulz@drupal.org

Eingetragen von Alexander Langer (3416)
am 17.04.2009 - 09:54 Uhr
axelschulz@drupal.org schrieb

Auf einem Seminar bei Hagen Graf (ja, ich habe live einen Drupalkurs bei ihm besucht) war auch Tenor, Drupal eröffnet Möglichkeiten, die ansonsten nur für Profis .... etc.

Das sitmmt so ja auch, schließt aber nicht aus, dass es eben doch Punkte gibt (und zwar reichlich), wo es ohne PHP nicht geht und dafür hast du eingangs ja auch selbst den Beleg geliefert. Etwas blind zu kopieren / nachzuahmen, ohne die genaue Funktions-/Wirkungsweise zu verstehen ist immer schwer unglücklich. Das gilt für die Programmierung in besonderem Maße, aber eben auch für alles andere, z.B. fürs Kochen.

Mit weniger PHP-Know-How kommst du vermutlich nur bei Joomla aus. Ich bin sicher auch dafür hat Hagen das passende Seminar im Angebot...

--
mortendk: everytime you use contemplate... Thor is striking down from above with his mighty hammer - crushing and killing a kitten!

webseiter.de

  • Anmelden oder Registrieren um Kommentare zu schreiben

OT

Eingetragen von stBorchert (6003)
am 17.04.2009 - 10:05 Uhr
axelschulz@drupal.org schrieb

herzlichen Dank für Deine Antwort sowie für den Code, der perfekt funktioniert.

Bitte. Jederzeit wieder (das meine ich jetzt wirklich so).

axelschulz@drupal.org schrieb

Ich kann sehr gut verstehen, dass PHP-Könner/ Profis (ich weiß nicht wie ich es nennen soll, aber es ist sicher klar) genervt sind, wenn sie ständig das gleiche gefragt werden. Ich bewundere die Geduld, mit der hier im Forum geantwortet wird, einfach klasse und immer wieder vielen Dank!!!

Ich bin mir natürlich darüber im Klaren, dass nicht Jeder bereits mehrere Jahre mit PHP gearbeitet haben kann. Und ich finde es auch immer wieder erstaunlich, wie geduldig ich doch bin :D .

axelschulz@drupal.org schrieb

Gleichzeitig habe ich aus dem Grund mit Drupal zu tun, weil es eben für Nicht-Coder machbar ist...

Allerdings ist es durchaus notwendig, ein wenig (ein klitzekleines Bisschen) PHP zu verstehen, wenn man mehr aus Drupal herausholen möchte.

axelschulz@drupal.org schrieb

Fazit: ...

Hm, wenn Du schon den Antrieb hast, selbstständig zu Lösungen zu kommen, dann schnapp Dir doch einfach mal ein paar kleine Tutorials und spiel einfach herum. Mal ganz abseits von Drupal, einfach nur Plain-PHP. Stell Dir selbst kleine Aufgaben, an denen Du dann herumprobierst.
Zum Beispiel:
"Wie frage ich ab, ob ein Wert in einer Liste enthalten ist?"
"Wie suche ich effektiv in einem Text?"
usw...

axelschulz@drupal.org schrieb

Was ich aber sicher weiß, dass ich nicht vor habe hier Wissen, Geduld und Hilfsbereitschaft auszunutzen, sondern mir eher überlege "Kannst du jetzt wieder etwas hier fragen?" "Schaffst Du es aktuell wirklich nicht selbst?" "Hast Du das Drupalforum auch wirklich durchsucht?"

Hach, wenn nur Alle so denken würden...

Wie gesagt, einfach mal mit PHP herumspielen, vielleicht auch mal einfach php.net die Funktionsliste durchwühlen. Da findet man Funktionen, die man immer schon mal verwenden wollte :-)

 Stefan

  • Anmelden oder Registrieren um Kommentare zu schreiben

php

Eingetragen von axelschulz@drup... (343)
am 17.04.2009 - 12:19 Uhr

Hallo,

Beispiel meiner PHP-Bemühungen:
Leider muss ich sagen, dass der obige Code doch noch nicht ganz klappt, weil er (zumindest bei mir) den gewünschten Block überall zeigt. Ich habe vorhin nur die Seiten getestet wo er kommen soll, deswegen fiel es mir zuvor nicht auf, ... tja... soll vorkommen ;-)

UND ich habe selbstständig eine Lösung gefunden (soweit zu meinem Lernwillen und meinem Wunsch, fremde Nerven nicht zu sehr zu belasten ;-)

So funktioniert es:

<?php
$match
= FALSE;
$types = array('gruppenbeitrag' => 1, 'gruppendokument' => 1, 'gruppe' => 1);
if (
arg(0) == 'node' && is_numeric(arg(1))) {
$nid = arg(1);
$node = node_load(array('nid' => $nid));
$type = $node->type;
if (isset(
$types[$type])) {
$match = TRUE;
}
}
return
$match;
?>

Warum Dein Code, Stefan, bei mir doch nicht geht d.h. auch auf der Profilübersicht und Startseite der Block gezeigt wird,... keine Ahnung.

Mein neuer Code geht nun und zeigt den Block nur auf Seiten mit dem Inhaltstyp: gruppenbeitrag, gruppe und gruppendokument.

Zugegeben, viel trial and error plus im Internet suchen wie bekloppt... aber mühsam ernährt sich der Drupalanfänger ;-)))

thanx
axel :-)

  • Anmelden oder Registrieren um Kommentare zu schreiben

Block Sichtbarkeit

Eingetragen von stBorchert (6003)
am 17.04.2009 - 15:24 Uhr
axelschulz@drupal.org schrieb

Warum Dein Code, Stefan, bei mir doch nicht geht d.h. auch auf der Profilübersicht und Startseite der Block gezeigt wird,... keine Ahnung.

Ich weiss es :-) .
Weil ich den Code in eine Funktion gepackt hatte, dies bei den Sichtbarkeitseinstellungen für Blöcke jedoch nicht nötig ist / nicht gemacht werden soll.
Ein einfaches <?php print block_visible() ?> nach der Funktion und schon sollte es funktionieren. Oh, und natürlich noch ein ; hinter return FALSE. Das hatte ich ganz übersehen... tsts.

hth,

 Stefan

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

Statistik

Beiträge im Forum: 250233
Registrierte User: 20450

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 13 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