WBCE CMS Forum

WBCE CMS – Way Better Content Editing.

Du bist nicht angemeldet.

#1 01.12.2020 19:08:03

bbs2
Mitglied

[gelöst] Bug bei Nutzung eines WBCE-Links ?

Hallo,

ich habe einen Text (ein Wort) im Newsletter mit einem
WBCE_Link versehen. Dies funktioniert nicht.
Hier erscheint die Meldung: The requested URL was not found on this server.
In der URL-Zeile wird folgende URL angezeigt:
http://vlw.tcb-kl.de/modules/tiny_newsletter/[wblink43]
Der Quellcode hierzu im Newsletter lautet:
<p><a href="[wblink43]"><img alt="" height="120" src="http://vlw.tcb-kl.de/media/Zeitschriften/VLW-Kompakt.jpg" width="484" /></a></p>

Wenn ich einen URL-Link schaffe, funktioniert die Seite:
Link:
http://vlw.tcb-kl.de/media/download_gal … -02-DV.pdf

Ich nutze WBCE 1.4.5
TNL: 0.4.3

Viele Grüße
Heinz

Beitrag geändert von florian (28.01.2021 20:40:45)

Offline

#2 01.12.2020 19:46:42

florian
Administrator

Re: [gelöst] Bug bei Nutzung eines WBCE-Links ?

Das ist nicht direkt ein Bug. [wblink43] wird in normalen Seiten durch einen Outputfilter in den korrekten Link umgewandelt. Allerdings immer "on the fly", also beim Aufruf der Seite, in der Datenbank wird der Link als "[wblink43]" gespeichert.
Die Newsletter liegen als E-Mail beim Empfänger sowieso, aber auch in der Web-Ansicht außerhalb des Einflussbereichs des Outputfilters, deshalb können die Links dort gar nicht umgewandelt werden. 
Den Workaround hast Du schon selbst herausgefunden: Der Link darf nicht als WBCE-Link, sondern muss als URL hinterlegt werden, also
https:// www.deinedomain.tld/pages/irgendwas.php.


Code allein macht nicht glücklich. Jetzt spenden!

Offline

#3 01.12.2020 19:58:50

bbs2
Mitglied

Re: [gelöst] Bug bei Nutzung eines WBCE-Links ?

Danke für die Erläuterung der Zusammenhänge.

Das Problem ist  übrigens über die Newsletter-Vorschau aufgetreten.

Wäre es dann nicht besser, die Einfügung eines WB-Links bei der Newslettererstellung   zu unterbinden?

Ich nutze jetzt halt direkt die URL als Link.
Neue Nutzer von TNL werden aber leider auf den WBCE-Link ebenfalls hereinfallen.

Danke
Viele Grüße und bleibt alle gesund
Heinz

Offline

#4 01.12.2020 22:45:39

colinax
Developer

Re: [gelöst] Bug bei Nutzung eines WBCE-Links ?

Wenn in der Newsletter-Vorschau angezeigt wird dass der Link nicht funktioniert, ist das für mich kein Bug, sondern Unwissenheit der User.

TNL hab ich nie verwendet aber ich gehe mal davon aus dass der CKE darin läuft, sofern dass stimmt kann man WB-Links erstellen nicht unterbinden, da man nur ganze Plugins deaktivieren kann, was wiederum heißt gar keine Links können erstellt werden (außer man weis wie es händisch geht).

LG

Offline

#5 02.12.2020 16:09:20

florian
Administrator

Re: [gelöst] Bug bei Nutzung eines WBCE-Links ?

Das Problem lässt sich relativ leicht lösen. Ich habe mir den Code des wblink-OPF angeschaut und ihn, wie üblich von Fachwissen unvorbelastet, mal für TNL adaptiert:

In der /modules/tiny_newsletter/admin/newsletters_save.php nach Zeile 20

$tnl_body_text = $admin->add_slashes(strip_tags($_POST['tnl_body_text']));

einfügen:

$pattern = '/\[wblink([0-9]+)\]/isU';
        if (preg_match_all($pattern, $tnl_body, $aMatches, PREG_SET_ORDER))
        {
            $aSearchReplaceList = array();
            foreach ($aMatches as $aMatch) {
                 // collect matches formatted like '[wblink123]' => 123
                $aSearchReplaceList[strtolower($aMatch[0])] = $aMatch[1];
            }
            // build list of PageIds for SQL query
            $sPageIdList = implode(',', $aSearchReplaceList); // '123,124,125'
            // replace all PageIds with '#' (stay on page death link)
            array_walk($aSearchReplaceList, function(&$value, $index){ $value = '#'; });
            $sql = 'SELECT `page_id`, `link` FROM `'.TABLE_PREFIX.'pages` '
                 . 'WHERE `page_id` IN('.$sPageIdList.')';
            if (($oPages = $database->query($sql))) {
                while (($aPage = $oPages->fetchRow(MYSQLI_ASSOC))) {
                    $aPage['link'] = ($aPage['link']
                                     ? PAGES_DIRECTORY.$aPage['link'].PAGE_EXTENSION
                                     : '#');
                    // collect all search-replace pairs with valid links
                    if (is_readable(WB_PATH.$aPage['link'])) {
                        // replace death link with found and valide link
                        $aSearchReplaceList['[wblink'.$aPage['page_id'].']'] =
                            WB_URL.$aPage['link'];
                    }
                }
            }
            // replace all found [wblink**] tags with their urls
            $tnl_body = str_ireplace(
                array_keys($aSearchReplaceList),
                $aSearchReplaceList,
                $tnl_body
            );
        }

Damit werden bei jedem Speichern des Newsletters eventuell vorhandene [wblink##]-Vorkommen in die tatsächliche URL der Seite konvertiert und so wird das dann auch in die Datenbank geschrieben und folglich in der Vorschau und der Mail angezeigt.


Code allein macht nicht glücklich. Jetzt spenden!

Offline

Liked by:

giz, bernd

#6 06.12.2020 11:56:23

bbs2
Mitglied

Re: [gelöst] Bug bei Nutzung eines WBCE-Links ?

Hallo,

das ist ja super. Es funktioniert einwandfrei.

Vielleicht kann dies in einem update standardmäßig eingefügt werden.

Ich habe inzwischen das Modul ganz gut im Griff und es tut was es tun soll recht gut. smile  smile

Gerne möchte ich in einem neuen Thema noch ein Problem melden und kleine Verbesserungsvorschläge machen.

Viele Grüße
Heinz

Offline

#7 24.01.2021 22:04:47

hpzaun
Mitglied

Re: [gelöst] Bug bei Nutzung eines WBCE-Links ?

Hallo,
ist die Version mit der Auflösung der WB-Links als Version 0.4.4 unter den Modulen hochgegegangen?
Schöne Grüße
HPZaun

Offline

#8 24.01.2021 22:14:17

colinax
Developer

Re: [gelöst] Bug bei Nutzung eines WBCE-Links ?

Hallo hpzaun,

falls du damit meinst ob der WB-Link Bug mit der 0.4.4 behoben wurde dann ja (siehe info.php):

/* *********************************************************************
* 0.4.4  fix issue with hidden nl confirmations, convert wblink in send-out nls (Florian)
* 0.4.3  fixed a bug with manaul added recievers (Bernd)
* 0.4.2  fixes for MySQL-Strict (Bernd)
* ****************************************************************** */

Offline

Fußzeile des Forums

up