Extras - Newsletter: Modul Newsletter-Archiv (V4.6,Alpha)

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Extras - Newsletter: Modul Newsletter-Archiv (V4.6,Alpha)

Beitrag von HerrB » Mi 15. Dez 2004, 15:22

Als Basis für eigene Versuche findet ihr anbei den Modul-Code für ein Newsletter-Archiv.

Das Modul zeigt eine Liste der verfügbaren Newsletter und bei Klick auf einen Newsletter den ganzen Newsletter an.

Das Ganze ist sehr Alpha und ich habe leider kaum Zeit für Unterstützung, ich bitte um Nachsicht (und Eigenaktivität).

Außerdem bestehen folgende Haken:
- Das Modul ist NUR für Contenido V4.6 nutzbar
- Nein, die Version ist nicht nutzbar, wenn Contenido in V4.4.x oder V4.5.x verwendet wird.
- Es zeigt alle Newsletter, mit Ausnahme des Welcome-Newsletters. D.h., wird ein Newsletter erzeugt, ist dieser über das Modul bzw. die Seite mit dem Modul sichtbar (auch wenn der Newsletter noch nicht versendet wurde)! Dieses Problem könnte man ggf. mit einer Kennung im Namen umgehen (hier noch nicht realisiert).
- Der Code ist sehr einfach gestrickt. Alle Angaben werden in Zeilen, von <br> getrennt, ausgegeben - da muss man selbst Hand anlegen.
- Ein Trenntext muss angegeben werden, sonst tritt eine Fehlermeldung mit Bezug auf strpos auf.
- Wird ein Newsletter in der Übersicht angeklickt, wird der Newsletter auf der gleichen Seite angezeigt
- Das Ganze wurde z.Z. nur mit dem aktuellen Snapshot getestet, z.Z. auch noch nicht mit der V4.6 Final - ihr seid also Versuchskaninchen einer Bananen-Software (reift beim Kunden...). Sorry.

Konfiguration:
- Die Anzahl Zeichen begrenzt den Auszug aus dem Newsletter in der Übersicht (0 = alles zeigen)

- Der Trenntext ermöglicht es, einen Bereich mit MAIL_STOP usw. abzutrennen. Dazu wird das ERSTE Vorkommen des Trenntextes im Newsletter gesucht und der Text AB DORT IGNORIERT (abgeschnitten). Nach dem Trennzeichen darf also nix relevantes mehr stehen (oder man setzt den Text auf eine Kombination, die nicht im Newsletter vorkommt - dann muss man halt mit MAIL_STOP usw. leben).

Beschreibung:

Code: Alles auswählen

Shows a newsletter archive (list) and the newsletter in detail

Author: HerrB
Version: 0.2
Eingabe/Input:

Code: Alles auswählen

if (!$chars)
   $chars = 0;

echo "<table cellspacing=\"0\" cellpadding=\"10\" border=\"0\">
        <tr valign=\"top\">
          <td>Angezeigte Zeichen (0 = alles):</td>
          <td><input type=\"text\" name=\"CMS_VAR[0]\" value=\"" . $chars . "\"></td>
        </tr>
        <tr valign=\"top\">
          <td>Trenntext:</td>
          <td><input type=\"text\" name=\"CMS_VAR[1]\" value=\"CMS_VALUE[1]\"></td>
        </tr>
      </table>";
Ausgabe/Output:

Code: Alles auswählen

<?php 
   cInclude("classes", "class.newsletter.php");
   $chars = "CMS_VALUE[0]";
   $cut = "CMS_VALUE[1]";

   $newsletters = New NewsletterCollection;

   if (is_numeric($idnews) && $idnews > 0)
   {
      $newsletters->select("idclient='$client' AND idlang='$lang' AND idnews=" . $idnews);

      if ($newsletter = $newsletters->next())
      {
         // Getting all date for your convenience, currently only $news_id, $news_subject and $news_message are used
         $news_id = $newsletter->get("idnews");
         $news_subject = $newsletter->get("subject");
         $news_message = $newsletter->get("message");
         $news_name = $newsletter->get("name");
         $news_newsfrom = $newsletter->get("newsfrom");
         $news_newsdate = $newsletter->get("newsdate");
         $news_author = $newsletter->get("author");
         $news_created = $newsletter->get("created");
         $news_lastmodified = $newsletter->get("lastmodified");

         // Cleaning $message
         $news_message = str_replace("MAIL_NAME", "", $news_message);
         $news_message = str_replace("MAIL_NUMBER", "", $news_message);
         $news_message = str_replace("MAIL_DATE", "", $news_message);
         $news_message = str_replace("MAIL_TIME", "", $news_message);
         $news_message = str_replace("MAIL_UNSUBSCRIBE", "", $news_message);
         $news_message = str_replace("MAIL_CHANGE", "", $news_message);
         $news_message = str_replace("MAIL_STOP", "", $news_message);
         $news_message = str_replace("MAIL_GOON", "", $news_message);

         // Newsletter-Subject as Headline
         echo $news_subject . ":<br />" . chr(10);

         // Eliminating area with MAIL_STOP and so on
         $cutpos = strpos($news_message, $cut);
         if ($cutpos)
         {
            echo nl2br(substr($news_message, 0, $cutpos-1)) . chr(10);
         } else {
            echo nl2br($news_message) . chr(10);
         }
      }

      $link = "front_content.php?client=$client&lang=$lang&idcatart=$idcatart";
      echo "<br /><br /><a href=\"" . $link . "\">" . mi18n("< Back") . "</a><br />" . chr(10);
   } else {
      $newsletters->select("idclient='$client' AND idlang='$lang' AND welcome=0","","name");

      while ($newsletter = $newsletters->next())
      {
         // Newsletter-Subject as Headline, incl. Link
         $link = "front_content.php?client=$client&lang=$lang&idcatart=$idcatart&idnews=" . $newsletter->get("idnews");
         echo "<a href=\"" . $link . "\">" . $newsletter->get("subject") . ":</a><br />" . chr(10);

         // Getting newsletter content, showing first $chars characters
         $news_message = $newsletter->get("message");

         // Cleaning $message
         $news_message = str_replace("MAIL_NAME", "", $news_message);
         $news_message = str_replace("MAIL_NUMBER", "", $news_message);
         $news_message = str_replace("MAIL_DATE", "", $news_message);
         $news_message = str_replace("MAIL_TIME", "", $news_message);
         $news_message = str_replace("MAIL_UNSUBSCRIBE", "", $news_message);
         $news_message = str_replace("MAIL_CHANGE", "", $news_message);
         $news_message = str_replace("MAIL_STOP", "", $news_message);
         $news_message = str_replace("MAIL_GOON", "", $news_message);

         $cutpos = strpos($news_message, $cut);
         if ($cutpos)
         {
            if ($chars == 0 || $cutpos <= $chars)
            {
               echo nl2br(substr($news_message, 0, $cutpos-1)) . "<br /><br />" . chr(10);
            } else {
               echo nl2br(substr($news_message, 0, $chars)) . "<br /><br />" . chr(10);
            }
         } else {
            if ($chars == 0)
            {
               echo nl2br($news_message) . "<br /><br />" . chr(10);
            } else {
               echo nl2br(substr($news_message, 0, $chars)) . "<br /><br />" . chr(10);
            }
         }
      }
   }
?> 
Viel Erfolg!

Gruß
HerrB
Zuletzt geändert von HerrB am So 30. Okt 2005, 14:00, insgesamt 3-mal geändert.
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net

emergence
Beiträge: 10600
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence » Mi 22. Dez 2004, 09:51

bilder sagen ja mehr als worte...
gibts ein online demo zum ansehen ?
*** make your own tools (wishlist :: thx)

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » Mi 22. Dez 2004, 17:56

