Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#1 09. November 2016 20:18

bd0
Server-Pate
Ort: Köln
Registriert: 22. Juni 2011
Beiträge: 208

ListIt2 -> gbFilePicker automatische Unterordner erzeugen klappt nicht

Hallo,

ich nutze bei einem älteren Projekt ListIt2 1.4.1
Damit werden unter anderem die Referenzen gepflegt. Mittlerweile ist es im entsprechenden Bildordner ziemlich voll geworden, was den GBFilePicker bei der Anzeige auch extrem verlangsamt.
Es gibt, wenn ich es richtig sehe, theoretisch die Möglichkeit für jeden Eintrag einen seperaten Ordner zu erzeugen, indem man bei Speicherpfad noch {$item_id} oder {$item_alias} anhängt.
In der Beschreibung des GBFilePicker Extra-Felds steht:

"Directory path that will be appended to $config['uploads_url'] . No slash at the end. {$item_id} and {$item_alias} will be replaced."

Ich habe es entsprechend eingetragen (siehe Screenshot) nur leider funktioniert es bei mir nicht. Es wird lediglich ein Ordner "{$item_id}" erzeugt, sprich die {$item_id} wird nicht verarbeitet/eingesetzt.

mini_bildupload.gif

Hat jemand ne Idee woran das liegen kann? Fehlt irgendein Modul oder benötige ich ein spezielles UDT oder dergleichen?

Im Erklärungsvideo zu MegaUpload https://vimeo.com/76210015 sieht man bei 31s dass es dort auch so verwendet wird, sehe da keinen Unterschied zu meinem Eintrag.

btw. wo kann man das Modul MegaUpload finden? Das wäre total praktisch für kleine Galerien?

mein Setup:
CMS-Version         1.12.2

Installierte Module
CMSMailer     5.2.14
FileManager         1.4.5
MenuManager         1.8.7
MicroTiny         1.2.9
ModuleManager         1.5.8
ListIt2         1.4.1
ListIt2XDefs         1.2
GBFilePicker         1.3.3
CGExtensions         1.53.13
CGSmartImage         1.21.5
AdvancedContent     0.9.4.3
AceEditor         1.0
ToolBox         1.3.11
CGSimpleSmarty         1.10
ListIt2XLink         1.0.2



Freue mich über Hilfe!

Offline

#2 12. November 2016 17:58

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.018
Webseite

Re: ListIt2 -> gbFilePicker automatische Unterordner erzeugen klappt nicht

bd0 schrieb:

ich nutze bei einem älteren Projekt ListIt2 1.4.1

Ab der 1.12.x gibt's sicherheitsseitig ein paar Änderungen im CMSMS-Core, was mit dieser LI-Version Probleme macht.

http://forum.cmsmadesimple.org/viewtopi … 90#p320990

(inklusive Workaround) ... und bevor er weg ist big_smile

Man nehme die ListIt2.module.php, ab Zeile 325

  public function ModProcessTemplate($tpl_name)
    {
        $ok = (strpos($tpl_name, '..') === false);
        if (!$ok) return;

        $smarty = cmsms()->GetSmarty();    
        $config = cmsms()->GetConfig();
        $result = '';
        
        $oldcache = $smarty->caching;
        $smarty->caching = $this->can_cache_output() ? Smarty::CACHING_LIFETIME_CURRENT : Smarty::CACHING_OFF;

        $files = array();
        $files[] = cms_join_path($config['root_path'],'module_custom',$this->GetName(),'templates',$tpl_name);
        $files[] = cms_join_path($this->GetModulePath(),'templates',$tpl_name);
        $files[] = cms_join_path(LISTIT2_TEMPLATE_PATH,$tpl_name);

        foreach($files as $file) {
        
            if(is_readable($file)) {

                $result = $smarty->fetch($file);
                break;
            }
        }
        
        $smarty->caching = $oldcache;

        return $result;        
    }

und ersetze dies durch

public function ModProcessTemplate($tpl_name)
  {
          $ok = (strpos($tpl_name, '..') === false);
          if (!$ok) return;

          $smarty = cmsms()->GetSmarty(); 
          $config = cmsms()->GetConfig();
          cmsms()->GetSmarty()->no_absolute_templates = FALSE;
          $result = '';
         
          $oldcache = $smarty->caching;
          $smarty->caching = $this->can_cache_output() ? Smarty::CACHING_LIFETIME_CURRENT : Smarty::CACHING_OFF;

          $files = array();
          $files[] = cms_join_path($config['root_path'],'module_custom',$this->GetName(),'templates',$tpl_name);
          $files[] = cms_join_path($this->GetModulePath(),'templates',$tpl_name);
          $files[] = cms_join_path(LISTIT2_TEMPLATE_PATH,$tpl_name);

          foreach($files as $file) {
         
                  if(is_readable($file)) {

                          $result = $smarty->fetch($file);
                          break;
                  }
          }
         
          $smarty->caching = $oldcache;
          cmsms()->GetSmarty()->no_absolute_templates = TRUE;
          return $result;  
  }
bd0 schrieb:

btw. wo kann man das Modul MegaUpload finden?

