HTML-Newsletter von 4.6.23 in 4.6.15
HTML-Newsletter von 4.6.23 in 4.6.15
Hallo zusammen!
Ist es möglich, ohne komplettes Upgrade, dieses Feature in eine bestehende 4.6.15 Installation zu übertragen?
Vielen Dank!
Ist es möglich, ohne komplettes Upgrade, dieses Feature in eine bestehende 4.6.15 Installation zu übertragen?
Vielen Dank!
Das ist eine Installation mit 3 Mandanten und 2 davon mit massivem Content auf einem grottenlahmen Strato-Server und einer veralteten PHP-Version. Ich musste schon modifizieren, um die 4.6.15 an's Laufen zu bringen.
Bevor ich ohne Garantie upgraden würde, müsste ich ein Backup ziehen und da sehe ich definitiv schwarz.
Die Kundin wollte um's Zerplatzen nicht wechseln...
Bevor ich ohne Garantie upgraden würde, müsste ich ein Backup ziehen und da sehe ich definitiv schwarz.
Die Kundin wollte um's Zerplatzen nicht wechseln...

... ich habe bereits die neuen classes
class.newsletter.groups.php
class.newsletter.jobs.php
class.newsletter.logs.php
class.newsletter.php
class.newsletter.recipients.php
aus einer 4.6.23 Installation und die class.input.helper.php in die Alte einkopiert.
Das Modul ist auch angelegt und im Template eingebunden und konfiguriert.
Aber unter Extras/Newsletter wird mir nach wie vor die alte Maske angezeigt ...
class.newsletter.groups.php
class.newsletter.jobs.php
class.newsletter.logs.php
class.newsletter.php
class.newsletter.recipients.php
aus einer 4.6.23 Installation und die class.input.helper.php in die Alte einkopiert.
Das Modul ist auch angelegt und im Template eingebunden und konfiguriert.
Aber unter Extras/Newsletter wird mir nach wie vor die alte Maske angezeigt ...

So, die Übersetzung lag in der contenido/locale/de_DE/LC_MESSAGES/contenido.po
... und (Asche auf mein Haupt) die Auswahl funktioniert durch die Aktivierung unter "Einstellungen" nun auch...
Nun fehlt mir lediglich das horizontale Menü "Bearbeiten + Nachricht bearbeiten", was in der include.newsletter_subnav.php enthalten ist ...
Hat noch jemand einen Tipp ???
... und (Asche auf mein Haupt) die Auswahl funktioniert durch die Aktivierung unter "Einstellungen" nun auch...

Nun fehlt mir lediglich das horizontale Menü "Bearbeiten + Nachricht bearbeiten", was in der include.newsletter_subnav.php enthalten ist ...
Hat noch jemand einen Tipp ???
Das war's leider auch nicht Tono ... trotzdem Danke !!!
Ich bin inzwischen bei der con_files gelandet, aber auch da haben die Ergänzungen nichts gebracht.
Zudem habe ich ein neues Problem entdeckt; die Typ-Auswahl (html oder Text) wird im Frame zwar nach dem Speichern (Aktualisieren) zwar übernommen, aber nach dem erneuten Aufruf über die Newsletterauswahl ist es wieder flöten gegangen.
Ist wohl doch etwas tiefergehend ...
Ich bin inzwischen bei der con_files gelandet, aber auch da haben die Ergänzungen nichts gebracht.
Zudem habe ich ein neues Problem entdeckt; die Typ-Auswahl (html oder Text) wird im Frame zwar nach dem Speichern (Aktualisieren) zwar übernommen, aber nach dem erneuten Aufruf über die Newsletterauswahl ist es wieder flöten gegangen.
Ist wohl doch etwas tiefergehend ...

Ähm, ja.
Ich bin mir nicht sicher, ob ich selbst alles zusammenbekomme, aber ich kann es versuchen. Auf eigene Gefahr, keine Garantie, keine Zeit und ein Backup der Dateien und der DB ist eine unglaublich gute Idee. Und eine Dokumentation der Änderungen in der DB...
classes:
classes/contenido:
includes:
images:
Korrektur in include.recipients_import.php:
Statt
dies setzen:
Jetzt kommt der schwierige Teil, die DB-Aktualisierungen. Persönlich würde ich Dir empfehlen, die folgenden Zeilen in die angegebene Datei im Setup-Verzeichnis (eines V4.6.15-Setups!) einzufügen (und dabei ggf. vorhandene, ähnliche Einträge zu ersetzen! Die sind überall vertreuselt!) und das Setup mit "Upgrade" durchlaufen zu lassen. Ich erkläre auch unten nochmal was die Einträge bedeuten, aber das mit der Hand nachzuziehen, ist ... ähm ... anstrengend.
data/tables.txt:
Für eine manuelle Anlage, z.B. via phpMyAdmin:
1. Eintrag: Name der Tabelle ohne Prefix
2. Eintrag: Name der Spalte
3. Eintrag: Typ und Größe
4. Eintrag: Null?
5. Eintrag: Primary Key?
6. Eintrag: Standardwert
Weitere: Ignorieren
Es sind die kompletten Tabellendeklarationen angegeben - in den meisten Fällen genügt es, einzelne Spalten zu ergänzen.
Die folgenden Änderungen machen sich per Hand und mit phpMyAdmin ganz gut:
In _actions jeweils auf den zweiten Wert als Area filtern (z.B. 16, 50, etc.). Es muss folgende Einträge geben, fehlende ergänzen:
Bedauerlicherweise wirst Du Dich auf die erste hier angegebene Zahl nicht verlassen können, da es u.U. bereits entsprechende Actions in der DB gibt. Dann einfach die ID anhand der höchsten Zahl hochzählen (wenn Du Plugins verwendest, dann anhand der höchsten Zahl unter 10000 hochzählen).
In _area sicherstellen, dass folgende Areas existieren (hier müssen alle Angaben übereinstimmen, insbesondere die ID, erster Wert):
In _files diese Einträge prüfen und ggf. ergänzen:
Es wäre wahnsinnig praktisch, wenn die IDs noch verfügbar wären (der erste Eintrag mit 114 müsste bereits vorhanden sein). Wenn nicht, wieder die IDs hochzählen - dieses Mal aber genau aufschreiben, für welche Datei welche ID verwendet wurde!
In _frame_files folgende Einträge prüfen (jetzt wird es hakelig):
Die letzte Zahl entspricht dabei jeweils der ID aus der _files-Tabelle, die erste ID kann - wenn es nicht schon einen entsprechenden Eintrag mit der gleichen Area (zweiter Wert), Frame (dritter Wert) und Datei-ID (vierter Wert) gibt - beliebig hochgezählt werden.
Außerdem diesen Eintrag korrigieren (für den Eintrag in der Tabelle, der idarea = 16 und frame = 3 hat, idfile in 114 ändern):
In _nav_sub folgende Einträge prüfen:
Und schon sind wir fertig...
(Neue Module einsetzen!)
Gruß
HerrB
Ich bin mir nicht sicher, ob ich selbst alles zusammenbekomme, aber ich kann es versuchen. Auf eigene Gefahr, keine Garantie, keine Zeit und ein Backup der Dateien und der DB ist eine unglaublich gute Idee. Und eine Dokumentation der Änderungen in der DB...
classes:
Code: Alles auswählen
class.newsletter.php
class.newsletter.groups.php
class.newsletter.jobs.php
class.newsletter.logs.php
class.newsletter.recipients.php
class.phpmailer.php
class.smtp.php
Code: Alles auswählen
class.clientslang.php
class.client.php
Code: Alles auswählen
include.clientsettings.php (weiß nicht, ob man in V4.6.15 schon sprachabhängige Mandanteneinstellungen machen konnte)
include.newsletter_edit.php
include.newsletter_edit_message.php
include.newsletter_jobs_subnav.php
include.newsletter_jobs_menu.php
include.newsletter_left_top.php
include.newsletter_jobs_details.php
include.newsletter_menu.php
include.newsletter_subnav.php
include.recipients_edit.php
include.recipients.group_edit.php
include.recipients_import.php (hier muss eine Korrektur durchgeführt werden, siehe unten)
include.recipients_menu.php
include.recipients.group_menu.php
include.recipients.group.subnav.php
Code: Alles auswählen
newsletter_dispatch_16_off.gif
newsletter_sendtest_16_off.gif
newsletter_16_off.gif
newsletter_16.gif
Statt
Code: Alles auswählen
$sGroupName = str_replace(str_split(" \t\n\r\0\x0B;"), "", $oRcpGroup->get("groupname"));
Code: Alles auswählen
$sGroupName = $oRcpGroup->get("groupname");
$sGroupName = str_replace(" ", "", $sGroupName);
$sGroupName = str_replace("\t", "", $sGroupName);
$sGroupName = str_replace("\n", "", $sGroupName);
$sGroupName = str_replace("\r", "", $sGroupName);
$sGroupName = str_replace("\0", "", $sGroupName);
$sGroupName = str_replace("\x0B;", "", $sGroupName);
Jetzt kommt der schwierige Teil, die DB-Aktualisierungen. Persönlich würde ich Dir empfehlen, die folgenden Zeilen in die angegebene Datei im Setup-Verzeichnis (eines V4.6.15-Setups!) einzufügen (und dabei ggf. vorhandene, ähnliche Einträge zu ersetzen! Die sind überall vertreuselt!) und das Setup mit "Upgrade" durchlaufen zu lassen. Ich erkläre auch unten nochmal was die Einträge bedeuten, aber das mit der Hand nachzuziehen, ist ... ähm ... anstrengend.
data/tables.txt:
Code: Alles auswählen
"news";"idnews";"int(10)";"";"PRI";"0";"";"1"
"news";"idclient";"int(10)";"";"";"0";"";""
"news";"idlang";"int(10)";"";"";"0";"";""
"news";"idart";"int(10)";"";"";"0";"";""
"news";"template_idart";"int(10)";"";"";"0";"";""
"news";"type";"varchar(10)";"";"";"text";"";""
"news";"name";"varchar(255)";"";"";"";"";""
"news";"subject";"text";"YES";"";"";"";""
"news";"message";"longtext";"YES";"";"";"";""
"news";"newsfrom";"varchar(255)";"";"";"";"";""
"news";"newsfromname";"varchar(255)";"YES";"";"";"";""
"news";"newsdate";"datetime";"YES";"";"";"";""
"news";"welcome";"tinyint(1)";"";"";"0";"";""
"news";"use_cronjob";"tinyint(1)";"";"";"0";"";""
"news";"send_to";"varchar(32)";"";"";"all";"";""
"news";"send_ids";"text";"YES";"";"";"";""
"news";"dispatch";"tinyint(1)";"";"";"0";"";""
"news";"dispatch_count";"int(5)";"";"";"50";"";""
"news";"dispatch_delay";"int(5)";"";"";"5";"";""
"news";"author";"varchar(32)";"";"";"";"";""
"news";"created";"datetime";"";"";"0000-00-00 00:00:00";"";""
"news";"modified";"datetime";"";"";"0000-00-00 00:00:00";"";""
"news";"modifiedby";"varchar(32)";"";"";"";"";""
"news_log";"idnewslog";"int(10)";"";"PRI";"0";"";"1"
"news_log";"idnewsjob";"int(10)";"";"";"0";"";""
"news_log";"idnewsrcp";"int(10)";"";"";"0";"";""
"news_log";"rcpname";"varchar(255)";"";"";"";"";""
"news_log";"rcpemail";"varchar(255)";"";"";"";"";""
"news_log";"rcphash";"varchar(32)";"";"";"";"";""
"news_log";"rcpnewstype";"tinyint(1)";"";"";"0";"";""
"news_log";"status";"varchar(255)";"";"";"";"";""
"news_log";"sent";"datetime";"";"";"0000-00-00 00:00:00";"";""
"news_log";"created";"datetime";"";"";"0000-00-00 00:00:00";"";""
"news_jobs";"idnewsjob";"int(10)";"";"PRI";"0";"";"1"
"news_jobs";"idclient";"int(10)";"";"";"0";"";""
"news_jobs";"idlang";"int(10)";"";"";"0";"";""
"news_jobs";"idnews";"int(10)";"";"";"0";"";""
"news_jobs";"status";"tinyint(1)";"";"";"0";"";""
"news_jobs";"use_cronjob";"tinyint(1)";"";"";"0";"";""
"news_jobs";"started";"datetime";"";"";"0000-00-00 00:00:00";"";""
"news_jobs";"finished";"datetime";"";"";"0000-00-00 00:00:00";"";""
"news_jobs";"name";"varchar(255)";"";"";"";"";""
"news_jobs";"type";"varchar(10)";"";"";"text";"";""
"news_jobs";"encoding";"varchar(32)";"";"";"iso-8859-1";"";""
"news_jobs";"newsfrom";"varchar(255)";"";"";"";"";""
"news_jobs";"newsfromname";"varchar(255)";"";"";"";"";""
"news_jobs";"newsdate";"datetime";"YES";"";"0000-00-00 00:00:00";"";""
"news_jobs";"subject";"text";"YES";"";"";"";""
"news_jobs";"idart";"int(10)";"";"";"0";"";""
"news_jobs";"message_text";"longtext";"";"";"";"";""
"news_jobs";"message_html";"longtext";"YES";"";"";"";""
"news_jobs";"send_to";"text";"";"";"";"";""
"news_jobs";"dispatch";"tinyint(1)";"";"";"0";"";""
"news_jobs";"dispatch_count";"int(5)";"";"";"50";"";""
"news_jobs";"dispatch_delay";"int(5)";"";"";"5";"";""
"news_jobs";"author";"varchar(32)";"";"";"";"";""
"news_jobs";"authorname";"varchar(32)";"";"";"";"";""
"news_jobs";"rcpcount";"int(10)";"";"";"0";"";""
"news_jobs";"sendcount";"int(10)";"";"";"0";"";""
"news_jobs";"created";"datetime";"";"";"0000-00-00 00:00:00";"";""
"news_jobs";"modified";"datetime";"";"";"0000-00-00 00:00:00";"";""
"news_jobs";"modifiedby";"varchar(32)";"";"";"";"";""
"news_groupmembers";"idnewsgroupmember";"int(10)";"";"PRI";"0";"";"1"
"news_groupmembers";"idnewsgroup";"int(10)";"";"";"0";"";""
"news_groupmembers";"idnewsrcp";"int(10)";"";"";"0";"";""
"news_groups";"idnewsgroup";"int(10)";"";"PRI";"0";"";"1"
"news_groups";"idclient";"int(10)";"";"";"0";"";""
"news_groups";"idlang";"int(10)";"";"";"0";"";""
"news_groups";"groupname";"varchar(32)";"";"";"";"";""
"news_groups";"defaultgroup";"tinyint(1)";"";"";"0";"";""
"news_rcp";"idnewsrcp";"int(10)";"";"PRI";"0";"";"1"
"news_rcp";"idclient";"int(10)";"";"";"0";"";""
"news_rcp";"idlang";"int(10)";"";"";"0";"";""
"news_rcp";"email";"varchar(255)";"YES";"";"";"";""
"news_rcp";"confirmed";"tinyint(1)";"";"";"0";"";""
"news_rcp";"confirmeddate";"datetime";"";"";"0000-00-00 00:00:00";"";""
"news_rcp";"lastaction";"varchar(32)";"YES";"";"";"";""
"news_rcp";"name";"varchar(255)";"YES";"";"";"";""
"news_rcp";"hash";"varchar(32)";"";"";"";"";""
"news_rcp";"deactivated";"tinyint(1)";"";"";"0";"";""
"news_rcp";"news_type";"tinyint(1)";"";"";"0";"";""
"news_rcp";"author";"varchar(32)";"";"";"";"";""
"news_rcp";"created";"datetime";"";"";"0000-00-00 00:00:00";"";""
"news_rcp";"lastmodified";"datetime";"";"";"0000-00-00 00:00:00";"";""
"news_rcp";"modifiedby";"varchar(32)";"";"";"";"";""
1. Eintrag: Name der Tabelle ohne Prefix
2. Eintrag: Name der Spalte
3. Eintrag: Typ und Größe
4. Eintrag: Null?
5. Eintrag: Primary Key?
6. Eintrag: Standardwert
Weitere: Ignorieren
Es sind die kompletten Tabellendeklarationen angegeben - in den meisten Fällen genügt es, einzelne Spalten zu ergänzen.
Die folgenden Änderungen machen sich per Hand und mit phpMyAdmin ganz gut:
In _actions jeweils auf den zweiten Wert als Area filtern (z.B. 16, 50, etc.). Es muss folgende Einträge geben, fehlende ergänzen:
Code: Alles auswählen
'337', '16', '', 'news_save', '', '', '1'
'338', '16', '', 'news_create', '', '', '1'
'339', '16', '', 'news_delete', '', '', '1'
'434', '16', '', 'news_add_job', '', '', '1'
'435', '16', '', 'news_send_test', '', '', '0'
'439', '16', '', 'news_html_settings', '', '', '1'
'427', '16', '', 'news_duplicate', '', '', '0'
'341', '50', '', 'recipients_save', '', '', '1'
'342', '50', '', 'recipients_create', '', '', '1'
'343', '50', '', 'recipients_delete', '', '', '1'
'428', '50', '', 'recipients_purge', '', '', '0'
'422', '86', '', 'recipientgroup_delete', '', '', '1'
'423', '86', '', 'recipientgroup_create', '', '', '1'
'424', '86', '', 'recipientgroup_recipient_delete', '', '', '1'
'425', '86', '', 'recipientgroup_sa1ve_group', '', '', '1'
'436', '90', '', 'news_job_delete', '', '', '1'
'437', '90', '', 'news_job_details', '', '', '0'
'438', '90', '', 'news_job_detail_delete', '', '', '1'
'441', '90', '', 'news_job_run', '', '', '1'
'440', '91', '', 'recipients_import', '', '', '0'
'442', '91', '', 'recipients_import_exec', '', '', '0'
In _area sicherstellen, dass folgende Areas existieren (hier müssen alle Angaben übereinstimmen, insbesondere die ID, erster Wert):
Code: Alles auswählen
'86', '0', 'recipientgroups', '1', '1', '0'
'90', 'news', 'news_jobs', '1', '1', '0'
'91', 'recipients', 'recipients_import', '1', '1', '0'
Code: Alles auswählen
'114', '16', 'include.newsletter_subnav.php', 'main'
'189', '86', 'include.recipients.group_menu.php', 'main'
'190', '86', 'include.recipients.group.subnav.php', 'main'
'191', '86', 'include.recipients.group_edit.php', 'main'
'201', '90', 'include.newsletter_jobs_menu.php', 'main'
'202', '90', 'include.newsletter_jobs_details.php', 'main'
'203', '90', 'include.newsletter_jobs_subnav.php', 'main'
'204', '17', 'include.newsletter_edit_message.php', 'main'
'205', '91', 'include.recipients_import.php', 'main'
In _frame_files folgende Einträge prüfen (jetzt wird es hakelig):
Code: Alles auswählen
'196', '86', '2', '189'
'197', '86', '3', '190'
'198', '86', '4', '191'
'209', '90', '2', '201'
'210', '90', '4', '202'
'211', '90', '3', '203'
'212', '17', '4', '204'
'213', '91', '4', '205'
Außerdem diesen Eintrag korrigieren (für den Eintrag in der Tabelle, der idarea = 16 und frame = 3 hat, idfile in 114 ändern):
Code: Alles auswählen
'118', '16', '3', '114'
Code: Alles auswählen
'81', '3', '86', '1', 'navigation/extra/recipientgroups', '1'
(Neue Module einsetzen!)
Gruß
HerrB
Zuletzt geändert von HerrB am So 30. Mär 2008, 22:09, 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
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
Hab' schon ein Problemchen:
In der include.recipients_import.php finde ich nur diesen String:
statt diesen:
Ihr seht mich als 
In der include.recipients_import.php finde ich nur diesen String:
Code: Alles auswählen
$aFields[$sField] = strtolower(htmlentities(trim(i18n("Group") . "_" . str_replace(str_split(" \t\n\r\0\x0B;"), "", $oRcpGroup->get("groupname")))));
Code: Alles auswählen
$sGroupName = str_replace(str_split(" \t\n\r\0\x0B;"), "", $oRcpGroup->get("groupname"));

Misst, ich habe alles bis auf die obere Geschichte durch, doch nun ist das Backend komplett in englisch und das Submenü ist nach wie vor nicht vorhanden. Aber zumindest wird die Typauswahl nun beibehalten.
Folgender Error:
Mir wachsen graue Haare ... 
Folgender Error:
Code: Alles auswählen
[28-Mar-2008 16:50:16] /cms/front_content.php?idcat=1&changelang=2&client=1 MySQL error 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.public,
C.idcatlang
SELECT
A.idcat,
C.name
C.public,
C.idcatlang
FROM
con_cat_tree AS A,
con_cat AS B,
con_cat_lang AS C
WHERE
A.idcat = B.idcat AND
B.idcat = C.idcat AND
B.idclient = '1' AND
C.idlang = '2' AND
C.visible = '1' AND
B.parentid = '0'
ORDER
BY A.idtree
[28-Mar-2008 16:50:16] /cms/front_content.php?idcat=1&changelang=2&client=1 next_record called with no query pending in Module ID 49.

Zum ersten Problem:
Füge das:
vor dem ein:
@HerrB: Das war in der 4.6.23 wohl noch nicht drin.
Füge das:
Code: Alles auswählen
$sGroupName = $oRcpGroup->get("groupname");
$sGroupName = str_replace(" ", "", $sGroupName);
$sGroupName = str_replace("\t", "", $sGroupName);
$sGroupName = str_replace("\n", "", $sGroupName);
$sGroupName = str_replace("\r", "", $sGroupName);
$sGroupName = str_replace("\0", "", $sGroupName);
$sGroupName = str_replace("\x0B;", "", $sGroupName);
Code: Alles auswählen
$aFields[$sField] = strtolower(htmlentities(trim(i18n("Group") . "_" . str_replace(str_split(" \t\n\r\0\x0B;"), "", $oRcpGroup->get("groupname")))));
Bis dann
Tono
Tono