Managed Server
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: ANLEITUNG: Option zum löschen der Herstellerbilder hinzufügen

    Eichenhorn

    • Fördermitglied
    • Beiträge: 503
    v1.06 rev 4642

    Herstellerbilder können nur ausgetauscht aber nicht gelöscht werden.

    [EDIT Tomcraft 26.10.2013: Hier geht es direkt zur Anleitung von noRiddle.]

    Linkback: https://www.modified-shop.org/forum/index.php?topic=28129.0

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.988
    • Geschlecht:
    Thema gab's hier schonmal.
    Finde aber auch, daß man das ins Backend einbauen sollte.
    Wenn ich mal Zeit habe... ;-)

    Kannst dich ja mal versuchen:
    In /admin/manufacturers.php bei case 'edit': das hier erweitern
    Code: PHP  [Auswählen]
    $contents[] = array('text' => '<br />' . TEXT_MANUFACTURERS_IMAGE . '<br />' . xtc_draw_file_field('manufacturers_image') . '<br />' . $mInfo->manufacturers_image);
    um eine checkbox mit z.B. name="del_man_img" (in if-Clause, nur wenn image vorhanden und xtc_draw_checkbox_field() Funktion benutzen)

    und weiter oben bei
    Code: PHP  [Auswählen]
    case 'insert':
    case 'save':
    hier innerhalb des elseif
    Code: PHP  [Auswählen]
          } elseif ($_GET['action'] == 'save') {
            $update_sql_data = array('last_modified' => 'now()');
            $sql_data_array = xtc_array_merge($sql_data_array, $update_sql_data);
            xtc_db_perform(TABLE_MANUFACTURERS, $sql_data_array, 'update', "manufacturers_id = '" . xtc_db_input($manufacturers_id) . "'");
          }
     

    noch 'ne Abfrage einbauen à la
    Code: PHP  [Auswählen]
    if($_POST['del_man_img'] != '') {
    $del_data_array = array('manufacturers_image' => NULL);
    xtc_db_perform(TABLE_MANUFACTURERS, $del_data_array, 'update', "manufacturers_id = '" . xtc_db_input($manufacturers_id) . "'");
    }

    !! Nicht getestet ;-)

    Gruß,
    noRiddle

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.988
    • Geschlecht:
    Okay, naja, habe mir die Zeit kurz mal genommen.
    So geht's:
    In /admin/manufacturers.php bei case 'edit': das hier
    Code: PHP  [Auswählen]
    $contents[] = array('text' => '<br />' . TEXT_MANUFACTURERS_IMAGE . '<br />' . xtc_draw_file_field('manufacturers_image') . '<br />' . $mInfo->manufacturers_image);

    hiermit ersetzen
    Code: PHP  [Auswählen]
    //BOC for possibility to delete manufacturers image, noRiddle
    //$contents[] = array('text' => '<br />' . TEXT_MANUFACTURERS_IMAGE . '<br />' . xtc_draw_file_field('manufacturers_image') . '<br />' . $mInfo->manufacturers_image);
    $contents[] = array('text' => '<br />' . TEXT_MANUFACTURERS_IMAGE . '<br />' . xtc_draw_file_field('manufacturers_image') . (!empty($mInfo->manufacturers_image) ? '<br />' . $mInfo->manufacturers_image . ' | ' . TEXT_DELETE_IMG . xtc_draw_checkbox_field('del_man_img') : ''));
    //EOC for possibility to delete manufacturers image, noRiddle

    In gleicher Datei /admin/manufacturers.php bei case 'insert': case 'save':
    das hier
    Code: PHP  [Auswählen]
          } elseif ($_GET['action'] == 'save') {
            $update_sql_data = array('last_modified' => 'now()');
            $sql_data_array = xtc_array_merge($sql_data_array, $update_sql_data);
            xtc_db_perform(TABLE_MANUFACTURERS, $sql_data_array, 'update', "manufacturers_id = '" . xtc_db_input($manufacturers_id) . "'");
          }

    hiermit ersetzen
    Code: PHP  [Auswählen]
          } elseif ($_GET['action'] == 'save') {
            $update_sql_data = array('last_modified' => 'now()');
            $sql_data_array = xtc_array_merge($sql_data_array, $update_sql_data);
            xtc_db_perform(TABLE_MANUFACTURERS, $sql_data_array, 'update', "manufacturers_id = '" . xtc_db_input($manufacturers_id) . "'");
            //BOC for possibility to delete manufacturers image, noRiddle
            if($_POST['del_man_img'] != '') {
                $del_data_array = array('manufacturers_image' => NULL);
                xtc_db_perform(TABLE_MANUFACTURERS, $del_data_array, 'update', "manufacturers_id = '" . xtc_db_input($manufacturers_id) . "'");
            }
            //EOC for possibility to delete manufacturers image, noRiddle
          }

    Und in /lang/admin/manufacturers.php unten (vor dem schließenden ?> falls vorhanden)
    das einfügen
    Code: PHP  [Auswählen]
    //BOC for possibility to delete manufacturers image, noRiddle
    define('TEXT_DELETE_IMG', 'Bild l&ouml;schen');
    //EOC for possibility to delete manufacturers image, noRiddle

    Nachteil:
    Auf dem Server in /images/maufacturers bleibt das Bild und wird nicht gelöscht.
    Das kann ja noch jemand dazubauen ;-).

    Jetzt ist es getestet :-D.

    Gruß,
    noRiddle

    [EDIT Tomcraft 26.01.2013: Anleitung in Beitrag 1 verlinkt.]

    Eichenhorn

    • Fördermitglied
    • Beiträge: 503
    Respekt und Beifall! :thumbs:

    Jetzt muss das nur von den Entwicklern gewürdigt und übernommen werden.

    web0null

    • Experte
    • Beiträge: 1.998
    Zitat
    Das kann ja noch jemand dazubauen
    Na dann will ich mal.  :-D

    Bild löschen von Server:

    ersetze:

    Code: PHP  [Auswählen]
    xtc_draw_checkbox_field('del_man_img')

    mit:

    Code: PHP  [Auswählen]
    xtc_draw_checkbox_field('del_man_img', $mInfo->manufacturers_image)

    und, ersetze:

    Code: PHP  [Auswählen]
    if($_POST['del_man_img'] != '') {
                $del_data_array = array('manufacturers_image' => NULL);
                xtc_db_perform(TABLE_MANUFACTURERS, $del_data_array, 'update', "manufacturers_id = '" . xtc_db_input($manufacturers_id) . "'");
            }

    mit:

    Code: PHP  [Auswählen]
    if($del_man_img = $_POST['del_man_img']) {
              $del_data_array = array('manufacturers_image' => NULL);
              xtc_db_perform(TABLE_MANUFACTURERS, $del_data_array, 'update', "manufacturers_id = '" . xtc_db_input($manufacturers_id) . "'");
              if (file_exists(DIR_FS_CATALOG_IMAGES . $del_man_img)) {
                @unlink(DIR_FS_CATALOG_IMAGES . $del_man_img);
              }
            }

    Ungetestet, sollte aber gehen.

    Edit:
    Jetzt ist es auch getestet :-D

    Gruß

    web28

    • modified Team
    • Beiträge: 9.404
    Das wurde für die nächste Version bereits behoben.
    Trotzdem Danke

    Gruss Web28

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.988
    • Geschlecht:
    Du bist immer im richtigen Moment da, wow, Respekt. *edit* auch hier: Keyword Einstellungen werden nicht berücksichtigt
    Danke folglich dir für dein Engagement.

    Gruß,
    noRiddle
    Trade Republic - Provisionsfrei Aktien handeln