MegaUpload ist war ein kommerziell vertriebenes Modul, was von einem (ehemaligen) Mitglied des CMSMS-Dev-Teams (Stikki) angeboten wurde ... bevor dieser vergrault wurde.

Bei Interesse könnte man ja mal nachfragen, ob und unter welchen Umständen er das Modul freigeben würde...

Offline

#3 12. November 2016 19:04

bd0
Server-Pate
Ort: Köln
Registriert: 22. Juni 2011
Beiträge: 208

Re: ListIt2 -> gbFilePicker automatische Unterordner erzeugen klappt nicht

hey cyberman,

danke für deine antwort und workaround, werde ich nächste woche mal ausprobieren und hier berichten.

schon mal 1000 Dank!

Offline

#4 13. Dezember 2016 23:20

bd0
Server-Pate
Ort: Köln
Registriert: 22. Juni 2011
Beiträge: 208

Re: ListIt2 -> gbFilePicker automatische Unterordner erzeugen klappt nicht

so, habs jetzt echt ne Weile schleifen lassen ... smile
und nun doch endlich mal in die ListIt2.module.php reingeschaut.
Den Workaround den Cyberman gepostet hatte, habe ich bereits vor längerer Zeit integriert, da ListIT ab Version 1.12 nicht mehr lief.
D.h. dass die fehlende Funktionalität bezüglich automatischer Ordner Erstellung leider nicht daran liegt. sad

Hat noch jemand ne andere Idee wie man das umsetzen oder reparieren kann? Das wäre für die Bedienbarkeit sehr cool! Im Bildverzeichnis befinden sich inzwischen viele Bilder und der GBFilePicker braucht ziemlich lange bis er die Liste mit Bildern anzeigt...

Mit Lise hab ichs auch mal kurz probiert, aber da scheint es diese Funktion nicht zu geben, lasse mich aber gerne eines besseren belehren.

Offline

#5 14. Dezember 2016 23:45

pWorker
probiert CMS/ms aus
Registriert: 20. Oktober 2016
Beiträge: 78

Re: ListIt2 -> gbFilePicker automatische Unterordner erzeugen klappt nicht

Hey,

da es ja eh um die Modifikation geht, kannst Du Dir ja auch das .tpl angucken, wo das Extrafeld erstellt wird und schon dort die Smarty Variablen einfügen. Manchmal hatte ich auch Probleme mit 2 Variablen, da wird dann ein durch-0-teil Fehler angezeigt. Versuche das ganze in eine Variable zu packen. Es liegt auf jeden Fall an der Smarty-Nichtverarbeitung nach dem /.

MfG

Offline

#6 14. Dezember 2016 00:35

bd0
Server-Pate
Ort: Köln
Registriert: 22. Juni 2011
Beiträge: 208

Re: ListIt2 -> gbFilePicker automatische Unterordner erzeugen klappt nicht

Puh! Schön wärs wenn ich das könnte big_smile

Geht's evtl. etwas konkreter? Ich vermute ja mal dass es unter "fielddefs -> FileUpload" zu suchen ist. Aber was genau?

...

inzwischen ist mir aufgefallen dass es "FileUpload" ja schon mal nicht sein kann, da ich ja den GBFilePicker nutze, und es mit dem GBFilePicker nicht funktioniert. Habe mal ein "FileUpload"-Feld eingerichtet und dort bei Ordner "prj_images/prj-{$item_id}" eingetragen. Und siehe da, damit funktioniert die Ordnererstellung. Ist ja schon mal ne Erkenntnis dass es eigentlich nicht an ListIt sondern eher an GBFilePicker zu liegen scheint.
GBFilePicker erscheint bei den fielddefs nicht direkt, es wird das über ListIt2XDefs eingebunden.

Also müsste dort irgendwo der fehler zu finden sein.
In ListIt2XDefs/fielddefs/GBFilePicker -> listit2fd.GBFilePicker.php

ab Zeile 113 wird das Verzeichnis erzeugt sofern es nicht vorhanden ist. Kann den Fehler aber nicht erkennen.

Zum Vergleich der standart "FileUpload" der funktioniert: ListIt2/lib/fielddefs/FileUpload -> listit2eh.FileUpload.php
ab Zeile 110

Kann jemand helfen?

Offline

#7 14. Dezember 2016 11:38

pWorker
probiert CMS/ms aus
Registriert: 20. Oktober 2016
Beiträge: 78

Re: ListIt2 -> gbFilePicker automatische Unterordner erzeugen klappt nicht

Moin,

also ich hab das im News Modul konfiguriert unter dem editarticle.tpl. Analog dazu musst Du auch das edittemplate suchen und darin dann nach dem Inputfeld für den Ordnerpfad zum speichern. Dort wirst Du eine vorkonstruierte Funktion finden, die einen Pfad erstellt + dem Inputvalue des Feldes (den Du als Pfad für das Bild im Backend anlegen würdest). Jetzt musst Du hier nur Deine Variablen eintragen und fortan ist das dann der standardmäßige Speicherpfad (!!! + dem Value den Du auch weiterhin im Backend eintragen könntest!!!).

Offline