1
0
mirror of https://github.com/flextype/flextype.git synced 2025-08-05 20:57:41 +02:00

Flextype Core: remove date field and add new created_at, modified_at, published_at fields #196

This commit is contained in:
Awilum
2019-08-01 11:24:03 +03:00
parent d8848aceab
commit 96ab7abbcc
16 changed files with 93 additions and 80 deletions

View File

@@ -105,7 +105,11 @@ class Entries
//
// Entry Date
$entry_decoded['date'] = $entry_decoded['date'] ?? date($this->flextype['registry']->get('settings.date_format'), Filesystem::getTimestamp($entry_file));
$entry_decoded['published_at'] = $entry_decoded['published_at'] ? $entry_decoded['published_at'] : Filesystem::getTimestamp($entry_file);
$entry_decoded['created_at'] = $entry_decoded['created_at'] ? $entry_decoded['created_at'] : Filesystem::getTimestamp($entry_file);
// Entry Timestamp
$entry_decoded['modified_at'] = Filesystem::getTimestamp($entry_file);
// Entry Slug
$entry_decoded['slug'] = $entry_decoded['slug'] ?? ltrim(rtrim($id, '/'), '/');
@@ -403,6 +407,9 @@ class Entries
// Entry file path
$entry_file = $entry_dir . '/entry.json';
// Merge data
$data = array_merge($data, ['created_at' => Filesystem::getTimestamp($entry_file)]);
// Check if new entry file exists
if (!Filesystem::has($entry_file)) {
return Filesystem::write($entry_file, JsonParser::encode($data));

View File

@@ -1,13 +1,14 @@
{
"title": "About",
"image": "dsc-0826.jpg",
"template": "about",
"fieldset": "about",
"content": "<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>\r\n<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>\r\n",
"date": "June 07 2019 10:08:11",
"description": "",
"menu_item_title": "About",
"menu_item_url": "about",
"menu_item_target": "_self",
"menu_item_order": "5"
{
"title": "About",
"image": "dsc-0826.jpg",
"template": "about",
"fieldset": "about",
"content": "<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>\r\n<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>\r\n",
"description": "",
"menu_item_title": "About",
"menu_item_url": "about",
"menu_item_target": "_self",
"menu_item_order": "5",
"published_at": 1564409150,
"created_at": 1564409150
}

File diff suppressed because one or more lines are too long

View File

@@ -4,5 +4,6 @@
"template": "blog-post",
"fieldset": "blog-post",
"content": "<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>\n",
"date": "June 06 2019 22:08:11"
}
"published_at": 1564409150,
"created_at": 1564409150
}

View File

@@ -1,12 +1,13 @@
{
"title": "Blog",
"template": "blog",
"fieldset": "blog",
"date": "June 07 2019 10:08:11",
"description": "",
"menu_item_title": "Blog",
"menu_item_url": "blog",
"menu_item_target": "_self",
"menu_item_order": "2",
"entries_limit": "2"
{
"title": "Blog",
"template": "blog",
"fieldset": "blog",
"description": "",
"menu_item_title": "Blog",
"menu_item_url": "blog",
"menu_item_target": "_self",
"menu_item_order": "2",
"entries_limit": "2",
"published_at": 1564600243,
"created_at": 1564600243
}

View File

@@ -4,5 +4,6 @@
"template": "blog-post",
"fieldset": "blog-post",
"content": "<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>\n",
"date": "June 06 2019 22:08:11"
}
"published_at": 1564409150,
"created_at": 1564409150
}

View File

@@ -4,6 +4,7 @@
"template": "blog-post",
"fieldset": "blog-post",
"content": "<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>\r\n",
"date": "June 06 2019 22:08:11",
"description": ""
}
"description": "",
"published_at": 1564409150,
"created_at": 1564409150
}

View File

@@ -4,5 +4,6 @@
"template": "blog-post",
"fieldset": "blog-post",
"content": "<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>\n",
"date": "June 06 2019 22:08:11"
"published_at": 1564409150,
"created_at": 1564409150
}

