Neuigkeiten:

moziloCMS verwendet Cookies. Wenn Sie auf unserer Seite weitersurfen, stimmen Sie der Cookie-Nutzung zu Datenschutzerklärung
moziloCMS Layouts
moziloCMS Plugins

Hauptmenü

Inhaltsseite mit Albenüberblick/PHP-Skript in Template einfügen

Begonnen von da_user, 01. März 2016, 19:44:39

« vorheriges - nächstes »

da_user

Hi,

ich habe vor ca. zwei Tagen angefangen mich mit Mozilo zu beschäftigen. Bis jetzt natürlich nur Lokal mit XAMPP. Ich bin mit Mozilo jetzt in weniger Zeit weiter gekommen, als in anderen CMS. Jetzt habe ich doch mal ein paar Fragen:
Ich setzte das Simpel Responsive ( http://www.mozilo.de/forum/index.php?action=media;sa=item;in=235 ) von "sbDESIGN" ein. Wie in der Layoutvorschau demonstiert, habe ich mir eine Galerie mit enstrspechender Übersicht unter Zuhilfenahme des Plugins Fotogalerie von blacknight angelegt ( http://moz2layouts.bechti.de/Galerie.html ).

Erste Frage:
Da ich auf meiner Homepage einige Fotoalben unterbringen möchte, ich bin ich derzeit noch nicht allzu begeistert vom Workflow:

  • Album anlegen und Fotos darin hochladen
  • neue Inhaltsseite mit der Fotogalerie + Kleinkram (Überschrift, Links um wieder zur Übersicht zu kommen,..) anlegen
  • neue Inhaltsseite auf der Übersichtseite mit Hilfe des "col_1_3"-Syntaxelement verlinken

Bei Schritt 2 habe ich das (Luxus-)Problem, dass ich für jede Seite irgendwie das gleiche mache, und Schritt 3 finde auch sehr aufwendig. Und es wird auch unübersichtlich im Editor.
Zudem stört mich in der Übersichtsseite die steife Aufteilung auf die von mir angelegten Spalten. Ich finde das gehört sich Bildschirmbreiten abhängig. Gibts da irgendwas? Oder Kniffe und Tricks?

Zweite Frage:
Ich würde gerne das Header.jpg ersetzen. Aber nicht gegen irgendein Bild, sondern gegen ein PHP-Skript. Hintergrund ist, dass ich mir schon vor einiger Zeit ein kleines Skript erstellt habe, dass aus einem Ordner ein zufälliges Bild zurückgibt.

Also habe ich in der template.html die Zeile
<img src="{LAYOUT_DIR}/grafiken/header.jpg" alt="headerimage" />
durch:
<img src="{LAYOUT_DIR}/grafiken/banner.php" alt="headerimage" />
ersetzt. Mit dem Ergebnis, dass ich jetzt gar kein Bild mehr angezeigt bekomme. Wenn ich mein Skript per Browser ansurfe, funktioniert es.

Vielleicht hat da auch wer den einen oder anderen Tipp für mich?

Viele Grüße
Matthias/da_user

PS: Listening von meinem banner.php-skript, evtl steckt der Fehler ja auch da drinnen:
<?php

  
function listPicture($dir=".",$type="gif") {
    
$x 0;
    foreach (
glob($dir."*.".$type) as $filename) {
    
//foreach (glob("[so]*_?.png",GLOB_BRACE|GLOB_ERR) as $filename) {
        
$picture[$x] = $filename;
        
$x++;
    }     
    return 
$picture;
}

$bannerlist listPicture("banner/","gif");

srand((double)microtime()*1000000);  //Zufallszahlgenerator initialisieren
$randimg $bannerlist[rand(0,count($bannerlist)-1)]; //Zufallsbild aus Zufallszahl zwischen 0 und Arraygröße-1 ermitteln

Header('Cache-Control: no-cache'); 
Header('Pragma: no-cache'); 
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Content-Type: image/gif"); 
readfile($randimg);
?>

maiemi

Hallo da_user,

schön dass Du zu mozilo gefunden hast :-)

das mit der Anordnung der Bilder auf einer Website ist im Standard tatsächlich, wie Du beschreibst, recht "statisch".
Eine "willkürliche" Anordnung kannst Du nur mit Positionsangaben (im CSS-File steht dann wo ein Bild auf der Seite stehen soll) regeln.

Für Galerien gibt es übrigens auch Plugins, die Dir die Arbeit erleichtern.
Schau mal hier: mozilo-Plugins für Version 2.0

Dass Du kein Bild mehr angezeigt bekommst, ist normal, weil Du ein Element, das ein Bild ("img") als Quelle (source => src)  erwartet, mit einem PHP-Script "fütterst". das PHP Scrpt ist kein Bild und kann somit nicht dargestellt werden.

Hier gibt es auch ein Plugin, (siehe Link oben), das Dir den Aufwand erleichtert (siehe hier ) oder aber , wenn Du das eigene Script verwenden willst, bindest Du es am besten im Template (verzeichnis "layouts/layoutname/template.html") ein:

</head>
<body id="a0">
  <div id="sb-header">    <!-- ab hier kommt mein eigenes PHP-Script -->
<?php
  
function listPicture($dir=".",$type="gif") {
    
$x 0;
    foreach (
glob($dir."*.".$type) as $filename) {
    
//foreach (glob("[so]*_?.png",GLOB_BRACE|GLOB_ERR) as $filename) {
        
$picture[$x] = $filename;
        
$x++;
    }     
    return 
$picture;
}

    
$bannerlist listPicture("banner/","gif");

    
srand((double)microtime()*1000000);  //Zufallszahlgenerator initialisieren
    
$randimg $bannerlist[rand(0,count($bannerlist)-1)]; //Zufallsbild aus Zufallszahl zwischen 0 und Arraygröße-1 ermitteln
    
    
Header('Cache-Control: no-cache'); 
    
Header('Pragma: no-cache'); 
    
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
    
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
    
header("Content-Type: image/gif"); 
    
readfile($randimg);
?>

</div> <!-- ENDE DES BANNERS-->


Auch hier musst Du die Größe des Container "banner" in der CSS (Cascading Style Sheet) angeben.

Ich persönlich habe die Banner, die Du hier siehst, mit diesem Plugin eingebunden.

da_user

Danke für deine Rückmeldung.

Die Galerieplugins kenne ich schon, ich binde ja mit dem Fotogalerie von blacknight auch die Galerien ein. Aber ich suche eine bequeme Möglichkeit, eben eine Übersichtseite über meine Galerien, bzw. einen Teil der Galerien, zu erhalten. Also quasi eine Ordnerstruktur nachzubilden, wie man sie auch auf den Rechner im Regelfall hat.

(Fotos Urlaub Italien 2014, Fotos Skiurlaub Österreich Winter 2014,....)

Zitatwenn Du das eigene Script verwenden willst, bindest Du es am besten im Template (verzeichnis "layouts/layoutname/template.html") ein:

Kann ich das Skript auch über die Datei einbinden? Also die .php, und nicht deren Inhalt?

wasp

Hallo mozilos!

Wg. Headerbild : Für den Zufall ist das Plugin "RandomNumber"

http://www.mozilo.de/forum/index.php?action=media;sa=item;in=193

hilfreich...

Plugin installieren

Dann besser (wg. der Wartbarkeit) eine Kategorie, wie etwa "KOPFBILDER" anlegen, und via DATEIEN-Reiter die gewünschten Bilder hochladen.

Zur Funktion meiner aktuellen Erklärung müssen diese Bilddateien den gleichen Namen haben mit dem Unterschied am Dateinamenende. Das geht im DATEIEN-Tab direkt mittels Doppelklick auf den Dateinamen - Aber besser vorarbeiten.

Beispiel:

header-1.jpg
header-2.jpg
header-3.jpg
...


Nun in der template.html die Zeile

<img src="{LAYOUT_DIR}/grafiken/header.jpg" alt="headerimage" />

durch

[bild|@=KOPFBILDER:header-{RandomNumber|1,3}.jpg=@]

ersetzen.

Dies hat normalerweise zur Folge, dass die schnöde Bildanweisung zu einem moziloiBILD - Befehl wird, das zufällig gewählt wird.

HINWEISE:

1. NIEMALS mit (auch mit vermeintlich guten) PHP-Grundkenntnissen ohne Plugin PHP-Quelltext einbinden! Zuviele Sicherheitsprobleme können auftreten.
2. Bilder für das Web immer als .JPG (manchmal durchaus weniger als 95% sinnvoll) bereitstellen, wegen des Traffics und der verlorenen Zeit.
3. Wenn Bildtransparenz erforderlich sein sollte, bei Nicht-Animationen bitte .png-Format wählen - Muss nun jeder Browser könnnen. Warum? -> Farbtiefe-/treue höher (GIF:256 Farben) und näher am aktuellen PHP-Standard...
4. Viele Nutzer kennen den Editor bei mozilo 2.0 noch nicht richtig - DAS VIDEO - 20 Min. die sich lohnen! Unbedingt ansehen!

Hoffe diese Info hilft!  8)


da_user

Hi,

danke wasp, soweit funktioniert das. Problem ist jetzt, dass das Banner größer gezogen wird, und damit verpixelt wird. Kann ich dem noch irgendwie beigehen, oder muss ich da übers CSS ran?

wasp

Rehi!

Ich war im Beispiel vom erwähnten "Simpel Responsive" Layout ausgegangen. Dort befindet sich im Header die Bilddatei "....Kategorien/Willkommen/dateien/start.jpg" (Katze, 720x250px) - Wenn dem also so ist, sollten die Bilder die gleiche Auflösung haben.

Ansonsten wären z.B. Lösungen über den Hintergrund (CSS3 background-size) oder auch mittels Plugin jQbackstretch (hier dann nur ein Bild je Galerie, wenn es starr bleiben soll) oder eine "Kombi" aus dem Plugin Headimg und der im Vorpost erwähnten  RandomNumber denkbar (dazu diesen Post) beachten!)

Dies als mögliche Ansätze für eine individuelle "Einzelfallentscheidung".   :)