Ähm, ja. Hier kann man sich das mal ansehen: [Referenz entfernt, z.Z. keine Demo verfügbar]

Das Ganze ist noch sehr Alpha, mir ist z.B. eingefallen, dass < z.B. nicht kodiert werden (und damit gewissen Probleme entstehen dürften). Das wäre aber vermutlich leicht mit einem htmlentities() bzw. htmlspecialchars() zu lösen.

Man muss auf die Überschriften (Test bzw. Test2) klicken, um den Newsletter zu sehen (ist einfach nur so reingelötet).

Gruß
HerrB
Zuletzt geändert von HerrB am So 30. Okt 2005, 14:01, insgesamt 1-mal geändert.

acquire
Beiträge: 194
Registriert: So 13. Jun 2004, 13:24
Kontaktdaten:

Beitrag von acquire » Sa 2. Apr 2005, 22:19

Sieht klasse aus. Sowas bräuchte ich. ABER: Ich habe keine Lust bei jedem Update, dass die alten Newslettereinstellungen verloren gehen. SO war es bei mir jetzt. Ich hatte deine Newsletterbearbeitungen drin, und nach dem Update waren sie weg.

Du hast nicht zufäälig ein entsprechendes Modul für die normale 4.4.5 Newsletterversion?

An sich braucht man nur folgendes:
Fetchen der Titel (name) und daraus ein resultierender Link, bei Klick darauf wird unter der Newsletterliste (oder darüber)
der Newsletter ausgegeben. (einfach message ausgeben und bei echo ein <pre> rein).
So einfach stelle ich mir das vor.
Aber ich bekomme das als Anfänger in MySQL einfach nicht hin.

Wie mache ich denn einen Link daraus?

Bisher habe ich mir das hier zusammengebastelt (in den Kommentaren liegen auch meine Probleme):

Code: Alles auswählen

<?
//MySQL Server oder Host
$db_serv = 'localhost';

// MySQL Datenbank Name
$db_name = 'tkkg';

// User
$db_user = '';

// Passwort
$db_pass = '';

// Verbindung zum MySQL Server herstellen
$db = mysql_connect($db_serv, $db_user, $db_pass) or die('Verbindung zum Server fehlgeschlagen!');

// MySQL Datenbank wählen
mysql_select_db($db_name, $db) or die('Verbindung zur Datenbank fehlgeschlagen!'); 

// Newsletterdaten auslesen
$query = mysql_query("select name, message, idnews from con_news order by idnews");

// Ausgabe der Namen als Link: Ergibt Fehler durch die "'
// Link müsste an sich nur die Seite erneuern und die Variable $id einführen mit einem Wert
while($row = mysql_fetch_array($query)) { 
    echo "<a href="'.$row['idnews'].'">".$row['name']."</a><br>";
  }
  
// $id durch den Link gefüllt
if($id=x) //wenn die $id einen Wert hat...
{
echo $row['message'] // dann wird die message zu dieser id angezeigt werden
}
else
{
echo "<br>";
}
?>

Meine Datenbank sieht so aus:
Datenbank: tkkg
Tabelle: con_news

idnews -- name -- message
1 -- Newletter Nr. 1 -- Hallo MAIL_NAME...
2 -- Newletter Nr. 2 -- Hallo MAIL_NAME...
3 -- Newletter Nr. 3 -- Hallo MAIL_NAME...
Edit: Datenbanknamen & Tabelle editiert. War ausversehen doppelt...
Zuletzt geändert von acquire am So 3. Apr 2005, 11:50, insgesamt 1-mal geändert.

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » So 3. Apr 2005, 00:49

