Autor Zpráva
smokejack
Profil
Dobrý den,

s kamarádem jsem začal tvořit webové stránky a mám na nich umístěnou fotogalerii vytvořenou programem Photo Flash Maker Platinum. Problém je, že kyž chci přidat nové fotografie do galerie tak musím udělat tu fotogalerii znova v programu a nahrát ji tam znova. Nedávno jsem zjistil, že se to dá nějak udělat přes XML, ale všecky mé pokusy o vytvoření nějkého scryptu, který by tam dokázal přidávat ty určité hodnoty, skončili neúspěchem. Byl bych tedy rád kdyby mi někdo mohl pomoci.

Mám soubor slides.xml, ve kterém je vepsána adresace na fotky, které jsou umístěny ve dvou složkách slides a thumbs(miniatury). Upload souboru na server již mám rozjetý a stačí mi nahrát tu fotku jen do jedné z těch složek a to slides, protože ono si to tu fotku už zmenší.
Hlavní co potřebuji je, že po uploadu fotky na server mi vznikne proměnná $dest, ve které je adresa té fotky po nahrání.

Takže bych potřeboval vytvořit další řádek s novým elementem <slide> v elementu <album> a na místo té adresace fotky tam dát proměnnou $dest,

takže by to pak mělo vypadat takto:

<slide jpegURL="$dest" d_URL="$dest" transition="0" panzoom="1" URLTarget="0" phototime="2" transitiontime="2" url="" title="TOP 034" width="650" height="400"/>

s tím, že výsledný scypt bych vložil za upload pod podmínku, zda-li se soubor odeslal proveď zápis do xml.

Já vím, že ta fotogalerie jde vymyslet mnohem lehčím způsobem než je teno (databáze), ale chci zkusit něco nového.

Děkuji všem za případné rady. :)


Celý soubor slides.xml je pak zde :

<?xml version="1.0" encoding="UTF-8" ?>
<flash_parameters copyright="anvsoftPFMTheme">
    <preferences>
        <global>
            <basic_property movieWidth="650" movieHeight="400" backgroundColor="0x000000" html_title="" anvsoftMenu="false" enableURL="true" frameRate="30"/>
            <music_property path="" stream="true" loop="true"/>
        </global>
        <thumbnail>
            <basic_property thumWidth="140" thumHeight="100" layerOfThum="2" thumNumOfLayer="3" spacingOfRow="4" spacingOfColumn="4" rotationSpeed="10"/>
        </thumbnail>
    </preferences>
    <album>
        <slide jpegURL="thumbs/t_0001.jpg" d_URL="slides/p_0001.jpg" transition="0" panzoom="1" URLTarget="0" phototime="2" transitiontime="2" url="" title="TOP 034" width="650" height="400"/>
        <slide jpegURL="thumbs/t_0002.jpg" d_URL="slides/p_0002.jpg" transition="0" panzoom="1" URLTarget="0" phototime="2" transitiontime="2" url="" title="TOP 034" width="650" height="400"/>
        <slide jpegURL="thumbs/t_0003.jpg" d_URL="slides/p_0003.jpg" transition="0" panzoom="1" URLTarget="0" phototime="2" transitiontime="2" url="" title="TOP 034" width="650" height="400"/>
        <slide jpegURL="thumbs/t_0004.jpg" d_URL="slides/p_0004.jpg" transition="0" panzoom="1" URLTarget="0" phototime="2" transitiontime="2" url="" title="TOP 034" width="650" height="400"/>
        <slide jpegURL="thumbs/t_0005.jpg" d_URL="slides/p_0005.jpg" transition="0" panzoom="1" URLTarget="0" phototime="2" transitiontime="2" url="" title="TOP 034" width="650" height="400"/>
        <slide jpegURL="thumbs/t_0006.jpg" d_URL="slides/p_0006.jpg" transition="0" panzoom="1" URLTarget="0" phototime="2" transitiontime="2" url="" title="TOP 034" width="650" height="400"/>
        <slide jpegURL="thumbs/t_0007.jpg" d_URL="slides/p_0007.jpg" transition="0" panzoom="1" URLTarget="0" phototime="2" transitiontime="2" url="" title="TOP 034" width="650" height="400"/>
        <slide jpegURL="thumbs/t_0008.jpg" d_URL="slides/p_0008.jpg" transition="0" panzoom="1" URLTarget="0" phototime="2" transitiontime="2" url="" title="TOP 034" width="650" height="400"/>
        <slide jpegURL="thumbs/t_0009.jpg" d_URL="slides/p_0009.jpg" transition="0" panzoom="1" URLTarget="0" phototime="2" transitiontime="2" url="" title="TOP 034" width="650" height="400"/>
    </album>
</flash_parameters>
weroro
Profil
<?php

function xmlGalleryUpdate ($xmlPath, $thumbDir, $slideDir) {

    if (!is_dir($thumbDir)) mkdir($thumbDir, 0777, true);
    if (!is_dir($slideDir)) mkdir($slideDir, 0777, true);

    $head = '<?xml version="1.0" encoding="UTF-8" ?>
    <flash_parameters copyright="anvsoftPFMTheme">
        <preferences>
            <global>
                <basic_property movieWidth="650" movieHeight="400" backgroundColor="0x000000" html_title="" anvsoftMenu="false" enableURL="true" frameRate="30"/>
                <music_property path="" stream="true" loop="true"/>
            </global>
            <thumbnail>
                <basic_property thumWidth="140" thumHeight="100" layerOfThum="2" thumNumOfLayer="3" spacingOfRow="4" spacingOfColumn="4" rotationSpeed="10"/>
            </thumbnail>
        </preferences>
        <album>' . "\r\n";
        
    $body = '';

    $mydir = opendir($slideDir);
        while (false !== ($file = readdir($mydir)))
        {
            if ($file != '.' && $file != '..')
            {
                if (!is_dir($slideDir.'/'.$file))
                {
                    $body .= '<slide jpegURL="'.$thumbDir.'/'.$file.'" d_URL="'.$slideDir.'/'.$file.'" transition="0" panzoom="1" URLTarget="0" phototime="2" transitiontime="2" url="" title="TOP 034" width="650" height="400"/>'. "\r\n";                
                }
            }
        }
    closedir($mydir);

    $foot = '</album>
    </flash_parameters>';
    
    $current = $head . $body . $foot;
    
    file_put_contents($xmlPath, $current);

}

xmlGalleryUpdate ('slides.xml', 'thumbs', 'slides');

?>
smokejack
Profil
Moc Vám děkuji za tento scrypt. Vše funguje 100%. Sem Vám velice zavázán, protože samotného by mě to vůbec nenapadlo řešit takto. :)

A opravdu moc děkuji.
smokejack
Profil
Tak už je to dobré přišel jsem na to sám. :)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: