Support » Allgemeine Fragen » Mit PHP-Code arbeiten

  • Gelöst sonoptikon

    (@sonoptikon)


    Ich poste das mal bei Allgemein, weil ich sonst keine bessere Stelle finde.

    Es gibt verschiedene Gruppen, z.B. wie im Link: DFG Münster, hier ist der Link fest angegeben.

    Einige dieser Gruppen haben einen Newsletter, andere nicht.

    Ich möchte nun einen PHP-Code verwenden, der folgendes klärt:

    Gibt es eine Datei „Gruppen/Münster/newsletter,pdf“
    wenn ja: Setze einen Link auf diesen Newsletter.

    Ich arbeite mit isfile(), wenn es ergebnislos bleibt, passiert nichts, wenn ja, dann wird an dieser Stelle ein Link auf den newsletter gesetzt.

    Wie kann ich in meiner Seite an diese Stelle ein solchen kurzen PHP-Code setzen?

    • Dieses Thema wurde geändert vor 10 Monaten, 2 Wochen von sonoptikon.

    Die Seite, für die ich Hilfe brauche: [Anmelden, um den Link zu sehen]

Ansicht von 15 Antworten - 16 bis 30 (von insgesamt 51)
  • @bscu
    Sei nicht so streng 😉

    Ich hab das übrigens als „ich habe dazu auch wieder nichts gefunden … macht man das auch wieder mit einem Shortcode???“ interpretiert. ¯\_(ツ)_/¯

    Aller Anfang ist schwer.

    Sei nicht so streng

    Streng? Ist das streng, wenn man erwartet, dass Antworten gelesen werden und versucht werden sollte, den Sinn dahinter zu verstehen? 😉

    @bscu,

    Streng? Ist das streng, wenn man erwartet, dass Antworten gelesen werden

    … lass mal gut sein – jeder fängt mal an und übersieht dann vielleicht die eine oder andere Info.

    @bscu
    Klar, super frustrierend, wenn du eine Lösung haarklein beschreibst und das dann völlig ignoriert wird. Mit „sei nicht so streng“ meine ich, dass Anwender häufig gar nicht erst verstehen, ob bzw. wie eine Lösung für sie relevant ist. Was dann beim Helfer als „wieso ignoriert der meine Antwort?“ ankommt, ist dann tatsächlich absolute Hilflosigkeit des Fragestellers.

    Wobei ich in diesem Fall sogar annehme, dass nur die Verkürzung des Satzes falsch angekommen ist.

    Durchatmen, lächeln, weiter machen. Deine Antworten hier helfen ganz vielen. Danke dafür.

    Ich habe es ziemlich einfach gelöst, und im Prinzip macht es genau das, was ich will, allerdings klappt die Parameterübergabe nicht.

    Der Schnipsel: (Die Anführungszeichen sind hier teilweise typographisch gesetzt, stimmen aber)

    
    function zeige_newsletter($gruppe) {
    	// $gruppe = "MS";
    	$newsletter = 'https://www.dfgnrw.de/Gruppen/' . $gruppe . '/newsletter.pdf';
    	if (is_file ($newsletter)) {
    		// echo '<a href="' . $newsletter . '" target="_blank" rel="noopener noreferrer">==> Rundschreiben / Newsletter</a><br />';
    		return '<a href="' . $newsletter . '" target="_blank" rel="noopener noreferrer">==> Rundschreiben / Newsletter - ' . $newsletter .'</a>';
    	}
    		return '<a href="' . $newsletter . '" target="_blank" rel="noopener noreferrer">==> Rundschreiben / Newsletter - ' . $newsletter .'</a>'; // TESTAUSGABE
    }
    add_shortcode('snippet_zeige_newsletter', 'zeige_newsletter' );
    

    Der Shortcode:
    [snippet_zeige_newsletter gruppe=“MS“]

    Als Parameter übergibt er aber nicht „MS“, sondern „Array“

    Der Link sieht also so aus:
    https://www.dfgnrw.de/Gruppen/Array/newsletter.pdf (das kann ich mir nicht so recht erklären)

    richtig wäre:
    https://www.dfgnrw.de/Gruppen/MS/newsletter.pdf

    Wenn ich das jetzt noch hinkriege, habe ich eine Menge erschlagen

    • Diese Antwort wurde geändert vor 10 Monaten, 2 Wochen von sonoptikon.
    • Diese Antwort wurde geändert vor 10 Monaten, 2 Wochen von sonoptikon.
    • Diese Antwort wurde geändert vor 10 Monaten, 2 Wochen von sonoptikon.
    • Diese Antwort wurde geändert vor 10 Monaten, 2 Wochen von Hans-Gerd Gerhards.

    Weil der Parameter als Array übergeben wird.

    … und wie soll ich das anders machen, ich übergebe es doch als String??? ich habe Hunderte von PHP-Zeilen programmiert, und da ist es immer so.

    Wenn du dich doch mit PHP auskennst, dann solltest du wissen, was du mit dem Array machen kannst.
    var_dump($gruppe);

    … und noch ein weniger wichtiges Detail: target="_blank" solltest du aus verschiedenen Gründen nicht verwenden. (vgl. https://css-tricks.com/use-target_blank/)

    Ja, das mit _blank weiß ich. ich suche noch nch einer anderen Lösung. Ich verwende es häufig.

    Jetzt sieht es so aus, als würde ich ein Array übergeben. Aber ich übergebe einen String. Wie kann das sein?

    Aber das ist jetzt PHP … aber das hatte ich auch in PHP noch nicht

    • Diese Antwort wurde geändert vor 10 Monaten, 2 Wochen von sonoptikon.

    Du benutzt aber die API von WordPress, und die wandelt Parameter in ein Array um.

    Mit
    [snippet_zeige_newsletter gruppe=“MS“ name="rambo"]
    hättest du 2 Elemente im Array

    Ist hier ganz gut beschrieben: https://plötzlich-selbständig.de/programmieren/add_shortcode-tutorial/

    • Diese Antwort wurde geändert vor 10 Monaten, 2 Wochen von bscu.
    • Diese Antwort wurde geändert vor 10 Monaten, 2 Wochen von bscu.

    Dieser Beitrag wird durch unser System automatisch zurückgehalten, bis ein Moderator diesen manuell geprüft hat und freischaltet.

    Wieso?

    Weiß nicht? Code, URL … und schon hält Akismet dich für einen üblen Spammer. Wir natürlich nicht, deshalb hab ich’s gleich freigeschaltet. Sorry nochmal.

    So, jetzt muss ich zwei Probleme lösen:

    is_file funktioniert nicht mit remote files – das ist lösbar.

    Aber warum mein schöner string-Parameter als Array übergeben wird, erschießt sich mir nicht.

    Es it im Moment so, dass ich den Ordner direkt teilqualifiziert ansprechen kann, weil ich mit einer Testumgebung arbeite. Aber ich denke, dass sich dasin Zukunft lösen lässt.

    • Diese Antwort wurde geändert vor 10 Monaten, 2 Wochen von sonoptikon.

    Aber warum mein schöner string-Parameter als Array übergeben wird, erschießt sich mir nicht.

    Du benutzt aber die API von WordPress, und die wandelt Parameter in ein Array um.

    Was verstehst du daran nicht und warum hast du ein Problem damit?

Ansicht von 15 Antworten - 16 bis 30 (von insgesamt 51)
  • Das Thema „Mit PHP-Code arbeiten“ ist für neue Antworten geschlossen.