diff .cms/mini/page.teaser.php @ 0:78edf6b517a0 draft

24.10
author Coffee CMS <info@coffee-cms.ru>
date Fri, 11 Oct 2024 22:40:23 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/.cms/mini/page.teaser.php	Fri Oct 11 22:40:23 2024 +0000
@@ -0,0 +1,23 @@
+<?php
+
+if ( preg_match( '/<img[^>]+data-preview[^>]*>/us', $page['text'], $m ) ) {
+    $preview_img = $m[0];
+} else {
+    $preview_img = '';
+}
+
+if ( preg_match( '/^(.*)(<!--[\s]*preview-start[\s]*-->)(.*)(<!--[\s]*preview-end[\s]*-->)(.*)$/us', $page['text'], $m ) ) {
+    $preview = $m[3];
+} else {
+    $preview = preg_replace( "/<h1>(.*?)<\/h1>/u", "", $page['text'] );
+    $preview = mb_substr( trim( strip_tags( $preview ) ), 0, 500 );
+    $preview = preg_replace( '/\s\S*$/u', ' ...', $preview );
+    $preview = "<p>{$preview}</p>";
+}
+
+echo "
+<div class=teaser>
+<h2><a href='{$cms['base_path']}{$page['url']}'>{$page['title']}</a></h2>
+{$preview}
+</div>
+";
\ No newline at end of file