Новости Joomla

👩‍💻 WT Otpravkapochtaru - библиотека сервиса Отправка Почты России для Joomla-разработчиков.

👩‍💻 WT Otpravkapochtaru - библиотека сервиса Отправка Почты России для Joomla-разработчиков.

Joomla 5+ пакет для интеграции с API Почты России: нормализация данных, расчёт доставки, создание отправлений, партии, документы, возвраты, поиск отделений, справочники и SOAP-отслеживание.

v.3.0.0. Что нового?
Это дальнейшее развитие ранее закрытой Joomla-библиотеки для работы с API сервиса Отправка (для бизнеса) Почты России. Поэтому версия не 1.0.0, а 3.0.0.

Сейчас эта библиотека ушла от собственных реализаций и стала Joomla-обёрткой известного PHP SDK от Lapay Group.

Возможности библиотеки.
- получение настроек аккаунта, точек сдачи и текущего остатка запросов к API;
- нормализация адресов, ФИО и телефонов перед созданием отправления;
- расчёт тарифа и срока доставки;
- создание, поиск, изменение, удаление и возврат заказов в состояние «Новые»;
- проверка надёжности получателя;
- создание партий, просмотр партий и заказов внутри партии;
- генерация пакета печатных документов и формы Ф103;
- создание, изменение и удаление возвратных отправлений;
- поиск отделений по индексу, адресу и координатам, получение сервисов отделения;
- локальный список стран;
- SOAP-отслеживание операций по РПО и работа с билетами пакетного трекинга.

👩‍💻 Joomla-возможности.
В пакете библиотеки WT Otpravkapochtaru есть поля Joomla Form для расширений. Они позволяют работать в интерфейсе Joomla с некоторыми типами данных, получаемых по API из вашего личного кабинета в ЛК Почты России для бизнеса.
На данный момент в библиотеке доступны 3 поля списков, которые отображают доступные в аккаунте ОПС, типы и категории отправлений.
Поддерживаются зависимые списки: значение одного поля обновляется при изменении другого.

Системные требования.
Системные требования в основном связаны с системными требованиями апстрима библиотеки - LapayGroup PHP SDK.
- Joomla 5+
- PHP 8.3+
- Расширения PHP:
-- ext-mbstring
-- ext-simplexml
-- ext-soap (опционально, для трекинга)
-- ext-zip

Ссылки:
- Страница расширения
- GitHub библиотеки и документация

@joomlafeed

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

borro

  • Завсегдатай
  • 1379
  • 22 / 0
  • желаю вам счастья
Здравствуйте.

Кнопка Сохранить располагается в структуре, приведенной во вложении.

Как в например Chrome ищется файл с функцией, которая начинает отрабатывать первой по нажатию этой кнопки?

Нашел в index.php вот такой код:
Код
<script type="text/javascript">

//<![CDATA[
Joomla.submitbutton=function(a){
var options = { path: '/', expires: 2}
if (a == 'apply') {
var idx = jQuery('#tabs li.current').index();
jQuery.cookie('vmapply', idx, options);
} else {
jQuery.cookie('vmapply', '0', options);
}
jQuery( '#media-dialog' ).remove();
Joomla.submitform(a);
};
//]]>...
Только не понимаю, как искать дальше и на тот ли след я напал :)
Где-то по цепи запускается SQL запрос, который надо найти и изменить

Благодарю
« Последнее редактирование: 27.05.2013, 16:29:57 от borro »
*

varX

  • Живу я здесь
  • 2467
  • 141 / 5
  • разработка компонентов
Вы браузером серверные функции пытаетесь искать, я правильно понял?
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

borro

  • Завсегдатай
  • 1379
  • 22 / 0
  • желаю вам счастья
Вы браузером серверные функции пытаетесь искать, я правильно понял?
вот это мысль :) может и так. не знаю как докопаться до места, которое формирует UPDATE запрос к БД. У вас есть идеи?
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Если это действительно тот скрипт, который обрабатывает клик, то смотрите куда передается форма т.к. скрипт просто передает фому куда она просится. Чтобы проверить тот-ли это скрипт, поставьте во вкладке "Скрипт" FireBug стоп где-нибудь в этом скрипте, если стоп сработает - значит скрипт тот.
*

borro

  • Завсегдатай
  • 1379
  • 22 / 0
  • желаю вам счастья
Похоже мне надо научиться пользоваться каким-нибудь IDE. NetBeans?
*

varX

  • Живу я здесь
  • 2467
  • 141 / 5
  • разработка компонентов
Похоже мне надо научиться пользоваться каким-нибудь IDE. NetBeans?

Это уже подает надежды. Но я бы рекомендовал блокнот.
Разработка и ремонт. VirtueMart. JoomShopping. Свои компоненты. Принимаю заявки на plasma-web.ru.
*

borro

  • Завсегдатай
  • 1379
  • 22 / 0
  • желаю вам счастья
Это уже подает надежды. Но я бы рекомендовал блокнот.
я посмотрел - никаких хранимых процедур, триггеров, функций в базе нет. значит UPDATE запрос генерится в файлах?
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Где-то по цепи запускается SQL запрос, который надо найти и изменить
Скорее всего в недрах JDatabaseTable (libraries/joomla/database/table.php), но это функция ядра. А перед тем, как оно будет вызвано - вызовется контроллер из /components/com_mycomponent/ (или /administrator/components/com_mycomponent), где mycomponent - название компонента.
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Если собрать все скрытые инпуты и action формы то в 99% случаев эта информация исчерпывающе показывает на файл и функцию к которому(которой) форма обращается.
*

borro

  • Завсегдатай
  • 1379
  • 22 / 0
  • желаю вам счастья
Скорее всего в недрах JDatabaseTable (libraries/joomla/database/table.php), но это функция ядра. А перед тем, как оно будет вызвано - вызовется контроллер из /components/com_mycomponent/ (или /administrator/components/com_mycomponent), где mycomponent - название компонента.
Здравствуйте. Смотрел урок от Lynda.com по написанию расширений под Joomla. Наверно от слабого английского плохо понял. Вы бы могли посоветовать русскоязычное видео или текст, по которому можно понять состав, функцию и последовательность взаимодействия основных программных частей/модулей(хелперы и пр.) Joomla?

Похоже нашел функцию, которая записывает данные в БД:
function save($data = 0) в файле vmcontroller.php
Думаю в ней поставить debug_backtrace, чтобы добраться до места, где запросы генерятся. Почему-то если в ее теле использую var_dump(), не видно его вывода в админке, как будто новая страница загружается и не успеваю увидеть вывода. Есть ли в php команда "СТОП"? Думаю все-таки в IDE это правильнее делать
« Последнее редактирование: 28.05.2013, 10:29:27 от borro »
*

borro

  • Завсегдатай
  • 1379
  • 22 / 0
  • желаю вам счастья
die();
exit;
Благодарю.
поставил NetBeans, создал проект, указав папку локального сайта. Нажимаю Отладка проекта - запускается фронтенд сайта со довесом XDEBUG_SESSION_START=netbeans-xdebug в адресной строке, но при этом  в NetBeans все время бегает ползунок о том, что NetBeans все ожидает подключения и никак не подключится. Похоже Неправильно настроил. Посоветуйте пожалуйста статью как отлаживать под NetBeans локальный сайт. Не нашел. Хотя можно и по любой другой IDE.
« Последнее редактирование: 28.05.2013, 14:12:47 от borro »
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Если поставите PhpStorm то расскажу как настроить отдадку в нем ) нетбиносом уже давно не пользуюсь... уж очень он слабый стал по сравнению с штормом!
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
уж очень он слабый стал по сравнению с штормом!
+100500
*

borro

  • Завсегдатай
  • 1379
  • 22 / 0
  • желаю вам счастья
Если поставите PhpStorm то расскажу как настроить отдадку в нем ) нетбиносом уже давно не пользуюсь... уж очень он слабый стал по сравнению с штормом!
закачиваю 5 версию в надежде не сильно перегрузить мою слабую рабочую машину. Можете начать рассказывать :)
*

Aleks.Denezh

  • Живу я здесь
  • 3401
  • 428 / 4
Все очень просто )
1. Создаем проект (достаточно просто нажать open directory и указать папку с сайтом на локале)
2. как проект прогрузился на панели инструментов  нажимаем на стрелочку

и там появится "Edit Configuration..." нажимаем по нему
3. увидим такое окошко в  нем в самом верху нажимаем на плюсик и выбираем "PHP Web Application"

4. появится окошко в котором вводим название проекта в поле "Name"
5. В поле Server есть кнопочка с тремя точками нажимаем на неё появится ещё одно окошко которое надо нажать на кнопку плюс и заполнить приблизительно так:

тоесть в поле host указываете путь к сайту который вы набираете в браузере у вас может быть localhost просто например! и нажимаем кнопку ок!
в предыдыщем окне должно стать так:

дописываем в поле "Start URL" после слеша index.php и нажимаем окей! настройка завершена!

дальше ставим точку остановки

и жмем по кнопке с тараканом (Debug или Run->debug или shift f9)
Если все настроенно правильно(Xdebug)
то сайт зависнет (как только перейдет к выполнению этой точки остановик), как будто не может загрузится и должен замигать phpStorm
после этого наш редактор станет таким:

при наведение на переменные до точки остановки, через несколько секунд, будет вылетать окошко где можно посмотреть их значение
ну и плюс в окошке Variables можно это посмотреть!
« Последнее редактирование: 28.05.2013, 17:18:03 от Istaan »
*

borro

  • Завсегдатай
  • 1379
  • 22 / 0
  • желаю вам счастья
Здравствуйте.
Когда запускается отладка возникает сообщение
Цитировать
C:\xampp\php\php.exe C:\xampp\htdocs\antilopa2\administrator\components\com_virtuemart\helpers\vmcontroller.php
Fatal error: Call to undefined function jimport() in C:\xampp\htdocs\antilopa2\administrator\components\com_virtuemart\helpers\vmcontroller.php on line 21
Call Stack:
    0.0011     444936   1. {main}() C:\xampp\htdocs\antilopa2\administrator\components\com_virtuemart\helpers\vmcontroller.php:0
Process finished with exit code 255
PHPStorm 6. В чем может быть причина? Может нельзя напрямую отлаживать vmcontroller.php, а надо поставив точку останова в vmcontroller.php запускать index.php сайта?

также хочу спросить, как понимать что entity is depricated? - много методов перечеркнуто при просмотре php кода
« Последнее редактирование: 05.06.2013, 13:47:39 от borro »
*

SDKiller

  • Живу я здесь
  • 2705
  • 329 / 5
  • ...ergo sum
Вот давно бы нашли уже )

Joomla.submitform($a) отправляет форму с task=$a - в вашем случае 'apply'

По action формы посмотрите - в какой контроллер будет передаваться этот task

В контроллере в функции registerTask ищите какой на самом деле метод сопоставлен 'apply'

А уж в этом методе контроллера будет большая вероятность найти ваш update запрос (ну или хотя бы отследить выполнение далее до модели или таблицы).


Полагаться на отладку Joomla-проектов в IDE не стОит - некоторые специфические методы автозагрузки классов IDE могут не понять.
Тот же PhpStorm не предложит вам ничего для объекта полученного через J...::getInstance() - если только вы явно в phpdoc-е не укажете тип объекта, который получаете.
Хотя многие фреймворки он нативно поддерживает, тот же Yii
*

borro

  • Завсегдатай
  • 1379
  • 22 / 0
  • желаю вам счастья
