Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: MODUL: Überflüssige Produktbilder löschen

    franky_n

    • Experte
    • Beiträge: 4.950
    MODUL: Überflüssige Produktbilder löschen
    Antwort #15 am: 05. Januar 2011, 21:50:15
    Hallo twe,

    nö bis jetzt alles korrekt!
    Du machst das gut! :)

    Viele Grüße

    Franky

    rechtstexte für onlineshop

    Shorty

    • Foren-Troll
    • Viel Schreiber
    • Beiträge: 909
    • Geschlecht:
    MODUL: Überflüssige Produktbilder löschen
    Antwort #16 am: 05. Januar 2011, 21:52:42
    Ich teste es auch gerade und wenn ich folgendes in die admin/include/column_left.php
    Suche nach Zeile:

    [code=php]
      if (($_SESSION['customers_status']['customers_status_id'] == '0') && ($admin_access['content_manager'] == '1')) echo '<li><a href="' . xtc_href_link(FILENAME_CONTENT_MANAGER) . '" class="menuBoxContentLink"> -' . BOX_CONTENT . '</a></li>';
    und füge darunter ein:

    Code: PHP  [Auswählen]
      // franky_n - remove old pics - BOF
      if (($_SESSION['customers_status']['customers_status_id'] == '0') && ($admin_access['removeoldpics'] == '1')) echo '<li><a href="' . xtc_href_link(FILENAME_REMOVEOLDPICS, '', 'NONSSL') . '" class="menuBoxContentLink"> -' . BOX_REMOVEOLDPICS . '</a></li>';
      // franky_n - remove old pics - EOF
     
    [/code]
    Komme ich immer wider in den Shop, also habe ich es so geändert:

    Code: PHP  [Auswählen]
     // franky_n - remove old pics - BOF
      if (($_SESSION['customers_status']['customers_status_id'] == '0') && ($admin_access['removeoldpics'] == '1')) echo '<li><a href="' . xtc_href_link('removeoldpics.php', '', 'NONSSL') . '" class="menuBoxContentLink"> -' . BOX_REMOVEOLDPICS . '</a></li>';
      // franky_n - remove old pics - EOF
     
    Wen ich es jetzt aufrufe bekomme ich:
    Parse error: syntax error, unexpected $end in /var/www/web0/html/admin/removeoldpics.php on line 121Aber ich kann in der Zeile keinen Fehler finden?

    twe

    • Schreiberling
    • Beiträge: 293
    • Geschlecht:
    MODUL: Überflüssige Produktbilder löschen
    Antwort #17 am: 05. Januar 2011, 22:10:48
    Hallo twe,

    nö bis jetzt alles korrekt!
    Du machst das gut! :)

    Viele Grüße

    Franky

    mit diesem Code werden schon mal Bilder angezeigt. Ob es wirklich die sind, die ich nicht brauche, muss ich noch prüfen

    Man kann ja immer noch auf unlink() umschalten wenn mehrere Leute getestet haben ob es auch wirklich passt.

    twe

    • Schreiberling
    • Beiträge: 293
    • Geschlecht:
    MODUL: Überflüssige Produktbilder löschen
    Antwort #18 am: 05. Januar 2011, 22:22:19
    Jetzt sind die Bilder unter dem Menü

    Code: PHP  [Auswählen]
    <?php
    /* --------------------------------------------------------------
       $Id: imagesliders.php 001 2008-07-29 12:19:00Z Hetfield $  

       XT-Commerce - community made shopping
       http://www.(( Wir dulden keine kommerziellen Werbelinks - Bitte <a href="index.php?topic=3013.0">Forenregeln</a> beachten! ))

       Copyright (c) 2003 XT-Commerce
       --------------------------------------------------------------
       based on:
       (c) 2000-2001 The Exchange Project  (earlier name of osCommerce)
       (c) 2002-2003 osCommerce(imagesliders.php,v 1.52 2003/03/22); www.oscommerce.com
       (c) 2003      nextcommerce (imagesliders.php,v 1.9 2003/08/18); www.nextcommerce.org

       Released under the GNU General Public License
       --------------------------------------------------------------*/


      require('includes/application_top.php');
      require(DIR_FS_LANGUAGES . $_SESSION['language'] . '/admin/removeoldpics.php');
      function remove_old_pics ($path='') {
        $pics_array = array();
        $pics_query = xtc_db_query("SELECT image_name FROM ".TABLE_PRODUCTS_IMAGES."");
        while ($pics = xtc_db_fetch_array($pics_query)) {
          $pics_array[] = $pics['image_name'];
        }
        switch ($path) {
          case 'original' :
            $path = DIR_FS_CATALOG_ORIGINAL_IMAGES;
            $path1 = DIR_WS_CATALOG_ORIGINAL_IMAGES;
            break;
          case 'info' :
            $path = DIR_FS_CATALOG_INFO_IMAGES;
            $path1 = DIR_WS_CATALOG_INFO_IMAGES;
            break;
          case 'thumbnail' :
            $path = DIR_FS_CATALOG_THUMBNAIL_IMAGES;
            $path1 = DIR_WS_CATALOG_THUMBNAIL_IMAGES;
            break;
          case 'popup' :
            $path = DIR_FS_CATALOG_POPUP_IMAGES;
            $path1 = DIR_WS_CATALOG_POPUP_IMAGES;
            break;
        }

    ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html <?php echo HTML_PARAMS; ?>>
      <head>
        <meta http-equiv="Content-Type" content="text/html; charset=<?php echo $_SESSION['language_charset']; ?>" />
        <title><?php echo TITLE; ?></title>
        <link rel="stylesheet" type="text/css" href="includes/stylesheet.css" />
        <script type="text/javascript" src="includes/general.js"></script>
      </head>
      <body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0" bgcolor="#FFFFFF">
        <!-- header //-->
        <?php require(DIR_WS_INCLUDES . 'header.php'); ?>

        <!-- header_eof //-->

        <!-- body //-->
        <table border="0" width="100%" cellspacing="2" cellpadding="2">
          <tr>
            <td class="columnLeft2" width="<?php echo BOX_WIDTH; ?>" valign="top">
              <table border="0" width="<?php echo BOX_WIDTH; ?>" cellspacing="1" cellpadding="1" class="columnLeft">
                <!-- left_navigation //-->
                <?php require(DIR_WS_INCLUDES . 'column_left.php'); ?>
                <!-- left_navigation_eof //-->
              </table>
            </td>
            <!-- body_text //-->
            <td class="boxCenter" width="100%" valign="top">
              <table border="0" width="100%" cellspacing="0" cellpadding="2">
                <tr>
                  <td width="100%">
                    <table border="0" width="100%" cellspacing="0" cellpadding="0">
                      <tr>
                        <td class="pageHeading"><?php echo HEADING_TITLE; ?></td>
                        <td class="pageHeading" align="right"><?php echo xtc_draw_separator('pixel_trans.gif', HEADING_IMAGE_WIDTH, HEADING_IMAGE_HEIGHT); ?></td>
                      </tr>
                    </table>
                  </td>
                </tr>
                <tr>
                  <td>
                    <table border="0" width="100%" cellspacing="0" cellpadding="0">
                      <tr>
                        <td>
                          <a href="./removeoldpics.php?action=delete&path=original"><?php echo LINK_ORIGINAL; ?></a>
                          <a href="./removeoldpics.php?action=delete&path=info"><?php echo LINK_INFO; ?></a>
                          <a href="./removeoldpics.php?action=delete&path=thumbnail"><?php echo LINK_THUMBNAIL; ?></a>
                          <a href="./removeoldpics.php?action=delete&path=popup"><?php echo LINK_POPUP; ?></a>
                        </td>
                      </tr>
                    </table>

      <?
        if ($path != "") {
          $handle=opendir($path);
          while ($datei = readdir($handle)) {
            if (!in_array($datei,$pics_array)) {
              echo '<img src="'.$path1.''.$datei.'" style="float: left; margin: 5px;">';
            }
          }
          closedir($handle);
        }
      }

      if (isset($_GET['action'])) {
        if ($_GET['action'] == 'delete') {
          if (isset($_GET['path'])) {
            remove_old_pics ($_GET['path']);
          }
        }
      }  ?>
                  </td>
                </tr>
              </table>
            </td>
            <!-- body_text_eof //-->
          </tr>
        </table>
        <!-- body_eof //-->
        <!-- footer //-->
        <?php require(DIR_WS_INCLUDES . 'footer.php'); ?>
        <!-- footer_eof //-->
        <br />
      </body>
    </html>
    <?php require(DIR_WS_INCLUDES . 'application_bottom.php'); ?>

    franky_n

    • Experte
    • Beiträge: 4.950
    MODUL: Überflüssige Produktbilder löschen
    Antwort #19 am: 05. Januar 2011, 22:28:54
    Hallo twe,

    öhm wofür willst Du die Bilder anzeigen?
    Eigentlich sind das nur 3 Buttons die man drücken kann um die alten Bilder zu löschen...

    Jetzt machst Du gerade ne ganz andere Funktion als es werden soll! ;)

    Das unlink war dafür um die Bilder zu löschen die überflüssig sind da das Produkt nicht mehr im Shop vorhanden ist...

    Viele Grüße

    Franky

    twe

    • Schreiberling
    • Beiträge: 293
    • Geschlecht:
    MODUL: Überflüssige Produktbilder löschen
    Antwort #20 am: 05. Januar 2011, 22:39:58
    um zu prüfen ob später auch die richtigen Bilder gelöscht werden. Nachdem ich geprüft habe, erweitere ich den Code mit unlink().
    Also, erst checken, dann löschen. Ist zwar ein Klick mehr, aber ich sehe was ich lösche.

    twe

    • Schreiberling
    • Beiträge: 293
    • Geschlecht:
    MODUL: Überflüssige Produktbilder löschen
    Antwort #21 am: 05. Januar 2011, 22:49:07
    Wer gleich löschen will, im oberen Code Zeile 101

    Code: PHP  [Auswählen]
     echo '<img src="'.$path1.''.$datei.'" style="float: left; margin: 5px;">';
    mit

    Code: PHP  [Auswählen]
    unlink($path.$datei);
    ersetzen.

    twe

    • Schreiberling
    • Beiträge: 293
    • Geschlecht:
    MODUL: Überflüssige Produktbilder löschen
    Antwort #22 am: 05. Januar 2011, 22:57:49
    Zeile 100

    Code: PHP  [Auswählen]
    if (!in_array($datei,$pics_array)) {
    mit

    Code: PHP  [Auswählen]
    if (!in_array($datei,$pics_array) && ($datei!='.') && ($datei != '..')) {
    ersetzen, damit . und .. ignoriert werden

    twe

    • Schreiberling
    • Beiträge: 293
    • Geschlecht:
    MODUL: Überflüssige Produktbilder löschen
    Antwort #23 am: 05. Januar 2011, 23:15:09
    Die letzte Version der removeoldpics.php für heute.

    Bilder werden gleich gelöscht, ohne Anzeige der Bilder. Bei mir kommen auch keine Fehlermeldungen mehr.
    HEADING_TITLE fehlt noch ...

    hier die

    Code: PHP  [Auswählen]
    <?php
    /* --------------------------------------------------------------
       $Id: removeoldpics.php 001 2011-01-05 12:19:00Z Hetfield $  

       XT-Commerce - community made shopping
       http://www.(( Wir dulden keine kommerziellen Werbelinks - Bitte <a href="index.php?topic=3013.0">Forenregeln</a> beachten! ))

       Copyright (c) 2003 XT-Commerce
       --------------------------------------------------------------
       based on:
       (c) 2000-2001 The Exchange Project  (earlier name of osCommerce)
       (c) 2002-2003 osCommerce(imagesliders.php,v 1.52 2003/03/22); www.oscommerce.com
       (c) 2003      nextcommerce (imagesliders.php,v 1.9 2003/08/18); www.nextcommerce.org

       Released under the GNU General Public License
       --------------------------------------------------------------*/


      require('includes/application_top.php');
      require(DIR_FS_LANGUAGES . $_SESSION['language'] . '/admin/removeoldpics.php');
      function remove_old_pics ($path='') {
        $pics_array = array();
        $pics_query = xtc_db_query("SELECT image_name FROM ".TABLE_PRODUCTS_IMAGES."");
        while ($pics = xtc_db_fetch_array($pics_query)) {
          $pics_array[] = $pics['image_name'];
        }
        switch ($path) {
          case 'original' :
            $path = DIR_FS_CATALOG_ORIGINAL_IMAGES;
            $path1 = DIR_WS_CATALOG_ORIGINAL_IMAGES;
            break;
          case 'info' :
            $path = DIR_FS_CATALOG_INFO_IMAGES;
            $path1 = DIR_WS_CATALOG_INFO_IMAGES;
            break;
          case 'thumbnail' :
            $path = DIR_FS_CATALOG_THUMBNAIL_IMAGES;
            $path1 = DIR_WS_CATALOG_THUMBNAIL_IMAGES;
            break;
          case 'popup' :
            $path = DIR_FS_CATALOG_POPUP_IMAGES;
            $path1 = DIR_WS_CATALOG_POPUP_IMAGES;
            break;
        }

        if ($path != "") {
          $handle=opendir($path);
          while ($datei = readdir($handle)) {
            if (!in_array($datei,$pics_array) && ($datei!='.') && ($datei != '..')) {
              unlink($path.$datei);
            }
          }
          closedir($handle);
        }
      }

      if (isset($_GET['action'])) {
        if ($_GET['action'] == 'delete') {
          if (isset($_GET['path'])) {
            remove_old_pics ($_GET['path']);
          }
        }
      }  ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html <?php echo HTML_PARAMS; ?>>
      <head>
        <meta http-equiv="Content-Type" content="text/html; charset=<?php echo $_SESSION['language_charset']; ?>" />
        <title><?php echo TITLE; ?></title>
        <link rel="stylesheet" type="text/css" href="includes/stylesheet.css" />
        <script type="text/javascript" src="includes/general.js"></script>
      </head>
      <body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0" bgcolor="#FFFFFF">
        <!-- header //-->
        <?php require(DIR_WS_INCLUDES . 'header.php'); ?>

        <!-- header_eof //-->

        <!-- body //-->
        <table border="0" width="100%" cellspacing="2" cellpadding="2">
          <tr>
            <td class="columnLeft2" width="<?php echo BOX_WIDTH; ?>" valign="top">
              <table border="0" width="<?php echo BOX_WIDTH; ?>" cellspacing="1" cellpadding="1" class="columnLeft">
                <!-- left_navigation //-->
                <?php require(DIR_WS_INCLUDES . 'column_left.php'); ?>
                <!-- left_navigation_eof //-->
              </table>
            </td>
            <!-- body_text //-->
            <td class="boxCenter" width="100%" valign="top">
              <table border="0" width="100%" cellspacing="0" cellpadding="2">
                <tr>
                  <td width="100%">
                    <table border="0" width="100%" cellspacing="0" cellpadding="0">
                      <tr>
                        <td class="pageHeading"><?php echo HEADING_TITLE; ?></td>
                        <td class="pageHeading" align="right"><?php echo xtc_draw_separator('pixel_trans.gif', HEADING_IMAGE_WIDTH, HEADING_IMAGE_HEIGHT); ?></td>
                      </tr>
                    </table>
                  </td>
                </tr>
                <tr>
                  <td>
                    <table border="0" width="100%" cellspacing="0" cellpadding="0">
                      <tr>
                        <td>
                          <a href="./removeoldpics.php?action=delete&path=original"><?php echo LINK_ORIGINAL; ?></a> |
                          <a href="./removeoldpics.php?action=delete&path=info"><?php echo LINK_INFO; ?></a> |
                          <a href="./removeoldpics.php?action=delete&path=thumbnail"><?php echo LINK_THUMBNAIL; ?></a> |
                          <a href="./removeoldpics.php?action=delete&path=popup"><?php echo LINK_POPUP; ?></a>
                        </td>
                      </tr>
                    </table>
                    <br />

                  </td>
                </tr>
              </table>
            </td>
            <!-- body_text_eof //-->
          </tr>
        </table>
        <!-- body_eof //-->
        <!-- footer //-->
        <?php require(DIR_WS_INCLUDES . 'footer.php'); ?>
        <!-- footer_eof //-->
        <br />
      </body>
    </html>
    <?php require(DIR_WS_INCLUDES . 'application_bottom.php'); ?>

    franky_n

    • Experte
    • Beiträge: 4.950
    MODUL: Überflüssige Produktbilder löschen
    Antwort #24 am: 05. Januar 2011, 23:19:43
    Hallo twe,

    super Arbeit!  :thx:

    Viele Grüße

    Franky

    h-h-h

    • modified Team
    • Beiträge: 4.562
    MODUL: Überflüssige Produktbilder löschen
    Antwort #25 am: 06. Januar 2011, 00:13:06
    So, wie ich das jetzt verstehe wird hier die index.html, sowie die noimage.gif gelöscht.

    Gruß

    h-h-h

    twe

    • Schreiberling
    • Beiträge: 293
    • Geschlecht:
    MODUL: Überflüssige Produktbilder löschen
    Antwort #26 am: 06. Januar 2011, 00:40:32
    stimmt, an die hab ich nicht gedacht.

    h-h-h

    • modified Team
    • Beiträge: 4.562
    MODUL: Überflüssige Produktbilder löschen
    Antwort #27 am: 06. Januar 2011, 01:45:08
    Ersetze

    Code: PHP  [Auswählen]
        if ($path != "") {
          $handle=opendir($path);
          while ($datei = readdir($handle)) {
            if (!in_array($datei,$pics_array) && ($datei!='.') && ($datei != '..')) {
              unlink($path.$datei);
            }
          }
          closedir($handle);
        }
      }
    mit

    Code: PHP  [Auswählen]
        if ($path != "") {
          $handle=opendir($path);
          while ($datei = readdir($handle)) {
            $sub = substr($datei, -4);
            if (!in_array($datei,$pics_array) && ($datei!='.') && ($datei != '..') && ($sub == '.png' || $sub == '.jpg')) {
                 unlink($path.$datei);
            }
          }
          closedir($handle);
        }
      }
    Und vielleicht auch noch

    Code: PHP  [Auswählen]
        $pics_query = xtc_db_query("SELECT image_name FROM ".TABLE_PRODUCTS_IMAGES."");
    mit diesem ersetzen:

    Code: PHP  [Auswählen]
        $pics_query = xtc_db_query("SELECT image_name FROM ".TABLE_PRODUCTS_IMAGES." WHERE products_image IS NOT NULL");
    Gruß

    h-h-h

    speedy

    • Viel Schreiber
    • Beiträge: 3.214
    MODUL: Überflüssige Produktbilder löschen
    Antwort #28 am: 06. Januar 2011, 02:07:35
    Code: PHP  [Auswählen]
    if (!in_array($datei,$pics_array) && ($datei!='.') && ($datei != '..') && ($sub == ".png" || $sub == ".jpg")) {
    .jpg wird auch oft .jpeg geschrieben, sollte man noch erweitern.

    Wie ist es mit gif´s - ist die Nutzung für Produkte systembedingt ausgeschlossen ? Ansonsten würde ich die mit in die Löschung einbeziehen, bis auf die noimage.gif halt.

    h-h-h

    • modified Team
    • Beiträge: 4.562
    MODUL: Überflüssige Produktbilder löschen
    Antwort #29 am: 06. Januar 2011, 02:11:17
    Ja, entschuldige. ;)

    Code: PHP  [Auswählen]
      if ($path != "") {
        $handle=opendir($path);
        while ($datei = readdir($handle)) {
          if (!in_array($datei,$pics_array) && ($datei!='.') && ($datei != '..') && ($datei != 'index.html') && ($datei != 'noimage.gif')) {
               unlink($path.$datei);
          }
        }
        closedir($handle);
      }
    }
    Gruß

    h-h-h

               
    anything