embedding in ShopSystem

Hier können Probleme und alles andere in Deutscher Sprache gelöst werden.
Post Reply
SirRobert
Regular
Posts: 38
Joined: Fri Oct 14, 2005 12:18 am

embedding in ShopSystem

Post 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
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Re: embedding in ShopSystem

Post 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
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
SirRobert
Regular
Posts: 38
Joined: Fri Oct 14, 2005 12:18 am

Post 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
Last edited by SirRobert on Sat Jul 29, 2006 2:12 pm, edited 1 time in total.
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post 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
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
SirRobert
Regular
Posts: 38
Joined: Fri Oct 14, 2005 12:18 am

Post 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
Last edited by SirRobert on Fri Jul 28, 2006 5:20 pm, edited 2 times in total.
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post 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
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post 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?)
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
SirRobert
Regular
Posts: 38
Joined: Fri Oct 14, 2005 12:18 am

Post by SirRobert »

Hi Garvin!!

*JUBEL* Es geht! Das waren super Tipps! Vielen Dank und Grüße vom Mineralium.com Team!

Robert
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Hi!

Super, das freut mich, dann kann ich ja erreut ins Wochenende starten ;)

Viele Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
Datex
Posts: 2
Joined: Tue Aug 15, 2006 9:40 am

Post 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
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post 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
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
Datex
Posts: 2
Joined: Tue Aug 15, 2006 9:40 am

Post 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
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post 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. :)
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
Post Reply