Newsletter-Überarbeitung CVS
ich möchte nicht motzen aber der code ist falschHerrB hat geschrieben:Code: Alles auswählen
<html> <head> <title></title> <script type="text/javascript" src="scripts/rowMark.js"></script> <script type="text/javascript" src="scripts/infoBox.js"></script> <script type="text/javascript" src="scripts/general.js"></script> {SCRIPTS} <link rel="stylesheet" type="text/css" href="styles/contenido.css" /> </head> <table width="100%" height=100%" border="0" cellspacing="0" cellpadding="0"> <tr><td valign="top"> <body style="margin:{MARGIN}px; {EXTRA}"> {CONTENT} </td></tr> </table> </body> </html>
<body style="margin:{MARGIN}px; {EXTRA}">
sollte schon vor der tabelle stehen...
*** make your own tools (wishlist :: thx)
Die Änderungen (source_base, sourceCVS) könnten eingearbeitet werden (vor allem die Änderungen in der DB).
Was noch fehlt, ist die Ergänzung/Korrektur einer Option in der Funktion für die Speicherung neuer Newsletter-Empfänger. Mit dieser Option könnte der Empfänger bereits beim Anlegen mehreren Gruppen zugeordnet werden (z.Z. ist nur die Zuordnung der Standard-Gruppe oder >einer< anderen Gruppe möglich).
Darauf müsst ihr nicht unbedingt warten, dass ist später der Austausch einer Datei und ich arbeite dran.
Für die Installation müsste im Setup bei Update eine Konvertierung bzw. Ergänzung des Empfänger-Keys integriert werden - wenn mir jemand einen Tipp geben könnte, wo man sowas integriert, würde ich mich noch drum kümmern.
Die Newsletter-Module sind in Arbeit (Fortschritt: 75%, werden dann übrigens wohl 'Newsletter Handler' und 'Newsletter Form' heißen, 'Newsletter Process' finde ich nicht so günstig). Sofern ihr bereits erste Module einsetzen wollt, könnt ihr die Module für V4.5.x verwenden (da kommen nur Funktionen hinzu, die Technik bleibt gleich).
Ich glaube, ihr hattet da Änderungen in Bezug auf die Beschriftung von Einträgen bei den Rechten gemacht - da bräuchte ich ggf. noch die Info, ob sich was geändert hat oder ob die Beschriftung nach wie vor in cfg_language_de.inc.php eingetragen wird (e.g. als $lngAct["news"]["news_save"] = i18n("Edit newsletter");).
Es wäre herzallerliebst, wenn ihr in der classes\class.frontend.users.php unter function loadItem { ... } den folgenden Code ergänzen könntet:
Ähm, wenn man das mit dem str_replace besser mit $_arrInFilters = array('urlencode', 'htmlspecialchars', 'addslashes'); und $mangledUserName = $feuser->_inFilter($username); machen sollte, bitte ich um Nachricht... (warum ist _inFilter eigentlich keine globale Funktion, sondern ein Methode der ItemCollection... ohne Objekt wäre IMHO praktischer und schneller ... außerdem habe ich _inFilter noch nicht so verstanden, glaube ich: was passiert, wenn der _arrInFilters-Array nicht definiert wird? Aber das kann ich mir auch mal alleine ansehen...). Ich versuche es dann umgehend zu korrigieren und zu testen.
Oh, und die news.php kann aus cms bzw. contenido/external/frontend entfernt werden.
Gruß
HerrB
Was noch fehlt, ist die Ergänzung/Korrektur einer Option in der Funktion für die Speicherung neuer Newsletter-Empfänger. Mit dieser Option könnte der Empfänger bereits beim Anlegen mehreren Gruppen zugeordnet werden (z.Z. ist nur die Zuordnung der Standard-Gruppe oder >einer< anderen Gruppe möglich).
Darauf müsst ihr nicht unbedingt warten, dass ist später der Austausch einer Datei und ich arbeite dran.
Für die Installation müsste im Setup bei Update eine Konvertierung bzw. Ergänzung des Empfänger-Keys integriert werden - wenn mir jemand einen Tipp geben könnte, wo man sowas integriert, würde ich mich noch drum kümmern.
Die Newsletter-Module sind in Arbeit (Fortschritt: 75%, werden dann übrigens wohl 'Newsletter Handler' und 'Newsletter Form' heißen, 'Newsletter Process' finde ich nicht so günstig). Sofern ihr bereits erste Module einsetzen wollt, könnt ihr die Module für V4.5.x verwenden (da kommen nur Funktionen hinzu, die Technik bleibt gleich).
Ich glaube, ihr hattet da Änderungen in Bezug auf die Beschriftung von Einträgen bei den Rechten gemacht - da bräuchte ich ggf. noch die Info, ob sich was geändert hat oder ob die Beschriftung nach wie vor in cfg_language_de.inc.php eingetragen wird (e.g. als $lngAct["news"]["news_save"] = i18n("Edit newsletter");).
Es wäre herzallerliebst, wenn ihr in der classes\class.frontend.users.php unter function loadItem { ... } den folgenden Code ergänzen könntet:
Code: Alles auswählen
/* HerrB:
* checkUserName returns true, if there is a recipient with the specified e-mail address; otherwise false
* @param $email string e-mail
* @return frontend user item if item with e-mail exists, false otherwise
*/
function checkUserName ($username)
{
global $client;
/* Function may get unchecked data, protect db */
$username = str_replace (";","",$username);
$username = str_replace ("--","",$username);
$username = str_replace ("'","",$username);
$username = str_replace ("\"","",$username);
$this->select("idclient='$client' AND username='" . urlencode(strtolower($username)) . "'");
if ($item = $this->next())
{
return $item;
} else {
return false;
}
}
Oh, und die news.php kann aus cms bzw. contenido/external/frontend entfernt werden.
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
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
ich glaube das wird kein problem darstellen nachzureichen...HerrB hat geschrieben: Was noch fehlt, ist die Ergänzung/Korrektur einer Option in der Funktion für die Speicherung neuer Newsletter-Empfänger. Mit dieser Option könnte der Empfänger bereits beim Anlegen mehreren Gruppen zugeordnet werden (z.Z. ist nur die Zuordnung der Standard-Gruppe oder >einer< anderen Gruppe möglich).
ich würd mal ganz auf die schnelle sagen, das ist schlecht...HerrB hat geschrieben:Für die Installation müsste im Setup bei Update eine Konvertierung bzw. Ergänzung des Empfänger-Keys integriert werden - wenn mir jemand einen Tipp geben könnte, wo man sowas integriert, würde ich mich noch drum kümmern.
anders es gibt im cvs_head eine datei die nennt sich convert_startarticle.php oder so ähnlich...
da würd ich vorschlagen eine entsprechende datei die diese konvertierung vornimmt reinzubauen... d.h natürlich zur folge das die datei dezitiert aufgerufen werden muss...
das über das setup zu machen ist etwas problematisch... was passiert wenn man dann nochmal ein upgrade aufruft etc...
ein großteil des neuen tabellen formats kann man über die tools/upgrade.php erledigen...
ob da aber ein umbenennen von felder vorhanden ist weiss ich leider nicht...
die einträge für die con_actions con_area con_sub_nav etc werden an sich direkt in der setup/sql/base.sql hinterlegt...
ach ja
bei con_area ist absofort eine neue spalte dazugekommen -> menuless
da müsste man sich nur an die syntax halten

