Page 1 of 1
embedding in ShopSystem
Posted: Fri Jul 28, 2006 12:06 pm
by SirRobert
Hallo Serendipity-Community!
Ich versuche zur Zeit Serendipity in unseren PHP-Shop zu ‚embedden’. Die Prozedur mit der wrapper.php habe ich verstanden und das sollte prinzipiell auch funktionieren. Allerdings erhalte ich beim embedden nun folgende Fehlermeldung:
Fatal error: Cannot redeclare clone() (previously declared in /www/mysite/Code/GlobalFunctions.php(34) : eval()'d code:2) in /www/mysite/Code/GlobalFunctions.php(34) : eval()'d code on line 2
Der Error verweist auf eine Datei des Shop-Systems, in der verschiedene Funktionen definiert werden. Eine Funktion heißt auch ‚clone’, und wenn ich die Fehlermeldung richtig interpretiere, dann versucht Serendipity diese Funktion auch zu deklarieren.
Wie kann ich dieses Problem nun lösen? Kann ich die Clone-Funktion von Serendipity evtl. umbenennen? Wenn ja, wie und wo?
Würde mich sehr über eure Hilfe freuen!
Grüße, Robert
Re: embedding in ShopSystem
Posted: Fri Jul 28, 2006 1:51 pm
by garvinhicking
Hi!
Serendipity definiert diese Funktion leider nicht. Es scheint mir eher so zu sein, dass sich der Shop versucht mehrfach einzubetten. Eventuell hast Du hier eine zirkuläre Schleife: Shop bindet s9y ein, s9y führt sich aus, s9y bindet den shop ein - und dann alles wieder von vorne, was aber dann bei der ersten doppelten Funktion scheitert.
Da mir der DAteiname von dem Shop nichts sagt, kann ich so spontan leider nicht helfen. Bitte beschreibe doch einmal genau, wie Du vorgehst, was das gewünschte Verhalten ist, was das für ein Shop ist, und welche Technik dieser zum einbinden einsetzt?
Viele Grüße,
Garvin
Posted: Fri Jul 28, 2006 4:59 pm
by SirRobert
Hallo Garvin!
Vielen Dank für die gute und schnelle Information! Wir wollen in unserem kleinen Mineralienshop (
http://www.mineralium.com ), den wir mit Mondo-Shop (
http://www.mondo-media.de ) betreiben, einen Blog implementieren.
Eine Testseite für den Blog läuft zur Zeit unter
*Edit: [Link entfernt]
In dem Shopsystem habe ich eine redaktionelle Seite (index.php?page=blog ) erstellt, die erstmal nichts anderes als Serendipity embedden soll. Wenn alles klappt, werde ich dann den üblichen Shop-Content Drumherum wieder einbauen.
Im Root-Verzeichnis des Shops liegt die Datei wrapper.php mit folgendem Content:
Code: Select all
<?php
ob_start();
chdir("./serendipity/");
require("index.php");
chdir("../");
$blog_data = ob_get_contents();
ob_end_clean();
?>
Serendipity liegt im Verzeichnis /serendipity.
Serendipity steht dabei im „embed-Modus“ und als Index-Seite habe ich „../wrapper.php“ eingetragen. (stimmt das?)
Den PHP-Code zum includen des wrapper-Files kann ich allerdings nicht direkt in die Seite „index.php?page=blog“ einbinden. Das ganze wird durch eine von Mondo-Media entwickelte Tag-Sprache maskiert. Ich habe also einen „Mondo-Tag“ geschrieben, der folgenden PHP-Code auf dieser Seite ausführt:
Code: Select all
$blog_startpage = true;
include_once($mmglobal->shopPath . "/" . "wrapper.php");
echo 'Testoutput';
echo $blog_data;
Jetzt weiß ich selber nicht mehr weiter. Den Shop-Path muss ich glaub ich angeben, da der wrapper sonst nicht gefunden wird. Die Datei „wrapper.php“ selbst scheint eigentlich zu funktionieren, denn wenn ich dort „echo $blog_data;“ reinschreibe, und den Wrapper direkt aufrufe, dann erscheint Serendipity.
Im Test mit der Shopsoftware erscheint aber weiterhin die oben genannte Fehlermeldung.
Viele Grüße, Robert
Posted: Fri Jul 28, 2006 5:04 pm
by garvinhicking
Hi!
Okay, das geht also so in die Richtung wie ich vermutet hatte. Das was Du als "Mondo-Tag" eingibst (leider kenne ich den Shop tatsächlich nicht) wird von der Applikation durch PHPs "eval" gejagt. Das wiederum ist eine recht dreckige Art um Code intern auszuführen.
Mir scheint es nun so, dass Mondo auf der Seite nicht die "index.php" von Serendipity einbindet, sondern von sich selbst.
Ändere also mal deine chdir('./serendipity/') anweisung ab, so dass dort der volle Pfad drinsteht, damit Du sicher gehen kannst dass auch die index.php von s9y ausgeführt wird?
Viele Grüße,
Garvin
Posted: Fri Jul 28, 2006 5:17 pm
by SirRobert
Hallo Garvin!
Wow, das waren 5 Minuten! Und Deine Vermutung war wohl ganz richtig! Mit der kompletten Pfad-Angabe erhalte ich nun allerdings folgende Fehlermeldung:
Fatal error: Call to a member function on a non-object in /shoppath/test/serendipity/include/genpage.inc.php on line 22
Woran könnte das nun liegen?
Grüße, Robert
Posted: Fri Jul 28, 2006 5:20 pm
by garvinhicking
Hi!
Ich fürchte das könnte daran liegen, dass der Shop eval() innerhalb einer Funktion ausführt! Wenn das so ist, würden Variablen nicht global deklariert.
Serendipity verlässt sich aber darauf, dass $serendipity ein globales Array ist. Du könntest das evtl. fixen wenn Du in der Methode die eval() ausführt (die Zeile hast Du ja schon in der Fehlermeldung) ein "global $serendipity;" hinzufügst. Vielleicht bringt das was; wenn nicht, wird es eher schwierig, eine größere Applikation wie Serendipity derart einzubetten.
So, ich starte jetzt ins Wochenende, Hilfe geht also erst danach wieder
Viele Grüße,
Garvin
Posted: Fri Jul 28, 2006 5:21 pm
by garvinhicking
(Zu deiner Folgefrage: Eigentlich unterstützt s9y es nicht, dass Du "../" nutzt oder gar "?" im Wrapper-Filenamen. Der Wrapper muss im s9y Verzeichnis liegen, könnte aber dann wiederum die index.php vom Shop includen und vorher $_REQUEST['page'] = 'blog' setzen?)
Posted: Fri Jul 28, 2006 5:27 pm
by SirRobert
Hi Garvin!!
*JUBEL* Es geht! Das waren super Tipps! Vielen Dank und Grüße vom Mineralium.com Team!
Robert
Posted: Fri Jul 28, 2006 6:32 pm
by garvinhicking
Hi!
Super, das freut mich, dann kann ich ja erreut ins Wochenende starten
Viele Grüße,
Garvin
Posted: Tue Aug 15, 2006 9:43 am
by Datex
Sers
Ich poste hier weiter um keinen neuen Thread aufzumachen.
Ich such derzeit ein, plugin am liebsten, shop/store/e-commerce loesung fuer s9y. Ich weis das WP einer besitzt bzw. das dort ein shop als plugin zur verfuegung steht, allerdings moechte ich nicht WP nutzen. Bisher war meine suche nach einem passenden plugin fuer s9y leider erfolglos, aber vielleicht wisst ihr ja mehr als ich
Gibt ein entsprechendes plugin oder kann man vielleicht das von WP einfach verwenden ?
Viele Gruesse
Dennis
Posted: Tue Aug 15, 2006 9:46 am
by garvinhicking
Hi!
Leider gibt es kein Shop-Plugin für Serendipity an sich. Wenn Du mir das WP Plugin nennst kann ich mal schauen ob das leicht zu übernehmen wäre.
Shops sind so eine Sache...die sind üblicherweise tierisch kompliziert. Ein eigenes shop-plugin für s9y wäre ein riesenaufwand; also wenn plugin, dann nur eines, was die Seiten des Shops einbindet.
Evtl. kommst Du da mit dem wrapurl-plugin schon weiter, das kann fremde Seiten in einen iframe einbinden...
Viele Grüße,
Garvin
Posted: Wed Aug 16, 2006 1:23 pm
by Datex
Sers
Danke erstmal fuer deine Antwort.
Das WP plugin ist hier
http://www.instinct.co.nz/?p=16 zufinden. Es ist zwar nur die Lite version, allerdings genuegt die schon den meisten anforderungen.
Waer schon wenn es sowas auch fuer s9y geben wuerde, oder wenn man das plugin fuer wp uebernehmen koennte.
Viele Gruesse
Dennis
Posted: Wed Aug 16, 2006 1:43 pm
by garvinhicking
Hi!
Okay, dieses "Plugin" ist quasi ein eigener Shop für sich. Dieser ist sicher auf WordPress angepasst, so dass man es vermutlich nicht einfach so übernehmen kann. Der Sourcecode ist riesig und umfangreich, so dass ich mir das nicht mal eben so angucken kann.
Mit etwas Aufwand könnte man das Plugin sicherlich in s9y einbinden. Das kann ich aber kostenlos nicht leisten, dafür ist die Sache a.) zu komplex und b.) für mich persönlich nicht so interessant.
Wenn ein anderer PHP-Coder sich das mal angucken möchte wäre das natürlich spitze.
