Merge pull request #6581 from marc1706/ticket/17283

[ticket/17283] Remove iconify support
This commit is contained in:
Marc Alexander 2024-02-22 19:49:18 +01:00 committed by GitHub
commit ba2421ec0e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
105 changed files with 450 additions and 110736 deletions

View file

@ -67,26 +67,8 @@ function watch() {
gulp.watch(paths.styles.src, styles); gulp.watch(paths.styles.src, styles);
} }
function copyIconifyIcons() {
return gulp.src([
'node_modules/@iconify/json/json/fa.json',
'node_modules/@iconify/json/json/ic.json',
'node_modules/@iconify/json/json/mdi.json',
])
.pipe(gulp.dest('phpBB/assets/iconify'));
}
function copyIconifyJs() {
return gulp.src([
'node_modules/@iconify/iconify/dist/iconify.without-api.min.js',
])
.pipe(rename('iconify.min.js'))
.pipe(gulp.dest('phpBB/assets/iconify'));
}
exports.style = styles; exports.style = styles;
exports.minify = minify; exports.minify = minify;
exports.watch = watch; exports.watch = watch;
exports.copyIconify = gulp.parallel(copyIconifyJs, copyIconifyIcons);
exports.default = gulp.series(styles, minify, watch); exports.default = gulp.series(styles, minify, watch);

67
package-lock.json generated
View file

@ -9,8 +9,6 @@
"version": "4.0.0-dev", "version": "4.0.0-dev",
"license": "GPL-2.0", "license": "GPL-2.0",
"devDependencies": { "devDependencies": {
"@iconify/iconify": "^3.1.1",
"@iconify/json": "^2.2.163",
"autoprefixer": "^10.4.4", "autoprefixer": "^10.4.4",
"cssnano": "^5.1.7", "cssnano": "^5.1.7",
"eslint": "^8.13.0", "eslint": "^8.13.0",
@ -265,34 +263,6 @@
"integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
"dev": true "dev": true
}, },
"node_modules/@iconify/iconify": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/@iconify/iconify/-/iconify-3.1.1.tgz",
"integrity": "sha512-1nemfyD/OJzh9ALepH7YfuuP8BdEB24Skhd8DXWh0hzcOxImbb1ZizSZkpCzAwSZSGcJFmscIBaBQu+yLyWaxQ==",
"dev": true,
"dependencies": {
"@iconify/types": "^2.0.0"
},
"funding": {
"url": "https://github.com/sponsors/cyberalien"
}
},
"node_modules/@iconify/json": {
"version": "2.2.163",
"resolved": "https://registry.npmjs.org/@iconify/json/-/json-2.2.163.tgz",
"integrity": "sha512-cBca9e8x6Bp5qN2++sl54OUbME/Y20OhXJEdkpFFvvHvt8UfQLiBKzz7q3uZ1l3EQjc8JoKgDB/n8nqfNqEWig==",
"dev": true,
"dependencies": {
"@iconify/types": "*",
"pathe": "^1.1.0"
}
},
"node_modules/@iconify/types": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/@iconify/types/-/types-2.0.0.tgz",
"integrity": "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==",
"dev": true
},
"node_modules/@nodelib/fs.scandir": { "node_modules/@nodelib/fs.scandir": {
"version": "2.1.5", "version": "2.1.5",
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
@ -5132,12 +5102,6 @@
"node": ">=8" "node": ">=8"
} }
}, },
"node_modules/pathe": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.1.tgz",
"integrity": "sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==",
"dev": true
},
"node_modules/picocolors": { "node_modules/picocolors": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
@ -8433,31 +8397,6 @@
"integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
"dev": true "dev": true
}, },
"@iconify/iconify": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/@iconify/iconify/-/iconify-3.1.1.tgz",
"integrity": "sha512-1nemfyD/OJzh9ALepH7YfuuP8BdEB24Skhd8DXWh0hzcOxImbb1ZizSZkpCzAwSZSGcJFmscIBaBQu+yLyWaxQ==",
"dev": true,
"requires": {
"@iconify/types": "^2.0.0"
}
},
"@iconify/json": {
"version": "2.2.163",
"resolved": "https://registry.npmjs.org/@iconify/json/-/json-2.2.163.tgz",
"integrity": "sha512-cBca9e8x6Bp5qN2++sl54OUbME/Y20OhXJEdkpFFvvHvt8UfQLiBKzz7q3uZ1l3EQjc8JoKgDB/n8nqfNqEWig==",
"dev": true,
"requires": {
"@iconify/types": "*",
"pathe": "^1.1.0"
}
},
"@iconify/types": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/@iconify/types/-/types-2.0.0.tgz",
"integrity": "sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==",
"dev": true
},
"@nodelib/fs.scandir": { "@nodelib/fs.scandir": {
"version": "2.1.5", "version": "2.1.5",
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
@ -12274,12 +12213,6 @@
"integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
"dev": true "dev": true
}, },
"pathe": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.1.tgz",
"integrity": "sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==",
"dev": true
},
"picocolors": { "picocolors": {
"version": "1.0.0", "version": "1.0.0",
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",

View file

@ -99,8 +99,6 @@
}, },
"homepage": "https://www.phpbb.com", "homepage": "https://www.phpbb.com",
"devDependencies": { "devDependencies": {
"@iconify/iconify": "^3.1.1",
"@iconify/json": "^2.2.163",
"autoprefixer": "^10.4.4", "autoprefixer": "^10.4.4",
"cssnano": "^5.1.7", "cssnano": "^5.1.7",
"eslint": "^8.13.0", "eslint": "^8.13.0",

View file

@ -27,8 +27,6 @@ installLang = {
<script src="{T_ASSETS_PATH}/javascript/core.js?assets_version={T_ASSETS_VERSION}"></script> <script src="{T_ASSETS_PATH}/javascript/core.js?assets_version={T_ASSETS_VERSION}"></script>
<!-- INCLUDEJS admin.js --> <!-- INCLUDEJS admin.js -->
{$ICONIFY_ICONS}
<script src="{T_ASSETS_PATH}/iconify/iconify.min.js?assets_version={T_ASSETS_VERSION}"></script>
{$SCRIPTS} {$SCRIPTS}
</body> </body>

View file

@ -45,10 +45,21 @@
<script src="{T_ASSETS_PATH}/javascript/core.js?assets_version={T_ASSETS_VERSION}"></script> <script src="{T_ASSETS_PATH}/javascript/core.js?assets_version={T_ASSETS_VERSION}"></script>
<!-- INCLUDEJS ajax.js --> <!-- INCLUDEJS ajax.js -->
<!-- INCLUDEJS admin.js --> <!-- INCLUDEJS admin.js -->
{% INCLUDEJS T_ASSETS_PATH ~ '/iconify/iconify.min.js' %} {% if S_ALLOW_CDN %}
<script>
(function($){
const $fa_cdn = $('head').find('link[rel="stylesheet"]').first(),
$span = $('<span class="fa" style="display:none"></span>').appendTo('body');
if ($span.css('fontFamily') !== '"Font Awesome 6 Free"') {
$fa_cdn.after('<link href="{{ T_ASSETS_PATH ~ '/css/font-awesome.min.css' }}" rel="stylesheet">');
$fa_cdn.remove();
}
$span.remove();
})(jQuery);
</script>
{% endif %}
<!-- EVENT acp_overall_footer_after --> <!-- EVENT acp_overall_footer_after -->
{$ICONIFY_ICONS}
{$SCRIPTS} {$SCRIPTS}
{% EVENT acp_overall_footer_body_after %} {% EVENT acp_overall_footer_body_after %}

View file

@ -19,10 +19,21 @@
<script src="{T_JQUERY_LINK}"></script> <script src="{T_JQUERY_LINK}"></script>
<!-- IF S_ALLOW_CDN --><script>window.jQuery || document.write('\x3Cscript src="{T_ASSETS_PATH}/javascript/jquery-3.6.0.min.js?assets_version={T_ASSETS_VERSION}">\x3C/script>');</script><!-- ENDIF --> <!-- IF S_ALLOW_CDN --><script>window.jQuery || document.write('\x3Cscript src="{T_ASSETS_PATH}/javascript/jquery-3.6.0.min.js?assets_version={T_ASSETS_VERSION}">\x3C/script>');</script><!-- ENDIF -->
<script src="{T_ASSETS_PATH}/javascript/core.js?assets_version={T_ASSETS_VERSION}"></script> <script src="{T_ASSETS_PATH}/javascript/core.js?assets_version={T_ASSETS_VERSION}"></script>
{% INCLUDEJS T_ASSETS_PATH ~ '/iconify/iconify.min.js' %} {% if S_ALLOW_CDN %}
<script>
(function($){
const $fa_cdn = $('head').find('link[rel="stylesheet"]').first(),
$span = $('<span class="fa" style="display:none"></span>').appendTo('body');
if ($span.css('fontFamily') !== '"Font Awesome 6 Free"') {
$fa_cdn.after('<link href="{{ T_ASSETS_PATH ~ '/css/font-awesome.min.css' }}" rel="stylesheet">');
$fa_cdn.remove();
}
$span.remove();
})(jQuery);
</script>
{% endif %}
<!-- EVENT acp_simple_footer_after --> <!-- EVENT acp_simple_footer_after -->
{$ICONIFY_ICONS}
{$SCRIPTS} {$SCRIPTS}
{% EVENT acp_simple_footer_body_after %} {% EVENT acp_simple_footer_body_after %}

File diff suppressed because one or more lines are too long

Binary file not shown.

File diff suppressed because it is too large Load diff

Before

Width:  |  Height:  |  Size: 434 KiB

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load diff

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -39,7 +39,6 @@
"doctrine/dbal": "~3.3.6", "doctrine/dbal": "~3.3.6",
"google/recaptcha": "~1.1", "google/recaptcha": "~1.1",
"guzzlehttp/guzzle": "~6.3", "guzzlehttp/guzzle": "~6.3",
"iconify/json-tools": "^1.0",
"marc1706/fast-image-size": "^1.1", "marc1706/fast-image-size": "^1.1",
"s9e/text-formatter": "^2.0", "s9e/text-formatter": "^2.0",
"symfony/config": "^6.3", "symfony/config": "^6.3",

41
phpBB/composer.lock generated
View file

@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically" "This file is @generated automatically"
], ],
"content-hash": "92873eaf73cacda45801dcd603c021f2", "content-hash": "75425a269d37301eb11d494437c2f5ff",
"packages": [ "packages": [
{ {
"name": "bantu/ini-get-wrapper", "name": "bantu/ini-get-wrapper",
@ -1781,45 +1781,6 @@
], ],
"time": "2023-04-17T16:00:37+00:00" "time": "2023-04-17T16:00:37+00:00"
}, },
{
"name": "iconify/json-tools",
"version": "1.0.10",
"source": {
"type": "git",
"url": "https://github.com/iconify/json-tools.php.git",
"reference": "3d24f282b309cb17e3cb80192ae071dd47bce9e0"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/iconify/json-tools.php/zipball/3d24f282b309cb17e3cb80192ae071dd47bce9e0",
"reference": "3d24f282b309cb17e3cb80192ae071dd47bce9e0",
"shasum": ""
},
"require": {
"php": ">=5.6"
},
"require-dev": {
"iconify/json": "1.*",
"phpunit/phpunit": "9.*"
},
"type": "library",
"autoload": {
"psr-4": {
"Iconify\\JSONTools\\": "lib"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"description": "Functions for manipulating Iconify JSON SVG collections.",
"homepage": "https://iconify.design/",
"support": {
"issues": "https://github.com/iconify/json-tools.php/issues",
"source": "https://github.com/iconify/json-tools.php/tree/1.0.10"
},
"time": "2020-12-16T13:04:11+00:00"
},
{ {
"name": "justinrainbow/json-schema", "name": "justinrainbow/json-schema",
"version": "v5.2.13", "version": "v5.2.13",

View file

@ -2,12 +2,3 @@ services:
assets.bag: assets.bag:
class: phpbb\template\assets_bag class: phpbb\template\assets_bag
shared: false shared: false
arguments:
- '@assets.iconify_bundler'
assets.iconify_bundler:
class: phpbb\assets\iconify_bundler
shared: false
arguments:
- '@log'
- '%core.root_path%'

View file

@ -12,15 +12,6 @@ services:
assets.bag: assets.bag:
class: phpbb\template\assets_bag class: phpbb\template\assets_bag
shared: false shared: false
arguments:
- '@assets.iconify_bundler'
assets.iconify_bundler:
class: phpbb\assets\iconify_bundler
shared: false
arguments:
- ~
- '%core.root_path%'
cache.driver: cache.driver:
class: '%cache.driver.class%' class: '%cache.driver.class%'

View file

@ -96,6 +96,7 @@ function adm_page_header($page_title)
'T_FONT_AWESOME_LINK' => !empty($config['allow_cdn']) && !empty($config['load_font_awesome_url']) ? $config['load_font_awesome_url'] : "{$phpbb_root_path}assets/css/font-awesome.min.css?assets_version=" . $config['assets_version'], 'T_FONT_AWESOME_LINK' => !empty($config['allow_cdn']) && !empty($config['load_font_awesome_url']) ? $config['load_font_awesome_url'] : "{$phpbb_root_path}assets/css/font-awesome.min.css?assets_version=" . $config['assets_version'],
'T_ASSETS_VERSION' => $config['assets_version'], 'T_ASSETS_VERSION' => $config['assets_version'],
'T_ASSETS_PATH' => "{$phpbb_root_path}assets",
'ICON_MOVE_UP' => '<i class="icon acp-icon acp-icon-move-up fa-arrow-circle-up fa-fw" title="' . $user->lang('MOVE_UP') . '"></i>', 'ICON_MOVE_UP' => '<i class="icon acp-icon acp-icon-move-up fa-arrow-circle-up fa-fw" title="' . $user->lang('MOVE_UP') . '"></i>',
'ICON_MOVE_UP_DISABLED' => '<i class="icon acp-icon acp-icon-disabled fa-arrow-circle-up fa-fw" title="' . $user->lang('MOVE_UP') . '"></i>', 'ICON_MOVE_UP_DISABLED' => '<i class="icon acp-icon acp-icon-disabled fa-arrow-circle-up fa-fw" title="' . $user->lang('MOVE_UP') . '"></i>',

View file

@ -195,7 +195,7 @@ INSERT INTO phpbb_config (config_name, config_value) VALUES ('load_cpf_viewprofi
INSERT INTO phpbb_config (config_name, config_value) VALUES ('load_cpf_viewtopic', '1'); INSERT INTO phpbb_config (config_name, config_value) VALUES ('load_cpf_viewtopic', '1');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('load_db_lastread', '1'); INSERT INTO phpbb_config (config_name, config_value) VALUES ('load_db_lastread', '1');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('load_db_track', '1'); INSERT INTO phpbb_config (config_name, config_value) VALUES ('load_db_track', '1');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('load_font_awesome_url', 'https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css'); INSERT INTO phpbb_config (config_name, config_value) VALUES ('load_font_awesome_url', 'https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('load_jquery_url', '//ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js'); INSERT INTO phpbb_config (config_name, config_value) VALUES ('load_jquery_url', '//ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('load_jumpbox', '1'); INSERT INTO phpbb_config (config_name, config_value) VALUES ('load_jumpbox', '1');
INSERT INTO phpbb_config (config_name, config_value) VALUES ('load_moderators', '1'); INSERT INTO phpbb_config (config_name, config_value) VALUES ('load_moderators', '1');

View file

@ -671,8 +671,6 @@ $lang = array_merge($lang, array(
'LOG_USERS_APPROVED' => '<strong>Users approved in usergroup</strong> %1$s<br />» %2$s', 'LOG_USERS_APPROVED' => '<strong>Users approved in usergroup</strong> %1$s<br />» %2$s',
'LOG_USERS_PENDING' => '<strong>Users requested to join group “%1$s” and need to be approved</strong><br />» %2$s', 'LOG_USERS_PENDING' => '<strong>Users requested to join group “%1$s” and need to be approved</strong><br />» %2$s',
'LOG_ICON_INVALID' => '<strong>Invalid icon supplied:</strong> Icon <i>%1$s</i> does not seem to exist.',
'LOG_ICON_COLLECTION_INVALID' => '<strong>Invalid icon collection supplied:</strong> Icon collection with prefix <i>%1$s</i> does not seem to exist.',
'LOG_IMAGE_GENERATION_ERROR' => '<strong>Error while creating image</strong><br />» Error in %1$s on line %2$s: %3$s', 'LOG_IMAGE_GENERATION_ERROR' => '<strong>Error while creating image</strong><br />» Error in %1$s on line %2$s: %3$s',
'LOG_INACTIVE_ACTIVATE' => '<strong>Activated inactive users</strong><br />» %s', 'LOG_INACTIVE_ACTIVATE' => '<strong>Activated inactive users</strong><br />» %s',

View file

@ -1,262 +0,0 @@
<?php
/**
*
* This file is part of the phpBB Forum Software package.
*
* @copyright (c) phpBB Limited <https://www.phpbb.com>
* @license GNU General Public License, version 2 (GPL-2.0)
*
* For full copyright and license information, please see
* the docs/CREDITS.txt file.
*
*/
namespace phpbb\assets;
use Iconify\JSONTools\Collection;
use phpbb\log\log_interface;
class iconify_bundler
{
/** @var string Icons path */
protected string $icons_path;
/** @var string[] Icons list */
protected $icons_list = [];
/**
* Constructor for iconify bundler
*
* @param log_interface|null $log Logger
* @param string $root_path phpBB root path
*/
public function __construct(protected ?log_interface $log, string $root_path)
{
$this->icons_path = $root_path . 'assets/iconify/';
}
/**
* Run iconify bundler
*
* @return string Iconify bundle
*/
public function run()
{
// Sort icons first
sort($this->icons_list, SORT_NATURAL);
$organized_icons = $this->organize_icons_list();
$output = $this->load_icons_data($organized_icons);
if (!$output)
{
return '';
}
$output = '(function() {
function add(data) {
try {
if (typeof self.Iconify === \'object\' && self.Iconify.addCollection) {
self.Iconify.addCollection(data);
return;
}
if (typeof self.IconifyPreload === \'undefined\') {
self.IconifyPreload = [];
}
self.IconifyPreload.push(data);
} catch (err) {
}
}
' . $output . '
})();' . "\n";
return $output;
}
/**
* Add icon to icons list
*
* @param string $icon_name
* @return void
*/
protected function add_icon(string $icon_name): void
{
if (!in_array($icon_name, $this->icons_list))
{
$this->icons_list[] = $icon_name;
}
}
/**
* Add multiple icons to icons list
*
* @param array $icons
* @return void
*/
public function add_icons(array $icons): void
{
foreach ($icons as $icon)
{
$this->add_icon($icon);
}
}
/**
* Organize icons list by prefix
*
* Result is an object, where key is prefix, value is array of icon names
*
* @return array Organized icons list
*/
protected function organize_icons_list(): array
{
$results = [];
foreach ($this->icons_list as $icon_name)
{
// Split icon to prefix and name
$icon = $this->name_to_icon($icon_name);
if ($icon === null)
{
// Invalid name or icon name does not have provider
if ($this->log)
{
$this->log->add('critical', ANONYMOUS, '', 'LOG_ICON_INVALID', false, [$icon_name]);
}
continue;
}
$prefix = $icon['prefix'];
$name = $icon['name'];
// Add icon to results
if (!isset($results[$prefix]))
{
$results[$prefix] = [$name];
continue;
}
if (!in_array($name, $results[$prefix]))
{
$results[$prefix][] = $name;
}
}
return $results;
}
/**
* Convert icon name from string to object.
*
* Object properties:
* - provider (ignored in this example)
* - prefix
* - name
*
* This function was converted to PHP from @iconify/utils/src/icon/name.ts
* See https://github.com/iconify/iconify/blob/master/packages/utils/src/icon/name.ts
*
* @param string $icon_name Icon name
* @return array|null Icon data or null if icon is invalid
*/
protected function name_to_icon(string $icon_name): ?array
{
$provider = '';
$colonSeparated = explode(':', $icon_name);
// Check for provider with correct '@' at start
if (substr($icon_name, 0, 1) === '@')
{
// First part is provider
if (count($colonSeparated) < 2 || count($colonSeparated) > 3)
{
return null;
}
$provider = substr(array_shift($colonSeparated), 1);
}
// Check split by colon: "prefix:name", "provider:prefix:name"
if (!$colonSeparated || count($colonSeparated) > 3)
{
return null;
}
if (count($colonSeparated) > 1)
{
// "prefix:name"
$name = array_pop($colonSeparated);
$prefix = array_pop($colonSeparated);
return [
// Allow provider without '@': "provider:prefix:name"
'provider' => count($colonSeparated) > 0 ? $colonSeparated[0] : $provider,
'prefix' => $prefix,
'name' => $name,
];
}
// Attempt to split by dash: "prefix-name"
$dashSeparated = explode('-', $colonSeparated[0]);
if (count($dashSeparated) > 1)
{
return [
'provider' => $provider,
'prefix' => array_shift($dashSeparated),
'name' => implode('-', $dashSeparated),
];
}
return null;
}
/**
* Get collection path for prefix
*
* @param string $prefix Icon collection prefix
* @return string Icon collection path
*/
protected function get_collection_path(string $prefix): string
{
return $this->icons_path . $prefix . '.json';
}
/**
* Load icons date for supplied icons array
*
* @param array $icons
* @return string
*/
protected function load_icons_data(array $icons): string
{
// Load icons data
$output = '';
foreach ($icons as $prefix => $iconsList)
{
// Load icon set
$collection = new Collection($prefix);
$collection_file = $this->get_collection_path($prefix);
if (!file_exists($collection_file) || !$collection->loadFromFile($collection_file))
{
$this->log?->add('critical', ANONYMOUS, '', 'LOG_ICON_COLLECTION_INVALID', false, [$prefix]);
continue;
}
// Make sure all icons exist
foreach ($iconsList as $key => $name)
{
if (!$collection->iconExists($name))
{
$this->log?->add('critical', ANONYMOUS, '', 'LOG_ICON_INVALID', false, [$prefix . ':' . $name]);
unset($iconsList[$key]);
}
}
// Get data for all icons as string
$output .= $collection->scriptify([
'icons' => $iconsList,
'callback' => 'add',
'optimize' => true,
]);
}
return $output;
}
}

View file

@ -0,0 +1,34 @@
<?php
/**
*
* This file is part of the phpBB Forum Software package.
*
* @copyright (c) phpBB Limited <https://www.phpbb.com>
* @license GNU General Public License, version 2 (GPL-2.0)
*
* For full copyright and license information, please see
* the docs/CREDITS.txt file.
*
*/
namespace phpbb\db\migration\data\v400;
use phpbb\db\migration\migration;
class font_awesome_6_upgrade extends migration
{
public static function depends_on(): array
{
return [
'\phpbb\db\migration\data\v400\dev',
'\phpbb\db\migration\data\v33x\font_awesome_5_rollback',
];
}
public function update_data(): array
{
return [
['config.update', ['load_font_awesome_url', 'https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css']],
];
}
}

View file

@ -26,7 +26,11 @@ use phpbb\filesystem\helper as filesystem_helper;
*/ */
class core extends Extension class core extends Extension
{ {
const TWIG_OPTIONS_POSITION = 7; /**
* Index of array in service template.twig.environment inside services_twig.yml
* @var int
*/
const TWIG_OPTIONS_POSITION = 8;
/** /**
* Config path * Config path
@ -86,7 +90,7 @@ class core extends Extension
$twig_environment_options['auto_reload'] = true; $twig_environment_options['auto_reload'] = true;
} }
// Replace the 7th argument, the options passed to the environment // Replace the 8th argument, the options passed to the environment
$definition->replaceArgument(static::TWIG_OPTIONS_POSITION, $twig_environment_options); $definition->replaceArgument(static::TWIG_OPTIONS_POSITION, $twig_environment_options);
if ($config['twig']['enable_debug_extension']) if ($config['twig']['enable_debug_extension'])

View file

@ -13,8 +13,6 @@
namespace phpbb\template; namespace phpbb\template;
use phpbb\assets\iconify_bundler;
class assets_bag class assets_bag
{ {
/** @var asset[] */ /** @var asset[] */
@ -23,17 +21,6 @@ class assets_bag
/** @var asset[] */ /** @var asset[] */
protected $scripts = []; protected $scripts = [];
/** @var string[] */
protected $iconify_icons = [];
/**
* Constructor for assets bag
*
* @param iconify_bundler $iconify_bundler
*/
public function __construct(protected iconify_bundler $iconify_bundler)
{}
/** /**
* Add a css asset to the bag * Add a css asset to the bag
* *
@ -54,30 +41,6 @@ class assets_bag
$this->scripts[] = $asset; $this->scripts[] = $asset;
} }
public function add_iconify_icon(string $icon): void
{
$this->iconify_icons[] = $icon;
}
/**
* Inject iconify icons into template
*
* @param string $output Output before injection
* @param string $variable_name Variable name for injection
* @param bool $use_cdn Flag whether to use CDN or local data
*
* @return string Output after injection
*/
public function inject_iconify_icons(string $output, string $variable_name, bool $use_cdn): string
{
if (str_contains($output, $variable_name))
{
$output = str_replace($variable_name, $use_cdn ? '' : $this->get_iconify_content(), $output);
}
return $output;
}
/** /**
* Returns all css assets * Returns all css assets
* *
@ -129,22 +92,4 @@ class assets_bag
return $output; return $output;
} }
/**
* Gets the HTML code to include all iconify icons
*
* @return string HTML code for iconify bundle
*/
public function get_iconify_content(): string
{
$output = '';
if (count($this->iconify_icons))
{
$output .= '<script>';
$this->iconify_bundler->add_icons($this->iconify_icons);
$output .= $this->iconify_bundler->run();
$output .= '</script>';
}
return $output;
}
} }

View file

@ -211,7 +211,6 @@ class environment extends \Twig\Environment
{ {
$context['definition']->set('SCRIPTS', '__SCRIPTS_' . $placeholder_salt . '__'); $context['definition']->set('SCRIPTS', '__SCRIPTS_' . $placeholder_salt . '__');
$context['definition']->set('STYLESHEETS', '__STYLESHEETS_' . $placeholder_salt . '__'); $context['definition']->set('STYLESHEETS', '__STYLESHEETS_' . $placeholder_salt . '__');
$context['definition']->set('ICONIFY_ICONS', '__ICONIFY_ICONS_' . $placeholder_salt . '__');
} }
/** /**
@ -259,7 +258,6 @@ class environment extends \Twig\Environment
{ {
$output = str_replace('__STYLESHEETS_' . $placeholder_salt . '__', $this->assets_bag->get_stylesheets_content(), $output); $output = str_replace('__STYLESHEETS_' . $placeholder_salt . '__', $this->assets_bag->get_stylesheets_content(), $output);
$output = str_replace('__SCRIPTS_' . $placeholder_salt . '__', $this->assets_bag->get_scripts_content(), $output); $output = str_replace('__SCRIPTS_' . $placeholder_salt . '__', $this->assets_bag->get_scripts_content(), $output);
$output = $this->assets_bag->inject_iconify_icons($output, '__ICONIFY_ICONS_' . $placeholder_salt . '__', $this->phpbb_config['allow_cdn']);
return $output; return $output;
} }

View file

@ -57,7 +57,7 @@ class icon extends AbstractExtension
* Generate icon HTML for use in the template, depending on the mode. * Generate icon HTML for use in the template, depending on the mode.
* *
* @param environment $environment Twig environment object * @param environment $environment Twig environment object
* @param string $type Icon type (font|iconify|png|svg) * @param string $type Icon type (font|png|svg)
* @param array|string $icon Icon name (eg. "bold") * @param array|string $icon Icon name (eg. "bold")
* @param string $title Icon title * @param string $title Icon title
* @param bool $hidden Hide the icon title from view * @param bool $hidden Hide the icon title from view
@ -86,13 +86,6 @@ class icon extends AbstractExtension
// Nothing to do here.. // Nothing to do here..
break; break;
case 'iconify':
$source = explode(':', $icon);
$source = $source[0];
$environment->get_assets_bag()->add_iconify_icon($icon);
break;
case 'png': case 'png':
$filesystem = $environment->get_filesystem(); $filesystem = $environment->get_filesystem();
$root_path = $environment->get_web_root_path(); $root_path = $environment->get_web_root_path();
@ -137,7 +130,6 @@ class icon extends AbstractExtension
default: default:
return ''; return '';
break;
} }
// If no PNG or SVG icon was found, display a default 404 SVG icon. // If no PNG or SVG icon was found, display a default 404 SVG icon.

View file

@ -1,3 +1,3 @@
{% apply spaceless %} {% apply spaceless %}
<i class="o-icon o-icon-font fa-{{ ICON ~ (CLASSES ? ' ' ~ CLASSES) }}"{% if S_HIDDEN %}{% if TITLE %} title="{{ TITLE }}"{% endif %} aria-hidden="true"{% endif %}{{ ATTRIBUTES }}></i>{% if TITLE %}<span{% if S_HIDDEN %} class="sr-only"{% endif %}>{{ lang(TITLE) }}</span>{% endif %} <i class="o-icon o-icon-font fa-fw fa-{{ ICON ~ (CLASSES ? ' ' ~ CLASSES : ' fas') }}"{% if S_HIDDEN %}{% if TITLE %} title="{{ TITLE }}"{% endif %} aria-hidden="true"{% endif %}{{ ATTRIBUTES }}></i>{% if TITLE %}<span{% if S_HIDDEN %} class="sr-only"{% endif %}>{{ TITLE }}</span>{% endif %}
{% endapply %} {% endapply %}

View file

@ -1,4 +0,0 @@
{% apply spaceless %}
<i class="iconify o-icon-src-{{ SOURCE }} o-icon{{ CLASSES ? ' ' ~ CLASSES }}"{% if S_HIDDEN %}{% if TITLE %} title="{{ TITLE }}"{% endif %} aria-hidden="true"{% endif %} data-icon="{{ ICON }}" data-inline="true"{{ ATTRIBUTES }}></i>
{% if TITLE %}<span{% if S_HIDDEN %} class="sr-only"{% endif %}>{{ TITLE }}</span>{% endif %}
{% endapply %}

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24"><path fill="currentColor" d="M4 15V9h8V4.16L19.84 12L12 19.84V15z"/></svg>

After

Width:  |  Height:  |  Size: 159 B

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24"><path fill="currentColor" d="M9 22a1 1 0 0 1-1-1v-3H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2h-6.1l-3.7 3.71c-.2.19-.45.29-.7.29zm1-6v3.08L13.08 16H20V4H4v12zM6 7h12v2H6zm0 4h9v2H6z"/></svg>

After

Width:  |  Height:  |  Size: 299 B

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24"><path fill="currentColor" d="M16 15H9v-2h7zm3-4H9V9h10zm0-4H9V5h10zM3 5v16h16v2H3a2 2 0 0 1-2-2V5zm18-4a2 2 0 0 1 2 2v14c0 1.11-.89 2-2 2H7a2 2 0 0 1-2-2V3c0-1.11.89-2 2-2zM7 3v14h14V3z"/></svg>

After

Width:  |  Height:  |  Size: 279 B

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24"><path fill="currentColor" d="M5 3c-1.11 0-2 .89-2 2v14c0 1.11.89 2 2 2h14c1.11 0 2-.89 2-2V5c0-1.11-.89-2-2-2zm0 2h14v14H5zm2 2v2h10V7zm0 4v2h10v-2zm0 4v2h7v-2z"/></svg>

After

Width:  |  Height:  |  Size: 254 B

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24"><path fill="currentColor" d="M6 2a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8l-6-6zm0 2h7v5h5v11H6zm2 8v2h8v-2zm0 4v2h5v-2z"/></svg>

After

Width:  |  Height:  |  Size: 224 B

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24"><path fill="currentColor" d="M17.66 11.2c-.23-.3-.51-.56-.77-.82c-.67-.6-1.43-1.03-2.07-1.66C13.33 7.26 13 4.85 13.95 3c-.95.23-1.78.75-2.49 1.32c-2.59 2.08-3.61 5.75-2.39 8.9c.04.1.08.2.08.33c0 .22-.15.42-.35.5c-.23.1-.47.04-.66-.12a.58.58 0 0 1-.14-.17c-1.13-1.43-1.31-3.48-.55-5.12C5.78 10 4.87 12.3 5 14.47c.06.5.12 1 .29 1.5c.14.6.41 1.2.71 1.73c1.08 1.73 2.95 2.97 4.96 3.22c2.14.27 4.43-.12 6.07-1.6c1.83-1.66 2.47-4.32 1.53-6.6l-.13-.26c-.21-.46-.77-1.26-.77-1.26m-3.16 6.3c-.28.24-.74.5-1.1.6c-1.12.4-2.24-.16-2.9-.82c1.19-.28 1.9-1.16 2.11-2.05c.17-.8-.15-1.46-.28-2.23c-.12-.74-.1-1.37.17-2.06c.19.38.39.76.63 1.06c.77 1 1.98 1.44 2.24 2.8c.04.14.06.28.06.43c.03.82-.33 1.72-.93 2.27"/></svg>

After

Width:  |  Height:  |  Size: 788 B

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24"><path fill="currentColor" d="M13.5 4A1.5 1.5 0 0 0 12 5.5A1.5 1.5 0 0 0 13.5 7A1.5 1.5 0 0 0 15 5.5A1.5 1.5 0 0 0 13.5 4m-.36 4.77c-1.19.1-4.44 2.69-4.44 2.69c-.2.15-.14.14.02.42c.16.27.14.29.33.16c.2-.13.53-.34 1.08-.68c2.12-1.36.34 1.78-.57 7.07c-.36 2.62 2 1.27 2.61.87c.6-.39 2.21-1.5 2.37-1.61c.22-.15.06-.27-.11-.52c-.12-.17-.24-.05-.24-.05c-.65.43-1.84 1.33-2 .76c-.19-.57 1.03-4.48 1.7-7.17c.11-.64.41-2.04-.75-1.94"/></svg>

After

Width:  |  Height:  |  Size: 517 B

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24"><path fill="currentColor" d="M10.59 13.41c.41.39.41 1.03 0 1.42c-.39.39-1.03.39-1.42 0a5.003 5.003 0 0 1 0-7.07l3.54-3.54a5.003 5.003 0 0 1 7.07 0a5.003 5.003 0 0 1 0 7.07l-1.49 1.49c.01-.82-.12-1.64-.4-2.42l.47-.48a2.982 2.982 0 0 0 0-4.24a2.982 2.982 0 0 0-4.24 0l-3.53 3.53a2.982 2.982 0 0 0 0 4.24m2.82-4.24c.39-.39 1.03-.39 1.42 0a5.003 5.003 0 0 1 0 7.07l-3.54 3.54a5.003 5.003 0 0 1-7.07 0a5.003 5.003 0 0 1 0-7.07l1.49-1.49c-.01.82.12 1.64.4 2.43l-.47.47a2.982 2.982 0 0 0 0 4.24a2.982 2.982 0 0 0 4.24 0l3.53-3.53a2.982 2.982 0 0 0 0-4.24a.973.973 0 0 1 0-1.42"/></svg>

After

Width:  |  Height:  |  Size: 663 B

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24"><path fill="currentColor" d="M12 17a2 2 0 0 0 2-2a2 2 0 0 0-2-2a2 2 0 0 0-2 2a2 2 0 0 0 2 2m6-9a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V10a2 2 0 0 1 2-2h1V6a5 5 0 0 1 5-5a5 5 0 0 1 5 5v2zm-6-5a3 3 0 0 0-3 3v2h6V6a3 3 0 0 0-3-3"/></svg>

After

Width:  |  Height:  |  Size: 327 B

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24"><path fill="currentColor" d="M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.62L12 2L9.19 8.62L2 9.24l5.45 4.73L5.82 21z"/></svg>

After

Width:  |  Height:  |  Size: 211 B

View file

@ -1,8 +1,8 @@
<div class="dropdown-container dropdown-container-left dropdown-button-control sort-tools"> <div class="dropdown-container dropdown-container-left dropdown-button-control sort-tools">
<span title="{L_SORT_OPTIONS}" class="button button-secondary dropdown-trigger dropdown-select"> <span title="{L_SORT_OPTIONS}" class="button button-secondary dropdown-trigger dropdown-select">
{{ Icon('iconify', 'fa:sort-amount-asc', '', true, 'c-button-icon') }} {{ Icon('font', 'arrow-down-short-wide', '', true, 'fas c-button-icon') }}
<span class="caret"> <span class="caret">
{{ Icon('iconify', 'fa:caret-down', '', true, 'c-button-icon') }} {{ Icon('font', 'caret-down', '', true, 'fas c-button-icon') }}
</span> </span>
</span> </span>
<div class="dropdown hidden"> <div class="dropdown hidden">

View file

@ -36,7 +36,7 @@
<dd>{faq_block.faq_row.FAQ_ANSWER}</dd> <dd>{faq_block.faq_row.FAQ_ANSWER}</dd>
</dl> </dl>
<a href="#faqlinks" class="top"> <a href="#faqlinks" class="top">
{{ Icon('iconify', 'fa:chevron-circle-up', lang('BACK_TO_TOP'), false) }} {{ Icon('font', 'circle-chevron-up', lang('BACK_TO_TOP'), false) }}
</a> </a>
<!-- IF not faq_block.faq_row.S_LAST_ROW --><hr class="dashed" /><!-- ENDIF --> <!-- IF not faq_block.faq_row.S_LAST_ROW --><hr class="dashed" /><!-- ENDIF -->
<!-- END faq_row --> <!-- END faq_row -->

View file

@ -34,18 +34,18 @@
<dl class="row-item"> <dl class="row-item">
<dt title="{% if forumrow.S_IS_LINK %}{{ lang('FORUM_LINK') }}{% else %}{{ forumrow.FORUM_FOLDER_IMG_ALT }}{% endif %}"> <dt title="{% if forumrow.S_IS_LINK %}{{ lang('FORUM_LINK') }}{% else %}{{ forumrow.FORUM_FOLDER_IMG_ALT }}{% endif %}">
<a class="row-item-link{% if forumrow.S_UNREAD_FORUM %} unread{% else %} read{% endif %}" href="{forumrow.U_VIEWFORUM}"> <a class="row-item-link{% if forumrow.S_UNREAD_FORUM %} unread{% else %} read{% endif %}" href="{forumrow.U_VIEWFORUM}">
{{ Icon('iconify', { {{ Icon('svg', {
'mdi:link-variant' : forumrow.S_IS_LINK, 'link-variant' : forumrow.S_IS_LINK,
'mdi:lock' : forumrow.S_LOCKED_FORUM, 'lock' : forumrow.S_LOCKED_FORUM,
'mdi:file-document-box-multiple-outline' : forumrow.S_SUBFORUMS, 'file-document-box-multiple-outline' : forumrow.S_SUBFORUMS,
'mdi:file-document-box-outline' : true, 'file-document-box-outline' : true,
}, '', true, 'c-forum-row-icon') }} }, '', true, 'c-forum-row-icon') }}
</a> </a>
<div class="list-inner"> <div class="list-inner">
<!-- IF S_ENABLE_FEEDS and forumrow.S_FEED_ENABLED --> <!-- IF S_ENABLE_FEEDS and forumrow.S_FEED_ENABLED -->
<!-- <!--
<a class="feed-icon-forum" title="{L_FEED} - {forumrow.FORUM_NAME}" href="{U_FEED}?f={forumrow.FORUM_ID}"> <a class="feed-icon-forum" title="{L_FEED} - {forumrow.FORUM_NAME}" href="{U_FEED}?f={forumrow.FORUM_ID}">
{{ Icon('iconify', 'fa:rss-square', '', true, 'c-feed-icon') }}<span class="sr-only">{L_FEED} - {forumrow.FORUM_NAME}</span> {{ Icon('font', 'square-rss', '', true, 'fas c-feed-icon') }}<span class="sr-only">{L_FEED} - {forumrow.FORUM_NAME}</span>
</a> </a>
--> -->
<!-- ENDIF --> <!-- ENDIF -->
@ -66,10 +66,11 @@
<!-- BEGIN subforum --> <!-- BEGIN subforum -->
<!-- EVENT forumlist_body_subforum_link_prepend --> <!-- EVENT forumlist_body_subforum_link_prepend -->
<a href="{forumrow.subforum.U_SUBFORUM}" class="subforum<!-- IF forumrow.subforum.S_UNREAD --> unread<!-- ELSE --> read<!-- ENDIF -->" title="{% if forumrow.subforum.IS_LINK %}{{ lang('FORUM_LINK') }}{% elseif forumrow.subforum.S_UNREAD %}{{ lang('UNREAD_POSTS') }}{% else %}{{ lang('NO_UNREAD_POSTS') }}{% endif %}"> <a href="{forumrow.subforum.U_SUBFORUM}" class="subforum<!-- IF forumrow.subforum.S_UNREAD --> unread<!-- ELSE --> read<!-- ENDIF -->" title="{% if forumrow.subforum.IS_LINK %}{{ lang('FORUM_LINK') }}{% elseif forumrow.subforum.S_UNREAD %}{{ lang('UNREAD_POSTS') }}{% else %}{{ lang('NO_UNREAD_POSTS') }}{% endif %}">
{{ Icon('iconify', { {% if forumrow.subforum.IS_LINK %}
'fa:external-link' : forumrow.subforum.IS_LINK, {{ Icon('font', 'arrow-up-right-from-square', forumrow.subforum.SUBFORUM_NAME, false, 'fas c-subforum-icon') }}
'fa:file-o' : true, {% else %}
}, forumrow.subforum.SUBFORUM_NAME, false, 'c-subforum-icon') }} {{ Icon('font', 'file', forumrow.subforum.SUBFORUM_NAME, false, 'far c-subforum-icon') }}
{% endif %}
</a>{% if not forumrow.subforum.S_LAST_ROW %}{L_COMMA_SEPARATOR}{% endif %} </a>{% if not forumrow.subforum.S_LAST_ROW %}{L_COMMA_SEPARATOR}{% endif %}
<!-- EVENT forumlist_body_subforum_link_append --> <!-- EVENT forumlist_body_subforum_link_append -->
<!-- END subforum --> <!-- END subforum -->
@ -97,11 +98,11 @@
<span> <span>
<!-- IF forumrow.U_UNAPPROVED_TOPICS --> <!-- IF forumrow.U_UNAPPROVED_TOPICS -->
<a href="{forumrow.U_UNAPPROVED_TOPICS}" title="{L_TOPICS_UNAPPROVED}"> <a href="{forumrow.U_UNAPPROVED_TOPICS}" title="{L_TOPICS_UNAPPROVED}">
{{ Icon('iconify', 'mdi:alert-decagram', lang('TOPICS_UNAPPROVED'), true, 'c-unapproved-icon') }} {{ Icon('font', 'circle-question', lang('TOPICS_UNAPPROVED'), true, 'fas c-unapproved-icon') }}
</a> </a>
<!-- ELSEIF forumrow.U_UNAPPROVED_POSTS --> <!-- ELSEIF forumrow.U_UNAPPROVED_POSTS -->
<a href="{forumrow.U_UNAPPROVED_POSTS}" title="{L_POSTS_UNAPPROVED_FORUM}"> <a href="{forumrow.U_UNAPPROVED_POSTS}" title="{L_POSTS_UNAPPROVED_FORUM}">
{{ Icon('iconify', 'mdi:alert-decagram', lang('POSTS_UNAPPROVED_FORUM'), true, 'c-unapproved-icon') }} {{ Icon('font', 'circle-question', lang('POSTS_UNAPPROVED_FORUM'), true, 'fas c-unapproved-icon') }}
</a> </a>
<!-- ENDIF --> <!-- ENDIF -->
<!-- IF forumrow.LAST_POST_TIME_RFC3339 --> <!-- IF forumrow.LAST_POST_TIME_RFC3339 -->
@ -113,7 +114,7 @@
{L_POST_BY_AUTHOR} <!-- EVENT forumlist_body_last_poster_username_prepend -->{forumrow.LAST_POSTER_FULL}<!-- EVENT forumlist_body_last_poster_username_append --> {L_POST_BY_AUTHOR} <!-- EVENT forumlist_body_last_poster_username_prepend -->{forumrow.LAST_POSTER_FULL}<!-- EVENT forumlist_body_last_poster_username_append -->
<!-- IF not S_IS_BOT --> <!-- IF not S_IS_BOT -->
<a href="{forumrow.U_LAST_POST}" title="{L_VIEW_LATEST_POST}"> <a href="{forumrow.U_LAST_POST}" title="{L_VIEW_LATEST_POST}">
{{ Icon('iconify', 'fa:external-link-square', lang('VIEW_LATEST_POST'), true, 'c-last-post-icon') }} {{ Icon('font', 'arrow-up-right-from-square', lang('VIEW_LATEST_POST'), true, 'fas c-last-post-icon') }}
</a> </a>
<!-- ENDIF --> <!-- ENDIF -->
<br /><time datetime="{forumrow.LAST_POST_TIME_RFC3339}">{forumrow.LAST_POST_TIME}</time> <br /><time datetime="{forumrow.LAST_POST_TIME_RFC3339}">{forumrow.LAST_POST_TIME}</time>

View file

@ -3,25 +3,25 @@
<!-- IF S_VIEWTOPIC --> <!-- IF S_VIEWTOPIC -->
<p class="jumpbox-return"> <p class="jumpbox-return">
<a href="{U_VIEW_FORUM}" class="left-box arrow-{S_CONTENT_FLOW_BEGIN}" accesskey="r"> <a href="{U_VIEW_FORUM}" class="left-box arrow-{S_CONTENT_FLOW_BEGIN}" accesskey="r">
{{ Icon('iconify', 'fa:angle-' ~ S_CONTENT_FLOW_BEGIN, lang('RETURN_TO_FORUM'), false, 'c-return-arrow-icon') }} {{ Icon('font', 'angle-' ~ S_CONTENT_FLOW_BEGIN, lang('RETURN_TO_FORUM'), false, 'fas c-return-arrow-icon') }}
</a> </a>
</p> </p>
<!-- ELSEIF S_VIEWFORUM --> <!-- ELSEIF S_VIEWFORUM -->
<p class="jumpbox-return"> <p class="jumpbox-return">
<a href="{U_INDEX}" class="left-box arrow-{S_CONTENT_FLOW_BEGIN}" accesskey="r"> <a href="{U_INDEX}" class="left-box arrow-{S_CONTENT_FLOW_BEGIN}" accesskey="r">
{{ Icon('iconify', 'fa:angle-' ~ S_CONTENT_FLOW_BEGIN, lang('RETURN_TO_INDEX'), false, 'c-return-arrow-icon') }} {{ Icon('font', 'angle-' ~ S_CONTENT_FLOW_BEGIN, lang('RETURN_TO_INDEX'), false, 'fas c-return-arrow-icon') }}
</a> </a>
</p> </p>
<!-- ELSEIF SEARCH_TOPIC --> <!-- ELSEIF SEARCH_TOPIC -->
<p class="jumpbox-return"> <p class="jumpbox-return">
<a class="left-box arrow-{S_CONTENT_FLOW_BEGIN}" href="{U_SEARCH_TOPIC}" accesskey="r"> <a class="left-box arrow-{S_CONTENT_FLOW_BEGIN}" href="{U_SEARCH_TOPIC}" accesskey="r">
{{ Icon('iconify', 'fa:angle-' ~ S_CONTENT_FLOW_BEGIN, lang('RETURN_TO_TOPIC'), false, 'c-return-arrow-icon') }} {{ Icon('font', 'angle-' ~ S_CONTENT_FLOW_BEGIN, lang('RETURN_TO_TOPIC'), false, 'fas c-return-arrow-icon') }}
</a> </a>
</p> </p>
<!-- ELSEIF S_SEARCH_ACTION --> <!-- ELSEIF S_SEARCH_ACTION -->
<p class="jumpbox-return"> <p class="jumpbox-return">
<a class="left-box arrow-{S_CONTENT_FLOW_BEGIN}" href="{U_SEARCH}" title="{L_SEARCH_ADV}" accesskey="r"> <a class="left-box arrow-{S_CONTENT_FLOW_BEGIN}" href="{U_SEARCH}" title="{L_SEARCH_ADV}" accesskey="r">
{{ Icon('iconify', 'fa:angle-' ~ S_CONTENT_FLOW_BEGIN, lang('GO_TO_SEARCH_ADV'), false, 'c-return-arrow-icon') }} {{ Icon('font', 'angle-' ~ S_CONTENT_FLOW_BEGIN, lang('GO_TO_SEARCH_ADV'), false, 'fas c-return-arrow-icon') }}
</a> </a>
</p> </p>
<!-- ENDIF --> <!-- ENDIF -->
@ -30,7 +30,7 @@
<div class="jumpbox dropdown-container dropdown-container-right<!-- IF not S_IN_MCP --> dropdown-up<!-- ENDIF --> dropdown-{S_CONTENT_FLOW_BEGIN} dropdown-button-control" id="jumpbox"> <div class="jumpbox dropdown-container dropdown-container-right<!-- IF not S_IN_MCP --> dropdown-up<!-- ENDIF --> dropdown-{S_CONTENT_FLOW_BEGIN} dropdown-button-control" id="jumpbox">
<span title="<!-- IF S_IN_MCP and S_MERGE_SELECT -->{L_SELECT_TOPICS_FROM}<!-- ELSEIF S_IN_MCP -->{L_MODERATE_FORUM}<!-- ELSE -->{L_JUMP_TO}<!-- ENDIF -->" class="button button-secondary dropdown-trigger dropdown-select"> <span title="<!-- IF S_IN_MCP and S_MERGE_SELECT -->{L_SELECT_TOPICS_FROM}<!-- ELSEIF S_IN_MCP -->{L_MODERATE_FORUM}<!-- ELSE -->{L_JUMP_TO}<!-- ENDIF -->" class="button button-secondary dropdown-trigger dropdown-select">
<span><!-- IF S_IN_MCP and S_MERGE_SELECT -->{L_SELECT_TOPICS_FROM}<!-- ELSEIF S_IN_MCP -->{L_MODERATE_FORUM}<!-- ELSE -->{L_JUMP_TO}<!-- ENDIF --></span> <span><!-- IF S_IN_MCP and S_MERGE_SELECT -->{L_SELECT_TOPICS_FROM}<!-- ELSEIF S_IN_MCP -->{L_MODERATE_FORUM}<!-- ELSE -->{L_JUMP_TO}<!-- ENDIF --></span>
<span class="caret">{{ Icon('iconify', 'fa:caret-down', '', true) }}</span> <span class="caret">{{ Icon('font', 'caret-down', '', true) }}</span>
</span> </span>
<div class="dropdown"> <div class="dropdown">
<div class="pointer"><div class="pointer-inner"></div></div> <div class="pointer"><div class="pointer-inner"></div></div>

View file

@ -39,14 +39,14 @@
<dl class="row-item"> <dl class="row-item">
<dt> <dt>
<a class="row-item-link{% if topicrow.S_UNREAD_TOPIC %} unread{% else %} read{% endif %}" href="{topicrow.U_VIEW_TOPIC}" title="{topicrow.TOPIC_FOLDER_IMG_ALT}"> <a class="row-item-link{% if topicrow.S_UNREAD_TOPIC %} unread{% else %} read{% endif %}" href="{topicrow.U_VIEW_TOPIC}" title="{topicrow.TOPIC_FOLDER_IMG_ALT}">
{{ Icon('iconify', { {{ Icon('svg', {
'mdi:info-variant' : topicrow.S_POST_GLOBAL, 'info-variant' : topicrow.S_POST_GLOBAL,
'mdi:info-variant' : topicrow.S_POST_ANNOUNCE, 'info-variant' : topicrow.S_POST_ANNOUNCE,
'mdi:star' : topicrow.S_POST_STICKY, 'star' : topicrow.S_POST_STICKY,
'mdi:lock' : topicrow.S_TOPIC_LOCKED, 'lock' : topicrow.S_TOPIC_LOCKED,
'mdi:arrow-right-bold' : topicrow.S_TOPIC_MOVED, 'arrow-right-bold' : topicrow.S_TOPIC_MOVED,
'mdi:fire' : topicrow.S_TOPIC_HOT, 'fire' : topicrow.S_TOPIC_HOT,
'mdi:file-document-outline' : true, 'file-document-outline' : true,
}, '', true, 'c-forum-row-icon') }} }, '', true, 'c-forum-row-icon') }}
</a> </a>
{% if lang(topicrow.TOPIC_AUTHOR) == S_USERNAME %} {% if lang(topicrow.TOPIC_AUTHOR) == S_USERNAME %}
@ -63,24 +63,24 @@
<!-- EVENT mcp_forum_topic_title_after --> <!-- EVENT mcp_forum_topic_title_after -->
<!-- IF topicrow.S_TOPIC_UNAPPROVED or topicrow.S_POSTS_UNAPPROVED --> <!-- IF topicrow.S_TOPIC_UNAPPROVED or topicrow.S_POSTS_UNAPPROVED -->
<a href="{topicrow.U_MCP_QUEUE}" title="{L_TOPIC_UNAPPROVED}"> <a href="{topicrow.U_MCP_QUEUE}" title="{L_TOPIC_UNAPPROVED}">
{{ Icon('iconify', 'fa:question', lang('TOPIC_UNAPPROVED'), true, 'c-unapproved-icon') }} {{ Icon('font', 'circle-question', lang('TOPIC_UNAPPROVED'), true, 'fas c-unapproved-icon o-icon-baseline') }}
</a> </a>
<!-- ENDIF --> <!-- ENDIF -->
<!-- IF topicrow.S_TOPIC_DELETED or topicrow.S_POSTS_DELETED --> <!-- IF topicrow.S_TOPIC_DELETED or topicrow.S_POSTS_DELETED -->
<a href="{topicrow.U_MCP_QUEUE}" title="{L_TOPIC_DELETED}"> <a href="{topicrow.U_MCP_QUEUE}" title="{L_TOPIC_DELETED}">
{{ Icon('iconify', 'fa:recycle', lang('TOPIC_DELETED'), true, 'c-topic-deleted-icon') }} {{ Icon('font', 'recycle', lang('TOPIC_DELETED'), true, 'fas c-topic-deleted-icon o-icon-baseline') }}
</a> </a>
<!-- ENDIF --> <!-- ENDIF -->
<!-- IF topicrow.S_TOPIC_REPORTED --> <!-- IF topicrow.S_TOPIC_REPORTED -->
<a href="{topicrow.U_MCP_REPORT}" title="{L_TOPIC_REPORTED}"> <a href="{topicrow.U_MCP_REPORT}" title="{L_TOPIC_REPORTED}">
{{ Icon('iconify', 'fa:exclamation', lang('TOPIC_REPORTED'), true, 'c-topic-reported-icon') }} {{ Icon('font', 'triangle-exclamation', lang('TOPIC_REPORTED'), true, 'fas c-topic-reported-icon o-icon-baseline') }}
</a> </a>
<!-- ENDIF --> <!-- ENDIF -->
<!-- IF topicrow.S_MOVED_TOPIC and S_CAN_DELETE -->&nbsp;<a href="{topicrow.U_DELETE_TOPIC}" class="topictitle">[ {L_DELETE_SHADOW_TOPIC} ]</a><!-- ENDIF --> <!-- IF topicrow.S_MOVED_TOPIC and S_CAN_DELETE -->&nbsp;<a href="{topicrow.U_DELETE_TOPIC}" class="topictitle">[ {L_DELETE_SHADOW_TOPIC} ]</a><!-- ENDIF -->
<br /> <br />
<!-- EVENT topiclist_row_topic_title_after --> <!-- EVENT topiclist_row_topic_title_after -->
<div class="responsive-show" style="display: none;"> <div class="responsive-show" style="display: none;">
{% if topicrow.ATTACH_ICON_IMG %}{{ Icon('iconify', 'fa:paperclip', '', true) }} {% endif %} {% if topicrow.ATTACH_ICON_IMG %}{{ Icon('font', 'paperclip', '', true) }} {% endif %}
{L_LAST_POST} {L_POST_BY_AUTHOR} {% EVENT mcp_forum_last_post_author_username_prepend %}{topicrow.LAST_POST_AUTHOR_FULL}{% EVENT mcp_forum_last_post_author_username_append %} &laquo; {topicrow.LAST_POST_TIME}<br /> {L_LAST_POST} {L_POST_BY_AUTHOR} {% EVENT mcp_forum_last_post_author_username_prepend %}{topicrow.LAST_POST_AUTHOR_FULL}{% EVENT mcp_forum_last_post_author_username_append %} &laquo; {topicrow.LAST_POST_TIME}<br />
</div> </div>
<span class="responsive-show left-box" style="display: none;">{L_REPLIES}{L_COLON} <strong>{topicrow.REPLIES}</strong></span> <span class="responsive-show left-box" style="display: none;">{L_REPLIES}{L_COLON} <strong>{topicrow.REPLIES}</strong></span>
@ -104,7 +104,7 @@
<!-- ENDIF --> <!-- ENDIF -->
<div class="responsive-hide"> <div class="responsive-hide">
{% if topicrow.ATTACH_ICON_IMG %}{{ Icon('iconify', 'fa:paperclip', '', true) }} {% endif %} {% if topicrow.ATTACH_ICON_IMG %}{{ Icon('font', 'paperclip', '', true) }} {% endif %}
{% EVENT topiclist_row_topic_by_author_before %} {% EVENT topiclist_row_topic_by_author_before %}
{L_POST_BY_AUTHOR} {% EVENT mcp_forum_topic_author_username_prepend %}{topicrow.TOPIC_AUTHOR_FULL}{% EVENT mcp_forum_topic_author_username_append %} &raquo; {topicrow.FIRST_POST_TIME} {L_POST_BY_AUTHOR} {% EVENT mcp_forum_topic_author_username_prepend %}{topicrow.TOPIC_AUTHOR_FULL}{% EVENT mcp_forum_topic_author_username_append %} &raquo; {topicrow.FIRST_POST_TIME}
{% EVENT topiclist_row_topic_by_author_after %} {% EVENT topiclist_row_topic_by_author_after %}

View file

@ -31,7 +31,7 @@
<dl> <dl>
<dt> <dt>
<div class="list-inner"> <div class="list-inner">
<a href="{unapproved.U_POST_DETAILS}" class="topictitle">{unapproved.SUBJECT}</a> <!-- IF unapproved.ATTACH_ICON_IMG -->{{ Icon('iconify', 'fa:paperclip', '', true) }}<!-- ENDIF --> <br /> <a href="{unapproved.U_POST_DETAILS}" class="topictitle">{unapproved.SUBJECT}</a> <!-- IF unapproved.ATTACH_ICON_IMG -->{{ Icon('font', 'paperclip', '', true) }}<!-- ENDIF --> <br />
{L_POSTED} {L_POST_BY_AUTHOR} {unapproved.AUTHOR_FULL} &raquo; {unapproved.POST_TIME} {L_POSTED} {L_POST_BY_AUTHOR} {unapproved.AUTHOR_FULL} &raquo; {unapproved.POST_TIME}
</div> </div>
</dt> </dt>
@ -87,7 +87,7 @@
<dl> <dl>
<dt> <dt>
<div class="list-inner"> <div class="list-inner">
<a href="{report.U_POST_DETAILS}#reports" class="topictitle">{report.SUBJECT}</a> <!-- IF report.ATTACH_ICON_IMG -->{{ Icon('iconify', 'fa:paperclip', '', true) }}<!-- ENDIF --> <br /> <a href="{report.U_POST_DETAILS}#reports" class="topictitle">{report.SUBJECT}</a> <!-- IF report.ATTACH_ICON_IMG -->{{ Icon('font', 'paperclip', '', true) }}<!-- ENDIF --> <br />
<span>{L_POSTED} {L_POST_BY_AUTHOR} {report.AUTHOR_FULL} &raquo; {report.POST_TIME}</span> <span>{L_POSTED} {L_POST_BY_AUTHOR} {report.AUTHOR_FULL} &raquo; {report.POST_TIME}</span>
</div> </div>
</dt> </dt>
@ -130,7 +130,7 @@
<dl> <dl>
<dt> <dt>
<div class="list-inner"> <div class="list-inner">
<a href="{pm_report.U_PM_DETAILS}" class="topictitle">{pm_report.PM_SUBJECT}</a> <!-- IF pm_report.ATTACH_ICON_IMG -->{{ Icon('iconify', 'fa:paperclip', '', true) }}<!-- ENDIF --> <br /> <a href="{pm_report.U_PM_DETAILS}" class="topictitle">{pm_report.PM_SUBJECT}</a> <!-- IF pm_report.ATTACH_ICON_IMG -->{{ Icon('font', 'paperclip', '', true) }}<!-- ENDIF --> <br />
<span>{L_MESSAGE_BY_AUTHOR} {pm_report.PM_AUTHOR_FULL} &raquo; {pm_report.PM_TIME}</span><br /> <span>{L_MESSAGE_BY_AUTHOR} {pm_report.PM_AUTHOR_FULL} &raquo; {pm_report.PM_TIME}</span><br />
<span>{L_MESSAGE_TO} {pm_report.RECIPIENTS}</span> <span>{L_MESSAGE_TO} {pm_report.RECIPIENTS}</span>
</div> </div>

View file

@ -14,7 +14,7 @@
<h3>{L_REPORT_REASON}{L_COLON} {REPORT_REASON_TITLE}</h3> <h3>{L_REPORT_REASON}{L_COLON} {REPORT_REASON_TITLE}</h3>
<p class="author">{L_REPORTED} {L_POST_BY_AUTHOR} {REPORTER_FULL} &laquo; {REPORT_DATE}</p> <p class="author">{L_REPORTED} {L_POST_BY_AUTHOR} {REPORTER_FULL} &laquo; {REPORT_DATE}</p>
<!-- IF S_REPORT_CLOSED --> <!-- IF S_REPORT_CLOSED -->
<p class="post-notice reported">{{ Icon('iconify', 'fa:exclamation', '', true, 'c-topic-reported-icon') }}{L_REPORT_CLOSED}</p> <p class="post-notice reported">{{ Icon('font', 'exclamation', '', true, 'fas c-topic-reported-icon') }}{L_REPORT_CLOSED}</p>
<!-- ENDIF --> <!-- ENDIF -->
<div class="content"> <div class="content">
<!-- IF REPORT_TEXT --> <!-- IF REPORT_TEXT -->
@ -61,7 +61,7 @@
<!-- IF U_EDIT --> <!-- IF U_EDIT -->
<li> <li>
<a href="{U_EDIT}" title="{L_EDIT_POST}" class="button"> <a href="{U_EDIT}" title="{L_EDIT_POST}" class="button">
{{ Icon('iconify', 'fa:pencil', lang('EDIT_POST'), true, 'c-button-icon') }} {{ Icon('font', 'pencil', lang('EDIT_POST'), true, 'fas c-button-icon') }}
</a> </a>
</li> </li>
<!-- ENDIF --> <!-- ENDIF -->
@ -75,7 +75,7 @@
<!-- IF S_BCC_RECIPIENT --><br /><strong>{L_BCC}{L_COLON}</strong> <!-- BEGIN bcc_recipient --><!-- IF bcc_recipient.NAME_FULL -->{bcc_recipient.NAME_FULL}<!-- ELSE --><a href="{bcc_recipient.U_VIEW}"<!-- IF bcc_recipient.COLOUR --> style="color:{bcc_recipient.COLOUR};"<!-- ENDIF -->><strong>{bcc_recipient.NAME}</strong></a><!-- ENDIF -->&nbsp;<!-- END bcc_recipient --><!-- ENDIF --> <!-- IF S_BCC_RECIPIENT --><br /><strong>{L_BCC}{L_COLON}</strong> <!-- BEGIN bcc_recipient --><!-- IF bcc_recipient.NAME_FULL -->{bcc_recipient.NAME_FULL}<!-- ELSE --><a href="{bcc_recipient.U_VIEW}"<!-- IF bcc_recipient.COLOUR --> style="color:{bcc_recipient.COLOUR};"<!-- ENDIF -->><strong>{bcc_recipient.NAME}</strong></a><!-- ENDIF -->&nbsp;<!-- END bcc_recipient --><!-- ENDIF -->
</p> </p>
<!-- ELSE --> <!-- ELSE -->
<p class="author"><span>{{ Icon('iconify', 'fa:file', MINI_POST, true, 'c-topic-icon') }}</span> {L_POSTED} {L_POST_BY_AUTHOR} {POST_AUTHOR_FULL} &raquo; {POST_DATE}</p> <p class="author"><span>{{ Icon('font', 'file', MINI_POST, true, 'fas c-topic-icon') }}</span> {L_POSTED} {L_POST_BY_AUTHOR} {POST_AUTHOR_FULL} &raquo; {POST_DATE}</p>
<!-- ENDIF --> <!-- ENDIF -->
<!-- IF S_POST_UNAPPROVED --> <!-- IF S_POST_UNAPPROVED -->
@ -104,7 +104,7 @@
{% if S_POST_REPORTED and not S_MCP_REPORT %} {% if S_POST_REPORTED and not S_MCP_REPORT %}
<p class="post-notice reported"> <p class="post-notice reported">
{{ Icon('iconify', 'fa:exclamation', lang('TOPIC_REPORTED'), true, 'c-topic-reported-icon') }} {{ Icon('font', 'exclamation', lang('TOPIC_REPORTED'), true, 'fas c-topic-reported-icon') }}
<a href="{U_MCP_REPORT}"><strong>{{ lang('POST_REPORTED') }}</strong></a> <a href="{U_MCP_REPORT}"><strong>{{ lang('POST_REPORTED') }}</strong></a>
</p> </p>
{% endif %} {% endif %}
@ -340,13 +340,13 @@
<ul> <ul>
<!-- BEGIN pagination_ips --> <!-- BEGIN pagination_ips -->
<!-- IF pagination_ips.S_IS_PREV --> <!-- IF pagination_ips.S_IS_PREV -->
<li class="arrow previous"><a class="button button-icon-only" href="{pagination_ips.PAGE_URL}" rel="prev" role="button">{{ Icon('iconify', 'fa:chevron-' ~ S_CONTENT_FLOW_BEGIN, lang('PREVIOUS'), true, 'c-button-icon') }}</a></li> <li class="arrow previous"><a class="button button-icon-only" href="{pagination_ips.PAGE_URL}" rel="prev" role="button">{{ Icon('font', 'chevron-' ~ S_CONTENT_FLOW_BEGIN, lang('PREVIOUS'), true, 'fas c-button-icon') }}</a></li>
<!-- ELSEIF pagination_ips.S_IS_CURRENT --> <!-- ELSEIF pagination_ips.S_IS_CURRENT -->
<li class="active"><span>{pagination_ips.PAGE_NUMBER}</span></li> <li class="active"><span>{pagination_ips.PAGE_NUMBER}</span></li>
<!-- ELSEIF pagination_ips.S_IS_ELLIPSIS --> <!-- ELSEIF pagination_ips.S_IS_ELLIPSIS -->
<li class="ellipsis" role="separator"><span>{L_ELLIPSIS}</span></li> <li class="ellipsis" role="separator"><span>{L_ELLIPSIS}</span></li>
<!-- ELSEIF pagination_ips.S_IS_NEXT --> <!-- ELSEIF pagination_ips.S_IS_NEXT -->
<li class="arrow next"><a class="button button-icon-only" href="{pagination_ips.PAGE_URL}" rel="next" role="button">{{ Icon('iconify', 'fa:chevron-' ~ S_CONTENT_FLOW_END, lang('NEXT'), true, 'c-button-icon') }}</a></li> <li class="arrow next"><a class="button button-icon-only" href="{pagination_ips.PAGE_URL}" rel="next" role="button">{{ Icon('font', 'chevron-' ~ S_CONTENT_FLOW_END, lang('NEXT'), true, 'fas c-button-icon') }}</a></li>
<!-- ELSE --> <!-- ELSE -->
<li><a class="button" href="{pagination_ips.PAGE_URL}" role="button">{pagination_ips.PAGE_NUMBER}</a></li> <li><a class="button" href="{pagination_ips.PAGE_URL}" role="button">{pagination_ips.PAGE_NUMBER}</a></li>
<!-- ENDIF --> <!-- ENDIF -->

View file

@ -48,7 +48,7 @@
<dl> <dl>
<dt> <dt>
<div class="list-inner"> <div class="list-inner">
<a href="{postrow.U_VIEW_DETAILS}" class="topictitle">{postrow.POST_SUBJECT}</a><!-- IF postrow.S_HAS_ATTACHMENTS --> {{ Icon('iconify', 'fa:paperclip', '', true) }} <!-- ENDIF --><br /> <a href="{postrow.U_VIEW_DETAILS}" class="topictitle">{postrow.POST_SUBJECT}</a><!-- IF postrow.S_HAS_ATTACHMENTS --> {{ Icon('font', 'paperclip', '', true) }} <!-- ENDIF --><br />
<span>{L_POSTED} {L_POST_BY_AUTHOR} {postrow.POST_AUTHOR_FULL} &raquo; {postrow.POST_TIME}</span> <span>{L_POSTED} {L_POST_BY_AUTHOR} {postrow.POST_AUTHOR_FULL} &raquo; {postrow.POST_TIME}</span>
</div> </div>
</dt> </dt>

View file

@ -47,7 +47,7 @@
<dt> <dt>
<div class="list-inner"> <div class="list-inner">
<a href="{{ postrow.U_VIEW_DETAILS }}" class="topictitle">{{ postrow.PM_SUBJECT }}</a> <a href="{{ postrow.U_VIEW_DETAILS }}" class="topictitle">{{ postrow.PM_SUBJECT }}</a>
{% if postrow.ATTACH_ICON_IMG %}{{ Icon('iconify', 'fa:paperclip', '', true) }}{% endif %} {% if postrow.ATTACH_ICON_IMG %}{{ Icon('font', 'paperclip', '', true) }}{% endif %}
<br> <br>
<span>{L_MESSAGE_BY_AUTHOR} {postrow.PM_AUTHOR_FULL} &raquo; {postrow.PM_TIME}</span><br /> <span>{L_MESSAGE_BY_AUTHOR} {postrow.PM_AUTHOR_FULL} &raquo; {postrow.PM_TIME}</span><br />
<span>{L_MESSAGE_TO} {postrow.RECIPIENTS}</span> <span>{L_MESSAGE_TO} {postrow.RECIPIENTS}</span>
@ -63,7 +63,7 @@
<dt> <dt>
<div class="list-inner"> <div class="list-inner">
<a href="{postrow.U_VIEW_DETAILS}" class="topictitle">{postrow.POST_SUBJECT}</a> <a href="{postrow.U_VIEW_DETAILS}" class="topictitle">{postrow.POST_SUBJECT}</a>
{% if postrow.ATTACH_ICON_IMG %}{{ Icon('iconify', 'fa:paperclip', '', true) }} {% endif %} {% if postrow.ATTACH_ICON_IMG %}{{ Icon('font', 'paperclip', '', true) }} {% endif %}
<br> <br>
<span>{L_POSTED} {L_POST_BY_AUTHOR} {postrow.POST_AUTHOR_FULL} &raquo; {postrow.POST_TIME}</span> <span>{L_POSTED} {L_POST_BY_AUTHOR} {postrow.POST_AUTHOR_FULL} &raquo; {postrow.POST_TIME}</span>
<div class="responsive-show" style="display: none;"> <div class="responsive-show" style="display: none;">

View file

@ -105,7 +105,7 @@
<ul class="post-buttons"> <ul class="post-buttons">
<li> <li>
<a href="{postrow.U_POST_DETAILS}" title="{L_POST_DETAILS}" class="button button-icon-only"> <a href="{postrow.U_POST_DETAILS}" title="{L_POST_DETAILS}" class="button button-icon-only">
{{ Icon('iconify', 'fa:info', lang('POST_DETAILS'), true, 'c-button-icon') }} {{ Icon('font', 'info', lang('POST_DETAILS'), true, 'fas c-button-icon') }}
</a> </a>
</li> </li>
<li> <li>
@ -122,14 +122,14 @@
<!-- EVENT mcp_topic_postrow_post_details_before --> <!-- EVENT mcp_topic_postrow_post_details_before -->
<p class="author"> <p class="author">
<a href="{postrow.U_MINI_POST}" title="{postrow.MINI_POST}"> <a href="{postrow.U_MINI_POST}" title="{postrow.MINI_POST}">
{{ Icon('iconify', 'fa:file', postrow.MINI_POST, true) }} {{ Icon('font', 'file', postrow.MINI_POST, true) }}
</a> {L_POSTED} {postrow.POST_DATE} {L_POST_BY_AUTHOR} {% EVENT mcp_topic_post_author_full_prepend %}<strong>{postrow.POST_AUTHOR_FULL}</strong>{% EVENT mcp_topic_post_author_full_append %}<!-- IF postrow.U_MCP_DETAILS --> [ <a href="{postrow.U_MCP_DETAILS}">{L_POST_DETAILS}</a> ]<!-- ENDIF --> </a> {L_POSTED} {postrow.POST_DATE} {L_POST_BY_AUTHOR} {% EVENT mcp_topic_post_author_full_prepend %}<strong>{postrow.POST_AUTHOR_FULL}</strong>{% EVENT mcp_topic_post_author_full_append %}<!-- IF postrow.U_MCP_DETAILS --> [ <a href="{postrow.U_MCP_DETAILS}">{L_POST_DETAILS}</a> ]<!-- ENDIF -->
</p> </p>
<!-- EVENT mcp_topic_postrow_post_details_after --> <!-- EVENT mcp_topic_postrow_post_details_after -->
<!-- IF postrow.S_POST_UNAPPROVED --> <!-- IF postrow.S_POST_UNAPPROVED -->
<p class="post-notice unapproved"> <p class="post-notice unapproved">
<a href="{postrow.U_MCP_APPROVE}">{{ Icon('iconify', 'fa:exclamation', '', true, 'c-topic-reported-icon') }}<strong>{L_POST_UNAPPROVED}</strong></a> <a href="{postrow.U_MCP_APPROVE}">{{ Icon('font', 'exclamation', '', true, 'fas c-topic-reported-icon') }}<strong>{L_POST_UNAPPROVED}</strong></a>
</p> </p>
<!-- ENDIF --> <!-- ENDIF -->
@ -141,7 +141,7 @@
<!-- IF postrow.S_POST_REPORTED --> <!-- IF postrow.S_POST_REPORTED -->
<p class="post-notice reported"> <p class="post-notice reported">
<a href="{postrow.U_MCP_REPORT}">{{ Icon('iconify', 'fa:exclamation', '', true, 'c-topic-reported-icon') }}<strong>{L_POST_REPORTED}</strong></a> <a href="{postrow.U_MCP_REPORT}">{{ Icon('font', 'exclamation', '', true, 'fas c-topic-reported-icon') }}<strong>{L_POST_REPORTED}</strong></a>
</p> </p>
<!-- ENDIF --> <!-- ENDIF -->

View file

@ -5,7 +5,7 @@
<div class="inner"> <div class="inner">
<p> <p>
<a href="{U_RETURN_POST}" class="arrow-{S_CONTENT_FLOW_BEGIN}" accesskey="r"> <a href="{U_RETURN_POST}" class="arrow-{S_CONTENT_FLOW_BEGIN}" accesskey="r">
{{ Icon('iconify', 'fa:angle-' ~ S_CONTENT_FLOW_BEGIN, lang('RETURN_POST'), false, 'c-return-arrow-icon') }} {{ Icon('font', 'angle-' ~ S_CONTENT_FLOW_BEGIN, lang('RETURN_POST'), false, 'fas c-return-arrow-icon') }}
</a> </a>
</p> </p>
<div class="postbody"><div class="content"> <div class="postbody"><div class="content">
@ -13,7 +13,7 @@
</div></div> </div></div>
<p> <p>
<a href="{U_RETURN_POST}" class="arrow-{S_CONTENT_FLOW_BEGIN}" accesskey="r"> <a href="{U_RETURN_POST}" class="arrow-{S_CONTENT_FLOW_BEGIN}" accesskey="r">
{{ Icon('iconify', 'fa:angle-' ~ S_CONTENT_FLOW_BEGIN, lang('RETURN_POST'), false, 'c-return-arrow-icon') }} {{ Icon('font', 'angle-' ~ S_CONTENT_FLOW_BEGIN, lang('RETURN_POST'), false, 'fas c-return-arrow-icon') }}
</a> </a>
</p> </p>
</div> </div>

View file

@ -22,7 +22,7 @@
{L_USERNAME}{L_COLON} {L_USERNAME}{L_COLON}
</dt> </dt>
<dd> <dd>
<!-- EVENT memberlist_view_username_prepend --><!-- IF USER_COLOR --><span style="color: {USER_COLOR}; font-weight: bold;"><!-- ELSE --><span><!-- ENDIF -->{USERNAME}</span><!-- EVENT memberlist_view_username_append --> <!-- IF S_ONLINE --> {{ Icon('iconify', 'fa:circle', lang('ONLINE'), true, 'c-online-icon') }}<!-- ENDIF --> <!-- EVENT memberlist_view_username_prepend --><!-- IF USER_COLOR --><span style="color: {USER_COLOR}; font-weight: bold;"><!-- ELSE --><span><!-- ENDIF -->{USERNAME}</span><!-- EVENT memberlist_view_username_append --> <!-- IF S_ONLINE --> {{ Icon('font', 'circle', lang('ONLINE'), true, 'fas c-online-icon') }}<!-- ENDIF -->
<!-- IF U_EDIT_SELF --> [ <a href="{U_EDIT_SELF}">{L_EDIT_PROFILE}</a> ]<!-- ENDIF --> <!-- IF U_EDIT_SELF --> [ <a href="{U_EDIT_SELF}">{L_EDIT_PROFILE}</a> ]<!-- ENDIF -->
<!-- IF U_USER_ADMIN --> [ <a href="{U_USER_ADMIN}">{L_USER_ADMIN}</a> ]<!-- ENDIF --> <!-- IF U_USER_ADMIN --> [ <a href="{U_USER_ADMIN}">{L_USER_ADMIN}</a> ]<!-- ENDIF -->
<!-- IF U_USER_BAN --> [ <a href="{U_USER_BAN}">{L_USER_BAN}</a> ]<!-- ENDIF --> <!-- IF U_USER_BAN --> [ <a href="{U_USER_BAN}">{L_USER_BAN}</a> ]<!-- ENDIF -->

View file

@ -11,7 +11,7 @@
<!-- IF SCRIPT_NAME == "search" and not S_BOARD_DISABLED and not S_NO_SEARCH and L_RETURN_TO_SEARCH_ADV --> <!-- IF SCRIPT_NAME == "search" and not S_BOARD_DISABLED and not S_NO_SEARCH and L_RETURN_TO_SEARCH_ADV -->
<p> <p>
<a href="{U_SEARCH}" class="arrow-{S_CONTENT_FLOW_BEGIN}" accesskey="r"> <a href="{U_SEARCH}" class="arrow-{S_CONTENT_FLOW_BEGIN}" accesskey="r">
{{ Icon('iconify', 'fa:angle-' ~ S_CONTENT_FLOW_BEGIN, lang('GO_TO_SEARCH_ADV'), true, 'c-return-arrow-icon') }} {{ Icon('font', 'angle-' ~ S_CONTENT_FLOW_BEGIN, lang('GO_TO_SEARCH_ADV'), true, 'fas c-return-arrow-icon') }}
</a> </a>
</p> </p>
<!-- ENDIF --> <!-- ENDIF -->

View file

@ -7,7 +7,7 @@
{% apply spaceless %} {% apply spaceless %}
<span class="crumb"> <span class="crumb">
<a href="{{ U_SITE_HOME }}" data-navbar-reference="home"> <a href="{{ U_SITE_HOME }}" data-navbar-reference="home">
{{ Icon('iconify', 'fa:home', lang('SITE_HOME'), false) }} {{ Icon('font', 'home', lang('SITE_HOME'), false, 'fas o-icon-baseline') }}
</a> </a>
</span> </span>
{% endapply %} {% endapply %}
@ -21,7 +21,7 @@
{% if U_SITE_HOME %} {% if U_SITE_HOME %}
<span>{{ lang('INDEX') }}</span> <span>{{ lang('INDEX') }}</span>
{% else %} {% else %}
{{ Icon('iconify', 'fa:home', lang('INDEX'), false) }} {{ Icon('font', 'home', lang('INDEX'), false, 'fas o-icon-baseline') }}
{% endif %} {% endif %}
</a> </a>
</span> </span>
@ -35,11 +35,11 @@
<li class="in-menu"> <li class="in-menu">
<a href="{{ U_WATCH_FORUM_LINK }}" title="{{ S_WATCH_FORUM_TITLE }}" data-ajax="toggle_link" data-toggle-text="{{ S_WATCH_FORUM_TOGGLE }}" data-toggle-url="{{ U_WATCH_FORUM_TOGGLE }}"> <a href="{{ U_WATCH_FORUM_LINK }}" title="{{ S_WATCH_FORUM_TITLE }}" data-ajax="toggle_link" data-toggle-text="{{ S_WATCH_FORUM_TOGGLE }}" data-toggle-url="{{ U_WATCH_FORUM_TOGGLE }}">
{% if S_WATCHING_FORUM %} {% if S_WATCHING_FORUM %}
{{ Icon('iconify', 'mdi:eye-minus-outline', '', true, 'c-watch-icon is-active') }} {{ Icon('font', 'bell-slash', '', true, 'far c-watch-icon is-active') }}
{{ Icon('iconify', 'mdi:eye-plus-outline', '', true, 'c-watch-icon') }} {{ Icon('font', 'bell', '', true, 'far c-watch-icon') }}
{% else %} {% else %}
{{ Icon('iconify', 'mdi:eye-plus-outline', '', true, 'c-watch-icon is-active') }} {{ Icon('font', 'bell', '', true, 'far c-watch-icon is-active') }}
{{ Icon('iconify', 'mdi:eye-minus-outline', '', true, 'c-watch-icon') }} {{ Icon('font', 'bell-slash', '', true, 'far c-watch-icon') }}
{% endif %} {% endif %}
<span>{{ S_WATCH_FORUM_TITLE }}</span> <span>{{ S_WATCH_FORUM_TITLE }}</span>
</a> </a>
@ -59,14 +59,14 @@
{% if not S_IS_BOT %} {% if not S_IS_BOT %}
<li class="rightside in-menu"> <li class="rightside in-menu">
<a href="{{ U_DELETE_COOKIES }}" data-ajax="true" data-refresh="true" role="menuitem"> <a href="{{ U_DELETE_COOKIES }}" data-ajax="true" data-refresh="true" role="menuitem">
{{ Icon('iconify', 'fa:trash', lang('DELETE_COOKIES'), false) }} {{ Icon('font', 'trash', lang('DELETE_COOKIES'), false) }}
</a> </a>
</li> </li>
{% if S_DISPLAY_MEMBERLIST %} {% if S_DISPLAY_MEMBERLIST %}
<li class="rightside in-menu"> <li class="rightside in-menu">
<a href="{{ U_MEMBERLIST }}" title="{{ lang('MEMBERLIST_EXPLAIN') }}" role="menuitem"> <a href="{{ U_MEMBERLIST }}" title="{{ lang('MEMBERLIST_EXPLAIN') }}" role="menuitem">
{{ Icon('iconify', 'fa:group', lang('MEMBERLIST'), false) }} {{ Icon('font', 'users', lang('MEMBERLIST'), false) }}
</a> </a>
</li> </li>
{% endif %} {% endif %}
@ -77,7 +77,7 @@
{% if U_TEAM %} {% if U_TEAM %}
<li class="rightside in-menu"> <li class="rightside in-menu">
<a href="{{ U_TEAM }}" role="menuitem"> <a href="{{ U_TEAM }}" role="menuitem">
{{ Icon('iconify', 'fa:shield', lang('THE_TEAM'), false) }} {{ Icon('font', 'shield-halved', lang('THE_TEAM'), false) }}
</a> </a>
</li> </li>
{% endif %} {% endif %}
@ -87,7 +87,7 @@
{% if U_CONTACT_US %} {% if U_CONTACT_US %}
<li class="rightside in-menu"> <li class="rightside in-menu">
<a href="{{ U_CONTACT_US }}" role="menuitem"> <a href="{{ U_CONTACT_US }}" role="menuitem">
{{ Icon('iconify', 'fa:envelope', lang('CONTACT_US'), false) }} {{ Icon('font', 'envelope', lang('CONTACT_US'), false) }}
</a> </a>
</li> </li>
{% endif %} {% endif %}
@ -97,7 +97,7 @@
<li class="rightside dropdown-container responsive-menu"> <li class="rightside dropdown-container responsive-menu">
<a class="dropdown-toggle" href=""> <a class="dropdown-toggle" href="">
{{ Icon('iconify', 'fa:bars', '', true) }} {{ Icon('font', 'bars', '', true) }}
</a> </a>
<div class="dropdown"> <div class="dropdown">
<div class="pointer"> <div class="pointer">

View file

@ -4,7 +4,7 @@
<ul id="nav-main" class="nav-main linklist" role="menubar"> <ul id="nav-main" class="nav-main linklist" role="menubar">
<li id="quick-links" class="quick-links dropdown-container responsive-menu{% if not S_DISPLAY_QUICK_LINKS and not S_DISPLAY_SEARCH %} hidden{% endif %}"> <li id="quick-links" class="quick-links dropdown-container responsive-menu{% if not S_DISPLAY_QUICK_LINKS and not S_DISPLAY_SEARCH %} hidden{% endif %}">
<a href="#" class="dropdown-trigger"> <a href="#" class="dropdown-trigger">
{{ Icon('iconify', 'fa:bars', lang('QUICK_LINKS'), false) }} {{ Icon('font', 'bars', lang('QUICK_LINKS'), false) }}
</a> </a>
<div class="dropdown"> <div class="dropdown">
<div class="pointer"><div class="pointer-inner"></div></div> <div class="pointer"><div class="pointer-inner"></div></div>
@ -16,38 +16,38 @@
{% if S_REGISTERED_USER %} {% if S_REGISTERED_USER %}
<li> <li>
<a href="{{ U_SEARCH_SELF }}" role="menuitem"> <a href="{{ U_SEARCH_SELF }}" role="menuitem">
{{ Icon('iconify', 'mdi:file-account-outline', lang('SEARCH_SELF'), false) }} {{ Icon('font', 'file', lang('SEARCH_SELF'), false, 'far icon icon-gray') }}
</a> </a>
</li> </li>
{% endif %} {% endif %}
{% if S_USER_LOGGED_IN %} {% if S_USER_LOGGED_IN %}
<li> <li>
<a href="{{ U_SEARCH_NEW }}" role="menuitem"> <a href="{{ U_SEARCH_NEW }}" role="menuitem">
{{ Icon('iconify', 'mdi:file-hidden', lang('SEARCH_NEW'), false) }} {{ Icon('font', 'file', lang('SEARCH_NEW'), false, 'far icon icon-red') }}
</a> </a>
</li> </li>
{% endif %} {% endif %}
{% if S_LOAD_UNREADS %} {% if S_LOAD_UNREADS %}
<li> <li>
<a href="{{ U_SEARCH_UNREAD }}" role="menuitem"> <a href="{{ U_SEARCH_UNREAD }}" role="menuitem">
{{ Icon('iconify', 'mdi:file', lang('SEARCH_UNREAD'), false) }} {{ Icon('font', 'file', lang('SEARCH_UNREAD'), false, 'far icon icon-red') }}
</a> </a>
</li> </li>
{% endif %} {% endif %}
<li> <li>
<a href="{{ U_SEARCH_UNANSWERED }}" role="menuitem"> <a href="{{ U_SEARCH_UNANSWERED }}" role="menuitem">
{{ Icon('iconify', 'mdi:file-question-outline', lang('SEARCH_UNANSWERED'), false) }} {{ Icon('font', 'file', lang('SEARCH_UNANSWERED'), false, 'far icon icon-gray') }}
</a> </a>
</li> </li>
<li> <li>
<a href="{{ U_SEARCH_ACTIVE_TOPICS }}" role="menuitem"> <a href="{{ U_SEARCH_ACTIVE_TOPICS }}" role="menuitem">
{{ Icon('iconify', 'mdi:file-upload-outline', lang('SEARCH_ACTIVE_TOPICS'), false) }} {{ Icon('font', 'file-lines', lang('SEARCH_ACTIVE_TOPICS'), false, 'far icon icon-blue') }}
</a> </a>
</li> </li>
<li class="separator"></li> <li class="separator"></li>
<li> <li>
<a href="{{ U_SEARCH }}" role="menuitem"> <a href="{{ U_SEARCH }}" role="menuitem">
{{ Icon('iconify', 'fa:search', lang('SEARCH'), false) }} {{ Icon('font', 'search', lang('SEARCH'), false) }}
</a> </a>
</li> </li>
{% endif %} {% endif %}
@ -57,14 +57,14 @@
{% if S_DISPLAY_MEMBERLIST %} {% if S_DISPLAY_MEMBERLIST %}
<li> <li>
<a href="{{ U_MEMBERLIST }}" role="menuitem"> <a href="{{ U_MEMBERLIST }}" role="menuitem">
{{ Icon('iconify', 'fa:group', lang('MEMBERLIST'), false) }} {{ Icon('font', 'users', lang('MEMBERLIST'), false) }}
</a> </a>
</li> </li>
{% endif %} {% endif %}
{% if U_TEAM %} {% if U_TEAM %}
<li> <li>
<a href="{{ U_TEAM }}" role="menuitem"> <a href="{{ U_TEAM }}" role="menuitem">
{{ Icon('iconify', 'fa:shield', lang('THE_TEAM'), false) }} {{ Icon('font', 'shield-halved', lang('THE_TEAM'), false) }}
</a> </a>
</li> </li>
{% endif %} {% endif %}
@ -78,7 +78,7 @@
{% EVENT overall_header_navigation_prepend %} {% EVENT overall_header_navigation_prepend %}
<li class="in-menu"> <li class="in-menu">
<a href="{{ U_FAQ }}" rel="help" title="{{ lang('FAQ_EXPLAIN') }}" role="menuitem"> <a href="{{ U_FAQ }}" rel="help" title="{{ lang('FAQ_EXPLAIN') }}" role="menuitem">
{{ Icon('iconify', 'fa:question-circle', lang('FAQ'), false) }} {{ Icon('font', 'question-circle', lang('FAQ'), false) }}
</a> </a>
</li> </li>
{% EVENT overall_header_navigation_append %} {% EVENT overall_header_navigation_append %}
@ -91,14 +91,14 @@
{% if U_ACP %} {% if U_ACP %}
<li> <li>
<a href="{{ U_ACP }}" title="{{ lang('ACP') }}" role="menuitem"> <a href="{{ U_ACP }}" title="{{ lang('ACP') }}" role="menuitem">
{{ Icon('iconify', 'fa:cogs', lang('ACP_SHORT'), false) }} {{ Icon('font', 'gears', lang('ACP_SHORT'), false) }}
</a> </a>
</li> </li>
{% endif %} {% endif %}
{% if U_MCP %} {% if U_MCP %}
<li> <li>
<a href="{{ U_MCP }}" title="{{ lang('MCP') }}" role="menuitem"> <a href="{{ U_MCP }}" title="{{ lang('MCP') }}" role="menuitem">
{{ Icon('iconify', 'fa:gavel', lang('MCP_SHORT'), false) }} {{ Icon('font', 'gavel', lang('MCP_SHORT'), false) }}
</a> </a>
</li> </li>
{% endif %} {% endif %}
@ -115,7 +115,7 @@
<a href="{{ U_PROFILE }}" class="header-avatar dropdown-trigger"> <a href="{{ U_PROFILE }}" class="header-avatar dropdown-trigger">
{% if CURRENT_USER_AVATAR_HTML %}{{ CURRENT_USER_AVATAR_HTML }} {% endif %} {% if CURRENT_USER_AVATAR_HTML %}{{ CURRENT_USER_AVATAR_HTML }} {% endif %}
{{ CURRENT_USERNAME_SIMPLE }} {{ CURRENT_USERNAME_SIMPLE }}
{{ Icon('iconify', 'fa:caret-down', '', true, '', {'style': 'color: #' ~ CURRENT_USER_GROUP_COLOR}) }} {{ Icon('font', 'caret-down', '', true, '', {'style': 'color: #' ~ CURRENT_USER_GROUP_COLOR}) }}
</a> </a>
<div class="dropdown"> <div class="dropdown">
<div class="pointer"><div class="pointer-inner"></div></div> <div class="pointer"><div class="pointer-inner"></div></div>
@ -123,7 +123,7 @@
{% if U_RESTORE_PERMISSIONS %} {% if U_RESTORE_PERMISSIONS %}
<li> <li>
<a href="{{ U_RESTORE_PERMISSIONS }}"> <a href="{{ U_RESTORE_PERMISSIONS }}">
{{ Icon('iconify', 'fa:refresh', lang('RESTORE_PERMISSIONS'), false) }} {{ Icon('font', 'rotate', lang('RESTORE_PERMISSIONS'), false) }}
</a> </a>
</li> </li>
{% endif %} {% endif %}
@ -132,13 +132,13 @@
<li> <li>
<a href="{{ U_PROFILE }}" title="{{ lang('PROFILE') }}" role="menuitem"> <a href="{{ U_PROFILE }}" title="{{ lang('PROFILE') }}" role="menuitem">
{{ Icon('iconify', 'fa:sliders', lang('PROFILE'), false) }} {{ Icon('font', 'sliders', lang('PROFILE'), false) }}
</a> </a>
</li> </li>
{% if U_USER_PROFILE %} {% if U_USER_PROFILE %}
<li> <li>
<a href="{{ U_USER_PROFILE }}" title="{{ lang('READ_PROFILE') }}" role="menuitem"> <a href="{{ U_USER_PROFILE }}" title="{{ lang('READ_PROFILE') }}" role="menuitem">
{{ Icon('iconify', 'fa:user', lang('READ_PROFILE'), false) }} {{ Icon('font', 'user', lang('READ_PROFILE'), false) }}
</a> </a>
</li> </li>
{% endif %} {% endif %}
@ -148,7 +148,7 @@
<li class="separator"></li> <li class="separator"></li>
<li> <li>
<a href="{{ U_LOGIN_LOGOUT }}" title="{{ lang('LOGIN_LOGOUT') }}" accesskey="x" role="menuitem"> <a href="{{ U_LOGIN_LOGOUT }}" title="{{ lang('LOGIN_LOGOUT') }}" accesskey="x" role="menuitem">
{{ Icon('iconify', 'fa:power-off', lang('LOGIN_LOGOUT'), false) }} {{ Icon('font', 'power-off', lang('LOGIN_LOGOUT'), false) }}
</a> </a>
</li> </li>
</ul> </ul>
@ -161,7 +161,7 @@
{% if S_DISPLAY_PM %} {% if S_DISPLAY_PM %}
<li class="rightside"> <li class="rightside">
<a href="{{ U_PRIVATEMSGS }}" role="menuitem"> <a href="{{ U_PRIVATEMSGS }}" role="menuitem">
{{ Icon('iconify', 'fa:inbox', lang('PRIVATE_MESSAGES'), false) }}<strong class="badge{% if not PRIVATE_MESSAGE_COUNT %} hidden{% endif %}"> {PRIVATE_MESSAGE_COUNT}</strong> {{ Icon('font', 'inbox', lang('PRIVATE_MESSAGES'), false) }}<strong class="badge{% if not PRIVATE_MESSAGE_COUNT %} hidden{% endif %}"> {PRIVATE_MESSAGE_COUNT}</strong>
</a> </a>
</li> </li>
{% endif %} {% endif %}
@ -169,7 +169,7 @@
{% if S_NOTIFICATIONS_DISPLAY %} {% if S_NOTIFICATIONS_DISPLAY %}
<li class="dropdown-container dropdown-{S_CONTENT_FLOW_END} rightside"> <li class="dropdown-container dropdown-{S_CONTENT_FLOW_END} rightside">
<a href="{{ U_VIEW_ALL_NOTIFICATIONS }}" id="notification-button" class="dropdown-trigger"> <a href="{{ U_VIEW_ALL_NOTIFICATIONS }}" id="notification-button" class="dropdown-trigger">
{{ Icon('iconify', 'fa:bell', lang('NOTIFICATIONS'), false) }}<strong class="badge{% if not NOTIFICATIONS_COUNT %} hidden{% endif %}">{NOTIFICATIONS_COUNT}</strong> {{ Icon('font', 'bell', lang('NOTIFICATIONS'), false) }}<strong class="badge{% if not NOTIFICATIONS_COUNT %} hidden{% endif %}">{NOTIFICATIONS_COUNT}</strong>
</a> </a>
{% include 'notification_dropdown.html' %} {% include 'notification_dropdown.html' %}
@ -182,13 +182,13 @@
{% elseif not S_IS_BOT %} {% elseif not S_IS_BOT %}
<li class="rightside" > <li class="rightside" >
<a href="{{ U_LOGIN_LOGOUT }}" title="{{ lang('LOGIN_LOGOUT') }}" accesskey="x" role="menuitem"> <a href="{{ U_LOGIN_LOGOUT }}" title="{{ lang('LOGIN_LOGOUT') }}" accesskey="x" role="menuitem">
{{ Icon('iconify', 'fa:power-off', lang('LOGIN_LOGOUT'), false) }} {{ Icon('font', 'power-off', lang('LOGIN_LOGOUT'), false) }}
</a> </a>
</li> </li>
{% if S_REGISTER_ENABLED and not (S_SHOW_COPPA or S_REGISTRATION) %} {% if S_REGISTER_ENABLED and not (S_SHOW_COPPA or S_REGISTRATION) %}
<li class="rightside"> <li class="rightside">
<a href="{{ U_REGISTER }}" role="menuitem"> <a href="{{ U_REGISTER }}" role="menuitem">
{{ Icon('iconify', 'fa:pencil-square-o', lang('REGISTER'), false) }} {{ Icon('font', 'pen-to-square', lang('REGISTER'), false) }}
</a> </a>
</li> </li>
{% endif %} {% endif %}
@ -209,7 +209,7 @@
<span class="crumb" {{ MICRODATA }}> <span class="crumb" {{ MICRODATA }}>
{% apply spaceless %} {% apply spaceless %}
<a itemprop="item" href="{{ U_SITE_HOME }}" data-navbar-reference="home"> <a itemprop="item" href="{{ U_SITE_HOME }}" data-navbar-reference="home">
{{ Icon('iconify', 'fa:home', '', true) }} {{ Icon('font', 'home', '', true, 'fas o-icon-baseline') }}
<span itemprop="name">{{ L_SITE_HOME }}</span> <span itemprop="name">{{ L_SITE_HOME }}</span>
</a> </a>
{% endapply %} {% endapply %}
@ -222,7 +222,7 @@
<span class="crumb" {{ MICRODATA }}> <span class="crumb" {{ MICRODATA }}>
{% apply spaceless %} {% apply spaceless %}
<a itemprop="item" href="{{ U_INDEX }}" accesskey="h" data-navbar-reference="index"> <a itemprop="item" href="{{ U_INDEX }}" accesskey="h" data-navbar-reference="index">
{% if not U_SITE_HOME %}{{ Icon('iconify', 'fa:home', '', true) }}{% endif %} {% if not U_SITE_HOME %}{{ Icon('font', 'home', '', true, 'fas o-icon-baseline') }}{% endif %}
<span itemprop="name">{{ L_INDEX }}</span> <span itemprop="name">{{ L_INDEX }}</span>
</a> </a>
{% endapply %} {% endapply %}
@ -254,7 +254,7 @@
{% if S_DISPLAY_SEARCH and not S_IN_SEARCH %} {% if S_DISPLAY_SEARCH and not S_IN_SEARCH %}
<li class="rightside responsive-search"> <li class="rightside responsive-search">
<a href="{{ U_SEARCH }}" title="{{ lang('SEARCH_ADV_EXPLAIN') }}" role="menuitem"> <a href="{{ U_SEARCH }}" title="{{ lang('SEARCH_ADV_EXPLAIN') }}" role="menuitem">
{{ Icon('iconify', 'fa:search', lang('SEARCH'), true) }} {{ Icon('font', 'search', lang('SEARCH'), true) }}
</a> </a>
</li> </li>
{% endif %} {% endif %}

View file

@ -33,7 +33,7 @@
<!-- IF notifications.URL --></a><!-- ENDIF --> <!-- IF notifications.URL --></a><!-- ENDIF -->
<!-- IF notifications.UNREAD --> <!-- IF notifications.UNREAD -->
<a href="{notifications.U_MARK_READ}" class="mark_read icon-mark" data-ajax="notification.mark_read" title="{L_MARK_READ}"> <a href="{notifications.U_MARK_READ}" class="mark_read icon-mark" data-ajax="notification.mark_read" title="{L_MARK_READ}">
{{ Icon('iconify', 'fa:check-circle', lang('MARK_READ'), true, 'c-notification-check-icon') }} {{ Icon('font', 'circle-check', lang('MARK_READ'), true, 'fas c-notification-check-icon') }}
</a> </a>
<!-- ENDIF --> <!-- ENDIF -->
</li> </li>

View file

@ -52,13 +52,13 @@
<div id="phpbb_alert" class="phpbb_alert" data-l-err="{L_ERROR}" data-l-timeout-processing-req="{L_TIMEOUT_PROCESSING_REQ}"> <div id="phpbb_alert" class="phpbb_alert" data-l-err="{L_ERROR}" data-l-timeout-processing-req="{L_TIMEOUT_PROCESSING_REQ}">
<a href="#" class="alert_close"> <a href="#" class="alert_close">
{{ Icon('iconify', 'fa:times-circle', '', true) }} {{ Icon('font', 'circle-xmark', '', true) }}
</a> </a>
<h3 class="alert_title">&nbsp;</h3><p class="alert_text"></p> <h3 class="alert_title">&nbsp;</h3><p class="alert_text"></p>
</div> </div>
<div id="phpbb_confirm" class="phpbb_alert"> <div id="phpbb_confirm" class="phpbb_alert">
<a href="#" class="alert_close"> <a href="#" class="alert_close">
{{ Icon('iconify', 'fa:times-circle', '', true) }} {{ Icon('font', 'circle-xmark', '', true) }}
</a> </a>
<div class="alert_text"></div> <div class="alert_text"></div>
</div> </div>
@ -76,7 +76,19 @@
<script src="{T_ASSETS_PATH}/javascript/core.js?assets_version={T_ASSETS_VERSION}"></script> <script src="{T_ASSETS_PATH}/javascript/core.js?assets_version={T_ASSETS_VERSION}"></script>
<!-- INCLUDEJS forum_fn.js --> <!-- INCLUDEJS forum_fn.js -->
<!-- INCLUDEJS ajax.js --> <!-- INCLUDEJS ajax.js -->
{% INCLUDEJS T_ASSETS_PATH ~ '/iconify/iconify.min.js' %} {% if S_ALLOW_CDN %}
<script>
(function($){
const $fa_cdn = $('head').find('link[rel="stylesheet"]').first(),
$span = $('<span class="fa" style="display:none"></span>').appendTo('body');
if ($span.css('fontFamily') !== '"Font Awesome 6 Free"') {
$fa_cdn.after('<link href="{{ T_ASSETS_PATH ~ '/css/font-awesome.min.css' }}" rel="stylesheet">');
$fa_cdn.remove();
}
$span.remove();
})(jQuery);
</script>
{% endif %}
<!-- IF S_COOKIE_NOTICE --> <!-- IF S_COOKIE_NOTICE -->
<script src="{T_ASSETS_PATH}/cookieconsent/cookieconsent.min.js?assets_version={T_ASSETS_VERSION}"></script> <script src="{T_ASSETS_PATH}/cookieconsent/cookieconsent.min.js?assets_version={T_ASSETS_VERSION}"></script>
@ -108,7 +120,6 @@
<!-- EVENT overall_footer_after --> <!-- EVENT overall_footer_after -->
<!-- IF S_PLUPLOAD --><!-- INCLUDE plupload.html --><!-- ENDIF --> <!-- IF S_PLUPLOAD --><!-- INCLUDE plupload.html --><!-- ENDIF -->
{$ICONIFY_ICONS}
{$SCRIPTS} {$SCRIPTS}
<!-- EVENT overall_footer_body_after --> <!-- EVENT overall_footer_body_after -->

View file

@ -45,6 +45,7 @@
})(document); })(document);
</script> </script>
<!-- ENDIF --> <!-- ENDIF -->
<link href="{T_FONT_AWESOME_LINK}" rel="stylesheet">
<link href="{T_STYLESHEET_LINK}" rel="stylesheet"> <link href="{T_STYLESHEET_LINK}" rel="stylesheet">
<link href="{T_STYLESHEET_LANG_LINK}" rel="stylesheet"> <link href="{T_STYLESHEET_LANG_LINK}" rel="stylesheet">
@ -93,10 +94,10 @@
<fieldset> <fieldset>
<input name="keywords" id="keywords" type="search" maxlength="128" title="{L_SEARCH_KEYWORDS}" class="inputbox search tiny" size="20" value="{SEARCH_WORDS}" placeholder="{L_SEARCH_MINI}" /> <input name="keywords" id="keywords" type="search" maxlength="128" title="{L_SEARCH_KEYWORDS}" class="inputbox search tiny" size="20" value="{SEARCH_WORDS}" placeholder="{L_SEARCH_MINI}" />
<button class="button button-search" type="submit" title="{L_SEARCH}"> <button class="button button-search" type="submit" title="{L_SEARCH}">
{{ Icon('iconify', 'fa:search', lang('SEARCH'), true, 'c-button-icon') }} {{ Icon('font', 'search', lang('SEARCH'), true, 'fas c-button-icon') }}
</button> </button>
<a href="{U_SEARCH}" class="button button-search-end" title="{L_SEARCH_ADV}"> <a href="{U_SEARCH}" class="button button-search-end" title="{L_SEARCH_ADV}">
{{ Icon('iconify', 'fa:cog', lang('SEARCH_ADV'), true, 'c-button-icon') }} {{ Icon('font', 'gear', lang('SEARCH_ADV'), true, 'fas c-button-icon') }}
</a> </a>
{S_SEARCH_HIDDEN_FIELDS} {S_SEARCH_HIDDEN_FIELDS}
</fieldset> </fieldset>

View file

@ -1,7 +1,7 @@
<ul> <ul>
<!-- IF BASE_URL and TOTAL_PAGES > 6 --> <!-- IF BASE_URL and TOTAL_PAGES > 6 -->
<li class="dropdown-container dropdown-button-control dropdown-page-jump page-jump"> <li class="dropdown-container dropdown-button-control dropdown-page-jump page-jump">
<a class="button button-icon-only dropdown-trigger" href="#" title="{L_JUMP_TO_PAGE_CLICK}" role="button">{{ Icon('iconify', 'ic:outline-directions', PAGE_NUMBER, true, 'c-button-icon c-pagination-icon') }}</a> <a class="button button-icon-only dropdown-trigger" href="#" title="{L_JUMP_TO_PAGE_CLICK}" role="button">{{ Icon('font', 'turn-down', PAGE_NUMBER, true, 'fas fa-rotate-270 c-button-icon c-pagination-icon') }}</a>
<div class="dropdown"> <div class="dropdown">
<div class="pointer"><div class="pointer-inner"></div></div> <div class="pointer"><div class="pointer-inner"></div></div>
<ul class="dropdown-contents"> <ul class="dropdown-contents">
@ -16,13 +16,13 @@
<!-- ENDIF --> <!-- ENDIF -->
<!-- BEGIN pagination --> <!-- BEGIN pagination -->
<!-- IF pagination.S_IS_PREV --> <!-- IF pagination.S_IS_PREV -->
<li class="arrow previous"><a class="button button-icon-only" href="{pagination.PAGE_URL}" rel="prev" role="button">{{ Icon('iconify', 'fa:chevron-' ~ S_CONTENT_FLOW_BEGIN, lang('PREVIOUS'), true, 'c-button-icon c-pagination-icon') }}</a></li> <li class="arrow previous"><a class="button button-icon-only" href="{pagination.PAGE_URL}" rel="prev" role="button">{{ Icon('font', 'chevron-' ~ S_CONTENT_FLOW_BEGIN, lang('PREVIOUS'), true, 'fas c-button-icon c-pagination-icon') }}</a></li>
<!-- ELSEIF pagination.S_IS_CURRENT --> <!-- ELSEIF pagination.S_IS_CURRENT -->
<li class="active"><span>{pagination.PAGE_NUMBER}</span></li> <li class="active"><span>{pagination.PAGE_NUMBER}</span></li>
<!-- ELSEIF pagination.S_IS_ELLIPSIS --> <!-- ELSEIF pagination.S_IS_ELLIPSIS -->
<li class="ellipsis" role="separator"><span>{L_ELLIPSIS}</span></li> <li class="ellipsis" role="separator"><span>{L_ELLIPSIS}</span></li>
<!-- ELSEIF pagination.S_IS_NEXT --> <!-- ELSEIF pagination.S_IS_NEXT -->
<li class="arrow next"><a class="button button-icon-only" href="{pagination.PAGE_URL}" rel="next" role="button">{{ Icon('iconify', 'fa:chevron-' ~ S_CONTENT_FLOW_END, lang('NEXT'), true, 'c-button-icon c-pagination-icon') }}</a></li> <li class="arrow next"><a class="button button-icon-only" href="{pagination.PAGE_URL}" rel="next" role="button">{{ Icon('font', 'chevron-' ~ S_CONTENT_FLOW_END, lang('NEXT'), true, 'fas c-button-icon c-pagination-icon') }}</a></li>
<!-- ELSE --> <!-- ELSE -->
<li><a class="button" href="{pagination.PAGE_URL}" role="button">{pagination.PAGE_NUMBER}</a></li> <li><a class="button" href="{pagination.PAGE_URL}" role="button">{pagination.PAGE_NUMBER}</a></li>
<!-- ENDIF --> <!-- ENDIF -->

View file

@ -43,43 +43,43 @@
<!-- EVENT posting_editor_buttons_before --> <!-- EVENT posting_editor_buttons_before -->
<div id="format-buttons" class="format-buttons"<!-- IF S_ALLOW_MENTIONS --> data-mention-url="{U_MENTION_URL}" data-mention-names-limit="{S_MENTION_NAMES_LIMIT}" data-topic-id="{S_TOPIC_ID}" data-user-id="{S_USER_ID}"<!-- ENDIF -->> <div id="format-buttons" class="format-buttons"<!-- IF S_ALLOW_MENTIONS --> data-mention-url="{U_MENTION_URL}" data-mention-names-limit="{S_MENTION_NAMES_LIMIT}" data-topic-id="{S_TOPIC_ID}" data-user-id="{S_USER_ID}"<!-- ENDIF -->>
<button type="button" class="button button-icon-only bbcode-b" accesskey="b" name="addbbcode0" value=" B " onclick="bbstyle(0)" title="{L_BBCODE_B_HELP}"> <button type="button" class="button button-icon-only bbcode-b" accesskey="b" name="addbbcode0" value=" B " onclick="bbstyle(0)" title="{L_BBCODE_B_HELP}">
{{ Icon('iconify', 'mdi:format-bold', '', true, 'c-button-icon') }} {{ Icon('font', 'bold', '', true, 'fas c-button-icon') }}
</button> </button>
<button type="button" class="button button-icon-only bbcode-i" accesskey="i" name="addbbcode2" value=" i " onclick="bbstyle(2)" title="{L_BBCODE_I_HELP}"> <button type="button" class="button button-icon-only bbcode-i" accesskey="i" name="addbbcode2" value=" i " onclick="bbstyle(2)" title="{L_BBCODE_I_HELP}">
{{ Icon('iconify', 'mdi:format-italic', '', true, 'c-button-icon') }} {{ Icon('font', 'italic', '', true, 'fas c-button-icon') }}
</button> </button>
<button type="button" class="button button-icon-only bbcode-u" accesskey="u" name="addbbcode4" value=" u " onclick="bbstyle(4)" title="{L_BBCODE_U_HELP}"> <button type="button" class="button button-icon-only bbcode-u" accesskey="u" name="addbbcode4" value=" u " onclick="bbstyle(4)" title="{L_BBCODE_U_HELP}">
{{ Icon('iconify', 'mdi:format-underline', '', true, 'c-button-icon') }} {{ Icon('font', 'underline', '', true, 'fas c-button-icon') }}
</button> </button>
<!-- IF S_BBCODE_QUOTE --> <!-- IF S_BBCODE_QUOTE -->
<button type="button" class="button button-icon-only bbcode-quote" accesskey="q" name="addbbcode6" value="Quote" onclick="bbstyle(6)" title="{L_BBCODE_Q_HELP}"> <button type="button" class="button button-icon-only bbcode-quote" accesskey="q" name="addbbcode6" value="Quote" onclick="bbstyle(6)" title="{L_BBCODE_Q_HELP}">
{{ Icon('iconify', 'mdi:format-quote-open', '', true, 'c-button-icon') }} {{ Icon('font', 'quote-left', '', true, 'fas c-button-icon') }}
</button> </button>
<!-- ENDIF --> <!-- ENDIF -->
<button type="button" class="button button-icon-only bbcode-code" accesskey="c" name="addbbcode8" value="Code" onclick="bbstyle(8)" title="{L_BBCODE_C_HELP}"> <button type="button" class="button button-icon-only bbcode-code" accesskey="c" name="addbbcode8" value="Code" onclick="bbstyle(8)" title="{L_BBCODE_C_HELP}">
{{ Icon('iconify', 'fa:code', '', true, 'c-button-icon') }} {{ Icon('font', 'code', '', true, 'fas c-button-icon') }}
</button> </button>
<button type="button" class="button button-icon-only bbcode-list" accesskey="l" name="addbbcode10" value="List" onclick="bbstyle(10)" title="{L_BBCODE_L_HELP}"> <button type="button" class="button button-icon-only bbcode-list" accesskey="l" name="addbbcode10" value="List" onclick="bbstyle(10)" title="{L_BBCODE_L_HELP}">
{{ Icon('iconify', 'mdi:format-list-bulleted', '', true, 'c-button-icon') }} {{ Icon('font', 'list-ul', '', true, 'fas c-button-icon') }}
</button> </button>
<button type="button" class="button button-icon-only bbcode-list-" accesskey="o" name="addbbcode12" value="List=" onclick="bbstyle(12)" title="{L_BBCODE_O_HELP}"> <button type="button" class="button button-icon-only bbcode-list-" accesskey="o" name="addbbcode12" value="List=" onclick="bbstyle(12)" title="{L_BBCODE_O_HELP}">
{{ Icon('iconify', 'mdi:format-list-numbered', '', true, 'c-button-icon') }} {{ Icon('font', 'list-ol', '', true, 'fas c-button-icon') }}
</button> </button>
<button type="button" class="button button-icon-only bbcode-asterisk" accesskey="y" name="addlistitem" value="[*]" onclick="bbstyle(-1)" title="{L_BBCODE_LISTITEM_HELP}"> <button type="button" class="button button-icon-only bbcode-asterisk" accesskey="y" name="addlistitem" value="[*]" onclick="bbstyle(-1)" title="{L_BBCODE_LISTITEM_HELP}">
{{ Icon('iconify', 'mdi:playlist-add', '', true, 'c-button-icon') }} {{ Icon('font', 'asterisk', '', true, 'fas c-button-icon') }}
</button> </button>
<!-- IF S_BBCODE_IMG --> <!-- IF S_BBCODE_IMG -->
<button type="button" class="button button-icon-only bbcode-img" accesskey="p" name="addbbcode14" value="Img" onclick="bbstyle(14)" title="{L_BBCODE_P_HELP}"> <button type="button" class="button button-icon-only bbcode-img" accesskey="p" name="addbbcode14" value="Img" onclick="bbstyle(14)" title="{L_BBCODE_P_HELP}">
{{ Icon('iconify', 'mdi:image-outline', '', true, 'c-button-icon') }} {{ Icon('font', 'image', '', true, 'far c-button-icon') }}
</button> </button>
<!-- ENDIF --> <!-- ENDIF -->
<!-- IF S_LINKS_ALLOWED --> <!-- IF S_LINKS_ALLOWED -->
<button type="button" class="button button-icon-only bbcode-url" accesskey="w" name="addbbcode16" value="URL" onclick="bbstyle(16)" title="{L_BBCODE_W_HELP}"> <button type="button" class="button button-icon-only bbcode-url" accesskey="w" name="addbbcode16" value="URL" onclick="bbstyle(16)" title="{L_BBCODE_W_HELP}">
{{ Icon('iconify', 'mdi:link-variant', '', true, 'c-button-icon') }} {{ Icon('font', 'link', '', true, 'fas c-button-icon') }}
</button> </button>
<!-- ENDIF --> <!-- ENDIF -->
<button type="button" class="button button-icon-only bbcode-color" name="bbpalette" id="bbpalette" value="{L_FONT_COLOR}" onclick="change_palette();" title="{L_BBCODE_S_HELP}"> <button type="button" class="button button-icon-only bbcode-color" name="bbpalette" id="bbpalette" value="{L_FONT_COLOR}" onclick="change_palette();" title="{L_BBCODE_S_HELP}">
{{ Icon('iconify', 'fa:tint', '', true, 'c-button-icon') }} {{ Icon('font', 'droplet', '', true, 'fas c-button-icon') }}
</button> </button>
<select name="addbbcode20" class="bbcode-size" onchange="bbfontstyle('[size=' + this.form.addbbcode20.options[this.form.addbbcode20.selectedIndex].value + ']', '[/size]');this.form.addbbcode20.selectedIndex = 2;" title="{L_BBCODE_F_HELP}"> <select name="addbbcode20" class="bbcode-size" onchange="bbfontstyle('[size=' + this.form.addbbcode20.options[this.form.addbbcode20.selectedIndex].value + ']', '[/size]');this.form.addbbcode20.selectedIndex = 2;" title="{L_BBCODE_F_HELP}">
<option value="50">{L_FONT_TINY}</option> <option value="50">{L_FONT_TINY}</option>

View file

@ -17,10 +17,10 @@
<h3><a href="{post_review_row.U_MINI_POST}">{post_review_row.POST_SUBJECT}</a></h3> <h3><a href="{post_review_row.U_MINI_POST}">{post_review_row.POST_SUBJECT}</a></h3>
<p class="author"> <p class="author">
<!-- IF S_IS_BOT --> <!-- IF S_IS_BOT -->
<span title="{post_review_row.MINI_POST}">{{ Icon('iconify', 'fa:file', post_review_row.MINI_POST, true, 'c-topic-icon') }}</span> <span title="{post_review_row.MINI_POST}">{{ Icon('font', 'file', post_review_row.MINI_POST, true, 'fas c-topic-icon') }}</span>
<!-- ELSE --> <!-- ELSE -->
<a href="{post_review_row.U_MINI_POST}" title="{post_review_row.MINI_POST}"> <a href="{post_review_row.U_MINI_POST}" title="{post_review_row.MINI_POST}">
{{ Icon('iconify', 'fa:file', post_review_row.MINI_POST, true, 'c-topic-icon') }} {{ Icon('font', 'file', post_review_row.MINI_POST, true, 'fas c-topic-icon') }}
</a> </a>
<!-- ENDIF --> <!-- ENDIF -->
{L_POST_BY_AUTHOR} <!-- EVENT posting_review_row_post_author_username_prepend --><strong>{post_review_row.POST_AUTHOR_FULL}</strong><!-- EVENT posting_review_row_post_author_username_append --> &raquo; {post_review_row.POST_DATE} {L_POST_BY_AUTHOR} <!-- EVENT posting_review_row_post_author_username_prepend --><strong>{post_review_row.POST_AUTHOR_FULL}</strong><!-- EVENT posting_review_row_post_author_username_append --> &raquo; {post_review_row.POST_DATE}

View file

@ -33,14 +33,14 @@
<!-- IF topic_review_row.U_MCP_DETAILS --> <!-- IF topic_review_row.U_MCP_DETAILS -->
<li> <li>
<a href="{topic_review_row.U_MCP_DETAILS}" title="{L_POST_DETAILS}" class="button button-icon-only"> <a href="{topic_review_row.U_MCP_DETAILS}" title="{L_POST_DETAILS}" class="button button-icon-only">
{{ Icon('iconify', 'fa:info', lang('POST_DETAILS'), true, 'c-button-icon') }} {{ Icon('font', 'info', lang('POST_DETAILS'), true, 'fas c-button-icon') }}
</a> </a>
</li> </li>
<!-- ENDIF --> <!-- ENDIF -->
<!-- IF topic_review_row.POSTER_QUOTE and topic_review_row.DECODED_MESSAGE --> <!-- IF topic_review_row.POSTER_QUOTE and topic_review_row.DECODED_MESSAGE -->
<li> <li>
<a href="#postingbox" onclick="addquote({topic_review_row.POST_ID}, '{topic_review_row.POSTER_QUOTE}', '{LA_WROTE}', {post_id:{topic_review_row.POST_ID},time:{topic_review_row.POST_TIME},user_id:{topic_review_row.USER_ID}});" title="{L_QUOTE} {topic_review_row.POST_AUTHOR}" class="button button-icon-only"> <a href="#postingbox" onclick="addquote({topic_review_row.POST_ID}, '{topic_review_row.POSTER_QUOTE}', '{LA_WROTE}', {post_id:{topic_review_row.POST_ID},time:{topic_review_row.POST_TIME},user_id:{topic_review_row.USER_ID}});" title="{L_QUOTE} {topic_review_row.POST_AUTHOR}" class="button button-icon-only">
{{ Icon('iconify', 'fa:quote-left', '', true, 'c-button-icon') }}<span class="sr-only">{L_QUOTE} {topic_review_row.POST_AUTHOR}</span> {{ Icon('font', 'quote-left', '', true, 'fas c-button-icon') }}<span class="sr-only">{L_QUOTE} {topic_review_row.POST_AUTHOR}</span>
</a> </a>
</li> </li>
<!-- ENDIF --> <!-- ENDIF -->
@ -50,10 +50,10 @@
<!-- EVENT posting_topic_review_row_post_details_before --> <!-- EVENT posting_topic_review_row_post_details_before -->
<p class="author"> <p class="author">
<!-- IF S_IS_BOT --> <!-- IF S_IS_BOT -->
<span title="{topic_review_row.MINI_POST}">{{ Icon('iconify', 'fa:file', topic_review_row.MINI_POST, true, 'c-topic-icon') }}</span> <span title="{topic_review_row.MINI_POST}">{{ Icon('font', 'file', topic_review_row.MINI_POST, true, 'fas c-topic-icon') }}</span>
<!-- ELSE --> <!-- ELSE -->
<a href="{topic_review_row.U_MINI_POST}" title="{topic_review_row.MINI_POST}"> <a href="{topic_review_row.U_MINI_POST}" title="{topic_review_row.MINI_POST}">
{{ Icon('iconify', 'fa:file', topic_review_row.MINI_POST, true, 'c-topic-icon') }} {{ Icon('font', 'file', topic_review_row.MINI_POST, true, 'fas c-topic-icon') }}
</a> </a>
<!-- ENDIF --> <!-- ENDIF -->
{L_POST_BY_AUTHOR} <!-- EVENT posting_topic_review_row_post_author_username_prepend --><strong>{topic_review_row.POST_AUTHOR_FULL}</strong><!-- EVENT posting_topic_review_row_post_author_username_append --> &raquo; {topic_review_row.POST_DATE} {L_POST_BY_AUTHOR} <!-- EVENT posting_topic_review_row_post_author_username_prepend --><strong>{topic_review_row.POST_AUTHOR_FULL}</strong><!-- EVENT posting_topic_review_row_post_author_username_append --> &raquo; {topic_review_row.POST_DATE}
@ -86,6 +86,6 @@
<p> <p>
<a href="<!-- IF S_MCP_REPORT -->#report<!-- ELSE -->#postingbox<!-- ENDIF -->" class="top"> <a href="<!-- IF S_MCP_REPORT -->#report<!-- ELSE -->#postingbox<!-- ENDIF -->" class="top">
{{ Icon('iconify', 'fa:chevron-circle-up', lang('BACK_TO_TOP'), false, 'c-top-icon') }} {{ Icon('font', 'circle-chevron-up', lang('BACK_TO_TOP'), false, 'fas c-top-icon') }}
</a> </a>
</p> </p>

View file

@ -10,13 +10,13 @@
<!-- IF SEARCH_TOPIC --> <!-- IF SEARCH_TOPIC -->
<p class="return-link"> <p class="return-link">
<a class="arrow-{S_CONTENT_FLOW_BEGIN}" href="{U_SEARCH_TOPIC}"> <a class="arrow-{S_CONTENT_FLOW_BEGIN}" href="{U_SEARCH_TOPIC}">
{{ Icon('iconify', 'fa:angle-' ~ S_CONTENT_FLOW_BEGIN, lang('RETURN_TO_TOPIC'), false, 'c-return-arrow-icon') }} {{ Icon('font', 'angle-' ~ S_CONTENT_FLOW_BEGIN, lang('RETURN_TO_TOPIC'), false, 'fas c-return-arrow-icon') }}
</a> </a>
</p> </p>
<!-- ELSE --> <!-- ELSE -->
<p class="advanced-search-link"> <p class="advanced-search-link">
<a class="arrow-{S_CONTENT_FLOW_BEGIN}" href="{U_SEARCH}" title="{L_SEARCH_ADV}"> <a class="arrow-{S_CONTENT_FLOW_BEGIN}" href="{U_SEARCH}" title="{L_SEARCH_ADV}">
{{ Icon('iconify', 'fa:angle-' ~ S_CONTENT_FLOW_BEGIN, lang('GO_TO_SEARCH_ADV'), false, 'c-return-arrow-icon') }} {{ Icon('font', 'angle-' ~ S_CONTENT_FLOW_BEGIN, lang('GO_TO_SEARCH_ADV'), false, 'fas c-return-arrow-icon') }}
</a> </a>
</p> </p>
<!-- ENDIF --> <!-- ENDIF -->
@ -32,10 +32,10 @@
<fieldset> <fieldset>
<input class="inputbox search tiny" type="search" name="add_keywords" id="add_keywords" value="" placeholder="{L_SEARCH_IN_RESULTS}" /> <input class="inputbox search tiny" type="search" name="add_keywords" id="add_keywords" value="" placeholder="{L_SEARCH_IN_RESULTS}" />
<button class="button button-search" type="submit" title="{L_SEARCH}"> <button class="button button-search" type="submit" title="{L_SEARCH}">
{{ Icon('iconify', 'fa:search', lang('SEARCH'), true, 'c-button-icon') }} {{ Icon('font', 'search', lang('SEARCH'), true, 'fas c-button-icon') }}
</button> </button>
<a href="{U_SEARCH}" class="button button-search-end" title="{L_SEARCH_ADV}"> <a href="{U_SEARCH}" class="button button-search-end" title="{L_SEARCH_ADV}">
{{ Icon('iconify', 'fa:cog', lang('SEARCH_ADV'), true, 'c-button-icon') }} {{ Icon('font', 'gear', lang('SEARCH_ADV'), true, 'fas c-button-icon') }}
</a> </a>
</fieldset> </fieldset>
</form> </form>
@ -81,14 +81,14 @@
<dl class="row-item"> <dl class="row-item">
<dt> <dt>
<a class="row-item-link{% if searchresults.S_UNREAD_TOPIC %} unread{% else %} read{% endif %}" href="{searchresults.U_NEWEST_POST}" title="{searchresults.TOPIC_FOLDER_IMG_ALT}"> <a class="row-item-link{% if searchresults.S_UNREAD_TOPIC %} unread{% else %} read{% endif %}" href="{searchresults.U_NEWEST_POST}" title="{searchresults.TOPIC_FOLDER_IMG_ALT}">
{{ Icon('iconify', { {{ Icon('svg', {
'mdi:info-variant' : searchresults.S_POST_GLOBAL, 'info-variant' : searchresults.S_POST_GLOBAL,
'mdi:info-variant' : searchresults.S_POST_ANNOUNCE, 'info-variant' : searchresults.S_POST_ANNOUNCE,
'mdi:star' : searchresults.S_POST_STICKY, 'star' : searchresults.S_POST_STICKY,
'mdi:lock' : searchresults.S_TOPIC_LOCKED, 'lock' : searchresults.S_TOPIC_LOCKED,
'mdi:arrow-right-bold' : searchresults.S_TOPIC_MOVED, 'arrow-right-bold' : searchresults.S_TOPIC_MOVED,
'mdi:fire' : searchresults.S_TOPIC_HOT, 'fire' : searchresults.S_TOPIC_HOT,
'mdi:file-document-outline' : true, 'file-document-outline' : true,
}, '', true, 'c-forum-row-icon') }} }, '', true, 'c-forum-row-icon') }}
</a> </a>
{% if lang(searchresults.TOPIC_AUTHOR) == S_USERNAME %} {% if lang(searchresults.TOPIC_AUTHOR) == S_USERNAME %}
@ -106,17 +106,17 @@
{% endif %} {% endif %}
<!-- IF searchresults.S_TOPIC_UNAPPROVED or searchresults.S_POSTS_UNAPPROVED --> <!-- IF searchresults.S_TOPIC_UNAPPROVED or searchresults.S_POSTS_UNAPPROVED -->
<a href="{searchresults.U_MCP_QUEUE}" title="{L_TOPIC_UNAPPROVED}"> <a href="{searchresults.U_MCP_QUEUE}" title="{L_TOPIC_UNAPPROVED}">
{{ Icon('iconify', 'fa:question', lang('TOPIC_UNAPPROVED'), true, 'c-uapproved-icon') }} {{ Icon('font', 'circle-question', lang('TOPIC_UNAPPROVED'), true, 'fas c-unapproved-icon') }}
</a> </a>
<!-- ENDIF --> <!-- ENDIF -->
<!-- IF searchresults.S_TOPIC_DELETED --> <!-- IF searchresults.S_TOPIC_DELETED -->
<a href="{searchresults.U_MCP_QUEUE}" title="{L_TOPIC_DELETED}"> <a href="{searchresults.U_MCP_QUEUE}" title="{L_TOPIC_DELETED}">
{{ Icon('iconify', 'fa:recycle', lang('TOPIC_DELETED'), true, 'c-topic-deleted-icon') }} {{ Icon('font', 'recycle', lang('TOPIC_DELETED'), true, 'fas c-topic-deleted-icon') }}
</a> </a>
<!-- ENDIF --> <!-- ENDIF -->
<!-- IF searchresults.S_TOPIC_REPORTED --> <!-- IF searchresults.S_TOPIC_REPORTED -->
<a href="{searchresults.U_MCP_REPORT}" title="{L_TOPIC_REPORTED}"> <a href="{searchresults.U_MCP_REPORT}" title="{L_TOPIC_REPORTED}">
{{ Icon('iconify', 'fa:exclamation', lang('TOPIC_REPORTED'), true, 'c-topic-reported-icon') }} {{ Icon('font', 'triangle-exclamation', lang('TOPIC_REPORTED'), true, 'fas c-topic-reported-icon') }}
</a> </a>
<!-- ENDIF --> <!-- ENDIF -->
<br /> <br />
@ -131,8 +131,8 @@
<!-- ENDIF --> <!-- ENDIF -->
<div class="responsive-hide left-box"> <div class="responsive-hide left-box">
<!-- IF searchresults.S_HAS_POLL -->{{ Icon('iconify', 'fa:bar-chart', '', true) }}<!-- ENDIF --> <!-- IF searchresults.S_HAS_POLL -->{{ Icon('font', 'chart-bar', '', true) }}<!-- ENDIF -->
<!-- IF searchresults.ATTACH_ICON_IMG -->{{ Icon('iconify', 'fa:paperclip', '', true) }}<!-- ENDIF --> <!-- IF searchresults.ATTACH_ICON_IMG -->{{ Icon('font', 'paperclip', '', true) }}<!-- ENDIF -->
{% EVENT topiclist_row_topic_by_author_before %} {% EVENT topiclist_row_topic_by_author_before %}
{L_POST_BY_AUTHOR} <!-- EVENT search_results_topic_author_username_prepend -->{searchresults.TOPIC_AUTHOR_FULL}<!-- EVENT search_results_topic_author_username_append --> &raquo; <time datetime="{searchresults.FIRST_POST_TIME_RFC3339}">{searchresults.FIRST_POST_TIME}</time> &raquo; {L_IN} <a href="{searchresults.U_VIEW_FORUM}">{searchresults.FORUM_TITLE}</a> {L_POST_BY_AUTHOR} <!-- EVENT search_results_topic_author_username_prepend -->{searchresults.TOPIC_AUTHOR_FULL}<!-- EVENT search_results_topic_author_username_append --> &raquo; <time datetime="{searchresults.FIRST_POST_TIME_RFC3339}">{searchresults.FIRST_POST_TIME}</time> &raquo; {L_IN} <a href="{searchresults.U_VIEW_FORUM}">{searchresults.FORUM_TITLE}</a>
{% EVENT topiclist_row_topic_by_author_after %} {% EVENT topiclist_row_topic_by_author_after %}
@ -140,7 +140,7 @@
<!-- IF .searchresults.pagination --> <!-- IF .searchresults.pagination -->
<div class="pagination"> <div class="pagination">
<span>{{ Icon('iconify', 'fa:clone', '', true) }}</span> <span>{{ Icon('font', 'clone', '', true, 'far') }}</span>
<ul> <ul>
<!-- BEGIN pagination --> <!-- BEGIN pagination -->
<!-- IF searchresults.pagination.S_IS_PREV --> <!-- IF searchresults.pagination.S_IS_PREV -->
@ -163,7 +163,7 @@
<span><dfn>{L_LAST_POST} </dfn>{L_POST_BY_AUTHOR} <!-- EVENT search_results_last_post_author_username_prepend -->{searchresults.LAST_POST_AUTHOR_FULL}<!-- EVENT search_results_last_post_author_username_append --> <span><dfn>{L_LAST_POST} </dfn>{L_POST_BY_AUTHOR} <!-- EVENT search_results_last_post_author_username_prepend -->{searchresults.LAST_POST_AUTHOR_FULL}<!-- EVENT search_results_last_post_author_username_append -->
<!-- IF not S_IS_BOT --> <!-- IF not S_IS_BOT -->
<a href="{searchresults.U_LAST_POST}" title="{L_GOTO_LAST_POST}"> <a href="{searchresults.U_LAST_POST}" title="{L_GOTO_LAST_POST}">
{{ Icon('iconify', 'fa:external-link-square', VIEW_LATEST_POST, true, 'c-last-post-icon') }} {{ Icon('font', 'arrow-up-right-from-square', VIEW_LATEST_POST, true, 'fas c-last-post-icon') }}
</a> </a>
<!-- ENDIF --> <!-- ENDIF -->
<br /><time datetime="{searchresults.LAST_POST_TIME_RFC3339}">{searchresults.LAST_POST_TIME}</time> <br /><time datetime="{searchresults.LAST_POST_TIME_RFC3339}">{searchresults.LAST_POST_TIME}</time>
@ -222,7 +222,7 @@
<ul class="searchresults"> <ul class="searchresults">
<li> <li>
<a href="{searchresults.U_VIEW_POST}" class="arrow-{S_CONTENT_FLOW_END}"> <a href="{searchresults.U_VIEW_POST}" class="arrow-{S_CONTENT_FLOW_END}">
{{ Icon('iconify', 'fa:angle-' ~ S_CONTENT_FLOW_END, lang('JUMP_TO_POST'), false, 'c-return-arrow-icon') }} {{ Icon('font', 'angle-' ~ S_CONTENT_FLOW_END, lang('JUMP_TO_POST'), false, 'fas c-return-arrow-icon') }}
</a> </a>
</li> </li>
</ul> </ul>

View file

@ -29,13 +29,13 @@
</div> </div>
<div id="phpbb_alert" class="phpbb_alert" data-l-err="{L_ERROR}" data-l-timeout-processing-req="{L_TIMEOUT_PROCESSING_REQ}"> <div id="phpbb_alert" class="phpbb_alert" data-l-err="{L_ERROR}" data-l-timeout-processing-req="{L_TIMEOUT_PROCESSING_REQ}">
<a href="#" class="alert_close"> <a href="#" class="alert_close">
{{ Icon('iconify', 'fa:times-circle', '', true) }} {{ Icon('font', 'circle-xmark', '', true) }}
</a> </a>
<h3 class="alert_title">&nbsp;</h3><p class="alert_text"></p> <h3 class="alert_title">&nbsp;</h3><p class="alert_text"></p>
</div> </div>
<div id="phpbb_confirm" class="phpbb_confirm phpbb_alert"> <div id="phpbb_confirm" class="phpbb_confirm phpbb_alert">
<a href="#" class="alert_close"> <a href="#" class="alert_close">
{{ Icon('iconify', 'fa:times-circle', '', true) }} {{ Icon('font', 'circle-xmark', '', true) }}
</a> </a>
<div class="alert_text"></div> <div class="alert_text"></div>
</div> </div>
@ -46,10 +46,21 @@
<script src="{T_ASSETS_PATH}/javascript/core.js?assets_version={T_ASSETS_VERSION}"></script> <script src="{T_ASSETS_PATH}/javascript/core.js?assets_version={T_ASSETS_VERSION}"></script>
<!-- INCLUDEJS forum_fn.js --> <!-- INCLUDEJS forum_fn.js -->
<!-- INCLUDEJS ajax.js --> <!-- INCLUDEJS ajax.js -->
{% INCLUDEJS T_ASSETS_PATH ~ '/iconify/iconify.min.js' %} {% if S_ALLOW_CDN %}
<script>
(function($){
const $fa_cdn = $('head').find('link[rel="stylesheet"]').first(),
$span = $('<span class="fa" style="display:none"></span>').appendTo('body');
if ($span.css('fontFamily') !== '"Font Awesome 6 Free"') {
$fa_cdn.after('<link href="{{ T_ASSETS_PATH ~ '/css/font-awesome.min.css' }}" rel="stylesheet">');
$fa_cdn.remove();
}
$span.remove();
})(jQuery);
</script>
{% endif %}
<!-- EVENT simple_footer_after --> <!-- EVENT simple_footer_after -->
{$ICONIFY_ICONS}
{$SCRIPTS} {$SCRIPTS}
{% EVENT simple_footer_body_after %} {% EVENT simple_footer_body_after %}

View file

@ -17,52 +17,52 @@
<div class="avatar-cropper-buttons" id="avatar-cropper-buttons"> <div class="avatar-cropper-buttons" id="avatar-cropper-buttons">
<div class="button-group"> <div class="button-group">
<button class="button" type="button" title="{{ lang('ZOOM_IN') }}" data-cropper-action="zoom,0.1"> <button class="button" type="button" title="{{ lang('ZOOM_IN') }}" data-cropper-action="zoom,0.1">
{{ Icon('iconify', 'fa:search-plus', '', true) }} {{ Icon('font', 'magnifying-glass-plus', '', true) }}
</button> </button>
<button class="button" type="button" title="{{ lang('ZOOM_OUT') }}" data-cropper-action="zoom,-0.1"> <button class="button" type="button" title="{{ lang('ZOOM_OUT') }}" data-cropper-action="zoom,-0.1">
{{ Icon('iconify', 'fa:search-minus', '', true) }} {{ Icon('font', 'magnifying-glass-minus', '', true) }}
</button> </button>
</div> </div>
<div class="button-group"> <div class="button-group">
<button class="button" type="button" title="{{ lang('MOVE_LEFT') }}" data-cropper-action="move,-10,0"> <button class="button" type="button" title="{{ lang('MOVE_LEFT') }}" data-cropper-action="move,-10,0">
{{ Icon('iconify', 'fa:arrow-left', '', true) }} {{ Icon('font', 'arrow-left', '', true) }}
</button> </button>
<button class="button" type="button" title="{{ lang('MOVE_RIGHT') }}" data-cropper-action="move,10,0"> <button class="button" type="button" title="{{ lang('MOVE_RIGHT') }}" data-cropper-action="move,10,0">
{{ Icon('iconify', 'fa:arrow-right', '', true) }} {{ Icon('font', 'arrow-right', '', true) }}
</button> </button>
<button class="button" type="button" title="{{ lang('MOVE_UP') }}" data-cropper-action="move,0,-10"> <button class="button" type="button" title="{{ lang('MOVE_UP') }}" data-cropper-action="move,0,-10">
{{ Icon('iconify', 'fa:arrow-up', '', true) }} {{ Icon('font', 'arrow-up', '', true) }}
</button> </button>
<button class="button" type="button" title="{{ lang('MOVE_DOWN') }}" data-cropper-action="move,0,10"> <button class="button" type="button" title="{{ lang('MOVE_DOWN') }}" data-cropper-action="move,0,10">
{{ Icon('iconify', 'fa:arrow-down', '', true) }} {{ Icon('font', 'arrow-down', '', true) }}
</button> </button>
</div> </div>
<div class="button-group"> <div class="button-group">
<button class="button" type="button" title="{{ lang('ROTATE_LEFT') }}" data-cropper-action="rotate,-90"> <button class="button" type="button" title="{{ lang('ROTATE_LEFT') }}" data-cropper-action="rotate,-90">
{{ Icon('iconify', 'fa:rotate-left', '', true) }} {{ Icon('font', 'rotate-left', '', true) }}
</button> </button>
<button class="button" type="button" title="{{ lang('ROTATE_RIGHT') }}" data-cropper-action="rotate,90"> <button class="button" type="button" title="{{ lang('ROTATE_RIGHT') }}" data-cropper-action="rotate,90">
{{ Icon('iconify', 'fa:rotate-right', '', true) }} {{ Icon('font', 'rotate-right', '', true) }}
</button> </button>
</div> </div>
<div class="button-group"> <div class="button-group">
<button class="button" type="button" title="{{ lang('FLIP_HORIZONTALLY') }}" data-cropper-action="scaleX"> <button class="button" type="button" title="{{ lang('FLIP_HORIZONTALLY') }}" data-cropper-action="scaleX">
{{ Icon('iconify', 'fa:arrows-h', '', true) }} {{ Icon('font', 'arrows-left-right', '', true) }}
</button> </button>
<button class="button" type="button" title="{{ lang('FLIP_VERTICALLY') }}" data-cropper-action="scaleY"> <button class="button" type="button" title="{{ lang('FLIP_VERTICALLY') }}" data-cropper-action="scaleY">
{{ Icon('iconify', 'fa:arrows-v', '', true) }} {{ Icon('font', 'arrows-up-down', '', true) }}
</button> </button>
</div> </div>
<div class="button-group"> <div class="button-group">
<button class="button" type="button" title="{{ lang('RESET') }}" data-cropper-action="reset"> <button class="button" type="button" title="{{ lang('RESET') }}" data-cropper-action="reset">
{{ Icon('iconify', 'fa:refresh', '', true) }} {{ Icon('font', 'rotate', '', true) }}
</button> </button>
<button class="button" type="button" title="{{ lang('CLEAR') }}" data-cropper-action="clear"> <button class="button" type="button" title="{{ lang('CLEAR') }}" data-cropper-action="clear">
{{ Icon('iconify', 'fa:times', '', true) }} {{ Icon('font', 'xmark', '', true) }}
</button> </button>
</div> </div>
</div> </div>

View file

@ -37,14 +37,14 @@
<dl class="row-item"> <dl class="row-item">
<dt> <dt>
<a class="row-item-link{% if topicrow.S_UNREAD_TOPIC %} unread{% else %} read{% endif %}" href="{topicrow.U_NEWEST_POST}" title="{topicrow.TOPIC_FOLDER_IMG_ALT}"> <a class="row-item-link{% if topicrow.S_UNREAD_TOPIC %} unread{% else %} read{% endif %}" href="{topicrow.U_NEWEST_POST}" title="{topicrow.TOPIC_FOLDER_IMG_ALT}">
{{ Icon('iconify', { {{ Icon('svg', {
'mdi:info-variant' : topicrow.S_POST_GLOBAL, 'info-variant' : topicrow.S_POST_GLOBAL,
'mdi:info-variant' : topicrow.S_POST_ANNOUNCE, 'info-variant' : topicrow.S_POST_ANNOUNCE,
'mdi:star' : topicrow.S_POST_STICKY, 'star' : topicrow.S_POST_STICKY,
'mdi:lock' : topicrow.S_TOPIC_LOCKED, 'lock' : topicrow.S_TOPIC_LOCKED,
'mdi:arrow-right-bold' : topicrow.S_TOPIC_MOVED, 'arrow-right-bold' : topicrow.S_TOPIC_MOVED,
'mdi:fire' : topicrow.S_TOPIC_HOT, 'fire' : topicrow.S_TOPIC_HOT,
'mdi:file-document-outline' : true, 'file-document-outline' : true,
}, '', true, 'c-forum-row-icon') }} }, '', true, 'c-forum-row-icon') }}
</a> </a>
{% if lang(topicrow.TOPIC_AUTHOR) == S_USERNAME %} {% if lang(topicrow.TOPIC_AUTHOR) == S_USERNAME %}
@ -61,12 +61,12 @@
{% endif %} {% endif %}
<!-- IF topicrow.S_TOPIC_UNAPPROVED or topicrow.S_POSTS_UNAPPROVED --> <!-- IF topicrow.S_TOPIC_UNAPPROVED or topicrow.S_POSTS_UNAPPROVED -->
<a href="{topicrow.U_MCP_QUEUE}" title="{L_TOPIC_UNAPPROVED}"> <a href="{topicrow.U_MCP_QUEUE}" title="{L_TOPIC_UNAPPROVED}">
{{ Icon('iconify', 'fa:question', lang('TOPIC_UNAPPROVED'), true, 'c-unapproved-icon') }} {{ Icon('font', 'circle-question', lang('TOPIC_UNAPPROVED'), true, 'fas c-unapproved-icon') }}
</a> </a>
<!-- ENDIF --> <!-- ENDIF -->
<!-- IF topicrow.S_TOPIC_REPORTED --> <!-- IF topicrow.S_TOPIC_REPORTED -->
<a href="{topicrow.U_MCP_REPORT}" title="{L_TOPIC_REPORTED}"> <a href="{topicrow.U_MCP_REPORT}" title="{L_TOPIC_REPORTED}">
{{ Icon('iconify', 'fa:exclamation', lang('TOPIC_REPORTED'), true, 'c-topic-reported-icon') }} {{ Icon('font', 'triangle-exclamation', lang('TOPIC_REPORTED'), true, 'fas c-topic-reported-icon') }}
</a> </a>
<!-- ENDIF --> <!-- ENDIF -->
<br /> <br />
@ -89,11 +89,11 @@
</div> </div>
<!-- ENDIF --> <!-- ENDIF -->
<div class="responsive-hide"> <div class="responsive-hide">
<!-- IF topicrow.ATTACH_ICON_IMG -->{{ Icon('iconify', 'fa:paperclip', '', true) }} <!-- ENDIF --> <!-- IF topicrow.ATTACH_ICON_IMG -->{{ Icon('font', 'paperclip', '', true) }} <!-- ENDIF -->
{L_POST_BY_AUTHOR} {topicrow.TOPIC_AUTHOR_FULL} &raquo; {topicrow.FIRST_POST_TIME} {L_POST_BY_AUTHOR} {topicrow.TOPIC_AUTHOR_FULL} &raquo; {topicrow.FIRST_POST_TIME}
</div> </div>
<div class="responsive-show" style="display: none;"> <div class="responsive-show" style="display: none;">
<!-- IF topicrow.ATTACH_ICON_IMG -->{{ Icon('iconify', 'fa:paperclip', '', true) }} <!-- ENDIF --> <!-- IF topicrow.ATTACH_ICON_IMG -->{{ Icon('font', 'paperclip', '', true) }} <!-- ENDIF -->
{L_LAST_POST} {L_POST_BY_AUTHOR} {topicrow.LAST_POST_AUTHOR_FULL} &laquo; {L_LAST_POST} {L_POST_BY_AUTHOR} {topicrow.LAST_POST_AUTHOR_FULL} &laquo;
<a href="{topicrow.U_LAST_POST}" title="{L_GOTO_LAST_POST}">{topicrow.LAST_POST_TIME}</a> <a href="{topicrow.U_LAST_POST}" title="{L_GOTO_LAST_POST}">{topicrow.LAST_POST_TIME}</a>
</div> </div>
@ -101,7 +101,7 @@
</dt> </dt>
<dd class="lastpost"><span><dfn>{L_LAST_POST} </dfn>{L_POST_BY_AUTHOR} {topicrow.LAST_POST_AUTHOR_FULL} <dd class="lastpost"><span><dfn>{L_LAST_POST} </dfn>{L_POST_BY_AUTHOR} {topicrow.LAST_POST_AUTHOR_FULL}
<a href="{topicrow.U_LAST_POST}" title="{L_GOTO_LAST_POST}"> <a href="{topicrow.U_LAST_POST}" title="{L_GOTO_LAST_POST}">
{{ Icon('iconify', 'fa:external-link-square', VIEW_LATEST_POST, true, 'c-last-post-icon') }} {{ Icon('font', 'arrow-up-right-from-square', VIEW_LATEST_POST, true, 'fas c-last-post-icon') }}
</a> </a>
<br />{topicrow.LAST_POST_TIME}</span> <br />{topicrow.LAST_POST_TIME}</span>
</dd> </dd>

View file

@ -16,14 +16,14 @@
<dl class="row-item"> <dl class="row-item">
<dt> <dt>
<a class="row-item-link{% if topicrow.S_UNREAD_TOPIC %} unread{% else %} read{% endif %}" href="{topicrow.U_NEWEST_POST}" title="{topicrow.TOPIC_FOLDER_IMG_ALT}"> <a class="row-item-link{% if topicrow.S_UNREAD_TOPIC %} unread{% else %} read{% endif %}" href="{topicrow.U_NEWEST_POST}" title="{topicrow.TOPIC_FOLDER_IMG_ALT}">
{{ Icon('iconify', { {{ Icon('svg', {
'mdi:info-variant' : topicrow.S_POST_GLOBAL, 'info-variant' : topicrow.S_POST_GLOBAL,
'mdi:info-variant' : topicrow.S_POST_ANNOUNCE, 'info-variant' : topicrow.S_POST_ANNOUNCE,
'mdi:star' : topicrow.S_POST_STICKY, 'star' : topicrow.S_POST_STICKY,
'mdi:lock' : topicrow.S_TOPIC_LOCKED, 'lock' : topicrow.S_TOPIC_LOCKED,
'mdi:arrow-right-bold' : topicrow.S_TOPIC_MOVED, 'arrow-right-bold' : topicrow.S_TOPIC_MOVED,
'mdi:fire' : topicrow.S_TOPIC_HOT, 'fire' : topicrow.S_TOPIC_HOT,
'mdi:file-document-outline' : true, 'file-document-outline' : true,
}, '', true, 'c-forum-row-icon') }} }, '', true, 'c-forum-row-icon') }}
</a> </a>
{% if lang(topicrow.TOPIC_AUTHOR) == S_USERNAME %} {% if lang(topicrow.TOPIC_AUTHOR) == S_USERNAME %}
@ -41,7 +41,7 @@
<br> <br>
<!-- IF .topicrow.pagination --> <!-- IF .topicrow.pagination -->
<div class="pagination"> <div class="pagination">
<span>{{ Icon('iconify', 'fa:clone', '', true) }}</span> <span>{{ Icon('font', 'clone', '', true, 'far') }}</span>
<ul> <ul>
<!-- BEGIN pagination --> <!-- BEGIN pagination -->
<!-- IF topicrow.pagination.S_IS_PREV --> <!-- IF topicrow.pagination.S_IS_PREV -->
@ -58,11 +58,11 @@
</div> </div>
<!-- ENDIF --> <!-- ENDIF -->
<div class="responsive-hide"> <div class="responsive-hide">
<!-- IF topicrow.ATTACH_ICON_IMG -->{{ Icon('iconify', 'fa:paperclip', '', true) }} <!-- ENDIF --> <!-- IF topicrow.ATTACH_ICON_IMG -->{{ Icon('font', 'paperclip', '', true) }} <!-- ENDIF -->
{L_POST_BY_AUTHOR} {topicrow.TOPIC_AUTHOR_FULL} &raquo; {topicrow.FIRST_POST_TIME} {L_POST_BY_AUTHOR} {topicrow.TOPIC_AUTHOR_FULL} &raquo; {topicrow.FIRST_POST_TIME}
</div> </div>
<div class="responsive-show" style="display: none;"> <div class="responsive-show" style="display: none;">
<!-- IF topicrow.ATTACH_ICON_IMG -->{{ Icon('iconify', 'fa:paperclip', '', true) }} <!-- ENDIF --> <!-- IF topicrow.ATTACH_ICON_IMG -->{{ Icon('font', 'paperclip', '', true) }} <!-- ENDIF -->
{L_LAST_POST} {L_POST_BY_AUTHOR} {topicrow.LAST_POST_AUTHOR_FULL} &laquo; <a href="{topicrow.U_LAST_POST}" title="{L_GOTO_LAST_POST}">{topicrow.LAST_POST_TIME}</a> {L_LAST_POST} {L_POST_BY_AUTHOR} {topicrow.LAST_POST_AUTHOR_FULL} &laquo; <a href="{topicrow.U_LAST_POST}" title="{L_GOTO_LAST_POST}">{topicrow.LAST_POST_TIME}</a>
</div> </div>
</div> </div>
@ -70,7 +70,7 @@
<dd class="lastpost"> <dd class="lastpost">
<span>{L_LAST_POST} {L_POST_BY_AUTHOR} {topicrow.LAST_POST_AUTHOR_FULL} <span>{L_LAST_POST} {L_POST_BY_AUTHOR} {topicrow.LAST_POST_AUTHOR_FULL}
<a href="{topicrow.U_LAST_POST}" title="{L_GOTO_LAST_POST}"> <a href="{topicrow.U_LAST_POST}" title="{L_GOTO_LAST_POST}">
{{ Icon('iconify', 'fa:external-link-square', VIEW_LATEST_POST, true, 'c-last-post-icon') }} {{ Icon('font', 'arrow-up-right-from-square', VIEW_LATEST_POST, true, 'fas c-last-post-icon') }}
</a> </a>
<br />{topicrow.LAST_POST_TIME} <br />{topicrow.LAST_POST_TIME}
</span> </span>
@ -91,7 +91,7 @@
<dt>{L_TOTAL_POSTS}{L_COLON}</dt> <dd><!-- IF POSTS_PCT -->{POSTS}<!-- IF S_DISPLAY_SEARCH --> | <strong><a href="{U_SEARCH_USER}">{L_SEARCH_YOUR_POSTS}</a></strong><!-- ENDIF --><br />({POSTS_DAY} / {POSTS_PCT})<!-- ELSE -->{POSTS}<!-- ENDIF --></dd> <dt>{L_TOTAL_POSTS}{L_COLON}</dt> <dd><!-- IF POSTS_PCT -->{POSTS}<!-- IF S_DISPLAY_SEARCH --> | <strong><a href="{U_SEARCH_USER}">{L_SEARCH_YOUR_POSTS}</a></strong><!-- ENDIF --><br />({POSTS_DAY} / {POSTS_PCT})<!-- ELSE -->{POSTS}<!-- ENDIF --></dd>
<!-- IF ACTIVE_FORUM != '' --><dt>{L_ACTIVE_IN_FORUM}{L_COLON}</dt> <dd><strong><a href="{U_ACTIVE_FORUM}">{ACTIVE_FORUM}</a></strong><br />({ACTIVE_FORUM_POSTS} / {ACTIVE_FORUM_PCT})</dd><!-- ENDIF --> <!-- IF ACTIVE_FORUM != '' --><dt>{L_ACTIVE_IN_FORUM}{L_COLON}</dt> <dd><strong><a href="{U_ACTIVE_FORUM}">{ACTIVE_FORUM}</a></strong><br />({ACTIVE_FORUM_POSTS} / {ACTIVE_FORUM_PCT})</dd><!-- ENDIF -->
<!-- IF ACTIVE_TOPIC != '' --><dt>{L_ACTIVE_IN_TOPIC}{L_COLON}</dt> <dd><strong><a href="{U_ACTIVE_TOPIC}">{ACTIVE_TOPIC}</a></strong><br />({ACTIVE_TOPIC_POSTS} / {ACTIVE_TOPIC_PCT})</dd><!-- ENDIF --> <!-- IF ACTIVE_TOPIC != '' --><dt>{L_ACTIVE_IN_TOPIC}{L_COLON}</dt> <dd><strong><a href="{U_ACTIVE_TOPIC}">{ACTIVE_TOPIC}</a></strong><br />({ACTIVE_TOPIC_POSTS} / {ACTIVE_TOPIC_PCT})</dd><!-- ENDIF -->
<!-- IF WARNINGS --><dt>{L_YOUR_WARNINGS}{L_COLON}</dt> <dd class="error">{{ Icon('iconify', 'fa:exclamation-triangle', '', true, 'c-warning-icon') }} [{WARNINGS}]</dd><!-- ENDIF --> <!-- IF WARNINGS --><dt>{L_YOUR_WARNINGS}{L_COLON}</dt> <dd class="error">{{ Icon('font', 'exclamation-triangle', '', true, 'fas c-warning-icon') }} [{WARNINGS}]</dd><!-- ENDIF -->
<!-- EVENT ucp_main_front_user_activity_append --> <!-- EVENT ucp_main_front_user_activity_append -->
</dl> </dl>
<!-- EVENT ucp_main_front_user_activity_after --> <!-- EVENT ucp_main_front_user_activity_after -->

View file

@ -25,11 +25,11 @@
<dl class="row-item"> <dl class="row-item">
<dt> <dt>
<a class="row-item-link{% if forumrow.S_UNREAD_FORUM %} unread{% else %} read{% endif %}" href="{forumrow.U_VIEWFORUM}"> <a class="row-item-link{% if forumrow.S_UNREAD_FORUM %} unread{% else %} read{% endif %}" href="{forumrow.U_VIEWFORUM}">
{{ Icon('iconify', { {{ Icon('svg', {
'mdi:link-variant' : forumrow.S_IS_LINK, 'link-variant' : forumrow.S_IS_LINK,
'mdi:lock' : forumrow.S_LOCKED_FORUM, 'lock' : forumrow.S_LOCKED_FORUM,
'mdi:file-document-box-multiple-outline' : forumrow.S_SUBFORUMS, 'file-document-box-multiple-outline' : forumrow.S_SUBFORUMS,
'mdi:file-document-box-outline' : true, 'file-document-box-outline' : true,
}, '', true, 'c-forum-row-icon') }} }, '', true, 'c-forum-row-icon') }}
</a> </a>
<div class="list-inner"> <div class="list-inner">
@ -46,7 +46,7 @@
<!-- IF forumrow.LAST_POST_TIME_RFC3339 --> <!-- IF forumrow.LAST_POST_TIME_RFC3339 -->
<span><dfn>{L_LAST_POST} </dfn>{L_POST_BY_AUTHOR} {forumrow.LAST_POST_AUTHOR_FULL} <span><dfn>{L_LAST_POST} </dfn>{L_POST_BY_AUTHOR} {forumrow.LAST_POST_AUTHOR_FULL}
<a href="{forumrow.U_LAST_POST}"> <a href="{forumrow.U_LAST_POST}">
{{ Icon('iconify', 'fa:external-link-square', VIEW_LATEST_POST, true, 'c-last-post-icon') }} {{ Icon('font', 'arrow-up-right-from-square', VIEW_LATEST_POST, true, 'fas c-last-post-icon') }}
</a> </a>
<br /><time datetime="{forumrow.LAST_POST_TIME_RFC3339}">{forumrow.LAST_POST_TIME}</time></span> <br /><time datetime="{forumrow.LAST_POST_TIME_RFC3339}">{forumrow.LAST_POST_TIME}</time></span>
<!-- ELSE --> <!-- ELSE -->
@ -87,14 +87,14 @@
<dl class="row-item"> <dl class="row-item">
<dt> <dt>
<a class="row-item-link{% if topicrow.S_UNREAD_TOPIC %} unread{% else %} read{% endif %}" href="{topicrow.U_NEWEST_POST}" title="{topicrow.TOPIC_FOLDER_IMG_ALT}"> <a class="row-item-link{% if topicrow.S_UNREAD_TOPIC %} unread{% else %} read{% endif %}" href="{topicrow.U_NEWEST_POST}" title="{topicrow.TOPIC_FOLDER_IMG_ALT}">
{{ Icon('iconify', { {{ Icon('svg', {
'mdi:info-variant' : topicrow.S_POST_GLOBAL, 'info-variant' : topicrow.S_POST_GLOBAL,
'mdi:info-variant' : topicrow.S_POST_ANNOUNCE, 'info-variant' : topicrow.S_POST_ANNOUNCE,
'mdi:star' : topicrow.S_POST_STICKY, 'star' : topicrow.S_POST_STICKY,
'mdi:lock' : topicrow.S_TOPIC_LOCKED, 'lock' : topicrow.S_TOPIC_LOCKED,
'mdi:arrow-right-bold' : topicrow.S_TOPIC_MOVED, 'arrow-right-bold' : topicrow.S_TOPIC_MOVED,
'mdi:fire' : topicrow.S_TOPIC_HOT, 'fire' : topicrow.S_TOPIC_HOT,
'mdi:file-document-outline' : true, 'file-document-outline' : true,
}, '', true, 'c-forum-row-icon') }} }, '', true, 'c-forum-row-icon') }}
</a> </a>
{% if lang(topicrow.TOPIC_AUTHOR) == S_USERNAME %} {% if lang(topicrow.TOPIC_AUTHOR) == S_USERNAME %}
@ -111,19 +111,19 @@
{% endif %} {% endif %}
<!-- IF topicrow.S_TOPIC_UNAPPROVED or topicrow.S_POSTS_UNAPPROVED --> <!-- IF topicrow.S_TOPIC_UNAPPROVED or topicrow.S_POSTS_UNAPPROVED -->
<a href="{topicrow.U_MCP_QUEUE}" title="{L_TOPIC_UNAPPROVED}"> <a href="{topicrow.U_MCP_QUEUE}" title="{L_TOPIC_UNAPPROVED}">
{{ Icon('iconify', 'fa:question', lang('TOPIC_UNAPPROVED'), true, 'c-unapproved-icon') }} {{ Icon('font', 'circle-question', lang('TOPIC_UNAPPROVED'), true, 'fas c-unapproved-icon') }}
</a> </a>
<!-- ENDIF --> <!-- ENDIF -->
<!-- IF topicrow.S_TOPIC_REPORTED --> <!-- IF topicrow.S_TOPIC_REPORTED -->
<a href="{topicrow.U_MCP_REPORT}" title="{L_TOPIC_REPORTED}"> <a href="{topicrow.U_MCP_REPORT}" title="{L_TOPIC_REPORTED}">
{{ Icon('iconify', 'fa:exclamation', lang('TOPIC_REPORTED'), true, 'c-topic-reported-icon') }} {{ Icon('font', 'triangle-exclamation', lang('TOPIC_REPORTED'), true, 'fas c-topic-reported-icon') }}
</a> </a>
<!-- ENDIF --> <!-- ENDIF -->
<br /> <br />
{% EVENT ucp_main_subscribed_topic_title_after %} {% EVENT ucp_main_subscribed_topic_title_after %}
<!-- IF .topicrow.pagination --> <!-- IF .topicrow.pagination -->
<div class="pagination"> <div class="pagination">
<span>{{ Icon('iconify', 'fa:clone', '', true) }}</span> <span>{{ Icon('font', 'clone', '', true, 'far') }}</span>
<ul> <ul>
<!-- BEGIN pagination --> <!-- BEGIN pagination -->
<!-- IF topicrow.pagination.S_IS_PREV --> <!-- IF topicrow.pagination.S_IS_PREV -->
@ -140,18 +140,18 @@
</div> </div>
<!-- ENDIF --> <!-- ENDIF -->
<div class="responsive-hide"> <div class="responsive-hide">
<!-- IF topicrow.ATTACH_ICON_IMG -->{{ Icon('iconify', 'fa:paperclip', '', true) }} <!-- ENDIF --> <!-- IF topicrow.ATTACH_ICON_IMG -->{{ Icon('font', 'paperclip', '', true) }} <!-- ENDIF -->
{L_POST_BY_AUTHOR} {topicrow.TOPIC_AUTHOR_FULL} &raquo; {topicrow.FIRST_POST_TIME} {L_POST_BY_AUTHOR} {topicrow.TOPIC_AUTHOR_FULL} &raquo; {topicrow.FIRST_POST_TIME}
</div> </div>
<div class="responsive-show" style="display: none;"> <div class="responsive-show" style="display: none;">
<!-- IF topicrow.ATTACH_ICON_IMG -->{{ Icon('iconify', 'fa:paperclip', '', true) }} <!-- ENDIF --> <!-- IF topicrow.ATTACH_ICON_IMG -->{{ Icon('font', 'paperclip', '', true) }} <!-- ENDIF -->
{L_LAST_POST} {L_POST_BY_AUTHOR} {topicrow.LAST_POST_AUTHOR_FULL} &laquo; <a href="{topicrow.U_LAST_POST}" title="{L_GOTO_LAST_POST}">{topicrow.LAST_POST_TIME}</a> {L_LAST_POST} {L_POST_BY_AUTHOR} {topicrow.LAST_POST_AUTHOR_FULL} &laquo; <a href="{topicrow.U_LAST_POST}" title="{L_GOTO_LAST_POST}">{topicrow.LAST_POST_TIME}</a>
</div> </div>
</div> </div>
</dt> </dt>
<dd class="lastpost"><span><dfn>{L_LAST_POST} </dfn>{L_POST_BY_AUTHOR} {topicrow.LAST_POST_AUTHOR_FULL} <dd class="lastpost"><span><dfn>{L_LAST_POST} </dfn>{L_POST_BY_AUTHOR} {topicrow.LAST_POST_AUTHOR_FULL}
<a href="{topicrow.U_LAST_POST}" title="{L_GOTO_LAST_POST}"> <a href="{topicrow.U_LAST_POST}" title="{L_GOTO_LAST_POST}">
{{ Icon('iconify', 'fa:external-link-square', VIEW_LATEST_POST, true, 'c-last-post-icon') }} {{ Icon('font', 'arrow-up-right-from-square', VIEW_LATEST_POST, true, 'fas c-last-post-icon') }}
</a> </a>
<br />{topicrow.LAST_POST_TIME}</span> <br />{topicrow.LAST_POST_TIME}</span>
</dd> </dd>

View file

@ -23,7 +23,7 @@
<!-- EVENT ucp_pm_history_post_buttons_before --> <!-- EVENT ucp_pm_history_post_buttons_before -->
<li> <li>
<a <!-- IF history_row.U_QUOTE -->href="{history_row.U_QUOTE}"<!-- ELSE -->href="#postingbox" onclick="addquote({history_row.MSG_ID}, '{history_row.MESSAGE_AUTHOR_QUOTE}', '{LA_WROTE}', {time:{history_row.MESSAGE_TIME},user_id:{history_row.USER_ID}});"<!-- ENDIF --> title="{L_QUOTE} {history_row.MESSAGE_AUTHOR}" class="button button-icon-only"> <a <!-- IF history_row.U_QUOTE -->href="{history_row.U_QUOTE}"<!-- ELSE -->href="#postingbox" onclick="addquote({history_row.MSG_ID}, '{history_row.MESSAGE_AUTHOR_QUOTE}', '{LA_WROTE}', {time:{history_row.MESSAGE_TIME},user_id:{history_row.USER_ID}});"<!-- ENDIF --> title="{L_QUOTE} {history_row.MESSAGE_AUTHOR}" class="button button-icon-only">
{{ Icon('iconify', 'fa:quote-left', '', true, 'c-button-icon') }}<span class="sr-only">{L_QUOTE} {history_row.MESSAGE_AUTHOR}</span> {{ Icon('font', 'quote-left', '', true, 'fas c-button-icon') }}<span class="sr-only">{L_QUOTE} {history_row.MESSAGE_AUTHOR}</span>
</a> </a>
</li> </li>
<!-- EVENT ucp_pm_history_post_buttons_after --> <!-- EVENT ucp_pm_history_post_buttons_after -->
@ -32,7 +32,7 @@
<!-- EVENT ucp_pm_history_post_buttons_list_after --> <!-- EVENT ucp_pm_history_post_buttons_list_after -->
<p class="author"> <p class="author">
{{ Icon('iconify', 'fa:file', history_row.MINI_POST, true, 'c-topic-icon') }} {L_SENT_AT}{L_COLON} <strong>{history_row.SENT_DATE}</strong> {{ Icon('font', 'file', history_row.MINI_POST, true, 'fas c-topic-icon') }} {L_SENT_AT}{L_COLON} <strong>{history_row.SENT_DATE}</strong>
<br /> <br />
{L_MESSAGE_BY_AUTHOR} <!-- EVENT ucp_pm_history_row_message_author_username_prepend -->{history_row.MESSAGE_AUTHOR_FULL}<!-- EVENT ucp_pm_history_row_message_author_username_append --> {L_MESSAGE_BY_AUTHOR} <!-- EVENT ucp_pm_history_row_message_author_username_prepend -->{history_row.MESSAGE_AUTHOR_FULL}<!-- EVENT ucp_pm_history_row_message_author_username_append -->
</p> </p>
@ -49,6 +49,6 @@
<hr /> <hr />
<p> <p>
<a href="#cp-main" class="top"> <a href="#cp-main" class="top">
{{ Icon('iconify', 'fa:chevron-circle-up', lang('BACK_TO_TOP'), false, 'c-top-icon') }} {{ Icon('font', 'circle-chevron-up', lang('BACK_TO_TOP'), false, 'c-top-icon') }}
</a> </a>
</p> </p>

View file

@ -10,21 +10,21 @@
<!-- IF U_POST_REPLY_PM or U_POST_NEW_TOPIC or U_FORWARD_PM --> <!-- IF U_POST_REPLY_PM or U_POST_NEW_TOPIC or U_FORWARD_PM -->
<!-- IF U_POST_REPLY_PM --> <!-- IF U_POST_REPLY_PM -->
<a title="{L_POST_REPLY_PM}" href="{U_POST_REPLY_PM}" class="button"> <a title="{L_POST_REPLY_PM}" href="{U_POST_REPLY_PM}" class="button">
<span>{L_BUTTON_PM_REPLY}</span> {{ Icon('iconify', 'fa:reply', '', true, 'c-button-icon') }}</i> <span>{L_BUTTON_PM_REPLY}</span> {{ Icon('font', 'reply', '', true, 'fas c-button-icon') }}</i>
</a> </a>
<!-- ELSEIF U_POST_NEW_TOPIC --> <!-- ELSEIF U_POST_NEW_TOPIC -->
<a href="{U_POST_NEW_TOPIC}" accesskey="n" title="{L_UCP_PM_COMPOSE}" class="button"> <a href="{U_POST_NEW_TOPIC}" accesskey="n" title="{L_UCP_PM_COMPOSE}" class="button">
<span>{L_BUTTON_PM_NEW}</span> {{ Icon('iconify', 'fa:pencil', '', true, 'c-button-icon') }} <span>{L_BUTTON_PM_NEW}</span> {{ Icon('font', 'pencil', '', true, 'fas c-button-icon') }}
</a> </a>
<!-- ENDIF --> <!-- ENDIF -->
<!-- IF U_FORWARD_PM --> <!-- IF U_FORWARD_PM -->
<a title="{L_POST_FORWARD_PM}" href="{U_FORWARD_PM}" class="button"> <a title="{L_POST_FORWARD_PM}" href="{U_FORWARD_PM}" class="button">
<span>{L_BUTTON_PM_FORWARD}</span> {{ Icon('iconify', 'fa:mail-forward', '', true, 'c-button-icon') }} <span>{L_BUTTON_PM_FORWARD}</span> {{ Icon('font', 'share', '', true, 'fas c-button-icon') }}
</a> </a>
<!-- ENDIF --> <!-- ENDIF -->
<!-- IF U_POST_REPLY_PM and S_PM_RECIPIENTS gt 1 --> <!-- IF U_POST_REPLY_PM and S_PM_RECIPIENTS gt 1 -->
<a title="{L_REPLY_TO_ALL}" href="{U_POST_REPLY_ALL}" class="button"> <a title="{L_REPLY_TO_ALL}" href="{U_POST_REPLY_ALL}" class="button">
<span>{L_BUTTON_PM_REPLY_ALL}</span> {{ Icon('iconify', 'fa:pencil', '', true, 'c-button-icon') }} <span>{L_BUTTON_PM_REPLY_ALL}</span> {{ Icon('font', 'pencil', '', true, 'fas c-button-icon') }}
</a> </a>
<!-- ENDIF --> <!-- ENDIF -->
<!-- ENDIF --> <!-- ENDIF -->
@ -32,8 +32,8 @@
<!-- IF not S_IS_BOT and U_PRINT_PM --> <!-- IF not S_IS_BOT and U_PRINT_PM -->
<div class="dropdown-container dropdown-button-control topic-tools"> <div class="dropdown-container dropdown-button-control topic-tools">
<span title="{L_PM_TOOLS}" class="button button-secondary dropdown-trigger dropdown-select"> <span title="{L_PM_TOOLS}" class="button button-secondary dropdown-trigger dropdown-select">
{{ Icon('iconify', 'fa:wrench', '', true, 'c-button-icon') }} {{ Icon('font', 'wrench', '', true, 'fas c-button-icon') }}
<span class="caret">{{ Icon('iconify', 'fa:caret-down', '', true, 'c-button-icon') }}</span> <span class="caret">{{ Icon('font', 'caret-down', '', true, 'fas c-button-icon') }}</span>
</span> </span>
<div class="dropdown"> <div class="dropdown">
<div class="pointer"><div class="pointer-inner"></div></div> <div class="pointer"><div class="pointer-inner"></div></div>
@ -41,7 +41,7 @@
<!-- IF U_PRINT_PM --> <!-- IF U_PRINT_PM -->
<li> <li>
<a href="{U_PRINT_PM}" title="{L_PRINT_PM}" accesskey="p"> <a href="{U_PRINT_PM}" title="{L_PRINT_PM}" accesskey="p">
{{ Icon('iconify', 'fa:print', lang('PRINT_PM'), false) }} {{ Icon('font', 'print', lang('PRINT_PM'), false) }}
</a> </a>
</li> </li>
<!-- ENDIF --> <!-- ENDIF -->
@ -54,7 +54,7 @@
<div class="pagination"> <div class="pagination">
<!-- IF S_VIEW_MESSAGE --> <!-- IF S_VIEW_MESSAGE -->
<a class="arrow-{S_CONTENT_FLOW_BEGIN}" href="{U_CURRENT_FOLDER}"> <a class="arrow-{S_CONTENT_FLOW_BEGIN}" href="{U_CURRENT_FOLDER}">
{{ Icon('iconify', 'fa:angle-' ~ S_CONTENT_FLOW_BEGIN, lang('RETURN_TO_FOLDER'), false, 'c-return-arrow-icon') }} {{ Icon('font', 'angle-' ~ S_CONTENT_FLOW_BEGIN, lang('RETURN_TO_FOLDER'), false, 'fas c-return-arrow-icon') }}
</a> </a>
<!-- ELSEIF FOLDER_CUR_MESSAGES neq 0 --> <!-- ELSEIF FOLDER_CUR_MESSAGES neq 0 -->
<!-- IF U_MARK_ALL --><a href="{U_MARK_ALL}" class="mark">{L_PM_MARK_ALL_READ}</a> &bull; <!-- ENDIF --> <!-- IF U_MARK_ALL --><a href="{U_MARK_ALL}" class="mark">{L_PM_MARK_ALL_READ}</a> &bull; <!-- ENDIF -->

View file

@ -60,7 +60,7 @@
<dl class="row-item"> <dl class="row-item">
<dt> <dt>
<a class="row-item-link{% if messagerow.S_PM_UNREAD %} unread{% else %} read{% endif %}" href="{messagerow.U_VIEW_PM}"> <a class="row-item-link{% if messagerow.S_PM_UNREAD %} unread{% else %} read{% endif %}" href="{messagerow.U_VIEW_PM}">
{{ Icon('iconify', 'mdi:comment-text-outline', '', true, 'c-forum-row-icon') }} {{ Icon('svg', 'comment-text-outline', '', true, 'c-forum-row-icon') }}
</a> </a>
{% if messagerow.PM_ICON_URL and S_PM_ICONS %} {% if messagerow.PM_ICON_URL and S_PM_ICONS %}
<img class="row-item-sub" src="{messagerow.PM_ICON_URL}" alt=""> <img class="row-item-sub" src="{messagerow.PM_ICON_URL}" alt="">
@ -78,9 +78,9 @@
<!-- ENDIF --> <!-- ENDIF -->
<!-- IF messagerow.S_PM_REPORTED --> <!-- IF messagerow.S_PM_REPORTED -->
<a href="{messagerow.U_MCP_REPORT}"> <a href="{messagerow.U_MCP_REPORT}">
{{ Icon('iconify', 'fa:exclamation', PM_REPORTED, true, 'c-topic-reported-icon') }} {{ Icon('font', 'triangle-exclamation', PM_REPORTED, true, 'fas c-topic-reported-icon') }}
</a> </a>
<!-- ENDIF --> <!-- IF messagerow.ATTACH_ICON_IMG -->{{ Icon('iconify', 'fa:paperclip', '', true) }} <!-- ENDIF --><br /> <!-- ENDIF --> <!-- IF messagerow.ATTACH_ICON_IMG -->{{ Icon('font', 'paperclip', '', true) }} <!-- ENDIF --><br />
<!-- IF S_SHOW_RECIPIENTS -->{L_MESSAGE_TO} {messagerow.RECIPIENTS}<!-- ELSE -->{L_MESSAGE_BY_AUTHOR} {messagerow.MESSAGE_AUTHOR_FULL} &raquo; {messagerow.SENT_TIME}<!-- ENDIF --> <!-- IF S_SHOW_RECIPIENTS -->{L_MESSAGE_TO} {messagerow.RECIPIENTS}<!-- ELSE -->{L_MESSAGE_BY_AUTHOR} {messagerow.MESSAGE_AUTHOR_FULL} &raquo; {messagerow.SENT_TIME}<!-- ENDIF -->
</div> </div>

View file

@ -10,12 +10,12 @@
<fieldset class="display-options clearfix"> <fieldset class="display-options clearfix">
<!-- IF U_VIEW_PREVIOUS_HISTORY --> <!-- IF U_VIEW_PREVIOUS_HISTORY -->
<a href="{U_VIEW_PREVIOUS_HISTORY}" class="left-box arrow-{S_CONTENT_FLOW_BEGIN}"> <a href="{U_VIEW_PREVIOUS_HISTORY}" class="left-box arrow-{S_CONTENT_FLOW_BEGIN}">
{{ Icon('iconify', 'fa:angle-' ~ S_CONTENT_FLOW_BEGIN, lang('VIEW_PREVIOUS_HISTORY'), false, 'c-return-arrow-icon') }} {{ Icon('font', 'angle-' ~ S_CONTENT_FLOW_BEGIN, lang('VIEW_PREVIOUS_HISTORY'), false, 'fas c-return-arrow-icon') }}
</a> </a>
<!-- ENDIF --> <!-- ENDIF -->
<!-- IF U_VIEW_NEXT_HISTORY --> <!-- IF U_VIEW_NEXT_HISTORY -->
<a href="{U_VIEW_NEXT_HISTORY}" class="right-box arrow-{S_CONTENT_FLOW_END}"> <a href="{U_VIEW_NEXT_HISTORY}" class="right-box arrow-{S_CONTENT_FLOW_END}">
{{ Icon('iconify', 'fa:angle-' ~ S_CONTENT_FLOW_END, lang('VIEW_NEXT_HISTORY'), false, 'c-return-arrow-icon') }} {{ Icon('font', 'angle-' ~ S_CONTENT_FLOW_END, lang('VIEW_NEXT_HISTORY'), false, 'fas c-return-arrow-icon') }}
</a> </a>
<!-- ENDIF --> <!-- ENDIF -->
</fieldset> </fieldset>
@ -36,7 +36,7 @@
{% EVENT ucp_pm_viewmessage_author_full_before %} {% EVENT ucp_pm_viewmessage_author_full_before %}
{MESSAGE_AUTHOR_FULL} {MESSAGE_AUTHOR_FULL}
{% EVENT ucp_pm_viewmessage_author_full_after %} {% EVENT ucp_pm_viewmessage_author_full_after %}
<!-- IF S_ONLINE --> {{ Icon('iconify', 'fa:circle', lang('ONLINE'), true, 'c-online-icon') }}<!-- ENDIF --> <!-- IF S_ONLINE --> {{ Icon('font', 'circle', lang('ONLINE'), true, 'fas c-online-icon') }}<!-- ENDIF -->
{% endapply %} {% endapply %}
</dt> </dt>
@ -60,7 +60,7 @@
<dd class="profile-contact"> <dd class="profile-contact">
<strong>{L_CONTACT}{L_COLON}</strong> <strong>{L_CONTACT}{L_COLON}</strong>
<div class="dropdown-container dropdown-left"> <div class="dropdown-container dropdown-left">
<a href="#" class="dropdown-trigger" title="{CONTACT_USER}">{{ Icon('iconify', 'mdi:comment-processing-outline', CONTACT_USER, true) }}</a> <a href="#" class="dropdown-trigger" title="{CONTACT_USER}">{{ Icon('font', 'comment-dots', CONTACT_USER, true, 'far') }}</a>
<div class="dropdown"> <div class="dropdown">
<div class="pointer"><div class="pointer-inner"></div></div> <div class="pointer"><div class="pointer-inner"></div></div>
<div class="dropdown-contents contact-icons"> <div class="dropdown-contents contact-icons">
@ -72,19 +72,21 @@
<!-- ENDIF --> <!-- ENDIF -->
<a href="<!-- IF contact.U_CONTACT -->{contact.U_CONTACT}<!-- ELSE -->{contact.U_PROFILE_AUTHOR}<!-- ENDIF -->" title="{contact.NAME}"<!-- IF $S_LAST_CELL --> class="last-cell"<!-- ENDIF --><!-- IF contact.ID eq 'jabber' --> onclick="popup(this.href, 750, 320); return false;"<!-- ENDIF -->> <a href="<!-- IF contact.U_CONTACT -->{contact.U_CONTACT}<!-- ELSE -->{contact.U_PROFILE_AUTHOR}<!-- ENDIF -->" title="{contact.NAME}"<!-- IF $S_LAST_CELL --> class="last-cell"<!-- ENDIF --><!-- IF contact.ID eq 'jabber' --> onclick="popup(this.href, 750, 320); return false;"<!-- ENDIF -->>
{% if contact.ID == 'pm' %} {% if contact.ID == 'pm' %}
{{ Icon('iconify', 'mdi:comment-account-outline', '', true, 'contact-icon') }} {{ Icon('font', 'message', '', true, 'far contact-icon') }}
{% elseif contact.ID == 'email' %} {% elseif contact.ID == 'email' %}
{{ Icon('iconify', 'mdi:at', '', true, 'contact-icon') }} {{ Icon('font', 'at', '', true, 'fas contact-icon') }}
{% elseif contact.ID == 'phpbb_website' %} {% elseif contact.ID == 'phpbb_website' %}
{{ Icon('iconify', 'mdi:earth', '', true, 'contact-icon') }} {{ Icon('font', 'earth-americas', '', true, 'fas contact-icon') }}
{% elseif contact.ID == 'phpbb_facebook' %} {% elseif contact.ID == 'phpbb_facebook' %}
{{ Icon('iconify', 'mdi:facebook-box', '', true, 'contact-icon c-facebook-icon') }} {{ Icon('font', 'square-facebook', '', true, 'fab contact-icon c-facebook-icon') }}
{% elseif contact.ID == 'phpbb_twitter' %} {% elseif contact.ID == 'phpbb_twitter' %}
{{ Icon('iconify', 'mdi:twitter', '', true, 'contact-icon c-twitter-icon') }} {{ Icon('font', 'square-x-twitter', '', true, 'fab contact-icon c-twitter-icon') }}
{% elseif contact.ID == 'phpbb_skype' %} {% elseif contact.ID == 'phpbb_skype' %}
{{ Icon('iconify', 'mdi:skype', '', true, 'contact-icon c-skype-icon') }} {{ Icon('font', 'skype', '', true, 'fab contact-icon c-skype-icon') }}
{% elseif contact.ID == 'phpbb_youtube' %} {% elseif contact.ID == 'phpbb_youtube' %}
{{ Icon('iconify', 'mdi:youtube', '', true, 'contact-icon c-youtube-icon') }} {{ Icon('font', 'youtube', '', true, 'fab contact-icon c-youtube-icon') }}
{% else %}
{{ Icon('svg', contact.ID, '', true, 'contact-icon') }}
{% endif %} {% endif %}
</a> </a>
<!-- IF REMAINDER eq 3 or contact.S_LAST_ROW --> <!-- IF REMAINDER eq 3 or contact.S_LAST_ROW -->
@ -110,28 +112,28 @@
<!-- IF U_EDIT --> <!-- IF U_EDIT -->
<li> <li>
<a href="{U_EDIT}" title="{L_POST_EDIT_PM}" class="button button-icon-only"> <a href="{U_EDIT}" title="{L_POST_EDIT_PM}" class="button button-icon-only">
{{ Icon('iconify', 'fa:pencil', lang('BUTTON_EDIT'), true, 'c-button-icon') }} {{ Icon('font', 'pencil', lang('BUTTON_EDIT'), true, 'fas c-button-icon') }}
</a> </a>
</li> </li>
<!-- ENDIF --> <!-- ENDIF -->
<!-- IF U_DELETE --> <!-- IF U_DELETE -->
<li> <li>
<a href="{U_DELETE}" title="{L_DELETE_MESSAGE}" class="button button-icon-only"> <a href="{U_DELETE}" title="{L_DELETE_MESSAGE}" class="button button-icon-only">
{{ Icon('iconify', 'fa:times', lang('BUTTON_DELETE'), true, 'c-button-icon') }} {{ Icon('font', 'xmark', lang('BUTTON_DELETE'), true, 'fas c-button-icon') }}
</a> </a>
</li> </li>
<!-- ENDIF --> <!-- ENDIF -->
<!-- IF U_REPORT --> <!-- IF U_REPORT -->
<li> <li>
<a href="{U_REPORT}" title="{L_REPORT_PM}" class="button button-icon-only"> <a href="{U_REPORT}" title="{L_REPORT_PM}" class="button button-icon-only">
{{ Icon('iconify', 'fa:exclamation', lang('BUTTON_REPORT'), true, 'c-button-icon') }} {{ Icon('font', 'exclamation', lang('BUTTON_REPORT'), true, 'fas c-button-icon') }}
</a> </a>
</li> </li>
<!-- ENDIF --> <!-- ENDIF -->
<!-- IF U_QUOTE --> <!-- IF U_QUOTE -->
<li> <li>
<a href="{U_QUOTE}" title="{L_POST_QUOTE_PM}" class="button button-icon-only"> <a href="{U_QUOTE}" title="{L_POST_QUOTE_PM}" class="button button-icon-only">
{{ Icon('iconify', 'fa:quote-left', lang('BUTTON_QUOTE'), true, 'c-button-icon') }} {{ Icon('font', 'quote-left', lang('BUTTON_QUOTE'), true, 'fas c-button-icon') }}
</a> </a>
</li> </li>
<!-- ENDIF --> <!-- ENDIF -->
@ -178,7 +180,7 @@
<div class="back2top"> <div class="back2top">
<a href="#top" class="top" title="{L_BACK_TO_TOP}"> <a href="#top" class="top" title="{L_BACK_TO_TOP}">
{{ Icon('iconify', 'fa:chevron-circle-up', lang('BACK_TO_TOP'), true, 'c-top-icon') }} {{ Icon('font', 'circle-chevron-up', lang('BACK_TO_TOP'), true, 'fas c-top-icon') }}
</a> </a>
</div> </div>
@ -192,12 +194,12 @@
<!-- IF S_MARK_OPTIONS --><label for="mark_option"><select name="mark_option" id="mark_option">{S_MARK_OPTIONS}</select></label>&nbsp;<input class="button1 button button-form-bold" type="submit" name="submit_mark" value="{L_GO}" /><!-- ENDIF --> <!-- IF S_MARK_OPTIONS --><label for="mark_option"><select name="mark_option" id="mark_option">{S_MARK_OPTIONS}</select></label>&nbsp;<input class="button1 button button-form-bold" type="submit" name="submit_mark" value="{L_GO}" /><!-- ENDIF -->
<!-- IF U_PREVIOUS_PM --> <!-- IF U_PREVIOUS_PM -->
<a href="{U_PREVIOUS_PM}" class="left-box arrow-{S_CONTENT_FLOW_BEGIN}"> <a href="{U_PREVIOUS_PM}" class="left-box arrow-{S_CONTENT_FLOW_BEGIN}">
{{ Icon('iconify', 'fa:angle-' ~ S_CONTENT_FLOW_BEGIN, lang('VIEW_PREVIOUS_PM'), false, 'c-return-arrow-icon') }} {{ Icon('font', 'angle-' ~ S_CONTENT_FLOW_BEGIN, lang('VIEW_PREVIOUS_PM'), false, 'fas c-return-arrow-icon') }}
</a> </a>
<!-- ENDIF --> <!-- ENDIF -->
<!-- IF U_NEXT_PM --> <!-- IF U_NEXT_PM -->
<a href="{U_NEXT_PM}" class="right-box arrow-{S_CONTENT_FLOW_END}"> <a href="{U_NEXT_PM}" class="right-box arrow-{S_CONTENT_FLOW_END}">
{{ Icon('iconify', 'fa:angle-' ~ S_CONTENT_FLOW_END, lang('VIEW_NEXT_PM'), false, 'c-return-arrow-icon') }} {{ Icon('font', 'angle-' ~ S_CONTENT_FLOW_END, lang('VIEW_NEXT_PM'), false, 'fas c-return-arrow-icon') }}
</a> </a>
<!-- ENDIF --> <!-- ENDIF -->
<!-- IF not S_UNREAD and not S_SPECIAL_FOLDER --><label for="dest_folder"><!-- IF S_VIEW_MESSAGE -->{L_MOVE_TO_FOLDER}{L_COLON} <!-- ELSE -->{L_MOVE_MARKED_TO_FOLDER}<!-- ENDIF --> <select name="dest_folder" id="dest_folder">{S_TO_FOLDER_OPTIONS}</select></label> <input class="button1 button button-form-bold" type="submit" name="move_pm" value="{L_GO}" /><!-- ENDIF --> <!-- IF not S_UNREAD and not S_SPECIAL_FOLDER --><label for="dest_folder"><!-- IF S_VIEW_MESSAGE -->{L_MOVE_TO_FOLDER}{L_COLON} <!-- ELSE -->{L_MOVE_MARKED_TO_FOLDER}<!-- ENDIF --> <select name="dest_folder" id="dest_folder">{S_TO_FOLDER_OPTIONS}</select></label> <input class="button1 button button-form-bold" type="submit" name="move_pm" value="{L_GO}" /><!-- ENDIF -->

View file

@ -42,9 +42,9 @@
<a href="{U_POST_NEW_TOPIC}" class="button" title="<!-- IF S_IS_LOCKED -->{L_FORUM_LOCKED}<!-- ELSE -->{L_POST_TOPIC}<!-- ENDIF -->"> <a href="{U_POST_NEW_TOPIC}" class="button" title="<!-- IF S_IS_LOCKED -->{L_FORUM_LOCKED}<!-- ELSE -->{L_POST_TOPIC}<!-- ENDIF -->">
<!-- IF S_IS_LOCKED --> <!-- IF S_IS_LOCKED -->
<span>{L_BUTTON_FORUM_LOCKED}</span> {{ Icon('iconify', 'fa:lock', '', true, 'c-button-icon') }} <span>{L_BUTTON_FORUM_LOCKED}</span> {{ Icon('font', 'lock', '', true, 'fas c-button-icon') }}
<!-- ELSE --> <!-- ELSE -->
<span>{L_BUTTON_NEW_TOPIC}</span> {{ Icon('iconify', 'fa:pencil', '', true, 'c-button-icon') }} <span>{L_BUTTON_NEW_TOPIC}</span> {{ Icon('font', 'pencil', '', true, 'fas c-button-icon') }}
<!-- ENDIF --> <!-- ENDIF -->
</a> </a>
<!-- EVENT viewforum_buttons_top_after --> <!-- EVENT viewforum_buttons_top_after -->
@ -56,10 +56,10 @@
<fieldset> <fieldset>
<input class="inputbox search tiny" type="search" name="keywords" id="search_keywords" size="20" placeholder="{L_SEARCH_FORUM}" /> <input class="inputbox search tiny" type="search" name="keywords" id="search_keywords" size="20" placeholder="{L_SEARCH_FORUM}" />
<button class="button button-search" type="submit" title="{L_SEARCH}"> <button class="button button-search" type="submit" title="{L_SEARCH}">
{{ Icon('iconify', 'fa:search', lang('SEARCH'), true, 'c-button-icon') }} {{ Icon('font', 'search', lang('SEARCH'), true, 'fas c-button-icon') }}
</button> </button>
<a href="{{ U_SEARCH_FORUM }}" class="button button-search-end" title="lang('SEARCH_ADV')"> <a href="{{ U_SEARCH_FORUM }}" class="button button-search-end" title="lang('SEARCH_ADV')">
{{ Icon('iconify', 'fa:cog', lang('SEARCH_ADV'), true, 'c-button-icon') }} {{ Icon('font', 'gear', lang('SEARCH_ADV'), true, 'fas c-button-icon') }}
</a> </a>
{S_SEARCH_LOCAL_HIDDEN_FIELDS} {S_SEARCH_LOCAL_HIDDEN_FIELDS}
</fieldset> </fieldset>
@ -159,14 +159,14 @@
<dl class="row-item"> <dl class="row-item">
<dt> <dt>
<a class="row-item-link{% if topicrow.S_UNREAD_TOPIC %} unread{% else %} read{% endif %}" href="{topicrow.U_NEWEST_POST}" title="{topicrow.TOPIC_FOLDER_IMG_ALT}"> <a class="row-item-link{% if topicrow.S_UNREAD_TOPIC %} unread{% else %} read{% endif %}" href="{topicrow.U_NEWEST_POST}" title="{topicrow.TOPIC_FOLDER_IMG_ALT}">
{{ Icon('iconify', { {{ Icon('svg', {
'mdi:info-variant' : topicrow.S_POST_GLOBAL, 'info-variant' : topicrow.S_POST_GLOBAL,
'mdi:info-variant' : topicrow.S_POST_ANNOUNCE, 'info-variant' : topicrow.S_POST_ANNOUNCE,
'mdi:star' : topicrow.S_POST_STICKY, 'star' : topicrow.S_POST_STICKY,
'mdi:lock' : topicrow.S_TOPIC_LOCKED, 'lock' : topicrow.S_TOPIC_LOCKED,
'mdi:arrow-right-bold' : topicrow.S_TOPIC_MOVED, 'arrow-right-bold' : topicrow.S_TOPIC_MOVED,
'mdi:fire' : topicrow.S_TOPIC_HOT, 'fire' : topicrow.S_TOPIC_HOT,
'mdi:file-document-outline' : true, 'file-document-outline' : true,
}, '', true, 'c-forum-row-icon') }} }, '', true, 'c-forum-row-icon') }}
</a> </a>
{% if lang(topicrow.TOPIC_AUTHOR) == S_USERNAME %} {% if lang(topicrow.TOPIC_AUTHOR) == S_USERNAME %}
@ -186,17 +186,17 @@
{% endif %} {% endif %}
<!-- IF topicrow.S_TOPIC_UNAPPROVED or topicrow.S_POSTS_UNAPPROVED --> <!-- IF topicrow.S_TOPIC_UNAPPROVED or topicrow.S_POSTS_UNAPPROVED -->
<a href="{topicrow.U_MCP_QUEUE}" title="<!-- IF topicrow.S_TOPIC_UNAPPROVED -->{L_TOPIC_UNAPPROVED}<!-- ELSE -->{L_POSTS_UNAPPROVED}<!-- ENDIF -->"> <a href="{topicrow.U_MCP_QUEUE}" title="<!-- IF topicrow.S_TOPIC_UNAPPROVED -->{L_TOPIC_UNAPPROVED}<!-- ELSE -->{L_POSTS_UNAPPROVED}<!-- ENDIF -->">
{{ Icon('iconify', 'fa:question', '', true, 'c-unapproved-icon') }}<span class="sr-only"><!-- IF topicrow.S_TOPIC_UNAPPROVED -->{L_TOPIC_UNAPPROVED}<!-- ELSE -->{L_POSTS_UNAPPROVED}<!-- ENDIF --></span> {{ Icon('font', 'circle-question', '', true, 'fas c-unapproved-icon o-icon-baseline') }}<span class="sr-only"><!-- IF topicrow.S_TOPIC_UNAPPROVED -->{L_TOPIC_UNAPPROVED}<!-- ELSE -->{L_POSTS_UNAPPROVED}<!-- ENDIF --></span>
</a> </a>
<!-- ENDIF --> <!-- ENDIF -->
<!-- IF topicrow.S_TOPIC_DELETED --> <!-- IF topicrow.S_TOPIC_DELETED -->
<a href="{topicrow.U_MCP_QUEUE}" title="{L_TOPIC_DELETED}"> <a href="{topicrow.U_MCP_QUEUE}" title="{L_TOPIC_DELETED}">
{{ Icon('iconify', 'fa:recycle', lang('TOPIC_DELETED'), true, 'c-topic-deleted-icon') }} {{ Icon('font', 'recycle', lang('TOPIC_DELETED'), true, 'fas c-topic-deleted-icon o-icon-baseline') }}
</a> </a>
<!-- ENDIF --> <!-- ENDIF -->
<!-- IF topicrow.S_TOPIC_REPORTED --> <!-- IF topicrow.S_TOPIC_REPORTED -->
<a href="{topicrow.U_MCP_REPORT}" title="{L_TOPIC_REPORTED}"> <a href="{topicrow.U_MCP_REPORT}" title="{L_TOPIC_REPORTED}">
{{ Icon('iconify', 'fa:exclamation', lang('TOPIC_REPORTED'), true, 'c-topic-reported-icon') }} {{ Icon('font', 'triangle-exclamation', lang('TOPIC_REPORTED'), true, 'fas c-topic-reported-icon o-icon-baseline') }}
</a> </a>
<!-- ENDIF --> <!-- ENDIF -->
<br /> <br />
@ -213,8 +213,8 @@
<!-- ENDIF --> <!-- ENDIF -->
<div class="topic-poster responsive-hide left-box"> <div class="topic-poster responsive-hide left-box">
<!-- IF topicrow.S_HAS_POLL -->{{ Icon('iconify', 'fa:bar-chart', '', true) }}<!-- ENDIF --> <!-- IF topicrow.S_HAS_POLL -->{{ Icon('font', 'chart-bar', '', true) }}<!-- ENDIF -->
<!-- IF topicrow.ATTACH_ICON_IMG -->{{ Icon('iconify', 'fa:paperclip', '', true) }}<!-- ENDIF --> <!-- IF topicrow.ATTACH_ICON_IMG -->{{ Icon('font', 'paperclip', '', true) }}<!-- ENDIF -->
{% EVENT topiclist_row_topic_by_author_before %} {% EVENT topiclist_row_topic_by_author_before %}
{L_POST_BY_AUTHOR} <!-- EVENT viewforum_body_topic_author_username_prepend -->{topicrow.TOPIC_AUTHOR_FULL}<!-- EVENT viewforum_body_topic_author_username_append --> &raquo; <time datetime="{topicrow.FIRST_POST_TIME_RFC3339}">{topicrow.FIRST_POST_TIME}</time> {L_POST_BY_AUTHOR} <!-- EVENT viewforum_body_topic_author_username_prepend -->{topicrow.TOPIC_AUTHOR_FULL}<!-- EVENT viewforum_body_topic_author_username_append --> &raquo; <time datetime="{topicrow.FIRST_POST_TIME_RFC3339}">{topicrow.FIRST_POST_TIME}</time>
{% EVENT topiclist_row_topic_by_author_after %} {% EVENT topiclist_row_topic_by_author_after %}
@ -223,7 +223,7 @@
<!-- IF .topicrow.pagination --> <!-- IF .topicrow.pagination -->
<div class="pagination"> <div class="pagination">
<span>{{ Icon('iconify', 'fa:clone', '', true) }}</span> <span>{{ Icon('font', 'clone', '', true, 'far') }}</span>
<ul> <ul>
<!-- BEGIN pagination --> <!-- BEGIN pagination -->
<!-- IF topicrow.pagination.S_IS_PREV --> <!-- IF topicrow.pagination.S_IS_PREV -->
@ -249,7 +249,7 @@
<span><dfn>{L_LAST_POST} </dfn>{L_POST_BY_AUTHOR} <!-- EVENT viewforum_body_last_post_author_username_prepend -->{topicrow.LAST_POST_AUTHOR_FULL}<!-- EVENT viewforum_body_last_post_author_username_append --> <span><dfn>{L_LAST_POST} </dfn>{L_POST_BY_AUTHOR} <!-- EVENT viewforum_body_last_post_author_username_prepend -->{topicrow.LAST_POST_AUTHOR_FULL}<!-- EVENT viewforum_body_last_post_author_username_append -->
<!-- IF not S_IS_BOT and topicrow.U_LAST_POST --> <!-- IF not S_IS_BOT and topicrow.U_LAST_POST -->
<a href="{topicrow.U_LAST_POST}" title="{L_GOTO_LAST_POST}"> <a href="{topicrow.U_LAST_POST}" title="{L_GOTO_LAST_POST}">
{{ Icon('iconify', 'fa:external-link-square', VIEW_LATEST_POST, true, 'c-last-post-icon') }} {{ Icon('font', 'arrow-up-right-from-square', VIEW_LATEST_POST, true, 'fas c-last-post-icon') }}
</a> </a>
<!-- ENDIF --> <!-- ENDIF -->
<br /><time datetime="{topicrow.LAST_POST_TIME_RFC3339}">{topicrow.LAST_POST_TIME}</time> <br /><time datetime="{topicrow.LAST_POST_TIME_RFC3339}">{topicrow.LAST_POST_TIME}</time>
@ -289,9 +289,9 @@
<a href="{U_POST_NEW_TOPIC}" class="button" title="<!-- IF S_IS_LOCKED -->{L_FORUM_LOCKED}<!-- ELSE -->{L_POST_TOPIC}<!-- ENDIF -->"> <a href="{U_POST_NEW_TOPIC}" class="button" title="<!-- IF S_IS_LOCKED -->{L_FORUM_LOCKED}<!-- ELSE -->{L_POST_TOPIC}<!-- ENDIF -->">
<!-- IF S_IS_LOCKED --> <!-- IF S_IS_LOCKED -->
<span>{L_BUTTON_FORUM_LOCKED}</span> {{ Icon('iconify', 'fa:lock', '', true, 'c-button-icon') }} <span>{L_BUTTON_FORUM_LOCKED}</span> {{ Icon('font', 'lock', '', true, 'fas c-button-icon') }}
<!-- ELSE --> <!-- ELSE -->
<span>{L_BUTTON_NEW_TOPIC}</span> {{ Icon('iconify', 'fa:pencil', '', true, 'c-button-icon') }} <span>{L_BUTTON_NEW_TOPIC}</span> {{ Icon('font', 'pencil', '', true, 'fas c-button-icon') }}
<!-- ENDIF --> <!-- ENDIF -->
</a> </a>

View file

@ -33,9 +33,9 @@
<!-- IF not S_IS_BOT and S_DISPLAY_REPLY_INFO --> <!-- IF not S_IS_BOT and S_DISPLAY_REPLY_INFO -->
<a href="{U_POST_REPLY_TOPIC}" class="button" title="<!-- IF S_IS_LOCKED -->{L_TOPIC_LOCKED}<!-- ELSE -->{L_POST_REPLY}<!-- ENDIF -->"> <a href="{U_POST_REPLY_TOPIC}" class="button" title="<!-- IF S_IS_LOCKED -->{L_TOPIC_LOCKED}<!-- ELSE -->{L_POST_REPLY}<!-- ENDIF -->">
<!-- IF S_IS_LOCKED --> <!-- IF S_IS_LOCKED -->
<span>{L_BUTTON_TOPIC_LOCKED}</span> {{ Icon('iconify', 'fa:lock', '', true, 'c-button-icon') }} <span>{L_BUTTON_TOPIC_LOCKED}</span> {{ Icon('font', 'lock', '', true, 'fas c-button-icon') }}
<!-- ELSE --> <!-- ELSE -->
<span>{L_BUTTON_POST_REPLY}</span> {{ Icon('iconify', 'fa:reply', '', true, 'c-button-icon') }} <span>{L_BUTTON_POST_REPLY}</span> {{ Icon('font', 'reply', '', true, 'fas c-button-icon') }}
<!-- ENDIF --> <!-- ENDIF -->
</a> </a>
<!-- ENDIF --> <!-- ENDIF -->
@ -50,10 +50,10 @@
<fieldset> <fieldset>
<input class="inputbox search tiny" type="search" name="keywords" id="search_keywords" size="20" placeholder="{L_SEARCH_TOPIC}" /> <input class="inputbox search tiny" type="search" name="keywords" id="search_keywords" size="20" placeholder="{L_SEARCH_TOPIC}" />
<button class="button button-search" type="submit" title="{L_SEARCH}"> <button class="button button-search" type="submit" title="{L_SEARCH}">
{{ Icon('iconify', 'fa:search', lang('SEARCH'), true, 'c-button-icon') }} {{ Icon('font', 'search', lang('SEARCH'), true, 'fas c-button-icon') }}
</button> </button>
<a href="{U_SEARCH}" class="button button-search-end" title="{L_SEARCH_ADV}"> <a href="{U_SEARCH}" class="button button-search-end" title="{L_SEARCH_ADV}">
{{ Icon('iconify', 'fa:cog', lang('SEARCH_ADV'), true, 'c-button-icon') }} {{ Icon('font', 'gear', lang('SEARCH_ADV'), true, 'fas c-button-icon') }}
</a> </a>
{S_SEARCH_LOCAL_HIDDEN_FIELDS} {S_SEARCH_LOCAL_HIDDEN_FIELDS}
</fieldset> </fieldset>
@ -149,7 +149,7 @@
<!-- EVENT viewtopic_body_avatar_after --> <!-- EVENT viewtopic_body_avatar_after -->
</div> </div>
<!-- EVENT viewtopic_body_post_author_before --> <!-- EVENT viewtopic_body_post_author_before -->
<!-- IF not postrow.U_POST_AUTHOR --><strong>{postrow.POST_AUTHOR_FULL}</strong><!-- ELSE -->{postrow.POST_AUTHOR_FULL}<!-- ENDIF --><!-- IF postrow.S_ONLINE and not postrow.S_POST_HIDDEN --> {{ Icon('iconify', 'fa:circle', lang('ONLINE'), true, 'c-online-icon') }}<!-- ENDIF --> <!-- IF not postrow.U_POST_AUTHOR --><strong>{postrow.POST_AUTHOR_FULL}</strong><!-- ELSE -->{postrow.POST_AUTHOR_FULL}<!-- ENDIF --><!-- IF postrow.S_ONLINE and not postrow.S_POST_HIDDEN --> {{ Icon('font', 'circle', lang('ONLINE'), true, 'fas c-online-icon') }}<!-- ENDIF -->
<!-- EVENT viewtopic_body_post_author_after --> <!-- EVENT viewtopic_body_post_author_after -->
</dt> </dt>
@ -180,7 +180,7 @@
<strong>{L_CONTACT}{L_COLON}</strong> <strong>{L_CONTACT}{L_COLON}</strong>
<div class="dropdown-container dropdown-left"> <div class="dropdown-container dropdown-left">
<a href="#" class="dropdown-trigger" title="{postrow.CONTACT_USER}"> <a href="#" class="dropdown-trigger" title="{postrow.CONTACT_USER}">
{{ Icon('iconify', 'mdi:comment-processing-outline', postrow.CONTACT_USER, true) }} {{ Icon('font', 'comment-dots', postrow.CONTACT_USER, true, 'far') }}
</a> </a>
<div class="dropdown"> <div class="dropdown">
<div class="pointer"><div class="pointer-inner"></div></div> <div class="pointer"><div class="pointer-inner"></div></div>
@ -194,19 +194,19 @@
<a href="<!-- IF postrow.contact.U_CONTACT -->{postrow.contact.U_CONTACT}<!-- ELSE -->{postrow.U_POST_AUTHOR}<!-- ENDIF -->" title="{postrow.contact.NAME}"<!-- IF $S_LAST_CELL --> class="last-cell"<!-- ENDIF --><!-- IF postrow.contact.ID eq 'jabber' --> onclick="popup(this.href, 750, 320); return false;"<!-- ENDIF -->> <a href="<!-- IF postrow.contact.U_CONTACT -->{postrow.contact.U_CONTACT}<!-- ELSE -->{postrow.U_POST_AUTHOR}<!-- ENDIF -->" title="{postrow.contact.NAME}"<!-- IF $S_LAST_CELL --> class="last-cell"<!-- ENDIF --><!-- IF postrow.contact.ID eq 'jabber' --> onclick="popup(this.href, 750, 320); return false;"<!-- ENDIF -->>
{% EVENT viewtopic_body_contact_icon_prepend %} {% EVENT viewtopic_body_contact_icon_prepend %}
{% if postrow.contact.ID == 'pm' %} {% if postrow.contact.ID == 'pm' %}
{{ Icon('iconify', 'mdi:comment-account-outline', '', true, 'contact-icon') }} {{ Icon('font', 'message', '', true, 'far contact-icon') }}
{% elseif postrow.contact.ID == 'email' %} {% elseif postrow.contact.ID == 'email' %}
{{ Icon('iconify', 'mdi:at', '', true, 'contact-icon') }} {{ Icon('font', 'at', '', true, 'fas contact-icon') }}
{% elseif postrow.contact.ID == 'phpbb_website' %} {% elseif postrow.contact.ID == 'phpbb_website' %}
{{ Icon('iconify', 'mdi:earth', '', true, 'contact-icon') }} {{ Icon('font', 'earth-americas', '', true, 'fas contact-icon') }}
{% elseif postrow.contact.ID == 'phpbb_facebook' %} {% elseif postrow.contact.ID == 'phpbb_facebook' %}
{{ Icon('iconify', 'mdi:facebook-box', '', true, 'contact-icon c-facebook-icon') }} {{ Icon('font', 'square-facebook', '', true, 'fab contact-icon c-facebook-icon') }}
{% elseif postrow.contact.ID == 'phpbb_twitter' %} {% elseif postrow.contact.ID == 'phpbb_twitter' %}
{{ Icon('iconify', 'mdi:twitter', '', true, 'contact-icon c-twitter-icon') }} {{ Icon('font', 'square-x-twitter', '', true, 'fab contact-icon c-twitter-icon') }}
{% elseif postrow.contact.ID == 'phpbb_skype' %} {% elseif postrow.contact.ID == 'phpbb_skype' %}
{{ Icon('iconify', 'mdi:skype', '', true, 'contact-icon c-skype-icon') }} {{ Icon('font', 'skype', '', true, 'fab contact-icon c-skype-icon') }}
{% elseif postrow.contact.ID == 'phpbb_youtube' %} {% elseif postrow.contact.ID == 'phpbb_youtube' %}
{{ Icon('iconify', 'mdi:youtube', '', true, 'contact-icon c-youtube-icon') }} {{ Icon('font', 'youtube', '', true, 'fab contact-icon c-youtube-icon') }}
{% else %} {% else %}
{{ Icon('svg', contact.ID, '', true, 'contact-icon') }} {{ Icon('svg', contact.ID, '', true, 'contact-icon') }}
{% endif %} {% endif %}
@ -261,42 +261,42 @@
{% if postrow.U_EDIT %} {% if postrow.U_EDIT %}
<li> <li>
<a href="{{ postrow.U_EDIT }}" title="{{ lang('EDIT_POST') }}" class="button button-icon-only"> <a href="{{ postrow.U_EDIT }}" title="{{ lang('EDIT_POST') }}" class="button button-icon-only">
{{ Icon('iconify', 'fa:pencil', lang('BUTTON_EDIT'), post_buttons_hide_text, 'c-button-icon') }} {{ Icon('font', 'pencil', lang('BUTTON_EDIT'), post_buttons_hide_text, 'fas c-button-icon') }}
</a> </a>
</li> </li>
{% endif %} {% endif %}
{% if postrow.U_DELETE %} {% if postrow.U_DELETE %}
<li> <li>
<a href="{{ postrow.U_DELETE }}" title="{{ lang('DELETE_POST') }}" class="button button-icon-only"> <a href="{{ postrow.U_DELETE }}" title="{{ lang('DELETE_POST') }}" class="button button-icon-only">
{{ Icon('iconify', 'fa:times', lang('BUTTON_DELETE'), post_buttons_hide_text, 'c-button-icon') }} {{ Icon('font', 'xmark', lang('BUTTON_DELETE'), post_buttons_hide_text, 'fas c-button-icon') }}
</a> </a>
</li> </li>
{% endif %} {% endif %}
{% if postrow.U_REPORT %} {% if postrow.U_REPORT %}
<li> <li>
<a href="{{ postrow.U_REPORT }}" title="{{ lang('REPORT_POST') }}" class="button button-icon-only"> <a href="{{ postrow.U_REPORT }}" title="{{ lang('REPORT_POST') }}" class="button button-icon-only">
{{ Icon('iconify', 'fa:exclamation', lang('BUTTON_REPORT'), post_buttons_hide_text, 'c-button-icon') }} {{ Icon('font', 'exclamation', lang('BUTTON_REPORT'), post_buttons_hide_text, 'fas c-button-icon') }}
</a> </a>
</li> </li>
{% endif %} {% endif %}
{% if postrow.U_WARN %} {% if postrow.U_WARN %}
<li> <li>
<a href="{{ postrow.U_WARN }}" title="{{ lang('WARN_USER') }}" class="button button-icon-only"> <a href="{{ postrow.U_WARN }}" title="{{ lang('WARN_USER') }}" class="button button-icon-only">
{{ Icon('iconify', 'fa:exclamation-triangle', lang('BUTTON_WARN'), post_buttons_hide_text, 'c-button-icon') }} {{ Icon('font', 'triangle-exclamation', lang('BUTTON_WARN'), post_buttons_hide_text, 'fas c-button-icon') }}
</a> </a>
</li> </li>
{% endif %} {% endif %}
{% if postrow.U_INFO %} {% if postrow.U_INFO %}
<li> <li>
<a href="{{ postrow.U_INFO }}" title="{{ lang('INFORMATION') }}" class="button button-icon-only"> <a href="{{ postrow.U_INFO }}" title="{{ lang('INFORMATION') }}" class="button button-icon-only">
{{ Icon('iconify', 'fa:info', lang('BUTTON_INFORMATION'), post_buttons_hide_text, 'c-button-icon') }} {{ Icon('font', 'info', lang('BUTTON_INFORMATION'), post_buttons_hide_text, 'fas c-button-icon') }}
</a> </a>
</li> </li>
{% endif %} {% endif %}
{% if postrow.U_QUOTE %} {% if postrow.U_QUOTE %}
<li> <li>
<a href="{{ postrow.U_QUOTE }}" title="{{ lang('REPLY_WITH_QUOTE') }}" class="button button-icon-only"> <a href="{{ postrow.U_QUOTE }}" title="{{ lang('REPLY_WITH_QUOTE') }}" class="button button-icon-only">
{{ Icon('iconify', 'fa:quote-left', lang('BUTTON_QUOTE'), post_buttons_hide_text, 'c-button-icon') }} {{ Icon('font', 'quote-left', lang('BUTTON_QUOTE'), post_buttons_hide_text, 'fas c-button-icon') }}
</a> </a>
</li> </li>
{% endif %} {% endif %}
@ -307,7 +307,7 @@
<li class="post-buttons-responsive-menu dropdown-container"> <li class="post-buttons-responsive-menu dropdown-container">
<a href="javascript:void(0);" class="button button-icon-only post-button-responsive dropdown-toggle"> <a href="javascript:void(0);" class="button button-icon-only post-button-responsive dropdown-toggle">
{{ Icon('iconify', 'fa:bars', '', true, 'c-button-icon') }} {{ Icon('font', 'bars', '', true, 'fas c-button-icon') }}
</a> </a>
<div class="dropdown"> <div class="dropdown">
<div class="pointer"> <div class="pointer">
@ -330,9 +330,9 @@
<p class="author"> <p class="author">
<a class="unread" href="{postrow.U_MINI_POST}" title="{postrow.MINI_POST}"> <a class="unread" href="{postrow.U_MINI_POST}" title="{postrow.MINI_POST}">
{% if postrow.S_UNREAD_POST %} {% if postrow.S_UNREAD_POST %}
<span>{{ Icon('iconify', 'fa:file', postrow.MINI_POST, true, 'c-topic-unread-icon') }}</span> <span>{{ Icon('font', 'file', postrow.MINI_POST, true, 'fas c-topic-unread-icon') }}</span>
{% else %} {% else %}
<span>{{ Icon('iconify', 'fa:file', postrow.MINI_POST, true, 'c-topic-icon') }}</span> <span>{{ Icon('font', 'file', postrow.MINI_POST, true, 'fas c-topic-icon') }}</span>
{% endif %} {% endif %}
</a> </a>
<span class="responsive-hide">{L_POST_BY_AUTHOR} <strong>{postrow.POST_AUTHOR_FULL}</strong> &raquo; </span><time datetime="{postrow.POST_DATE_RFC3339}">{postrow.POST_DATE}</time> <span class="responsive-hide">{L_POST_BY_AUTHOR} <strong>{postrow.POST_AUTHOR_FULL}</strong> &raquo; </span><time datetime="{postrow.POST_DATE_RFC3339}">{postrow.POST_DATE}</time>
@ -343,7 +343,7 @@
<!-- IF postrow.S_CAN_APPROVE --> <!-- IF postrow.S_CAN_APPROVE -->
<form method="post" class="mcp_approve" action="{postrow.U_APPROVE_ACTION}"> <form method="post" class="mcp_approve" action="{postrow.U_APPROVE_ACTION}">
<p class="post-notice unapproved"> <p class="post-notice unapproved">
<span>{{ Icon('iconify', 'fa:question', '', true, 'c-reported-icon') }}</span> <span>{{ Icon('font', 'circle-question', '', true, 'fas c-unapproved-icon') }}</span>
<strong>{L_POST_UNAPPROVED_ACTION}</strong> <strong>{L_POST_UNAPPROVED_ACTION}</strong>
<input class="button1 button button-form-bold" type="submit" value="{L_DISAPPROVE}" name="action[disapprove]" /> <input class="button1 button button-form-bold" type="submit" value="{L_DISAPPROVE}" name="action[disapprove]" />
<input class="button1 button button-form" type="submit" value="{L_APPROVE}" name="action[approve]" /> <input class="button1 button button-form" type="submit" value="{L_APPROVE}" name="action[approve]" />
@ -353,7 +353,7 @@
</form> </form>
<!-- ELSE --> <!-- ELSE -->
<p class="post-notice unapproved"> <p class="post-notice unapproved">
<span>{{ Icon('iconify', 'fa:exclamation', '', true, 'c-topic-reported-icon') }}</span> <span>{{ Icon('font', 'triangle-exclamation', '', true, 'fas c-topic-reported-icon') }}</span>
<strong>{L_POST_UNAPPROVED_EXPLAIN}</strong> <strong>{L_POST_UNAPPROVED_EXPLAIN}</strong>
</p> </p>
<!-- ENDIF --> <!-- ENDIF -->
@ -373,7 +373,7 @@
<!-- IF postrow.S_POST_REPORTED --> <!-- IF postrow.S_POST_REPORTED -->
<p class="post-notice reported"> <p class="post-notice reported">
<a href="{postrow.U_MCP_REPORT}">{{ Icon('iconify', 'fa:exclamation', '', true, 'c-topic-reported-icon') }}<strong>{L_POST_REPORTED}</strong></a> <a href="{postrow.U_MCP_REPORT}">{{ Icon('font', 'triangle-exclamation', '', true, 'fas c-topic-reported-icon') }}<strong>{L_POST_REPORTED}</strong></a>
</p> </p>
<!-- ENDIF --> <!-- ENDIF -->
@ -424,7 +424,7 @@
<div class="back2top"> <div class="back2top">
<!-- EVENT viewtopic_body_postrow_back2top_prepend --> <!-- EVENT viewtopic_body_postrow_back2top_prepend -->
<a href="#top" class="top" title="{L_BACK_TO_TOP}"> <a href="#top" class="top" title="{L_BACK_TO_TOP}">
{{ Icon('iconify', 'fa:chevron-circle-up', lang('BACK_TO_TOP'), false, 'c-top-icon') }} {{ Icon('font', 'circle-chevron-up', lang('BACK_TO_TOP'), false, 'fas c-top-icon') }}
</a> </a>
<!-- EVENT viewtopic_body_postrow_back2top_append --> <!-- EVENT viewtopic_body_postrow_back2top_append -->
</div> </div>
@ -448,9 +448,9 @@
<!-- IF not S_IS_BOT and S_DISPLAY_REPLY_INFO --> <!-- IF not S_IS_BOT and S_DISPLAY_REPLY_INFO -->
<a href="{U_POST_REPLY_TOPIC}" class="button" title="<!-- IF S_IS_LOCKED -->{L_TOPIC_LOCKED}<!-- ELSE -->{L_POST_REPLY}<!-- ENDIF -->"> <a href="{U_POST_REPLY_TOPIC}" class="button" title="<!-- IF S_IS_LOCKED -->{L_TOPIC_LOCKED}<!-- ELSE -->{L_POST_REPLY}<!-- ENDIF -->">
<!-- IF S_IS_LOCKED --> <!-- IF S_IS_LOCKED -->
<span>{L_BUTTON_TOPIC_LOCKED}</span> {{ Icon('iconify', 'fa:lock', '', true, 'c-button-icon') }} <span>{L_BUTTON_TOPIC_LOCKED}</span> {{ Icon('font', 'lock', '', true, 'fas c-button-icon') }}
<!-- ELSE --> <!-- ELSE -->
<span>{L_BUTTON_POST_REPLY}</span> {{ Icon('iconify', 'fa:reply', '', true, 'c-button-icon') }} <span>{L_BUTTON_POST_REPLY}</span> {{ Icon('font', 'reply', '', true, 'fas c-button-icon') }}
<!-- ENDIF --> <!-- ENDIF -->
</a> </a>
<!-- ENDIF --> <!-- ENDIF -->
@ -467,8 +467,8 @@
<!-- IF .quickmod --> <!-- IF .quickmod -->
<div class="quickmod dropdown-container dropdown-container-left dropdown-up dropdown-{S_CONTENT_FLOW_END} dropdown-button-control" id="quickmod"> <div class="quickmod dropdown-container dropdown-container-left dropdown-up dropdown-{S_CONTENT_FLOW_END} dropdown-button-control" id="quickmod">
<span title="{L_QUICK_MOD}" class="button button-secondary dropdown-trigger dropdown-select"> <span title="{L_QUICK_MOD}" class="button button-secondary dropdown-trigger dropdown-select">
{{ Icon('iconify', 'fa:gavel', lang('QUICK_MOD'), true, 'c-button-icon') }} {{ Icon('font', 'gavel', lang('QUICK_MOD'), true, 'fas c-button-icon') }}
<span class="caret">{{ Icon('iconify', 'fa:caret-down', '', true, 'c-button-icon') }}</span> <span class="caret">{{ Icon('font', 'caret-down', '', true, 'fas c-button-icon') }}</span>
</span> </span>
<div class="dropdown"> <div class="dropdown">
<div class="pointer"><div class="pointer-inner"></div></div> <div class="pointer"><div class="pointer-inner"></div></div>

View file

@ -1,8 +1,8 @@
<!-- IF not S_IS_BOT and (U_WATCH_TOPIC or U_BOOKMARK_TOPIC or U_BUMP_TOPIC or U_EMAIL_TOPIC or U_PRINT_TOPIC or S_DISPLAY_TOPIC_TOOLS) --> <!-- IF not S_IS_BOT and (U_WATCH_TOPIC or U_BOOKMARK_TOPIC or U_BUMP_TOPIC or U_EMAIL_TOPIC or U_PRINT_TOPIC or S_DISPLAY_TOPIC_TOOLS) -->
<div class="dropdown-container dropdown-button-control topic-tools"> <div class="dropdown-container dropdown-button-control topic-tools">
<span title="{L_TOPIC_TOOLS}" class="button button-secondary dropdown-trigger dropdown-select"> <span title="{L_TOPIC_TOOLS}" class="button button-secondary dropdown-trigger dropdown-select">
{{ Icon('iconify', 'fa:wrench', '', true, 'c-button-icon') }} {{ Icon('font', 'wrench', '', true, 'fas c-button-icon') }}
<span class="caret">{{ Icon('iconify', 'fa:caret-down', '', true, 'c-button-icon') }}</span> <span class="caret">{{ Icon('font', 'caret-down', '', true, 'fas c-button-icon') }}</span>
</span> </span>
<div class="dropdown"> <div class="dropdown">
<div class="pointer"><div class="pointer-inner"></div></div> <div class="pointer"><div class="pointer-inner"></div></div>
@ -12,11 +12,11 @@
<li> <li>
<a href="{U_WATCH_TOPIC}" class="watch-topic-link" title="{S_WATCH_TOPIC_TITLE}" data-ajax="toggle_link" data-toggle-text="{S_WATCH_TOPIC_TOGGLE}" data-toggle-url="{U_WATCH_TOPIC_TOGGLE}" data-update-all=".watch-topic-link"> <a href="{U_WATCH_TOPIC}" class="watch-topic-link" title="{S_WATCH_TOPIC_TITLE}" data-ajax="toggle_link" data-toggle-text="{S_WATCH_TOPIC_TOGGLE}" data-toggle-url="{U_WATCH_TOPIC_TOGGLE}" data-update-all=".watch-topic-link">
{% if S_WATCHING_TOPIC %} {% if S_WATCHING_TOPIC %}
{{ Icon('iconify', 'mdi:eye-minus-outline', '', true, 'c-watch-icon is-active') }} {{ Icon('font', 'bell-slash', '', true, 'far c-watch-icon is-active') }}
{{ Icon('iconify', 'mdi:eye-plus-outline', '', true, 'c-watch-icon') }} {{ Icon('font', 'bell', '', true, 'far c-watch-icon') }}
{% else %} {% else %}
{{ Icon('iconify', 'mdi:eye-plus-outline', '', true, 'c-watch-icon is-active') }} {{ Icon('font', 'bell', '', true, 'far c-watch-icon is-active') }}
{{ Icon('iconify', 'mdi:eye-minus-outline', '', true, 'c-watch-icon') }} {{ Icon('font', 'bell-slash', '', true, 'far c-watch-icon') }}
{% endif %} {% endif %}
<span>{S_WATCH_TOPIC_TITLE}</span> <span>{S_WATCH_TOPIC_TITLE}</span>
</a> </a>
@ -25,28 +25,28 @@
<!-- IF U_BOOKMARK_TOPIC --> <!-- IF U_BOOKMARK_TOPIC -->
<li> <li>
<a href="{U_BOOKMARK_TOPIC}" class="bookmark-link" title="{L_BOOKMARK_TOPIC}" data-ajax="alt_text" data-alt-text="{S_BOOKMARK_TOGGLE}" data-update-all=".bookmark-link"> <a href="{U_BOOKMARK_TOPIC}" class="bookmark-link" title="{L_BOOKMARK_TOPIC}" data-ajax="alt_text" data-alt-text="{S_BOOKMARK_TOGGLE}" data-update-all=".bookmark-link">
{{ Icon('iconify', 'mdi:bookmark-plus-outline', S_BOOKMARK_TOPIC, false) }} {{ Icon('font', 'bookmark', S_BOOKMARK_TOPIC, false, 'far') }}
</a> </a>
</li> </li>
<!-- ENDIF --> <!-- ENDIF -->
<!-- IF U_BUMP_TOPIC --> <!-- IF U_BUMP_TOPIC -->
<li> <li>
<a href="{U_BUMP_TOPIC}" title="{L_BUMP_TOPIC}" data-ajax="true"> <a href="{U_BUMP_TOPIC}" title="{L_BUMP_TOPIC}" data-ajax="true">
{{ Icon('iconify', 'mdi:update', lang('BUMP_TOPIC'), false) }} {{ Icon('font', 'turn-up', lang('BUMP_TOPIC'), false) }}
</a> </a>
</li> </li>
<!-- ENDIF --> <!-- ENDIF -->
<!-- IF U_EMAIL_TOPIC --> <!-- IF U_EMAIL_TOPIC -->
<li> <li>
<a href="{U_EMAIL_TOPIC}" title="{L_EMAIL_TOPIC}"> <a href="{U_EMAIL_TOPIC}" title="{L_EMAIL_TOPIC}">
{{ Icon('iconify', 'mdi:send-circle-outline', lang('EMAIL_TOPIC'), false) }} {{ Icon('font', 'envelope', lang('EMAIL_TOPIC'), false, 'far') }}
</a> </a>
</li> </li>
<!-- ENDIF --> <!-- ENDIF -->
<!-- IF U_PRINT_TOPIC --> <!-- IF U_PRINT_TOPIC -->
<li> <li>
<a href="{U_PRINT_TOPIC}" title="{L_PRINT_TOPIC}" accesskey="p"> <a href="{U_PRINT_TOPIC}" title="{L_PRINT_TOPIC}" accesskey="p">
{{ Icon('iconify', 'ic:outline-print', lang('PRINT_TOPIC'), false) }} {{ Icon('font', 'print', lang('PRINT_TOPIC'), false) }}
</a> </a>
</li> </li>
<!-- ENDIF --> <!-- ENDIF -->

View file

@ -163,6 +163,12 @@
float: right; float: right;
} }
.rtl .breadcrumbs .crumb:before {
font-weight: bold;
padding: 0 0.5em;
content: "\2039";
}
/* Table styles /* Table styles
---------------------------------------- */ ---------------------------------------- */
.rtl table.table1 thead th { .rtl table.table1 thead th {

View file

@ -199,7 +199,8 @@ dl.details dd {
/* icon styles */ /* icon styles */
.icon.icon-blue, /* DEPRECATED 4.0 */ .icon.icon-blue, /* DEPRECATED 4.0 */
a:hover .icon.icon-blue, /* DEPRECATED 4.0 */ a:hover .icon.icon-blue, /* DEPRECATED 4.0 */
.read { .read,
.c-unapproved-icon {
color: #0059b3; color: #0059b3;
} }
@ -219,8 +220,7 @@ a:hover .icon.icon-green, /* DEPRECATED 4.0 */
a:hover .icon.icon-red, /* DEPRECATED 4.0 */ a:hover .icon.icon-red, /* DEPRECATED 4.0 */
.c-topic-reported-icon, .c-topic-reported-icon,
.c-topic-unread-icon, .c-topic-unread-icon,
.c-warning-icon, .c-warning-icon {
.c-unapproved-icon {
color: #d41142; color: #d41142;
} }
@ -283,7 +283,7 @@ a:hover .icon.icon-black, /* DEPRECATED 4.0 */
} }
.c-twitter-icon { .c-twitter-icon {
color: #1da1f2; color: #000000;
} }
.c-skype-icon { .c-skype-icon {

View file

@ -621,7 +621,7 @@ a.header-avatar img {
.breadcrumbs .crumb:before { .breadcrumbs .crumb:before {
font-weight: bold; font-weight: bold;
padding: 0 0.5em; padding: 0 0.5em;
content: "\2039"; content: "\203A";
} }
.breadcrumbs .crumb:first-child:before { .breadcrumbs .crumb:first-child:before {
@ -964,8 +964,7 @@ fieldset.fields1 dl.pmlist dd.recipients {
} }
.pagination li.page-jump a i { .pagination li.page-jump a i {
font-size: 21px; font-size: 16px;
line-height: 21px;
} }
.pagination .arrow a { .pagination .arrow a {

View file

@ -504,6 +504,7 @@ dd .signature {
/* Jump to post link for now */ /* Jump to post link for now */
ul.searchresults { ul.searchresults {
font-size: 12px;
text-align: right; text-align: right;
clear: both; clear: both;
list-style: none; list-style: none;

View file

@ -14,7 +14,6 @@ svg {
vertical-align: middle !important; vertical-align: middle !important;
width: 14px; width: 14px;
height: 14px; height: 14px;
margin-top: -4px;
} }
.o-icon-src-mdi, .o-icon-src-mdi,
@ -28,9 +27,8 @@ svg {
} }
.o-icon-font { .o-icon-font {
font-family: "Font Awesome 5 Free", "Font Awesome 5 Brands"; font-family: "Font Awesome 6 Free", "Font Awesome 6 Brands";
font-size: 14px; font-size: 14px;
font-weight: normal;
font-style: normal; font-style: normal;
font-variant: normal; font-variant: normal;
-webkit-font-smoothing: antialiased; -webkit-font-smoothing: antialiased;
@ -40,9 +38,18 @@ svg {
/* stylelint-disable order/properties-order */ /* stylelint-disable order/properties-order */
-moz-osx-font-smoothing: grayscale; -moz-osx-font-smoothing: grayscale;
/* stylelint-enable order/properties-order */ /* stylelint-enable order/properties-order */
padding: 2px;
text-rendering: auto; /* optimizelegibility throws things off #1094 */ text-rendering: auto; /* optimizelegibility throws things off #1094 */
} }
.o-icon-baseline {
vertical-align: baseline !important;
}
.format-buttons .fa-fw {
width: 125%;
}
.o-icon + span, .o-icon + span,
span + .o-icon { span + .o-icon {
padding-left: 4px; padding-left: 4px;
@ -65,6 +72,7 @@ blockquote cite:before,
.c-forum-row-icon, .c-forum-row-icon,
.c-notification-check-icon { .c-notification-check-icon {
font-size: 20px;
width: 20px; width: 20px;
height: 20px; height: 20px;
margin-top: 0; margin-top: 0;
@ -119,9 +127,7 @@ blockquote cite:before,
---------------------------------------- */ ---------------------------------------- */
.contact-icon { .contact-icon {
background-repeat: no-repeat; background-repeat: no-repeat;
display: block; display: inline-block;
width: 24px;
height: 24px;
} }
.c-button-icon { .c-button-icon {

View file

@ -1,143 +0,0 @@
<?php
/**
*
* This file is part of the phpBB Forum Software package.
*
* @copyright (c) phpBB Limited <https://www.phpbb.com>
* @license GNU General Public License, version 2 (GPL-2.0)
*
* For full copyright and license information, please see
* the docs/CREDITS.txt file.
*
*/
namespace phpbb\tests\unit\assets;
class iconify_bundler_test extends \phpbb_test_case
{
/** @var array Log content */
protected $log_content = [];
/** @var \phpbb\assets\iconify_bundler */
protected $bundler;
public function setUp(): void
{
global $phpbb_root_path;
$log = $this->getMockBuilder('\phpbb\log\dummy')
->onlyMethods(['add'])
->getMock();
$log->method('add')
->willReturnCallback(function ($mode, $user_id, $log_ip, $log_operation, $log_time = false, $additional_data = array()) {
$this->log_content[] = $log_operation;
});
$this->bundler = new \phpbb\assets\iconify_bundler($log, $phpbb_root_path);
}
public function data_test_generate_bundle()
{
return [
[
['fa:address-card-o'],
['"prefix":"fa"', '"address-card-o"'],
],
[
['fa:address-card-o', 'ic:baseline-credit-card'],
['"prefix":"fa"', '"address-card-o"', '"prefix":"ic"', '"baseline-credit-card"'],
],
[
['fa:address-card-o', 'fa:foo-bar'],
['"prefix":"fa"', '"address-card-o"'],
['LOG_ICON_INVALID'],
],
[
['fa:address-card-o', 'ic:baseline-credit-card', 'ic:baseline-credit-card'],
['"prefix":"fa"', '"address-card-o"', '"prefix":"ic"', '"baseline-credit-card"'],
],
[
['fa:address-card-o', 'ic:baseline-credit-card', 'ic:baseline-add-ic-call'],
['"prefix":"fa"', '"address-card-o"', '"prefix":"ic"', '"baseline-credit-card"', '"baseline-add-ic-call"'],
],
[
['fa:address-card-o', 'fa:bell', 'ic:baseline-credit-card', 'ic:baseline-add-ic-call'],
['"prefix":"fa"', '"address-card-o"', '"bell"', '"prefix":"ic"', '"baseline-credit-card"', '"baseline-add-ic-call"'],
],
[
['@test'],
[],
['LOG_ICON_INVALID'],
],
[
['fa:address-foo-o'],
['"prefix":"fa"', '"icons":[]'],
['LOG_ICON_INVALID'],
],
[
['foo:bar'],
[],
['LOG_ICON_COLLECTION_INVALID']
],
[
['@iconify:fa:address-card-o'],
['"prefix":"fa"', '"address-card-o"'],
],
[
['@iconify:someother:fa:address-card-o'],
[],
['LOG_ICON_INVALID'],
],
[
['iconify:fa:address-card-o'],
['"prefix":"fa"', '"address-card-o"'],
],
[
['iconify:fa:fa:address-card-o'],
[],
['LOG_ICON_INVALID'],
],
[
['test'],
[],
['LOG_ICON_INVALID'],
],
[
[''],
[],
['LOG_ICON_INVALID'],
],
[
['fa-address-card-o'],
['"prefix":"fa"', '"address-card-o"'],
],
];
}
/**
* @dataProvider data_test_generate_bundle
*/
public function test_generate_bundle($icons, $expected, $log_content = [])
{
$this->bundler->add_icons($icons);
$bundle = $this->bundler->run();
foreach ($expected as $expected_part)
{
$this->assertStringContainsString($expected_part, $bundle, 'Failed asserting that generated bundle contains ' . $expected_part);
}
if (!count($expected))
{
$this->assertEquals($bundle, '', 'Failed asserting that generated bundle is empty');
}
if (count($log_content))
{
$this->assertEquals($this->log_content, $log_content, 'Failed asserting that log content is correct');
}
else
{
$this->assertEmpty($this->log_content, 'Failed asserting that log content is empty');
}
}
}

View file

@ -116,9 +116,7 @@ abstract class phpbb_controller_common_helper_route extends phpbb_database_test_
$container = new phpbb_mock_container_builder(); $container = new phpbb_mock_container_builder();
$container->setParameter('core.environment', PHPBB_ENVIRONMENT); $container->setParameter('core.environment', PHPBB_ENVIRONMENT);
$cache_path = $phpbb_root_path . 'cache/twig'; $cache_path = $phpbb_root_path . 'cache/twig';
$log = new \phpbb\log\dummy(); $assets_bag = new \phpbb\template\assets_bag();
$iconify_bundler = new \phpbb\assets\iconify_bundler($log, $phpbb_root_path);
$assets_bag = new \phpbb\template\assets_bag($iconify_bundler);
$context = new \phpbb\template\context(); $context = new \phpbb\template\context();
$loader = new \phpbb\template\twig\loader(''); $loader = new \phpbb\template\twig\loader('');
$twig = new \phpbb\template\twig\environment( $twig = new \phpbb\template\twig\environment(

View file

@ -37,4 +37,5 @@ services:
- ~ - ~
- ~ - ~
- ~ - ~
- ~
- [] - []

View file

@ -34,4 +34,5 @@ services:
- ~ - ~
- ~ - ~
- ~ - ~
- ~
- [] - []

View file

@ -34,4 +34,5 @@ services:
- ~ - ~
- ~ - ~
- ~ - ~
- ~
- [] - []

View file

@ -26,4 +26,5 @@ services:
- ~ - ~
- ~ - ~
- ~ - ~
- ~
- [] - []

View file

@ -66,9 +66,7 @@ class phpbb_email_parsing_test extends phpbb_test_case
); );
$phpbb_container->set('ext.manager', $extension_manager); $phpbb_container->set('ext.manager', $extension_manager);
$log = new \phpbb\log\dummy(); $assets_bag = new \phpbb\template\assets_bag();
$iconify_bundler = new \phpbb\assets\iconify_bundler($log, $phpbb_root_path);
$assets_bag = new \phpbb\template\assets_bag($iconify_bundler);
$phpbb_container->set('assets.bag', $assets_bag); $phpbb_container->set('assets.bag', $assets_bag);
$context = new \phpbb\template\context(); $context = new \phpbb\template\context();

View file

@ -67,8 +67,7 @@ class phpbb_extension_metadata_manager_test extends phpbb_database_test_case
$this->phpEx $this->phpEx
); );
$log = new \phpbb\log\dummy(); $log = new \phpbb\log\dummy();
$iconify_bundler = new \phpbb\assets\iconify_bundler($log, $this->phpbb_root_path); $assets_bag = new \phpbb\template\assets_bag();
$assets_bag = new \phpbb\template\assets_bag($iconify_bundler);
$twig = new \phpbb\template\twig\environment( $twig = new \phpbb\template\twig\environment(
$assets_bag, $assets_bag,
$this->config, $this->config,

View file

@ -96,8 +96,7 @@ class phpbb_template_extension_test extends phpbb_template_template_test_case
$context = new \phpbb\template\context(); $context = new \phpbb\template\context();
$loader = new \phpbb\template\twig\loader([]); $loader = new \phpbb\template\twig\loader([]);
$log = new \phpbb\log\dummy(); $log = new \phpbb\log\dummy();
$iconify_bundler = new \phpbb\assets\iconify_bundler($log, $phpbb_root_path); $assets_bag = new \phpbb\template\assets_bag();
$assets_bag = new \phpbb\template\assets_bag($iconify_bundler);
$twig = new \phpbb\template\twig\environment( $twig = new \phpbb\template\twig\environment(
$assets_bag, $assets_bag,
$config, $config,
@ -295,7 +294,7 @@ class phpbb_template_extension_test extends phpbb_template_template_test_case
[ [
'ICON_PHONE' => 'Phone icon', 'ICON_PHONE' => 'Phone icon',
], ],
'<i class="o-icon o-icon-font fa-phone"></i><span>Phone icon</span>', '<i class="o-icon o-icon-font fa-fw fa-phone fas"></i><span>Phone icon</span>',
], ],
/** Font: all options */ /** Font: all options */
@ -314,7 +313,7 @@ class phpbb_template_extension_test extends phpbb_template_template_test_case
[ [
'ICON_PENCIL' => 'Pencil icon', 'ICON_PENCIL' => 'Pencil icon',
], ],
'<i class="o-icon o-icon-font fa-pencil a-class another-class" title="Pencil icon" aria-hidden="true" data-attr-1="true" data-attr-2="two"></i> '<i class="o-icon o-icon-font fa-fw fa-pencil a-class another-class" title="Pencil icon" aria-hidden="true" data-attr-1="true" data-attr-2="two"></i>
<span class="sr-only">Pencil icon</span>' <span class="sr-only">Pencil icon</span>'
], ],
/** Font: icons array */ /** Font: icons array */
@ -336,7 +335,7 @@ class phpbb_template_extension_test extends phpbb_template_template_test_case
[ [
'ICON_TOPIC' => 'Topic icon', 'ICON_TOPIC' => 'Topic icon',
], ],
'<i class="o-icon o-icon-font fa-lock"></i> '<i class="o-icon o-icon-font fa-fw fa-lock fas"></i>
<span>Topic icon</span>', <span>Topic icon</span>',
], ],
/** Font: icons array with no key for the default */ /** Font: icons array with no key for the default */
@ -358,40 +357,9 @@ class phpbb_template_extension_test extends phpbb_template_template_test_case
[ [
'ICON_TOPIC' => 'Topic icon', 'ICON_TOPIC' => 'Topic icon',
], ],
'<i class="o-icon o-icon-font fa-file"></i> '<i class="o-icon o-icon-font fa-fw fa-file fas"></i>
<span>Topic icon</span>', <span>Topic icon</span>',
], ],
/** Iconify: default */
[
[
'type' => 'iconify',
'icon' => 'fa:phone',
'title' => '',
'hidden' => false,
'classes' => '',
'attributes' => [],
],
[],
'<i class="iconify o-icon-src-fa o-icon" data-icon="fa:phone" data-inline="true"></i>',
],
/** Iconify: all options */
[
[
'type' => 'iconify',
'icon' => 'mdi:pencil',
'title' => 'ICON_PENCIL',
'hidden' => true,
'classes' => 'icon-lg',
'attributes' => [
'style' => 'color: #12a3eb;',
],
],
[
'ICON_PENCIL' => 'Pencil icon',
],
'<i class="iconify o-icon-src-mdi o-icon icon-lg" title="Pencil icon" aria-hidden="true" data-icon="mdi:pencil" data-inline="true" style="color: #12a3eb;"></i>
<span class="sr-only">Pencil icon</span>',
],
/** PNG: default */ /** PNG: default */
[ [
[ [

View file

@ -59,8 +59,7 @@ class phpbb_template_allfolder_test extends phpbb_template_template_test_case
$context = new \phpbb\template\context(); $context = new \phpbb\template\context();
$loader = new \phpbb\template\twig\loader(''); $loader = new \phpbb\template\twig\loader('');
$log = new \phpbb\log\dummy(); $log = new \phpbb\log\dummy();
$iconify_bundler = new \phpbb\assets\iconify_bundler($log, $phpbb_root_path); $assets_bag = new \phpbb\template\assets_bag();
$assets_bag = new \phpbb\template\assets_bag($iconify_bundler);
$twig = new \phpbb\template\twig\environment( $twig = new \phpbb\template\twig\environment(
$assets_bag, $assets_bag,
$config, $config,

Some files were not shown because too many files have changed in this diff Show more