Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: MODUL: RSS-Feed für modified eCommerce Shopsoftware (deutsch & englisch)

    tomjons

    • Frisch an Board
    • Beiträge: 67
    Hallo,

    versuche gerade unseren RSS-Feed in Wordpress darzustellen.

    Leider erhalte ich immer eine Fehlermeldung:

    Zitat
    RSS Error: This XML document is invalid, likely due to invalid characters. XML error: Not well-formed (invalid token) at line 1, column 1

    http://goo.gl/NqweYL

    longchuan

    • Viel Schreiber
    • Beiträge: 640
    • Geschlecht:
    Hab das RSS Feed in www.hotdreams.at eingebaut aber es kommt leider nur eine weiße Seite.
    was habe ich falsch gemacht
    lg

    karsta.de

    • Experte
    • Beiträge: 3.156
    Also beim korrekten Aufruf des Links, funktionierts. http://www.hotdreams.at/rss_news.php

    Du hast es mit dem Contentmanager verbunden. Das steht so nicht in der Anleitung. Du kannst, wenn du keine extra rss-Box erstellen willst, den Link z.B. in deiner Social Networks oder in deiner Informations-Box verwenden.
    <a href="rss_news.php" ...

    longchuan

    • Viel Schreiber
    • Beiträge: 640
    • Geschlecht:
    Soll ich den text danach einfügen oder ihn ersetzen

    f) includes/header.php
    Dort nach:

    <link rel="stylesheet" type="text/css" href="<?php echo 'templates/'.CURRENT_TEMPLATE.'/stylesheet.css'; ?>" />

    dieses einf¸gen:

    Code: PHP  [Auswählen]
    <link rel="alternate" type="application/rss+xml" title="RSS Feed" href="<?php echo HTTP_SERVER . DIR_WS_CATALOG; ?>rss_news.php?language=<?php echo $_SESSION['language_code']; ?>" />

    der zeit zeigt der RSS Feed link auf http://hotdreams.at/shop_content.php?coID=25
    was hab ich falsch gemacht

    Danke

    mein derzeitiger Code sieht so aus

    Code: PHP  [Auswählen]
    <?php
    /* -----------------------------------------------------------------------------------------
       $Id: header.php 3808 2012-10-28 20:39:04Z web28 $

       modified eCommerce Shopsoftware
       http://www.modified-shop.org

       Copyright (c) 2009 - 2013 [www.modified-shop.org]
       -----------------------------------------------------------------------------------------
       based on:
       (c) 2000-2001 The Exchange Project  (earlier name of osCommerce)
       (c) 2002-2003 osCommerce(header.php,v 1.40 2003/03/14); www.oscommerce.com
       (c) 2003 nextcommerce (header.php,v 1.13 2003/08/17); www.nextcommerce.org
       (c) 2006 XT-Commerce (header.php 1140 2005-08-10)

       Released under the GNU General Public License
       -----------------------------------------------------------------------------------------
       Third Party contribution:

       Credit Class/Gift Vouchers/Discount Coupons (Version 5.10)
       http://www.oscommerce.com/community/contributions,282
       Copyright (c) Strider | Strider@oscworks.com
       Copyright (c  Nick Stanko of UkiDev.com, nick@ukidev.com
       Copyright (c) Andre ambidex@gmx.net
       Copyright (c) 2001,2002 Ian C Wilson http://www.phesis.org

       Released under the GNU General Public License
       ---------------------------------------------------------------------------------------*/


    define('DIR_MODIFIED_INSTALLER', '_installer');

    //SET SHOP OFFLINE 503 STATUS CODE
    require_once(DIR_FS_INC . 'xtc_get_shop_conf.inc.php');
    if(xtc_get_shop_conf('SHOP_OFFLINE') == 'checked' && $_SESSION['customers_status']['customers_status_id'] != 0) {          
            header("HTTP/1.1 503 Service Temporarily Unavailable");
      header("Status: 503 Service Temporarily Unavailable");
    }
    //SET 410 STATUS CODE
    elseif (isset($error) && ($error == CATEGORIE_NOT_FOUND || $error == TEXT_PRODUCT_NOT_FOUND)) {
      header("HTTP/1.0 410 Gone");
      header("Status: 410 Gone"); // FAST CGI
    }

    /******** SHOPGATE **********/
    if(strpos(MODULE_PAYMENT_INSTALLED, 'shopgate.php') !== false && strpos($_SESSION['customers_status']['customers_status_payment_unallowed'], 'shopgate') === false){
      include_once (DIR_FS_CATALOG.'includes/external/shopgate/base/includes/header.php');
    }
    /******** SHOPGATE **********/

    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" <?php echo HTML_PARAMS; ?>>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=<?php echo $_SESSION['language_charset']; ?>" />
    <meta http-equiv="Content-Style-Type" content="text/css" />
    <?php
    /******** SHOPGATE **********/
    if(strpos(MODULE_PAYMENT_INSTALLED, 'shopgate.php') !== false && strpos($_SESSION['customers_status']['customers_status_payment_unallowed'], 'shopgate') === false){
      echo $shopgateJsHeader;
    }
    /******** SHOPGATE **********/
    ?>
    <?php include(DIR_WS_MODULES.FILENAME_METATAGS); ?>
    <link rel="shortcut icon" href="<?php echo (($request_type == 'SSL') ? HTTPS_SERVER : HTTP_SERVER).DIR_WS_CATALOG.'templates/'.CURRENT_TEMPLATE.'/favicon.ico';?>" type="image/x-icon" />
    <?php
    /*
      The following copyright announcement is in compliance  to section 2c of the GNU General Public License,
      and thus can not be removed, or can only be modified  appropriately.

      Please leave this comment intact together with the following copyright announcement.
    */

    ?>
    <!--
    =========================================================
    modified eCommerce Shopsoftware (c) 2009-2012 [www.modified-shop.org]
    =========================================================

    modified eCommerce Shopsoftware offers you highly scalable E-Commerce-Solutions and Services.
    The Shopsoftware is redistributable under the GNU General Public License (Version 2) [http://www.gnu.org/licenses/gpl-2.0.html].
    based on: E-Commerce Engine Copyright (c) 2006 xt:Commerce, created by Mario Zanier & Guido Winger and licensed under GNU/GPL.
    Information and contribution at http://www.(( Wir dulden keine kommerziellen Werbelinks - Bitte <a href="index.php?topic=3013.0">Forenregeln</a> beachten! ))

    =========================================================
    Please visit our website: www.modified-shop.org
    =========================================================
    -->

    <meta name="generator" content="(c) by <?php echo PROJECT_VERSION; ?> ------|| http://www.modified-shop.org" />
    <base href="<?php echo (($request_type == 'SSL') ? HTTPS_SERVER : HTTP_SERVER) . DIR_WS_CATALOG; ?>" />
    <?php
    if (file_exists('templates/'.CURRENT_TEMPLATE.'/css/general.css.php')) {
      require('templates/'.CURRENT_TEMPLATE.'/css/general.css.php');
    } else { //Maintain backwards compatibility for older templates
      echo '<link rel="stylesheet" type="text/css" href="templates/'.CURRENT_TEMPLATE.'/stylesheet.css" />';
    }

    ?>
    <script type="text/javascript"><!--
    var selected;
    var submitter = null;
    function submitFunction() {
        submitter = 1;
    }
    function popupWindow(url) {
      window.open(url,'popupWindow','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,copyhistory=no,width=100,height=100,screenX=150,screenY=150,top=150,left=150')
    }  
    function selectRowEffect(object, buttonSelect) {
      if (!selected) {
        if (document.getElementById) {
          selected = document.getElementById('defaultSelected');
        } else {
          selected = document.all['defaultSelected'];
        }
      }
      if (selected) selected.className = 'moduleRow';
      object.className = 'moduleRowSelected';
      selected = object;
      if (document.getElementById('payment'[0])) {
        document.getElementById('payment'[buttonSelect]).checked=true;
      }
    }
    function rowOverEffect(object) {
      if (object.className == 'moduleRow') object.className = 'moduleRowOver';
    }
    function rowOutEffect(object) {
      if (object.className == 'moduleRowOver') object.className = 'moduleRow';
    }
    function popupImageWindow(url) {
      window.open(url,'popupImageWindow','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=yes,copyhistory=no,width=100,height=100,screenX=150,screenY=150,top=150,left=150')
    }
    //--></script>
    <?php
    // require theme based javascript
    require('templates/'.CURRENT_TEMPLATE.'/javascript/general.js.php');

    if (strstr($PHP_SELF, FILENAME_CHECKOUT_PAYMENT)) {
     echo $payment_modules->javascript_validation();
    }

    if (strstr($PHP_SELF, FILENAME_CREATE_ACCOUNT)) {
      require('includes/form_check.js.php');
    }

    if (strstr($PHP_SELF, FILENAME_CREATE_GUEST_ACCOUNT )) {
      require('includes/form_check.js.php');
    }
    if (strstr($PHP_SELF, FILENAME_ACCOUNT_PASSWORD )) {
      require('includes/form_check.js.php');
    }

    if (strstr($PHP_SELF, FILENAME_ACCOUNT_EDIT )) {
      require('includes/form_check.js.php');
    }

    if (strstr($PHP_SELF, FILENAME_ADDRESS_BOOK_PROCESS )) {
      if (isset($_GET['delete']) == false) {
        include('includes/form_check.js.php');
      }
    }

    if (strstr($PHP_SELF, FILENAME_CHECKOUT_SHIPPING_ADDRESS ) || strstr($PHP_SELF,FILENAME_CHECKOUT_PAYMENT_ADDRESS)) {
      require('includes/form_check.js.php');
      ?>
    <script type="text/javascript"><!--
    function check_form_optional(form_name) {
      var form = form_name;
      var firstname = form.elements['firstname'].value;
      var lastname = form.elements['lastname'].value;
      var street_address = form.elements['street_address'].value;
      if (firstname == '' && lastname == '' && street_address == '') {
        return true;
      } else {
        return check_form(form_name);
      }
    }
    //--></script>
      <?php
    }

    if (strstr($PHP_SELF, FILENAME_ADVANCED_SEARCH )) {
    ?>
    <script type="text/javascript" src="includes/general.js"></script>
    <script type="text/javascript"><!--
    function check_form() {
      var error_message = unescape("<?php echo xtc_js_lang(JS_ERROR); ?>");
      var error_found = false;
      var error_field;
      var keywords = document.getElementById("advanced_search").keywords.value;
      var pfrom = document.getElementById("advanced_search").pfrom.value;
      var pto = document.getElementById("advanced_search").pto.value;
      var pfrom_float;
      var pto_float;
      if ( (keywords == '' || keywords.length < 1) && (pfrom == '' || pfrom.length < 1) && (pto == '' || pto.length < 1) ) {
        error_message = error_message + unescape("<?php echo xtc_js_lang(JS_AT_LEAST_ONE_INPUT); ?>");
        error_field = document.getElementById("advanced_search").keywords;
        error_found = true;
      }
      if (pfrom.length > 0) {
        pfrom_float = parseFloat(pfrom);
        if (isNaN(pfrom_float)) {
          error_message = error_message + unescape("<?php echo xtc_js_lang(JS_PRICE_FROM_MUST_BE_NUM); ?>");
          error_field = document.getElementById("advanced_search").pfrom;
          error_found = true;
        }
      } else {
        pfrom_float = 0;
      }
      if (pto.length > 0) {
        pto_float = parseFloat(pto);
        if (isNaN(pto_float)) {
          error_message = error_message + unescape("<?php echo xtc_js_lang(JS_PRICE_TO_MUST_BE_NUM); ?>");
          error_field = document.getElementById("advanced_search").pto;
          error_found = true;
        }
      } else {
        pto_float = 0;
      }
      if ( (pfrom.length > 0) && (pto.length > 0) ) {
        if ( (!isNaN(pfrom_float)) && (!isNaN(pto_float)) && (pto_float < pfrom_float) ) {
          error_message = error_message + unescape("<?php echo xtc_js_lang(JS_PRICE_TO_LESS_THAN_PRICE_FROM); ?>");
          error_field = document.getElementById("advanced_search").pto;
          error_found = true;
        }
      }
      if (error_found == true) {
        alert(error_message);
        error_field.focus();
        return false;
      }
    }
    function popupWindow(url) {
      window.open(url,'popupWindow','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,copyhistory=no,width=450,height=280,screenX=150,screenY=150,top=150,left=150')
    }
    //--></script>
    <?php
    }

    if (strstr($PHP_SELF, FILENAME_PRODUCT_REVIEWS_WRITE )) {
    ?>
    <script type="text/javascript"><!--
    function checkForm() {
      var error = 0;
      var error_message = unescape("<?php echo xtc_js_lang(JS_ERROR); ?>");
      var review = document.getElementById("product_reviews_write").review.value;
      if (review.length < <?php echo REVIEW_TEXT_MIN_LENGTH; ?>) {
        error_message = error_message + unescape("<?php echo xtc_js_lang(JS_REVIEW_TEXT); ?>");
        error = 1;
      }
      if (!((document.getElementById("product_reviews_write").rating[0].checked) || (document.getElementById("product_reviews_write").rating[1].checked) || (document.getElementById("product_reviews_write").rating[2].checked) || (document.getElementById("product_reviews_write").rating[3].checked) || (document.getElementById("product_reviews_write").rating[4].checked))) {
        error_message = error_message + unescape("<?php echo xtc_js_lang(JS_REVIEW_RATING); ?>");
        error = 1;
      }
      if (error == 1) {
        alert(error_message);
        return false;
      } else {
        return true;
      }
    }
    //--></script>
    <?php
    }
    if (strstr($PHP_SELF, FILENAME_POPUP_IMAGE )) {
    ?>
    <script type="text/javascript"><!--
    var i=0;
    function resize() {
      if (navigator.appName == 'Netscape') i=40;
      if (document.images[0]) window.resizeTo(document.images[0].width +30, document.images[0].height+60-i);
      self.focus();
    }
    //--></script>
    <?php
    }
    ?>
    </head>
    <body<?php if(strstr($PHP_SELF, FILENAME_POPUP_IMAGE )) echo ' onload="resize();"'; ?>>
    <?php

    // econda tracking
    if (TRACKING_ECONDA_ACTIVE=='true') { ?>
    <script type="text/javascript"><!--
    var emos_kdnr='<?php echo TRACKING_ECONDA_ID; ?>';
    //--></script>
    <a name="emos_sid" rel="<?php echo session_id(); ?>" rev=""></a>
    <a name="emos_name" title="siteid" rel="<?php echo $_SESSION['languages_id']; ?>" rev=""></a>
    <?php
    }

    if (strstr($PHP_SELF, FILENAME_CHECKOUT_SUCCESS) && GOOGLE_CONVERSION == 'true') {
      require('includes/google_conversiontracking.js.php');
    }

    // include needed functions
    require_once('inc/xtc_output_warning.inc.php');
    require_once('inc/xtc_image.inc.php');
    require_once('inc/xtc_parse_input_field_data.inc.php');
    require_once('inc/xtc_draw_separator.inc.php');

    // check if the 'install' directory exists, and warn of its existence
    if (WARN_INSTALL_EXISTENCE == 'true') {
      if (file_exists(dirname($_SERVER['SCRIPT_FILENAME']) . '/' . DIR_MODIFIED_INSTALLER)) {
        xtc_output_warning(sprintf(WARNING_INSTALL_DIRECTORY_EXISTS, dirname($_SERVER['SCRIPT_FILENAME']) . '/_installer'));
      }
    }

    // check if the configure.php file is writeable
    if (WARN_CONFIG_WRITEABLE == 'true') {
      if ( (file_exists(dirname($_SERVER['SCRIPT_FILENAME']) . '/includes/configure.php')) && (is_writeable(dirname($_SERVER['SCRIPT_FILENAME']) . '/includes/configure.php')) ) {
        xtc_output_warning(sprintf(WARNING_CONFIG_FILE_WRITEABLE, dirname($_SERVER['SCRIPT_FILENAME']) . '/includes/configure.php'));
      }
    }

    // check if the session folder is writeable
    if (WARN_SESSION_DIRECTORY_NOT_WRITEABLE == 'true') {
      if (STORE_SESSIONS == '') {
        if (!is_dir(xtc_session_save_path())) {
          xtc_output_warning(WARNING_SESSION_DIRECTORY_NON_EXISTENT);
        } elseif (!is_writeable(xtc_session_save_path())) {
          xtc_output_warning(WARNING_SESSION_DIRECTORY_NOT_WRITEABLE);
        }
      }
    }

    // check session.auto_start is disabled
    if ( (function_exists('ini_get')) && (WARN_SESSION_AUTO_START == 'true') ) {
      if (ini_get('session.auto_start') == '1') {
        xtc_output_warning(WARNING_SESSION_AUTO_START);
      }
    }

    if ( (WARN_DOWNLOAD_DIRECTORY_NOT_READABLE == 'true') && (DOWNLOAD_ENABLED == 'true') ) {
      if (!is_dir(DIR_FS_DOWNLOAD)) {
        xtc_output_warning(WARNING_DOWNLOAD_DIRECTORY_NON_EXISTENT);
      }
    }

    $smarty->assign('navtrail',$breadcrumb->trail(' &raquo; '));
    if (isset($_SESSION['customer_id'])) {
            $smarty->assign('logoff',xtc_href_link(FILENAME_LOGOFF, '', 'SSL'));
    } else {
            $smarty->assign('login',xtc_href_link(FILENAME_LOGIN, '', 'SSL'));
    }
    $smarty->assign('index',xtc_href_link(FILENAME_DEFAULT));
    if ( $_SESSION['account_type']=='0') {
    $smarty->assign('account',xtc_href_link(FILENAME_ACCOUNT, '', 'SSL'));
    }
    $smarty->assign('cart',xtc_href_link(FILENAME_SHOPPING_CART, '', 'NONSSL'));
    $smarty->assign('checkout',xtc_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL'));
    $smarty->assign('store_name', encode_htmlspecialchars(TITLE));

    if (isset($_GET['error_message']) && xtc_not_null($_GET['error_message'])) {
            $smarty->assign('error','<p class="errormessage">'. encode_htmlspecialchars(urldecode($_GET['error_message'])).'</p>');
    }
    if (isset($_GET['info_message']) && xtc_not_null($_GET['info_message'])) {
            $smarty->assign('error','<p class="errormessage">'.encode_htmlspecialchars($_GET['info_message']).'</p>');
    }

    include(DIR_WS_INCLUDES.FILENAME_BANNER);

    //SHOP OFFLINE INFO
    if(xtc_get_shop_conf('SHOP_OFFLINE') == 'checked' && $_SESSION['customers_status']['customers_status_id'] != 0) {      
            $smarty->assign('language', $_SESSION['language']);
            $smarty->assign('shop_offline_msg', xtc_get_shop_conf('SHOP_OFFLINE_MSG'));    
      $smarty->display(CURRENT_TEMPLATE.'/offline.html');  
            EXIT;
    }

    //BOF - Dokuman - 2012-06-19 - BILLSAFE payment module (BillSAFE-Layer Start)
    if (defined('MODULE_PAYMENT_BILLSAFE_2_LAYER')) {
      if (preg_match('/checkout_payment/',$_SERVER['PHP_SELF']) && MODULE_PAYMENT_BILLSAFE_2_LAYER == 'True') {
        if (isset($_GET['payment_error'])) {
          $bs_error = stripslashes(html_entity_decode('payment_error='.$_GET['payment_error'].'&error_message='.$_GET['error_message']));
        } else {
          $bs_error = '';
        }
        echo '<script type="text/javascript"><!--
          if (top.lpg) top.lpg.close("'
    .str_replace('&amp;', '&', xtc_href_link(FILENAME_CHECKOUT_PAYMENT, $bs_error, 'SSL')).'");
        --></script>'
    ;
      }
      if (preg_match('/checkout_success/',$_SERVER['PHP_SELF']) && MODULE_PAYMENT_BILLSAFE_2_LAYER == 'True') {
        echo '<script type="text/javascript"><!--
          if (top.lpg) top.lpg.close("'
    .xtc_href_link(FILENAME_CHECKOUT_SUCCESS, '', 'SSL').'");
        --></script>'
    ;
      }
    }
    //EOF - Dokuman - 2012-06-19 - BILLSAFE payment module - BillSAFE-Layer End
    ?>

    longchuan

    • Viel Schreiber
    • Beiträge: 640
    • Geschlecht:
    Ok hab es gelöst

    lithoverlag

    • Fördermitglied
    • Beiträge: 804
    • Geschlecht:
    Ergänzend möchte ich ein hinzufügen, wenn Ihr Euch bei ifttt.com (If this than that) anmeldet könnt ihr ein Rezept erstellen, mit dem jede neue rss news bei Facebook in Eure Fanpage automatisch angezeigt wird.

    Ich mache dies für ettliche News seiten schon länger, hoffe heute klappt es auch mit meinem Shop.

    Viel Erfolg

    lithoverlag

    • Fördermitglied
    • Beiträge: 804
    • Geschlecht:
    Ich könnte mal Hilfe gebrauchen.
    ich habe versucht das RSS für die neuste Shopversion 2.x zum laufen zu bringen...

    Dazu habe ich die rss_news.php ins root kopiert. Zuvor habe ich die Datei mittels Notepad++ in UFT8 konvertiert, die Iso Zeile entsprechend geändert (weil ich sonst Umlaute hatte).
    Soweit sieht es auch im FF gut aus. Mein Ziel ist es die "neuen Artikel" mit IFTTT.com automatisch zur Facebook Fanpage zu schicken.

    Leider meldet mir www.IFTTT.COM "Not a valid feed url, missing feed title" Was also bisher bei einigen Shops bis 1.06. reibungslos geklappt hat scheitert an: Keine Ahnung.

    Bisher sieht es so gut aus: http://bombahunter.com/rss_news.php

    Code: PHP  [Auswählen]
    <?php
    #################################################################
    #  $Id: config_feed.php,v 1.0 2006/10/27 12:00:00 phv Exp $     #
    #                                                                                                                               #
    #  http://www.ne-xt.de                                                  #
    #  Copyright (c) 2006 Maik Schmidt (http://www.devido.de)           #
    #                                                                                                                               #
    #  Credits:                                                                                                             #
    #  Techway from ecombase (http://www.techway.de)                                #
    #  zahni9999 from ne-xt.de (http://www.devido.de)                               #
    #  admin from ne-xt.de (http://www.devido.de)                                   #
    #                                                                                                                               #
    #  Released under the GNU General Public License                #
    #################################################################

    #################################################################
    #  überarbeitet von Franky, K wie Kids und speedy
    #################################################################


    #################################################################
    # Mit Hilfe dieses Feed Scripts kann man eine definierte Anzahl #
    # neuer Produkte aus der DB des Shops auslesen und diese in     #
    # einer News Reader Software anzeigen lassen.                                   #
    # Das einzige was angepasst werden muß sind die verschiedenen  #
    # Variablen in der Datei config_feed.php                                                #
    #################################################################

    ########################################################
    # Start Generierung des Headers der xml/rss feed Seite #
    ########################################################

    include ('includes/configure.php'); // zumindest bei Trunk zu 1.06 auskommentieren.
    include ('includes/application_top.php');


    ################################
    # Diese Variablen anpassen         #
    ################################

    $Title = "Bomba-Hunter Tackle"; //Titel für den Feed hier eingeben
    $logo_url = HTTP_SERVER .DIR_WS_CATALOG."templates/".CURRENT_TEMPLATE."/img/logo.gif"; //URL zum Logo
    $Description = "Beschreibung (editierbar in der rss_news.php)"; //Beschreibung des Feeds
    $copyright = "Copyright"; //copyright inhaber
    $category = "Kategorie"; //Sammelkategorie für alle Produkte
    $product_count = 100; //Anzahl Produkte welche im Feed angezeigt werden Kann hoch sein, da nur "Neue" Produkte ausgegeben werden
    $modus = "new_nostock";  // 'new_nostock' für ausschließlich neue Produkte auch ohne Lagerbestand
                             // 'new_stock'   für ausschließlich neue Produkte nur mit Lagerbestand
                             // 'all_nostock' für die Ausgabe aller Produkte im Shop auch ohne Lagerbestand
                             // 'all_stock'   für die Ausgabe aller Produkte im Shop nur mit Lagerbestand

    //MwSt-Einstellungen
    $with_tax = TRUE; //TRUE => inkl. MwSt, FALSE => exkl. MwSt
    $show_shipping = TRUE; //anzeige von exkl. Versand

    # add your language codes here
    $language_codes = array(
            "de" => "de-DE",
            "en" => "en-GB"
    );

    ##################
    # Ende Variablen #
    ##################


    $SiteLink = HTTP_SERVER .DIR_WS_CATALOG ;
    $date = date("r");

    if (MAX_DISPLAY_NEW_PRODUCTS_DAYS != '0') {
            $date_new_products = date("Y.m.d", mktime(1, 1, 1, date(m), date(d) - MAX_DISPLAY_NEW_PRODUCTS_DAYS, date(Y)));
            if($modus == 'all_nostock'){
                     $days = "";
                     $stock = "";
            } else if($modus == 'all_stock') {
                     $days = "";
                     $stock = " and p.products_quantity > 0 ";
            } else if($modus == 'new_nostock') {
                     $days = " and p.products_date_added > '".$date_new_products."' ";
                     $stock = "";
            } else if($modus == 'new_stock') {
                     $days = " and p.products_date_added > '".$date_new_products."' ";
                     $stock = " and p.products_quantity > 0 ";
            }
    }

    # Es werden nur Artikel angezeigt, die für Gäste freigeschaltet sind.
    # Andernfalls würde über RSS z.B. auch Händlerangebote incl. Händlerpreis exportiert...
    # Durch das Entfernen der SessionID (xtcID) können Newsreader bei erneutem Einlesen des Feeds
    # bereits erhaltene Einträge wiedererkennen ?
    #
    if (GROUP_CHECK == 'true') {
            $group_check = " and p.group_permission_".$_SESSION['customers_status']['customers_status_id']."=1 ";
    }

    header("Content-Type: application/rss+xml");
    header("Cache-Control: no-cache, must-revalidate");

    echo "<?xml version=\"1.0\" encoding=\"ISO-utf-8\"?>\n\n";
    echo "<rss version=\"2.0\" xmlns:atom=\"http://www.w3.org/2005/Atom\">\n\n";

    echo "<channel>\n";
    echo "<title>$Title</title>";
    echo "<link>$SiteLink</link>";
    echo "<description>$Description</description>";
    echo "<language>".$language_codes[$_SESSION['language_code']]."</language>";
    echo "<copyright>$copyright</copyright>";
    echo "<pubDate>$date</pubDate>"; // muss eigentlich folgendes Format haben "2007-02-23T14:25:18.037+02:00" date("c") gibt es aber erst ab PHP5
    echo "<atom:link href=\"$SiteLinkrss_news.php\" rel=\"self\" />\n\n";
    echo "<image>";
    echo "<url>$logo_url</url>";
    echo "<title>$Title</title>";
    echo "<link>$SiteLink</link>";
    echo "</image>";
    echo " ";

    $query = "select
                            p.products_id,
                            p.products_ean,
                            pd.products_name,
                            pd.products_short_description,
                            pd.products_description,
                            p.products_price,
                            p.products_image,
                            p.products_model,
                            p.group_permission_1,
                            p.products_date_added,
                            p.products_tax_class_id,
                            p.products_quantity,
                            s.specials_new_products_price
                            from (products p INNER JOIN products_description pd ON p.products_id = pd.products_id) LEFT JOIN specials s ON p.products_id = s.products_id
                            where p.products_status = '1'
                            and pd.language_id = "
    .$_SESSION['languages_id']."
                            and IF(s.specials_new_products_price>0, s.status = '1', '1')
                            and IF(s.expires_date>0, s.expires_date>now(), '1')
                             "
    .$group_check."
                             "
    .$days."
                             "
    .$stock."
                            order by
                            p.products_date_added DESC
                            LIMIT 0,"
    . $product_count ;

    $listing_query = xtDBquery($query);


    ##########################################################################
    # ab hier die schleife bis die anzahl abgearbeitet wurde                 #
    ##########################################################################

    while ($listing = xtc_db_fetch_array($listing_query, true)) {

        $link = xtc_href_link(FILENAME_PRODUCT_INFO, xtc_product_link($listing['products_id'],$listing['products_name']),'NONSSL', false);

            $linkimage = HTTP_SERVER . DIR_WS_CATALOG . DIR_WS_THUMBNAIL_IMAGES;
            $linkimage .= $listing['products_image'];
            $price = $xtPrice->xtcGetPrice($listing['products_id'], $format = true, 1, $listing['products_tax_class_id'], $listing['products_price'], 1);
            $tax_rate = $xtPrice->TAX[$listing['products_tax_class_id']];
            if ($with_tax) {
                    $tax_info = sprintf(TAX_INFO_INCL, $tax_rate.' %');
            } else {
                    $tax_info = sprintf(TAX_INFO_ADD, $tax_rate.' %');
            }
            if ($show_shipping) {
                    $ship_info=' '.SHIPPING_EXCL.'<a href="'.xtc_href_link(FILENAME_POPUP_CONTENT, 'coID='.SHIPPING_INFOS,'NONSSL', false).'"> '.SHIPPING_COSTS.'</a>';
            }

        //$products_name = strip_tags($listing['products_name']);
        $products_name = $listing['products_name'];
        $products_name = str_replace("&", "&amp;", $products_name);
        $products_name = str_replace("\n", " ", $products_name);


        echo "\n\n<item>";
        echo "\t\t<pubDate>";
             $date = $listing['products_date_added'];
             $date = strtotime($date);
             $date = date('r',$date);
             echo $date;
        echo "</pubDate>\n";
        echo "      <category>".$category."</category>";
        echo "      <title>" . $products_name . "</title>";
        echo "      <link>" . $link . "</link>";
        echo "      <guid>" . $link . "</guid>";
        echo "      <description><![CDATA[";
        echo "        <table width='90%'>";
        echo "          <tr>";
        echo "            <td>";
        echo "              <table width='100%'>";
        echo "                <tr>";
        echo "                  <td width='25%'><a href='" . $link . "'><img src='" . $linkimage . "' alt='" . $products_name . "' border='0'></a></td>";
        echo "                  <td>";
        echo "                    <table align='left'>";
        echo "                      <tr><td>".$listing['products_short_description']."</td></tr>";
        echo "                      <tr><td>".$listing['products_description']."</td></tr>";
        echo "                      <tr><td>&nbsp;</td></tr>";
        echo "                      <tr><td><strong>".YOUR_PRICE.":  " . $price['formated'] . "</strong> " . $tax_info . $ship_info ."</td></tr>";
        echo "                    </table>";
        echo "                  </td>";
        echo "                </tr>";
        echo "              </table>";
        echo "            </td>";
        echo "          </tr>";
        echo "        </table>";
        echo "        <hr />";
        echo "      ]]></description>";
        echo "    </item>";
    }
    ##########################################################################
    #  bis hier die schleife                                                 #
    ##########################################################################
    echo "</channel>";
    echo " ";
    echo "</rss>";
    ?>

    lithoverlag

    • Fördermitglied
    • Beiträge: 804
    • Geschlecht:
    Ok - nochmal Handbuch zu rate gezogen. Installation wiederholt. Festgestellt dass ich das
    e) includes/filenames.php
    Dort "define('FILENAME_RSS', 'rss_news.php');" einfügen

    und das hier nicht gemacht hatte.

    Zitat
    <link rel="stylesheet" type="text/css" href="<?php echo 'templates/'.CURRENT_TEMPLATE.'/stylesheet.css'; ?>" />
    dieses einfügen:
    Code: PHP  [Auswählen]
    <link rel="alternate" type="application/rss+xml" title="RSS Feed" href="<?php echo HTTP_SERVER . DIR_WS_CATALOG; ?>rss_news.php?language=<?php echo $_SESSION['language_code']; ?>" />

    Während die Filenames.php ohne probleme ging war es bei der Header.php problematischer
    Da
    Zitat
    <link rel="stylesheet" type="text/css" href="<?php echo 'templates/'.CURRENT_TEMPLATE.'/stylesheet.css'; ?>" />

    jetzt wohl so aussieht:
    Code: PHP  [Auswählen]
      echo '<link rel="stylesheet" type="text/css" href="templates/'.CURRENT_TEMPLATE.'/stylesheet.css" />'.PHP_EOL;

    also habe ich das so angefügt. mit dem resultat eines weißen Bildschirms.
    Code: PHP  [Auswählen]
    echo '<link rel="alternate" type="application/rss+xml" title="RSS Feed" href="<?php echo HTTP_SERVER . DIR_WS_CATALOG; ?>rss_news.php?language=<?php echo $_SESSION['language_code']; ?>" />'.PHP_EOL;

    Den konnte ich beheben durch
    Code: PHP  [Auswählen]
    c) lang/{language}/lang_{language}.conf
    Dort die folgenden Zeilen einfügen
            heading_rss = 'RSS-FEED'

    Soweit steht die Seite aber meine Fehlermeldung IFTTT.com

    Zitat
    Not a valid feed url, missing feed title

    bleibt bestehen. HAt jemand eine Idee dazu? Danke!

    Martin109

    • Fördermitglied
    • Beiträge: 280
    • Geschlecht:
    hallo zusammen,

    hat da vielleicht schon jemand eine Lösung für Shop V2.0

    Gruß Martin

    lithoverlag

    • Fördermitglied
    • Beiträge: 804
    • Geschlecht:
    Zitat
    hat da vielleicht schon jemand eine Lösung für Shop V2.0

    Hi Martin und alle anderen,

    es findet sich wohl niemand der es "upgraden" möchte.

    Ich würde hier gerne einen Sammeltopf  aufmachen. So eine Art crowdfunding für lieb gewonnen
    aber nicht upgedatete Module....

    Und schmeiße mal 50 Euro in den Topf.  Zieht jemand mit?

    Interessierte Programmierer können dann gerne zuschlagen wenn Ihnen der Topf voll genug erscheint. Auszahlung nach erfolgreichem Test der Funder ist dann Ehrensache.

    Bonsai

    • Viel Schreiber
    • Beiträge: 4.127
    • Geschlecht:
    http://www.feedvalidator.org/check.cgi?url=https%3A%2F%2Fwww.bombahunter.com%2Frss_news.php

    Zuerst mal das:
    <?xml version="1.0" encoding="ISO-utf-8"?>
    Code: XML  [Auswählen]
    <?xml version="1.0" encoding="UTF-8"?>

    Dann nimm einen funktionierenden Feed, wie den:
    https://www.j-k-fischer-verlag.de/rss_news.php
    Rechtsklick -> Seitenquelltext anzeigen
    Und Du vergleichst das vom Feedvalidator gelb angemalte mit Deinem Feed.

    lithoverlag

    • Fördermitglied
    • Beiträge: 804
    • Geschlecht:
    Hi Bonsai,
    also erstmal danke für das "nicht abgreifen" des geldes... ;-)

    Nun funzt es erstmals in sofern, dass www.ifttt.com ein Applet akzeptiert hat und nun neue rss news automatisch auf Facebook posten will (Mal schauen ob es klappt)
    Fehlerfrei läuft es laut valididator nicht... Aber das sieht bei deinem rss feed auch nicht so gut aus.

    Wenn ich richtig bei Dir gesehen habe hast du dann einfach unten eine Box mit rss Logo hinzugefügt - richtig?

    @Martin also theoretisch sollte das Modul funktionieren, wenn man (wie ich nicht) in der Lage ist den richtig UTF Code reinzubasteln.

    awids

    • Experte
    • Beiträge: 3.803
    • Geschlecht:
    :morning: Nur mal so am Rande, weil ich das gerade bei einem Shop-Update bemerkt habe:

    Das RSS-Modul wird bei keinem mehr funktionieren, weil Google (Chrome), Mozilla (Firefox) und wahrscheinlich auch die anderen Anbieter den Support für RSS-Feeds bereits im letzten Jahr eingestellt haben.  :whistle:

    Wer also noch eine Version dieses Modul verbastelt hat (z. B. Bonsai), sollte diese bei Gelegenheit mal wieder ausbauen. ;-)

    Buggyboy

    • Fördermitglied
    • Beiträge: 968
    • Geschlecht:
    Moin.

    Das stimmt nur bedingt.

    Die Funktion ist ja schon noch gegeben.
    Die User müssen nur darauf hingewiesen werden, das sie den Feed mit einem Feedreader aufmachen müssen.
    Oder sich eine App bei Firefox dafür laden müsssen.

    Ich habe mir bei Firefox den Feedbro Reader geladen.

    Bis peter...

    awids

    • Experte
    • Beiträge: 3.803
    • Geschlecht:
    Und wie viele User haben in der heutigen Zeit noch die Geduld, irgendwelche Texte zu lesen?  :-)  Von diesem Standpunkt aus gesehen, kann man das Modul auch gleich entfernen.  :2cent:
    5 Antworten
    4376 Aufrufe
    10. Juni 2011, 13:52:50 von sportstourer
    2 Antworten
    3106 Aufrufe
    13. September 2010, 21:56:19 von schnapsonline
    6 Antworten
    5519 Aufrufe
    13. April 2016, 12:37:33 von noRiddle (revilonetz)