View File

@@ -7,5 +7,6 @@
"menu_item_target": "_self",
"menu_item_order": "3",
"fieldset": "gallery",
"date": "July 02 2019 03:16:03"
}
"published_at": 1564409150,
"created_at": 1564409150
}

View File

@@ -1,8 +1,9 @@
{
"title": "Nature",
"gallery_img": "dsc-0636.jpg",
"description": "",
"template": "gallery-item",
"fieldset": "gallery-item",
"date": "July 02 2019 19:11:57"
{
"title": "Nature",
"gallery_img": "dsc-0636.jpg",
"description": "",
"template": "gallery-item",
"fieldset": "gallery-item",
"published_at": 1564409150,
"created_at": 1564409150
}

View File

@@ -1,13 +1,12 @@
{
"title": "Home",
"content": "<h1 style=\"text-align: center;\">\r\n Welcome!\r\n</h1>\r\n<p style=\"text-align: center;\" class=\"lead\">\r\n Welcome to your new Flextype powered website.\r\n <br>\r\n Flextype is succesfully installed, you can start editing the content and customising your site in <a href=\"./admin\">Admin panel</a>.\r\n</p>\r\n<br>\r\n<p style=\"text-align: center;\">Latest blog posts:</p>\r\n",
"template": "home",
"fieldset": "default",
"visibility": "visible",
"date": "February 20 2019 11:06:46",
"description": "",
"menu_item_title": "Home",
"menu_item_url": "home",
"menu_item_target": "_self",
"menu_item_order": "1"
{
"title": "Home",
"content": "<h1 style=\"text-align: center;\">\r\n Welcome!\r\n</h1>\r\n<p style=\"text-align: center;\" class=\"lead\">\r\n Welcome to your new Flextype powered website.\r\n <br>\r\n Flextype is succesfully installed, you can start editing the content and customising your site in <a href=\"./admin\">Admin panel</a>.\r\n</p>\r\n<br>\r\n<p style=\"text-align: center;\">Latest blog posts:</p>\r\n",
"template": "home",
"fieldset": "default",
"visibility": "visible",
"description": "",
"menu_item_title": "Home",
"menu_item_url": "home",
"menu_item_target": "_self",
"menu_item_order": "1"
}

View File

@@ -24,11 +24,6 @@
"title": "admin_visibility",
"type": "visibility_select",
"size": "col-4"
},
"date": {
"title": "admin_date",
"type": "text",
"size": "col-4"
}
}
},
@@ -74,4 +69,4 @@
}
}
}
}
}

View File

@@ -62,7 +62,7 @@ class EntriesController extends Controller
$response,
'plugins/admin/views/templates/content/entries/index.html',
[
'entries_list' => $this->entries->fetchAll($this->getEntryID($query), ['order_by' => ['field' => 'date', 'direction' => 'desc']]),
'entries_list' => $this->entries->fetchAll($this->getEntryID($query), ['order_by' => ['field' => 'published_at', 'direction' => 'desc']]),
'id_current' => $this->getEntryID($query),
'menu_item' => 'entries',
'parts' => $parts,
@@ -192,10 +192,11 @@ class EntriesController extends Controller
$data_result = [];
// Define data values based on POST data
$data_from_post['title'] = $data['title'];
$data_from_post['template'] = $template;
$data_from_post['fieldset'] = $data['fieldset'];
$data_from_post['date'] = date($this->registry->get('settings.date_format'), time());
$data_from_post['title'] = $data['title'];
$data_from_post['template'] = $template;
$data_from_post['fieldset'] = $data['fieldset'];
$data_from_post['published_at'] = time();
$data_from_post['created_at'] = time();
// Predefine data values based on selected fieldset
foreach ($fieldset['sections'] as $key => $section) {
@@ -323,6 +324,7 @@ class EntriesController extends Controller
$entry = $this->entries->fetch($id);
Arr::delete($entry, 'slug');
Arr::delete($entry, 'modified_at');
Arr::delete($_data, 'csrf_name');
Arr::delete($_data, 'csrf_value');
Arr::delete($_data, 'save_entry');
@@ -700,6 +702,7 @@ class EntriesController extends Controller
// Get Entry
$entry = $this->entries->fetch($this->getEntryID($query));
Arr::delete($entry, 'slug');
Arr::delete($entry, 'modified_at');
// Fieldsets for current entry template
$fieldsets_path = PATH['site'] . '/fieldsets/' . (isset($entry['fieldset']) ? $entry['fieldset'] : 'default') . '.json';
@@ -901,6 +904,7 @@ class EntriesController extends Controller
// Fetch entry
$entry = $this->entries->fetch($id);
Arr::delete($entry, 'slug');
Arr::delete($entry, 'modified_at');
// Merge entry data with $to_save_data
$result_data = array_merge($entry, $data);
@@ -911,7 +915,6 @@ class EntriesController extends Controller
} else {
$this->flash->addMessage('error', __('admin_message_entry_changes_not_saved'));
}
}
return $response->withRedirect($this->router->pathFor('admin.entries.edit') . '?id=' . $id . '&type=' . $type);

View File

@@ -31,7 +31,7 @@ class SettingsController extends Controller
public function index(/** @scrutinizer ignore-unused */ Request $request, Response $response) : Response
{
$entries = [];
foreach ($this->entries->fetchAll('', ['order_by' => ['field' => 'date', 'direction' => 'desc']]) as $entry) {
foreach ($this->entries->fetchAll('', ['order_by' => ['field' => 'published_at', 'direction' => 'desc']]) as $entry) {
$entries[$entry['slug']] = $entry['title'];
}

View File

@@ -6,18 +6,18 @@
{# pagination #}
{% set entries_limit = entries.fetch('blog').entries_limit %}
{% set entries_length = entries.fetchAll('blog', {'order_by': {'field': 'date', 'direction': 'desc'}})|length %}
{% set entries_length = entries.fetchAll('blog', {'order_by': {'field': 'published_at', 'direction': 'desc'}})|length %}
{% set entries_pages = (entries_length/entries_limit)|round %}
{% if page < 1 %}{% set page = 1 %}{% elseif page > entries_pages %}{% set page = entries_pages %}{% endif %}
{% set entries_offset = (page-1)*entries_limit %}
{% if entries_offset < 0 %}{% set entries_offset = 0 %}{% endif %}
{# /pagination #}
{% for entry in entries.fetchAll('blog', {'order_by': {'field': 'date', 'direction': 'desc'}, 'set_max_result': entries_limit, 'set_first_result': entries_offset}) %}
{% for entry in entries.fetchAll('blog', {'order_by': {'field': 'published_at', 'direction': 'desc'}, 'set_max_result': entries_limit, 'set_first_result': entries_offset}) %}
<a href="{{ entry.slug }}" class="blog-post">
<h3>{{ entry.title }}</h3>
<p>{{ entry.summary|shortcode|raw}}</p>
<div>{{ entry.date }}</div>
<div>{{ entry.published_at|date(settings.date_format) }}</div>
</a>
{% endfor %}

View File

@@ -4,11 +4,11 @@
{{ entry.content|shortcode|raw}}
{% for entry in entries.fetchAll('blog', {'order_by': {'field': 'date', 'direction': 'desc'}, 'set_max_result': '3'}) %}
{% for entry in entries.fetchAll('blog', {'order_by': {'field': 'published_at', 'direction': 'desc'}, 'set_max_result': '3'}) %}
<a href="{{ entry.slug }}" class="blog-post">
<h3>{{ entry.title }}</h3>
<p>{{ entry.summary|shortcode|raw}}</p>
<div>{{ entry.date }}</div>
<div>{{ entry.published_at|date(settings.date_format) }}</div>
</a>
{% endfor %}