Новости Joomla

Joomla REST API без прав суперадминистратора. RBAC в Joomla

Joomla REST API без прав суперадминистратора. RBAC в Joomla

👩‍💻 Joomla REST API без прав суперадминистратора. RBAC в Joomla.На канале известного французского разработчика и специалиста по Joomla REST API Alexandre ELISÉ вышло новое видео.RBAC (Role-Based Access Control) - это управление доступом на основе ролей, метод управления доступом к ресурсам, основанный на назначении ролей пользователям. Вместо назначения прав каждому пользователю точечно права доступа группируются по ролям, а пользователи получают доступ к ресурсам уже в зависимости от своей роли. В контексте Joomla и REST API он может даже мешать работе: без авторизованного пользователя вы не можете даже показать контент. В видео показано как решить данную проблему. Создаётся "технический пользователь", которому разрешается просматривать контент, но не разрешено создавать, редактировать, удалять и т.д. И все запросы к REST API идут с использованием его токена. [fr-FR] Services Web API Joomla SANS être Super Admin RBAC natif avec Joomla@joomlafeed #joomla #разработка #rest

InterLinked - плагин автоматической внутренней перелинковки для Joomla

InterLinked - плагин автоматической внутренней перелинковки для Joomla

👩‍💻 InterLinked - плагин автоматической внутренней перелинковки для Joomla.Несвязанные статьи - это молчаливый убийца привлекательности вашего сайта на Joomla, который заставляет читателей сворачивать работу и подрывает эффективность вашего SEO. Content - InterLinked - это бесплатный, проверенный в боях плагин, который кладет конец этой бессмыслице, автоматически генерируя ссылки на основе ключевых слов между статьями на вашем сайте Joomla 5. Он создает сеть связей, используя ключевые слова статей (metakey) и ассоциации категорий, с настраиваемыми всплывающими подсказками, целевыми объектами ссылок и классами CSS, сохраняя при этом существующие ссылки и повышая производительность за счет кэширования. Кроме того, ссылки со временем меняются по мере того, как в новых статьях используются ключевые слова, что делает ваш контент свежим и актуальным.Возможности.- автоматическая перелинковка на основе значения meta-keywords материалов- встроенная поддержка материалов Joomla- пользовательские ассоциации категорий для создания ссылок (например "Блог" к "Учбеникам")- показ всплывающих подсказок к автоматическим ссылкам (опционально)- настраиваемый атрибут target для ссылок.- указание CSS класса для стилизации ссылок- кэширование совпадений ключевых слов и их ассоциаций- учёт существующих тегов <a> во избежание дублирующих ссылок- автоматическое добавление новых ссылок при появлении новых ассоциаций- веб-доступность: ARIA для ссылок с target="_blank".Плагин бесплатный. Заявлена поддержка Joomla 4 и Joomla 5.Joomla Extensions DirectoryСтраница расширенияСкачать@joomlafeed#joomla #расширения #seo

joomLab Gallery - плагин галереи изображений для Joomla

👩‍💻 joomLab Gallery - плагин галереи изображений для Joomla.Плагин joomLab Gallery позволит Вам добавлять в любой материал неограниченное количество галерей, а главное удобно управлять файлами и эффектами в каждой галерее.Плагин использует популярны скрипты Swiper.js и FancyBox. Первый для крутой организации и эффектов галерей, а второй для красивого и функционального показа оригинальных изображений на Вашем сайте.На данный момент плагин имеет 10 макетов вывода - это 10 различных эффектов галерей и Вы можете совмещать все 10 в 1 материале.Плагин позволяет гибко настраивать индивидуально каждую галерею в материале. Вы можете выбрать макет, эффекты и даже можете управлять функциями всплывающего окна изображения.Недостатки.Такой вид реализации не предусматривает выбор изображения на сервере. Т.е. Вы не можете выбрать уже добавленное фото, только загружать заново. Плагин не предоставляет возможности доступа к медиа-менеджеру.Плагин бесплатный. Разработчик - участник нашего сообщества Александр Новиков (@pro-portal).Страница расширения@joomlafeed#joomla #расширения

0 Пользователей и 1 Гость просматривают эту тему.
  • 11 Ответов
  • 1735 Просмотров
*

voron8787

  • Осваиваюсь на форуме
  • 33
  • 0 / 0
Ребята помогите пожалуйста.
Мне нужно чтобы счетчик начинал отсчитывать ежедневно в 8 часов вечера и заканчивал в это же время. И потом повторялся.
код индекса
Код
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru">
<head>
<script language="Javascript" type="text/javascript" src="js/jquery-1.4.1.js"></script>
<script language="Javascript" type="text/javascript" src="js/jquery.lwtCountdown-0.9.5.js"></script>
<script language="Javascript" type="text/javascript" src="js/misc.js"></script>
<link rel="Stylesheet" type="text/css" href="style/dark.css"></link>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>

<body>

<div id="container">
<!-- Начало панели счетчика -->
<div id="countdown_dashboard">
<div class="dash weeks_dash">
<span class="dash_title">недель</span>
<div class="digit">0</div>
<div class="digit">0</div>
</div>

<div class="dash days_dash">
<span class="dash_title">дней</span>
<div class="digit">0</div>
<div class="digit">0</div>
</div>

<div class="dash hours_dash">
<span class="dash_title">часов</span>
<div class="digit">0</div>
<div class="digit">0</div>
</div>

<div class="dash minutes_dash">
<span class="dash_title">минут</span>
<div class="digit">0</div>
<div class="digit">0</div>
</div>

<div class="dash seconds_dash">
<span class="dash_title">секунд</span>
<div class="digit">0</div>
<div class="digit">0</div>
</div>

</div>
<!-- Завершение панели счетчика -->


<script language="javascript" type="text/javascript">
jQuery(document).ready(function() {
$('#countdown_dashboard').countDown({
targetDate: {
'day': 21,
'month': 12,
'year': 2014,
'hour': 17,
'min': 34,
'sec': 15 }
});

});
</script>

</div>
</body>

</html>

код первого ява скрипта misc.js
Код
function email_focus() {
if ($(this).val() == 'your@email.com') {
$(this).val('')
$(this).removeClass('faded');
}
}

function email_blur() {
if ($(this).val() == '') {
$(this).val('your@email.com')
$(this).addClass('faded');
}
}

function subscribe_submit() {
email = $('#email_field').val();

$.post('subscribe.php?json=1', $('#subscribe_form').serialize(), subscribe_result, 'json');
$('#subscribe_button').attr("disabled","disabled");
$('.form_message').fadeOut('fast');
$('#loading').fadeIn('fast');
return false;
}

function subscribe_result(data) {
$('#loading').hide();
if (data.error) {
display_message(data.error);
} else {
display_message(data.info, 'info')
}
$('#subscribe_button').removeAttr("disabled");
}

function display_message(msg, type) {

if (!type) type = 'error';

if (type == 'error') {
$('#error_message').html(msg).fadeIn('slow');
setTimeout('hide_error()', 4000);
} else {
$('#error_message').hide();
$('#info_message').html(msg).fadeIn('slow');
}
}

function hide_error() {
$('#error_message').fadeOut('slow');
}
код второго яваскрипта jquery.lwtCountdown-0.9.5
Код
/*!
 * jQuery Countdown plugin v0.9.5
 * http://www.littlewebthings.com/projects/countdown/
 *
 * Copyright 2010, Vassilis Dourdounis
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 */
(function($){

$.fn.countDown = function (options) {

config = {};

$.extend(config, options);

diffSecs = this.setCountDown(config);

$('#' + $(this).attr('id') + ' .digit').html('<div class="top"></div><div class="bottom"></div>');
$(this).doCountDown($(this).attr('id'), diffSecs, 500);

if (config.onComplete)
{
$.data($(this)[0], 'callback', config.onComplete);
}
if (config.omitWeeks)
{
$.data($(this)[0], 'omitWeeks', config.omitWeeks);
}
return this;

};

$.fn.stopCountDown = function () {
clearTimeout($.data(this[0], 'timer'));
};

$.fn.startCountDown = function () {
this.doCountDown($(this).attr('id'),$.data(this[0], 'diffSecs'), 500);
};

$.fn.setCountDown = function (options) {
var targetTime = new Date();

if (options.targetDate)
{
targetTime.setDate(options.targetDate.day);
targetTime.setMonth(options.targetDate.month-1);
targetTime.setFullYear(options.targetDate.year);
targetTime.setHours(options.targetDate.hour);
targetTime.setMinutes(options.targetDate.min);
targetTime.setSeconds(options.targetDate.sec);
}
else if (options.targetOffset)
{
targetTime.setDate(options.targetOffset.day + targetTime.getDate());
targetTime.setMonth(options.targetOffset.month + targetTime.getMonth());
targetTime.setFullYear(options.targetOffset.year + targetTime.getFullYear());
targetTime.setHours(options.targetOffset.hour + targetTime.getHours());
targetTime.setMinutes(options.targetOffset.min + targetTime.getMinutes());
targetTime.setSeconds(options.targetOffset.sec + targetTime.getSeconds());
}

var nowTime = new Date();

diffSecs = Math.floor((targetTime.valueOf()-nowTime.valueOf())/1000);

$.data(this[0], 'diffSecs', diffSecs);

return diffSecs;
};

$.fn.doCountDown = function (id, diffSecs, duration) {
$this = $('#' + id);
if (diffSecs <= 0)
{
diffSecs = 0;
if ($.data($this[0], 'timer'))
{
clearTimeout($.data($this[0], 'timer'));
}
}

secs = diffSecs % 60;
mins = Math.floor(diffSecs/60)%60;
hours = Math.floor(diffSecs/60/60)%24;
if ($.data($this[0], 'omitWeeks') == true)
{
days = Math.floor(diffSecs/60/60/24);
weeks = Math.floor(diffSecs/60/60/24/7);
}
else
{
days = Math.floor(diffSecs/60/60/24)%7;
weeks = Math.floor(diffSecs/60/60/24/7);
}

$this.dashChangeTo(id, 'seconds_dash', secs, duration ? duration : 800);
$this.dashChangeTo(id, 'minutes_dash', mins, duration ? duration : 1200);
$this.dashChangeTo(id, 'hours_dash', hours, duration ? duration : 1200);
$this.dashChangeTo(id, 'days_dash', days, duration ? duration : 1200);
$this.dashChangeTo(id, 'weeks_dash', weeks, duration ? duration : 1200);

$.data($this[0], 'diffSecs', diffSecs);
if (diffSecs > 0)
{
e = $this;
t = setTimeout(function() { e.doCountDown(id, diffSecs-1) } , 1000);
$.data(e[0], 'timer', t);
}
else if (cb = $.data($this[0], 'callback'))
{
$.data($this[0], 'callback')();
}

};

$.fn.dashChangeTo = function(id, dash, n, duration) {
$this = $('#' + id);
d2 = n%10;
d1 = (n - n%10) / 10

if ($('#' + $this.attr('id') + ' .' + dash))
{
$this.digitChangeTo('#' + $this.attr('id') + ' .' + dash + ' .digit:first', d1, duration);
$this.digitChangeTo('#' + $this.attr('id') + ' .' + dash + ' .digit:last', d2, duration);
}
};

$.fn.digitChangeTo = function (digit, n, duration) {
if (!duration)
{
duration = 800;
}
if ($(digit + ' div.top').html()!= n + '')
{

$(digit + ' div.top').css({'display': 'none'});
$(digit + ' div.top').html((n ? n : '0')).slideDown(duration);

$(digit + ' div.bottom').animate({'height': ''}, duration, function() {
$(digit + ' div.bottom').html($(digit + ' div.top').html());
$(digit + ' div.bottom').css({'display': 'block', 'height': ''});
$(digit + ' div.top').hide().slideUp(10);


});
}
};

})(jQuery);



Ребят выручайте борюсь с этим битые сутки так и не нашел примера кода в интернете.
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Мне нужно чтобы счетчик начинал отсчитывать ежедневно в 8 часов вечера и заканчивал в это же время.
Это как? Начал и сразу закончил? То есть вообще не будет работать?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
сложно говорите молодой человек... словно вы в другом мире..
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

voron8787

  • Осваиваюсь на форуме
  • 33
  • 0 / 0
Извиняюсь за неправильное определение то что хочу.
Помогите пожалуйста поправить код чтобы счетчик начинал отсчет в 8 часов вечера, отсчитывал 24 часа, и потом начинал отсчет заново (на след день) и потом заново
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
Извиняюсь за неправильное определение то что хочу.
Помогите пожалуйста поправить код чтобы счетчик начинал отсчет в 8 часов вечера, отсчитывал 24 часа, и потом начинал отсчет заново (на след день) и потом заново
аааа, так бы сразу и сказали... тут подумать надо...
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

voron8787

  • Осваиваюсь на форуме
  • 33
  • 0 / 0
Извиняюсь за неправильное определение задачи. Который день бьюсь не могу найти решение, помогите пожалуйста
аааа, так бы сразу и сказали... тут подумать надо...
*

voron8787

  • Осваиваюсь на форуме
  • 33
  • 0 / 0
Нашел вот такую интересную вещь.

Цитировать
Оба метода тайминга работают примерно одинаково: они выжидают определенное количество времени перед исполнением кода, который им посылается. Синтаксис вызова обеих функций тоже практически один и тот же:

1 setTimeout(<code to run>, <number of milliseconds to wait>);
2  setInterval(<code to run>, <number of milliseconds to wait>);

Интересно в нужном направлении рою?
*

voron8787

  • Осваиваюсь на форуме
  • 33
  • 0 / 0
нашел вот такую штуку но как привязать к коду счетчика не пойму
Код
<p id="timer"></p>

<script>
var outTimer = document.getElementById('timer'),
secEnd = 20 * 3600, // секунд до 20:00
serDay = 24 * 3600; // секунд в сутках

setInterval(function () {
 
  var curDate = new Date(),
  curSec = curDate.getHours() * 3600 + curDate.getMinutes() * 60 + curDate.getSeconds(), // прошло секунд в этих сутках
  diff = secEnd - curSec;
 
  if (diff < 0) { // если сейчас больше 20:00
diff = serDay + diff; // разница с сек. в сутках
  }

  outTimer.innerHTML = 'До 20:00 осталось ' + Math.floor(diff / 3600) + ' час. ' +  Math.floor(diff / 60) % 60 + ' мин.';
 
}, 1000);
</script>
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Подредактируйте скрипт в index:
Код: javascript
<script language="javascript" type="text/javascript">
jQuery(document).ready(function() {
var today=new Date();
$('#countdown_dashboard').countDown({
targetDate: {
'day': today.getDate(),
'month': today.getMonth()+1,
'year': today.getFullYear(),
'hour': 20,
'min': 00,
'sec': 00 }
});

});
</script>
Не будь паразитом, сделай что-нибудь самостоятельно!
*

voron8787

  • Осваиваюсь на форуме
  • 33
  • 0 / 0
Помогло спасиб большое, забавно конечно но на выходе получил 2 счетчика, если кому надо могу скинуть второй счетчик "исходники".
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Если это то, о чем я думаю, то никому они не нужны. Не злоупотребляйте этим счетчиком, он может отпугнуть потенциальных клиентов. Дураков мало. Я, например, сразу покидаю такие сайты, посчитав, что меня пытаются обмануть.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
не знаю - о чем вы думаете, но, я вообще не посещаю сайты от которых пахнет дилетантством..) Бывает в выдаче откроешь несколько сайтов сразу, а потом, только перешел на вкладку, сразу закрыл, перешел - закрыл... естественный отбор..)))

И хочу функцию - отметить сайт, и он больше никогда не показывался..)
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Проблема с логином на сайт через Iphone

Автор AdmiralSFF

Ответов: 4
Просмотров: 2529
Последний ответ 13.08.2022, 13:19:41
от AdmiralSFF
Проблема с переносом Joomla сайта с хостинга на денвер

Автор 62411

Ответов: 4
Просмотров: 2040
Последний ответ 21.02.2022, 20:22:11
от arma
Проблема Adobe Flash Player

Автор MamontFirst

Ответов: 5
Просмотров: 1488
Последний ответ 23.01.2021, 21:25:23
от MamontFirst
Разобраться с мобильной версией

Автор Pepperoni

Ответов: 1
Просмотров: 1028
Последний ответ 19.12.2020, 09:53:38
от Physicist
Проблема с редактированием материалов

Автор olesya

Ответов: 15
Просмотров: 3226
Последний ответ 12.07.2020, 12:46:06
от NataliS