Neuigkeiten:

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

Hauptmenü
-Menü

Beiträge anzeigen

Dieser Abschnitt erlaubt es dir, alle Beiträge anzusehen, die von diesem Mitglied geschrieben wurden. Beachte, dass du nur Beiträge sehen kannst, die in Teilen des Forums geschrieben wurden, auf die du aktuell Zugriff hast.

Beiträge anzeigen-Menü

Beiträge - Promoz

#1
Wonach suchen wir denn? Nach einem fix und fertigen Mozilo-Logo - oder nach einer Aufgabenbeschreibung dafür, die dann umgesetzt wird? Zum Beispiel von angehenden kreativen Fachwerkern in einschlägigen Fachschulen im Rahmen eines von MOZILO ausgelobten Wettbewerbs, der dem Sieger zwar keine ,,Kohle", aber Anerkennung einbringt. Wonach suchen wir? Wir sollten uns nicht überschätzen.
#2
Die gewisse Begeisterung für die ,,Sandkasten"-Idee teile ich nicht. Sandkasten ist vielleicht ein Synonym für einfach, eventuell auch für Kreativität. Aber er steht m.E. zu sehr für naiv, kindlich, Schaufelchen und Förmchen - also unprofessionell. Das ist MoziloCMS aber keineswegs. Wer hier weiterdenken möchte, sollte sich eher ans echte Handwerk halten: z.B. an Spaten und Kelle, ans Pflanzen, Mauern und Brückenbauen.

Die Natur als Vorbild zu nehmen (ob Blatt oder Baum), hat den Vorteil, ,,nach oben offen" zu sein, also den Wachstums- und Weiterentwicklungsgedanken automatisch im Bild/Logo visuell mitliefern zu können. Nachteil: Alles findet irgendwie im ,,grünen Bereich" statt, was nicht negativ, aber irgendwie überhaupt nicht mehr neu und original ist.

Wie sehr eilt es denn mit dem neuen Logo für MoziloCMS ff.?
#3
Wie kann ich...? / Re: Seite mit Login schützen
18. November 2009, 19:55:35
Um die Anzeige der ,,geschützten" Daten im Seitenquelltext während des Logins zu unterbinden, muss das benutzerdefinierte Syntaxelement wie folgt geändert werden:

usersess = [php|<div class="usersess">{VALUE}</div>]Promoz
#4
Wie kann ich...? / Re: Seite mit Login schützen
18. November 2009, 15:56:27
Zitat von: "AndreHa"Hi Promoz.
Ja, hatte ich auch so drin, nur beim hier reinpasten war der Fehler.
Also nochmal.
Benutzerdefiniertes Element:
usersess = <div class="usersess">{VALUE}</div>Inhaltsseite:
[php|session_start();
$_SESSION^["_catpage_"^] = "index.php?cat=08_AKTION&page=04_testpw";
$_SESSION^["_pageurl_"^] = "kategorien/AKTION/04_testpw";
include("myphp/usersess/usersess.php");]
[usersess|ffsfsffedgrtg
hbtzlskmcvsdvl dsbödlvjasckväasökvj ndfkndlk m.m,sdvmdlsökb
nbkhgjkhgm,nh, gj,mghmh
fnbmbjkhj
gfnbnjmhjbkzikhgm,hj
ghmghghnghmghj, jkljhl,
mnghjmhjmhfjömnokghäkfäbdsfojfgpfgofghn
]

Verzeichnis der drei usersess dateien:
myphp/usersess/
Alle drei sind 1:1 hier aus diesem Thread per cut&paste mit dem angegebenen Namen erstellt.

Wenn ich mich jetzt mit Test Test anmelde kommt die Fehlermeldung:
Warning: file_get_contents(kategorien/AKTION/04_testpw) [function.file-get-contents]: failed to open stream: No such file or directory in /mnt/web2/23/39/543739/htdocs/0-s-wie-sparen/myphp/usersess/usersess.php on line 82
Line 82 ist $_content = file_get_contents($_dat);

