TOXID cURL

Hallo,

ich habe ein OXID 4.7.2 und WordPress 3.5. Das WP liefert XML konform(?) unter “blog-URL/2013/01/13/hallo-welt/”:

<?xml version="1.0"?>  <toxid>
    <content>
    <![CDATA[
	<div id="primary" class="site-content">
		<div id="content" role="main">

.................

<!-- #secondary -->
	  ]]>
    </content>
  </toxid>  

Rufe ich nun “Oxid-URL/toxid-curl/2013/01/13/hallo-welt/” bekomme ich einen redirect auf “http://www.stickbaer.de/index.php?cl=start&redirected=1” und das folgende ins exception.log:


oxSystemComponentException-oxException (time: 2013-01-13 15:02:25): [0]: Function 'getContent' does not exist or is not accessible! (toxid_curl)
 
 Stack Trace: #0 /homepages/45/d37013861/htdocs/shop/oxid/tmp/smarty/6a910493862e36c875fa0d7f2cd976d6^%%E7^E7C^E7C94035%%toxid_curl.tpl.php(4): oxSuperCfg->__call('getContent', Array)
#1 /homepages/45/d37013861/htdocs/shop/oxid/tmp/smarty/6a910493862e36c875fa0d7f2cd976d6^%%E7^E7C^E7C94035%%toxid_curl.tpl.php(4): toxid_curl->getContent()
#2 /homepages/45/d37013861/htdocs/shop/oxid/core/smarty/Smarty.class.php(1263): include('/homepages/45/d...')
#3 /homepages/45/d37013861/htdocs/shop/oxid/core/oxshopcontrol.php(528): Smarty->fetch('page/info/toxid...', 'ox|0|0|0|0')
#4 /homepages/45/d37013861/htdocs/shop/oxid/core/oxshopcontrol.php(396): oxShopControl->_render(Object(toxid_curl))
#5 /homepages/45/d37013861/htdocs/shop/oxid/core/oxshopcontrol.php(156): oxShopControl->_process('toxid_curl', NULL, NULL, NULL)
#6 /homepages/45/d37013861/htdocs/shop/oxid/modules/aspaypal/aspaypal_shopcontrol.php(35): oxShopControl->start()
#7 /homepages/45/d37013861/htdocs/shop/oxid/core/oxid.php(40): aspaypal_shopcontrol->start()
#8 /homepages/45/d37013861/htdocs/shop/oxid/index.php(28): Oxid::run()
#9 /homepages/45/d37013861/htdocs/shop/oxid/oxseo.php(46): require('/homepages/45/d...')
#10 {main}

Was fehlt da noch???

Jörg

Hallo,

vermutlich dein toxid_curl-Objekt:

Function ‘getContent’ does not exist or is not accessible!

Gruß Joscha

Wo muss ich danach suchen? Ich habe TOXID_Curl 1.4 von GitHub gezogen, dort gibt “nur” eine getRemoteContent. Ich bin leider ein MVC Noob.

[QUOTE=jhobrlant;113319]Hallo,

ich habe ein OXID 4.7.2 und WordPress 3.5. Das WP liefert XML konform(?) unter “blog-URL/2013/01/13/hallo-welt/”:

<?xml version="1.0"?>  <toxid>
    <content>
    <![CDATA[
	<div id="primary" class="site-content">
		<div id="content" role="main">

.................

<!-- #secondary -->
	  ]]>
    </content>
  </toxid>  

Rufe ich nun “Oxid-URL/toxid-curl/2013/01/13/hallo-welt/” bekomme ich einen redirect auf “http://www.stickbaer.de/index.php?cl=start&redirected=1” und das folgende ins exception.log:


[/QUOTE]


Stehe genau vor diesem Problem und habe leider auch keine Lösung gefunden. Hast du eine gefunden?

Hallo,

ich habe eben einen Bugfix bei GitHub veröffentlicht. Hier wurde noch versucht ein oxcontent-Objekt zu laden, was wir später nicht mehr verwenden.

Gruß Joscha

Danke Joscha !!

Ja, ich habe es ans laufen gebracht. Das WP Template war weniger das Problem. Ich habe mir das “TwentyTwelve” kopiert nach “xml”. Dann habe ich header, footer, page und content-page.php solange befrickelt, bis das Ergebnis den Wünschen (xml-Ausgabe) entsprach.
Das gute an WP ist, man kann das “normale” Theme belassen und den XML-Output aufrufen, indem man an die Artikel-Adresse ein ?theme=<theme-name> anhängt. Diesen Parameter habe ich in der Oxid config.inc.php als aToxidCurlUrlParams hinterlegt.

In Oxid habe ich eine CMS-Seite angelegt

[{assign var='toxid' value=$oViewConf->getToxid()}]
[{ $toxid->getCmsSnippet('content',true,'newsletter-archiv-alle-newsletter-zum-nachlesen/') }]

“content” ist der xml-Node, “newsletter …” ist der permalink in WP. Wenn ich diese Seite aufrufe wird mir der Inhalt des WP-Artikels angezeigt.

Noch nicht klar ist mir wie ich mit den WP-Links umgehen muss. Dazu ist wohl aToxidCurlSeoSnippets da. In der WP-Seite in Oxid wird ein Link auf die WP-Autorseite so ausgegeben: mein.shop.de/toxid-curl/author/jhobrlant

Ich halte Toxid für eine geniale Idee, aber der Aufwand für mich weniger erfahrenen es ans laufen zu bringen war riesig. Ich glaube ich kenne jetzt alle Seiten, wo das Wort Toxid auftaucht. Das Potenzial von Toxid könnte mit einem Tutorial besser umgesetzt werden. Für mich hat es vor allem auf der Oxid-Seite gehakt. Wenn dazu die Zeit fehlt, dann vielleicht irgendwie kommerziell ??? Ich habe in meinem Shop ein eigenes Newsletterarchiv, Foto- und Videoanleitungen. Das Oxid-CMS verdient den Namen nicht… aber Toxid ist die Lösung.

Gruß Jörg

Deutsche und englische Versionen funktionieren nun problemlos (hatte zuvor vom xpath problem berichtet - das taucht nur dann auf wenn kein content geparsed wird. (meistens ja bei einer alternativen sprache, hier könnte man eventuell über ein fallback-szenario nachdenken).)

Mein Problem ist nun folgendes. Hab ich eine cms seite (typo3) nun im shop aufgerufen, und möchte dann die Sprache ändern wird weder bei den währungen noch beim sprachmenü der aktuelle “link” wirklich angepasst. stattdessen wird mit den parametern cl=toxid_curl auf die startseite verlinkt. Hier taucht nun leider wieder das xpath problem auf.

im demo-shop ist die verlinkung ebenfalls mit cl=toxid_curl angeführt. Hier springt er ebenfalls auf die startseite (wenngleich auch auf eine mischung von aktivierter toxid-seite mit dem content der startseite) aber zumindest gibts hier keinen xpath-fehler.

wie könnte ich (für die toxid-seiten) das verhalten der normalen sprachumschaltung anpassen? bei oxid-seiten werden sämtliche pfade sauber übernommen.

Hallo,

die Sprachumschaltung haben wir zum Beispiel für Stempelmeer gelöst:

http://www.stempelmeer.de/info/ueber-uns.html

Rechts oben kannst du die Sprache wechseln.
Im Prinzip ist das ja recht einfach: Du musst auf TOXID-Seiten ja nur den Link in der Zielsprache (bekommst du aus deinem TYPO3 und deine TOXID Konfiguration) generieren.

Gruß Joscha

Hi!
Danke für die rasche Antwort. Und klar - wenn mans bereits umgesetzt hat ist es (zumeist) einfach reproduzierbar. :slight_smile: Aber, woher “weiß” ich welche Seite das in der englischen Sprache ist? - IDs gibt es ja aufgrund von RealUrl/rewrite nicht? Und wie frage ich ab ob ich gerade eine toxid_curl Seite offen hab? Denn das ist ja die Basis dafür, dass ich den Link aktiv verändere.

thanks :slight_smile:

$oViewConf->getActiveClassName() liefer dir den aktuellen Controller. Deine URL musst du dir aus TYPO3 natürlich mitschicken.

Gruß Joscha

Hallo,

[QUOTE=leofonic;78383]die von Oxid.

Das steht schon in der Datei azure/tpl/page/info/toxid_curl.tpl, die wird aufgerufen wenn das cms-Snippet an die Shop-Url gehängt wird.

[/QUOTE]

interessant wäre hier den pfad vor azure zu kennen. Ich lud mir ja den TOXID-cURL-master Ordner runter und schob alles an die vorgegebene Stelle hoch.
Nun las ich ja (siehe oben) dass der pfad z.b. für die toxid_curl.tpl …azure/tpl/page/info/toxid_curl.tpl wäre.
Nach dem kopieren liegt diese jedoch bei mir unter: oxid/modules/toxid_curl/application/views/azure/toxid_curl.tpl.

ist dieses nun am falschen ort bei mir und gehört eigentlich oxid/application/views/azure/tpl/page/info hierein?

gruss
thomas

edit: hab mir nun nochmal den Punkt1 angesehen: copy files from the OXID directory to your shop root

und bin nun ein wenig verwirrt :frowning:

Hi,

die Pfade haben sich mit der 4.7/5.0 geändert. Also alles gut und richtig bei Dir.

Gruß

[QUOTE=Marco Steinhaeuser;119088]Hi,

die Pfade haben sich mit der 4.7/5.0 geändert. Also alles gut und richtig bei Dir.

Gruß[/QUOTE]

Gut! und danke

thomas

nun habe ich nach tagelangen rumgekrepel ein paar Verständnisfragen und durchblicke die logik noch nicht ganz.
mein ziel ist vorerst als beispiel den Hello World Artikel von Wordpress in oxid anzeigen zu lassen.
bislang vermutete ich, dass Artikel in Wordpress geschrieben in einen eigenen vorgesehen Platz (Fenster, Artikel oder so) angezeigt werden. Nun las ich dass man ja auch die Navigation von wordpress übernehmen kann.
Nun hat sich ja im Laufe der letzten Jahre so einiges geändert, so dass ich nicht genau weiss, was nun aktuell noch anzupassen ist und die unterschiedlichen tutorials verwirren mich nun ein wenig.
Aber ich fang mal langsam an:
was genau muss ich in der header.php und footer.php durch
<?xml version=“1.0”?>
<toxid>
<navigation></navigation>
<content></content>
</toxid>

ersetzen?

Meine header.php sieht beispielsweise folgender maßen aus und weiss nun nicht genau wohin mit dem kleinen code…
<?php
/**

  • The Header for our theme.

  • Displays all of the <head> section and everything up till <div id=“main”>

  • @package WordPress

  • @subpackage Twenty_Ten

  • @since Twenty Ten 1.0
    /
    ?><!DOCTYPE html>
    <html <?php language_attributes(); ?>>
    <head>
    <meta charset="<?php bloginfo( ‘charset’ ); ?>" />
    <title><?php
    /

    • Print the <title> tag based on what is being viewed.
      */
      global $page, $paged;

    wp_title( ‘|’, true, ‘right’ );

    // Add the blog name.
    bloginfo( ‘name’ );

    // Add the blog description for the home/front page.
    $site_description = get_bloginfo( ‘description’, ‘display’ );
    if ( $site_description && ( is_home() || is_front_page() ) )
    echo " | $site_description";

    // Add a page number if necessary:
    if ( $paged >= 2 || $page >= 2 )
    echo ’ | ’ . sprintf( __( ‘Page %s’, ‘twentyten’ ), max( $paged, $page ) );

    ?></title>
    <link rel=“profile” href=“http://gmpg.org/xfn/11” />
    <link rel=“stylesheet” type=“text/css” media=“all” href="<?php bloginfo( ‘stylesheet_url’ ); ?>" />
    <link rel=“pingback” href="<?php bloginfo( ‘pingback_url’ ); ?>" />
    <?php
    /* We add some JavaScript to pages with the comment form

    • to support sites with threaded comments (when in use).
      */
      if ( is_singular() && get_option( ‘thread_comments’ ) )
      wp_enqueue_script( ‘comment-reply’ );

    /* Always have wp_head() just before the closing </head>

    • tag of your theme, or you will break many plugins, which
    • generally use this hook to add elements to <head> such
    • as styles, scripts, and meta tags.
      */
      wp_head();
      ?>
      </head>

<body <?php body_class(); ?>>
<div id=“wrapper” class=“hfeed”>
<div id=“header”>
<div id=“masthead”>
<div id=“branding” role=“banner”>
<?php $heading_tag = ( is_home() || is_front_page() ) ? ‘h1’ : ‘div’; ?>
<<?php echo $heading_tag; ?> id=“site-title”>
<span>
<a href="<?php echo home_url( ‘/’ ); ?>" title="<?php echo esc_attr( get_bloginfo( ‘name’, ‘display’ ) ); ?>" rel=“home”><?php bloginfo( ‘name’ ); ?></a>
</span>
</<?php echo $heading_tag; ?>>
<div id=“site-description”><?php bloginfo( ‘description’ ); ?></div>

			&lt;?php
				// Compatibility with versions of WordPress prior to 3.4.
				if ( function_exists( 'get_custom_header' ) ) {
					// We need to figure out what the minimum width should be for our featured image.
					// This result would be the suggested width if the theme were to implement flexible widths.
					$header_image_width = get_theme_support( 'custom-header', 'width' );
				} else {
					$header_image_width = HEADER_IMAGE_WIDTH;
				}

				// Check if this is a post or page, if it has a thumbnail, and if it's a big one
				if ( is_singular() && current_theme_supports( 'post-thumbnails' ) &&
						has_post_thumbnail( $post-&gt;ID ) &&
						( /* $src, $width, $height */ $image = wp_get_attachment_image_src( get_post_thumbnail_id( $post-&gt;ID ), 'post-thumbnail' ) ) &&
						$image[1] &gt;= $header_image_width ) :
					// Houston, we have a new header image!
					echo get_the_post_thumbnail( $post-&gt;ID );
				elseif ( get_header_image() ) :
					// Compatibility with versions of WordPress prior to 3.4.
					if ( function_exists( 'get_custom_header' ) ) {
						$header_image_width  = get_custom_header()-&gt;width;
						$header_image_height = get_custom_header()-&gt;height;
					} else {
						$header_image_width  = HEADER_IMAGE_WIDTH;
						$header_image_height = HEADER_IMAGE_HEIGHT;
					}
				?&gt;
					&lt;img src="&lt;?php header_image(); ?&gt;" width="&lt;?php echo $header_image_width; ?&gt;" height="&lt;?php echo $header_image_height; ?&gt;" alt="" /&gt;
				&lt;?php endif; ?&gt;
		&lt;/div&gt;&lt;!-- #branding --&gt;

		&lt;div id="access" role="navigation"&gt;
		  &lt;?php /* Allow screen readers / text browsers to skip the navigation menu and get right to the good stuff */ ?&gt;
			&lt;div class="skip-link screen-reader-text"&gt;&lt;a href="#content" title="&lt;?php esc_attr_e( 'Skip to content', 'twentyten' ); ?&gt;"&gt;&lt;?php _e( 'Skip to content', 'twentyten' ); ?&gt;&lt;/a&gt;&lt;/div&gt;
			&lt;?php /* Our navigation menu. If one isn't filled out, wp_nav_menu falls back to wp_page_menu. The menu assiged to the primary position is the one used. If none is assigned, the menu with the lowest ID is used. */ ?&gt;
			&lt;?php wp_nav_menu( array( 'container_class' =&gt; 'menu-header', 'theme_location' =&gt; 'primary' ) ); ?&gt;
		&lt;/div&gt;&lt;!-- #access --&gt;
	&lt;/div&gt;&lt;!-- #masthead --&gt;
&lt;/div&gt;&lt;!-- #header --&gt;

&lt;div id="main"&gt;

vielleicht gibt mir mal jemand nen kleinen schubs? :smiley:

gruss
thomas

Hallo Ihrs,

ich habe versucht OXID und das CMS Websitebaker anhand der Anleitung einzubauen und die Inhalte werden auch schon korrekt ausgelesen und im Shop angezeigt.

Was ich jedoch nicht verstanden habe: [B]wenn ich die Navigation aus Websitebaker übergebe, stimmen die Links nicht,[/B] die führen mich auf die Websitebakerseite und nicht auf die Shopseite mit dem Inhalt aus der Websitebakerseite …

