New AddOn: recently_changed

Third Party Plugins to CMSimple - how to install, use and create plugins

Moderator: Tata

cmb
Posts: 12445
Joined: Tue Jun 21, 2011 11:04 am
Location: Mü-Sa, RLP, DE
Contact:

Re: New AddOn: recently_changed

Post by cmb » Sun Mar 18, 2018 10:43 pm

olape wrote:
Sun Mar 18, 2018 6:33 pm
olape wrote:
Tue Mar 06, 2018 2:32 pm

Code: Select all

			$linktext_length = strlen($linktext);
			if($linktext_length > $length) {
				$linktext = substr($linktext, -$length);
				$stringpos = strpos($linktext, ' ');
				$linktext = substr($linktext, (-$length + $stringpos));
			}
Das sieht nicht korrekt aus. strlen(), substr() und strpos() sind im Allgemeinen nicht für UTF-8 kodierte Zeichenketten geeignet. Einfaches Beispiel: https://3v4l.org/N1hD5

Korrekter ist die Verwendung der entsprechenden utf8_* Funktionen. Wirklich korrekt wäre die Verwendung der grapheme_* Funktionen; diese erfordern allerdings die Intl-Extension von PHP, die oft nicht verfügbar ist.

Und vielleicht wäre ein regulärer Ausdruck die beste Lösung.
olape wrote:
Sun Mar 18, 2018 6:33 pm
olape wrote:
Tue Mar 06, 2018 2:32 pm

Code: Select all

	$i = 0;
	foreach (array_keys($pageData) as $page) {
		if ($i < $count) {
			if (!hide($page)) {
				$timestamp = $pageData[$page]['last_edit'];
				$date = date('d.m.Y', $timestamp);
				$pages[$date][] = $page;
			}
			$i++;
		} else {
			break;
		}
	}
Das $i wird hochgezählt, auch wenn die Seite gar nicht erfasst wird. Das $i++ müsste also eine Zeile nach oben verschoben werden (also mit dem } vertauscht). Und dann könnte man auch die beiden if Anweisungen zusammenfassen:

Code: Select all

if ($i < $count) && !hide($page)) {
Christoph M. Becker –Plugins for CMSimple_XH, but not for CMSimple 4+

olape
Posts: 520
Joined: Fri Mar 13, 2015 8:47 am
Contact:

Re: New AddOn: recently_changed

Post by olape » Mon Mar 19, 2018 7:05 am

cmb wrote:
Sun Mar 18, 2018 10:43 pm
Das sieht nicht korrekt aus. strlen(), substr() und strpos() sind im Allgemeinen nicht für UTF-8 kodierte Zeichenketten geeignet. Einfaches Beispiel: https://3v4l.org/N1hD5
Da hast du Recht.

cmb wrote:
Sun Mar 18, 2018 10:43 pm
Das $i wird hochgezählt, auch wenn die Seite gar nicht erfasst wird. Das $i++ müsste also eine Zeile nach oben verschoben werden (also mit dem } vertauscht). Und dann könnte man auch die beiden if Anweisungen zusammenfassen:
Das ist die Lösung.
Hätte ich auch selber drauf kommen können. :oops:

Post Reply