Благодарю. C вами так и до просветления недалеко :)
в action формы стоит "index.php". раз кнопка стоит в админке, то это файл /administrator/index.php?
В контроллере в функции registerTask ищите какой на самом деле метод сопоставлен 'apply'
Получается файл контроллера - это /administrator/index.php? Там нет registerTask
« Последнее редактирование: 05.06.2013, 14:06:18 от borro »
*

SDKiller

  • Живу я здесь
  • 2705
  • 329 / 5
  • ...ergo sum
в action формы стоит "index.php"...

Ну гляньте hidden инпуты в конце формы - там будут или controller или view
*

borro

  • Завсегдатай
  • 1379
  • 22 / 0
  • желаю вам счастья
Ну гляньте hidden инпуты в конце формы - там будут или controller или view

да, нашел, "product" там было. верно пали подозрения на vmcontroller.php, die() помог это понять, надо не бояться его применять.
В этом файле есть функция $model->store($data);
Погружаюсь далее и видимо в vmmodel.php...

Поклон!
« Последнее редактирование: 05.06.2013, 15:06:03 от borro »
*

borro

  • Завсегдатай
  • 1379
  • 22 / 0
  • желаю вам счастья
В функции save файла vmcontroller.php есть строки

Код
...
$model = VmModel::getModel($this->_cname);
$id = $model->store($data);
...
Если открыть файл administrator/components/com_virtuemart/helpers/vmmodel.php, то в нем есть определение функции store. Если в ней ставлю exit() или die(), то ничего не происходит.
Вопрос, если происходит инициализация объекта класса VmModel:
Код
$model = VmModel::getModel($this->_cname);
, то изменения в одном из его методов(добавил в функцию store код:
Код
var_dump($data);
die();
)
должны изменять ход выполнения строки
Код
$id = $model->store($data);
а именно останов выполнения функции?
« Последнее редактирование: 05.06.2013, 17:26:51 от borro »
*

SDKiller

  • Живу я здесь
  • 2705
  • 329 / 5
  • ...ergo sum
Вам надо искать конкретную модель, которая инициализируется в данном контексте, а не абстрактную vmmodel
Так что надо выяснить что у вас в $this->_cname для начала - и смотреть фукнцию store этой модели.
*

borro

  • Завсегдатай
  • 1379
  • 22 / 0
  • желаю вам счастья
Ну гляньте hidden инпуты в конце формы - там будут или controller или view
Здравствуйте.
Волею судеб снова надо разобраться с тем, что происходит после нажатия этой кнопки Сохранить.
Если бы я тогда ответил Вам, что там в скрытом инпуте стоит
<input type="hidden" name="view" value="product">
Какой файл Вы бы посоветовали искать тогда далее чтобы вести отладку?  ^-^ Вообще дело, как вы может быть поняли, происходит в админке VirtueMart при редактировании карточки товара
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Improved AJAX Login & Register + социальные кнопки

Автор atkaa1

Ответов: 12
Просмотров: 4028
Последний ответ 07.10.2017, 18:02:29
от vipiusss
jQuarks - нет кнопки "Показывать результаты сразу" в админке

Автор Cristallizacia

Ответов: 0
Просмотров: 1360
Последний ответ 05.06.2014, 14:20:49
от Cristallizacia
[Решено] Сохранить файл на удаленном ПК и прочитать 

Автор AlekVolsk

Ответов: 18
Просмотров: 2023
Последний ответ 03.04.2014, 13:55:16
от AlekVolsk
Не загружается файл

Автор x_files_1

Ответов: 0
Просмотров: 1206
Последний ответ 24.02.2014, 13:02:36
от x_files_1
Как форму HTML с обработчиком на php превравить в модуль Joomla 3.1.5?

Автор sevzem

Ответов: 4
Просмотров: 1656
Последний ответ 14.02.2014, 18:25:10
от sevzem