AndreHa,

Folgendes hilft Dir vielleicht weiter. Tipp: Benutze die CMS-Variablen {CATEGORY}, {PAGE} und {PAGE_FILE} auf der Inhaltsseite, dann sollte sie auch von der Einlesefunktion in usersess.php  gefunden werden.

Nicht vergessen: Das alles eignet sich nicht für irgendwelche vertrauliche Daten, weil sie im Quelltext sichtbar bleiben. Besser ist es, auf die Lösung der Mozilo-Coder zu warten.

Promoz


Benutzerdefiniertes Syntaxelement:

usersess = <div class="usersess">{VALUE}</div>
Eintrag in style.css des aktuellen Layouts:

div.usersess {
  display:none;
}
div.uss_loginform {
  margin-top:0px;
}
table.uss_loginform {
  background-color:#efefef;
  padding:6px;
}
td.uss_loginform {
  padding:6px;
  font-weight:normal;
}
td.uss_loginformtext {
  padding:6px;
  font-weight:bold;
  color:#000000;
}
input.uss_logformsubmit {
  width:100px;
  text-align:center;
  background-color:#dfdfdf;
  font-weight:bold;
  padding:3px;
}

Eintrag in usersessconf.php:

define("USERSESS_DIR","myphp/usersess");
?>

Inhaltsseite:

Zitat[php|session_start();
$_SESSION^["_catpage_"^] = "index.php?cat={CATEGORY}&page={PAGE}";
$_SESSION^["_pageurl_"^] = "kategorien/{CATEGORY}/{PAGE_FILE}";
include("myphp/usersess/usersess.php");]

[usersess|[ueber1|Testseite 3]
Eine große Heiterkeit hat meine ganze Seele eingenommen, gleich den süßen Frühlingsmorgen, die ich mit ganzem Herzen genieße. Ich bin allein und freue mich meines Lebens in dieser Gegend, die für solche Seelen geschaffen ist wie die meine. Ich bin so glücklich, mein Bester, so ganz in dem Gefühle von...]
#5
Wie kann ich...? / Re: Seite mit Login schützen
17. November 2009, 20:58:36
Zitat von: "AndreHa"Ich glaub, ich hab da was noch nicht richtig verstanden:
Die Seite, auf der ich's teste, ist
http://www.s-wie-sparen.com/index.php?c ... =04_testpw

Alle usersess-files sind in http://www.s-wie-sparen.com/myphp/usersess/

Ich hab's jetzt auf der Seite so eingebaut:
[php|session_start();
$_SESSION^["_catpage_"^] = "index.php?cat=08_AKTION&page=04_testpw";
$_SESSION^["_pageurl_"^] = "kategorien/AKTION/04_testpw";
include("myphp/usersess/usersess.php");]
usersess|[ueber1|Testseite 1]
Eine [fett|wunderbare etcetera etcetera]]

Das Ergebnis sieht aber immer noch genau so aus wie vorher.

Hast du viellecht ein Beispiel, wie's aussehen sollte?

AndreaHa,

Das Beispiel bekommst Du, aber vorab notiere erst einmal vor "usersess|" (benutzerdefiniertes Syntaxelement) eine öffnende eckige Klammer "[". Dann sehen wir weiter.

Promoz
#6
Wie kann ich...? / Re: Seite mit Login schützen
15. November 2009, 21:35:46
Zitat von: "AndreHa"Moin zusammen!

So... ich hab's eingebaut  (2x sogar) , auch den Pfad genau so gelegt wie oben beschrieben.
Aber die Ergebnisse sind höchst unterschiedlich.

1. Versuch:
http://www.s-wie-sparen.com/index.php?c ... =04_testpw
Das Login erscheint zwar, aber ganz links oben im Fenster, -also nicht im Inhaltsfenster.
Ausserdem wird der Inhalt schon vor dem Login im Inhaltsfenster angezeigt.
Wenn man sich einloggt, wird der Inhalt nochmal ausgegeben, aber wieder oben links unter dem Login.

2. Versuch:
http://www.mc-it.de/index.php?cat=02_ze ... 04_test-PW
hier wird gar nix angezeigt, trotz identischer Vorgehensweise.

Kann das vielleicht an den Layouts liegen?
Ja, es könnte auch am Layout liegen.

Aber vielleicht auch daran: Der Konstante USERSESS_DIR in usersessconf.php dient lediglich der Steuerung innerhalb des Login-Programms. Auf der jeweiligen MoziloCMS-Inhaltsseite muss diese Pfadangabe ,,per Hand" korrekt angegeben werden.

Siehe unten.
Hilft das weiter?

Promoz
---
Einbinden auf der Inhaltsseite wie folgt:
[php|session_start();
$_SESSION^["_catpage_"^] = "index.php?cat={CATEGORY}&page={PAGE}";
$_SESSION^["_pageurl_"^] = "kategorien/{CATEGORY}/{PAGE_FILE}";
include("myphp/usersess/usersess.php");]
usersessconf.php
<?php
//Direkten Aufruf der Datei om Browser unterbinden

if(substr_count($_SERVER["REQUEST_URI"],"usersessconf.php") != 0):
header("Location:index.php");
endif;

// Ab hier Konfigurations-Einstellungen
// definieren oder bearbeiten; zurzeit nur eine Konstante

define("USERSESS_DIR","myphp/usersess");

?>
#7
Wie kann ich...? / Re: Seite mit Login schützen
06. November 2009, 22:11:53
Zitat von: "AndreHa"Sehr schön, das würd ich auch gern probieren :-)

Wo müssen denn die Dateien

usersess.php
usersesspw.php
usersessconf.php

hin?

In welches Verzeichnis die usersess-Dateien kopiert werden, ist im Grunde egal. Es muss nur mit dem Eintrag in der Datei usersessconf.php übereinstimmen. Die einzelnen usersess-Dateinamen  dürfen nicht geändert werden.

Die Userdaten in der Datei usersesspw.php müssen ,,per Hand" mit einem Texteditor ergänzt/bearbeitet/gelöscht werden. Ein ,,." als erstes Zeichen in jeder User-Zeile ist unbedingt erforderlich. Das Trennzeichen zwischen Username und MD5-Userpasswort ist ein "|". Für die MD5-Verschlüsselung des Passworts gibt es entsprechende Tools im Internet.

Weil es Probleme gibt mit den ,,geschützten" Inhaltsseiten bei der CMS-Suche, empfehle ich, diese Inhaltsseiten als ,,versteckt" zu kennzeichnen. Um sie trotzdem zur Verfügung zu stellen, müssen sie  als Link in die Website eingebaut werden.

So weit. Aber wir warten ja alle gespannt auf die MoziloCMS-Login-Lösung - dann hat sich meine Variante sicherlich erledigt.

Promoz
#8
Wie kann ich...? / Re: Seite mit Login schützen
06. November 2009, 00:15:52
Zitat von: "Hermann"Nein. Der für Version 1.12 derzeit geplante Mechanismus ist viel einfacher als der hier präsentierte. Wir wollten im ersten Ansatz auf Sessions gänzlich verzichten. Das hat mehrere Gründe, u.a. wurde uns schon vermehrt von Problemen mit Sessionmanagement auf verschiedenen Hostern berichtet, außerdem müsste der Besucher cookies Akzeptieren oder moziloCMS müsste die Sessionid durch die Links mitschleifen.

Das hört sich gut an. Jede halbwegs sichere ,,Login"-Lösung, die via MoziloCMS-Originalcode gefunden wird, ist sicher besser.
Ich habe versucht - bis es soweit ist -, mit recht einfachen Mitteln eine ,,aufgesetzte" Variante zu realisieren, die immerhin funktioniert. Vor ,,Hackern" sicher ist diese selbstverständlich nicht, und deshalb nicht für das ,,Verstecken" von Inhaltsseiten mit besonders sensiblen Daten geeignet. Aber für den ,,Normalfall"  sollte es reichen.

Promoz
#9
Wie kann ich...? / Seite mit Login schützen
05. November 2009, 12:54:14
Ich schütze bestimmte Inhaltsseiten mit einer Passwortabfrage, für die ich ein benutzerdefiniertes Syntaxelement, etwas PHP und weiter nichts benötige.

Versuch macht klug auf http://www.progt.de (Testeiten 1 bis 3). Anmelden mit Test und Test.

Promoz


Benutzerdefiniertes Syntaxelement:

Zitatusersess = <div class="usersess">{VALUE}</div>
oder
Zitatusersess = <div style="display:none">{VALUE}</div>

Einbinden in Inhaltsseite:

[php|session_start();
$_SESSION^["_catpage_"^] = "index.php?cat={CATEGORY}&page={PAGE}";
$_SESSION^["_pageurl_"^] = "kategorien/{CATEGORY}/{PAGE_FILE}";
include("myphp/usersess/usersess.php");]
[usersess|[ueber1|Testseite 1]
Eine [fett|wunderbare] große Heiterkeit hat meine <h2>ganze Seele</h2> eingenommen, gleich den süßen Frühlingsmorgen, die ich mit <b>ganzem Herzen</b> genieße. Ich bin allein und freue mich meines Lebens in dieser Gegend, die für solche Seelen geschaffen ist wie die meine. Ich bin so glücklich, mein Bester, so ganz in dem Gefühle von ruhigem Dasein versunken, daß meine Kunst darunter leidet. <br /><b>Ich</b> könnte jetzt nicht zeichnen, nicht einen Strich, und bin nie ein größerer Maler gewesen als in diesen Augenblicken. Wenn das liebe Tal um mich dampft, und die hohe Sonne [kursiv|an der Oberfläche der undurchdringlichen Finsternis] meines Waldes ruht, und nur einzelne Strahlen sich in das innere Heiligtum stehlen, ich dann im hohen Grase am fallenden Bache liege, und näher an der Erde tausend mannigfaltige Gräschen mir merkwürdig werden; wenn ich das der <a href='http://www.spexard.de'>(Link nach Spexard)</a> kleinen Welt zwischen Halmen, die unzähligen, unergründlichen Gestalten der Würmchen, der <h1>Mückchen</h1> näher an meinem Herzen fühle, und fühle die Gegenwart des Allmächtigen, der uns nach seinem Bilde schuf, das Wehen des Alliebenden, der uns in ewiger Wonne schwebend trägt und erhält; mein Freund! Wenn's dann um meine Augen dämmert, und die Welt um mich her und der Himmel ganz in meiner Seele ruhn wie die Gestalt einer...<br />
[fett|Dies ist ein Typoblindtext.] An ihm kann man sehen, ob alle Buchstaben...
]

Die Datei usersess.php

<?php

$_SESSION
["_sid_"] = session_id();

require_once(
"usersessconf.php");

if(
$_REQUEST["_logout_"]):
$_catpage $_SESSION["_catpage_"];
  
$_SESSION = array();
  if(isset(
$_COOKIE[session_name()])):
  
setcookie(session_name(), ''time()-42000'/');
  endif;
session_destroy();
  
header("Location:$_catpage");
endif;

if(
$_REQUEST["_login_"]):
if(UserCheck($_REQUEST["_username_"],$_REQUEST["_userpw_"])):
    
$_SESSION["_logok_"] = true;
else:
  
$_SESSION["_logok_"] = false;
    
$_fehler "<span style='color:#6F6F6F;font-weight:bold'>Login-Fehler!<span>";
  endif;
endif;

if(
$_SESSION["_logok_"] == true):
echo ReadDat($_SESSION["_pageurl_"]);
echo "<br /><br /><div>".
 "<form name='logout_form' action='$PHP_SELF' method='post'>".
 "<input class='uss_logformsubmit' type='submit' name='_logout_' value='Abmelden'>".
 "</form>".
       
"</div>";
else:
echo "<div class='uss_loginform'>".
       
"<form name='login_form' action='$PHP_SELF' method='post'>".
       
"<table class='uss_loginform'>".
       
"<tr><td class='uss_loginformtext' colspan='2'>".
  
 "Für diese Seite bitte einloggen:".
       
"</td></tr>".
       
"<tr><td class='uss_loginformtext' colspan='2'>".
       
substr(strrchr($_SESSION["_catpage_"],"_"),1).
       
"</td></tr>".
       
"<tr><td class='uss_loginform'>".
  
 "Name:".
       
"</td><td class='uss_loginform'>".
       
"<input class='uss_loginform' name='_username_' type='text' size='20' value=''>".
  
 "</td></tr><tr><td class='uss_loginform'>".
       
"Passwort:".
       
"</td><td class='uss_loginform'>".
       
"<input class='uss_loginform' name='_userpw_' type='password' size='20' value=''>".
       
"</td></tr><tr><td style='text-align:right' colspan='2'>".
       
"<input class='uss_logformsubmit' type='submit' name='_login_' value='Anmelden'>".
       
"</td></tr>".
       
"</table>".
       
"</form>".
 $_fehler.
       
"</div>";
endif;

function 
UserCheck($_name,$_pw)
{
  
$_name trim($_name);
  
$_pw trim($_pw);

  
$_userall file(USERSESS_DIR."/usersesspw.php");

for($_i=0;$_i<count($_userall);$_i++):
    if(
substr(trim($_userall[$_i]),0,1) != ".") continue;
    list(
$_a,$_b,) = explode("|",trim($_userall[$_i]));
    if(
substr($_a,1) == $_name && $_b == md5($_pw)):
    
return true;
    else:
    
continue;
    endif;
endfor;

  return 
false;
}

function 
ReadDat($_dat)
{
  
$_content file_get_contents($_dat);
  
$_content substr(trim($_content),strpos($_content,"[usersess|")+10);
  
$_content substr($_content,0,strrpos($_content,"]"));
  return 
$_content;
}

?>

Die Datei usersesspw.php

<?php
if(substr_count($_SERVER["REQUEST_URI"],"usersesspw.php") != 0):
header("Location:index.php");
endif;
?>


// Ab hier Usereinträge: (Dot)Name|MD5-Passwortcode

.Test|0cbc6611f5540bd0809a388dc95a615b

Die Datei usersessconf.php

<?php
if(substr_count($_SERVER["REQUEST_URI"],"usersessconf.php") != 0):
header("Location:index.php");
endif;

// Ab hier Konfigurations-Einstellungen
// definieren oder bearbeiten

define("USERSESS_DIR","myphp/usersess");

?>
#10
Mein moziloCMS / Re: mozilo-Seiten von rolinux
04. Oktober 2009, 15:16:29
Zitat von: "rolinux"http://www.rolf-langmann.de
http://www.gam-birkenfeld.de.vu
http://www.lk-obernhausen.de.vu
http://www.badischer-dachshund.de

Für alle vier Seiten habe ich das mozilo-Standard-Layout kopiert und angepasst.

Auf allen diesen Seiten wird das mozilo-GB verwendet.

Die ersten drei haben außerdem das mozilo-Kontaktformular im Bauch, die Dachshund-Seite verwendet das Kontaktformular von http://www.hoerandl.com ("Kontakt" und "Welpenmeldung online"), das im alten Forum auch irgendwo als gut beworben wird. Und es ist gut.  ;)

Gruß
rolinux

Wie genau binde ich den Formmailer auf einer Inhaltsseite ein?
Mit Folgendem:

[html|<link rel="stylesheet" href="./B4YFormmailer2/templates/default/style.css" type="text/css" />]
[php|include("./B4YFormmailer2/include.php");]

funktioniert es offenbar nicht, auch wenn keine Fehlermeldungen auftreten. Vom Mailformular ist nichts zu sehen. Im Gegensatz zur css-Datei wird das Formular gar nicht "included".

Promoz
#11
Um alle Bilderverzeichnisse aus dem Mozilo-CMS-Galerieordner auf einer Inhaltsseite automatisch anzuzeigen, benutze ich folgende php-Datei und binde sie in die Inhaltsseite ein.

Die Steuerung mittels Parameter ist möglich für
- Anzahl der angezeigten Bilder
- zufällige Auswahl (Vorgabe 0, also nein)
- Spaltenanzahl

Promoz

Einbinden in Inhaltsseite wie folgt:

[php|include("myphp/showgalall.php");]

[php|ShowGalAll(4,1,4);]

Code der Datei showgalall.php

<?php
function ShowGalAll($_show=1,$_rand=0,$_col=4)
{
 
$_dirs "./galerien";

 
// Verzeichnisse des Galerie-Ordner einlesen 
 
$_d dir($_dirs);
 while(
$entry1=$_d->read()):
  if(
$entry1 != "." && $entry1 != ".."):
   
$_dirsarray[] = $entry1;
  endif;
 endwhile;
 
$_d->close();

 
//Ausgabe der einzelnen Galerie-Bilderverzeichnisse
 
foreach ($_dirsarray as $_key1 => $_value1):
  
$_pics 0;
  
$_picarray = array();
  
$_showarray = array();
  
$_show1 $_show;
  if(
$_show1 1$_show1 1;
  if(
$_col 1$_col 1;

  
$_dir "./galerien/".$_value1."/vorschau";

  
$d dir($_dir);
  while(
$entry=$d->read()):
   if(
substr($entry,-4) == ".jpg" || substr($entry,-4) == ".gif" ||     substr($entry,-4) == ".png"):
    
$_picarray[] = $entry;
   endif;
  endwhile;
  
$d->close();

  
asort($_picarray);
  
$_pics count($_picarray);
  if(
$_show1 $_pics$_show1 $_pics;

  if(
$_rand == 1):
   
shuffle($_picarray);
  endif;

  
$_showarray array_slice($_picarray,0,$_show1);

  echo 
"<table class="showgalprepicstitle">";
  echo 
"<tr><td class="showgalprepicstitle">";
  echo 
$_value1;
  echo 
"&nbsp;<span style="font-size:0.8em">(".$_show1." von  ".count($_picarray).")</span>";
  if(
$_rand == 1):
   echo 
"&nbsp;<span style="font-size:0.8em;fontweight:normal">Auswahl/Anordnung zufällig</span>";
  endif;
  echo 
"</td></tr>";
  echo 
"</table>";

  echo 
"<table class="showgalprepics">";
  echo 
"<tr><td colspan="$_show">";
  if(
$_rand == 1):
   echo 
"Galerie aufrufen mit Klick aufs Bild.";
  else:
   echo 
"Bild/Galerie aufrufen mit Klick aufs Bild.";
  endif;
  echo 
"</td></tr>";

  echo 
"<tr>";

  
$_a 0;
  foreach (
$_showarray as $_key => $_value):
   if(
$_a && ($_a%$_col == 0)):
    echo 
"</tr><tr>";
   endif;
   echo 
"<td class="showgalprepics">";
   if(
$_rand == 1):
    echo 
"<a href="./gallery.php?gal=".$_value1.""><img class="showgalprepics" src="".$_dir."/".$_value."" alt=""></a>";
   else:
    echo 
"<a href="./gallery.php?gal=".$_value1."&index=".($_key+1).""><img class="showgalprepics" src="".$_dir."/".$_value."" alt=""></a>";
   endif;
   echo 
"</td>";
   
$_a += 1;
  endforeach;

  echo  
"</tr>";
  echo 
"</table>";

 endforeach;
}
?>
#12
Tipps und Tricks / Galerie-Übersicht auf Inhaltsseite
20. September 2009, 21:33:07
Um eine Galerie-Übersicht - oder auch mehrere - direkt auf einer Inhaltsseite einzubinden, lese ich via php-Datei die Bilder aus den jeweiligen Galerie-Vorschau-Ordnern ein und gebe sie auf der Inhaltsseite aus.

Der Aufruf der Bilder/Galerien erfolgt mit einem Klick aufs Bild. Bei zufälliger Bildanzeige wird stets das erste Bild in der eigentlichen Galerieansicht aufgerufen, ansonsten das sofort das angeklickte Bild. (Eine Lösung, wie auch bei zufälliger Bildauswahl das jeweilige Bild direkt aufgerufen werden kann, habe ich noch nicht gefunden. Das Bildereinlesen der Datei gallery.php funtioniert offenbar nach anderen Regeln. Tipps willkommen...)

Durch Parameterangaben beim Aufruf der php-Datei auf der Inhaltsseite kann außer einem gültigen und zwingenden Eintrag eines Mozilo-Galerie-Namens (ansonsten Fehlermeldung) gesteuert werden:

- die Anzahl der angezeigten Bilder (Vorgabe 1; wenn größer als Gesamtzahl der Bilder, dann alle)
- ob die Bilderauswahl zufällig oder nicht angezeigt wird (Vorgabe 0, also nein)
- wieviele Bilder nebeneinander (Spaltenanzahl) angezeigt werden (Vorgabe 4)

Die Darstellung der einzelnen Galerie-Titelzeilen und der Bilderübersicht wird über zusätzliche Einträge in der aktuellen Layout-css-Datei festgelegt.

Anwendungsbeispiel unter www.progt.de (Bilderbogen).

Promoz

---

Aufruf der php-Datei und der darin enthaltenen Funktion in der Inhaltsseite aus dem Ordner myphp:

[php|include("myphp/showgalprepics.php");]

[php|ShowGalPrePics("Spexard",2,1,2);]
[php|ShowGalPrePics("Garten",99,0,4);]
[php|ShowGalPrePics("Allerlei",3,0,3);]

Code der php-Datei:

<?php
function ShowGalPrePics($_galdir,$_show=1,$_rand=0,$_col=4)
{
if(
$_show 1$_show 1;
if(
$_col 1$_col 1;

$_dir "./galerien/".$_galdir."/vorschau";

if(!
file_exists($_dir)):
  echo 
"<br>Galerie <span style="color:#ff0000;font-size:1.1em;font-weight:bold">".$_galdir."</span> 
           
nicht gefunden.<br>";
else:
  
$d = dir($_dir);
  // Vorschau-Ordner einlesen
  while(
$entry=$d->read()):
    if(substr(
$entry,-4) == ".jpg" || substr($entry,-4) == ".gif" || substr($entry,-4) == ".png"):
      
$_picarray[] = $entry;
    endif;
  endwhile;
  
$d->close();

  asort(
$_picarray);
  
$_pics = count($_picarray);
  if(
$_show > $_pics$_show = $_pics;
  
  // Wenn Zufalls-Parameter gesetzt, dann Bilder-Array "
schütteln"
  if(
$_rand == 1):
    shuffle(
$_picarray);
  endif;

  
$_showarray = array_slice($_picarray,0,$_show);

  // Anzeige Galerie-Titel
  echo "
<table class="showgalprepicstitle">";
  echo "
<tr><td class="showgalprepicstitle">";
  echo 
$_galdir;
  echo "
&nbsp;<span style="font-size:0.8em">(".$_show." von ".count($_picarray).")</span>";
  if(
$_rand == 1):
    echo "
&nbsp;<span style="font-size:0.8em;font-weight:normal">Auswahl/Anordnung zufällig</span>";
  endif;
  echo "
</td></tr>";
  echo "
</table>";

  // Anzeige Bilderübersicht
  echo "
<table class="showgalprepics">";
  echo "
<tr><td colspan="$_show">";
  if(
$_rand == 1):
    echo "
Galerie aufrufen mit Klick aufs Bild.";
  else:
    echo "
Bild/Galerie aufrufen mit Klick aufs Bild.";
  endif;
  echo "
</td></tr>";
  echo "
<tr>";
  
$_a = 0;
  foreach (
$_showarray as $_key => $_value):
    if(
$_a > 0 && ($_a%$_col == 0)):
      echo "
</tr><tr>";
    endif;
    echo "
<td class="showgalprepics">";
    if(
$_rand == 1):
      echo "
<a href="./gallery.php?gal=".$_galdir."">
              <
img class="showgalprepics" src="".$_dir."/".$_value."" alt=""></a>";
    else:
      echo "
<a href="./gallery.php?gal=".$_galdir."&index=".($_key+1)."">
              <
img class="showgalprepics" src="".$_dir."/".$_value."" alt=""></a>";
    endif;
    echo "
</td>";
    
$_a += 1;
  endforeach;
  echo  "
</tr>";
  echo "
</table>";

endif; //!file_exists
}
?>

Einträge in css-Datei des aktuellen Layouts:

/* -------------------------------------------------------- */
/* ShowGalPics*/
/* --------------- */
table.showgalprepicstitle {
 width:95%;
}
td.showgalprepicstitle {
 font-size:1.3em;
 font-weight:bold;
 color:#ffffff;
 background-color:#8F8F8F;
 padding:4px;
}
a.showgalprepicstitle {
 font-size:1.3em;
 color:#ffffff;
 text-decoration:none;
}
a.showgalprepicstitle:hover {
 color:#000000;
}
table.showgalprepics {
}
td.showgalprepics {
 padding:5px 10px 5px 0;
 vertical-align:top;
}
img.showgalprepics {
 border:1px solid #000000;
}
#13
Auf meiner noch dürftig ausgestatteten Website (http://www.progt.de) erscheinen auf einer Galerie-Übersichtsseite (Bilderbogen) ,,Zufallsfotos" aus dem Vorschau-Ordner der jeweiligen Galerie. Dazu bedarf es lediglich einer kurzen PHP-Funktion. Angezeigt werden maximal alle Vorschaubilder einer Galerie.

Es ist sicher nicht das, was Du wirklich suchst, aber es zeigt Dir vielleicht einen Weg zur Problemlösung auf.

Promoz

---
// PHP-Funktion (in Datei z.B. myphp.php abgelegt):
<?php
function ShowPicArray($_dir,$_show=1)
{
if(
$_show 1$_show 1;
$_dir1 "./galerien/".$_dir."/vorschau";
$d dir($_dir1);
while(
$entry=$d->read()):
if(
substr($entry,-4) == ".jpg" || substr($entry,-4) == ".gif" || substr($entry,-4) == ".png"):
$pic_array[] = $entry;
endif;
endwhile;
$d->close();
shuffle($pic_array);

$anz count($pic_array);
if(
$_show $anz$_show $anz;

for(
$_i=0;$_i<$_show;$_i++):
echo 
"<img style="border:1px solid black" src="".$_dir1."/".$pic_array[$_i]."" vspace="4" hspace="2" alt="">";
endfor;
}
?>
---
// Einbinden in Inhaltsseite:
[php|include("myphp/myphp.php");]

[ueber1|Bilderbogen-Übersicht]

[php|ShowPicArray("Spexard");] [galerie|Spexard]
[php|ShowPicArray("Garten");] [galerie|Garten]
// Alternativ mit Angabe der angezeigten Bilder:
[php|ShowPicArray("Spexard",3);] [galerie|Spexard]
[php|ShowPicArray("Garten",4);] [galerie|Garten]
EDIT: Mit code-Tags hübsch gemacht. --Hermann
#14
Das Update auf Version 1.11.2 ermöglicht jetzt auch die Suche nach Wörtern mit Umlauten. Sehr gut. Aber die gefundenen Wörter mit ÄÖÜäöü werden nicht "hervorgehoben" angezeigt. Das funktioniert weiterhin nur mit "normalen" Buchstabenfolgen.

Promoz