ABER: Ich habe keine Lust bei jedem Update, dass die alten Newslettereinstellungen verloren gehen. SO war es bei mir jetzt.
Ähm, ja, der Newsletter-Bereich hat halt noch ein paar Bugs und leider hat die Überarbeitung keinen Einzug in V4.4.5 gefunden. Ein erneutes Einspielen der Contenido-Dateien aus dem entsprechenden Beitrag (für V4.4.x), sollte aber genügen, Daten sollten nicht verloren gegangen sein. Ich würde da nochmal mit phpMyAdmin in die DB gucken (con_news).
Du hast nicht zufäälig ein entsprechendes Modul für die normale 4.4.5 Newsletterversion?
Nein, da ich mittlerweile an der Version für V4.5.x arbeite. Aber der Witz ist: Man kann das Modul mit geringen Modifikationen auch für V4.4.5 einsetzen (außerdem habe ich bei der Gelegenheit noch ein paar Bugs gefunden, Code oben ist korrigiert).

Verwendung dieses Moduls in V4.4.x:
1. Diese Datei runterladen: [um Probleme mit V4,6 zu vermeiden, wurde die Referenz entfernt. Die benötigte class.newsletter.php-Datei findet sich im Source zu V4.6]
2. Nur die Datei classes\class.newsletter.php extrahieren
3. In der Datei class.newsletter.php die Zeile

Code: Alles auswählen

cInclude("classes", "class.properties.php");
auskommentieren:

Code: Alles auswählen

// cInclude("classes", "class.properties.php");
4. class.newsletter.php nach contenido\classes hochladen

5. Im Output des Moduls (neue Version verwenden) die Zeile

Code: Alles auswählen

      echo "<br /><br /><a href=\"" . $link . "\">". mi18n("< Back") . "</a><br />" . chr(10);
mit

Code: Alles auswählen

      echo "<br /><br /><a href=\"" . $link . "\">< Zur&uuml;ck</a><br />" . chr(10);
ersetzen.
6. Im Output des Moduls die Zeile

Code: Alles auswählen

      $newsletters->select("idclient='$client' AND idlang='$lang' AND welcome=0","","name");
durch

Code: Alles auswählen

      $newsletters->select("idclient='$client' AND idlang='$lang'","","name");
ersetzen.

Natürlich funktionieren die meisten Funktionen der class.newsletter.php in V4.4.5 nicht, aber der hier benötigte Umfang genügt und interferiert nicht mit den restlichen Dateien.

Ansonsten - wenn Du trotzdem auf einer getrennten Tabelle bestehst - sollte es so bereits funktionieren (Tabelle muss in der Contenido-DB gespeichert sein):

Code: Alles auswählen

<?
$mydb = new DB_Contenido;

if (is_numeric($idnews) && $idnews > 0) //wenn die $id einen Wert hat...
   $sql = "select name, message from con_newscon_news where idnews = ".$idnews;
   $mydb->query($sql);

   while ($mydb->next_record()) {
      echo f("message");
   }
} else {
   // Newsletterdaten auslesen
   $sql = "select name, message, idnews from con_newscon_news order by idnews";
   $mydb->query($sql);

   // Ausgabe der Namen als Link: Ergibt Fehler durch die "'
   // Link müsste an sich nur die Seite erneuern und die Variable $id einführen mit einem Wert
   while ($mydb->next_record()) {
       $link = $sess->url("front_content.php?client=$client&lang=$lang&idcatart=$idcatart&idnews=" . $mydb->f("idnews"));
       echo "<a href="'.$link.'">".$mydb->f("name")."</a><br>";
   }
}
?>
Wobei das im Prinzip dem angegeben Code entspricht, halt nur mit direktem Zugriff und ohne die Features...

Gruß
HerrB
Zuletzt geändert von HerrB am So 30. Okt 2005, 14:04, insgesamt 1-mal geändert.
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net

acquire
Beiträge: 194
Registriert: So 13. Jun 2004, 13:24
Kontaktdaten:

Beitrag von acquire » So 3. Apr 2005, 11:11

