Skip to content
This repository has been archived by the owner on Oct 13, 2021. It is now read-only.

Commit

Permalink
v2.0.0a1
Browse files Browse the repository at this point in the history
Check for limits as defined in permissions when displaying badges related to #16
Adds 2x,3x,4x image values to badges and categories #21
Replaced template matching with regular expression to improve tag selection.
RyleaStark committed Nov 30, 2020
1 parent 1e9605e commit b60c3eb
Showing 19 changed files with 169 additions and 35 deletions.
6 changes: 4 additions & 2 deletions Admin/Controller/Badge.php
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
<?php
/**
* Badges xF2 addon by CMTV
* Enjoy!
* [VersoBit] Badges
*/

namespace CMTV\Badges\Admin\Controller;
@@ -168,6 +167,9 @@ protected function badgeSaveProcess(\CMTV\Badges\Entity\Badge $badge)
'icon_type' => 'str',
'fa_icon' => 'str',
'image_url' => 'str',
'image_url_2x' => 'str',
'image_url_3x' => 'str',
'image_url_4x' => 'str',
'class' => 'str',
'badge_category_id' => 'uint',
'display_order' => 'uint'
3 changes: 3 additions & 0 deletions Admin/Controller/BadgeCategory.php
Original file line number Diff line number Diff line change
@@ -126,6 +126,9 @@ protected function badgeCategorySaveProcess(\CMTV\Badges\Entity\BadgeCategory $b
'icon_type' => 'str',
'fa_icon' => 'str',
'image_url' => 'str',
'image_url_2x' => 'str',
'image_url_3x' => 'str',
'image_url_4x' => 'str',
'class' => 'str',
'display_order' => 'uint'
]);
27 changes: 24 additions & 3 deletions Entity/Badge.php
Original file line number Diff line number Diff line change
@@ -17,6 +17,9 @@
* @property string icon_type
* @property string fa_icon
* @property string image_url
* @property string image_url_2x
* @property string image_url_3x
* @property string image_url_4x
* @property string class
* @property int display_order
*
@@ -57,19 +60,37 @@ public static function getStructure(Structure $structure)

'fa_icon' => [
'type' => self::STR,
'maxLength' => 50,
'maxLength' => 256,
'default' => ''
],

'image_url' => [
'type' => self::STR,
'default' => '',
'maxLength' => 200
'maxLength' => 512
],

'image_url_2x' => [
'type' => self::STR,
'default' => '',
'maxLength' => 512
],

'image_url_3x' => [
'type' => self::STR,
'default' => '',
'maxLength' => 512
],

'image_url_4x' => [
'type' => self::STR,
'default' => '',
'maxLength' => 512
],

'class' => [
'type' => self::STR,
'maxLength' => 50,
'maxLength' => 256,
'default' => ''
],

27 changes: 24 additions & 3 deletions Entity/BadgeCategory.php
Original file line number Diff line number Diff line change
@@ -16,6 +16,9 @@
* @property string icon_type
* @property string fa_icon
* @property string image_url
* @property string image_url_2x
* @property string image_url_3x
* @property string image_url_4x
* @property string class
* @property int display_order
*
@@ -49,19 +52,37 @@ public static function getStructure(Structure $structure)

'fa_icon' => [
'type' => self::STR,
'maxLength' => 50,
'maxLength' => 256,
'default' => ''
],

'image_url' => [
'type' => self::STR,
'default' => '',
'maxLength' => 200
'maxLength' => 512
],

'image_url_2x' => [
'type' => self::STR,
'default' => '',
'maxLength' => 512
],

'image_url_3x' => [
'type' => self::STR,
'default' => '',
'maxLength' => 512
],

'image_url_4x' => [
'type' => self::STR,
'default' => '',
'maxLength' => 512
],

'class' => [
'type' => self::STR,
'maxLength' => 50,
'maxLength' => 256,
'default' => ''
],

8 changes: 6 additions & 2 deletions Repository/UserBadge.php
Original file line number Diff line number Diff line change
@@ -77,14 +77,18 @@ public function takeAwayBadge(User $user, int $badgeId)

public function getRecentUserBadges(User $user)
{
$allowedFeatured = $this->getAllowedFeaturedBadges($user);
$sortSetting = XF::options()->CMTV_Badges_Featured_Badges_Sort;

if($sortSetting == 'asc' || $sortSetting == 'desc') {
$finder = $this->finder(C::__('UserBadge'))
->where('user_id', $user->user_id)
->order('award_date', $sortSetting)
->with('Badge')
->limit(5);
->with('Badge');

if ($allowedFeatured !== -1) {
$finder->limit($allowedFeatured);
}

$recentBadges = $finder->fetch();
}
4 changes: 4 additions & 0 deletions _data/phrases.xml
Original file line number Diff line number Diff line change
@@ -36,6 +36,10 @@
<phrase title="CMTV_Badges_has_user_criteria" version_id="1000070" version_string="1.0.0"><![CDATA[Has user criteria]]></phrase>
<phrase title="CMTV_Badges_icon_code_explain" version_id="1000070" version_string="1.0.0"><![CDATA[Font Awesome icon code. For example: <code>fa-comments</code> or <code>fas fa-adjust</code>. <a href="https://fontawesome.com/icons?d=gallery" target="_blank">List of icon codes</a>.]]></phrase>
<phrase title="CMTV_Badges_icon_type" version_id="1000070" version_string="1.0.0"><![CDATA[Icon type]]></phrase>
<phrase title="CMTV_Badges_image_url_1x" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[URL to Image (1x Resolution)]]></phrase>
<phrase title="CMTV_Badges_image_url_2x" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[URL to Image (2x Resolution) - Optional]]></phrase>
<phrase title="CMTV_Badges_image_url_3x" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[URL to Image (3x Resolution) - Optional]]></phrase>
<phrase title="CMTV_Badges_image_url_4x" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[URL to Image (4x Resolution) - Optional]]></phrase>
<phrase title="CMTV_Badges_image_url_explain" version_id="1000070" version_string="1.0.0"><![CDATA[The web path from your site's XenForo installation directory to icon image. For default XenForo style use the square image icon.]]></phrase>
<phrase title="CMTV_Badges_members_awarded_with_this_badge" version_id="1000070" version_string="1.0.0"><![CDATA[Members awarded with this badge]]></phrase>
<phrase title="CMTV_Badges_no_badges_have_been_added_to_this_category_yet" version_id="1000070" version_string="1.0.0"><![CDATA[No badges have been added to this category yet.]]></phrase>
15 changes: 4 additions & 11 deletions _data/template_modifications.xml
Original file line number Diff line number Diff line change
@@ -18,14 +18,8 @@ $0]]></replace>
$0]]></replace>
</modification>
<modification type="public" template="member_tooltip" modification_key="CMTV_Badges_member_tooltip" description="Displaying featured badges in member tooltip" execution_order="10" enabled="1" action="str_replace">
<find><![CDATA[<xf:if contentcheck="true">
<div class="memberTooltip-blurb">
<xf:contentcheck>
<xf:userblurb user="$user" tag="div" />
</xf:contentcheck>
</div>
</xf:if>]]></find>
<modification type="public" template="member_tooltip" modification_key="CMTV_Badges_member_tooltip" description="Displaying featured badges in member tooltip" execution_order="10" enabled="1" action="preg_replace">
<find><![CDATA[(<xf:if contentcheck="true">*\s*<div class="memberTooltip-blurb">*\s*<xf:contentcheck>*\s*<xf:userblurb user="\$user" tag="div" \/>*\s*<\/xf:contentcheck>*\s*<\/div>*\s*<\/xf:if>)]]></find>
<replace><![CDATA[$0
<xf:if is="{{ property('CMTV_Badges_show_in_tooltip') }}">
@@ -60,9 +54,8 @@ $0]]></replace>
arg-location="member_view" arg-user="{$user}" />
</xf:if>]]></replace>
</modification>
<modification type="public" template="message_macros" modification_key="CMTV_Badges_message_macros" description="Displaying featured badges" execution_order="10" enabled="1" action="str_replace">
<find><![CDATA[ <xf:if contentcheck="true">
<div class="message-userExtras">]]></find>
<modification type="public" template="message_macros" modification_key="CMTV_Badges_message_macros" description="Displaying featured badges" execution_order="10" enabled="1" action="preg_replace">
<find><![CDATA[(<xf:if contentcheck="true">*\s*<div class="message-userExtras">)]]></find>
<replace><![CDATA[<xf:if is="{{ property('CMTV_Badges_show_in_message') }}">
<xf:css src="CMTV_Badges_featured_badges.less" />
33 changes: 31 additions & 2 deletions _data/templates.xml
Original file line number Diff line number Diff line change
@@ -102,7 +102,7 @@
<xf:submitrow icon="save" />
</div>
</xf:form>]]></template>
<template type="admin" title="CMTV_Badges_badge_edit" version_id="1000270" version_string="1.0.2"><![CDATA[<xf:if is="$badge.isInsert()">
<template type="admin" title="CMTV_Badges_badge_edit" version_id="2000010" version_string="2.0.0 Alpha"><![CDATA[<xf:if is="$badge.isInsert()">
<xf:title>{{ phrase('CMTV_Badges_add_badge') }}</xf:title>
<xf:else />
<xf:title>{{ phrase('CMTV_Badges_edit_badge:') }} {$badgeCategory.title}</xf:title>
@@ -144,11 +144,40 @@
</xf:option>
<xf:option value="image" label="{{ phrase('image') }}">
<xf:dependent>
<xf:textbox name="image_url" value="{$badge.image_url}" />
<table style="width:100%">
<tr>
<td>
<xf:textbox name="image_url" value="{$badge.image_url}" placeholder="{{ phrase('CMTV_Badges_image_url_1x') }}" />
</td>
<td>
<xf:textbox name="image_url_3x" value="{$badge.image_url_3x}" placeholder="{{ phrase('CMTV_Badges_image_url_3x') }}" />
</td>
</tr>
<tr>
<td>
<xf:textbox name="image_url_2x" value="{$badge.image_url_2x}" placeholder="{{ phrase('CMTV_Badges_image_url_2x') }}" />
</td>
<td>
<xf:textbox name="image_url_4x" value="{$badge.image_url_4x}" placeholder="{{ phrase('CMTV_Badges_image_url_4x') }}" />
</td>
</tr>
</table>
<dfn class="inputChoices-explain">{{ phrase('CMTV_Badges_image_url_explain') }}</dfn>
<xf:comment>Image Previews (needs formatting)</xf:comment>
<xf:if is="$badge.image_url">
<img class="image-icon-preview" src="{{ base_url($badge.image_url) }}" />
</xf:if>
<xf:if is="$badge.image_url_2x">
<img class="image-icon-preview" src="{{ base_url($badge.image_url_2x) }}" />
</xf:if>
<xf:if is="$badge.image_url_3x">
<img class="image-icon-preview" src="{{ base_url($badge.image_url_3x) }}" />
</xf:if>
<xf:if is="$badge.image_url_4x">
<img class="image-icon-preview" src="{{ base_url($badge.image_url_4x) }}" />
</xf:if>
</xf:dependent>
</xf:option>
</xf:radiorow>
1 change: 1 addition & 0 deletions _output/phrases/CMTV_Badges_image_url_1x.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
URL to Image (1x Resolution)
1 change: 1 addition & 0 deletions _output/phrases/CMTV_Badges_image_url_2x.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
URL to Image (2x Resolution) - Optional
1 change: 1 addition & 0 deletions _output/phrases/CMTV_Badges_image_url_3x.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
URL to Image (3x Resolution) - Optional
1 change: 1 addition & 0 deletions _output/phrases/CMTV_Badges_image_url_4x.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
URL to Image (4x Resolution) - Optional
24 changes: 24 additions & 0 deletions _output/phrases/_metadata.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,28 @@
{
"CMTV_Badges_image_url_1x.txt": {
"global_cache": false,
"version_id": 2000010,
"version_string": "2.0.0 Alpha",
"hash": "8c7804535cb405504d5103cee4df80df"
},
"CMTV_Badges_image_url_2x.txt": {
"global_cache": false,
"version_id": 2000010,
"version_string": "2.0.0 Alpha",
"hash": "b24acada95b9e8dc7d1b89ea6af48b54"
},
"CMTV_Badges_image_url_3x.txt": {
"global_cache": false,
"version_id": 2000010,
"version_string": "2.0.0 Alpha",
"hash": "d9935fbc44ef85a3a6bd7e9b0be8753f"
},
"CMTV_Badges_image_url_4x.txt": {
"global_cache": false,
"version_id": 2000010,
"version_string": "2.0.0 Alpha",
"hash": "8feae4c3c1b3ecb18c4eb440384701d2"
},
"alert_opt_out.badge_award.txt": {
"global_cache": false,
"version_id": 1000770,
4 changes: 2 additions & 2 deletions _output/template_modifications/_metadata.json
Original file line number Diff line number Diff line change
@@ -12,7 +12,7 @@
"hash": "e0503cca203df1a647b832f8bb8b9301"
},
"public/CMTV_Badges_member_tooltip.json": {
"hash": "494bc953df68f916e92212f285db87fb"
"hash": "d4ec46caecd8dd6463388849f8eee7c7"
},
"public/CMTV_Badges_member_view_badges_pane.json": {
"hash": "b6ff04d06075a53ee1f8fe2a57e5363e"
@@ -24,6 +24,6 @@
"hash": "3d658203193bc9ddeaa2210d7e933d8f"
},
"public/CMTV_Badges_message_macros.json": {
"hash": "c856b0946686f5a334959c63b40020e0"
"hash": "135c9366b543bec3abaa002012ff51dd"
}
}
Original file line number Diff line number Diff line change
@@ -3,7 +3,7 @@
"description": "Displaying featured badges in member tooltip",
"execution_order": 10,
"enabled": true,
"action": "str_replace",
"find": "<xf:if contentcheck=\"true\">\n\t\t\t\t\t\t<div class=\"memberTooltip-blurb\">\n\t\t\t\t\t\t<xf:contentcheck>\n\t\t\t\t\t\t\t<xf:userblurb user=\"$user\" tag=\"div\" />\n\t\t\t\t\t\t</xf:contentcheck>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</xf:if>",
"action": "preg_replace",
"find": "(<xf:if contentcheck=\"true\">*\\s*<div class=\"memberTooltip-blurb\">*\\s*<xf:contentcheck>*\\s*<xf:userblurb user=\"\\$user\" tag=\"div\" \\/>*\\s*<\\/xf:contentcheck>*\\s*<\\/div>*\\s*<\\/xf:if>)",
"replace": "$0\n\n<xf:if is=\"{{ property('CMTV_Badges_show_in_tooltip') }}\">\n\t<xf:css src=\"CMTV_Badges_featured_badges.less\" />\n\t\n\t<xf:macro name=\"featured_badges\" template=\"CMTV_Badges_featured_badges_macros\"\n\t\t\t arg-location=\"member_tooltip\" arg-user=\"{$user}\" />\n</xf:if>"
}
Original file line number Diff line number Diff line change
@@ -3,7 +3,7 @@
"description": "Displaying featured badges",
"execution_order": 10,
"enabled": true,
"action": "str_replace",
"find": "\t\t\t<xf:if contentcheck=\"true\">\n\t\t\t\t<div class=\"message-userExtras\">",
"action": "preg_replace",
"find": "(<xf:if contentcheck=\"true\">*\\s*<div class=\"message-userExtras\">)",
"replace": "<xf:if is=\"{{ property('CMTV_Badges_show_in_message') }}\">\n\t<xf:css src=\"CMTV_Badges_featured_badges.less\" />\n\t\n\t<xf:macro name=\"featured_badges\" template=\"CMTV_Badges_featured_badges_macros\"\n\t\t\t arg-location=\"message\" arg-user=\"{$user}\" />\n</xf:if>\n\t\n$0"
}
6 changes: 3 additions & 3 deletions _output/templates/_metadata.json
Original file line number Diff line number Diff line change
@@ -10,9 +10,9 @@
"hash": "6d7385b0606a305495169f73cd9b6a5d"
},
"admin/CMTV_Badges_badge_edit.html": {
"version_id": 1000270,
"version_string": "1.0.2",
"hash": "a4a9e9da8b2af44376381634bf07da27"
"version_id": 2000010,
"version_string": "2.0.0 Alpha",
"hash": "ac0a8b149d539f49f000e2d5d9cafa49"
},
"admin/CMTV_Badges_badge_export.html": {
"version_id": 2000010,
31 changes: 30 additions & 1 deletion _output/templates/admin/CMTV_Badges_badge_edit.html
Original file line number Diff line number Diff line change
@@ -40,11 +40,40 @@ <h2 class="block-tabHeader tabs hScroller" data-xf-init="h-scroller tabs" role="
</xf:option>
<xf:option value="image" label="{{ phrase('image') }}">
<xf:dependent>
<xf:textbox name="image_url" value="{$badge.image_url}" />
<table style="width:100%">
<tr>
<td>
<xf:textbox name="image_url" value="{$badge.image_url}" placeholder="{{ phrase('CMTV_Badges_image_url_1x') }}" />
</td>
<td>
<xf:textbox name="image_url_3x" value="{$badge.image_url_3x}" placeholder="{{ phrase('CMTV_Badges_image_url_3x') }}" />
</td>
</tr>
<tr>
<td>
<xf:textbox name="image_url_2x" value="{$badge.image_url_2x}" placeholder="{{ phrase('CMTV_Badges_image_url_2x') }}" />
</td>
<td>
<xf:textbox name="image_url_4x" value="{$badge.image_url_4x}" placeholder="{{ phrase('CMTV_Badges_image_url_4x') }}" />
</td>
</tr>
</table>
<dfn class="inputChoices-explain">{{ phrase('CMTV_Badges_image_url_explain') }}</dfn>


<xf:comment>Image Previews (needs formatting)</xf:comment>
<xf:if is="$badge.image_url">
<img class="image-icon-preview" src="{{ base_url($badge.image_url) }}" />
</xf:if>
<xf:if is="$badge.image_url_2x">
<img class="image-icon-preview" src="{{ base_url($badge.image_url_2x) }}" />
</xf:if>
<xf:if is="$badge.image_url_3x">
<img class="image-icon-preview" src="{{ base_url($badge.image_url_3x) }}" />
</xf:if>
<xf:if is="$badge.image_url_4x">
<img class="image-icon-preview" src="{{ base_url($badge.image_url_4x) }}" />
</xf:if>
</xf:dependent>
</xf:option>
</xf:radiorow>
4 changes: 2 additions & 2 deletions addon.json
Original file line number Diff line number Diff line change
@@ -2,8 +2,8 @@
"legacy_addon_id": "",
"title": "[VersoBit] Badges",
"description": "Create fancy-looking badges and award users for valuable and unique actions!",
"version_id": 2000010,
"version_string": "2.0.0 Alpha",
"version_id": 2000011,
"version_string": "2.0.0 Alpha 1",
"dev": "VersoBit",
"dev_url": "https://versobit.dev/",
"faq_url": "",

0 comments on commit b60c3eb

Please sign in to comment.