SPAW Editor - Bilderverzeichnis dynamisch laden

Begonnen von Webfan, 23 Juli 2010, 10:27:26

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 2 Gäste betrachten dieses Thema.

Webfan

Hallo,
es geht darum, für mein neues Blogmodul möchte ich, daß wenn im Modul im Spaweditor nur (bzw. oder an erster Stelle) das Verzeichnis des Blogs/users zur Auswahl erscheint, wenn man auf Bild einfügen klickt (also hier: http://www.webfan.de/spaw/dialogs/img_library.php?lang=de&theme=default&editor=impressum&callback=SPAW_image_insert_click_callback&request_uri=https%3A//www.webfan.de/Userblog-op-settings-id-1.html

Mein Code sieht foilgendermaßen aus (spaw/config/spaw_control.config.php):

if ((!empty($wysiwyg_userpath)) && ((WYSIWYG_IS_ADMIN) || (WYSIWYG_IS_USER && $wysiwyg_uploadallow == 2))) {
   // image libraries

global $BLOGDATA;
//-> BLOGDATA ist korrekt vorhanden

   
   if(MX_MODULE=='Userblog' && $BLOGDATA!=FALSE)
    {
    //in diese if bedingung geht er nur wenn admin
     $spaw_imglibs = array(

           array("value" => "images/userpics/".$BLOGDATA['subdomain']."/",
           "text" => "Bilder von ".$BLOGDATA['blogname'],
           ),
           );
    }else{
   $spaw_imglibs = array(

           array("value" => "images/userpics/",
           "text" => "Benutzerbilder",
           ),

       array("value" => $wysiwyg_userpath . "/",
           'text' => "Mx-Uploads",
           ),
       array("value" => "images/smilies/",
           "text" => "Smilies",
           ),
       );
       }
       //eof mx module nouserblog
       
} else {

   if(MX_MODULE=='Userblog' && $BLOGDATA!=FALSE)
    {
          $spaw_imglibs = array(

           array("value" => "images/userpics/".$BLOGDATA['subdomain']."/",
           "text" => "Bilder von ".$BLOGDATA['blogname'],
           ),
           );
    }else{
   // image libraries
   $spaw_imglibs = array(

           array("value" => "images/userpics/",
           "text" => "Benutzerbilder",
           ),

           array("value" => $wysiwyg_userpath . "/",
           'text' => "Mx-Uploads",
           ),

       array("value" => "images/smilies/",
           "text" => "Smilies",
           ),
       );
     }
       //eof mx module nouserblog        
}


Wie in den Quellcodekommetaren angegeben (durch tests), geht er nur in die  
if(MX_MODULE=='Userblog' && $BLOGDATA!=FALSE)
Bedingung, wenn ich als Admin eingeloggt bin, aber auch dann wird trotzdem die falsche Auswahl geladen, also die Verzeichnisse aus der else Bedingung.
Wenn ich als nur User eiongeloggt bin wird noch nicht mal
if(MX_MODULE=='Userblog' && $BLOGDATA!=FALSE)
korrekt ausgeführt?

Also was mach ich falsch (wird die config gecached irgendwo?) oder wie kann ich die Auswahl der/des Bilderverzeichnisses im Spaw editor dynamisch gestelten?

Für Hilfe vielen Dank!
+ viele Grüße
:)

Webfan

Hat wirklich niemand eine Idee, oder das Verz. schonmal dynamsich geladen?
Bitte!

Ich hab jetzt in der spa_control.config.php mal den Blog geladen, statt die globalen Variablen zu verwenden.

if(MX_MODULE=='Userblog')
{
require('modules/Userblog/functions.php');
$BLOGDATA = fetchBlog($_GET['id']);
//die($BLOGDATA['subdomain']);
}


Das die($BLOGDATA['subdomain']) habe ich zum testen geschrieben, also das BGLOGDATA Array ist KORREKT gefüllt bis dahin.

Er geht nun in die wenn bLOGDATA nicht fals Bedingung,
allerdings sind dort nun $BLOGDATA['subdomain'] und $BLOGDATA['blogname'] LEER, so daß nur "Bilder von " als Verzeichnisname angezeigt wird.

if ((!empty($wysiwyg_userpath)) && ((WYSIWYG_IS_ADMIN) || (WYSIWYG_IS_USER && $wysiwyg_uploadallow == 2))) {
    // image libraries


//-> BLOGDATA ist korrekt vorhanden



    if($BLOGDATA!==FALSE)
     {

      $spaw_imglibs = array(

            array("value" => "images/userpics/".$BLOGDATA['subdomain']."/",
            "text" => "Bilder von ".$BLOGDATA['blogname'],
            ),
            );
     }else{
    $spaw_imglibs = array(

            array("value" => "images/userpics/",
            "text" => "Benutzerbilder",
            ),

        array("value" => $wysiwyg_userpath . "/",
            'text' => "Mx-Uploads",
            ),
        array("value" => "images/smilies/",
            "text" => "Smilies",
            ),
        );
        }
        //eof mx module nouserblog

} else {

    if($BLOGDATA!==FALSE)
     {
           $spaw_imglibs = array(

            array("value" => "images/userpics/".$BLOGDATA['subdomain']."/",
            "text" => "Bilder von ".$BLOGDATA['blogname'],
            ),
            );
     }else{
    // image libraries
    $spaw_imglibs = array(

            array("value" => "images/userpics/",
            "text" => "Benutzerbilder",
            ),

            array("value" => $wysiwyg_userpath . "/",
            'text' => "Mx-Uploads",
            ),

        array("value" => "images/smilies/",
            "text" => "Smilies",
            ),
        );
      }
        //eof mx module nouserblog
}


Wie kann das sein, ich fasse zusammen:
- Ich leses ein Array ein, ein paar Zeilenm tiefer (oder besser direkt darunter) sind die Arrayelemente/die Vaiable leer.

Hier der ganze Code:
if(MX_MODULE=='Userblog')
{
require('modules/Userblog/functions.php');
$BLOGDATA = fetchBlog($_GET['id']);
//die($BLOGDATA['subdomain']);
}
// end unset limits for superusers
if ((!empty($wysiwyg_userpath)) && ((WYSIWYG_IS_ADMIN) || (WYSIWYG_IS_USER && $wysiwyg_uploadallow == 2))) {
    // image libraries


//-> BLOGDATA ist korrekt vorhanden



    if($BLOGDATA!==FALSE)
     {
     //in diese if bedingung geht er nur wenn admin
      $spaw_imglibs = array(

            array("value" => "images/userpics/".$BLOGDATA['subdomain']."/",
            "text" => "Bilder von ".$BLOGDATA['blogname'],
            ),
            );
     }else{
    $spaw_imglibs = array(

            array("value" => "images/userpics/",
            "text" => "Benutzerbilder",
            ),

        array("value" => $wysiwyg_userpath . "/",
            'text' => "Mx-Uploads",
            ),
        array("value" => "images/smilies/",
            "text" => "Smilies",
            ),
        );
        }
        //eof mx module nouserblog

} else {

    if($BLOGDATA!==FALSE)
     {
           $spaw_imglibs = array(

            array("value" => "images/userpics/".$BLOGDATA['subdomain']."/",
            "text" => "Bilder von ".$BLOGDATA['blogname'],
            ),
            );
     }else{
    // image libraries
    $spaw_imglibs = array(

            array("value" => "images/userpics/",
            "text" => "Benutzerbilder",
            ),

            array("value" => $wysiwyg_userpath . "/",
            'text' => "Mx-Uploads",
            ),

        array("value" => "images/smilies/",
            "text" => "Smilies",
            ),
        );
      }
        //eof mx module nouserblog
}


Ich wäre sehr dankbar wenn mir jemand helfen könnte.

Webfan

Was mich ganz stutzig macht:

if(MX_MODULE=='Userblog')
     {
   
     //wenn ich hier
    die('test');
    //einfüge, wird "test" angezeigt, aber die image_libs aus der else Bedingung angezeigt
      $verz = "images/userpics/".$BLOGDATA_['subdomain']."/";
      $txt = "Bilder von ".$BLOGDATA_['blogname'];
     

      $spaw_imglibs = array(

            array("value" => $verz,
            "text" => $txt,
            ),
            );
     }else{
    $spaw_imglibs = array(

            array("value" => "images/userpics/",
            "text" => "Benutzerbilder",
            ),

        array("value" => $wysiwyg_userpath . "/",
            'text' => "Mx-Uploads",
            ),
        array("value" => "images/smilies/",
            "text" => "Smilies",
            ),
        );
  }
        //eof mx module nouserblog


Wie im Quellcode geschrieben,
wenn ich ein die('test') hinter  if(MX_MODULE=='Userblog')
     {
schreibe, wird korrekt "test" angezeigt,
es werden aber die Bilderverzeichnisse aus der else Bedingung angezeigt. Wie das?

lemming

hey  :),
habs mir jetzt nicht ganz durchgelesen aber evtl. verlierst du die werte weil spaw ein popup öffnet für den bilder-dialog? und im moment bist du ja dabei den SPAW anzupassen. wärs nicht schöner, wenn du dein modul anpasst, so dass sich das modul selbst drum kümmert an der speziellen stelle dort wo das modul den spaw einsetzt?

dann könntest du dort wo du den spaw anzeigst mit folgendem das verzeichnis ändern:

Here is how you set directories available to the File Manager of a specific SPAW editor instance:

// setting directories for a SPAW editor instance:
$spaw->setConfigItem(
  'PG_SPAWFM_DIRECTORIES',
  array(
    array(
      'dir' => '/myuploads/images/2006/',
      'caption' => 'Images 2006',
      'params' => array(
        'allowed_filetypes' => array('images')
      )
    ),
  ),
  SPAW_CFG_TRANSFER_SECURE
);


quelle: http://www.spaweditor.com/spaw/spaw2/docs/documentation/integrators.html

einzige was dann halt wiederrum bisschen blöd ist, du musst an anderer stelle wieder zu den ursprünglichen verzeichnissen switchen. mhm...
greetz,
Jörg

------------------------
Mitgliedersuche v.0.3 *new*

Webfan

Ich habe es jetzt wie Du gesagt hast probiert:

ZitatFatal error: Call to undefined method SPAW_Wysiwyg::setConfigItem() in /var/www/web14/html/fromwebfan/webfan2/pragma/modules/Userblog/task.pages.php on line 262

Ich nutze auf dieser Seite noch pragmaMx 0.1.9 (und kann aufgrund der vielen Modifizierungen dort nicht updaten).
Dennoch muß es doch irgendwie möglich sein die Bilderverzeichnisse dynamisch zu laden?
Irgendwie bin ich ja wohl auch nah dran, klappt aber nicht (siehe oben).

Wenn mir hier gehlofen wird (und ggf. themes entwickelt werden), siehe anderer Thread, überlege ich mir das Modul als Downloadmodul zu entwickeln oder irgendwie zur Verfügung zu stellen. (Die nächste PMX Version warte ich aber mindestens noch ab, wegen der erwarteten Änderungen, und ich möchte das Modul aber auch unter meinem pragmaMx 0.1.9 laufen haben).

Danke lemming schonmal für Deine Hilfe!

mfg
:bye:

lemming

Zitat von: Webfan am 26 Juli 2010, 14:48:30
Ich nutze auf dieser Seite noch pragmaMx 0.1.9 (und kann aufgrund der vielen Modifizierungen dort nicht updaten).