kurz und knapp -> da hat sich diesbezüglich nichts geändert...HerrB hat geschrieben:ich glaube, ihr hattet da Änderungen in Bezug auf die Beschriftung von Einträgen bei den Rechten gemacht - da bräuchte ich ggf. noch die Info, ob sich was geändert hat oder ob die Beschriftung nach wie vor in cfg_language_de.inc.php eingetragen wird (e.g. als $lngAct["news"]["news_save"] = i18n("Edit newsletter");).
zumindestens für das was du da benötigst...
*** make your own tools (wishlist :: thx)
na wie auch immer ich teste das mal beim aktuellen snapshot...
*** make your own tools (wishlist :: thx)
ich bin gerade dabei die tools/upgrade.php dementsprechend anzupassen
und bin da gleich mal auf ein problem genagelt
ich hab soweit ich das gesehen habe keine möglichkeit das
zb AFTER `confirmed` oder AFTER `idlang`
zu berücksichtigen
die funktion dbUpgradeTable unterstützt das einfach nicht...
d.h. ich kann keinerlei reihenfolge angeben
nur beim erstmaligen installieren der db würde das stimmen...
bei einem upgrade werden die felder am ende eingereiht...
genauso wenig gibt es die möglichkeit ein bestehendes feld umzubenennen...
ALTER TABLE `con_news_rcp` CHANGE `lastmodified` `modified` DATETIME DEFAULT '0000-00-00 00:00:00' NOT NULL;
ALTER TABLE `con_news` CHANGE `lastmodified` `modified` DATETIME DEFAULT '0000-00-00 00:00:00' NOT NULL
geht einfach damit nicht...
oder hab ich da was übersehen...
wie auch immer das mit dem umbennen wäre glaube ich einfacher wenn man es komplett läßt, vielleicht gibts ja mal die möglichkeit das zu machen..
nun ja mit einer umbenennung der feldernamen in modified sehen die einträge in tools/upgrade.php so aus
weiteres folgt...
und bin da gleich mal auf ein problem genagelt
ich hab soweit ich das gesehen habe keine möglichkeit das
zb AFTER `confirmed` oder AFTER `idlang`
zu berücksichtigen
die funktion dbUpgradeTable unterstützt das einfach nicht...
d.h. ich kann keinerlei reihenfolge angeben
nur beim erstmaligen installieren der db würde das stimmen...
bei einem upgrade werden die felder am ende eingereiht...
genauso wenig gibt es die möglichkeit ein bestehendes feld umzubenennen...
ALTER TABLE `con_news_rcp` CHANGE `lastmodified` `modified` DATETIME DEFAULT '0000-00-00 00:00:00' NOT NULL;
ALTER TABLE `con_news` CHANGE `lastmodified` `modified` DATETIME DEFAULT '0000-00-00 00:00:00' NOT NULL
geht einfach damit nicht...
oder hab ich da was übersehen...
wie auch immer das mit dem umbennen wäre glaube ich einfacher wenn man es komplett läßt, vielleicht gibts ja mal die möglichkeit das zu machen..

