Ankündigung

Einklappen
Keine Ankündigung bisher.

[Fix verfügbar] Medienkollektion wird nicht beim Artikel angezeigt in 1.5.6f

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    (Zen-Cart 1.5.6) [Fix verfügbar] Medienkollektion wird nicht beim Artikel angezeigt in 1.5.6f

    Wie in einem älteren Beitrag schon erwähnt nutze ich den Mediamanager nicht mit Produkt Musik sondern mit Produkt General. Dafür habe ich den Block

    Code:
    <!--bof Media Manager -->
    
     <div id="mediaManager" class="productMusic"><?php
    
     /**
    
      * display the products related media clips
    
      */
      require($template->get_template_dir('/tpl_modules_media_manager.php',DIR_WS_TEMPLATE, $current_page_base,'templates'). '/tpl_modules_media_manager.php'); ?>
     <br class="clearBoth" /></div>
    
     <!--eof Media Manager -->
    In die Datei includes/templates/responsive_sheffiled_blue/templates/tpl_product_info_display.php eingefügt.


    Das hat in der älteren 156 Version sauber funktioniert.
    Nach dem Update auf 156d gab es dann immer log-dateien, woraufhin ich den Hinweis bekam in includes/modules/mediamanager.php die Zeile 69 abzuändern.
    Das hatte zunächst nicht funktioniert, da wurden die Medien nicht mehr angezeigt.


    Ich weiß nicht mehr, was ich dann gemacht habe, aber aktuell funktionierte alles, auch mit der neueren Zeile in mediamanager.php. Bis jetzt zum update auf 156f.


    Das Update lief soweit gut, ausser das die Medien nicht mehr beim Produkt angezeigt werden.


    Selbst bei einer blanken Neuinstallation des Zencart 156f im classic template werden bei mir auch für ein „Produkt Musik“ die Medien nicht angezeigt.
    Wenn ich Zeile 69 in mediamanager.php wieder auf die alte Version schreibe, dann werden die Medien angezeigt, aber nicht mit Mediaplayer für .mp3 sondern nur als link.


    Kann mir jemand bei diesem Problem weiterhelfen?

    #2
    Mediamanager

    Müsstest mal in includes/module/pages

    product_music_info und
    document_product_info

    die mySQL und php Definitionen im header_php.php und main_template_vars.php vergleichen.

    Da werden dir bestimmt einige mySQL Abfragen und PHP Funktionen fehlen.

    Kommentar


      #3
      1.5.6f enthält in includes/modules/media_manager.php einen Fehler, der dazu führt, dass die hinterlegten Medien nicht beim Artikel vom Typ product_music angezeigt werden.

      Zeile 69 muss lauten
      Code:
      $zv_product_has_media = (count($za_media_manager) > 0);
      statt
      Code:
      $zv_product_has_media = (!empty($za_media_manager) && is_array($zc_media_manager));
      Zusätzlich sollte in Zeile 20 unterhalb von
      Code:
      $zq_collections = $db->Execute($zv_collection_query);
      eingefügt werden:
      Code:
      $za_media_manager = array();
      Hier der gesamte Code einer korrekten includes/modules/media_manager.php für Zen Cart 1.5.6f deutsch:
      Code:
      <?php
      /**
       * iterates thru media collections/clips
       *
       
       * @copyright Copyright 2003-2022 Zen Cart Development Team
       * @license https://www.zen-cart-pro.at/license/3_0.txt GNU General Public License V3.0
       * @version $Id: media_manager.php 2022-01-10 08:38:16Z webchills $
       */
      if (!defined('IS_ADMIN_FLAG')) {
        die('Illegal Access');
      }
      
      /**
       * get list of media collections assigned to specified product
       */
      $zv_collection_query = "select media_id, product_id from " . TABLE_MEDIA_TO_PRODUCTS . "
                              where product_id = '" . (int)$_GET['products_id'] . "'";
      $zq_collections = $db->Execute($zv_collection_query);
      $za_media_manager = array();
      $zv_product_has_media = false;
      /**
       * loop thru collections to identify actual media clips
       */
      if ($zq_collections->RecordCount() > 0) {
        $zv_product_has_media = true;
        while (!$zq_collections->EOF) {
          /**
           * get names of assigned media collections
           */
          $zf_media_manager_query = "select media_id, media_name from " . TABLE_MEDIA_MANAGER . "
                                     where media_id = '" . (int)$zq_collections->fields['media_id'] . "'";
          $zq_media_manager = $db->Execute($zf_media_manager_query);
          if ($zq_media_manager->RecordCount() < 1) {
            $zv_product_has_media = false;
          } else {
            /**
             * build array of [collection_id][text] = collection-name
             */
            $za_media_manager[$zq_media_manager->fields['media_id']] = array('text' => $zq_media_manager->fields['media_name']);
            /**
             * get list of media clips associated with the current media collection, sorted by filename (to allow display sort order to be controlled by filename)
             */
            $zv_clips_query = "select media_id, clip_id, clip_filename, clip_type from " . TABLE_MEDIA_CLIPS . "
                               where media_id = '" . (int)$zq_media_manager->fields['media_id'] . "' order by clip_filename";
            $zq_clips = $db->Execute($zv_clips_query);
            if ($zq_clips->RecordCount() < 1) {
              $zv_product_has_media = false;
            } else {
              while (!$zq_clips->EOF) {
                /**
                 * get list of media types and filenames associated with the current media
                 * @TODO - run this as separate static array, since only needs to run once, not repeatedly in a loop
                 */
                $zf_clip_type_query = "select type_ext, type_name from " . TABLE_MEDIA_TYPES . "
                                       where type_id = '" . (int)$zq_clips->fields['clip_type'] . "'";
      
                $zq_clip_type = $db->Execute($zf_clip_type_query);
      
                $za_media_manager[$zq_media_manager->fields['media_id']]['clips'][$zq_clips->fields['clip_id']] =
                      array('clip_filename' => $zq_clips->fields['clip_filename'],
                            'clip_type' => $zq_clip_type->fields['type_name']);
                $zq_clips->MoveNext();
              }
            }
          }
          $zq_collections->MoveNext();
        }
      }
      $zv_product_has_media = (count($za_media_manager) > 0);
      Damit sieht es dann in der Standardinstallation bei so einem Artikel so aus:
      Zuletzt geändert von webchills; 10.01.2022, 08:51.

      Kommentar


        #4
        Danke für die Antwort und Korrektur.
        Jetzt funktioniert es.
        Und den audio-Tag für den Player habe ich auch wieder eingefügt.
        Dann kann das Update jetzt fertig gemacht werden.

        Kommentar


          #5
          Jetzt habe ich doch noch ein Problem mit dem Mediamanager.
          Im Adminbereich unter Extras Mediamanager funktioniert die Artikelzuweisung für die erste Kategorie nicht.
          Wenn man eine Medie über "zu Artikel zuweisen" klickt öffnet sich eine Zeile mit der ersten Kategorie.
          Das Feld läßt sich aufklappen und man kann eine andere Kategorie auswählen. Dann kommen die Artikel der Kategorie.
          Soweit in Ordnung für alle Kategorien, ausser der obersten. Diese lässt sich nicht öffnen. es kommt die Anzeige "keine Artikel in dieser Kategorie".
          Wenn man in der Datenbank-Tabelle media_to_products Verknüpfungen von Hand anlegt. werden diese nicht angezeigt. Weder im Mediamanager, noch beim Artikel.

          Könnte hier auch noch irgendwo ein Fehler sein?

          Kommentar


            #6
            Wenn die Hauptkategorie Unterkategorien enthält, dann wird in der Hauptkategorie "keine Artikel in dieser Kategorie" angezeigt. Das ist auch ok so, denn es darf in einer Kategorie mit Unterkategorien keine Artikel geben.
            Eine Kategorie enthält entweder Artikel oder Unterkategorien, aber nicht beides gemischt.
            Die Zuweisung zu einem Artikel in einer Unterkatgorie funktioniert problemlos.

            Kommentar


              #7
              Das mit Kategorie und Unterkategorien ist schon klar.
              Es handelt sich hier aber definitiv um eine Kategorie mit Artikeln, die ich nicht anwählen kann.
              Es ist immer die oberste Kategorie in der Hierarchie, gleichwertig zu anderen Kategorien, die ich anwählen kann.
              Das gleiche Phänomen ist auch bei der blanken Installation im Medienmanager.

              Bei anderen Modulen, wie z.B. Attrributmanager, Preismanager oder imagehandler, die ein ähnliches Artikelsuchsystem haben, wird die erste Kategorie immer sofort mit Artikeln geöffnet. Da besteht das Problem nicht.

              Was mir aufgefallen ist, das die Tabelle media_to_products in meinen Datenbanken nicht indiziert ist. Ist das richtig?

              Kommentar


                #8
                Nun ja, ich habe jetzt das Problem soweit gelöst, das ich kurzfristig die Sortierung der Kategorien geändert habe.
                Dann kann ich die erste Kategorie, die ich z.B. auf Platz 3 gesetzt habe, mit Artikeln auswählen, Medien zuweisen und anschließend die Sortierung der Kategorien wieder so setzen, wie ich sie haben will.
                Aber elegant ist das so nicht. Irgendwo muss da ein Fehler sein.

                Kommentar

                Info zu diesem Forenarchiv:
                Mit Release von 1.5.7 wurde die deutsche Zen Cart Version auf eine reine DIY-Lösung umgestellt.
                Für einen Support via Forum stehen keine personellen und zeitlichen Ressourcen mehr zur Verfügung.
                Dieses Supportforum bleibt im Nur-Lesen-Modus als Wissensarchiv noch online verfügbar.
                PM Funktionalität, Registrierung und Posten neuer Beiträge sind deaktiviert.
                Zugriff auf Anhänge in den Postings ist auch ohne Registrierung/Einloggen möglich.
                FAQ und Downloadbereich des Forums wurden in die neue umfangreiche Knowledgebase auf der zen-cart-pro.at Website übernommen.

                Das Development der deutschen Zen Cart Version geht wie bisher auf Github weiter.
                Wir werden auch weiterhin neue Versionen bereitstellen und die Onlinedokumentation/Knowledgebase aktualisieren.
                Fehler in der Software können auf Github als Issues gemeldet werden.
                Follow us
                aktuelle version
                Zen Cart 1.5.7g deutsch
                vom 12.12.2023
                [Download]
                Lädt...
                X