Новости Joomla

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

voland

  • Легенда
  • 11030
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Суть - имею плагин, в котором парочка зависимых второй от результата первого curl-запросов.

Так как они могут исполняться долго - появилась мысль вынести их в отдельный php-файл и вызывать из плагина тем же curl-ом (не дожидаясь ответа).

Теперь вопрос - как лучше (правильнее, безопасно) организовать этот файл?
Стоит ли в него подгружать всё ядро, как фильтровать возможные левые запросы итп?

Какие идеи или опыт есть с подобного рода структурами?
*

Aleks.Denezh

  • Живу я здесь
  • 3406
  • 428 / 4
Мало инфы, как вызывается файл из плагина, и зачем cURL ом дергать в пределах одного сайта?
*

voland

  • Легенда
  • 11030
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
А как еще можно?
Пока никак не вызывается, пока код внутри события onAfterSave (условно)

Вот и думаю, так как пока код не исполнится, сохранение не произойдет, вынести часть, что отсылает инфу в отдельный файл.
Так понятнее?
*

AlekVolsk

  • Гуру
  • 6915
  • 415 / 4
стандартно, через include, вся остальная безопасность ложится на содержание подключаемого файла
*

voland

  • Легенда
  • 11030
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
стандартно, через include, вся остальная безопасность ложится на содержание подключаемого файла
Нет. У меня о другом тема.
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Суть - имею плагин, в котором парочка зависимых второй от результата первого curl-запросов.

Так как они могут исполняться долго - появилась мысль вынести их в отдельный php-файл и вызывать из плагина тем же curl-ом (не дожидаясь ответа).
Не очень понятно, как связана работа плагина с этими запросами: создается впечатление, что никак :(. И потом из плагина опять curl'ом, но уже внутри сайта (?).
Не будь паразитом, сделай что-нибудь самостоятельно!
*

Aleks.Denezh

  • Живу я здесь
  • 3406
  • 428 / 4
Сергей а подробнее можешь описать что делает плагин, и что должны получить другие плагины? ибо я не понимаю зачем нам и cURL и т.д.

Не очень понятно, как связана работа плагина с этими запросами: создается впечатление, что никак :(. И потом из плагина опять curl'ом, но уже внутри сайта (?).
И вот я о том же, cURL это на другой сайт, внутри своего сайта это бред)
*

voland

  • Легенда
  • 11030
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
У нас сохраняется какой-то материал.
Во время сохранения мне нужно сообщить об этом стороннему сервису, что появилось вот такая вот штука.
Делаю я это в плагине по событию сохранения.

Чтобы сообщить сервису по RestAPI - надо сделать 2 запроса (первый - авторизация, второй собственно сообщение)
В принципе, ни обрабатываются быстро, но бывают же разные ситуации по связности сети и доступности сервисов, поэтому, чтобы сохранение материала не тормозилось, я и хочу выделить часть кода в асинхронно исполняемую ветку.
Так как пых, насколько я понимаю, не поддерживает без костылей асинхронность я и хочу сделать это через cURL к внутреннему файлу.

Логичненько?
*

Aleks.Denezh

  • Живу я здесь
  • 3406
  • 428 / 4
Логичненько?
Нет )
Варианта два для этого:
1. Очереди что то типа: https://habrahabr.ru/post/142210/
2. Делаешь таблицу задач, в ней пишешь задачу, и пишешь например id материала.. и бегаешь кроном, берешь задачи определяешь какая задача, берешь материал, выполняешь нужные действия, файл положить на уровень выше чем сайт что бы к нему не было доступа извне..

curl тут нафиг не нужен...
*

voland

  • Легенда
  • 11030
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
1. Очереди что то типа: https://habrahabr.ru/post/142210/
Читаю
Цитировать
aptitude install gearman-job-server
и как это коррелируется что плагин для Joomla и у всех разные шаред-хостинги?

Речь ведь не про свой сервер, а про плагин для Joomla
*

Aleks.Denezh

  • Живу я здесь
  • 3406
  • 428 / 4
Читаюи как это коррелируется что плагин для Joomla и у всех разные шаред-хостинги?
Речь ведь не про свой сервер, а про плагин для Joomla
по этому я написал второй вариант!
*

voland

  • Легенда
  • 11030
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
по этому я написал второй вариант!
Опять же не вариант.
Откуда доступ к крону и к папке на уровень выше в сферическом ваку…  хостинге?

Чем мой вариант то плох?
Вот только просьба не уходить в такую дискуссию.
*

Aleks.Denezh

  • Живу я здесь
  • 3406
  • 428 / 4
Опять же не вариант.
Откуда доступ к крону и к папке на уровень выше в сферическом ваку…  хостинге?

Чем мой вариант то плох?
Вот только просьба не уходить в такую дискуссию.
Да можно через cURL асинхронно бахать, я бы например сделал через крон, можно же и не вынося на уровень выше защитить файл для крона доступа извне.. curlom так наверно не выйдет..
*

voland

  • Легенда
  • 11030
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Ну то есть мы и вернулись к вопросу сформулированному в стартпосте.
Впрочем, уже есть идея как это сделать безопасно )
*

Aleks.Denezh

  • Живу я здесь
  • 3406
  • 428 / 4
Ну то есть мы и вернулись к вопросу сформулированному в стартпосте.
Впрочем, уже есть идея как это сделать безопасно )
ну смотри с CRON
1. Создаем  например cron/cron.php
2. в паке cron кидаем .htaccess в котором только deny from all
3. Все извне ты не зайдешь, cURL тебя тоже не пустит сюда..
4. Создаем табличку с задачами
5. в плагине делаем сохранение задачи в таблицу
6. для удобства подрубаем в cron/cron.php Joomla framework
7. делаем запрос в табличку с задачами
8. выполняем их в цикле неспешно, и удаляем выполненные
9. запускаем cron на cron/cron.php!
я так делал для парсинга больших данных в одном магазине.. но там свой выделенный сервер и я мог ложть скрипт на уровень выше...

По cURL идей нету, кроме как передавать токен например и/или какой то секретный ключ!
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
Я вроде проще придумал (не вникая в подробности правда)..

После сохранения материала, плагином скрыто выводить реквест(если создание), по нему можно тут же аяксом отправлять уведомление..
в углу даже датчик можно запилить, чтобы в случае успеха зеленел.. :-X

Или, на создание материалов повесить триггер чтобы создавалась запись в #__just_added каком нибудь, и мини крон будет бегать только по ней, отправил-удалил..
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

voland

  • Легенда
  • 11030
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Да идея простая. Сохранять параметры в файл и туда же токен.
Токен в параметр.
Файл берется, обрабатывается и удаляется.
Всё, минимум кода, ничего не надо подключать
*

Aleks.Denezh

  • Живу я здесь
  • 3406
  • 428 / 4
Я вроде проще придумал (не вникая в подробности правда)..
А стоило бы вникнуть в подробности ) Ведь всем этим занимается плагин )

 
Да идея простая. Сохранять параметры в файл и туда же токен.
Токен в параметр.
Файл берется, обрабатывается и удаляется.
Всё, минимум кода, ничего не надо подключать
а файл береться обрабатывается и удаляется чем? и зачем в нем токен?
*

voland

  • Легенда
  • 11030
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
А стоило бы вникнуть в подробности ) Ведь всем этим занимается плагин )

 а файл береться обрабатывается и удаляется чем? и зачем в нем токен?
Формируется в плагине, берется и обрабатывается файлом, что будет курлы слать.
Зачем - хм, может и лишнее, просто дополнительная проверка, чтоб не обрабатывал левые запросы
*

voland

  • Легенда
  • 11030
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
Я вроде проще придумал (не вникая в подробности правда)..

После сохранения материала, плагином скрыто выводить реквест(если создание), по нему можно тут же аяксом отправлять уведомление..
в углу даже датчик можно запилить, чтобы в случае успеха зеленел.. :-X

Или, на создание материалов повесить триггер чтобы создавалась запись в #__just_added каком нибудь, и мини крон будет бегать только по ней, отправил-удалил..
Да, хорошие идеи, чуть сложнее лишь, +
*

Aleks.Denezh

  • Живу я здесь
  • 3406
  • 428 / 4
Формируется в плагине, берется и обрабатывается файлом, что будет курлы слать.
Зачем - хм, может и лишнее, просто дополнительная проверка, чтоб не обрабатывал левые запросы
только токен бессмысленно слать скорее всего...
*

Aleks.Denezh

  • Живу я здесь
  • 3406
  • 428 / 4
Да, хорошие идеи, чуть сложнее лишь, +
И как это будет работать? у тебя же плагин гоняет данные, тебе же надо будет вывести какой то невидимый блок который будет слать AJAX запрос, а если пользователь нажмет сохранить и закрыть, и как ты поймешь что надо вставлять какой то блок?
*

shurakana

  • Давно я тут
  • 792
  • 50 / 6
И как это будет работать? у тебя же плагин гоняет данные, тебе же надо будет вывести какой то невидимый блок который будет слать AJAX запрос, а если пользователь нажмет сохранить и закрыть, и как ты поймешь что надо вставлять какой то блок?

"...нужен плагин, без плагина разговора не будет!"..)))

Тогда у Joomla сверхспособности есть, она как то понимает что надо вывести сообщение, о том что материал добавлен..
Эта подпись отображается внизу каждого Моего сообщения. Я также могу использовать BB код и смайлы.
*

voland

  • Легенда
  • 11030
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
И как это будет работать? у тебя же плагин гоняет данные, тебе же надо будет вывести какой то невидимый блок который будет слать AJAX запрос, а если пользователь нажмет сохранить и закрыть, и как ты поймешь что надо вставлять какой то блок?
Мне не надо ничего выводить.
Просто отправить и не важен результат.

Ну как не важен - ну логи может писать в крайнем случае
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Да, с асинхронностью в PHP вариантов мало, и все :) извращенные: cURL, socket, cron, AJAX. Мне больше понравился вариант AJAX, предложенный shurakana именно для этого случая: зеленая лампочка - это круто :).
Правильно, так давно никто не делает. cURL использовать нет смысла. Это все равно что на танке по грибы ездить.
?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

Aleks.Denezh

  • Живу я здесь
  • 3406
  • 428 / 4
Мне не надо ничего выводить.
Просто отправить и не важен результат.

Ну как не важен - ну логи может писать в крайнем случае
и как ты собираешься отправить AJAX запрос без вывода в HTML данных для AJAX запроса?  
*

Septdir

  • Живу я здесь
  • 3370
  • 168 / 4
Ну либо я туплю либо voland перемудрил. Правда у меня три варианта получилось.
1. Стандартно. На afterSave вещаем две функции: Авторизацию (там наверняка ответ приходит в json) если ок запускаем отправку с полученным параметром (что там кей или токен). Старо как мир.
2. Описанный Aleks.Denezh вариант с кроном.
3. Описанный Aleks.Denezh вариант с кроном. Но не через базу, через RSS она один фиг генерируется. (кстати мб у сервиса вообще это есть в функциланле).

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

voland

  • Легенда
  • 11030
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
*

voland

  • Легенда
  • 11030
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
и как ты собираешься отправить AJAX запрос без вывода в HTML данных для AJAX запроса? 
Блин, не надо мне AJAX, мне односторонне же достаточно!
*

fsv

  • Живу я здесь
  • 2765
  • 402 / 2
У нас сохраняется какой-то материал.
Во время сохранения мне нужно сообщить об этом стороннему сервису, что появилось вот такая вот штука.
Предполагаю, речь о плагине пушей из другой темы, который как бы готов.)
Просто интересно, я несколько раз сохраняю материал в процессе его создания. Думаю, я не один такой. Каждый раз пуш полетел?
Отдельную кнопку я бы сделал, чтобы осознанно ее нажать, когда надо. И js-ом.
Веб-разработка: заказ. Только новая объемная разработка. Качественно, дорого.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как правильно?

Автор rafaello9

Ответов: 1
Просмотров: 470
Последний ответ 20.05.2020, 15:46:28
от robert
Как правильно записать дату создания записи в БД?

Автор ImPuLsE

Ответов: 13
Просмотров: 2779
Последний ответ 11.09.2019, 22:58:57
от sev07
Получить данные из поля " file", и передать в файл обработчик

Автор Glog

Ответов: 5
Просмотров: 1324
Последний ответ 01.08.2017, 13:55:40
от Glog
Не подключается языковой файл

Автор b2z

Ответов: 22
Просмотров: 6434
Последний ответ 02.04.2017, 13:27:37
от Septdir
Как достать правильно путь картинки для статьи из БД?

Автор SimonovSergey

Ответов: 2
Просмотров: 1000
Последний ответ 25.01.2016, 14:11:57
от SimonovSergey