ilch Forum » Allgemein » HTML, PHP, SQL,... » Kategorie Bild Gallery

Geschlossen
  1. #1
    User Pic
    XxAtlantisxX Mitglied
    Registriert seit
    23.03.2014
    Beiträge
    9
    Beitragswertungen
    0 Beitragspunkte
    Ich habe folgendes Problem:

    Im Admin-Bereich kann man in der Gallerie-Kategorie Kategoriebilder als URL hinterlegen, die in die Datenbank mit aufgenommen wird als "gallery_kat".
    Nur ich habe momentan das Problem, wie ich es auf der normalen Seite wieder ausgeben kann??

    <?php
    
    defined ('main') or die ( 'no direct access' );
    
    # mini config
    $img_per_site = $allgAr['gallery_imgs_per_site'];
    $img_per_line = $allgAr['gallery_imgs_per_line'];
    
    function get_cats_title ( $catsar ) {
      $l = '';
            foreach($catsar as $k => $v) {
              if ( $k != '' AND $v != '' ) {
                      $l = $v.' :: '.$l;
                    }
            }
            return ($l);
    }
    
    function get_cats_urls ( $catsar ) {
      $l = '';
            foreach($catsar as $k => $v) {
              if ( $k != '' AND $v != '' ) {
                      $l = '<a class="smalfont" href="?gallery-'.$k.'">'.$v.'</a><b> &raquo; </b>'.$l;
                    }
            }
            return ($l);
    }
    
    function count_files ($cid) {
      $zges = 0;
            $e = db_query("SELECT id FROM prefix_gallery_cats WHERE cat = ".$cid);
            if ( db_num_rows($e) > 0 ) {
              while ($r = db_fetch_assoc($e) ) {
                $zges = $zges + count_files ( $r['id'] );
              }
            }
            $zges = $zges + db_count_query("SELECT COUNT(*) FROM prefix_gallery_imgs WHERE cat = ".$cid);
            return ( $zges );
    }
    
    function get_cats_array ( $cid , $ar ) {
            if ( empty($cid) ) {
              return ($ar);
            } else {
              $erg = db_query("SELECT cat,gallery_kat,id,name FROM prefix_gallery_cats WHERE id = ".$cid);
                    $row = db_fetch_assoc($erg);
                    $ar[$row['id']] = $row['name'];
              return ( get_cats_array($row['cat'],$ar) );
            }
            if ( $r ) {
              return ($l);
            }
    }
    
    # original groesse anzeigen
    if ($menu->get(1) == 'showOrig') {
      $tpl = new tpl ('gallery_show');
      $tpl->set('id', escape($menu->get(2), 'integer'));
      $tpl->set('endung',htmlentities($menu->get(3)));
      $tpl->out(4);
    
    # normale groesse anzeigen
    } elseif ($menu->get(1) == 'show') {
      $page = ($menu->getA(3) == 'p' ? escape($menu->getE(3), 'integer') : 1 );
      $cid = escape($menu->get(2), 'integer');
      $anz = db_result(db_query("SELECT COUNT(*) FROM prefix_gallery_imgs WHERE prefix_gallery_imgs.cat = ".$cid),0);
      $erg = db_query("SELECT prefix_gallery_imgs.id,prefix_gallery_imgs.cat,datei_name,endung,prefix_gallery_imgs.`besch`,klicks,vote_wertung,vote_klicks FROM prefix_gallery_imgs LEFT JOIN prefix_gallery_cats ON prefix_gallery_imgs.cat = prefix_gallery_cats.id WHERE prefix_gallery_imgs.cat = ".$cid." AND (recht >= ".$_SESSION['authright']." OR recht IS NULL) ORDER BY id ASC LIMIT ".$page.",1");
      $row = db_fetch_assoc($erg);
      $size = getimagesize('include/images/gallery/img_'.$row['id'].'.'.$row['endung']);
            $breite = $size[0] + 5;
      $hoehe = $size[1] + 5;
    
      # vote zahlen
      if (isset($_GET['doVote']) AND is_numeric($_GET['doVote']) AND !isset ($_SESSION['galleryDoVote'][$row['id']])) {
        $_SESSION['galleryDoVote'][$row['id']] = 'o';
        $row['vote_wertung'] = round ( ( ( $row['vote_wertung'] * $row['vote_klicks'] ) + $_GET['doVote'] ) / ( $row['vote_klicks'] + 1 ) , 3 );
        $row['vote_klicks']++;
        db_query("UPDATE prefix_gallery_imgs SET vote_wertung = ".$row['vote_wertung'].", vote_klicks = ".$row['vote_klicks']." WHERE id = ".$row['id']);
      }
    
      # klicks zaehlen
      if (!isset($_SESSION['galleryDoKlick'][$row['id']])) {
        $_SESSION['galleryDoKlick'][$row['id']] = 'o';
        db_query("UPDATE prefix_gallery_imgs SET klicks = klicks + 1 WHERE id = ".$row['id']);
      }
    
      # page vor und ruck dev
      $next = $page + 1;
      $last = $page - 1;
      if ( $next >= $anz ) { $next = 0; }
      if ( $last < 0 ) { $last = $anz -1; }
    
      # diashow einstellungen
      $diashow_html = '';
      $diashow = $next.'=0&amp;diashow=start';
      if (isset($_GET['diashow']) AND ($_GET['diashow'] == 'start' OR $_GET['diashow'] == 'shownext')) {
        $sek = 4;
        if (isset($_GET['sek'])) { $sek = $_GET['sek']; }
        $diashow_html = '<meta http-equiv="refresh" content="'.$sek.'; URL=index.php?gallery-show-'.$cid.'-p'.$next.'=0&amp;diashow=shownext&amp;sek='.$sek.'">';
        $diashow = $page.'=0&amp;diashow=stop';
      }
    
      # anzeigen
      $tpl = new tpl ('gallery_show');
      $arr = array (
        'cid' => $cid,
        'last' => $last,
        'next' => $next,
        'diashow' => $diashow,
        'diashow_html' => $diashow_html,
        'endung' => $row['endung'],
        'id' => $row['id'],
        'vote_wertung' => $row['vote_wertung'],
        'vote_klicks' => $row['vote_klicks'],
        'bildr' => $page,
        'besch' => unescape($row['besch']),
        'breite' => $breite,
        'hoehe' => $hoehe
      );
      $tpl->set_ar_out($arr,0);
    
      # kommentare
      if ($allgAr['gallery_img_koms'] == 1) {
        # eintragen
              $insertmsg = '';
        if ((loggedin() or isset($_POST['name'])) and !empty($_POST['text']) and $antispam = chk_antispam('gallery')) {
              if (loggedin()) {
                  $name = $_SESSION['authname'];
          } else {
                  $name = escape($_POST['name'],'string');
                  if (db_count_query('SELECT COUNT(*) FROM prefix_user WHERE name = "'.$name.'"')) {
                          $insertmsg .= 'Der Name ist bereits für einen registrierten User vergeben';
                  }
          }
               if (empty($insertmsg)) {
                     $text = escape($_POST['text'],'string');
                     db_query("INSERT INTO prefix_koms (name,text,uid,cat) VALUES ('".$name."','".$text."',".$row['id'].",'GALLERYIMG')");
               }
        } elseif (isset($_POST['subgalkom']) and  !$antispam) {
                $insertmsg .= 'Falscher Antispam';
        }
    
        # loeschen
        if (isset($_GET['delete']) AND is_siteadmin()) {
          db_query("DELETE FROM prefix_koms WHERE id = ".escape($_GET['delete'], 'integer'));
        }
    
        # zeigen
              if (!empty($insertmsg)) {
                      $insertmsg = '<span style="color:red;">'.$insertmsg.'</span><br />';
              }
              $tpl->set('insertmsg', $insertmsg );
        $tpl->set('uname', $_SESSION['authname']);
              $tpl->set('antispam', get_antispam('gallery', 0));
        $tpl->out(1);
        $class = 'Cnorm';
        $erg = db_query("SELECT id, name, text FROM prefix_koms WHERE uid = ".$row['id']." AND cat = 'GALLERYIMG' ORDER BY id DESC");
        while ($r = db_fetch_assoc($erg)) {
          $class = ($class == 'Cmite' ? 'Cnorm' : 'Cmite');
          $r['class'] = $class;
          $r['text'] = bbcode ($r['text']);
          if (is_admin()) {
            $r['text'] .= '<a href="index.php?gallery-show-'.$cid.'-p'.$page.'=0&amp;delete='.$r['id'].'"><img src="include/images/icons/del.gif" border="0" title="l&ouml;schen" alt="l&ouml;schen" /></a>';
          }
          $tpl->set_ar_out($r,2);
        }
        $tpl->out(3);
      }
    } else {
                    $cid = ( $menu->get(1) ? escape($menu->get(1),'integer') : 0 );
                    $erg = db_query("SELECT cat,gallery_kat,name FROM prefix_gallery_cats WHERE recht >= {$_SESSION['authright']} AND id = ".$cid);
                    $cname = 'Gallery';
        if ( db_num_rows($erg) > 0 ) {
                      $row = db_fetch_assoc($erg);
                            $array = get_cats_array($row['cat'],'');
          $cname = $row['name'];
           $katbild = $row['gallery_kat'];
                            if ( !empty($array) ) {
                              $titelzw = get_cats_title($array);
                              $namezw = get_cats_urls($array);
                            } else {
                              $titelzw = '';
                                    $namezw = '';
                            }
                      $cattitle = ':: '.$titelzw.$row['name'];
                            $catname = '<b> &raquo; </b>'.$namezw.$row['name'];
                    } else {
                      $cattitle = '';
                            $catname = '';
                    }
                    $title = $allgAr['title'].' :: Gallery '.$cattitle;
        $hmenu = '<a class="smalfont" href="?gallery">Gallery</a>'.$catname;
        $design = new design ( $title , $hmenu );
              $design->header();
                    $tpl = new tpl ('gallery' );
        $erg = db_query("SELECT id,name,`besch` FROM prefix_gallery_cats WHERE recht >= {$_SESSION['authright']} AND cat = ".$cid." ORDER BY pos");
        if ( db_num_rows($erg) > 0 ) {
                      $tpl->out(1); $class = 'Cnorm';
                            while ($row = db_fetch_assoc($erg) ) {
                              $row['gallery'] = count_files($row['id']);
            $class = ( $class == 'Cmite' ? 'Cnorm' : 'Cmite' );
                                    $row['class'] = $class;
                              $tpl->set_ar_out($row,2);
          }
                      $tpl->out(3);
                    }
    
        $limit = $img_per_site;
        $page = ($menu->getA(2) == 'p' ? escape($menu->getE(2), 'integer') : 1 );
        $MPL = db_make_sites ($page , '' , $limit , '?gallery-'.$cid , "gallery_imgs LEFT JOIN prefix_gallery_cats ON prefix_gallery_imgs.cat = prefix_gallery_cats.id WHERE prefix_gallery_imgs.cat = ".$cid." AND (recht >= ".$_SESSION['authright']." OR recht IS NULL)");
        $anfang = ($page - 1) * $limit;
        $erg = db_query("SELECT prefix_gallery_imgs.id,prefix_gallery_imgs.cat,datei_name,endung,prefix_gallery_imgs.`besch`,klicks,vote_wertung,vote_klicks FROM prefix_gallery_imgs LEFT JOIN prefix_gallery_cats ON prefix_gallery_imgs.cat = prefix_gallery_cats.id WHERE prefix_gallery_imgs.cat = ".$cid." AND (recht >= ".$_SESSION['authright']." OR recht IS NULL) ORDER BY id ASC LIMIT ".$anfang.",".$limit);
                    if ( db_num_rows($erg) > 0 ) {
          $tpl->set('imgperline', $allgAr['gallery_imgs_per_line']);
                      $tpl->set('cname', $cname);
          $tpl->set('breite', $allgAr['gallery_normal_width']+30);
          $tpl->set('MPL',$MPL);
          $tpl->out(4); $class = 'Cnorm';
          $i = 0;
                            while($row = db_fetch_assoc($erg) ) {
                                    $class = ( $class == 'Cmite' ? 'Cnorm' : 'Cmite' );
                                    $row['class'] = $class;
            $row['anz_koms'] = db_result(db_query("SELECT COUNT(*) FROM prefix_koms WHERE uid = ".$row['id']." AND cat = 'GALLERYIMG'"),0);
            $row['besch'] = unescape($row['besch']);
            $row['width'] = round( 100 / $img_per_line );
            $row['bildr'] = $i + (($page-1) * $img_per_site);
            if ( $i <> 0 AND ($i % $img_per_line ) == 0 ) { echo '</tr><tr>'; }
                              $tpl->set_ar_out($row,5);
            $i++;
                            }
          if ( $i % $img_per_line <> 0 ) {
          $anzahl = $img_per_line - ($i % $img_per_line);
          for($x=1;$x<=$anzahl;$x++){
            echo '<td class="'.$class.'"></td>';
          }
          }
                            $tpl->out(6);
                    }
                    $design->footer();
    }
    ?>


    und die html dazu:

    {EXPLODE}
    <style type="text/css">
    <!--
    .transparent1 {
    position relative;
    margin-left: -110px;
    }
    =-->
    </style>
    <style>
    <!--
    .border {
             background-color: #C0C0C0;
    }
    -->
    </style>
    <table width="100%" class="border" border="0" cellspacing="1" cellpadding="3">
      <tr class="Chead" height="30px" >
        <th width="70%" align="center" colspan="2" background="include/images/buttons/download_1.jpg" ><b><font color="#FFFFFF">{_lang_category}</font></b></th>
        <th width="15%" align="center" background="include/images/buttons/download_1.jpg" ><font color="#FFFFFF">{_lang_pictures}</font></th>
      </tr>
            {EXPLODE}
            <tr class="{class}">
          <td align="center" valign="middle"><img border="0" src="{katbild}" height="110px" width="110px"/><img  src="include/images/transparent.png" border="0"  height="110px" width="110px" class="transparent1"/></td>
              <td><a href="index.php?gallery-{id}"><b>&nbsp;&nbsp;&nbsp;&nbsp;{name}</b></a><br><br /><span class="smalfont">{besch}</span></td>
              <td align="center"><font size="+0.5">{gallery}</font></td>
            </tr>
            {EXPLODE}
    </table>
    
    <br /><br />
    {EXPLODE}
    <style type="text/css">
    <!--
    .transparent2 {
    position relative;
    margin-left: -106px;
    }
    =-->
    </style>
    <!-- Style -->
    <script type="text/javascript" src="include/designs/FF-Heisede/easySlider1.5.js"></script>
    <script type="text/javascript">
                    $(document).ready(function(){
                            $("#slider").easySlider({
                                    auto: true,
                                    continuous: true
                            });
                    });
    </script>
    <link rel="stylesheet" type="text/css" href="include/designs/FF-Heisede/ddsmoothmenu.css" />
    <link rel="stylesheet" type="text/css" href="include/designs/FF-Heisede/ddsmoothmenu-v.css" />
    
    <script type="text/javascript" src="include/designs/FF-Heisede/ddsmoothmenu.js">
    
    /***********************************************
    * Smooth Navigational Menu- (c) Dynamic Drive DHTML code library (www.dynamicdrive.com)
    * This notice MUST stay intact for legal use
    * Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code
    ***********************************************/
    
    </script>
    
    <script type="text/javascript">
    
    ddsmoothmenu.init({
            mainmenuid: "smoothmenu1", //menu DIV id
            orientation: 'h', //Horizontal or vertical menu: Set to "h" or "v"
            classname: 'ddsmoothmenu', //class added to menu's outer DIV
            //customtheme: ["#1c5a80", "#18374a"],
            contentsource: "markup" //"markup" or ["container_id", "path_to_menu_file"]
    })
    
    ddsmoothmenu.init({
            mainmenuid: "smoothmenu2", //Menu DIV id
            orientation: 'v', //Horizontal or vertical menu: Set to "h" or "v"
            classname: 'ddsmoothmenu-v', //class added to menu's outer DIV
            //customtheme: ["#804000", "#482400"],
            contentsource: "markup" //"markup" or ["container_id", "path_to_menu_file"]
    })
    
    </script>
    <!-- End Style -->
    <!--Start LightboxJS2-->
    <link rel="stylesheet" href="include/includes/js/lightbox/css/lightbox.css" type="text/css" media="screen" />
    <script type="text/javascript" src="include/includes/js/lightbox/js/prototype.js"></script>
    <script type="text/javascript" src="include/includes/js/lightbox/js/scriptaculous.js?load=effects"></script>
    <script type="text/javascript" src="include/includes/js/lightbox/js/lightbox.js"></script>
    <!--End LightboxJS2-->
    <style>
    <!--
    .border {
             background-color: #C0C0C0;
    }
    -->
    </style>
    <table width="100%" class="border" border="0" cellspacing="1" cellpadding="3">
      <tr class="Chead" height="30px">
                    <td colspan="{imgperline}" align="center" background="include/images/buttons/download_1.jpg" ><b><font color="#FFFFFF">{cname}</font></b></td>
            </tr>
      {EXPLODE}
         <td class="{class}" width="{width}%" valign="top" align="center">
           <table class="border" border="0" cellspacing="1" cellpadding="0">
             <tr>
               <td><a href="include/images/gallery/img_norm_{id}.{endung}" rel="lightbox[{cat}]"><img src="include/images/gallery/img_thumb_{id}.{endung}" border="0" alt="{datei_name}" title="&nbsp;" height="106px" width="106px"  /><img  src="include/images/transparent.png" height="106px" width="106px" border="0"  class="transparent2"/></a></td>
             </tr>
           </table>
         </td>
       {EXPLODE}
      </tr>
    </table>
    <center>{MPL}</center>
    <script language="JavaScript" type="text/javascript">
    <!--
      function oeffneFenster (bildr, cat) {
        var fenster = window.open ('index.php?gallery-show-'+cat+'-p'+bildr,'showBild','scrollbars=yes,height=600,width={breite},left=200,status=yes,resizable=yes');
        fenster.focus();
        return (false);
      }
    
      // manage div ...
      document.onmousemove = checkPosition;
      function checkPosition(e) {
        if(document.all) {
          mausX = event.clientX + document.body.scrollLeft;
          mausY = event.clientY + document.body.scrollTop;
        } else {
          mausX = e.pageX;
          mausY = e.pageY;
        }
    
      }
    
      function alertpos(dname) {
      if (document.layers) {
        document.layers[0].left = mausX;
        document.layers[0].top = mausY;
      } else if (document.getElementById) {
        document.getElementById(dname).style.left = mausX + "px";
        document.getElementById(dname).style.top = mausY + "px";
      }
      document.getElementById(dname).style.display = "inline";
      }
      function hiddpos(dname) {
        document.getElementById(dname).style.display = "none";
      }
    //-->
    </script>


    Bitte um Hilfe, da meine bisherigen bemühungen ohne Erfolg waren

    LG
    Atlantis


    verwendete ilch Version: 1.1 P
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Hinzufügen musst das Feld vor allem in Zeile 196, dann natürlich die Variable im Template entsprechend benennen (Zeile 24), wie es auf php Seite ist, dabei bietet es sich an, direkt den Namen des Datenbankfeldes zu nehmen, dann muss man auf php Seite nichts weiter machen.

    Dabei solltest du beachten, dass dann aber für wirklich jede Kategorie ein Bilder hinlegt sein muss, damit es nicht zu Fehlern kommt, ansonsten müsstest du auf Seiten von php doch noch prüfen, ob ein Bild angegeben ist und existiert, und dann im Template die Ausgabe des Bilder davon abhängig machen.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    XxAtlantisxX Mitglied
    Registriert seit
    23.03.2014
    Beiträge
    9
    Beitragswertungen
    0 Beitragspunkte
    Ich verstehe leider nicht so ganz, wie ich die Variable umbenennen muss... könntest du mir einen Ansatz geben?
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Naja du hast {katbild} geschrieben, das muss ja irgendwie definiert werden, da das Datenbankfeld gallery_kat heißt, bietet es sich an {gallery_kat} zu nutzen.

    Ich sehe auch gerade, dass du eine Variable $katbild angelegt hast. Damit wird diese aber nicht automatisch im Template verfügbar, da sie nicht mit $tpl->set übergeben wird.

    Wenn du genaueres dazu wissen willst, solltest du dir Umgang mit Ilch 1.1 Template-System anschauen.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    XxAtlantisxX Mitglied
    Registriert seit
    23.03.2014
    Beiträge
    9
    Beitragswertungen
    0 Beitragspunkte
    Danke, hab hinbekommen zwinker

    LG
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    Revolution Hall Of Fame
    Registriert seit
    14.08.2006
    Beiträge
    1.688
    Beitragswertungen
    109 Beitragspunkte
    Vielleicht dazu mal in die Dokumentation / FAQ schauen,
    da gibt es eine gute Anleitung wie man neue Variablen (Entwickler Doku Abschnitt 2) ersetzt und dank Rock@Wulf auch ein nettes Tutorial zur {EXPLODE} Funktion.


    externer Link
    externer Link


    Ideen und verbesserungen sind natürlich willkommen lachen

    Zuletzt modifiziert von Revolution am 09.04.2014 - 21:26:39
    Kreativ, modern, Conversion und Usability optimiert
    individuelles Webdesign für ein optimales Erscheinungsbild
    404studios
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu HTML, PHP, SQL,...

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten