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:
@@ -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));
|
||||
|
@@ -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
@@ -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
|
||||
}
|
||||
|
@@ -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
|
||||
}
|
@@ -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
|
||||
}
|
||||
|
@@ -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
|
||||
}
|
||||
|
@@ -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
|
||||
}
|
@@ -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
|
||||
}
|
@@ -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
|
||||
}
|
@@ -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"
|
||||
}
|
@@ -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 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@@ -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);
|
||||
|
@@ -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'];
|
||||
}
|
||||
|
||||
|
@@ -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 %}
|
||||
|
||||
|
@@ -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 %}
|
||||
|
||||
|
Reference in New Issue
Block a user