nun ja mit einer umbenennung der feldernamen in modified sehen die einträge in tools/upgrade.php so aus
Code: Alles auswählen
dbUpgradeTable($prefix."_news", 'idnews', 'int(10)', '', 'PRI', '0', '','');
dbUpgradeTable($prefix."_news", 'idart', 'int(10)', '', '', '0', '','');
dbUpgradeTable($prefix."_news", 'idclient', 'int(10)', '', '', '0', '','');
dbUpgradeTable($prefix."_news", 'idlang', 'int(10)', '', '', '0', '','');
dbUpgradeTable($prefix."_news", 'welcome', 'tinyint(1)', '', '', '0', '','');
dbUpgradeTable($prefix."_news", 'name', 'varchar(255)', '', '', '', '','');
dbUpgradeTable($prefix."_news", 'subject', 'text', 'YES', '', '', '','');
dbUpgradeTable($prefix."_news", 'message', 'text', 'YES', '', '', '','');
dbUpgradeTable($prefix."_news", 'newsfrom', 'varchar(255)', '', '', '', '','');
dbUpgradeTable($prefix."_news", 'newsdate', 'datetime', 'YES', '', '', '','');
dbUpgradeTable($prefix."_news", 'author', 'varchar(32)', '', '', '', '','');
dbUpgradeTable($prefix."_news", 'created', 'datetime', '', '', '0000-00-00 00:00:00', '','');
dbUpgradeTable($prefix."_news", 'modified', 'datetime', '', '', '0000-00-00 00:00:00', '','');
dbUpgradeTable($prefix."_news", 'modifiedby', 'varchar(32)', '', '', '', '','');
dbUpgradeTable($prefix."_news_rcp", 'idnewsrcp', 'int(10)', '', 'PRI', '0', '','');
dbUpgradeTable($prefix."_news_rcp", 'idclient', 'int(10)', '', '', '0', '','');
dbUpgradeTable($prefix."_news_rcp", 'idlang', 'int(10)', '', '', '0', '','');
dbUpgradeTable($prefix."_news_rcp", 'email', 'varchar(255)', 'YES', '', '', '','');
dbUpgradeTable($prefix."_news_rcp", 'confirmed', 'tinyint(1)', '', '', '0', '','');
dbUpgradeTable($prefix."_news_rcp", 'confirmeddate', 'datetime', '', '', '0000-00-00 00:00:00', '','');
dbUpgradeTable($prefix."_news_rcp", 'lastaction', 'varchar(32)', 'YES', '', '', '','');
dbUpgradeTable($prefix."_news_rcp", 'name', 'varchar(255)', 'YES', '', '', '','');
dbUpgradeTable($prefix."_news_rcp", 'hash', 'varchar(32)', '', '', '', '','');
dbUpgradeTable($prefix."_news_rcp", 'deactivated', 'int(1)', '', '', '0', '','');
dbUpgradeTable($prefix."_news_rcp", 'author', 'varchar(32)', '', '', '', '','');
dbUpgradeTable($prefix."_news_rcp", 'created', 'datetime', '', '', '0000-00-00 00:00:00', '','');
dbUpgradeTable($prefix."_news_rcp", 'modified', 'datetime', '', '', '0000-00-00 00:00:00', '','');
dbUpgradeTable($prefix."_news_rcp", 'modifiedby', 'varchar(32)', '', '', '', '','');
dbUpgradeTable($prefix."_news_groups", 'idnewsgroup', 'int(10)', '', 'PRI', '0', '','');
dbUpgradeTable($prefix."_news_groups", 'idclient', 'int(10)', '', '', '0', '','');
dbUpgradeTable($prefix."_news_groups", 'idlang', 'int(10)', '', '', '0', '','');
dbUpgradeTable($prefix."_news_groups", 'groupname', 'varchar(32)', '', '', '', '','');
dbUpgradeTable($prefix."_news_groups", 'defaultgroup', 'tinyint(1)', '', '', '0', '','');
dbUpgradeTable($prefix."_news_groupmembers", 'idnewsgroupmember', 'int(10)', '', 'PRI', '0', '','');
dbUpgradeTable($prefix."_news_groupmembers", 'idnewsgroup', 'int(10)', '', '', '0', '','');
dbUpgradeTable($prefix."_news_groupmembers", 'idnewsrcp', 'int(10)', '', '', '0', '','');
Zuletzt geändert von emergence am Di 18. Jan 2005, 23:34, insgesamt 1-mal geändert.
*** make your own tools (wishlist :: thx)
ergänzungen für die setup/sql/base.sql (unter berücksichtigung des menuless patches)
zu dem vorigen hab ich noch ne anmerkung
die 0 am schluss sorgt dafür das das recht nicht unter bereiche gelistet wird (ist das so beabsichtigt ?)
änderungen in base.sql
wird ersetzt durch
und
durch
eine con_sequence anpassung ist nicht notwendig... das macht die setup upgrade und install option automatisch...
Code: Alles auswählen
INSERT INTO !PREFIX!_area VALUES (86, '0', 'recipientgroups', 1, 1, 0);
Code: Alles auswählen
INSERT INTO !PREFIX!_nav_sub VALUES (81, 3, 86, 1, 'navigation/extra/recipientgroups', 1);
Code: Alles auswählen
INSERT INTO !PREFIX!_files VALUES (189, 86, 'include.recipients.group_menu.php', 'main');
INSERT INTO !PREFIX!_files VALUES (190, 86, 'include.recipients.group.subnav.php', 'main');
INSERT INTO !PREFIX!_files VALUES (191, 86, 'include.recipients.group_edit.php', 'main');
Code: Alles auswählen
INSERT INTO !PREFIX!_frame_files VALUES (196, 86, 2, 189);
INSERT INTO !PREFIX!_frame_files VALUES (197, 86, 3, 190);
INSERT INTO !PREFIX!_frame_files VALUES (198, 86, 4, 191);
Code: Alles auswählen
INSERT INTO !PREFIX!_actions VALUES (422, 86, '', 'recipientgroup_delete', '', '', 1);
INSERT INTO !PREFIX!_actions VALUES (423, 86, '', 'recipientgroup_create', '', '', 1);
INSERT INTO !PREFIX!_actions VALUES (424, 86, '', 'recipientgroup_recipient_delete', '', '', 1);
INSERT INTO !PREFIX!_actions VALUES (425, 86, '', 'recipientgroup_save_group', '', '', 1);
INSERT INTO !PREFIX!_actions VALUES (426, 19, '', 'news_send_exec', '', '', 0);
INSERT INTO !PREFIX!_actions VALUES (427, 16, '', 'news_duplicate', '', '', 0);
INSERT INTO !PREFIX!_actions VALUES (428, 50, '', 'recipients_purge', '', '', 0);
die 0 am schluss sorgt dafür das das recht nicht unter bereiche gelistet wird (ist das so beabsichtigt ?)
änderungen in base.sql
Code: Alles auswählen
INSERT INTO !PREFIX!_actions VALUES (341, 50, '', 'recipients_editrecipient', '', '', 1);
INSERT INTO !PREFIX!_actions VALUES (342, 50, '', 'recipients_createrecipient', '', '', 1);
INSERT INTO !PREFIX!_actions VALUES (343, 50, '', 'recipients_delete', '', '', 1);
Code: Alles auswählen
INSERT INTO !PREFIX!_actions VALUES (341, 50, '', 'recipients_save', '', '', 1);
INSERT INTO !PREFIX!_actions VALUES (342, 50, '', 'recipients_create', '', '', 1);
INSERT INTO !PREFIX!_actions VALUES (343, 50, '', 'recipients_delete', '', '', 1);
Code: Alles auswählen
INSERT INTO !PREFIX!_actions VALUES (337, 16, '', 'news_editnewsletter', '', '', 1);
INSERT INTO !PREFIX!_actions VALUES (338, 16, '', 'news_createnewsletter', '', '', 1);
Code: Alles auswählen
INSERT INTO !PREFIX!_actions VALUES (337, 16, '', 'news_save', '', '', 1);
INSERT INTO !PREFIX!_actions VALUES (338, 16, '', 'news_create', '', '', 1);
*** make your own tools (wishlist :: thx)
das script das die letzten anpassungen vornimmt müsste zuerst kontrollieren ob der nette schlüssel generiert wurde und
zweitens
falls einträge in lastmodified vorhanden sind auf das feld modified kopieren.
anschließend müsste das feld lastmodified gelöscht werden...
wäre eine variante
die andere das feld modified löschen falls lastmodified vorhanden ist
und last modified umbennen...
ich stell noch ein zipfile auf den server mit allen änderungen...
habs soweit getestet, nette funktionalität die der newsletter nun bietet...
zweitens
falls einträge in lastmodified vorhanden sind auf das feld modified kopieren.
anschließend müsste das feld lastmodified gelöscht werden...
wäre eine variante
die andere das feld modified löschen falls lastmodified vorhanden ist
und last modified umbennen...
ich stell noch ein zipfile auf den server mit allen änderungen...
habs soweit getestet, nette funktionalität die der newsletter nun bietet...
*** make your own tools (wishlist :: thx)
hier der link
-> http://dayside.net/newsletter_cvs-2005-01-18.zip
wohlgemerkt das läuft wirklich nur mit contenido-cvs-2005-01-18.tar
ich hoffe das ist so brauchbar...
-> http://www.contenido.org/forum/viewtopi ... 8882#38882
ist ebenso schon behoben... die beiden zeilen hab ich aber noch nicht aus
-> include.frontend.user_menu.php entfernt...
-> http://dayside.net/newsletter_cvs-2005-01-18.zip
wohlgemerkt das läuft wirklich nur mit contenido-cvs-2005-01-18.tar
ich hoffe das ist so brauchbar...
-> http://www.contenido.org/forum/viewtopi ... 8882#38882
ist ebenso schon behoben... die beiden zeilen hab ich aber noch nicht aus
-> include.frontend.user_menu.php entfernt...
*** make your own tools (wishlist :: thx)
ach ja
templates/template.generic_page.html
sollte bei der tabelle nicht
nicht folgendes ergänzt werden
sonst hat man beim extras/newsletter links oben ein weisses feld... 
templates/template.generic_page.html
sollte bei der tabelle nicht
Code: Alles auswählen
<table width="100%" border="0" cellspacing="0" cellpadding="0">
Code: Alles auswählen
height="100%"

*** make your own tools (wishlist :: thx)