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

#1 15. Oktober 2013 12:17

rednose
probiert CMS/ms aus
Registriert: 28. März 2011
Beiträge: 63

[GELÖST] tinymce undefined error bei Bilder ordner

Ich habe ein neu Installation ( 1.11.9) mit Tinymce 2.9.12

Wenn ich auf Bilder einfügen geben, kommt neben die Ordner folgende Fehlermeldung

Notice: Undefined property: stdClass::$deletelink in /srv/www/vhosts/domain/httpdocs/tmp/templates_c/TinyMCE^16e7fa5eb8da72a02823dbbd09c85217881fdbf4.module_file_tpl.TinyMCE;filepicker.tpl.php on line 186

Normalerweise steht da, wenn ein ordner leer ist, das Symbol für leeres Unterverzeichnis löschen und wenn da Bilder drin sind, kommt nichts.

Es ist nur neben den Ordnername, die Bilder selber sind gut, und auch einfügbar. Finde ein Fehlermeldung aber nicht so professionell gegenüber den Kunde. tongue

Admin cache löschen, tiny neu installieren, tiny eine version runter, alles kein Erfolg. Berechtigungen der Ordner stimmen.
Wenn ich bei Microtiny Bildverwaltung einschalten, hat es keine Fehlermeldung.

Jemand eine Idee, wie ich diese Fehlermeldung wegbekomme? Denn funktioniell habe ich nichts bemerkt.

Offline

#2 15. Oktober 2013 12:21

nockenfell
Moderator
Ort: Gontenschwil, Schweiz
Registriert: 09. November 2010
Beiträge: 2.935
Webseite

Re: [GELÖST] tinymce undefined error bei Bilder ordner

Hast du den TinyMCE noch ein zweites Mal per FTP hochgeladen?

Allenfalls fehlt irgend eine Datei aus den Modul oder ist nicht vollständig.


[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog  /   Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox

Offline

#3 15. Oktober 2013 12:55

rednose
probiert CMS/ms aus
Registriert: 28. März 2011
Beiträge: 63

Re: [GELÖST] tinymce undefined error bei Bilder ordner

Es hatte nur eine xml version bei der Modulen. Dann kam mir endlich die Idee via SVN die Dateien zu holen. Leider ohne erfolg.

Dafür habe ich mal die Suchmaske laufen lassen über die Files nach deletelink
und in action.filepicker.php ist dieses teil

if (isset($params["deletefilename"])) {
    $filename=$this->Slash($thisdir,base64_decode($params["deletefilename"]));
    if (@unlink($filename)){
      $this->smarty->assign('messagesuccess',base64_decode($params["deletefilename"])." ".$this->Lang("deletefilesuccess"));
    } else {
      $this->smarty->assign('messagefail',base64_decode($params["deletefilename"])." ".$this->Lang("deletefilefailed"));
    }
  }

(if @unlink  ist Zeile 186, welche genannt wird in der Fehlermeldung)

und etwas weiter folgende code

//$onerow->deletelink="<a href='".$config["root_url"]."/modules/TinyMCE/filepicker.php".$urlext."&amp;type=".$_GET["type"]."&amp;subdir=".$subdir."&amp;deletesubdir=".base64_encode($file["name"])."'";
        $onerow->deletelink="<a href='".makelinkurl($this,$id,$returnid,$params)."'"; 

Kann ich event. was an der messagefail ändern? Denn wie gesagt, leere Ordner erkennt er und stellt auch richtig das Symbol da, nur wenn ein Ordner Inhalt hat -was eigentlich normalfall ist, kommt die Fehlermeldung.

Offline

#4 15. Oktober 2013 13:29

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.437

Re: [GELÖST] tinymce undefined error bei Bilder ordner

Also erstens ist das"nur" eine Notice.
Solche Fehlermeldungen sollten im Normalfall auf dem Server deaktiviert werden.
(.htaccess: php_flag display_errors off)

Und zweitens glaube ich, dass der Fehler eher in einem Template des TinyMCE zu finden ist.

Kurz:
Verzeichnisse bzw. Dateien sind im Template Objekte.
Im Template wird ungeprüft auf eine Eigenschaft eines dieser Objekte zugegriffen, die das Objekt aber nicht hat.
Das Objekt hat diese Eigenschaft nicht, weil bestimmte Bedingungen zutreffen bzw. nicht zutreffen.
In dem Falle hängt es damit zusammen, ob ein Verzeichnis leer ist, oder nicht.
Wenn es nicht leer ist, hat das Objekt die Eigenschaft "deletelink" nicht (weil man es ja dann eh nicht löschen kann).
Und dann kommt es zu diesem Fehler.

Normalerweise steht da, wenn ein ordner leer ist, das Symbol für leeres Unterverzeichnis löschen und wenn da Bilder drin sind, kommt nichts.

Nein, eben nicht. Laut Template wird dort generell der Deletelink angezeigt. Unabhängig davon, ob es überhaupt einen Deletelink gibt. Wenn es keinen gibt, weil das Verzeichnis nicht leer und somit nicht löschbar ist, kommt dort eine Fehlermeldung. Nur, wenn display_errors off eingestellt ist, dann kommt dort nichts.

Also entweder beim TinyMCE das Template /templates/filepicker.tpl so ändern, dass vor jedem Zugriff auf {$file->deletelink} auch geprüft wird, ob das Ding existiert:

{if isset($file->deletelink)}{$file->deletelink}{/if}

oder den PHP-Code in der Datei /action.filepicker.php so ändern, dass die Eigenschaft "deletelink" immer existiert, jedoch nur dann einen Wert beinhaltet, wenn auch wirklich gelöscht werden kann/darf:

[== action.filepicker.php, Zeile 325: ==]
foreach($files as $file) {
  $onerow = new stdClass();
  $onerow->name=$file["name"];

  $onerow->name=$file["name"];
  $onerow->fileicon=$file["fileicon"];

  $onerow->deletelink = ''; // <-- DAS HIER EINFÜGEN

Da die Eigenschaft deletelink ja nur dann mit Werten befüllt wird, wenn man auch löschen kann/darf, reicht es aus, wenn wir einfach pauschal vor allen anderen Abfragen eine leere Eigenschaft für diesen deletelink definieren.


Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#5 15. Oktober 2013 13:45

rednose
probiert CMS/ms aus
Registriert: 28. März 2011
Beiträge: 63

Re: [GELÖST] tinymce undefined error bei Bilder ordner

erstens möchte ich mich bedanken für die ausserordentliche Geschwindigkeit, womit geantwortet wurde. smile
zweitens finde ich es toll, das sehr oft ein ausführliches Antwort kommt, ich lerne immer wieder sehr viel dazu.

und drittens, ich habe der Lösung mit der action.filepicker.php gemacht, und es hat funktioniert.

Die Fehlermeldungen hat sich vor kurzem bei der provider geändert, das muss ich tatsächlich jetzt in ein htaccess schreiben ( vorher konnte ich das in Kundencenter machen). Soll ich mal anfangen. hmm

Offline