Новости Joomla

Вышел плагин социальных кнопок для Joomla - JL Like 5.1.0

Вышел плагин социальных кнопок для Joomla - JL Like 5.1.0

Вышел плагин социальных кнопок для Joomla - JL Like 5.1.0.JL Like — современный плагин для Joomla, который добавляет стильные кнопки "Поделиться" и счетчики лайков популярных соцсетей. Не использует внешние скрипты, что обеспечивает максимальную скорость и безопасность.👩‍💻 v.5.1.0. Что нового?Виджет предварительного просмотра- Добавлен интерактивный предпросмотр социальных кнопок в админ панели- Живое обновление настроек в реальном времени- Переключение между мобильным и десктопным видомУлучшенная мобильная поддержка- Оптимизированные размеры кнопок для мобильных устройств- Адаптивные стили для лучшего отображения на смартфонах- Touch-friendly интерфейсСовременная архитектура- Внедрена система Web Assets для Joomla 4/5- Оптимизированная загрузка ресурсов с атрибутом defer- Улучшенная производительностьТехнические улучшения- Добавлен новый метод getBaseUri() для лучшей обработки URL- Обновлена поддержка JoomShopping и ZOO компонентов- Улучшена совместимость с Joomla 5.xСкачать релиз с GitHubСтраница расширения@joomlafeed#расширения

Новый способ добавления и рендера полей в Joomla Form - метод renderControlFields() (Joomla 5.3+)

Новый способ добавления и рендера полей в Joomla Form - метод renderControlFields() (Joomla 5.3+)

При отображении форм компонента в админке раньше разработчикам нужно было описывать скрытые поля в лейаутах. И выглядело это так:

<?php // Это файл в /layouts/components/com_component/your_layout.php ?> <input type="hidden" name="task" value=""> <input type="hidden" name="return" value="<?php echo $input->getBase64('return'); ?>"> <input type="hidden" name="forcedLanguage" value="<?php echo $input->get('forcedLanguage', '', 'cmd'); ?>"> <?php echo HTMLHelper::_('form.token'); ?>

Начиная с Joomla 5.3 добавлен новый способ добавления таких полей (их называют control fields) - программно. И теперь это можно сделать просто в Controller / View.

<?php // В Controller/View добавляем поля $this->form ->addControlField('task', '') ->addControlField('return', $input->getBase64('return', '')) ->addControlField('forcedLanguage', $forcedLanguage);

А в layout'е просто используем метод

renderControlFields()

<?php // В layout формы echo $this->form->renderControlFields();

Многие компоненты ядра уже используют этот подход. Соответствующий PR был принят в Joomla 5.3 осенью 2024г.

Смотреть Pull Request

JoomGallery 4.1.0 - компонент галереи изображений для Joomla

JoomGallery 4.1.0 - компонент галереи изображений для Joomla

Новая итерация компонента продолжает развиваться, ведь с v.4.x компонент был переписан практически с нуля.

v.4.1.0. Что нового?

Редактирование метаданных изображений. Теперь метаданные можно не только читать, но и напрямую редактировать и записывать обратно в изображение JPG. Поддерживаются данные EXIF ​​и IPTC.

Полная совместимость с Joomla! 4.x, 5.x и 6.x. Компонент почистили от устаревших методов в коде.

Заметно ускорили загрузку больших галерей. Списки в админке, особенно для очень больших галерей ( >30 000 изображений), теперь загружаются значительно быстрее.

Несколько сеток lightGallery на одной странице. Будь то плагины контента или модули изображений: теперь вы можете отображать несколько галерей или категорий на одной странице без каких-либо ограничений.

Множество мелких исправлений ошибок и оптимизаций.

Сайт проекта

GitHub расширения

Скачать

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

пишу мамбот. нужно узнать id статьи которую он обрабатывает
также нужно узнать залогинен ли юзер, и, если да, то его id
« Последнее редактирование: 03.01.2007, 17:18:14 от ply »
*

userxp

  • Живу я здесь
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
$row->id


global $my;
if( $my->id ) {...}
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3

спасибо.
id статьи раотает

Забыл добавить что id юзера надо узнать в скрипте который обрабатывает ajax-запрос. там $my не определен
*

userxp

  • Живу я здесь
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей

global $my;
echo gettype($my);
echo $my->id;

сервак отвечает NULL
скрипт выполняется отдельно (ajax-запрос идет напрямую к этому скрипту).
может подключить файлы какие?
*

userxp

  • Живу я здесь
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
опиши процесс вызова - кто, откуда, куда...
$row же у тебя как-то присутствует?
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3

$row мне нужно в мамботе вызывать

пишу ajax-рейтинг
Процес вызова:
пользователь голосует и скрипту передается номер статьи и рейтинг который он поставил статье. В скрипте надо добавить рейтинг в базу и отправить ответ, чтото типа "все ок. голос принят".
мамбот:
Код
$_MAMBOTS->registerFunction( 'onPrepareContent', 'plyRating' );

function plyRating($published, &$row, &$params, $page=0 ) {
global $database, $_MAMBOTS, $Itemid,$mosConfig_live_site,$my;

        //getting settings
        $placement = intval($params->get( 'imageplacement', 2 ));
        $out = '<script type="text/javascript" src="'.$mosConfig_live_site.'/mambots/content/plyrating/smallajax.js"></script>';
        $out .= '<script type="text/javascript" src="'.$mosConfig_live_site.'/mambots/content/plyrating/rate.js"></script>';
        $out .= '<script type="text/javascript">var url1="'.$mosConfig_live_site.'";var cid="'.$row->id.'";</script>';

        $out .= '<form method="post" id="ratingform">

      <input type="radio" name="rate" value="5" onclick="r1=5;addrating();" /><span onclick="nodeClick(this);">5</span>
      <input type="radio" name="rate" value="4" onclick="r1=4;addrating();" /><span onclick="nodeClick(this);">4</span>
      <input type="radio" name="rate" value="3" onclick="r1=3;addrating();" /><span onclick="nodeClick(this);">3</span>
      <input type="radio" name="rate" value="2" onclick="r1=2;addrating();" /><span onclick="nodeClick(this);">2</span>
      <input type="radio" name="rate" value="1" onclick="r1=1;addrating();" /><span onclick="nodeClick(this);">1</span>
    </form>' ;
     $row->text .= $out;
}

rate.js
Код
var r1=0;
var r2=0;
var htmlReyt='';
function addrating(){
if(r1 && r2){
    if(cid){
alert('r1='+r1);
      url2=url1+"/mambots/content/plyrating/setrating.php?cid="+cid+"&r1="+r1+"&r2="+r2;
      alert(url2);
      sajax(url2,'ratingform');
      htmlReyt=document.getElementById('ratingform').innerHTML;
      document.getElementById('ratingform').innerHTML='<span class="loading">Загрузка...</span>';
    }
  }
}

smallajax.js
Код
function sajax(ajaxurl, element){
    var ro;

    try {ro = new ActiveXObject("Msxml2.XMLHTTP");}
    catch(e){
        try  {ro = new ActiveXObject("Microsoft.XMLHTTP");}
        catch(f) {ro = null;}
        }
    if(!ro && typeof(XMLHttpRequest) != 'undefined'){
        ro = new XMLHttpRequest();
        }
    try {
        ro.onreadystatechange = function(){
          try {
              if((ro.readyState == 4) && (ro.status == 200)){
                  alert('asdasd');
                  var response = ro.responseText;//Получаем в переменную response весь код XML - фаила
                  alert(response);
                  document.getElementById(element).innerHTML = response;//эта DHTML, с помощью него мы присвоим свойству id с именем reload наше содержимое XML-файла
                  }
              }
          catch(e)//А это нужно, чтобы у нас небыло никаких ошибок
              {
              }
          }
        ro.open("GET", ajaxurl, true);
        ro.setRequestHeader('Accept-Language', 'en');
        ro.setRequestHeader('Accept-Charset', 'windows-1251');
        ro.send(null);
        }
    catch(e)
        {
        }
    }

setrating.php
Код
global $my;
 echo gettype($my);
 echo $my->id;

что я не так делаю? все работает, только вот id юзера незнаю
*

userxp

  • Живу я здесь
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
все работает, только вот id юзера незнаю
ну а почему бы id пользователя не передать параметром из мамбота, а потом обработать?

или вместо

function plyRating($published, &$row, &$params, $page=0 ) {
   global $database, $_MAMBOTS, $Itemid,$mosConfig_live_site,$my;

        //getting settings
        $placement    = intval($params->get( 'imageplacement', 2 ));
        $out = '<script type="text/javascript" src="'.$mosConfig_live_site.'/mambots/content/plyrating/smallajax.js"></script>';


написать

function plyRating($published, &$row, &$params, $page=0 ) {
   global $database, $_MAMBOTS, $Itemid,$mosConfig_live_site,$my;
       
        $userid = ($my->id) ? $my->id : '';
        //getting settings
        $placement    = intval($params->get( 'imageplacement', 2 ));
        $out = '<script type="text/javascript">var user_id=<?php echo $userid; ?></script>';
        $out .= '<script type="text/javascript" src="'.$mosConfig_live_site.'/mambots/content/plyrating/smallajax.js"></script>';

а потом обрабатывай себе user_id в js.
« Последнее редактирование: 03.01.2007, 21:57:29 от userxp »
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3

если передавать id юзера то тогда, насколько я понимаю, можно будет с помощью несложного запроса к скрипту обрабатывающему ajax-запрос голосовать за любого пользователя.

userxp, спасибо за оперативную помощь;)
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Мамбот для поиска одинаковых названий и удаления дубликатов

Автор Terys

Ответов: 11
Просмотров: 9859
Последний ответ 10.01.2021, 12:12:30
от Sergeych
Мамбот "Одобрено"

Автор fs-p

Ответов: 16
Просмотров: 8933
Последний ответ 03.05.2013, 03:15:17
от gessle
как узнать если пользователь авторизован?

Автор ilma55

Ответов: 2
Просмотров: 3987
Последний ответ 10.01.2012, 13:08:29
от ilma55
Две колонки текста в материале статьи

Автор Trok

Ответов: 7
Просмотров: 9280
Последний ответ 25.03.2011, 13:37:44
от klubnichkaaa
Название статьи в две строки

Автор Димонтий

Ответов: 1
Просмотров: 2458
Последний ответ 05.09.2010, 07:50:46
от effrit