Skip to content

Commit 2fa50b0

Browse files
committed
Feature: добавлены стили кнопок (default, minimal, gradient, outlined, floating)
1 parent cb74b35 commit 2fa50b0

File tree

8 files changed

+413
-25
lines changed

8 files changed

+413
-25
lines changed

jllike/elements/css/sortable.css

Lines changed: 59 additions & 15 deletions
Large diffs are not rendered by default.

jllike/elements/js/preview.js

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,9 @@
2121

2222
// Настройки для отслеживания
2323
watchedFields: {
24+
'jform_params_button_style': 'buttonStyle',
2425
'jform_params_position_content': 'position',
25-
'jform_params_btn_border_radius': 'borderRadius',
26+
'jform_params_btn_border_radius': 'borderRadius',
2627
'jform_params_btn_dimensions': 'dimensions',
2728
'jform_params_btn_margin': 'margin',
2829
'jform_params_font_size': 'fontSize',
@@ -177,14 +178,15 @@
177178
// Основное обновление превью
178179
updatePreview: function() {
179180
if (!this.previewSample) return;
180-
181+
181182
this.showUpdating();
182-
183+
183184
var styles = this.collectCurrentStyles();
184185
this.applyStylesToPreview(styles);
185186
this.updateButtonText();
186187
this.updateButtonPositioning();
187-
188+
this.updateButtonStyle();
189+
188190
setTimeout(this.hideUpdating.bind(this), 200);
189191
},
190192

@@ -314,6 +316,24 @@
314316
});
315317
},
316318

319+
// Обновление стиля кнопок
320+
updateButtonStyle: function() {
321+
if (!this.previewSample) return;
322+
323+
var buttonStyle = this.getFieldValue('jform_params_button_style', 'default');
324+
325+
// Удаляем все существующие классы стилей
326+
var styleClasses = ['jllike-style-minimal', 'jllike-style-gradient', 'jllike-style-outlined', 'jllike-style-floating'];
327+
for (var i = 0; i < styleClasses.length; i++) {
328+
this.previewSample.classList.remove(styleClasses[i]);
329+
}
330+
331+
// Добавляем новый класс стиля, если не default
332+
if (buttonStyle !== 'default') {
333+
this.previewSample.classList.add('jllike-style-' + buttonStyle);
334+
}
335+
},
336+
317337
// Получение значения поля формы
318338
getFieldValue: function(fieldId, defaultValue) {
319339
var field = document.getElementById(fieldId);

jllike/elements/preview.php

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,12 @@ private function applyFrontendStyles()
139139

140140
private function getPreviewHTML()
141141
{
142+
// Получаем стиль кнопок
143+
$plugin = PluginHelper::getPlugin('content', 'jllike');
144+
$params = new Registry($plugin->params);
145+
$buttonStyle = $params->get('button_style', 'default');
146+
$styleClass = $buttonStyle !== 'default' ? ' jllike-style-' . $buttonStyle : '';
147+
142148
$html = '
143149
<div class="preview-widget-container" id="jllike-preview-widget">
144150
<div class="preview-header">
@@ -150,9 +156,9 @@ private function getPreviewHTML()
150156
</button>
151157
</div>
152158
</div>
153-
159+
154160
<div class="preview-content" id="preview-content">
155-
<div class="jllikeproSharesContayner preview-sample" id="preview-sample">
161+
<div class="jllikeproSharesContayner preview-sample' . $styleClass . '" id="preview-sample">
156162
<input type="hidden" class="link-to-share" value="https://example.com"/>
157163
<input type="hidden" class="share-title" value="' . Text::_('PLG_JLLIKEPRO_PREVIEW_SAMPLE_TITLE') . '"/>
158164
<input type="hidden" class="share-image" value=""/>

jllike/helper.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,9 +169,13 @@ function ShowIn($id, $link = '', $title = '', $image = '', $desc = '', $enable_o
169169
ksort($providers);
170170
reset($providers);
171171

172+
// Получаем стиль кнопок
173+
$buttonStyle = $this->params->get('button_style', 'default');
174+
$styleClass = $buttonStyle !== 'default' ? ' jllike-style-' . $buttonStyle : '';
175+
172176
$scriptPage = '';
173177
$scriptPage .= <<<HTML
174-
<div class="jllikeproSharesContayner jllikepro_{$id}">
178+
<div class="jllikeproSharesContayner jllikepro_{$id}{$styleClass}">
175179
<input type="hidden" class="link-to-share" id="link-to-share-$id" value="$link"/>
176180
<input type="hidden" class="share-title" id="share-title-$id" value="$title"/>
177181
<input type="hidden" class="share-image" id="share-image-$id" value="$image"/>

jllike/jllike.xml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -296,6 +296,19 @@
296296
label="PLG_JLLIKEPRO_PREVIEW_WIDGET"
297297
description="PLG_JLLIKEPRO_PREVIEW_WIDGET_DESC"
298298
/>
299+
<field
300+
name="button_style"
301+
type="list"
302+
default="default"
303+
label="PLG_JLLIKEPRO_BUTTON_STYLE"
304+
description="PLG_JLLIKEPRO_BUTTON_STYLE_DESC"
305+
>
306+
<option value="default">PLG_JLLIKEPRO_STYLE_DEFAULT</option>
307+
<option value="minimal">PLG_JLLIKEPRO_STYLE_MINIMAL</option>
308+
<option value="gradient">PLG_JLLIKEPRO_STYLE_GRADIENT</option>
309+
<option value="outlined">PLG_JLLIKEPRO_STYLE_OUTLINED</option>
310+
<option value="floating">PLG_JLLIKEPRO_STYLE_FLOATING</option>
311+
</field>
299312
<field
300313
name="position_content"
301314
type="radio"

0 commit comments

Comments
 (0)