WBCE CMS – Way Better Content Editing.
You are not logged in.
Irgendwo ist der Wurm drinnen, ich komm einfach nicht drauf:
Code (Excludes wegen Fehlersuche):
////Entschlüsselung der Parameter
//
//
// Modul-Direction definieren
$message = "debug tnl_id = ".$tnl_id."<br />";
$tnl_id = isset($_REQUEST['tnl_id']) ? intval($_REQUEST['tnl_id']) : 0;
$mod_dir = "tiny_newsletter";
//
global $database, $wb;
/*function tnl_show_message($mod_dir, $message) {
/* $path = WB_PATH.'/modules/'.$mod_dir.'/templates/tnl.inc/message.html';
$content = file_get_contents($path);
if (strpos($content, '[MESSAGE]') === false) {return('no valid template found');}
$vars = array('[WB_URL]','[MOD_DIR]', '[MESSAGE]');
$values = array(WB_URL, $mod_dir, $message);
$content = str_replace($vars, $values, $content);
$content = $message;
return $content;
}*/
// Wenn kein Newsletter_id übergeben wird.
if ($tnl_id == 0) {
$message .= "Kein Newsletter ausgewählt";
} else {
$sql = 'SELECT * from `'.TABLE_PREFIX.'mod_tiny_newsletter_newsletters` WHERE `tnl_id` == '.$tnl_id.' ORDER BY `tnl_published_when` DESC';
$resultdb = $database->query($sql);
$out = '';
while( ($result = $resultdb->fetchRow())) {
$subject = $result['tnl_subject'];
$body = $result['tnl_body'];
$out.='<h3>'.$subject.'</h3><br /><br />'.$body.'';
}
$out.='';
$message .= $out;
}
// Ende kein Newsletter
return $message;
// archiv abfragen...
// $sql = 'SELECT * from `'.TABLE_PREFIX.'mod_tiny_newsletter_newsletters_archive` WHERE `tnl_id` == $tnl_id';
Fehler:
2021-03-07T11:09:23+00:00 [Exception] There was an unknown exception: Call to a member function fetchRow() on null in line (27) of /modules/droplets/droplets.php(24) : eval()'d code
Habe schon alles mögliche probiert, aber irgendetwas übersehe ich offensichtlich....
Die Archivabfrage funktioniert ja....
//: set group permissions
(!isset($_REQUEST['group')) ? ($group = 1) : ($group = $_REQUEST['group']+1);
//:
global $database, $wb;
$sql = 'SELECT * from `'.TABLE_PREFIX.'mod_tiny_newsletter_newsletters` WHERE `tnl_min_active` <= '.$group.' ORDER BY `tnl_published_when` DESC';
$resultdb = $database->query($sql);
$out = '<ul class="tnlarchive">';
while( ($result = $resultdb->fetchRow())) {
$outdate = date(DATE_FORMAT, $result['tnl_published_when']);
$out.='<li><a target="_blank" href="#?tnl_id='.$result['tnl_id'].'">'.$outdate.' | '.$result['tnl_subject'].'</a></li>';
}
$out.='</ul>';
return $out;
Hilfe!!!
Offline
Nur ein = im Query verwenden.
... WHERE `tnl_id` = '.$tnl_id.' ...
Last edited by florian (07.03.2021 12:37:36)
Code allein macht nicht glücklich. Jetzt spenden!
Offline
berny
Danke, das wars....
Wie immer, ein Zeichen machts aus .......
Offline
Hab jetzt die erste Alpha Version der droplets raus.
das eine Listet, das andere zeigt den Newsletter.
Ev kann das wer checken, ob das geht.
Last edited by berny (07.03.2021 15:59:03)
Offline
so, ein paar Kleinigkeiten hinzugefügt:
um die Verschlüsselung zu verbessern kann man das ganze um einen String erweitern. ($pluscode)
//tnl_list_go
// Config Droplet
//: Achtung, Verschlüsselungsparameter im Droplet ändern.
//Zusatzparameter (Buchstaben und Zahlen, keine Sonderzeichen)
//die gleichen wie im tnl_webview_go Droplet
$pluscode = "1234abcd";
//: Modulverzeichnis angeben:
$mod_dir = "tiny_newsletter";
//:
// Group-Aufruf im droplet, nicht in der Url!
(!isset($group)) ? ($group = 1) : ($group = $group);
//: Start Droplet
global $database, $wb;
$url = strtok($_SERVER["REQUEST_URI"], '?');
$escaped_url = htmlspecialchars( $url, ENT_QUOTES, 'UTF-8' );
$sql = 'SELECT * from `'.TABLE_PREFIX.'mod_tiny_newsletter_newsletters` WHERE `tnl_min_active` <= '.$group.' ORDER BY `tnl_published_when` DESC';
$resultdb = $database->query($sql);
$out = '<ul class="tnlarchive">';
while( ($result = $resultdb->fetchRow())) {
$outdate = date(DATE_FORMAT, $result['tnl_published_when']);
$param = base64_url_encode($result['tnl_id'], $pluscode);
$out.='<li><a href="'.$escaped_url.'?id='.$param.'">'.$outdate.' | '.$result['tnl_subject'].'</a></li>';
}
$out.='</ul>';
return $out;
function base64_url_encode($input, $pluscode) {
$pluscount = strlen($pluscount);
$input = $pluscode.$input;
return strtr(base64_encode($input), '+/=', '._-');
}
// tnl_webview_go
// Config Droplet
//: Achtung, Verschlüsselungsparameter im Droplet ändern.
//Entschlüsselung der Parameter
//Zusatzparameter (Buchstaben und Zahlen, keine Sonderzeichen)
//die gleichen wie im tnl_list_go Droplet
$pluscode = "1234abcd";
//: Modulverzeichnis angeben:
$mod_dir = "tiny_newsletter";
//:
//: Start Droplet
// $message = "debug tnl_id = ".$tnl_id."<br />";
(isset($_GET['id'])) ? ($input=$_GET['id']) : ($input=0);
// $message .= 'debug - input = '.$input.'<br />';
$tnl_id = base64_url_decode($input, $pluscode);
// $message .= 'debug - tnl_id = '.$tnl_id.'<br />';
$mod_dir = "tiny_newsletter";
//
global $database, $wb;
// Wenn kein Newsletter_id übergeben wird.
if ($tnl_id == 0) {
$message .= "Kein Newsletter ausgewählt";
} else {
$sql = 'SELECT * from `'.TABLE_PREFIX.'mod_tiny_newsletter_newsletters` WHERE `tnl_id` = '.$tnl_id.' ORDER BY `tnl_published_when` DESC';
$resultdb = $database->query($sql);
$out = '';
while( ($result = $resultdb->fetchRow())) {
$subject = $result['tnl_subject'];
$body = $result['tnl_body'];
$out.='<h3>'.$subject.'</h3>'.$body.'';
}
$out.='';
$message .= $out;
}
// Ende kein Newsletter
return $message;
// archiv abfragen...
// $sql = 'SELECT * from `'.TABLE_PREFIX.'mod_tiny_newsletter_newsletters_archive` WHERE `tnl_id` == $tnl_id';
function base64_url_decode($input, $pluscode) {
$pluscount = strlen($pluscode);
$tnl_id = base64_decode(strtr($input, '._-', '+/='));
$tnl_id = substr($tnl_id, $pluscount);
return $tnl_id;
}
Offline
Hi berny,
Der letzte Post ist zwar aus 2021.
Was sollen die Droplets genau machen?
Wofür brauche ich den $pluscode?
Ich habe die Droplets aus #4 nach dem Download-Zip importiert.
Dann den Code aus #5 in die Droplets kopiert.
Zu tnl_list_go:
Was macht die Liste tnl_list_go anders als das Droplet tnlarchive (Publikationsdatum absteigend sortierte, mit der Web-Ansicht des jeweiligen Newsletters sortierte Liste. Es werden nur die veröffentlichten Newsletter angezeigt (logisch))
tnlarchive erzeugt die Liste mit folgender Verlinkung und n=Newsletter-Nummer. -> domin.de/wbce/modules/tiny_newsletter/web.php?n=24
Mit tnl_list_go sieht die Verlinkungin der Liste so aus: domin.de/wbce/pages/newsletter/droplet-test-tnl_go_list.php?id=MTIzNGFiY2QyNA--
Bei Anklicken wird er der Newsletter aber nicht angezeigt
Zu tnl_webview_go
Was soll tnl_webview_go anzeigen? Das Droplet funktioniert bei mir nicht. Es wird noch nicht einmal die entsprechende Unter-Webseite aufgebaut.
Nur Block: Hauptblock Modul: WYSIWYG mit folgendem Inhalt
Droplet-Tests tnl_webview_go
[[tnl_webview_go]]
Schönen Abend
hpzaun
Offline
Der pluscode dient der Verschlüsselung, musst du nicht, kannst du.
Offline
Pages: 1