WBCE CMS Forum

WBCE CMS – Way Better Content Editing.

Du bist nicht angemeldet.

#1 02.05.2017 12:46:47

grindbatzn
Gast

Tiny Newsletter: Restl. Probleme - erledigt

Ich habe hier die Version 0.3.3 hochgeladen:
http://wbce.at/downloads/tiny_newsletter.zip

Es gibt noch Fragen, wo ich einfach nicht weiterkomme - hier bitte ich um Profi Hilfe
Am einfachsten mal die obige Version installieren.

WB-Links, Droplets.
Problem sehen: Einen Newsletter anlegen, WB-LInk und Droplet im Editor einfügen - > unter dem Editor: Testing -> Preview: WBlink und Droplet funktioniert nicht.

Wo liegt das Problem:
Hier beginnt es:
/modules/tiny_newsletter/show.php ganz oben: $wb oder $admin? In $admin lassen sich die Rechte leichter überprüfen, geht zur Not aber auch über $wb.

show.php includet /inc/build_mail.inc.php
(build_mail.inc.php wird von mehreren Daten includet.)
Hier werden die Newsletter tatsächlich zusammengebaut.

Ab Zeile 100 bis ca 134:
Hier ist der Newsletter komplett in $output gespeichert. Das ist analog zur WBCE-index.php und da habe ich mir den ganzen Plunder auch rauskopiert.
Problem: Es tut nicht. Nichts davon wird ausgeführt, und ich kapiers insgesamt auch nicht.

Kann mir da jemand helfen?

----------------------------------

Ein Randproblem ist
inc/mailfunctions.inc.php -> function tnl_textversion($html)
Problem sehen: Text-Version leer lassen,  Klick auf Testing -> PreviewText

Die o.g. Funktion soll aus dem gesamten HTML (von <html> bis </html>) eine notdürftige Textversion generieren, wenn das Feld "Textversion" leer ist, wobei die Links als URLs überbleiben sollen.
Hier reichen einfach meine  preg_replace-Kenntnisse nicht aus.
Ich hab diverses aus stackoverflow usw zusammengesucht, kann es aber einfach nicht umsetzen.
Es gibt auch ein paar Klassen dafür, die sind allesamt riesig und machen es auch nicht besser.

Beitrag geändert von grindbatzn (02.05.2017 19:30:39)

#2 02.05.2017 16:05:57

bernd
Developer

Re: Tiny Newsletter: Restl. Probleme - erledigt

Ich denke jetzt mal nur laut, kann natürlich sein, daß ich total auf dem Holzweg bin:

Du schickst den $output durch den Outputfilter, bevor [MAIL_BODY] durch den Inhalt von $tnl_body ersetzt ist.
Da ist ja noch nix zu filtern ?!?


... nein in Europa verwenden wir beim Programmieren nicht € statt $ ...

Online

#3 02.05.2017 16:56:46

grindbatzn
Gast

Re: Tiny Newsletter: Restl. Probleme - erledigt

yikes

#4 02.05.2017 17:12:23

webbird
Administrator

Re: Tiny Newsletter: Restl. Probleme - erledigt

> Problem: Es tut nicht. Nichts davon wird ausgeführt, und ich kapiers insgesamt auch nicht.

Ohne jetzt lästerlich klingen zu wollen: Der ganze Kram ist (und war schon immer) ein Graus. Manche Methoden verändern gleich die eingehenden Daten (function myFuncion(&$data)), andere nicht. Bei ersteren braucht man die Rückgabe nicht in Empfang zu nehmen, bei letzteren muß man das. Und dann kann es noch sein, daß das in WBCE 1.1 anders läuft als in 1.2. Das muß man sich wirklich im Einzelnen angucken.


Ich habe eine Amazon-Wishlist. wink Oder spende an das Projekt.
Ich kann, wenn ich will, aber wer will, dass ich muss, kann mich mal

Online

#5 02.05.2017 17:25:10

webbird
Administrator

Re: Tiny Newsletter: Restl. Probleme - erledigt

Ich habe jetzt den Code vom Output Filter Dashboard nicht, in meinem WBCE-Installation ist noch der "alte" Output Filter drin, aber ich versuche mal, den Code auseinander zu dröseln.

//wie in /index.php:
// OPF hook ,Load OutputFilter functions
if(file_exists(WB_PATH .'/modules/outputfilter_dashboard/functions.php')) {
    include(WB_PATH .'/modules/outputfilter_dashboard/functions.php');
    // use 'cache' instead of 'nocache' to enable page-cache.
    // Do not use 'cache' in case you use dynamic contents (e.g. snippets)!
    opf_controller('init', 'nocache');
    //echo '<p>opf_controller init</p>';
}

Was immer opf_controller() macht, es ist offenbar eine Funktion, die zum Output Filter Dashboard gehört. Man müßte dort also mal in der functions.php schauen, was das macht.


// Load functions available to templates, modules and code sections
// also, set some aliases for backward compatibility
require WB_PATH . '/framework/frontend.functions.php';

Warum das an dieser Stelle aufgerufen wird ist mir nicht klar.


// OPF hook, apply outputfilter
if(function_exists('opf_apply_filters')) {
    $output = opf_controller('page', $output);
    //echo '<p>opf_controller page</p>';
}

Ich nehme mal an, die Funktion opf_apply_filters() gehört auch zum Dashboard. Möglicherweise könnte man sie also auch im ersten Code-Abschnitt unterbringen. Das kann ich ohne tiefere Kenntnis des Codes nicht beurteilen.


// execute old frontend output filters or not
if (!defined("WB_SUPPRESS_OLD_OPF") or  WB_SUPPRESS_OLD_OPF===false){
    // Module is installed?
    if (file_exists(WB_PATH . '/modules/output_filter/index.php')) {
        include_once WB_PATH . '/modules/output_filter/index.php';
        if (function_exists('executeFrontendOutputFilter')) {
            $output = executeFrontendOutputFilter($output);
            //echo '<p>executeFrontendOutputFilter</p>';
        }
    }
}

Offenbar der "alte" Code, der nur bei entsprechender Konfiguration ausgeführt wird.

Ich halte es für eine schlechte Idee, beide Module zu verketten (also beide zu verwenden), da sie ja eigentlich für den gleichen Zweck sind, ganz egal, wie die Konfiguration ist. Wenn man das alte durch das neue Modul ablösen will, sollte man das auch so durchziehen. Also wenn neues Modul da dann das, sonst das. Und nicht eventuell auch noch das alte... Da kann doch fast nur Murks bei rauskommen...

Disclaimer: Persönliche Meinung ohne tiefere Einsicht in den Code.

Beitrag geändert von webbird (02.05.2017 17:27:09)


Ich habe eine Amazon-Wishlist. wink Oder spende an das Projekt.
Ich kann, wenn ich will, aber wer will, dass ich muss, kann mich mal

Online

#6 02.05.2017 17:33:32

webbird
Administrator

Re: Tiny Newsletter: Restl. Probleme - erledigt

Die Funktion opf_controller erfordert das Vorhandensein von $wb:

    case('page'):
        opf_apply_filters($opt, OPF_TYPE_PAGE, FALSE, $page_id, FALSE, $wb);

Könnte Teile Deines Problems erklären. Tipp (nicht schön aber funzt meistens):

    global $wb;
    $wb =& $admin;

(Voraussetzung: Du bist im BE und $admin ist belegt.) Dann hast Du Dein $admin mit "kann mehr" und $wb als "Alias".

Achja: Und in Entwicklungsumgebungen immer mit XDebug arbeiten! Dann kriegst Du mehr Fehler zu sehen als sonst.

Beitrag geändert von webbird (02.05.2017 17:34:56)


Ich habe eine Amazon-Wishlist. wink Oder spende an das Projekt.
Ich kann, wenn ich will, aber wer will, dass ich muss, kann mich mal

Online

#7 02.05.2017 17:48:33

bernd
Developer

Re: Tiny Newsletter: Restl. Probleme - erledigt

Wie dem auch sei, welche Funktion warum ein Graus ist, mal sollte einem Outputfilter halt auch was zum Filtern geben  roll

Im Editor:
im_editor.png

Preview (vorher):
preview_orig.png

Wenn ich dann diesen 3-Zeiler (das gleiche was nach dem Filter steht - lediglich $content zu $output geändert)

$vars = array('[MAIL_BODY]','[MAIL_SUBJECT]', '[MAIL_FOOTER]');
$values = array($tnl_body, $tnl_subject, $mail_footer);
$output = str_replace($vars, $values, $output);

vor den Filter kopiere:
preview_mod.png


... nein in Europa verwenden wir beim Programmieren nicht € statt $ ...

Online

#8 02.05.2017 17:50:26

grindbatzn
Gast

Re: Tiny Newsletter: Restl. Probleme - erledigt

Bernd hatte völlig recht, die Reihenfolge war falsch. Blöd oder schon betriebsblind, ich.

