Skip to content

Commit

Permalink
Merge branch 'master' into 6.0.0-dev
Browse files Browse the repository at this point in the history
  • Loading branch information
carakas committed Mar 28, 2018
2 parents 8664c8b + 986fa85 commit 7e3490b
Show file tree
Hide file tree
Showing 20 changed files with 157 additions and 102 deletions.
20 changes: 20 additions & 0 deletions src/Backend/Core/Installer/Data/locale.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,26 @@
<locale>
<Frontend>
<Core>
<item type="label" name="OpenNavigation">
<translation language="nl"><![CDATA[klap navigatie open]]></translation>
<translation language="en"><![CDATA[open navigation]]></translation>
<translation language="fr"><![CDATA[ouvrir la navigation]]></translation>
<translation language="ru"><![CDATA[Открытая навигация]]></translation>
<translation language="el"><![CDATA[Άνοιγμα πλοήγησης]]></translation>
<translation language="hu"><![CDATA[Nyissa meg a navigációt]]></translation>
<translation language="zh"><![CDATA[打開導航]]></translation>
<translation language="de"><![CDATA[Öffnen Sie die Navigation]]></translation>
</item>
<item type="label" name="CloseNavigation">
<translation language="nl"><![CDATA[navigatie dichtklappen]]></translation>
<translation language="en"><![CDATA[close navigation]]></translation>
<translation language="fr"><![CDATA[fermer la navigation]]></translation>
<translation language="ru"><![CDATA[закрыть навигацию]]></translation>
<translation language="el"><![CDATA[κλείστε την πλοήγηση]]></translation>
<translation language="hu"><![CDATA[zárja be a navigációt]]></translation>
<translation language="zh"><![CDATA[關閉導航]]></translation>
<translation language="de"><![CDATA[schließe die Navigation]]></translation>
</item>
<item type="error" name="NumberIsInvalid">
<translation language="nl"><![CDATA[Ongeldig getal.]]></translation>
<translation language="en"><![CDATA[Invalid number.]]></translation>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -192,7 +192,7 @@
{% endif %}
</div>
<div class="btn-group pull-right" role="group">
{{ macro.buttonIcon('', 'floppy-o', 'lbl.Save'|trans|ucfirst, 'btn-danger', {"type":"submit", "id":"editButton", "name":"edit"}) }}
{{ macro.buttonIcon('', 'floppy-o', 'lbl.Save'|trans|ucfirst, 'btn-primary', {"type":"submit", "id":"editButton", "name":"edit"}) }}
</div>
</div>
</div>
Expand Down
10 changes: 8 additions & 2 deletions src/Backend/Modules/Groups/Engine/Model.php
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,13 @@ public static function alreadyExists(string $groupName): bool

public static function delete(int $groupId): void
{
BackendModel::getContainer()->get('database')->delete('groups', 'id = ?', [$groupId]);
/** @var SpoonDatabase $database */
$database = BackendModel::getContainer()->get('database');

$database->delete('groups', 'id = ?', [$groupId]);
$database->delete('groups_settings', 'group_id = ?', [$groupId]);
$database->delete('groups_rights_actions', 'group_id = ?', [$groupId]);
$database->delete('groups_rights_modules', 'group_id = ?', [$groupId]);
}

public static function deleteActionPermissions(array $actionPermissions): void
Expand Down Expand Up @@ -166,7 +172,7 @@ public static function isUserInGroup(int $userId, int $groupId): bool
$groupsByUser = static::getGroupsByUser($userId);

foreach ($groupsByUser as $group) {
if ($group['id'] === $groupId) {
if ((int) $group['id'] === $groupId) {
return true;
}
}
Expand Down
28 changes: 13 additions & 15 deletions src/Backend/Modules/Groups/Layout/Templates/Add.html.twig
Original file line number Diff line number Diff line change
Expand Up @@ -54,23 +54,21 @@
<div class="row">
<div class="col-md-12">
<div class="panel-group" id="permissions" role="tablist" aria-multiselectable="true">
<div role="tree">
{% for permission in permissions %}
<div class="panel panel-transparent jsGroupsPermissionsModule">
<div class="panel-heading" role="tab" id="permission-heading-{{ permission.id }}">
<div data-toggle="collapse" role="treeitem" data-parent="#permission" data-target="#permission-list-{{ permission.id }}" aria-expanded="false" aria-controls="permission-list-{{ permission.id }}">
<h4 class="panel-title">
{{ permission.chk|raw }}
{{ macro.icon('caret-right fa-fw') }} {{ permission.label }}
</h4>
</div>
</div>
<div id="permission-list-{{ permission.id }}" class="panel-collapse collapse" role="tabpanel" aria-labelledby="permission-heading-{{ permission.id }}">
{{ permission.actions.dataGrid|raw }}
{% for permission in permissions %}
<div class="panel panel-transparent jsGroupsPermissionsModule">
<div class="panel-heading" role="tab" id="permission-heading-{{ permission.id }}">
<div data-toggle="collapse" role="treeitem" data-parent="#permission" data-target="#permission-list-{{ permission.id }}" aria-expanded="false" aria-controls="permission-list-{{ permission.id }}">
<h4 class="panel-title">
{{ permission.chk|raw }}
{{ macro.icon('caret-right fa-fw') }} {{ permission.label }}
</h4>
</div>
</div>
{% endfor %}
</div>
<div id="permission-list-{{ permission.id }}" class="panel-collapse collapse" role="tabpanel" aria-labelledby="permission-heading-{{ permission.id }}">
{{ permission.actions.dataGrid|raw }}
</div>
</div>
{% endfor %}
</div>
</div>
</div>
Expand Down
28 changes: 13 additions & 15 deletions src/Backend/Modules/Groups/Layout/Templates/Edit.html.twig
Original file line number Diff line number Diff line change
Expand Up @@ -62,23 +62,21 @@
<div class="col-md-12">
<div class="content-block">
<div class="panel-group" id="permissions" role="tablist" aria-multiselectable="true">
<div role="tree">
{% for permission in permissions %}
<div class="panel panel-transparent jsGroupsPermissionsModule">
<div class="panel-heading" role="tab" id="permission-heading-{{ permission.id }}">
<div data-toggle="collapse" role="treeitem" data-parent="#permission" data-target="#permission-list-{{ permission.id }}" aria-expanded="false">
<h4 class="panel-title">
{{ permission.chk|raw }}
{{ macro.icon('caret-right fa-fw') }} {{ permission.label }}
</h4>
</div>
</div>
<div id="permission-list-{{ permission.id }}" class="panel-collapse collapse" role="tabpanel" aria-labelledby="permission-heading-{{ permission.id }}">
{{ permission.actions.dataGrid|raw }}
{% for permission in permissions %}
<div class="panel panel-transparent jsGroupsPermissionsModule">
<div class="panel-heading" role="tab" id="permission-heading-{{ permission.id }}">
<div data-toggle="collapse" role="treeitem" data-parent="#permission" data-target="#permission-list-{{ permission.id }}" aria-expanded="false">
<h4 class="panel-title">
{{ permission.chk|raw }}
{{ macro.icon('caret-right fa-fw') }} {{ permission.label }}
</h4>
</div>
</div>
{% endfor %}
</div>
<div id="permission-list-{{ permission.id }}" class="panel-collapse collapse" role="tabpanel" aria-labelledby="permission-heading-{{ permission.id }}">
{{ permission.actions.dataGrid|raw }}
</div>
</div>
{% endfor %}
</div>
</div>
</div>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@
<div class="col-md-12">
<div class="btn-toolbar">
<div class="btn-group" role="group">
{{ macro.cancelButton(geturl('Index')) }}
{{ macro.buttonIcon(geturl('Index'), 'times', 'lbl.Cancel'|trans|ucfirst) }}
</div>
<div class="btn-group pull-right" role="group">
{{ macro.buttonIcon('', 'plus-square', 'lbl.Add'|trans|ucfirst, 'btn-primary', { "type":"submit", "id":"addButton", "name":"add" }) }}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
<div class="col-md-12">
<div class="btn-toolbar">
<div class="btn-group" role="group">
{{ macro.cancelButton(geturl('Groups')) }}
{{ macro.buttonIcon(geturl('Groups'), 'times', 'lbl.Cancel'|trans|ucfirst) }}
</div>
<div class="btn-group pull-right" role="group">
{{ macro.buttonIcon('', 'plus-square', 'lbl.AddGroup'|trans|ucfirst, 'btn-primary', { "type":"submit", "id":"addButton", "name":"add" }) }}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@
<div class="col-md-12">
<div class="btn-toolbar">
<div class="btn-group" role="group">
{{ macro.cancelButton(geturl('Edit') ~ '&id=' ~ id ~ "#tabGroups") }}
{{ macro.buttonIcon(geturl('Edit') ~ '&id=' ~ id ~ "#tabGroups", 'times', 'lbl.Cancel'|trans|ucfirst) }}
</div>
<div class="btn-group pull-right" role="group">
{{ macro.buttonIcon('', 'plus-square', 'lbl.Add'|trans|ucfirst, 'btn-primary', { "type":"submit", "id":"addButton", "name":"add" }) }}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
{% if showProfilesDeleteGroup %}
{{ macro.buttonIcon('', 'trash-o', 'lbl.Delete'|trans|ucfirst, 'btn-danger', { "type":"button", "data-toggle":"modal", "data-target":"#confirmDelete" }) }}
{% endif %}
{{ macro.cancelButton(geturl('Groups')) }}
{{ macro.buttonIcon(geturl('Groups'), 'times', 'lbl.Cancel'|trans|ucfirst) }}
</div>
<div class="btn-group pull-right" role="group">
{{ macro.buttonIcon('', 'floppy-o', 'lbl.Save'|trans|ucfirst, 'btn-primary', { "type":"submit", "name":"edit", "id":"saveButton" }) }}
Expand Down
4 changes: 2 additions & 2 deletions src/Backend/Modules/Tags/Engine/Model.php
Original file line number Diff line number Diff line change
Expand Up @@ -235,8 +235,8 @@ public static function saveTags(int $otherId, $tags, string $module, string $lan
$tags = (array) explode(',', (string) $tags);
}

// make sure the list of tags contains only unique and non-empty elements
$tags = array_filter(array_unique($tags));
// make sure the list of tags contains only unique and non-empty elements in a case insensitive way
$tags = array_filter(array_intersect_key($tags, array_unique(array_map('strtolower', $tags))));

// get database
$database = BackendModel::getContainer()->get('database');
Expand Down
16 changes: 15 additions & 1 deletion src/Frontend/Core/Js/frontend.js
Original file line number Diff line number Diff line change
Expand Up @@ -69,11 +69,25 @@ jsFrontend.controls = {
// init, something like a constructor
init: function () {
jsFrontend.controls.bindTargetBlank()
jsFrontend.controls.toggleCollapse()
},

// bind target blank
bindTargetBlank: function () {
$('a.targetBlank').attr('target', '_blank')
},

toggleCollapse: function () {
var $navToggle = $('.navbar-toggle')

if ($navToggle.length === 0) {
return
}

$navToggle.on('click', function() {
var $button = $(this)
$button.find('[data-role=label]').text(jsFrontend.locale.lbl($button.hasClass('collapsed') ? 'CloseNavigation' : 'OpenNavigation'))
}).find('[data-role=label]').text(jsFrontend.locale.lbl($navToggle.hasClass('collapsed') ? 'CloseNavigation' : 'OpenNavigation'))
}
}

Expand Down Expand Up @@ -532,7 +546,7 @@ jsFrontend.statistics = {
if (typeof _gaq === 'object' || typeof ga === 'function') {
// create a new selector
$.expr[':'].external = function (obj) {
return (typeof obj.href !== 'undefined') && !obj.href.match(/^mailto:/) && (obj.hostname !== window.location.hostname)
return (typeof obj.href !== 'undefined') && (obj.hostname !== window.location.hostname)
}

// bind on all links that don't have the class noTracking
Expand Down
4 changes: 2 additions & 2 deletions src/Frontend/Core/Layout/Templates/Base.html.twig
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,12 @@
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
<span class="sr-only">{$lblToggleNavigation}</span>
<span class="sr-only" data-role="label">{{ 'lbl.OpenNavigation'|trans }}</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="/{{ LANGUAGE }}">{{ siteTitle }}</a>
<a class="navbar-brand" href="/{% if SITE_MULTILANGUAGE %}{{ LANGUAGE }}{% endif %}">{{ siteTitle }}</a>
</div>
<div id="navbar" class="navbar-collapse collapse">
{{ getnavigation('page', 0, 1) }}
Expand Down
1 change: 0 additions & 1 deletion src/Frontend/Modules/Blog/Actions/Archive.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
use DateTimeImmutable;
use Frontend\Core\Engine\Base\Block as FrontendBaseBlock;
use Frontend\Core\Engine\Navigation;
use Frontend\Core\Engine\Model as FrontendModel;
use Frontend\Core\Language\Language as FL;
use Frontend\Core\Engine\Navigation as FrontendNavigation;
use Frontend\Modules\Blog\Engine\Model as FrontendBlogModel;
Expand Down
4 changes: 4 additions & 0 deletions src/Frontend/Modules/Blog/Actions/Category.php
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,10 @@ private function buildPaginationConfig(): array
$limit = $this->get('fork.settings')->get($this->getModule(), 'overview_num_items', 10);
$numberOfPages = (int) ceil($numberOfItems / $limit);

if ($numberOfPages === 0) {
$numberOfPages = 1;
}

// Check if the page exists
if ($requestedPage > $numberOfPages || $requestedPage < 1) {
throw new NotFoundHttpException();
Expand Down
4 changes: 4 additions & 0 deletions src/Frontend/Modules/Blog/Actions/Index.php
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,10 @@ private function buildPaginationConfig(): array
$limit = $this->get('fork.settings')->get($this->getModule(), 'overview_num_items', 10);
$numberOfPages = (int) ceil($numberOfItems / $limit);

if ($numberOfPages === 0) {
$numberOfPages = 1;
}

// Check if the page exists
if ($requestedPage > $numberOfPages || $requestedPage < 1) {
throw new NotFoundHttpException();
Expand Down
21 changes: 14 additions & 7 deletions src/Frontend/Modules/Blog/Layout/Templates/Category.html.twig
Original file line number Diff line number Diff line change
Expand Up @@ -77,13 +77,20 @@
</header>

<div class="block-article-body" itemprop="articleBody">
{% if item.image %}
<img itemprop="image" class="img-polaroid col-md-4 img-responsive pull-right" src="{{ FRONTEND_FILES_URL }}/Blog/images/source/{{ item.image }}" alt="{{ item.title }}" />{% endif %}
{% if not item.introduction %}
{{ item.text|raw }}
{% else %}
{{ item.introduction|raw }}
{% endif %}
<div class="row">
<div class="{% if item.image %} col-md-8{% else %} col-xs-12{% endif %}">
{% if not item.introduction %}
{{ item.text|raw }}
{% else %}
{{ item.introduction|raw }}
{% endif %}
</div>
{% if item.image %}
<div class="col-md-4">
<img itemprop="image" class="img-responsive" src="{{ FRONTEND_FILES_URL }}/Blog/images/source/{{ item.image }}" alt="{{ item.title }}" />
</div>
{% endif %}
</div>
</div>
</article>
{% endfor %}
Expand Down
86 changes: 45 additions & 41 deletions src/Frontend/Modules/Blog/Layout/Templates/Detail.html.twig
Original file line number Diff line number Diff line change
Expand Up @@ -103,57 +103,61 @@
</article>

{% block block_article_comments %}
<section id="{{ act.Comments }}" class="block-blog-article-comments">
<header role="banner" class="block-blog-article-comments-heading">
<h3>{{ 'lbl.Comments'|trans|ucfirst }}</h3>
</header>
{% if comments or item.allow_comments %}
<section id="{{ act.Comments }}" class="block-blog-article-comments">
<header role="banner" class="block-blog-article-comments-heading">
<h3>{{ 'lbl.Comments'|trans|ucfirst }}</h3>
</header>

{% if not comments %}
<div class="block-blog-article-comments-alerts">
{{ alerts.alert('info', 'msg.BlogNoComments'|trans) }}
</div>
{% else %}
{% for comment in comments %}
{# Do not alter the id! It is used as an anchor #}
<div
id="comment-{{ comment.id }}" class="block-blog-article-comments-comment row"
itemprop="comment"
itemscope
itemtype="http://schema.org/UserComments"
>
<div class="col-sm-1 block-blog-article-comments-comment-avatar">
<meta itemprop="discusses" content="{{ item.title }}" />
{% if comment.website %}
<a href="{{ comment.website }}">
{% endif %}
<img src="{{ FRONTEND_CORE_URL }}/Layout/images/default_author_avatar.gif" width="48" height="48" alt="{{ comment.author }}" class="replaceWithGravatar img-circle" data-gravatar-id="{{ comment.gravatar_id }}" />
{% if comment.website %}
</a>
{% endif %}
{% if not comments %}
{% if item.allow_comments %}
<div class="block-blog-article-comments-alerts">
{{ alerts.alert('info', 'msg.BlogNoComments'|trans) }}
</div>

<div class="col-sm-7">
<div class="block-blog-article-comments-comment-meta" itemscope itemtype="http://schema.org/Person">
{% endif %}
{% else %}
{% for comment in comments %}
{# Do not alter the id! It is used as an anchor #}
<div
id="comment-{{ comment.id }}" class="block-blog-article-comments-comment row"
itemprop="comment"
itemscope
itemtype="http://schema.org/UserComments"
>
<div class="col-sm-1 block-blog-article-comments-comment-avatar">
<meta itemprop="discusses" content="{{ item.title }}" />
{% if comment.website %}
<a href="{{ comment.website }}" itemprop="url">
<a href="{{ comment.website }}">
{% endif %}
<span itemprop="creator name">{{ comment.author }}</span>
<img src="{{ FRONTEND_CORE_URL }}/Layout/images/default_author_avatar.gif" width="48" height="48" alt="{{ comment.author }}" class="replaceWithGravatar img-circle" data-gravatar-id="{{ comment.gravatar_id }}" />
{% if comment.website %}
</a>
{% endif %}
{{ 'lbl.Wrote'|trans }}
<time itemprop="commentTime" datetime="{{ comment.created_on|date('Y-m-d\TH,i,s' ) }}">
{{ comment.created_on|timeago|raw }}
</time>
</div>
<div class="commentText block-blog-article-comments-comment-content" itemprop="commentText">
{{ comment.text|raw }}

<div class="col-sm-7">
<div class="block-blog-article-comments-comment-meta" itemscope itemtype="http://schema.org/Person">
{% if comment.website %}
<a href="{{ comment.website }}" itemprop="url">
{% endif %}
<span itemprop="creator name">{{ comment.author }}</span>
{% if comment.website %}
</a>
{% endif %}
{{ 'lbl.Wrote'|trans }}
<time itemprop="commentTime" datetime="{{ comment.created_on|date('Y-m-d\TH,i,s' ) }}">
{{ comment.created_on|timeago|raw }}
</time>
</div>
<div class="commentText block-blog-article-comments-comment-content" itemprop="commentText">
{{ comment.text|raw }}
</div>
</div>
</div>
</div>
{% endfor %}
{% endif %}
</section>
{% endfor %}
{% endif %}
</section>
{% endif %}
{% endblock %}

{% if item.allow_comments %}
Expand Down
Loading

0 comments on commit 7e3490b

Please sign in to comment.