Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Bildergalerie am Artikel [Einbauanleitung] neu
18.11.2004, 14:18 PM
Beitrag: #1
Bildergalerie am Artikel [Einbauanleitung] neu
Hallo Leute,

ich habe mir mal die Sache mit der Bildergalerie etwas unter die Lupe genommen, und dabei ist mir aufgefallen, dass das wohl doch relativ komplex geschildert war, wie ich es zuerst beschrieben hatte.

Daher als Verbesserungsvorschlag ein Script (Uploader.php), das es ermöglicht, die Bilder hochzuladen und automatisch die Galerie zu erstellen, incl. der notwendigen HTML-Dateien um sie im Newswriter zu integrieren.

Wie das ganze dann aussieht, könnt ihr unter http://www.ffw-losheim.de betrachten.


Also dann mal ans eingemachte:

1. Anpassen der 'article.php' im newswriter Verzeichnis.
Die Änderungen mit der Galerie benutzen der Einfachheit halber den Link3, der unten am Artikel angefügt wird.
Die Änderungen sollten dann ab Zeile 423 etwa gemacht werden:

Code:
if ($article_data['LINK2']) {
      $news_url = preg_replace('#<a href="([^"]*)".+?</a>#i','\\1',$article_data['LINK2']);
      $news_lname1 = preg_replace('#<[^>]*>#','',$article_data['LINK2']);
      if (!strstr($news_url,'http://') && !strstr($news_url,'ftp://') && strpos($news_url,'/') != 0 && strpos($news_url,'.') != 0) {
           $news_url = 'http://'.$news_url;
      }
      $link_tag = '<a href="'.$news_url.'"';
      
      if (strstr($article_data['LINK2'],'target="_blank"')) {
        $link_tag .= ' target="_blank"';
      }
      $link_tag .= '>'.$news_lname1.'</a> ';
      $frame_link = '<hr>Mehr Bilder:<br><br><iframe src="'.$news_url.'" scrolling="auto" marginheight="0" marginwidth="0" frameborder="0" width="100%" height="120pt"></iframe><hr>';
      $line = str_replace('[--PICFRAME--]', $frame_link, $line);
      $line = str_replace('[--LINK2--]',$NW_TRANSLATION['layout_linkleft'].$link_tag.$NW_TRANSLATION['layout_linkright'],$line);
    }
    else {
     $line = str_replace('[--LINK2--]','',$line);
     $line = str_replace('[--PICFRAME--]','',$line);
    }


Ab jetzt gibt's einen neuen Tag für die Template-Dateien, und zwar [PICFRAME] mit dem Ihr die Position der Vorschau bestimmen könnt.


2. Als nächstes kommt die Datei Uploader.php.

Screenshot: http://www.ffw-losheim.de/Versuche/upl_screenshot.gif

Damit diese Funktioniert, braucht ihr auf dem Server die gdLib und natürlich die gleichen Rechte wie der Newswriter, am besten jedoch 0x0777.
Mit diesem Script wird folgendes gemacht:

a. Anlegen eines Ordners auf dem Zielserver für die Bildergallery (setzt den Ordner 'pictures' im nw-Verzeichnis vorraus.

b. Kopieren der ausgewählten Bilder (nur jpgs) in das Zielverzeichnis

c. automatisches Umbenennen der Bilder und Erstellen von Thumbnails oder mittelgrossen Bildern für im Artikel integriert zu werden.

d. automatisches Erstellen der notwendigen HTML-Dateien um die Gallerie blättern zu können.

Dazu müsst ihr nur den folgenden code als uploader.php in den newswriter integrieren und einen Ordner 'pictures' erstellen.
(Anm.: Mein nw Verzeichnis heisst news_cust)
Code:
<title>Datei Uploader V 0.20</title>
<body bgcolor="#DDDDDD">
<basefont color="#000099" face="Tahoma" size="-1">
<h1>Uploader V 0.2 (beta)</h1>
(c) 2004 Olli112 - This code is provided 'as is'. By using it you accept it as it is and what it does, even it does any bad.  
<?php
//---------------------------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------------------
//                PHP - Uploader
//---------------------------------------------------------------------------------------------------------------------------
//        Script zum uploaden und erstellen einer Bildergallerie, vornehmlich für Newswriter
//
//        (c) 2004     Olli (Oliver Fehr)
//---------------------------------------------------------------------------------------------------------------------------
//
//        History:
//        ========
//
//        V 0.10 - 12. Nov 2004        Createt as V 0.10a beta
//        V 0.20 - 18. Nov 2004        minor changes with access rights
//---------------------------------------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------------------
    
    require('./conf.php');        // für Benutzerdaten und Verzeichnissvariablen

    $nFiles = 10;
    $nThumbSize = 75;
    $nMediumSize = 300;
    
    RebuildScreen($nFiles);
    if (!empty($HTTP_POST_VARS["transmission"]))
    {
        global  $NWCONF_USERS;
        $username = $HTTP_POST_VARS["username"];
        $password = $HTTP_POST_VARS["password"];
        while (list ($key, $userarray) = each ($NWCONF_USERS['alluser']) )
        {
            if(is_array($userarray))
            {
                while (list ($key2, $user) = each ($userarray))
                {
                    if($user==$username)
                    {
                        list ($key2, $pass) = each ($userarray);
                        if($password==$pass)
                        {
                            $login_correct = true;
                            break;
                        }
                    }
                }
            }
        }
        if(!$login_correct)
        {
            echo 'FALSCHER BENUTZERNAME ODER PASSWORT!';
            die;
        }
        if(!empty($HTTP_POST_VARS['targetfolder']))
        {
            echo $HTTP_POST_VARS['targetfolder'].'<br>';
            global $NWCONF_SYSTEM;
            $targetdir = $NWCONF_SYSTEM['server_path'].'pictures/'.$HTTP_POST_VARS['targetfolder'];
            $webfolder = $NWCONF_SYSTEM['domain_path'].'pictures/'.$HTTP_POST_VARS['targetfolder'];

            echo $targetdir.'<br>';
            if (is_dir($targetdir))
                echo 'Verzeichnis existiert bereits, beginne Übertragung...<br>';
            else
            {
                echo 'Verzeichnis wird angelegt...';
                $old_umask = umask(0);
//                if(mkdir($targetdir, $NWCONF_SYSTEM['diraccess']))  // uncomment here if you like to apply general data...
                if(mkdir($targetdir, 0777))
                    echo 'OK<br>';
                else
                    echo 'Fehler beim Anlegen des Verzeichnisses<br>';
                umask($old_umask);
            }
            $lgPics = '';
            $tnPics = '';
            for($i=0; $i<$nFiles; $i++)
            {
                if(!empty($_FILES["userfile"]["name"][$i]))
                {    
                    $filename = $_FILES["userfile"]["name"][$i];
                    if(!eregi("jpg",$_FILES["userfile"]["name"][$i]))
                        echo $filename.' ist kein gültiger Typ zum hochladen...'.$_FILES["userfile"]["type"][$i].'?<br>';
                    else
                    {
                        echo 'Tramsmit: '.$filename;
                        if(move_uploaded_file($_FILES['userfile']['tmp_name'][$i], $targetdir.'/'.'lg_'.$filename))
                        {
                            echo ' OK.<br>Beginne Umrechnung:...';
                            if(isset($HTTP_POST_VARS["smSize".$i]))
                            {
                                if($HTTP_POST_VARS["smSize".$i]=="small")
                                {
                                    $im = imagecreatefromjpeg($targetdir.'/'.'lg_'.$filename);        // load it from server
                                    $x = imagesx($im);                                                // find out size
                                    $y = imagesy($im);
                                    $yDest = $nThumbSize;                                            // calc the nez size
                                    $xDest = $nThumbSize * $x/$y;
                                    $imgDest = imagecreatetruecolor($xDest, $yDest);                // create new image
                                    imagecopyresampled ($imgDest, $im, 0,0,0,0, $xDest, $yDest, $x, $y); // resample it from origin
                                    imagejpeg($imgDest, $targetdir.'/tn_'.$filename);                // save it as new jpeg
                                    imagedestroy($imgDest);
                                    imagedestroy($im);                                                // deallocate it
    
                                    if(!empty($lgPics))    
                                        $lgPics.= ',';
                                    $lgPics.='"lg_'.$filename.'"';
                                    
                                    if(!empty($tnPics))    
                                        $tnPics.= ',';
                                    $tnPics.='"tn_'.$filename.'"';
                                }
                            }
                            if(isset($HTTP_POST_VARS["mdSize".$i]))
                            {
                                if($HTTP_POST_VARS["mdSize".$i]=="medium")
                                {
                                    $im = imagecreatefromjpeg($targetdir.'/'.'lg_'.$filename);        // load it from server
                                    $x = imagesx($im);                                                // find out size
                                    $y = imagesy($im);
                                    $yDest = $nMediumSize *$y/$x;                                     // calc the nez size
                                    $xDest = $nMediumSize;
                                    $imgDest = imagecreatetruecolor($xDest, $yDest);                // create new image
                                    imagecopyresampled ($imgDest, $im, 0,0,0,0, $xDest, $yDest, $x, $y); // resample it from origin
                                    imagejpeg($imgDest, $targetdir.'/md_'.$filename);                // save it as new jpeg
                                    imagedestroy($imgDest);
                                    imagedestroy($im);                                                // deallocate it
                                }
                            }
                            echo 'OK<br>';                            
                        }
                        else
                            echo ' failed<br>';
                    } // if typecheck
                } // empty inputfield
            }  // for loop
        
            if ($HTTP_POST_VARS["makeGalFiles"]="makeGallery")
            {
                CreateGall($targetdir, $webfolder, $lgPics, $tnPics);
            }
        }  // targetdir check
        else
        {
            echo 'Die Angabe des Zielverzeichnisses fehlt...';
        }
    }
function CreateGall($targetPathName, $webfolder, $lgPics, $tnPics)
{
    echo 'beginne mit galls...';
    echo '<br>'.$lgPics.'<br>'.$tnPics.'<br>';

    $strGalHTML = "
    <html>
    <head>
    <title>Bilder</title>
    <style type=\"text/css\">
    .ueschrift{
        font-family:Tahoma;
        font-size:10pt;
        color:#FFCC00;
        font-style: normal;
        font-weight: normal;
        }
    </style>
    <script language=\"javascript\">
    large_pics=new Array(".$lgPics.")
    small_pics=new Array(".$tnPics.")
    wndCount=0

    //function zum öffnen des Popups
    //Parameter ist der Dateiname des großen Bildes
    //angegeben durch die Indexnummer des Arrays large_pics bzw. kblider (ist egal)
    function openPopup(URL1NR)
    {
    if(wndCount>0)
    {
    if(F1.closed==false)
    F1.close()
    }
    wndCount=1
    //Wichtig resizable auf yes setzen
    F1=open(\"gallery_popup.htm?\"+URL1NR,\"\",\"width=200,height=200,resizable=yes\")
    F1.focus()
    }
    </script>
    </head>
    <body bgcolor=\"#000000\">
    <center><table border=\"0\"><tr>
    <script type=\"text/javascript\">
    tabs=small_pics.length
    for(i=0;i<small_pics.length;i++)
    {
    <!-- wenn max. spaltenzahl erreicht nächste Tabellenzeile--//-->
        if(i%tabs==0)
        document.write('</tr><tr>')
        document.write('<td align=\"center\" valign=\"middle\"><a href=\"'+large_pics[i]+'\" target=\"_blank\" onclick=\"openPopup(\''+i+'\','+i+');return false\"><img src=\"'+small_pics[i]+'\" width=\"100\"  border=\"0\"></td>')
    }
    </script>
    </tr></table></center>
    </body>
    </html>";
    

    $strPopHTML = "
    <html>
    <style type=\"text/css\">
    <!--
    .Stil1 {color: #000000}
    body {
        background-color: #000000;
    }
    -->
    </style>
    <script type=\"text/javascript\">
    PicNum=unescape(location.search.substring(1,location.search.length))
    Pic=opener.large_pics[PicNum]
    function resize()
    {
    docWidth=document.images[0].width
    if(document.layers)
        docHeight=document.dummy.y
    else
        docHeight=document.dummy.offsetTop
    self.resizeTo(docWidth,docHeight)
    self.moveTo((screen.width-docWidth)/2,(screen.height-docHeight)/2)
    }
    function NextPic(direction)
    {
    nextnum=0
    if(direction>0)
    {
    if(PicNum<opener.large_pics.length-1)
        nextnum=parseInt(PicNum)+1
    else
        nextnum=0
    }
    else
    {
    if(PicNum>0)
        nextnum=PicNum-1
    else
    nextnum=opener.large_pics.length-1
    }
    self.location.href=\"gallery_popup.htm?\"+nextnum
    }
    </script>
    <title>Bild</title><body \" onload=\"resize()\" topmargin=\"0\" onresize=\"if(document.layers)self.location.reload()\" leftmargin=\"0\" marginheight=\"0\" marginwidth=\"0\">
    <table cellspacing='0' cellpadding='0'> <tr> <td>
    <script type=\"text/javascript\">
    document.write(\" <img src='\"+Pic+\"'>\")
    </script>
    <td><tr>
    <tr><td align ='center'><form>
    <input type='button' name='b1' value='<<<<' onclick='NextPic(-1)'></input>
    &nbsp;<input type='button' name='b2' value='>>>>' onclick='NextPic(1)'></input>
    </form></td></tr></table><br><img src='\"+Pic+\"' width='1' height='1' name='dummy'>
    </body>
    </html>    ";
    
//    echo $strGalHTML;    
//    echo $str_pop_HTML;
    
    $galFileName = $targetPathName.'/gallery.htm';
    $popFileName = $targetPathName.'/gallery_popup.htm';
    
    $galLinkName = $webfolder.'/gallery.htm';
    $old_umask = umask(0);
    if( ! $galFile = fopen($galFileName,'w'))
    {
        echo 'Dateifehler: Konnte '.$galFileName.' nicht erstellen!';
    }
    else
    {
        echo 'Erstelle Galerie: '.$galFileName.'...';
        umask(0);
        if(!fwrite($galFile, $strGalHTML))
        {
            echo 'Dateifehler: Konnte nicht '.$galFileName.' schreiben!';
        }
        fclose($galFile);
        echo 'OK<br>';
    }
    umask(0);
    if(!$popFile = fopen($popFileName,'w'))
    {
        echo 'Dateifehler: Konnte '.$popFileName.' nicht erstellen!';
    }
    else
    {
        echo 'Erstelle Galerie-Popup: '.$popFileName.'...';
        umask(0);
        if(!fwrite($popFile, $strPopHTML))
        {
            echo 'Dateifehler: Konnte nicht '.$popFileName.' schreiben!';
        }
        fclose($popFile);
        echo 'OK<br>';
    }
    umask($oldmask);
    echo '<br><br>';
    echo '<a href="'.$galLinkName.'" target="_blank"><b>Galerie ansehen</b></a><br><br>';
    echo 'Hier der link für die Zwischenablage (STRG-C):<br><br>';
    echo '<font size="+1">'.$galLinkName.'</font>';
}

?>
<p style="size=-1 "

<?php
function RebuildScreen($num)
{
    echo '<form enctype="multipart/form-data" action="uploader.php" method="post" >';
    echo '<input type="hidden" name="MAX_FILE_SIZE" value="300000">';
    echo '<table width="100%" border="0" cellspacing="0">';
    echo '<tr height="10pt" bgcolor="#555555"><td></td><td width="60%"></td><td></td></tr>';
    echo '<tr bgcolor="#DDDDDD">';
    echo '<td width="5%"></td>';
    echo '<td width="60%">Zielverzeichnis auf Server: * <input name="targetfolder" type="text" value="Info/" size="90%"></td>';
    echo '<td></td>';
    echo '</tr>';
    echo '<tr height="10pt" bgcolor="#555555"><td></td><td width="60%"></td><td></td></tr>';
    echo '<tr height="30pt" bgcolor="#DDDDDD"><td></td><td width="60%">Lokaler Name u. Pfad</td><td size="10%">Optionen</td></tr>';
    for($i=0; $i < $num; $i++)
    {
        echo '<tr>';
        echo '<td width = "5%"></td>';
        echo '<td witdh = "60%" align="left"><input name="userfile[]" type="file" size = "100%" accept="image/jpeg"></td>';
        echo '<td width = "20%" align="left">';
        echo '<font size="-1"><input type="checkbox" name="smSize'.$i.'" value="small" checked="checked"> Thumbnail   ';
        echo '<input type="checkbox" name="mdSize'.$i.'" value="medium"> Medium</font>';
        echo '</tr>';
    }
    echo '</table>';
    echo '<br>';
    echo '<font size="-1">(*) Hier Ordnernamen ab news_cust/pictures eingeben, ohne vorangestelltes \' / \' eingeben...';
    echo ' Unbedingt bei Ordnernamen Gross/Kleinschreiben beachten (UNIX konform) und slashes / verwenden!!!</font><br><hr><br>';
    echo '<input type="checkbox" name="makeGalFiles" value="makeGallery" checked="checked"> Gall erstellen';
    echo '<br><br>';
    echo '<table width="20%" border="0" cellspacing="0" bgcolor="#AAAAAA">';
    echo '<tr><td width="40%"><font size="-1" color="#ffffff">Benutzername</td><td><input type="text" name="username"></font></td></tr>';
    echo '<tr><td width="40%"><font size="-1" color="#ffffff">Passwort</td><td><input type="password" name="password"></font></td></tr></table>';
    echo '<br><br>';
    echo '<input type="submit"  name="transmission" value="Sende Dateien">';
    echo '</form>';
}
?>
</body>

so, langes Ding, oder?

Ich hoffe es klappt jetzt besser als mit dem ersten Posting von mir.

Und eine Bitte hätte ich noch:

Postet mir doch einfach hier Fragen, Kommentare oder Beschwerden, denn ganz ohne Reaktionen kann ich das Ding weder verbessern noch was ändern. :wink:

Viele Grüße,
Olli

P.S.: Die Hintergrundfarbe der Gallery ist schwarz, einfach nur in den beiden html Abschnitten die Farbe ändern...
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.11.2004, 16:57 PM
Beitrag: #2
Bildergalerie am Artikel [Einbauanleitung] neu
Hi,

also erstens gefällt mir das sehr gut, allerdings finde ich das ganze mit einem iframe nicht ao schön gelöst.
Ich schau mir das mal an, vielleicht kann man das noch eleganter lösen Wink

Ansonsten nettes Feature.

cu basti

iwebspace.de | Webspaceorder - Bestellsystem für ISP
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
19.11.2004, 10:20 AM
Beitrag: #3
Bildergalerie am Artikel [Einbauanleitung] neu
Hallo Basti,
danke erstmal.

Zitat:allerdings finde ich das ganze mit einem iframe nicht ao schön gelöst

Ich hatte mir da auch so meine Gedanken gemacht, aber mit inline-Frame erschien mir am einfachsten wegen der dynamischen Größe, insbesondere wenn man mehr Bilder hat, als auf die Seitenbreite passen, da dann automatisch eine Scrollleiste erscheint.

Bin aber allen Vorschlägen offen, das Ding ist ja schliesslich noch am Wachsen und entstehen... :wink:

Grüsse,
Olli!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
19.11.2004, 11:01 AM
Beitrag: #4
Bildergalerie am Artikel [Einbauanleitung] neu
Hmm was mir ganz gut gefällt ist die Lösung von http://www.n-tv.de, da wird die Galerie als Link eingebunden. So könnte man das ja auch eigentlich lösen.

cu basti

iwebspace.de | Webspaceorder - Bestellsystem für ISP
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
19.11.2004, 18:24 PM
Beitrag: #5
Bildergalerie am Artikel [Einbauanleitung] neu
Zitat:da wird die Galerie als Link eingebunden

Ist eigentlich garkein Problem, da kann man immer noch den [LINK2] Tag für verwenden, da ist immer noch die komplette Url drin, und da einfach noch als Target:blank dazu, die Zeilen mit dem Html etwas angepasst und fertig. (denk ich mir mal).

Aber bei uns hat mir das Ding mit dem inline-Frame gut gefallen, und es funzt sogar mit dem FeuerFuchs (FireFox :wink: ).

Trotzdem gute Idee. Macht Sinn für Technik-Reports oder so.

Gruß,
Olli!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.01.2006, 09:27 AM
Beitrag: #6
bildergalerie
hallo olli !

habe mir gerade eben dein post der bildergalerie angesehen und ich finde es einfach genial !!
beim versuch es bei mir beim newswriter nw14_2 einzubauen hats mich allerdings geschleudert: welcher link muss beim "link3" eingesetzt werden ? und erscheint dann der iframe unten ?

vielleicht kannst du mir kurz antworten - bin leider kein php-experte !
danke
donClaudio
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.01.2006, 16:24 PM
Beitrag: #7
Bildergalerie am Artikel [Einbauanleitung] neu
Hallo donClaudio,

der link den Du bei 'Link3' einsetzen must, ist die Stelle an der sich deine gallery befindet, d.h. das Verzeichniss, dass du bei Verwendung der uploader.php automatisch unten als link angezeigt bekommst.

Der iframe wird an der Stelle angezeigt, an der du in deinem Template deine [PICFRAME] (mit Strichen!!) einbaust.

Hoffe ich konnte helfen,
Gruß,
Olli!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.01.2006, 17:53 PM
Beitrag: #8
Bildergalerie am Artikel [Einbauanleitung] neu
vielen dank !
habe es schon eingebaut und werde demnächst damit online gehen http://www.hermagor.at

übrigens deine "feuerwehr hp" ist super !!!

vielen dank
donClaudio
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Unterschiedliche Nav-Menüs bei News und Artikel Buddy Hollyday 2 5,670 15.10.2007 06:40 AM
Letzter Beitrag: basti

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste

Kontakt | faqboard.info | Nach oben | Zum Inhalt | Archiv-Modus | RSS-Synchronisation