Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Newsletter


Yepi1533005574

Recommended Posts

Hallo an Alle,

bin jetzt dabei die Newsletter um zu bauen.
https://apps.oscommerce.com/JvOkG&newslettter-products-for-oscommerce-2-3

 

Hierbei funzt alles super bis auf die Dateien:  view_newsletterp.php und die newsletters.php

 Bei der newsletter.php bekomme ich ein update der DB für den status als gesendet. hier der code der ein Fehler haben muss den ich jedoch nicht finde.
 

newsletters.php

<?php
  } elseif ($action == 'confirm_send') {
    $nID = tep_db_prepare_input($HTTP_GET_VARS['nID']);

      //newsletter products
    $newsletter_query = tep_db_query("select title, content, module, template from " . TABLE_NEWSLETTERS . " where newsletters_id = '" . (int)$nID . "'");
    $newsletter = tep_db_fetch_array($newsletter_query);
        $news_products = array();
       $newsletter_products_query = tep_db_query("select products_id from " . TABLE_NEWSLETTERS_TO_PRODUCTS . " where newsletters_id = '" . (int)$nID . "'");
       while($newsletter_products = tep_db_fetch_array($newsletter_products_query)){
          $news_products[] = $newsletter_products['products_id'];
       }
       $newsletter['products'] = $news_products;
       //end newsletter products

    $nInfo = new objectInfo($newsletter);

    include(DIR_WS_LANGUAGES . $language . '/modules/newsletters/' . $nInfo->module . substr($PHP_SELF, strrpos($PHP_SELF, '.')));
    include(DIR_WS_MODULES . 'newsletters/' . $nInfo->module . substr($PHP_SELF, strrpos($PHP_SELF, '.')));
    $module_name = $nInfo->module;
      //newsletter products
       if($nInfo->module == 'newsletter_products') {
           $module = new $module_name($nInfo->title, $nInfo->content . '<br /><br /><a href="' . tep_catalog_href_link('view_newsletter.php', 'nID=' . $nID) . '">' . TEXT_VIEW_HERE . tep_catalog_href_link('view_newsletter.php', 'nID=' . $nID) . "</a>\n", $nInfo->products, $nInfo->template);
       } else {
        $module = new $module_name($nInfo->title, $nInfo->content . TEXT_HTML_VIEW_HERE . tep_catalog_href_link('view_newsletter.php', 'nID=' . $nID) . "\n");
      }
      //end newsletter products
?>

//*********************************

Hier der Originalcode der newsletters.php der funktioniert.

<?php
  } elseif ($action == 'confirm_send') {
    $nID = tep_db_prepare_input($HTTP_GET_VARS['nID']);

    $newsletter_query = tep_db_query("select newsletters_id, title, content, module from " . TABLE_NEWSLETTERS . " where newsletters_id = '" . (int)$nID . "'");
    $newsletter = tep_db_fetch_array($newsletter_query);

    $nInfo = new objectInfo($newsletter);

    include(DIR_WS_LANGUAGES . $language . '/modules/newsletters/' . $nInfo->module . substr($PHP_SELF, strrpos($PHP_SELF, '.')));
    include(DIR_WS_MODULES . 'newsletters/' . $nInfo->module . substr($PHP_SELF, strrpos($PHP_SELF, '.')));
    $module_name = $nInfo->module;
    $module = new $module_name($nInfo->title, $nInfo->content);
?>

//*********************************

Hier der Code für die view_newsletterp.php

Hier wird der html Newsletter im Shop nicht angezeigt. 

<?php
/*
  $Id$

  osCommerce, Open Source E-Commerce Solutions
  http://www.oscommerce.com

  Copyright (c) 2010 osCommerce

  Released under the GNU General Public License
*/

  require('includes/application_top.php');

  require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_VIEWNEWS);

  $breadcrumb->add(NAVBAR_TITLE, tep_href_link(FILENAME_VIEWNEWS));

  require(DIR_WS_INCLUDES . 'template_top.php');
?>

<h1><?php echo HEADING_TITLE; ?></h1>

<div class="contentContainer">
  <div class="contentText">
    <?php
  $nID = (isset($HTTP_GET_VARS['nID']) ? tep_db_prepare_input($HTTP_GET_VARS['nID']) : 0);
  //newsletter products
  $newsletter_query = tep_db_query("select title, content, module, template from " . TABLE_NEWSLETTERS . " where newsletters_id = '" . (int)$nID . "'");
    if (tep_db_num_rows($newsletter_query) == 1) {
    $newsletter = tep_db_fetch_array($newsletter_query);
    $newsletter_products_query = tep_db_query("select products_id from " . TABLE_NEWSLETTERS_TO_PRODUCTS . " where newsletters_id = '" . (int)$nID . "'");
    while ($newsletter_products = tep_db_fetch_array($newsletter_products_query)) {
        $news_products[] = $newsletter_products['products_id'];
    }      
    $newsletter['products'] = $news_products;
      if ($newsletter['module'] == 'newsletter_products') {
          include('catalog/admin/includes/modules/newsletters/newsletter_products.php');
      include('catalog/admin/includes/languages/english/modules/newsletters/newsletter_products.php');
      $module = new newsletter_products($newsletter['title'], $newsletter['content'], $newsletter['products'], $newsletter['template']);
      echo $module->html_content();
      } else {
      echo nl2br($newsletter['content']);
      }    
      //end newsletter products
    } else {
        echo TEXT_NOT_FOUND;
    }
    echo "\n";
        ?>
  </div>

  <div class="buttonSet">
    <span class="buttonAction"><?php echo tep_draw_button(IMAGE_BUTTON_CONTINUE, 'triangle-1-e', tep_href_link(FILENAME_DEFAULT)); ?></span>
  </div>
</div>

<?php
  require(DIR_WS_INCLUDES . 'template_bottom.php');
  require(DIR_WS_INCLUDES . 'application_bottom.php');
?>

//*********************************

 

Hierbei hab ich die url zum Modul und die Sprachdatei umgeändert

$newsletter['products'] = $news_products;
      if ($newsletter['module'] == 'newsletter_products') {
//      include('catalog/admin/includes/modules/newsletters/newsletter_products.php');
//      include('catalog/admin/includes/languages/english/modules/newsletters/newsletter_products.php');
      include(DIR_FS_CATALOG . 'admin/includes/modules/newsletters/newsletter_products.php');
      include(DIR_FS_CATALOG . 'admin/includes/languages/english/modules/newsletters/newsletter_products.php');
      $module = new newsletter_products($newsletter['title'], $newsletter['content'], $newsletter['products'], $newsletter['template']);
      echo $module->html_content();
      } else {
      echo nl2br($newsletter['content']);
      }

//*********************************

dieser code ist für die Ausgabe der html-Newsletter zuständig es tut sich aber leider nichts.

echo $module->html_content();

für etwas Hilfe wäre ich sehr dankbar.

Link to comment
Share on other sites

Ok. Part 1 gelöst. update vom status funzt wieder.

 

<?php
  } elseif ($action == 'confirm_send') {
    $nID = tep_db_prepare_input($HTTP_GET_VARS['nID']);

    //newsletter products
    $newsletter_query = tep_db_query("select newsletters_id, title, content, module, template from " . TABLE_NEWSLETTERS . " where newsletters_id = '" . (int)$nID . "'");
    $newsletter_products_query = tep_db_query("select products_id from " . TABLE_NEWSLETTERS_TO_PRODUCTS . " where newsletters_id = '" . (int)$nID . "'");
    while($newsletter_products = tep_db_fetch_array($newsletter_products_query)){
           $news_products[] = $newsletter_products['products_id'];
    }
    $newsletter = tep_db_fetch_array($newsletter_query);
    $newsletter['products'] = $news_products;
    //end newsletter products

    $nInfo = new objectInfo($newsletter);

    include(DIR_WS_LANGUAGES . $language . '/modules/newsletters/' . $nInfo->module . substr($PHP_SELF, strrpos($PHP_SELF, '.')));
    include(DIR_WS_MODULES . 'newsletters/' . $nInfo->module . substr($PHP_SELF, strrpos($PHP_SELF, '.')));
    $module_name = $nInfo->module;
      //newsletter products
       if($nInfo->module == 'newsletter_products') {
           $module = new $module_name($nInfo->title, $nInfo->content . '<br /><br /><a href="' . tep_catalog_href_link('view_newsletter.php', 'nID=' . $nID) . '">' . TEXT_VIEW_HERE . tep_catalog_href_link('view_newsletter.php', 'nID=' . $nID) . "</a>\n", $nInfo->products, $nInfo->template);
       } else {
        $module = new $module_name($nInfo->title, $nInfo->content . TEXT_HTML_VIEW_HERE . tep_catalog_href_link('view_newsletter.php', 'nID=' . $nID) . "\n");
      }
      //end newsletter products
?>

Link to comment
Share on other sites

hier das Modul:

<?php
/*
  $Id: newsletter_products.php,v 2.0 2007/05/17 scottyb Exp $

  osCommerce, Open Source E-Commerce Solutions
  http://www.oscommerce.com

  Copyright (c) 2002 osCommerce

  Released under the GNU General Public License
  //newsletter products
*/

  class newsletter_products {

    function newsletter_products($title, $content, $products, $template) {
      $this->title = $title;
      $this->content = $content;
      $this->products = $products;
      $this->template = $template;
    }
    
    function choose_products() {
      global $HTTP_GET_VARS, $languages_id;
        
      //first let's get the products that have been added to newsletter
      if ($HTTP_GET_VARS['nID']) {
          $newsletter_products_query = tep_db_query("select products_id from " . TABLE_NEWSLETTERS_TO_PRODUCTS . " where newsletters_id ='" . (int)$HTTP_GET_VARS['nID'] . "'");
          $newsletter_products_string = '';
          while($newsletter_products = tep_db_fetch_array($newsletter_products_query)){
              $newsletter_products_string .= $newsletter_products['products_id'] . ', ';
          }
          $newsletter_products_string = trim($newsletter_products_string, ', ');

      //$newsletter_products_string = tep_db_result($newsletter_products_query, 0, $newsletter_products_query['products']);
          $current_products_query = "select pd.products_id, pd.products_name, p.products_model from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where pd.language_id = '" . (int)$languages_id . "' and pd.products_id = p.products_id and p.products_status = '1'";
          if($newsletter_products_string) $current_products_query .= " and pd.products_id in (" . $newsletter_products_string . ")";
        $current_products_query .= " order by pd.products_name";
        $current_products_query = tep_db_query($current_products_query);
      }   
      
      if($newsletter_products_string){
          $current_products_array = array();
          while ($current_products = tep_db_fetch_array($current_products_query)){
              $current_products_array[] = array('id' => $current_products['products_id'],
                                                'text' => $current_products['products_name'] . ' - ' . $current_products['products_model']);
          }
      }
      
      $products_query = "select pd.products_id, pd.products_name, p.products_model from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd where pd.language_id = '" . (int)$languages_id . "' and pd.products_id = p.products_id and p.products_status = '1'";
      if ($newsletter_products_string) $products_query .= " and pd.products_id not in(" . $newsletter_products_string . ")";
      $products_query .= " order by pd.products_name";
      
      $products_array = array();
      $products_query = tep_db_query($products_query);
      
      while ($products = tep_db_fetch_array($products_query)) {
        $products_array[] = array('id' => $products['products_id'],
                                  'text' => $products['products_name'] . ' - ' . $products['products_model']);
      }

$choose_products_string = '<script language="javascript"><!--
function mover(move) {
  if (move == \'remove\') {
    for (x=0; x<(document.newsletter.products.length); x++) {
      if (document.newsletter.products.options[x].selected) {
        with(document.newsletter.elements[\'chosen[]\']) {
          options[options.length] = new Option(document.newsletter.products.options[x].text,document.newsletter.products.options[x].value);
        }
        document.newsletter.products.options[x] = null;
        x = -1;
      }
    }
  }
  if (move == \'add\') {
    for (x=0; x<(document.newsletter.elements[\'chosen[]\'].length); x++) {
      if (document.newsletter.elements[\'chosen[]\'].options[x].selected) {
        with(document.newsletter.products) {
          options[options.length] = new Option(document.newsletter.elements[\'chosen[]\'].options[x].text,document.newsletter.elements[\'chosen[]\'].options[x].value);
        }
        document.newsletter.elements[\'chosen[]\'].options[x] = null;
        x = -1;
      }
    }
  }
  return true;
}

function selectAll(FormName, SelectBox) {
  temp = "document." + FormName + ".elements[\'" + SelectBox + "\']";
  Source = eval(temp);

  for (x=0; x<(Source.length); x++) {
    Source.options[x].selected = "true";
  }
}
//--></script>';

      $choose_products_string .= '<table border="0" width="100%" cellspacing="0" cellpadding="2">' . "\n" .
                                 '  <tr>' . "\n" .
                                 '    <td align="center" class="main"><strong>' . TEXT_PRODUCTS . '</strong><br />' . tep_draw_pull_down_menu('products', $products_array, '', 'size="20" style="width: 32em;" multiple') . '</td>' . "\n" .
                                 '    <td align="center" class="main">&nbsp;<br /><br /><input type="button" value="' . BUTTON_SELECT . '" style="width: 8em;" onClick="mover(\'remove\');"><br /><br /><input type="button" value="' . BUTTON_UNSELECT . '" style="width: 8em;" onClick="mover(\'add\');"></td>' . "\n" .
                                 '    <td align="center" class="main"><strong>' . TEXT_SELECTED_PRODUCTS . '</strong><br />' . tep_draw_pull_down_menu('chosen[]', $current_products_array, '', 'size="20" style="width: 25em;" multiple') . '</td>' . "\n" .
                                 '  </tr>' . "\n" .
                                 '</table>';

      return $choose_products_string;
    }
    
    function productInfo(){
        global $languages_id;
        $this->productInfo = array();
        $p_string = '';
        for($i=0, $n=sizeof($this->products); $i<$n; $i++){
            $p_string .= $this->products[$i] . ', ';
        }
        $p_string = trim($p_string, ', ');
        
        $product_query = tep_db_query("select p.products_id, pd.products_name, p.products_image, p.products_price, p.products_tax_class_id, if(s.status, s.specials_new_products_price, NULL) as specials_price from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_DESCRIPTION . " pd left join (select * from (select products_id, specials_new_products_price, expires_date, status from " . TABLE_SPECIALS . " where status = 1 order by products_id, specials_new_products_price, expires_date) as t group by products_id) as s on pd.products_id = s.products_id where pd.products_id = p.products_id and p.products_id in(" . $p_string . ") and pd.language_id=" . (int)$languages_id . " order by products_name");
        
        //$this->productsInfo = array();
        while($product = tep_db_fetch_array($product_query)){
            $this->productsInfo[] = array('products_id' => $product['products_id'],
                                          'products_name' => $product['products_name'],
                                          'products_image' => $product['products_image'],
                                          'products_price' => $product['products_price'],
                                          'specials_price' => $product['specials_price'],
                                          'products_tax_class_id' => $product['products_tax_class_id']);
        }
    }    

    function html_content() {    
        global $currencies, $languages_id;        
        //create HTML string containing links & pics
        
        //define product columns here
        define('COLS', 2);
        $width = intval(100/COLS);
        $html_content = '<table border="0" width="100%" cellpadding="" cellspacing="3"><tr>';
        
        $col = 0;        
        $this->productInfo();
        
        //change html body styles here
        $cssPrice = 'color: #000000;';
        $cssSale = 'color: #ff0000;';
        $cssMarkdown = 'color: #000000; text-decoration: line-through';
        $cssLink = 'color: #ff0000; text-decoration: none';
        
        for ($i=0, $n=sizeof($this->productsInfo); $i<$n; $i++) {
            if ($col > COLS-1) {
                $html_content .= '</tr><tr><td align="center" width="' . $width . '%"><a href="' . tep_catalog_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $this->productsInfo[$i]['products_id']) . '" target="_blank" style="' . $cssLink . '">' . tep_image(HTTP_CATALOG_SERVER . DIR_WS_CATALOG_IMAGES . $this->productsInfo[$i]['products_image'], $this->productsInfo[$i]['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '<br />' . $this->productsInfo[$i]['products_name'] . '</a><br />';
                $price = ($this->productsInfo[$i]['specials_price']) ? '<span style="'. $cssMarkdown . '">' . $currencies->display_price($this->productsInfo[$i]['products_price'], tep_get_tax_rate($this->productsInfo[$i]['products_tax_class_id'])) . '</span>&nbsp;&nbsp;<span style="' . $cssSale . '">' . $currencies->display_price($this->productsInfo[$i]['specials_price'], tep_get_tax_rate($this->productsInfo[$i]['products_tax_class_id'])) . '</span>' : '<span style="' . $cssPrice . '">' . $currencies->display_price($this->productsInfo[$i]['products_price'], tep_get_tax_rate($this->productsInfo[$i]['products_tax_class_id'])) . '</span>';
                $html_content .= $price . '</td>';
                $col = 0;
            } else {
                $html_content .= '<td align="center" width="' . $width . '%"><a href="' . tep_catalog_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $this->productsInfo[$i]['products_id']) . '" target="_blank" style="' . $cssLink . '">' . tep_image(HTTP_CATALOG_SERVER . DIR_WS_CATALOG_IMAGES . $this->productsInfo[$i]['products_image'], $this->productsInfo[$i]['products_name'], SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT) . '<br />' . $this->productsInfo[$i]['products_name'] . '</a><br />';
                $price = ($this->productsInfo[$i]['specials_price']) ? '<span style="' . $cssMarkdown . '">' . $currencies->display_price($this->productsInfo[$i]['products_price'], tep_get_tax_rate($this->productsInfo[$i]['products_tax_class_id'])) . '</span>&nbsp;&nbsp;<span style="' . $cssSale . '">' . $currencies->display_price($this->productsInfo[$i]['specials_price'], tep_get_tax_rate($this->productsInfo[$i]['products_tax_class_id'])) . '</span>' : '<span style="' . $cssPrice . '">' . $currencies->display_price($this->productsInfo[$i]['products_price'], tep_get_tax_rate($this->productsInfo[$i]['products_tax_class_id'])) . '</span>';
                $html_content .= $price . '</td>';
            }
            $col++;
        }
        
        //uncomment & create your unsubscribe link in your includes/languages/YOUR LANGUAGE/modules/newsletters/newsletter_products.php
        $html_content .= '</tr><tr><td colspan="' . COLS . '">' . TEXT_UNSUBSCRIBE . '</td></tr></table>';
        
        if(tep_not_null($this->template)){
            //HTML page from template
            //$content = join('', file(DIR_WS_TEMPLATES . $this->template));
            $content = file_get_contents(DIR_WS_TEMPLATES . $this->template);
            //remove all line breaks and spaces in template to ensure no spaces resulting from email class
            $content = str_replace("\n", '', $content);
            $content = str_replace("\r", '', $content);
            //$content = str_replace('> ', '>', $content);
            $content = addslashes($content);
            $email_title = $this->title;
            $email_message = nl2br($this->content);
            $text_content = $this->content;
            eval ("\$content = \"$content\";");
            $html_content = $content;
        }
        
        return $html_content;
    }
    
    function text_content(){
        global $currencies, $languages_id;
    
        $text_content = $this->content . "\r\n\r\n";

        //var_dump($this->productsInfo);
        for($i=0, $n=sizeof($this->productsInfo); $i<$n; $i++){
            $text_content .= $this->productsInfo[$i]['products_name'] . ' ';
            $price = ($this->productsInfo[$i]['specials_price']) ? 'Sale Price: ' . $currencies->display_price($this->productsInfo[$i]['specials_price'], tep_get_tax_rate($this->productsInfo[$i]['products_tax_class_id'])) . ' Down from: ' . $currencies->display_price($this->productsInfo[$i]['products_price'], tep_get_tax_rate($this->productsInfo[$i]['products_tax_class_id'])) : $currencies->display_price($this->productsInfo[$i]['products_price'], tep_get_tax_rate($this->productsInfo[$i]['products_tax_class_id']));
            $text_content .= $price . "\n";
            $text_content .= tep_catalog_href_link(FILENAME_PRODUCT_INFO, 'products_id=' . $this->productsInfo[$i]['products_id']) . "\r\r";
        }
        
        //uncomment & create your unsubscribe link in your includes/languages/YOUR LANGUAGE/modules/newsletters/newsletter_products.php
        $text_content .= "\r\r" . TEXT_UNSUBSCRIBE;
        
        return strip_tags(str_replace(array('<p>', '</p>', '<br>', '<br />', '<br/>', '<ul>', '<li>', '</ul>'), "\n", $text_content));
    }
    
    function confirm() {
      global $HTTP_GET_VARS;

      $mail_query = tep_db_query("select count(*) as count from " . TABLE_CUSTOMERS . " where customers_newsletter = '1'");
      $mail = tep_db_fetch_array($mail_query);

      $confirm_string = '<table border="0" cellspacing="0" cellpadding="2">' . "\n" .
                        '  <tr>' . "\n" .
                        '    <td class="main" style="font-weight: bold; color: red">' . sprintf(TEXT_COUNT_CUSTOMERS, $mail['count']) . '</td>' . "\n" .
                        '  </tr>' . "\n" .
                        '  <tr>' . "\n" .
                        '    <td>' . tep_draw_separator('pixel_trans.gif', '1', '10') . '</td>' . "\n" .
                        '  </tr>' . "\n" .
                        '  <tr>' . "\n" .
                        '    <td class="main" style="font-weight: bold">' . $this->title . '</td>' . "\n" .
                        '  </tr>' . "\n" .
                        '  <tr>' . "\n" .
                        '    <td>' . tep_draw_separator('pixel_trans.gif', '1', '10') . '</td>' . "\n" .
                        '  </tr>' . "\n" .
                          '  <tr>' . "\n" .
                        '    <td class="main">' . $this->text_content() . '</td>' . "\n" .
                        '  </tr>' . "\n" .
                        '  <tr>' . "\n" .
                        '    <td>' . tep_draw_separator('pixel_trans.gif', '1', '10') . '</td>' . "\n" .
                        '  </tr>' . "\n" .
                        '  <tr>' . "\n" .
                        '    <td class="main">' . $this->html_content() . '</td>' . "\n" .
                        '  </tr>' . "\n" .
                        '  <tr>' . "\n" .
                        '    <td>' . tep_draw_separator('pixel_trans.gif', '1', '10') . '</td>' . "\n" .
                        '  </tr>' . "\n" .
                        '  <tr>' . "\n" .
                        '    <td class="smallText" align="right">' . tep_draw_button(IMAGE_SEND, 'mail-closed', tep_href_link(FILENAME_NEWSLETTERS, 'page=' . $HTTP_GET_VARS['page'] . '&nID=' . $HTTP_GET_VARS['nID'] . '&action=confirm_send'), 'primary') . tep_draw_button(IMAGE_CANCEL, 'close', tep_href_link(FILENAME_NEWSLETTERS, 'page=' . $HTTP_GET_VARS['page'] . '&nID=' . $HTTP_GET_VARS['nID'])) . '</td>' . "\n" .
                        '  </tr>' . "\n" .
                        '</table>';

      return $confirm_string;
    }
    
    function send($newsletter_id) {
      $mail_query = tep_db_query("select customers_firstname, customers_lastname, customers_email_address from " . TABLE_CUSTOMERS . " where customers_newsletter = '1'");
      //create id for current mailing
      $messageId = "Message-Id: <" . time() . "@" . $_SERVER['SERVER_NAME'] . ">";
      
      $mimemessage = new email(array('X-Mailer: osCommerce bulk mailer', $messageId));
      
      //$mimemessage->add_text($this->content);
      //$text = $this->text_content();
      
      $mimemessage->add_html($this->html_content(), $this->text_content(), HTTP_CATALOG_SERVER . DIR_WS_CATALOG_IMAGES);
      $mimemessage->build_message();

      while ($mail = tep_db_fetch_array($mail_query)) {
       $mimemessage->send($mail['customers_firstname'] . ' ' . $mail['customers_lastname'], $mail['customers_email_address'], '', EMAIL_FROM, $this->title, 'Return-Path: ' . EMAIL_FROM);
      }

      $newsletter_id = tep_db_prepare_input($newsletter_id);
      tep_db_query("update " . TABLE_NEWSLETTERS . " set date_sent = now(), status = '1' where newsletters_id = '" . tep_db_input($newsletter_id) . "'");
    }
  }
?>
 

Link to comment
Share on other sites

  • 8 months later...

Hallo Yepi,

vielen Dank für den Code! :)

Bei der newsletter_products.php soll ein Link [YOUR_UNSUBSCRIBE_LINK] für das Abmelden des Newsletter eingefügt werden. 

Quote

define('TEXT_UNSUBSCRIBE', 'Hinweis: Sie erhalten diese E-Mail, weil Sie bei unsererm Shop ein Profil erstellt haben und angegeben haben, dass Sie unseren Newsletter abonnieren möchten. Wenn Sie solche E-Mails nicht mehr erhalten möchten, melden Sie sich einfach bei Ihrem Konto unter <a href="'. HTTPS_CATALOG_SERVER . DIR_WS_CATALOG . 'account_newsletters.php'/*. YOUR_UNSUBSCRIBE_LINK*/ .'" target="_blank">'. HTTPS_CATALOG_SERVER . DIR_WS_CATALOG . 'account_newsletters.php'/*. YOUR_UNSUBSCRIBE_LINK*/ .'</a> an. Dort deaktivieren Sie das Kontrollkästchen für Allgemeiner Newsletter und klicken auf die Weiter-Schaltfläche.');

Was muss da rein?

Sonnige Grüße aus Zweibrücken,

Frank

Link to comment
Share on other sites

Leider funktioniert der Rest auch nicht ganz.

Bei view_newsletter.php wird folgender Fehler angezeigt:

Warning: include(admin/includes/modules/newsletters/newsletter_products.php): failed to open stream: No such file or directory in /homepages/XXXXXXX/htdocs/catalog/view_newsletter.php on line 44

Warning: include(): Failed opening 'admin/includes/modules/newsletters/newsletter_products.php' for inclusion (include_path='.:/usr/lib/php5.6') in /homepages/XXXXXXX/htdocs/catalog/view_newsletter.php on line 44

Warning: include(admin/includes/languages/english/modules/newsletters/newsletter_products.php): failed to open stream: No such file or directory in /homepages/XXXXXXXX/htdocs/catalog/view_newsletter.php on line 45

Warning: include(): Failed opening 'admin/includes/languages/english/modules/newsletters/newsletter_products.php' for inclusion (include_path='.:/usr/lib/php5.6') in /homepages/XXXXXXX/htdocs/catalog/view_newsletter.php on line 45

Link to comment
Share on other sites

Hi Yepi,

habe jetzt schon fast alles getauscht aber es will nicht funktionieren. :-/

Die o.a. Fehlermeldung bleibt bei der view_newsletter.php 

Funktioniert bei Dir jetzt alles? Wie sieht Deine view_newsletter.php aus?

<?php
/*
  $Id$ view_newsletter version 1.1 2018-04-12

  osCommerce, Open Source E-Commerce Solutions
  http://www.oscommerce.com

  Copyright (c) 2010 osCommerce

  Released under the GNU General Public License
*/

  require('includes/application_top.php');

  require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_VIEWNEWS);

  $breadcrumb->add(NAVBAR_TITLE, tep_href_link(FILENAME_VIEWNEWS));

  require(DIR_WS_INCLUDES . 'template_top.php');
	define('HTTPS_CATALOG_SERVER', HTTPS_SERVER);
  define('DIR_WS_TEMPLATES', 'admin/templates/');
	function tep_catalog_href_link($page = '', $parameters = '', $connection = 'NONSSL') {
		return tep_href_link($page, $parameters, $connection);
	}
?>

<h1><?php echo HEADING_TITLE; ?></h1>

<div class="contentContainer">
  <div class="contentText">
<?php
  $news_products = array();
  $nID = (isset($HTTP_GET_VARS['nID']) ? tep_db_prepare_input($HTTP_GET_VARS['nID']) : 0);
  //newsletter products
  $newsletter_query = tep_db_query("select title, content, module, template from " . TABLE_NEWSLETTERS . " where newsletters_id = '" . (int)$nID . "'");
	if (tep_db_num_rows($newsletter_query) == 1) {
    $newsletter = tep_db_fetch_array($newsletter_query);
    $newsletter_products_query = tep_db_query("select products_id from " . TABLE_NEWSLETTERS_TO_PRODUCTS . " where newsletters_id = '" . (int)$nID . "'");
    while ($newsletter_products = tep_db_fetch_array($newsletter_products_query)) {
	    $news_products[] = $newsletter_products['products_id'];
    }      
    $newsletter['products'] = $news_products;
	  if ($newsletter['module'] == 'newsletter_products') {
		  include('admin/includes/modules/newsletters/newsletter_products.php');
      include('admin/includes/languages/english/modules/newsletters/newsletter_products.php');
      echo '<iframe width="100%" height="800" src="' . tep_href_link('shownews.php', 'nID=' . $nID) . '"></iframe>';
	  } else {
      echo nl2br($newsletter['content']);
	  }    
	  //end newsletter products
	} else {
		echo TEXT_NOT_FOUND;
	}
	echo "\n";
?>
  </div>
  <div class="buttonSet">
    <span class="buttonAction"><?php echo tep_draw_button(IMAGE_BUTTON_CONTINUE, 'triangle-1-e', tep_href_link(FILENAME_DEFAULT)); ?></span>
  </div>
</div>

<?php
  require(DIR_WS_INCLUDES . 'template_bottom.php');
  require(DIR_WS_INCLUDES . 'application_bottom.php');
?>

Fehleranzeige:

Warning: include(admin/includes/modules/newsletters/newsletter_products.php): failed to open stream: No such file or directory in /homepages/XXXXXXX/htdocs/catalog/view_newsletter.php on line 44

Warning: include(): Failed opening 'admin/includes/modules/newsletters/newsletter_products.php' for inclusion (include_path='.:/usr/lib/php5.6') in /homepages/XXXXXXX/htdocs/catalog/view_newsletter.php on line 44

Warning: include(admin/includes/languages/english/modules/newsletters/newsletter_products.php): failed to open stream: No such file or directory in /homepages/XXXXXXX/htdocs/catalog/view_newsletter.php on line 45

Warning: include(): Failed opening 'admin/includes/languages/english/modules/newsletters/newsletter_products.php' for inclusion (include_path='.:/usr/lib/php5.6') in /homepages/XXXXXXX/htdocs/catalog/view_newsletter.php on line 45

 

Warning: include(admin/includes/modules/newsletters/newsletter_products.php): failed to open stream: No such file or directory in /homepages/XXXXXXX/htdocs/catalog/shownews.php on line 35

Warning: include(): Failed opening 'admin/includes/modules/newsletters/newsletter_products.php' for inclusion (include_path='.:/usr/lib/php5.6') in /homepages/XXXXXXX/htdocs/catalog/shownews.php on line 35

Warning: include(admin/includes/languages/english/modules/newsletters/newsletter_products.php): failed to open stream: No such file or directory in /homepages/XXXXXXX/htdocs/catalog/shownews.php on line 36

Warning: include(): Failed opening 'admin/includes/languages/english/modules/newsletters/newsletter_products.php' for inclusion (include_path='.:/usr/lib/php5.6') in /homepages/XXXXXXX/htdocs/catalog/shownews.php on line 36

Fatal error: Class 'newsletter_products' not found in /homepages/XXXXXXX/htdocs/catalog/shownews.php on line 37

 

Im englischen Forum habe ich gelesen dass folgendes der configure.php hinzufügt werden soll? Allerdings steht in der "Install-Anleitung" nix davon?

Quote

define('DIR_WS_CATALOG_IMAGES_O', DIR_WS_CATALOG .'images/');
define('HTTP_CATALOG_SERVER_EMAIL', 'http://www.myweb.com/');
define('DIR_WS_CATALOG_IMAGES_EMAIL', 'images/');

Wie hast du das gemacht?

Beste Grüße,

Frank

Edited by X-Men
Link to comment
Share on other sites

Das ist meine:

<?php
/*
  $Id$

  osCommerce, Open Source E-Commerce Solutions
  http://www.oscommerce.com

  Copyright (c) 2010 osCommerce

  Released under the GNU General Public License
*/

  require('includes/application_top.php');

  require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_VIEWNEWS);

  $breadcrumb->add(NAVBAR_TITLE, tep_href_link(FILENAME_VIEWNEWS));

  require(DIR_WS_INCLUDES . 'template_top.php');
?>

<h1><?php echo HEADING_TITLE; ?></h1>

<div class="contentContainer">
  <div class="contentText">
    <?php
  $nID = (isset($HTTP_GET_VARS['nID']) ? tep_db_prepare_input($HTTP_GET_VARS['nID']) : 0);
  //newsletter products
  $newsletter_query = tep_db_query("select title, content, module, template from " . TABLE_NEWSLETTERS . " where newsletters_id = '" . (int)$nID . "'");
	if (tep_db_num_rows($newsletter_query) == 1) {
    $newsletter = tep_db_fetch_array($newsletter_query);
    $newsletter_products_query = tep_db_query("select products_id from " . TABLE_NEWSLETTERS_TO_PRODUCTS . " where newsletters_id = '" . (int)$nID . "'");
    while ($newsletter_products = tep_db_fetch_array($newsletter_products_query)) {
	    $news_products[] = $newsletter_products['products_id'];
    }      
    $newsletter['products'] = $news_products;
	  if ($newsletter['module'] == 'newsletter_products') {
//	  include('catalog/admin/includes/modules/newsletters/newsletter_products.php');
	  include(DIR_FS_CATALOG . 'admin/includes/modules/newsletters/newsletter_products.php');
      include(DIR_FS_CATALOG . 'admin/includes/languages/english/modules/newsletters/newsletter_products.php');
      $module = new newsletter_products($newsletter['title'], $newsletter['content'], $newsletter['products'], $newsletter['template']);
      echo $module->html_content();
	  } else {
      echo nl2br($newsletter['content']);
	  }    
	  //end newsletter products
	} else {
		echo TEXT_NOT_FOUND;
	}
	echo "\n";
		?>
  </div>

  <div class="buttonSet">
    <span class="buttonAction"><?php echo tep_draw_button(IMAGE_BUTTON_CONTINUE, 'triangle-1-e', tep_href_link(FILENAME_DEFAULT)); ?></span>
  </div>
</div>

<?php
  require(DIR_WS_INCLUDES . 'template_bottom.php');
  require(DIR_WS_INCLUDES . 'application_bottom.php');
?>

 

Link to comment
Share on other sites

Danke für das posten deiner Datei.

Leider klappt es aber auch damit nicht. 

Die Fehlermeldungen haben sich nur etwas verändert.

Quote

Warning: include(/homepages/XXXXXXX/htdocs/catalog/admin/includes/modules/newsletters/newsletter_products.php): failed to open stream: No such file or directory in /homepages/XXXXXXX/htdocs/catalog/view_newsletter.php on line 39

Warning: include(): Failed opening '/homepages/XXXXXXX/htdocs/catalog/admin/includes/modules/newsletters/newsletter_products.php' for inclusion (include_path='.:/usr/lib/php5.6') in /homepages/XXXXXXX/htdocs/catalog/view_newsletter.php on line 39

Warning: include(/homepages/XXXXXXX/htdocs/catalog/admin/includes/languages/english/modules/newsletters/newsletter_products.php): failed to open stream: No such file or directory in /homepages/XXXXXXX/htdocs/catalog/view_newsletter.php on line 40

Warning: include(): Failed opening '/homepages/XXXXXXX/htdocs/catalog/admin/includes/languages/english/modules/newsletters/newsletter_products.php' for inclusion (include_path='.:/usr/lib/php5.6') in /homepages/XXXXXXXhtdocs/catalog/view_newsletter.php on line 40

Fatal error: Class 'newsletter_products' not found in /homepages/XXXXXXX/htdocs/catalog/view_newsletter.php on line 41

 

Link to comment
Share on other sites

Ich hab mir das angeschaut, da es allerdings aus der alten Software von mir stammt nutze ich es nicht mehr.
Soweit ich aber sehen konnte habe ich die Mail umgebaut, so, dass ich den Link zum Newsletter rausgenommen habe da die Ansicht der Produkt Newsletter nicht funktioniert hat. Die Textnewstetter waren OK doch alles andere hat nur Fehler bei der Anzeige im Shop gebracht. 

Link to comment
Share on other sites

Warning: include(/homepages/XXXXXXX/htdocs/catalog/admin/includes/modules/newsletters/newsletter_products.php): failed to open stream: No such file or directory in /homepages/XXXXXXX/htdocs/catalog/view_newsletter.php on line 39

 

Diese Meldung sagt aus, dass eine Datei nicht vorhanden ist, bzw der Pfad nicht richtig ist.

Schau genauer ob alles auf dem Server geladen ist und ob der Pfad zu der "newsletter_products.php" richtig gesetzt ist.

Die andere Sache ist die ob deine php Version diesen Code unterstützt

Edited by Yepi
Link to comment
Share on other sites

define('TEXT_UNSUBSCRIBE', 'Hinweis: Sie erhalten diese E-Mail, weil Sie bei unsererm Shop ein Profil erstellt haben und angegeben haben, dass Sie unseren Newsletter abonnieren möchten. Wenn Sie solche E-Mails nicht mehr erhalten möchten, melden Sie sich einfach bei Ihrem Konto unter <a href="'. HTTPS_CATALOG_SERVER . DIR_WS_CATALOG . 'account_newsletters.php'/*. YOUR_UNSUBSCRIBE_LINK*/ .'" target="_blank">'. HTTPS_CATALOG_SERVER . DIR_WS_CATALOG . 'account_newsletters.php'/*. YOUR_UNSUBSCRIBE_LINK*/ .'</a> an. Dort deaktivieren Sie das Kontrollkästchen für Allgemeiner Newsletter und klicken auf die Weiter-Schaltfläche.');

austauschen gegen

define('TEXT_UNSUBSCRIBE', 'Hinweis: Sie erhalten diese E-Mail, weil Sie bei unsererm Shop ein Profil erstellt haben und angegeben haben, dass Sie unseren Newsletter abonnieren möchten. Wenn Sie solche E-Mails nicht mehr erhalten möchten, melden Sie sich einfach bei Ihrem Konto unter <a href="'. HTTPS_CATALOG_SERVER . DIR_WS_CATALOG . 'account_newsletters.php' . YOUR_UNSUBSCRIBE_LINK .'" target="_blank">'. HTTPS_CATALOG_SERVER . DIR_WS_CATALOG . 'account_newsletters.php' . YOUR_UNSUBSCRIBE_LINK .'</a> an. Dort deaktivieren Sie das Kontrollkästchen für Allgemeiner Newsletter und klicken auf die Weiter-Schaltfläche.');

define('YOUR_UNSUBSCRIBE_LINK', 'Newsletter abbestellen');

 

Link to comment
Share on other sites

Hallo und vielen Dank für Eure Antworten.

Hier mal die Daten zu meinem Shop:

Version: osCommerce Online Merchant v2.3.4

Server OS(Betriebssystem):

Linux 3.16.0-ui18135.21-uiabi1-infong-amd64

     Datenbank:

MySQL 5.5.60-0+deb7u1-log

Server Datum:

2018-06-07 14:35:37 +0200 CEST

     Datenbank Datum:

2018-06-07 14:35:37

 

 

 

HTTP Server:

Apache

PHP Version:

5.6.36 (Zend: 2.6.0)

 

Leider habe ich von der Materie keine Ahnung, ich kann lediglich nach Anweisung Modifikationen installieren.

Ich habe alle Dateien mehrfach geprüft und auch alles an die richtige Stelle kopiert.

Wie soll der Pfad aussehen bzw. wo finde ich das in einer Datei. Wo wird das definiert. Könnt ihr mir bitte ein Bespiel geben?

Gerne kann ich auch hier eine Datei posten, hochladen.

Gruß, Frank

Link to comment
Share on other sites

<?php
/*
  $Id$

  osCommerce, Open Source E-Commerce Solutions
  http://www.oscommerce.com

  Copyright (c) 2010 osCommerce

  Released under the GNU General Public License
*/

  require('includes/application_top.php');

  require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_VIEWNEWS);

  $breadcrumb->add(NAVBAR_TITLE, tep_href_link(FILENAME_VIEWNEWS));

  require(DIR_WS_INCLUDES . 'template_top.php');
?>

<h1><?php echo HEADING_TITLE; ?></h1>

<div class="contentContainer">
  <div class="contentText">
    <?php
  $nID = (isset($HTTP_GET_VARS['nID']) ? tep_db_prepare_input($HTTP_GET_VARS['nID']) : 0);
  //newsletter products
  $newsletter_query = tep_db_query("select title, content, module, template from " . TABLE_NEWSLETTERS . " where newsletters_id = '" . (int)$nID . "'");
	if (tep_db_num_rows($newsletter_query) == 1) {
    $newsletter = tep_db_fetch_array($newsletter_query);
    $newsletter_products_query = tep_db_query("select products_id from " . TABLE_NEWSLETTERS_TO_PRODUCTS . " where newsletters_id = '" . (int)$nID . "'");
    while ($newsletter_products = tep_db_fetch_array($newsletter_products_query)) {
	    $news_products[] = $newsletter_products['products_id'];
    }      
    $newsletter['products'] = $news_products;
	  if ($newsletter['module'] == 'newsletter_products') {
//	  include('catalog/admin/includes/modules/newsletters/newsletter_products.php');
	  include(DIR_FS_CATALOG . 'admin/includes/modules/newsletters/newsletter_products.php');
      include(DIR_FS_CATALOG . 'admin/includes/languages/english/modules/newsletters/newsletter_products.php');
      $module = new newsletter_products($newsletter['title'], $newsletter['content'], $newsletter['products'], $newsletter['template']);
      echo $module->html_content();
	  } else {
      echo nl2br($newsletter['content']);
	  }    
	  //end newsletter products
	} else {
		echo TEXT_NOT_FOUND;
	}
	echo "\n";
		?>
  </div>

  <div class="buttonSet">
    <span class="buttonAction"><?php echo tep_draw_button(IMAGE_BUTTON_CONTINUE, 'triangle-1-e', tep_href_link(FILENAME_DEFAULT)); ?></span>
  </div>
</div>

<?php
  require(DIR_WS_INCLUDES . 'template_bottom.php');
  require(DIR_WS_INCLUDES . 'application_bottom.php');
?>

Versuchs mal damit

Link to comment
Share on other sites

Leider nein ...

Folgende Fehlermeldung wird angezeigt:

Quote

Warning: include(/homepages/XXXXXXX/htdocs/catalog/admin/includes/modules/newsletters/newsletter_products.php): failed to open stream: No such file or directory in /homepages/XXXXXXX/htdocs/catalog/view_newsletter.php on line 39

Warning: include(): Failed opening '/homepages/XXXXXXX/htdocs/catalog/admin/includes/modules/newsletters/newsletter_products.php' for inclusion (include_path='.:/usr/lib/php5.6') in /homepages/XXXXXXX/htdocs/catalog/view_newsletter.php on line 39

Warning: include(/homepages/XXXXXXX/htdocs/catalog/admin/includes/languages/english/modules/newsletters/newsletter_products.php): failed to open stream: No such file or directory in /homepages/XXXXXXX/htdocs/catalog/view_newsletter.php on line 40

Warning: include(): Failed opening '/homepages/XXXXXXX/htdocs/catalog/admin/includes/languages/english/modules/newsletters/newsletter_products.php' for inclusion (include_path='.:/usr/lib/php5.6') in /homepages/XXXXXXX/htdocs/catalog/view_newsletter.php on line 40

Fatal error: Class 'newsletter_products' not found in /homepages/XXXXXXX/htdocs/catalog/view_newsletter.php on line 41

Kann es auch an der shownews.php liegen? Ich habe es so verstanden dass die dann in einen iframe angezeigt wird .....bin mir aber nicht sicher da ich die Modifikation nicht kenne und diese auch nicht funktioniert?

<?php
/*
  $Id$ shownews version 1.0 2018-04-12

  osCommerce, Open Source E-Commerce Solutions
  http://www.oscommerce.com

  Copyright (c) 2010 osCommerce

  Released under the GNU General Public License
	
	Used to show a newsletter products newsletter which is expected to be an HTML document in and of itself
	within an iframe in the View Newsletter page.
*/

  require('includes/application_top.php');

	define('HTTPS_CATALOG_SERVER', HTTPS_SERVER);
  define('DIR_WS_TEMPLATES', 'admin/templates/');
	function tep_catalog_href_link($page = '', $parameters = '', $connection = 'NONSSL') {
		return tep_href_link($page, $parameters, $connection);
	}
  $nID = (isset($HTTP_GET_VARS['nID']) ? tep_db_prepare_input($HTTP_GET_VARS['nID']) : 0);
  //newsletter products
  $news_products = array();
  $newsletter_query = tep_db_query("select title, content, module, template from " . TABLE_NEWSLETTERS . " where newsletters_id = '" . (int)$nID . "'");
	if (tep_db_num_rows($newsletter_query) == 1) {
    $newsletter = tep_db_fetch_array($newsletter_query);
    $newsletter_products_query = tep_db_query("select products_id from " . TABLE_NEWSLETTERS_TO_PRODUCTS . " where newsletters_id = '" . (int)$nID . "'");
    while ($newsletter_products = tep_db_fetch_array($newsletter_products_query)) {
	    $news_products[] = $newsletter_products['products_id'];
    }      
    $newsletter['products'] = $news_products;
	  if ($newsletter['module'] == 'newsletter_products') {
	  include('admin/includes/modules/newsletters/newsletter_products.php');
      include('admin/includes/languages/english/modules/newsletters/newsletter_products.php');
      $module = new newsletter_products($newsletter['title'], $newsletter['content'], $newsletter['products'], $newsletter['template']);
      echo $module->html_content();
	  } else {
      echo nl2br($newsletter['content']);
	  }    
	  //end newsletter products
	} else {
		echo TEXT_NOT_FOUND;
	}
	echo "\n";
  require(DIR_WS_INCLUDES . 'application_bottom.php');
?>

In der Original view_newsletter.php

      echo '<iframe width="100%" height="800" src="' . tep_href_link('shownews.php', 'nID=' . $nID) . '"></iframe>';

 

Edited by X-Men
Link to comment
Share on other sites

Wie gesagt, die sprachdatei zieht er aus dem englischem laut Pfad

/admin/includes/languages/english/modules/newsletters/newsletter_products.

hier der ganzer Pfad:

include(DIR_FS_CATALOG . 'admin/includes/languages/english/modules/newsletters/newsletter_products.php');

 

und hie deiner:
 

include('admin/includes/languages/english/modules/newsletters/newsletter_products.php');

 

Schau mal in deiner configure.php

Edited by Yepi
Link to comment
Share on other sites

Also in der admin/includes/configure.php sind zur Sprache folgende Einträge:

  define('DIR_WS_LANGUAGES', DIR_WS_INCLUDES . 'languages/');
  define('DIR_WS_CATALOG_LANGUAGES', DIR_WS_CATALOG . 'includes/languages/');
  define('DIR_FS_CATALOG_LANGUAGES', DIR_FS_CATALOG . 'includes/languages/');

 

Und in der catalog/includes/configure.php :

define('DIR_WS_LANGUAGES', DIR_WS_INCLUDES . 'languages/');

 

Link to comment
Share on other sites

 Nun, selbst wenn ich den Pfad in der Datei ändere bzw. Deine Datei hochlade bleibt die Fehlermeldung.

Ob

  include(DIR_FS_CATALOG . 'admin/includes/languages/english/modules/newsletters/newsletter_products.php');

oder

  include('admin/includes/languages/english/modules/newsletters/newsletter_products.php');

In der configure.php steht:

define('DIR_FS_CATALOG_LANGUAGES', DIR_FS_CATALOG . 'includes/languages/');

Was könnte ich noch ändern? bzw. ausprobieren?

Edited by X-Men
Link to comment
Share on other sites

Möchte noch etwas hinzufügen.

Die Fehlermeldungen werden nur angezeigt wenn ich einen vorhandenen Newsletter aufrufe.

Also z.B. view_newsletter.php?nID=16

Wenn ich nur die view_newsletter.php aufrufe ist die Anzeige korrekt und es wird die Meldung  "Es wurde kein Newsletter gefunden." angezeigt.

So müsste der Fehler ja zum Pfad des erstellten Newsletter (nID=16) liegen.

Im Adminbereich wird der Newsletter (nID=16) korrekt angezeigt, nur eben nicht im Shop

 

Link to comment
Share on other sites

×
×
  • Create New...