From 796ea918866c15f0d59ce178d095022edfaf096d Mon Sep 17 00:00:00 2001
From: Thomas Lange =excerpt($PAGE['BODY']['HTML'])?> =excerpt($PAGE['BODY']['HTML']())?> =excerpt($POST['BODY']['HTML'])?> =excerpt($POST['BODY']['HTML']())?> =excerpt($USER['BODY']['HTML'])?> =excerpt($USER['BODY']['HTML']())?> =excerpt($PAGE['BODY']['HTML'], 600)?> =excerpt($PAGE['BODY']['HTML'](), 600)?>
Date: Fri, 5 May 2017 02:38:39 +0200
Subject: A significant increase in the response time has been achieved, since
the template parameters "$ITEM['BODY']['TEXT']" and "$ITEM['BODY']['HTML']"
are now no longer strings but closures (anonymous functions). This means that
the underlying logic, which parses the content or converts it into Markdown,
is not executed until one of these parameters is really needed and called in
the template (which maybe significantly increases the response time on a long
list of items which not use one of those two parameters).
This means that within templates you now have to call these parameters in the following way (note the brackets at the end, which represent a function call):
=$ITEM['BODY']['TEXT']()?>
=$ITEM['BODY']['HTML']()?>
In the background, the anonymous functions are called and executes $Item->getBody() and $Item->getHTML() only when needed. Previously, $Item->getBody() and $Item->getHTML() were basically executed and the parsed content was passed to the template, regardless of whether these parameters are required in the template or not!
---
core/functions.php | 16 ++++++++++++----
core/include/page/main.php | 2 +-
core/include/post/main.php | 2 +-
core/include/user/main.php | 2 +-
template/admin/html/page/item.php | 2 +-
template/admin/html/post/item.php | 2 +-
template/admin/html/user/item.php | 2 +-
template/standard/html/feed/item_page.php | 4 ++--
template/standard/html/feed/item_post.php | 4 ++--
template/standard/html/home.php | 2 +-
template/standard/html/page/item.php | 2 +-
template/standard/html/page/main.php | 2 +-
template/standard/html/post/item.php | 2 +-
template/standard/html/post/main.php | 2 +-
template/standard/html/user/item.php | 2 +-
template/standard/html/user/main.php | 2 +-
16 files changed, 29 insertions(+), 21 deletions(-)
diff --git a/core/functions.php b/core/functions.php
index 91a4006..fc97e3b 100644
--- a/core/functions.php
+++ b/core/functions.php
@@ -100,8 +100,12 @@ function generateItemData(Item $Item): array {
],
'BODY' => [
- 'TEXT' => $Item->getBody(),
- 'HTML' => $Item->getHTML()
+ 'TEXT' => function() use($Item) {
+ return $Item->getBody();
+ },
+ 'HTML' => function() use($Item) {
+ return $Item->getHTML();
+ }
],
'ATTR' => [
@@ -148,8 +152,12 @@ function generateUserItemData(User\Item $User): array {
],
'BODY' => [
- 'TEXT' => $User->getBody(),
- 'HTML' => $User->getHTML()
+ 'TEXT' => function() use($User) {
+ return $User->getBody();
+ },
+ 'HTML' => function() use($User) {
+ return $User->getHTML();
+ }
],
'ATTR' => [
diff --git a/core/include/page/main.php b/core/include/page/main.php
index bf3e03e..01579fc 100644
--- a/core/include/page/main.php
+++ b/core/include/page/main.php
@@ -47,7 +47,7 @@ try {
$MainTemplate->set('HTML', $PageTemplate);
$MainTemplate->set('HEAD', [
'NAME' => $page_data['ATTR']['NAME'],
- 'DESC' => description($page_data['BODY']['HTML'], Application::get('PAGE.DESCRIPTION_SIZE')),
+ 'DESC' => description($page_data['BODY']['HTML'](), Application::get('PAGE.DESCRIPTION_SIZE')),
'PERM' => $page_data['URL'],
'OG_IMAGES' => $page_data['FILE']['LIST']
]);
diff --git a/core/include/post/main.php b/core/include/post/main.php
index dc3cbdc..8cd0a49 100644
--- a/core/include/post/main.php
+++ b/core/include/post/main.php
@@ -47,7 +47,7 @@ try {
$MainTemplate->set('HTML', $PostTemplate);
$MainTemplate->set('HEAD', [
'NAME' => $post_data['ATTR']['NAME'],
- 'DESC' => description($post_data['BODY']['HTML'], Application::get('POST.DESCRIPTION_SIZE')),
+ 'DESC' => description($post_data['BODY']['HTML'](), Application::get('POST.DESCRIPTION_SIZE')),
'PERM' => $post_data['URL'],
'OG_IMAGES' => $post_data['FILE']['LIST']
]);
diff --git a/core/include/user/main.php b/core/include/user/main.php
index 79e0ea9..ba0d07b 100644
--- a/core/include/user/main.php
+++ b/core/include/user/main.php
@@ -62,7 +62,7 @@ try {
$MainTemplate->set('HTML', $UserTemplate);
$MainTemplate->set('HEAD', [
'NAME' => $user_data['ATTR']['FULLNAME'],
- 'DESC' => description($user_data['BODY']['HTML'], Application::get('USER.DESCRIPTION_SIZE')),
+ 'DESC' => description($user_data['BODY']['HTML'](), Application::get('USER.DESCRIPTION_SIZE')),
'PERM' => $User->getURL(),
'OG_IMAGES' => $User->getFiles()
]);
diff --git a/template/admin/html/page/item.php b/template/admin/html/page/item.php
index a19afa9..599e942 100644
--- a/template/admin/html/page/item.php
+++ b/template/admin/html/page/item.php
@@ -7,7 +7,7 @@
-
diff --git a/template/admin/html/post/item.php b/template/admin/html/post/item.php
index 750b03d..abc2b0f 100644
--- a/template/admin/html/post/item.php
+++ b/template/admin/html/post/item.php
@@ -7,7 +7,7 @@
-
diff --git a/template/admin/html/user/item.php b/template/admin/html/user/item.php
index 439916e..731f6b5 100644
--- a/template/admin/html/user/item.php
+++ b/template/admin/html/user/item.php
@@ -6,7 +6,7 @@
-
diff --git a/template/standard/html/feed/item_page.php b/template/standard/html/feed/item_page.php
index f1a7a4d..25d7d30 100644
--- a/template/standard/html/feed/item_page.php
+++ b/template/standard/html/feed/item_page.php
@@ -13,10 +13,10 @@
-
\ No newline at end of file
diff --git a/template/standard/html/page/main.php b/template/standard/html/page/main.php
index 621b939..3b62571 100644
--- a/template/standard/html/page/main.php
+++ b/template/standard/html/page/main.php
@@ -14,7 +14,7 @@ $time = "