ja das ist ätzend, ist bei mir aus dem selben grund auch noch so aber zum glück bin ich bald soweit, dass ich updaten kann.

-----------------------

les dir mal das hier noch durch, der letzte post scheint vllt. noch ne möglichkeit zu sein.

http://forums.solmetra.com/viewtopic.php?f=2&t=609

image library könnte man hier auch falsch verstehen, ich dachte auch zuerst dass die vllt. von der GDLib o.ä. sprechen aber dem code nach dreht sichs hier auch um die bild verzeichnisse.

kanns leider nicht testen für dich, hab selbst ncoh einige baustellen offen die mir kopfschmerzen bereiten aber ansich wärs schon ne gute sache, da es mir pers auch lieber wäre wenn es verschiedene ordner bei verschiedenen modulen wären. usergästebuch, kalender, web_links. und dann jeweils vorausgewählt, weil auswählen tuts sowieso keiner.
greetz,
Jörg

------------------------
Mitgliedersuche v.0.3 *new*

Webfan

Mh. Ich werd das nachher nochmal durchgehen mit img_library.php (bin im Moment kurz beschäftigt).

Allerdings ist es so, daß ich die Logik nicht ganz schnalle (siehe oben):
Wie obe beschrieben habe ich dieses $BLOGDATA array und er geht, wie getestet(Siehe oben) auch in die Schleife, allerdings werden dennoch nicht die richtigen Verzeichnisse angezeigt.
Das verstehe ich nicht.

Viele Grüße
:bye:

Webfan

Ich wage es nochmal vorsichtig anzufragen, ob denn wirklich niemand es mal irgendwie geschafft hat, das Bilderverzeichnis dynamsich vorzugeben?
Irgendwie kann ich das nicht ganz glauben, vor allem macht mich stuzig, das wie oben beschrieben zwar die richtige if Bedingung ausgeführt wird, aber die Verzeichnisse trotzdem nicht stimmen irgendwie...

:gruebel:

Ich denke ich werde mich bald dafür entscheiden, mein stark modifiziertes Webfan 1.9 Pragma doch "nach und nach" upzudaten, sobald das neue PMX erscheint, das wird zwar viel Arbeit, ich habe nicht nur die Module modifiziert sondern auch "Systemdateien" und die Änderungen möchte ich gerne beibehalten. (bin also auch für eine Lösung mit der neuen Version offen, falls es eine solche gibt, ich meine aber das Problem sollte auch unter der alten Version zu lösen sein).
Die betreffende Stelle meine ich schon gefunden zu haben (siehe oben) nur klappt es irgendwie nicht...

:bye:

Andi

Hoi :)

ich habe den thread nur recht oberflächlich verfolgt, mich also nicht mit deinem Code beschäftigt.

Grundsätzlich existiert das Problem, dass die Popupfenster, also auch der Filemanager, des Spaw nicht in der pragmaMx Umgebung laufen und damit weder die Session, noch die Datenbank verwenden können.
Die relevanten Daten werden über ein Cookie weiter gegeben. Die User-ID ist da aber nicht dabei, sondern nur ob es überhaupt ein angemeldeter User, ein Gast oder ein Admin ist.
Eine Userspezifische Einstellung ist also so nicht möglich.

Mit deiner Version 0.1.9 werkelst du natürlich in einer völlig veralteten Version rum. Gerade der Spaw Editor wurde bereits in 0.1.10 komplett erneuert. An dem alten Spaw würde ich keine Code Zeile mehr verschwenden.

In der kommenden Version 1.12 habe ich die /spaw/mx_bridge.php entsprechend ergänzt, so dass die User-Id mit übergeben wird. Damit sollte es also kein Problem sein, entsprechende userordner anzusprechen.
schön´s Grüssle, Andi

Webfan

Ok, danke! Dann warte ich mal ab...

Viele Grüße  :bye: