Новости Joomla

Модификация WT JShopping products anywhere - Uikit макетИтак, дано: музыкальный журнал, в котором...

Модификация WT JShopping products anywhere - Uikit макетИтак, дано: музыкальный журнал, в котором...

Модификация WT JShopping products anywhere - Uikit макетИтак, дано: музыкальный журнал, в котором представлены новости, интервью, рецензии и есть небольшой магазин на JoomShopping. Возникла необходимость внутри Joomla статей вставлять упоминание релиза и кнопочку «добавить в корзину». Я взял плагин WT JShopping products anywhere Сергея Толкачева (@webtolkru). Плагин отображает название товара и ссылку. При помощи напильника, ИИ и навыков вёрстки появился Uikit макет для шаблонов на базе Yootheme Pro.Учитываается мобильная версия - телефоны и ipad.Кнопка добавления в корзину работает по Ajax и появляется всплывающее окно (Notification Bar от Uikit) с информацией.Пока это базовый вариант, требующий доведения до лоска, однако он уже работает и его можно применять на проектах.Взять макет можно здесь.А плагин вставки товаров в материалы можно забрать здесь.Приветствуется доведение до ума и оформление в виде PR.

WT Content Image Gallery v.1.2.3 - плагин галереи изображений для Joomla

WT Content Image Gallery v.1.2.3 - плагин галереи изображений для Joomla

👩‍💻 WT Content Image Gallery v.1.2.3 - плагин галереи изображений для Joomla.Пакет плагинов галереи изображений и видео для вставки в материалы и модули Joomla, а так же везде, где работают плагины группы content. Поддержка собственных макетов вывода для галерей. Смешанные фото+видео галереи. Плагин создан как замена Simple Image Gallery и поддерживает синтаксис {gallery}{/gallery}.👩‍💻 v.1.2.3. Что нового?- Обработка вступительного и полного текста для материалов Joomla. Добавлена обработка шорткодов в полном и вступительном текстах материалов Joomla.- Системные требования. Повышены минимальные требования до Joomla 5 и PHP 8.1.- Мелкие правки. Исправлена ошибка работы макета по умолчанию в плагине контента.- Joomla 6. Пакет плагинов успешно протестирован на Joomla 6.Страница расширения.GitHub расширенияJoomla Extensions Directory@joomlafeed#joomla #расширения

Совет по Joomla: несколько значений по умолчанию в XML-формах для стандартных полей типа list

👩‍💻 Совет по Joomla: несколько значений по умолчанию в XML-формах для стандартных полей типа list.При работе над плагином возникла необходимость указать стандартный набор из нескольких элементов стандартного поля списка. И хотелось указать их в стандартном же атрибуте default для полей. Когда это нужно?Когда Ваши пользователи устанавливают плагин и НЕ заходят в настройки - в коде вы можете использовать значения по умолчанию с помощью класса Registry (писал об этом ранее) и всегда быть уверенным, что хоть какие-то жизненно необходимые параметры к вам придут всегда. 🧐 Но как сделать то же самое для интерфейса админки?Пользователя нужно направлять, предлагать очевидный работоспособный сценарий для начала, а дальше он уже сам разберется. Когда человек заходит в параметры свежеустановленного плагина в Form ещё нет данных и параметры по умолчанию выставляются из атрибутов default в xml-полях.
<field name="showdesc" type="radio"                       label="PLG_CFI_PARAM_SHOWDESC"                       class="btn-group btn-group-yesno"                       default="1">                    <option value="0">JNO</option>                    <option value="1">JYES</option>                </field>
Здесь по умолчанию будет включено "Да". И если пользователь не переключит параметр, то при сохранении мы ожидаемо получим "да" в params плагина.Для поля списков type=&quot;list&quot; можно указать значение по умолчанию и многие знают, что его можно указать только одно.
<field type="list"                       name="article_fields"                       label="article_fields"                       description="article_fields_desc"                       layout="joomla.form.field.list-fancy-select"                       multiple="true"                       default="id"                >                    <option value="id">id</option>                    <option value="title">title</option>                    <option value="alias">alias</option>                    <option value="introtext">introtext</option>                    <option value="fulltext">fulltext</option>                    <option value="state">state</option></field>
Но у нас поле с множественным выбором (атрибут multiple) и хотелось бы указать несколько значений по умолчанию...Оказывается, так можно сделать. Для этого в атрибуте default нужно указать json с нужными параметрами в виде {int}key : {string} value.Например, default='{"0":"id","1":"title"}'.
<field type="list"                       name="article_fields"                       label="article_fields"                       description="article_fields_desc"                       layout="joomla.form.field.list-fancy-select"                       multiple="true"                       default='{"0":"id","1":"title"}'                >                    <option value="id">id</option>                    <option value="title">title</option>                    <option value="alias">alias</option>                    <option value="introtext">introtext</option>                    <option value="fulltext">fulltext</option>                    <option value="state">state</option></field>
⚠️ Обратите внимание на кавычки! Поскольку json_decode не понимает одинарные кавычки собственно json нужно писать с двойными, а значение для атрибута default писать в одинарные.🙏 За подсказанное решение огромное спасибо участникам нашего сообщества - разработчикам Дмитрию Васюкову (@fictionlabs) и Игорю Бердичевскому (@septdir).@joomlafeed#joomla #разработка #webdev #development

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

makslm

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Здравствуйте, помогите допилить плагин. Необходимо после регистрации нового пользователя отправить данные на другой сайт по апи.

Собственно файлик

Цитировать
<?php defined( '_JEXEC' ) or die( 'Restricted access' );
//получаем данные нового пользователя
if($isNew){
   $user = JFactory::getUser();
        $first_name = $user->name;
   $email_address = $user->email;
   $phone = $user->phone;

   //отправляем данные
$request = '
&first_name="$first_name"
&email_address="$email_address"
&phone="$phone"
$url = 'http://site.ru/api/';
$sendSpot($url, $request);
   }

function sendSpot($url, $data) {
             $ch = curl_init();
             curl_setopt($ch, CURLOPT_URL, $url);
             curl_setopt($ch, CURLOPT_FAILONERROR, 1);
             curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
             curl_setopt($ch, CURLOPT_TIMEOUT, 7);
             curl_setopt($ch, CURLOPT_POST, 1);
             curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

             curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
             curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);

             $result = curl_exec($ch);

             curl_close($ch);

             return $result;
            }
« Последнее редактирование: 06.10.2016, 14:51:06 от makslm »
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: Нужна помощь в написании модуля
« Ответ #1 : 04.10.2016, 11:09:23 »
Так а в чем конкретно помочь? Откуда мы знаем, что там за API, в каком формате они принимают данные.
Да и пароль вы собрались в открытом виде передавать или в виде хеша (что для стороннего сайта будет бессмысленно)?
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

makslm

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Re: Нужна помощь в написании модуля
« Ответ #2 : 04.10.2016, 11:16:16 »
/api?key=[your_key]&first_name=ttt&last_name=dd&email_address=daacsda@dsaa.com
данные передаются в таком виде, нужно выполнить такой запрос и данные запишутся.. необходима отправка только серверно, что б не видно было в адресной строке
« Последнее редактирование: 06.10.2016, 14:51:44 от makslm »
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: Нужна помощь в написании модуля
« Ответ #3 : 04.10.2016, 11:19:18 »
Я бы сделал переход по сформированной ссылке с указанными параметрами через AJAX в момент выполнения скрипта
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

makslm

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Re: Нужна помощь в написании модуля
« Ответ #4 : 04.10.2016, 11:21:54 »
Я бы сделал переход по сформированной ссылке с указанными параметрами через AJAX в момент выполнения скрипта
это будет на стороне клиента, и он должен остатся на сайте, а данные уйти
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: Нужна помощь в написании модуля
« Ответ #5 : 04.10.2016, 11:46:16 »
это будет на стороне клиента, и он должен остатся на сайте, а данные уйти
ну так я про то и говорю, запрос уйдет, мы остаемся на сайте клиента, еще если тот сайт дает ответ на полученные данные можно сказать клиенту о результатах обработки
Код: javascript
$.ajax({
        type: 'POST',
        url: 'http://site.com/back.php/affiliate/externalSorce/api?key=[your_key]&method=createLead&first_name=ttt&last_name=dd&email_address=daacsda@dsaa.com',
        data: '',
        cache: false,
        success: function(response){
          alert(response);
        }
});
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Re: Нужна помощь в написании модуля
« Ответ #6 : 04.10.2016, 12:06:55 »
А причем тут вообще модуль? если тут плагин нужен. Что такое $isNew
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

makslm

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Re: Нужна помощь в написании модуля
« Ответ #7 : 04.10.2016, 12:09:33 »
ну так я про то и говорю, запрос уйдет, мы остаемся на сайте клиента, еще если тот сайт дает ответ на полученные данные можно сказать клиенту о результатах обработки
Код: javascript
$.ajax({
        type: 'POST',
        url: 'http://site.com/back.php/affiliate/externalSorce/api?key=[your_key]&method=createLead&first_name=ttt&last_name=dd&email_address=daacsda@dsaa.com',
        data: '',
        cache: false,
        success: function(response){
          alert(response);
        }
});

по идеи подходит, а как скрыть ключ что б скрипте не видно было?
*

beliyadm

  • Легенда
  • 9758
  • 1665 / 66
  • Севастополь, Россия
Re: Нужна помощь в написании модуля
« Ответ #8 : 04.10.2016, 12:21:52 »
а как скрыть ключ что б скрипте не видно было?
в данном случае никак
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

makslm

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Re: Нужна помощь в написании модуля
« Ответ #9 : 04.10.2016, 12:30:51 »
А причем тут вообще модуль? если тут плагин нужен. Что такое $isNew
верно подметили.. смешал все в кучу, необходим плагин..

function onUserAfterSave( $data, $isNew, $result, $error ){
if($isNew){$user = JFactory::getUser();
   $first_name = $user->name;
   $email_address = $user->email;
   $phone = $user->phone;}
}
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Re: Нужна помощь в написании плагина
« Ответ #10 : 04.10.2016, 13:53:08 »
Если мне память не из
верно подметили.. смешал все в кучу, необходим плагин..

function onUserAfterSave( $data, $isNew, $result, $error ){
if($isNew){$user = JFactory::getUser();
   $first_name = $user->name;
   $email_address = $user->email;
   $phone = $user->phone;}
}
В первых в плагине $user = JFactory::getUser(); вы получие юзера которых сохранял, а учитывая isNew Получитите либо админа либо гостя. Далее стандартная функция выглядит так
Код: php
public function onUserAfterSave($user, $isnew, $success, $msg)
А данные пользователя получаться так
Код: php
   $first_name = $user['name'];
   $email_address = $user['email'];
насчет телефона хз.
Далее помино "проверки" isNew проверяйте  $success

Теперь работа с api
Во превых дайте ссылку на документацию api ни кто тут от вас не просит писать на форуме секретный ключ.
Во вторых у всех человеческих сервисов с api есть примеры реализации на php.
В третьих.
У любого сервиса есть защиты от спама, лимит и т.д. Поэтому вам надо исключить запросы к api от ботов (можете считать что ваш сайт мега защищен от реги ботов, но все равно доп. проверка не помешает). Как вариант завести таблицу где будут хранится email или другой идентификатор уже отправленных данных. К примеру если вы удалите юзера, то email можно использовать повторно, а если хранить в данные в топ таблице, хоть она прибавит веса, но зато будет защита и сервис вас не заблокирует. Про подобные защиты пишут все сервисы и сайты предоставляющие апи. Ваша обязанность контролировать сколько и какие запросы вы отправляете.
Закончили с проверкой переходим к отправке.
Материалов по данной теме тьма, пользуйтесь поиском. Зависит от того что вы получить к примеру можно использовать file_get_contents() а для формирования параметров запроса http_build_query()

Это максимум чем можно помочь. Если только не писать весь код за вас.

P.S судя знаний php у вас явно маловато *(без обид). Обратитесь в коммерческий раздел или хотя бы возьмите за основу тот же дефолтный contactcreator
« Последнее редактирование: 04.10.2016, 14:16:13 от Septdir »
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

makslm

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Re: Нужна помощь в написании плагина
« Ответ #11 : 05.10.2016, 14:35:06 »
Цитировать
<?php
defined('_JEXEC') or die;
class PlgUserNewLead extends JPlugin
{
   protected $autoloadLanguage = true;
   public function onUserAfterSave($user, $isnew, $success, $msg)
   {
      if (!$success)
      {
         return false;
      }
      if (!$isnew)
      {
         return false;
      }
      $user_id = (int) $user['id'];
      if (empty($user_id))
      {
         return false;
      }
      if ($isNew) {
         $first_name = $user['username']
         $email_address = $user['email'];
         }
         
      if( $curl = curl_init() ) {
      curl_setopt($curl, CURLOPT_URL, 'http://site.ru/api?key=xxx&method=createLead&first_name='$first_name'&last_name=last_name&email_address='$email_address');
      $out = curl_exec($curl);
      echo $out;
      curl_close($curl);
   }
Должно работать?  !
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Re: Нужна помощь в написании плагина
« Ответ #12 : 05.10.2016, 14:40:39 »
Должно работать?  !
В логике промхнулся.  if ($isNew) надо не на данные пользователя, а на отправку
« Последнее редактирование: 05.10.2016, 14:58:41 от Septdir »
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

makslm

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Re: Нужна помощь в написании плагина
« Ответ #13 : 06.10.2016, 09:56:08 »
Вроди как разобрался с этим, установил плагин...
....
if ($isNew) {
         $file = file_get_contents('site.ru');
   }
При получении данных с site.ru, на site.ru я это увижу..

Не работает( Его нужно дополнительно подключать в регистрации?
Если да, можно пример пожалуйста?
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Re: Нужна помощь в написании плагина
« Ответ #14 : 06.10.2016, 10:45:15 »
Вроди как разобрался с этим, установил плагин...
....
if ($isNew) {
         $file = file_get_contents('site.ru');
   }
При получении данных с site.ru, на site.ru я это увижу..

Не работает( Его нужно дополнительно подключать в регистрации?
Если да, можно пример пожалуйста?

Поймите если вы хотите чтобы вам помогли с апи то нужна ссылка на документацию этого апи. А лучше всего в коммерческий раздел
Не можете справиться с задачей сами пишите, решу ее за вас, не бесплатно*.
*Интересная задача, Деньги или Бартер. Натурой не беру!
CodersRank | Контакты | Мой GitHub | Workshop
*

makslm

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Re: Нужна помощь в написании плагина
« Ответ #15 : 06.10.2016, 10:50:47 »
вопрос с апи сейчас не актуален
 $file = file_get_contents('site.ru'); работает, проверял отдельно созданным файлом..

код плагина упростил.. что б сразу отправка была при if new

я должен сам научится и понять)
*

makslm

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Re: Нужна помощь в написании плагина
« Ответ #16 : 06.10.2016, 15:48:06 »
 ! HELP даже так не работает(
Цитировать
<?
class plgUserNewlead extends JPlugin {
function onUserAfterSave ($user, $isnew)
   {
         
      if ($isnew)
         {
      $fp = fopen("11.txt", "a");

fwrite($fp, "123123123123213"."\r\n");

fclose($fp);
         }
   }

Для теста создал файл 1.php
<?php
$fp = fopen("11.txt", "a");
fwrite($fp, "123123123123213"."\r\n");
fclose($fp);
?>
- работает, записало цифры в файл
}
« Последнее редактирование: 06.10.2016, 15:56:43 от makslm »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Вывод отладочной информации системного плагина

Автор effrit

Ответов: 23
Просмотров: 1573
Последний ответ 02.10.2018, 10:24:46
от effrit
Объясните как работает MVC Override с помощью плагина Joomla!

Автор kens1n

Ответов: 8
Просмотров: 2065
Последний ответ 09.10.2016, 11:00:25
от robert
Нужна помощь по PHP

Автор pahtab

Ответов: 2
Просмотров: 1386
Последний ответ 26.03.2016, 08:12:43
от b2z
Продолжая тему разработки контент плагина, сорянчик))

Автор IvanTopor

Ответов: 7
Просмотров: 1192
Последний ответ 26.02.2016, 16:27:18
от b2z
[Решено] Создание контент плагина

Автор IvanTopor

Ответов: 4
Просмотров: 1729
Последний ответ 26.02.2016, 13:10:37
от IvanTopor