Ergebnis 1 bis 11 von 11

Processwire - zweites Bild aus einem Array ausgeben?

  1. #1 Zitieren
    Veteran
    Registriert seit
    Jun 2012
    Beiträge
    629
    Ich mache eine Website in Processwire und habe auf einer Page drei Bilder hochgeladen in ein Field, das vom Typ "pictures" ist, also ein Array für Bilder ist.

    In der .php Datei kann ich das erste Bild eines Arrays ausgeben mit
    "<img src=" <?php echo $page->Bilder->first()->httpUrl; ?>"

    und das letzte Bild des Arrays mit
    "<img src=" <?php echo $page->Bilder->last()->httpUrl; ?>".

    Naheliegend wäre für mich für das zweite und dritte Bild
    "<img src=" <?php echo $page->Bilder->second()->httpUrl; ?>"
    "<img src=" <?php echo $page->Bilder->third()->httpUrl; ?>"
    oder vielleicht
    "<img src=" <?php echo $page->Bilder->get(2)->httpUrl; ?>"
    oder
    "<img src=" <?php echo $page->Bilder->getIterator(2)->httpUrl; ?>
    oder so,
    aber das funktioniert alles nicht.

    Weiß jemand, wie ich die Bilder zwischen dem ersten und dem letzten gezielt anzeige?


    Zweite Frage:
    Wenn ich die Bilder anzeige mit Hilfe von php
    <img src=" <?php echo $page->Bilder->first()->httpUrl; ?> "
    onClick="pictureFunction(this)" width="20%" align=center />
    funktioniert meine onClick-Funktion meiner js.file nicht mehr.
    Weiß jemand wie man das machen muss, wenn die Quelle des Bildes mit PHP gerufen wird? (ich glaube darum funzt es nicht)
    Oder woran es sonst liegt, dass die Funktion nicht mehr geht?
    Gothicforum ist offline Geändert von Gothicforum (05.06.2018 um 00:57 Uhr)

  2. #2 Zitieren
    Retro Micky Avatar von Blue Force
    Registriert seit
    May 2009
    Beiträge
    26.192
    Blue Force ist offline

  3. #3 Zitieren
    Veteran
    Registriert seit
    Jun 2012
    Beiträge
    629
    Zitat Zitat von Blue Force Beitrag anzeigen
    Danke, funktioniert.

    Erstens, weißt du auch die Antwort auf die andere Frage? :
    Mit Processwire `dazwischengeschaltet` funktioniert meine Funktion aus dem JavaScript nicht mehr (die OnClick Funktion). Was muss ich da anders machen über Processwire?


    und noch eine neue Frage:
    auf meinem lokalen eigenen XAMPP Server funktioniert miene Seite jetzt, sowohl mit als auch ohne Processwire (bis auf die Kleinigkeiten oben).
    Nun habe ich die ganzen Ordner einfach mal auf den Server meines Host-Providers hochgeladen.
    Dort funktioniert die Seite ohne Processwire,
    aber auf Processwire darf ich nicht zugreifen bzw. die Dateien werden nciht gefunden.

    Die Dateiberechtigungen sind alle richtig, 644 und 755 und das HTML Verzeichnis 750.
    Dennoch sagt er mir, ich dürfe nicht auf die Seite zugreifen bzw. da sei ein Server-Konfigurationsfehler.

    Der Provider antwortete mir
    "je nach aktivierter phpVersion via .htaccess Datei nutzen Sie als DB Host bitte "127.0.0.1" oder "localhost""

    Allerdings glaube ich, das hilft mir gar nicht weiter.

    Wie kann ich über eine normale Domain übers Internet auf meine Processwire-Seite zugreifen?
    Gothicforum ist offline

  4. #4 Zitieren
    Retro Micky Avatar von Blue Force
    Registriert seit
    May 2009
    Beiträge
    26.192
    Zitat Zitat von Gothicforum Beitrag anzeigen
    Danke, funktioniert.

    Erstens, weißt du auch die Antwort auf die andere Frage? :
    Mit Processwire `dazwischengeschaltet` funktioniert meine Funktion aus dem JavaScript nicht mehr (die OnClick Funktion). Was muss ich da anders machen über Processwire?
    Du musst die Datei umbenennen von index.html in index.php. Nur bei der Endung php werden die php-Befehle innerhalb der Datei ausgeführt.
    und noch eine neue Frage:
    auf meinem lokalen eigenen XAMPP Server funktioniert miene Seite jetzt, sowohl mit als auch ohne Processwire (bis auf die Kleinigkeiten oben).
    Nun habe ich die ganzen Ordner einfach mal auf den Server meines Host-Providers hochgeladen.
    Dort funktioniert die Seite ohne Processwire,
    aber auf Processwire darf ich nicht zugreifen bzw. die Dateien werden nciht gefunden.

    Die Dateiberechtigungen sind alle richtig, 644 und 755 und das HTML Verzeichnis 750.
    Dennoch sagt er mir, ich dürfe nicht auf die Seite zugreifen bzw. da sei ein Server-Konfigurationsfehler.

    Der Provider antwortete mir
    "je nach aktivierter phpVersion via .htaccess Datei nutzen Sie als DB Host bitte "127.0.0.1" oder "localhost""

    Allerdings glaube ich, das hilft mir gar nicht weiter.

    Wie kann ich über eine normale Domain übers Internet auf meine Processwire-Seite zugreifen?
    Mit Serverrechten kenn ich mich nur wenig aus. Aber da du deine Dateien einfach rüberkopiert hast, kann es sein dass da Einstellungen drin sind die nur auf dein System zutreffen? Möglicherweise musst du erst mal die Orignal PRocesswire Dateien auf den Server hochladen und dann dort ein Art Setup Skript ausführen.

    Benutzt Processwire überhaupt eine Datenbank? Wenn nicht dann ist der Hinweis vom Support tatsächlich sinnlos.
    Blue Force ist offline

  5. #5 Zitieren
    Veteran
    Registriert seit
    Jun 2012
    Beiträge
    629
    Zitat Zitat von Blue Force Beitrag anzeigen
    Du musst die Datei umbenennen von index.html in index.php. Nur bei der Endung php werden die php-Befehle innerhalb der Datei ausgeführt.
    Welche Datei?
    Ja, Processwire benutuzt eine MySQL Datenbank, daher habe ich gar keine index.html oder php mehr.

    Der Inhalt des Feldes, wo auch die Onclick Funktion drin steht, steht (wenn ich nun Processwire benutze, statt direkt meine html Datei) innerhalb einer Datenbank.
    Eine main.js datei wird trotzdem benutzt. DIE liegt in einem folder.
    Gothicforum ist offline

  6. #6 Zitieren
    Retro Micky Avatar von Blue Force
    Registriert seit
    May 2009
    Beiträge
    26.192
    Hast du Processwire zuerst ordnungsgemäß auf dem Webserver installiert? Also Processwire Orginaldateien hochgeladen und Setup gestartet. Dann erscheint eine Checkliste ob alles zur Installation bereit ist. War die ganze Checkliste ok? Hat die Anbindung zur Datenbank funktioniert?
    Blue Force ist offline Geändert von Blue Force (06.06.2018 um 17:41 Uhr)

  7. #7 Zitieren
    Veteran
    Registriert seit
    Jun 2012
    Beiträge
    629
    Ja, ich habe das mittlerweile alles nochmal gründlich von vorne gemacht und die Seite läuft auch.
    Auch wenn ich nun normal übers Internet die Seite öffne.
    Nur der Javascript-Befehl mit dem Bild vergrößern wird nicht mehr gemahct.
    Gothicforum ist offline

  8. #8 Zitieren
    Retro Micky Avatar von Blue Force
    Registriert seit
    May 2009
    Beiträge
    26.192
    Mir ist noch nicht klar wohin und in welcher Form du den Code der Javascript-Funktion (pictureFunction...), und den Code der aufrufenden Seite (also mit den Bild und OnClick=...) genau hingeschrieben hast. Direkt in den Template-Dateien (processwire\site\templates), oder im Editor in der Weboberfläche?

    Die Processwire-Befehle ($page-> ...) scheinen nur direkt in den Template-Files zu funktionieren, nicht aber im Seiteneditor.

    Übrigens heisst es echo $page->images->last()->httpUrl statt echo $page->Bilder->last()->httpUrl
    Blue Force ist offline

  9. #9 Zitieren
    Veteran
    Registriert seit
    Jun 2012
    Beiträge
    629
    Zitat Zitat von Blue Force Beitrag anzeigen
    Übrigens heisst es echo $page->images->last()->httpUrl statt echo $page->Bilder->last()->httpUrl

    Also so wie ich das sehe, heißt es "images", wenn du in deinem Template das Field (das Array, das die Bilder beinhaltet) ebenfalls "images" genannt hast. ICh habe es aber "bilder" genannt, daher funktioniert bei mir dieser Befehl, wenn ich "bilder" schreibe.

    Zitat Zitat von Blue Force Beitrag anzeigen
    Mir ist noch nicht klar wohin und in welcher Form du den Code der Javascript-Funktion (pictureFunction...), und den Code der aufrufenden Seite (also mit den Bild und OnClick=...) genau hingeschrieben hast. Direkt in den Template-Dateien (processwire\site\templates), oder im Editor in der Weboberfläche?

    Der Code, der beinhaltet, dass das Bild angezeigt wird, steht im Editor in der Weboberfläche und damit in der Datenbank.
    In der Template php-Datei steht daraufhin der Code mit "$page->image zeigen bla".
    Und das Bilder anzeigen funktioniert auch.

    Ebenfalls in der Weboberfläche im Editor, in einem anderen Field, nämlich ich glaub das war "title", steht u.a. der html code für "als Skript die javascript datei main.js benutzen".
    Da drin steht auch der Code für die main.css datei und die wird ja ebenfalls richtig benutzt, also richtig angegeben ist das scheinbar alles.

    Vielleicht kommt das mit dem "this" nicht mehr hin oder so..?
    Gothicforum ist offline

  10. #10 Zitieren
    Retro Micky Avatar von Blue Force
    Registriert seit
    May 2009
    Beiträge
    26.192
    Ich habe es jetzt hinbekommen daß ein Bild angeklickt und in der Größe geändert werden kann, allerdings nur im Template.
    Das heisst das Bild ist dann auf jeder Seite zu sehen die dieses Template benutzt.

    Template-Datei:
    Code:
    ...
    <script src="<?php echo $config->urls->templates?>scripts/main.js"></script>
    ...
    <img src=" <?php echo $page->images->last()->httpUrl; ?> " onClick="pictureFunction(this)" /> 
    ...
    main.js:
    Code:
    function pictureFunction(pic){
      //alert("hi");
      pic.style.width  =  "300px";
    };
    Ob man es auch pro Seite machen kann weiss ich nicht. Immer wenn ich im Editor Javascript mit Onclick... reingeschrieben habe hat der Editor das wieder gelöscht oder verändert.
    Die main.css wird andcheinend automatisch eingebunden ohne daß man was machen muss, die main.js muss man wohl selbst einbinden.
    Blue Force ist offline

  11. #11 Zitieren
    Veteran
    Registriert seit
    Jun 2012
    Beiträge
    629
    Okay, damit habe ich den Fehler gefunden.


    Erstmal, ich hatte mich ein wenig geirrt.
    Die Bilder sind natürlich nicht IM Editor-Fenster per Code eingefügt, sondern per Editor-Fenster in das Field (Array) "Bilder" geladen.
    und dann werden sie per PHP des Templates ausgegeben.

    So, und dein Code, mit dem du die main.js eingebunden hast, funktioniert bei mir auch.
    Ich hatte es ohne php gemacht und bin mir grad nicht sicher, warum das dann nicht funktioniert.

    Dein Code:
    "<script src="<?php echo $config->urls->templates?>scripts/main.js"></script>"

    Mein Code zuvor:
    "<script language="javascript" type="text/javascript" src="scripts/main.js"></script>"

    Und das hat nicht hingehauen.
    Gothicforum ist offline

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •