========== ORIGEN ===========
GENERATOR STATICKYCH FOTOGALERII - ZDROJOVY KOD PHP
AUTOR: Daniel Stastny 2006 (pokud neni v komentari uvedeno jinak - resp. vypujcil jsem si jednu verejne dostupnou PHP funkci od Davida Grundla)
Pozn. v r. 2009 opraveny nalezene chybky, generator nyni funguje bez problemu
Generator tvori tyto soubory:
- pridat.php - pridani fotogalerie
- smaz.php - mazani fotogalerie
- inc.html.php - design fotogalerie
- edit.php - nastaveni hesla
"_","\xc3\xa1"=>"a","\xc3\xa4"=>"a","\xc4\x8d"=>"c","\xc4\x8f"=>"d","\xc3\xa9"=>"e","\xc4\x9b"=>"e","\xc3\xad"=>"i","\xc4\xbe"=>"l","\xc4\xba"=>"l","\xc5\x88"=>"n","\xc3\xb3"=>"o","\xc3\xb6"=>"o","\xc5\x91"=>"o","\xc3\xb4"=>"o","\xc5\x99"=>"r","\xc5\x95"=>"r","\xc5\xa1"=>"s","\xc5\xa5"=>"t","\xc3\xba"=>"u","\xc5\xaf"=>"u","\xc3\xbc"=>"u","\xc5\xb1"=>"u","\xc3\xbd"=>"y","\xc5\xbe"=>"z","\xc3\x81"=>"A","\xc3\x84"=>"A","\xc4\x8c"=>"C","\xc4\x8e"=>"D","\xc3\x89"=>"E","\xc4\x9a"=>"E","\xc3\x8d"=>"I","\xc4\xbd"=>"L","\xc4\xb9"=>"L","\xc5\x87"=>"N","\xc3\x93"=>"O","\xc3\x96"=>"O","\xc5\x90"=>"O","\xc3\x94"=>"O","\xc5\x98"=>"R","\xc5\x94"=>"R","\xc5\xa0"=>"S","\xc5\xa4"=>"T","\xc3\x9a"=>"U","\xc5\xae"=>"U","\xc3\x9c"=>"U","\xc5\xb0"=>"U","\xc3\x9d"=>"Y","\xc5\xbd"=>"Z");
return strtolower(strtr($text, $preklad));
}
function vstupni_formular() { // uvodni vstupni formular - policko pro heslo a cyklus pro vygenerovani formulare pro zadani poctu fotografii
echo "
";
}
function vstupni_formular_fotogalerie($pocet_policek, $nastaveni_databaze) { // formular nebude odesilat pouze textova data
echo "";
}
function zapis_hlavicka($soubor) {
fwrite($soubor, "
");
}
function zapis_css($soubor) {
fwrite($soubor, "");
}
function zapis_zahlavi($soubor) {
if (empty($_POST["nazev_fotogalerie"])) {
$nazev_galerie = "Fotogalerie";
} else {
$nazev_galerie = $_POST["nazev_fotogalerie"];
}
if (empty($_POST["popovidani"])) {
$uvod = "";
} else {
$uvod = "".htmlspecialchars(nl2br($_POST["popovidani"]))."
";
}
fwrite($soubor, "".$nazev_galerie."\n\n
".$nazev_galerie."
".$uvod."\n\n");
}
function zapis_hlavni($soubor, $soubor2, $slozka_fotografii) {
$policka = $_POST["pocet_policek"];
for ($i = 0; $i < $policka; $i ++) {
$jmeno_fotky = basename($_FILES['fotka']['name'][$i]);
// popisek fotky
if ($_POST["popisek"][$i]) {
$alt_fotky = $_POST["popisek"][$i];
$popisek_fotky = $_POST["popisek"][$i];
} else {
$alt_fotky = $jmeno_fotky;
$popisek_fotky = "";
}
$cislo = $i+1;
// presun fotek do slozky
$cilova_cesta = $slozka_fotografii;
$cilova_cesta = $cilova_cesta.basename($_FILES['fotka']['name'][$i]);
move_uploaded_file($_FILES['fotka']['tmp_name'][$i], $cilova_cesta); // presun fotek do slozky
$cesta = $cilova_cesta;
// zjisti udaje o fotce
$img_udaje = getimagesize($cesta);
$maximalni[$i] = $img_udaje[0]; // zjistime nejvetsi sirku z nahravanych fotek
$sirka_divu = $img_udaje[0] + 20;
// kontrola, zda jde o foto
$img_kontrola = false;
if (is_int($img_udaje[2])) { // pokud 2. index pole vyhodi integer, jde o obrazek
$img_kontrola = true; }
if ($jmeno_fotky && $img_kontrola) { // pokud neni odeslana fotografie (ci soubor jiny nez foto), konstrukce se nezobrazi
fwrite($soubor, "

".$cislo."".$popisek_fotky."
\n\n");
}
}
$sirka = max($maximalni) + 50;
if ($_POST["sablona"] == "css") {
fwrite($soubor2, "
body { padding: 0; margin: 0; background: #2D302A; font-family: 'Trebuchet MS', 'Tahoma CE', 'Arial CE', 'Helvetica CE', Tahoma, Arial, lucida, sans-serif; font-size: 12px; margin: 2em; padding: 0; color: #dfe0dc; text-align: center; }
#obsah { position: relative; margin: auto; width: ".$sirka."px; background-color: #585A53; border: 1px solid #636461; text-align: center; }
#uvod { border: 5px solid #636461; background: #545552; text-align: left; margin: 0 15px 0 15px; }
#uvod p { margin: 1em; }
h1 { padding: 20px; margin: 0; font-family: Georgia, sans-serif; text-align: center; font-weight: normal; font-size: 25px; }
.foto { margin: 20px auto 20px auto; background: #545552; border-right: 1px solid #3f403e; border-bottom: 1px solid #3f403e; }
.cislo { color: gray; margin-right: 20px; }
.obrazek { padding: 10px 10px 0 10px; margin: 0; }
.popisek { text-align: left; padding: 0; margin: 2px 0 10px 10px; }
.pata { color: #C4C1B3; margin: 1em; background: #3f403e; padding: 1em; }
.copy { text-align: center; color: gray; }
.odkaz_komentar { text-align: right; margin: 10px 15px 10px 0; }
a { color: silver; }
a:hover { text-decoration: none; border-bottom: 1px dotted gray; background-color: rgb(96,96,96); }
a:link { color: white; }
a.a_cislo { color: gray; margin-right: 20px; border: 1px solid gray; text-decoration: none; padding: 0 3px 0 3px; }");
} else {
fwrite($soubor2, " ");
}
}
function zapis_paticka ($soubor) {
if (!empty($_POST["paticka"])) {
fwrite($soubor, "
".$_POST["paticka"]."
");
}
fwrite($soubor, "
Galerii vytvořil OR;GEN - Generátor statických fotogalerií
© Daniel Šťastný, www.realmind.org
");
}
function finalni_hlaska($finalni_slozka) {
echo "» Prohlédněte si hotovou fotogalerii ".$_POST["nazev_fotogalerie"]."
";
echo "» Vytvořit novou
";
}
dtd();
html_head_start();
kodovani();
styl_stranky();
titulek("ORIGEN - Generátor statických fotogalerií");
head_end();
body_start();
hlavni_nadpis("ORIGEN - Generátor statických fotogalerií");
div_start();
if (!isset ($_POST["odesli_pocet_policek"])) { // hlavni vetev - pokud neni dan pocet policek, zobrazi se formular pro heslo a pocet policek
prvni_nadpis();
vstupni_formular();
} else { // pokud je vyplneno heslo a pocet policek pro fotografie, program pokracuje touto vetvi
$hlaska = "Složku se nepodařilo vytvořit, patrně již existuje. Obnovte tuto stránku prohlížečem - program se pokusí vygenerovat složku s novou číselnou příponou.
Tento postup můžete opakovat nejvýše dvacetkrát - poté se generování složek zastaví.
» Návrat na úvodní stránku
";
if (empty($_POST["nazev_slozky"])) {
$nazev_sl = $_POST["nazev_slozky_nahradni"];
} else {
$nazev_sl = $_POST["nazev_slozky"];
}
if (isset ($_POST["odesli_fotky"])) { // pokud jsme finalne odeslali fotky na server - tato vetev je zpracuje
if (is_dir($nazev_sl)) { // pokud jiz existuje slozka s timto nazvem, vytvorime novou s ciselnym dodatkem
$slozka = $nazev_sl."_".rand(1, 20);
$finalni_slozka = $slozka;
if (mkdir($slozka, 0777)) { // zalozi novou slozku pro celou galerii
$nova_slozka = $slozka."/foto/";
if (mkdir($slozka."/foto", 0777)) { // zalozi novou interni slozku pro fotky
$cesta = $slozka."/index.html";
$soubor = fopen($cesta, "w");
// pro css sablonu
$cesta2 = $slozka."/design.css";
$soubor2 = fopen($cesta2, "w");
$slozka_fotografii = $nova_slozka;
} else {
echo $hlaska;
exit;
}
} else {
echo $hlaska;
exit;
}
} else {
if (mkdir($nazev_sl, 0777)) { // vytvorime slozku
$slozka = $nazev_sl."/foto/";
$finalni_slozka = $nazev_sl;
if (mkdir($slozka, 0777)) {
$cesta = $nazev_sl."/index.html";
$soubor = fopen($cesta, "w");
// pro css sablonu
$cesta2 = $nazev_sl."/design.css";
$soubor2 = fopen($cesta2, "w");
$slozka_fotografii = $slozka;
} else {
echo $hlaska;
exit;
}
} else {
echo $hlaska;
exit;
}
}
// zapiseme link do databaze, pokud je nastavena
prekladac($text);
zapis_hlavicka($soubor);
zapis_css($soubor);
zapis_zahlavi($soubor);
zapis_hlavni($soubor, $soubor2, $slozka_fotografii);
zapis_paticka($soubor);
finalni_hlaska($finalni_slozka);
} else {
if ($_POST["heslo"] == HESLO) { // kontrola zadaneho hesla
druhy_nadpis();
$pocet_policek = $_POST["pocet_policek1"].$_POST["pocet_policek2"]; // slouceni cifer
vstupni_formular_fotogalerie($pocet_policek,$nastaveni_databaze);
} else {
echo "Špatné heslo!
"; // pokud spatne vyplnime heslo, nepusti nas to dal
}
} // ukonceni - ukladani galerie
} // ukonceni - druha vetev generatoru policek
div_end();
body_html_end();
?>
===========================================================
";
} else {
if ($_POST["heslo"] == HESLO) {
function delete_directory($dirname) { // tuto funkci napsal "placid psychosis" z Polska
if (is_dir($dirname))
$dir_handle = opendir($dirname);
if (!$dir_handle)
return false;
while($file = readdir($dir_handle)) {
if ($file != "." && $file != "..") {
if (!is_dir($dirname."/".$file))
unlink($dirname."/".$file);
else
delete_directory($dirname.'/'.$file);
}
}
closedir($dir_handle);
rmdir($dirname);
return true;
}
if(delete_directory($_POST["slozka"])) {
echo "Složka ".$_POST["slozka"]." byla vymazána.";
} else {
echo "Chyba";
}
} else {
echo "Špatné heslo!";
}
}
div_end();
body_html_end();
?>
===========================================================
/* SOUBOR inc.html.php
* Autor: Daniel Stastny, 2006
* Kontakt: www.realmind.org, daniel.stastny@gmail.com
*
*/
function dtd() { // definition type document
echo "
\n";
}
function html_head_start() {
echo "\n";
}
function kodovani() { // standardne pouzivam UTF-8
echo "\n";
}
function styl_stranky() { // kaskadni styl pro zobrazeni na klasickem monitoru
echo "\n\n";
}
function titulek($titulek) {
echo "".$titulek."\n";
}
function head_end() {
echo "\n\n";
}
function body_start() {
echo "\n";
}
function div_start() { // rozdelil jsem na dva divy - prvni zajisti vycentrovani a pevnou sirku tela a druhy zajisti vnitrni odstupy od okraju
echo "\n";
}
function div_end() { // paticka
echo "\n\n © 2006 Daniel Šťastný - daniel@realmind.org ";
}
function body_html_end() {
echo "\n";
}
function hlavni_nadpis($nadpis) {
echo "".$nadpis."";
}
function prvni_nadpis() {
echo "1/2 Počet fotografií";
}
function druhy_nadpis() {
echo "2/2 Nahrání fotografií na server";
}
function db_hlavni_nadpis() {
echo "Generátor statických fotogalerií - MySQL";
}
function db_prvni_nadpis() {
echo "1/2 Nastavení databáze";
}
function db_druhy_nadpis() {
echo "2/2 Kontrola dat";
}
?>
===========================================================
|