Das hat zwar so noch nichts bewirkt, aber:
Wenn ich dann
if (!defined("WB_SUPPRESS_OLD_OPF") or  WB_SUPPRESS_OLD_OPF===false){
auskommeniere, dann funzen wblinks und droplets. auch mit $admin (hoffentlich, das muss ich noch genauer checken)

Jetzt ist das so eine Sache:
Normalerweise läuft jede (ordentliche) Ausgabe im Frontend über /index.php
Diese ist immer kompatibel zur installierten WBCE-Version, weil sie ja mitausgetauscht wird.

Bei einem Modul ist das anders: Hier kann das Modul älter oder neuer sein.

ANgehängt eine aktualisierte Version von inc/build_mail.inc.php

Beitrag geändert von grindbatzn (02.05.2017 17:51:36)

#9 02.05.2017 18:09:30

grindbatzn
Gast

Re: Tiny Newsletter: Restl. Probleme - erledigt

Ich RIndvieh hab auch noch was anderes übersehen:
Das hängt von der installierten Version ab. auf wbce.at (wo ich alles mache, wo ich Mails versenden muss) hab ich irgendeine verwackelte 1.1.6. (ist aber glaub ich 1.1.11)
Am localhost hab ich eine 1.1.10 verwendet.

am sichersten ist man wohl vorerst mal, wenn man beinhart die alte

[== PHP ==]
 if (file_exists(WB_PATH . '/modules/output_filter/index.php')) {
        include_once WB_PATH . '/modules/output_filter/index.php';
        if (function_exists('executeFrontendOutputFilter')) {
            $output = executeFrontendOutputFilter($output);
        }
    }

verwendet - und nichts anderes.

#10 02.05.2017 18:30:11

cwsoft
Mitglied

Re: Tiny Newsletter: Restl. Probleme - erledigt

Hmm. Das ganze opf_gewurschtel bzw. generell die konkurierenden Filtermöglichkeiten sind noch nicht wirklich ausgereift. Aber schön zu hören dass es nun läuft.

Beitrag geändert von cwsoft (02.05.2017 18:31:02)


Account inactive since 2018/11/17.

Offline

#11 02.05.2017 19:14:36

grindbatzn
Gast

Re: Tiny Newsletter: Restl. Probleme - erledigt

Ich habe die Version 0.3.4 hochgeladen:
http://wbce.at/downloads/tiny_newsletter.zip

Mit nur executeFrontendOutputFilter drin.

Nicht dass ich besonderen Wert darauf legen würde, aber: Das funktioniert auch unter WB Classic.
Gerade auf websitebaker.at (2.10) installiert. Kein Problem, lief sofort.
(das verrate ich denen aber nicht ;-)

EDIT:
Das FIlter-WirrWarr: Da ist nicht WBCE dran schuld, das war jetzt eine verkettung unglücklicher Umstände bei mir.

Beitrag geändert von grindbatzn (02.05.2017 19:27:01)

Liked by:

ronja

#12 02.05.2017 19:29:57

grindbatzn
Gast

Re: Tiny Newsletter: Restl. Probleme - erledigt

Ich danke ALLEN für die Unterstützung!
Wieder ein Steinchen ins Mosaik gelegt.

#13 03.05.2017 18:45:37

webbird
Administrator

Re: Tiny Newsletter: Restl. Probleme - erledigt

Bitte nicht auf den Schlips getreten fühlen, es geht nicht um Code-Qualität oder sonstwas, sondern um den Wildwuchs. Droplets (mehrere Varianten), Output Filter (mehrere Varianten), Snippets und ZNips... und dann am besten nochmal alles per JavaScript auf links gedreht... (Ja auch LA gehört dazu, das ging halt mit WB nicht anders...) Da gehört wirklich mal Ordnung rein gebracht. Womit ich nicht behaupten will daß wir da bei BC schon sehr viel weiter sind, aber immerhin haben wir schon mal die Droplets mit Ralfs DropletsExtension und dem kompletten Seitenheader-Kram unter einem Hut... Das war echt schwer genug, daher weiß ich ziemlich genau, warum ich das "Graus" nenne... Nennt man auch "gewachsene Strukturen". big_smile


Ich habe eine Amazon-Wishlist. wink Oder spende an das Projekt.
Ich kann, wenn ich will, aber wer will, dass ich muss, kann mich mal

Online

#14 04.05.2017 09:52:13

grindbatzn
Gast

Re: Tiny Newsletter: Restl. Probleme - erledigt

Nochmal: Das Problem hier lag ausschließlich bei mir. Ich habe 2 Fehler gemacht und sie nicht bemerkt.
-----------

"gewachsene Strukturen" - oder auch "Evolution"

Klar schleppt man manche alten Dinge herum, die kannst du nur ausräumen, wenn du von vorne beginnst und ein neues CMS machst. Das wollen wir aber nicht.
Ich finde das auch nicht so schlimm. Die DInge existieren eben nebeneinander.

Fußzeile des Forums

up