Websitebakerlinks sehen so aus: localhost/websitebaker/pages/testseite.php
Muss ich eine eine htacces Datei anlegen um das .php wegzumachen oder muss ich an dieser Variable etwas ändern aToxidCurlSeoSnippets? Und wenn ja was und wenn nein, wofür ist die dann? Oder wo muss ich ansetzen?

Habe mich jetzt auch schon quer durchs Forum und allem was ich im Web finden konnte durchgelesen, aber hab leider keinen Plan mehr …
Vielen Dank schonmal für Eure Denkanstöße!

Sobald die Anbindung funktioniert veröffentliche ich natürlich auch den Code hier.

Hallo,

[QUOTE=Selisky-Design;122373]wenn ich die Navigation aus Websitebaker übergebe, stimmen die Links nicht, die führen mich auf die Websitebakerseite und nicht auf die Shopseite mit dem Inhalt aus der Websitebakerseite …
[/QUOTE]

Dann klappt das rewriting der URLs nicht.
Ja, das Snippet musst du setzen.
An diesem erkennt OXID, dass die aktuelle Seite aus einem anderen CMS kommt.

Ggf. mal deine Konfiguration hier posten.

Gruß Joscha

Hi Joscha, danke für die schnelle Antwort, meine Konfig sieht so aus:

// your URL-Snippet to dectect TOXID-Pages
$this-&gt;aToxidCurlSeoSnippets = array(
    '0' =&gt; 'websitebaker',
);
// URL to your CMS
$this-&gt;aToxidCurlSource	= array(
    '0' =&gt; 'http://localhost/oxid-test/websitebaker/',
);
// Additional Params for URL
$this-&gt;aToxidCurlUrlParams = array(
    '0' =&gt; '',
);

Leider werden trotz dem Anpassen der aToxidCurlSeoSnippets Variablen die Links nicht umgesetzt …
Oder darf ich das CMS nicht in einen Unterordner von OXID packen?

Spielt es vielleicht auch eine Rolle WO ich die Daten wieder ausgebe? Im Moment habe ich einfach mal die Seite Impressum um Folgendes ergänzt:

[{assign var=‘toxid’ value=$oViewConf->getToxid()}]
[{ $toxid->getCmsSnippet(navigation) }]

[{assign var=‘toxid’ value=$oViewConf->getToxid()}]
[{ $toxid->getCmsSnippet(content) }]

Muss die Navigation möglicherweise woanders stehen oder hat das keinen Einfluss?

Gruß
Jens

Hm, ich hatte einen Denkfehler was aToxidCurlSeoSnippets angeht, nicht der Pfad zum Websitebaker wird durchsucht, sondern der Pfad von OXID.
Also:
localhost/oxid/meine-cms-seite/
statt
localhost/websitebaker/meine-cms-seite.php
Dann trage ich in aToxidCurlSeoSnippets ein: meine-cms-seite
Das klappt also jetzt schonmal, was aber jetzt gar nicht mehr angezeigt wird, ist die Navigation …
Und da wäre dann wieder die Frage von oben, ob ich die Navigation auslagern muss … ?

Hallo
ich versuche gerade OXID 4.7.4, WordPress 3.5.1 und TOXID 1.5.1 zusammen zum laufen zu bringen.
In WordPress habe ich ein neues Theme “XML” erstellt. Wenn ich das neue Theme in WordPress aktiviere, klappt es wunderbar mit der Übergabe an OXID mit diesem Aufruf

[{assign var='toxid' value=$oViewConf->getToxid()}]
[{ $toxid->getCmsSnippet('content',true,'mein-wpblog-post/') }]

Ist in WordPress allerdings das normale Theme “Twenty Twelve” aktiviert, passiert auf der OXID Seite gar nichts mehr und die Seite mit dem toxid Aufruf bleibt weiss.

in WordPress ist das “TOXID Themeswitcher” Plugin aktiviert
und in der config.inc.php von OXID habe ich das WordPress Theme wie folgt eingetragen:


// Additional Params for URL
        $this->aToxidCurlUrlParams = array(
            '0' => '?theme=xml',
            '1' => '?theme=xml',
       );

Was mach ich falsch? Hab ich da was übersehen?

Bin für jeden Hinweis dankbar.
Gruss
claudia