Page 1 of 2
serendipity_event_g2embed - Konflikt mit S9Y 1.7?
Posted: Fri May 17, 2013 3:01 pm
by hagenroewer
Gibt es mit dem Plugin serendipity_event_g2embed Probleme mit Smarty 3 in der Version 1.7 von S9Y?
Ich habe ein Kundenprojekt auf 1.7 aktualisiert. Prompt werden die eingebetteten Galerien von Gallery2 nicht mehr angezeigt, sondern der Webserver meldet ein HTTP 500 Interner Serverfehler.
Irgendwelche Ideen, wo ich nachschauen kann?
Gruß von der Ruhr
Re: serendipity_event_g2embed - Konflikt mit S9Y 1.7?
Posted: Fri May 17, 2013 3:14 pm
by Timbalu
hagenroewer wrote:Irgendwelche Ideen, wo ich nachschauen kann?
In den Server error oder access logs.
Soweit ich auf die Schnelle sehen kann,
https://github.com/s9y/additional_plugi ... 2embed.php
benutzt das Plugin kein Smarty, kann also auch keine Fehler mit Smarty3 produzieren, IMHO.
Ansonsten bitte mal den Autor (Adresse im header der Datei) anschreiben, es auf 1.7 anzupassen.
Re: serendipity_event_g2embed - Konflikt mit S9Y 1.7?
Posted: Fri May 17, 2013 3:46 pm
by hagenroewer
Timbalu wrote:
In den Server error oder access logs.
.
Da komme ich nicht ran, nur über den Provider ...
Gut, da ist die Fehlerquelle schon mal ausgeschlossen.
Timbalu wrote:
Ansonsten bitte mal den Autor (Adresse im header der Datei) anschreiben, es auf 1.7 anzupassen.
Ok. Aaron ist jetzt mittlerweile unter
http://aaron.axelsen.us/feedback/form zu erreichen.
Ich sehe gerade hier folgendes
BaseURL issue with Serendipity 1.7
Ich werde mal testen, ob das daran liegt ...
Gruß von der Ruhr,
Re: serendipity_event_g2embed - Konflikt mit S9Y 1.7?
Posted: Fri May 17, 2013 3:56 pm
by Timbalu
...baseURL wird darin auch nicht genutzt.
Re: serendipity_event_g2embed - Konflikt mit S9Y 1.7?
Posted: Fri May 17, 2013 4:17 pm
by hagenroewer
Timbalu wrote:...baseURL wird darin auch nicht genutzt.
Hi,
ja habe ich auch durch getestet.
Mail an Aaron ist draußen - schauen wir mal, woran es liegt.
Gruß,
Re: serendipity_event_g2embed - Konflikt mit S9Y 1.7?
Posted: Fri May 17, 2013 5:56 pm
by Timbalu
Der wäre aber auch sicher froh wenn er lesen könnte, was den 500'er error auslöst. Insofern solltest du ruhig mal beim Provider nachfragen.
Re: serendipity_event_g2embed - Konflikt mit S9Y 1.7?
Posted: Sun May 19, 2013 5:33 pm
by hagenroewer
Meine grauen Zellen erinnerten sich doch, dass ich mir selber die Fehlerlogs produzieren.
Gesagt, getan:
Anbei aus dem Logfile:
Code: Select all
[19-May-2013 17:22:08 Europe/Berlin] PHP Fatal error: Uncaught exception 'SmartyException' with message 'Call of unknown method 'register_object'.' in /home/igmetall-abde/public_html/lib/s9y/bundled-libs/Smarty/libs/sysplugins/smarty_internal_templatebase.php:806
Stack trace:
#0 /home/igmetall-abde/public_html/bilder/modules/core/classes/GalleryTemplate.class(346): Smarty_Internal_TemplateBase->__call('register_object', Array)
#1 /home/igmetall-abde/public_html/bilder/modules/core/classes/GalleryTemplate.class(346): GallerySmarty->register_object('g', Object(GalleryTemplateAdapter), Array, true, Array)
#2 /home/igmetall-abde/public_html/bilder/modules/core/classes/GalleryTemplate.class(71): GalleryTemplate->_getSmarty(true)
#3 /home/igmetall-abde/public_html/bilder/main.php(463): GalleryTemplate->GalleryTemplate('/home/igmetall-...')
#4 /home/igmetall-abde/public_html/bilder/main.php(104): _GalleryMain(true)
#5 /home/igmetall-abde/public_html/bilder/modules/core/classes/GalleryEmbed.class(189): GalleryMain(true)
#6 /home/igmetall-abde/public_html/aktuell/plugins in /home/igmetall-abde/public_html/lib/s9y/bundled-libs/Smarty/libs/sysplugins/smarty_internal_templatebase.php on line 806
Anscheinend spielt doch das Smarty mit, denn wenn ich mich erinnere, werden in Gallery2 die dortigen Templates auch mit Smarty generiert. Beißen sich anscheinend die beiden Templateversionen?
Re: serendipity_event_g2embed - Konflikt mit S9Y 1.7?
Posted: Sun May 19, 2013 6:03 pm
by Timbalu
Ohhh Jaaa!
Durch die Smarty3 API changes müsste es jetzt
Code: Select all
void registerObject(string object_name,
object object,
array allowed_methods_properties,
boolean format,
array block_methods);
heißen.
Allerdings lohnt das friemeln in g2 wohl nicht, denn dann werden sicherlich noch andere API change errors auftauchen...
Re: serendipity_event_g2embed - Konflikt mit S9Y 1.7?
Posted: Sun May 19, 2013 6:09 pm
by Timbalu
bzw könntest du mal folgendes in
https://github.com/s9y/Serendipity/blob ... c.php#L362 einbauen
Code: Select all
/**
* Registers object to be used in templates
*
* @param string $object name of template object
* @param object $object_impl the referenced PHP object to register
* @param array $allowed list of allowed methods (empty = all)
* @param boolean $smarty_args smarty argument format, else traditional
* @param array $block_functs list of methods that are block format
*/
public function register_object($object, $object_impl, $allowed = array(), $smarty_args = true, $block_methods = array())
{
settype($allowed, 'array');
settype($smarty_args, 'boolean');
$this->registerObject($object, $object_impl, $allowed, $smarty_args, $block_methods);
}
Das könnte dann sogar mit Serendipity und Smarty3 klappen.
Bitte um Rückmeldung.
Re: serendipity_event_g2embed - Konflikt mit S9Y 1.7?
Posted: Sun May 19, 2013 6:34 pm
by hagenroewer
Hi,
wenn ich dich richtig verstanden habe...
an der Zeile 362 vor
Code: Select all
wrapper for assign_by_ref - BC mode Smarty 2
Deinen Coeschnipsel einbauen
Timbalu wrote:Das könnte dann sogar mit Serendipity und Smarty3 klappen.
Bitte um Rückmeldung.
Leider nicht, die Fehlermeldung sieht immer noch wie folgt aus:
Code: Select all
[19-May-2013 18:25:24 Europe/Berlin] PHP Fatal error: Uncaught exception 'SmartyException' with message 'Call of unknown method 'register_object'.' in /home/igmetall-abde/public_html/lib/s9y/bundled-libs/Smarty/libs/sysplugins/smarty_internal_templatebase.php:806
Stack trace:
#0 /home/igmetall-abde/public_html/bilder/modules/core/classes/GalleryTemplate.class(346): Smarty_Internal_TemplateBase->__call('register_object', Array)
#1 /home/igmetall-abde/public_html/bilder/modules/core/classes/GalleryTemplate.class(346): GallerySmarty->register_object('g', Object(GalleryTemplateAdapter), Array, true, Array)
#2 /home/igmetall-abde/public_html/bilder/modules/core/classes/GalleryTemplate.class(71): GalleryTemplate->_getSmarty(true)
#3 /home/igmetall-abde/public_html/bilder/main.php(463): GalleryTemplate->GalleryTemplate('/home/igmetall-...')
#4 /home/igmetall-abde/public_html/bilder/main.php(104): _GalleryMain(true)
#5 /home/igmetall-abde/public_html/bilder/modules/core/classes/GalleryEmbed.class(189): GalleryMain(true)
#6 /home/igmetall-abde/public_html/aktuell/plugins in /home/igmetall-abde/public_html/lib/s9y/bundled-libs/Smarty/libs/sysplugins/smarty_internal_templatebase.php on line 806
Re: serendipity_event_g2embed - Konflikt mit S9Y 1.7?
Posted: Sun May 19, 2013 6:38 pm
by Timbalu
Nee, da steht /**. Also, wenn du das Schnippsel dort einbaust, rückt alles sonstige ab 362 nach unten. Bitte nichts ersetzen (außer vielleicht Leerzeilen).
Dann braucht du erst erstmal einen ordentlichen refresh [Ctrl] [R] [F5], damit das auch alles zur Verfügung steht.
Re: serendipity_event_g2embed - Konflikt mit S9Y 1.7?
Posted: Sun May 19, 2013 6:52 pm
by hagenroewer
Timbalu wrote:Nee, da steht /**. Also, wenn du das Schnippsel dort einbaust, rückt alles sonstige ab 362 nach unten. Bitte nichts ersetzen (außer vielleicht Leerzeilen).
Ok, ich hab dich schon richtig verstanden:
Code: Select all
/**
* Registers object to be used in templates
*
* @param string $object name of template object
* @param object $object_impl the referenced PHP object to register
* @param array $allowed list of allowed methods (empty = all)
* @param boolean $smarty_args smarty argument format, else traditional
* @param array $block_functs list of methods that are block format
*/
public function register_object($object, $object_impl, $allowed = array(), $smarty_args = true, $block_methods = array())
{
settype($allowed, 'array');
settype($smarty_args, 'boolean');
$this->registerObject($object, $object_impl, $allowed, $smarty_args, $block_methods);
}
/**
* wrapper for assign_by_ref - BC mode Smarty 2 -> 3 (Serendipity core uses assignByRef already - and nearly no occurances in additional plugins)
*
* @param string $tpl_var the template variable name
* @param mixed &$value the referenced value to assign
*/
public function assign_by_ref($tpl_var, &$value)
{
$this->assignByRef($tpl_var, $value);
}
Timbalu wrote:Dann braucht du erst erstmal einen ordentlichen refresh [Ctrl] [R] [F5], damit das auch alles zur Verfügung steht.
Hm, klappt nicht, ich habe es auch in anderen Browsern getestet.
Re: serendipity_event_g2embed - Konflikt mit S9Y 1.7?
Posted: Sun May 19, 2013 7:43 pm
by Timbalu
Hm, schade. Es wäre so schön einfach gewesen...

Probiere es noch mal mit Browser zu nach Einbau. Vielleicht benötigt das eine neue Smarty Instanz...
Aber wie du schon selber sagtest, ein doppel-Moppel mit 2 verschiedenen Smarty Api's wird wohl nicht gut gehen...
Ich habe aber ehrlich gesagt kaum Ambitionen, jetzt auch noch 3rd-Party Software auf Smarty3 zu tunen. Das für Serendipity war schon schwer genug und hat insgesamt fast zwei Jahre gedauert.
Wie man die beiden so voneinander abkoppeln könnte, dass sie sich nicht mehr behindern, ist wahrscheinlich auch mit viel OOP Kapselung verbunden. Ansonsten könnte man noch Smarty2 mit 3 ersetzen in g2/lib/smarty und da konsequent die SmartyBC.class Klasse einbinden. (*)
Aber ich wohl nicht..!
(*) Möglicherweise gibt es noch eine weitere Option. Man kann vielleicht Smarty in g2 abschalten. Vielleicht wäre das möglich...?!
Re: serendipity_event_g2embed - Konflikt mit S9Y 1.7?
Posted: Mon May 20, 2013 10:40 am
by Timbalu
Zusätzlich zum letzten "Browser schließen" Vorschlag, kam mir heute Nacht noch die Idee vielleicht einfach ein anderes Plugin zu benutzen das
das Monster G2 lädt und ausgibt (zb. wrapurl *) .
Dabei habe ich mir g2embed noch einmal angesehen, warum es eigentlich auf die Serendipity Smarty Instanz zuzugreifen versucht, obwohl G2 sich schon selbst kapseln müsste. Und siehe da....
https://github.com/s9y/additional_plugi ... d.php#L107
und
https://github.com/s9y/additional_plugi ... d.php#L138
Man könnte aus loadG2() und show() das global $serendipity entfernen. Vielleicht genügt das schon.
(*) oder ein eigenes, das die Ausgaben von g2 gekonnt zum einbinden kapseln kann. Ich persönlich würde heute eher zu anderen Gallery Frameworks greifen, die schlanker und zeitgemäßer sind.
Re: serendipity_event_g2embed - Konflikt mit S9Y 1.7?
Posted: Mon May 20, 2013 12:23 pm
by hagenroewer
Timbalu wrote:Zusätzlich zum letzten "Browser schließen" Vorschlag, kam mir heute Nacht noch die Idee vielleicht einfach ein anderes Plugin zu benutzen das das Monster G2 lädt und ausgibt (zb. wrapurl *) .
Ja, das funktioniert - aber das Ergebnis ist nicht so berauschend wie beim Original-Plugin bedingt durch die Begrenzheit des IFrames. Das Original-Plugin hat zum Beispiel nur die rechte Seitenleiste weggenommen und sich den Platz dort auch genutzt.
Getestet und hat leider nicht funktioniert - ich verstehe auch nicht, warum es auf die Smarty-Instanz von S9Y zugreifen will, wenn Gallery eine eigene mitbringt.
Timbalu wrote:
(*) oder ein eigenes, das die Ausgaben von g2 gekonnt zum einbinden kapseln kann. Ich persönlich würde heute eher zu anderen Gallery Frameworks greifen, die schlanker und zeitgemäßer sind.
Ein eigenes Plugin schreiben?
Hm, das übersteigt meine Fähigkeiten ...
Hast Du Tipps für andere Gallery Frameworks, die schlanker und zeitgemäßer sind?
Wenn ich mir die Liste unter
http://wiki.ubuntuusers.de/Bilder_verwalten
finde ich die alle nicht berauschend.
Ich werde mir auf alle Fälle die S9Y eigene Lösung wieder mal eher in Betracht ziehenen, und schauen, wo ich da was für den jeweiligen Auftritt optimieren kann.
Nassfeuchten Gruß von der Ruhr