HerrB hat geschrieben:
ABER: Ich habe keine Lust bei jedem Update, dass die alten Newslettereinstellungen verloren gehen. SO war es bei mir jetzt.
Ähm, ja, der Newsletter-Bereich hat halt noch ein paar Bugs und leider hat die Überarbeitung keinen Einzug in V4.4.5 gefunden. Ein erneutes Einspielen der Contenido-Dateien aus dem entsprechenden Beitrag (für V4.4.x), sollte aber genügen, Daten sollten nicht verloren gegangen sein. Ich würde da nochmal mit phpMyAdmin in die DB gucken (con_news).
Leider habe ich nachdem alles weg war (außer die Newsletter) alle alten Daten der Verbesserungen entfernt, da es ja nicht funktionierte. Und auch die Empfängerdatenbank geleert. Die con_news enthält ja nur die eigentlichen Newsletter.
Bei den Empfängern bin ich durch 4 Newsletteränderungen bei der ID 174 angelangt. Hat jemand eine Ahnung, wie man die IDs wieder auf 0 bekommt, wenn man neu anfängt. Das müsste doch klappen, wenn man die Datenbank leert, oder? Leider habe ich zuvor immer von Contenido aus die Empfänger gelöscht.


Seit heute morgen habe ich jetz das Newqslettermodul eingerichtet. Es hat aber bei mir Fehlfunktionen:

Auf der Seite, wo ich die Newsletter sehen sollte, sehe ich die Empfänger, auf der Seite, wo die Empfänger sein sollten wird mir der Fehler
Warning: sprintf() [function.sprintf]: Too few arguments in /www/htdocs/tkkg/contenido/includes/include.recipients_menu.php on line 177

Warning: sprintf() [function.sprintf]: Too few arguments in /www/htdocs/tkkg/contenido/includes/include.recipients_menu.php on line 182
und darunter die Empfänger, wobei aber nur Empfänger mit @ richtig angezeigt werden. Die mit %40 nicht.
Mit @ werden sie in die Datenbank geschrieben, wenn ich es vom CMS mache und mit %40, wenn es von der Website passiert.
Das ist doch auch noch ein Fehler.
Ich habe aber wie in deiner Anleitung von http://www.contenido.org/forum/viewtopic.php?t=4302 unter Punkt 10 gemacht.
Woran kann das denn nun liegen?


An den Rest (Archiv) habe ich mich noch nicht gemacht. Erstmal muss der Newsletter wieder funktionieren.

Danke für die bisherige unterstützung & im Voraus!

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » So 3. Apr 2005, 12:13

Hat jemand eine Ahnung, wie man die IDs wieder auf 0 bekommt, wenn man neu anfängt. Das müsste doch klappen, wenn man die Datenbank leert, oder? Leider habe ich zuvor immer von Contenido aus die Empfänger gelöscht.
Per se ist es nicht notwendig, die IDs wieder zu reduzieren - eine verwendete ID ist halt "verbraucht". Wenn Du die IDs unbedingt wieder reduzieren möchtest, setze den Eintrag nextid in der Tabelle con_sequence auf 0 oder 1, bei der in der Spalte seq_name con_news (Newsletter) bzw. con_news_rcp (Empfänger) steht ("con_" entsprechend Deinem DB-Contenido-Prefix).
Und auch die Empfängerdatenbank geleert.
Urgh, schlecht.
Auf der Seite, wo ich die Newsletter sehen sollte, sehe ich die Empfänger, auf der Seite, wo die Empfänger sein sollten wird mir der Fehler...
Wir reden von der V4.4.5, richtig? Der Newsletter-Bereich wurde - außer beim Senden - in dieser Version gar nicht verändert. Da dort nun Empfänger erscheinen, nehme ich mal an, dass Du die Dateien vertauscht hast (wie auch immer).

Dafür spricht auch, dass von der Webseite Empfänger mit @ in der DB eingetragen werden - das regelt die include.recipients_edit.php, die offensichtlich nicht ausgetauscht wurde.

Welcher Bereich ist mit "da, wo ich Newsletter sehen sollte" gemeint? Der linke Frame (Auflistung) oder der rechte (Bearbeiten)?

Die Auflistung Newsletter ist in include.newsletter_menu.php, die Auflistung Empfänger ist in include.recipients_menu.php.

Ich würde Dir empfehlen, die originale include.newsletter_menu.php wieder einzuspielen und die angegeben Dateien aus dem Link oben (entfernen des .txt nicht vergessen...).

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net

acquire
Beiträge: 194
Registriert: So 13. Jun 2004, 13:24
Kontaktdaten:

Das Archiv

Beitrag von acquire » So 3. Apr 2005, 12:26

Das Archiv funktioniert gut. Aber das ganze scrollen ist ja für den Anwender nervig. Deshalb:
HerrB hat geschrieben: Ansonsten - wenn Du trotzdem auf einer getrennten Tabelle bestehst - sollte es so bereits funktionieren (Tabelle muss in der Contenido-DB gespeichert sein):

Code: Alles auswählen

<?
$mydb = new DB_Contenido;

if (is_numeric($idnews) && $idnews > 0) //wenn die $id einen Wert hat...
   $sql = "select name, message from con_newscon_news where idnews = ".$idnews;
   $mydb->query($sql);

   while ($mydb->next_record()) {
      echo f("message");
   }
} else {
   // Newsletterdaten auslesen
   $sql = "select name, message, idnews from con_newscon_news order by idnews";
   $mydb->query($sql);

   // Ausgabe der Namen als Link: Ergibt Fehler durch die "'
   // Link müsste an sich nur die Seite erneuern und die Variable $id einführen mit einem Wert
   while ($mydb->next_record()) {
       $link = $sess->url("front_content.php?client=$client&lang=$lang&idcatart=$idcatart&idnews=" . $mydb->f("idnews"));
       echo "<a href="'.$link.'">".$mydb->f("name")."</a><br>";
   }
}
?>
Wobei das im Prinzip dem angegeben Code entspricht, halt nur mit direktem Zugriff und ohne die Features...

Gruß
HerrB
Tja, so funktioniert es bei mir nicht. ;)
Erstmal zur Connection zur Datenbank:

Code: Alles auswählen

$mydb = new DB_Contenido;
gibt doch nicht den Befehl eine Datenbankverbindung aufzubauen, oder?
Dann ergibt das ganze einen parse error in Zeile 11. Da steht aber nur das else.

Insgesamt habe ich dein Modul einfach so abgeändert, wie ich es brauche.
Es hat jetzt nur noch einen Output:

Code: Alles auswählen

<?php
   cInclude("classes", "class.newsletter.php");

   $newsletters = New NewsletterCollection;

   if (is_numeric($idnews) && $idnews > 0)
   {
      $newsletters->select("idclient='$client' AND idlang='$lang' AND idnews=" . $idnews);

      if ($newsletter = $newsletters->next())
      {
         // Getting all date for your convenience, currently only $news_id, $news_subject and $news_message are used
         $news_id = $newsletter->get("idnews");
         $news_subject = $newsletter->get("subject");
         $news_message = $newsletter->get("message");
         $news_name = $newsletter->get("name");
         $news_newsfrom = $newsletter->get("newsfrom");
         $news_newsdate = $newsletter->get("newsdate");
         $news_author = $newsletter->get("author");
         $news_created = $newsletter->get("created");
         $news_lastmodified = $newsletter->get("lastmodified");

         // Cleaning $message
         $news_message = str_replace("MAIL_NAME", "", $news_message);
         $news_message = str_replace("MAIL_NUMBER", "", $news_message);
         $news_message = str_replace("MAIL_DATE", "", $news_message);
         $news_message = str_replace("MAIL_TIME", "", $news_message);
         $news_message = str_replace("MAIL_UNSUBSCRIBE", "", $news_message);
         $news_message = str_replace("MAIL_CHANGE", "", $news_message);
         $news_message = str_replace("MAIL_STOP", "", $news_message);
         $news_message = str_replace("MAIL_GOON", "", $news_message);

         // Newsletter Message 
         echo nl2br($news_message) . chr(10);
         
      }

      $link = "front_content.php?client=$client&lang=$lang&idcatart=$idcatart";
      echo "<br /><br /><a href="" . $link . "">< Zur&uuml;ck</a><br />" . chr(10);
   } else {
      $newsletters->select("idclient='$client' AND idlang='$lang'","","name");

      while ($newsletter = $newsletters->next())
      {
         // Newsletter-Name as Headline, incl. Link
         $link = "front_content.php?client=$client&lang=$lang&idcatart=$idcatart&idnews=" . $newsletter->get("idnews");
         echo "<a href="" . $link . "">" . $newsletter->get("name") . ":</a>" . chr(10);

         // Getting newsletter content
        echo nl2br($news_message) . "<br />" . chr(10);
      }
   }
?>

acquire
Beiträge: 194
Registriert: So 13. Jun 2004, 13:24
Kontaktdaten:

Beitrag von acquire » So 3. Apr 2005, 12:36

HerrB hat geschrieben:
Hat jemand eine Ahnung, wie man die IDs wieder auf 0 bekommt, wenn man neu anfängt. Das müsste doch klappen, wenn man die Datenbank leert, oder? Leider habe ich zuvor immer von Contenido aus die Empfänger gelöscht.
Per se ist es nicht notwendig, die IDs wieder zu reduzieren - eine verwendete ID ist halt "verbraucht". Wenn Du die IDs unbedingt wieder reduzieren möchtest, setze den Eintrag nextid in der Tabelle con_sequence auf 0 oder 1, bei der in der Spalte seq_name con_news (Newsletter) bzw. con_news_rcp (Empfänger) steht ("con_" entsprechend Deinem DB-Contenido-Prefix).
Danke. Jetzt weiß ich ja, wo ich suchen muss.
Auf der Seite, wo ich die Newsletter sehen sollte, sehe ich die Empfänger, auf der Seite, wo die Empfänger sein sollten wird mir der Fehler...
Wir reden von der V4.4.5, richtig? Der Newsletter-Bereich wurde - außer beim Senden - in dieser Version gar nicht verändert. Da dort nun Empfänger erscheinen, nehme ich mal an, dass Du die Dateien vertauscht hast (wie auch immer).
[/quote]Ja, die 4.4.5. Mein Fehler ist mir nun aufgefallen:
include.newsletter_edit.php.txt
include.newsletter_menu.php.txt
habe ich editiert...
Welcher Bereich ist mit "da, wo ich Newsletter sehen sollte" gemeint? Der linke Frame (Auflistung) oder der rechte (Bearbeiten)?
Der linke (Auflistung).

Danke, jetzt geht es.
Zum Archiv: Es geht auch, siehe Beitrag darüber.

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » So 3. Apr 2005, 12:47

Dann ergibt das ganze einen parse error in Zeile 11. Da steht aber nur das else.
Stimmt, war ja nur zusammengeschustert, hinter

Code: Alles auswählen

if (is_numeric($idnews) && $idnews > 0) //wenn die $id einen Wert hat... 
fehlt eine {:

Code: Alles auswählen

if (is_numeric($idnews) && $idnews > 0) { //wenn die $id einen Wert hat... 
Insgesamt habe ich dein Modul einfach so abgeändert, wie ich es brauche.
Sage ich doch, dass das nun das gleiche ist. :wink:

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net

acquire
Beiträge: 194
Registriert: So 13. Jun 2004, 13:24
Kontaktdaten:

Beitrag von acquire » So 3. Apr 2005, 13:04

Dann hat er in Zeile 20 noch ein Problem. Es fehlt ein ".
Aber egal, das andere Funktioniert ja bestens!
Danke nochmal.
Zur DB: gut, das ich öfter mal ein Backup mache. So auch vor der Änderung zum 4.4.5. Ich musste nur noch die alte con_new_rcp einspielen und die neuen Empfänger seitdem ergängen. :)

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » So 3. Apr 2005, 13:08

Man ist ja Perfektionist (und für die Generation nach uns):

Die Zeile

Code: Alles auswählen

echo "<a href="'.$link.'">".$mydb->f("name")."</a><br>";
mit

Code: Alles auswählen

echo "<a href='".$link."'>".$mydb->f("name")."</a><br>";
ersetzen.

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net

acquire
Beiträge: 194
Registriert: So 13. Jun 2004, 13:24
Kontaktdaten:

Beitrag von acquire » So 3. Apr 2005, 13:33

:D
Jetzt funktioniert es nur im Vorschaumodus. Im normalem fehlt ihm wieder ein ".
Aber das Modul sieht echt klasse aus.

Mir ist was eingefallen: Schöner wäre ja eine Ausgabe ohne den Willkommensletter (bei mir id1).
Ich meine mich daranb erinnern zu können bei dem Original eine Funktion gesehen zu haben, die diesen Link auslässt.
Jetzt finde ich es aber nicht mehr.
Wie würde mann das denn allgemein regeln? Am Einfachsten wäre es doch eigentlich mit der ID. Also erst z.B: mit ID 2 starten...


Wer die angepasste Version sehen will:
http://www.tkkg-site.de/cms/front_conte ... &idart=592

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » So 3. Apr 2005, 18:40

Jetzt funktioniert es nur im Vorschaumodus. Im normalem fehlt ihm wieder ein ". Aber das Modul sieht echt klasse aus.
Soll ich da jetzt noch weiter suchen oder verwendest Du Deine Anpassung?
Wie würde mann das denn allgemein regeln? Am Einfachsten wäre es doch eigentlich mit der ID. Also erst z.B: mit ID 2 starten...
Ja, wobei ich das über den Namen regeln würde:
"AND name != 'Willkommen'" alternativ geht natürlich auch "AND idnews != 1" (statt != sollte auch <> gehen).

In der V4.5er Überarbeitung gibt es dafür eine extra Spalte ("welcome") - die existiert aber in V4.4.x nicht. Ergänzen ist nicht sinnvoll, da es in V4.4.x keine Verwaltungsmöglichkeit dafür gibt.

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net

acquire
Beiträge: 194
Registriert: So 13. Jun 2004, 13:24
Kontaktdaten:

Beitrag von acquire » So 3. Apr 2005, 18:53

HerrB hat geschrieben:
Jetzt funktioniert es nur im Vorschaumodus. Im normalem fehlt ihm wieder ein ". Aber das Modul sieht echt klasse aus.
Soll ich da jetzt noch weiter suchen oder verwendest Du Deine Anpassung?
Ich verwende meine Anpassung. Du brauchst da nicht suchen. Ich habe es nur gepostet, wegen deiner Aussage zum Perfektionismus.
Wie würde mann das denn allgemein regeln? Am Einfachsten wäre es doch eigentlich mit der ID. Also erst z.B: mit ID 2 starten...
Ja, wobei ich das über den Namen regeln würde:
"AND name != 'Willkommen'" alternativ geht natürlich auch "AND idnews != 1" (statt != sollte auch <> gehen).

In der V4.5er Überarbeitung gibt es dafür eine extra Spalte ("welcome") - die existiert aber in V4.4.x nicht. Ergänzen ist nicht sinnvoll, da es in V4.4.x keine Verwaltungsmöglichkeit dafür gibt.

Gruß
HerrB
Wo müsste ich das "AND name != 'Willkommen" genau einbauen?
Irgendwie habe ich keine gute Idee , bei dem Code...

Und warum die Ergänzung des "AND name != 'Willkommen" nicht sinnvoll ist verstehe ich nicht ganz.


Aber schonmal danke für die Infos. Jetzt probiere ich mal etwas herum...

Gesperrt