Новости Joomla

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

SeBun

  • BanMaster
  • 4030
  • 259 / 5
  • @SeBun48
О cron и платежных системах
« : 29.01.2015, 14:43:51 »
Буду признателен, если подскажете ответ на такой вопрос: компонент имеет собственную платежную систему и работает с cron. Это значит, что должен идти обмен данными этого компонента и сервером платежного агрегатора или запускаться скрипт по запросу из крона. Как мы знаем, компонент располагается в папке components/com_componentname. Возник вопрос - уместно ли будет давать, скажем, тем же платежным агрегаторам прямую ссылку на файл, ответственный за какие то операции, например, прием сообщения от агрегатора (расположенного, к примеру, в components/com_componentname/payments/...)? То же самое про крон - уместно ли будет прописывать прямую ссылку на компонент?

В случае с кроном проверить запрос просто, ибо запрос всегда идет с localhost и он может напрямую обратиться к файлу, запускающего остальные процедуры. Но в случае с платежными агрегаторами как поступить - не знаю. Ранее подобные системы делал, но таких вопросов не ставил, а ссылки приводил к нужному виду через htaccess. А как обстоят с этим дела в Joomla?
Оказываю услуги по Joomla | Миграция/Обновление | Сопровождение | IT-аутсорсинг | Недорогие домены и хостинг
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Re: О cron и платежных системах
« Ответ #1 : 29.01.2015, 19:43:21 »
В Joomla под такие дела принято создавать контроллер и запускать его в контексте Joomla а не напрямую. например http://my_site.ru/?option=com_componentname&task=controller.method
Где com_componentname - название компонента, controller - название контроллера, method - название метода (функции) контроллера, которая запустится по этому адресу.
*

SeBun

  • BanMaster
  • 4030
  • 259 / 5
  • @SeBun48
Re: О cron и платежных системах
« Ответ #2 : 30.01.2015, 08:58:32 »
Благодарю за ответ! То есть получается, что допуск извне контролируется скриптами J и мне не нужно писать допольнительные классы проверки? Ок. Начинаю писать первый компонент. Ох как я не любил Joomla лет 8... А первый модуль написал - оказалось, что зверь не только не страшный, но и весьма удобный  ;D
Оказываю услуги по Joomla | Миграция/Обновление | Сопровождение | IT-аутсорсинг | Недорогие домены и хостинг
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Re: О cron и платежных системах
« Ответ #3 : 30.01.2015, 10:07:40 »
Для проверок и фильтрации есть много готового добра в Joomla, главное им не пренебрегать(JInput для фильтрации входящих данных и т.п.). Само по себе ничего не защитится.
*

SeBun

  • BanMaster
  • 4030
  • 259 / 5
  • @SeBun48
Re: О cron и платежных системах
« Ответ #4 : 30.01.2015, 22:10:08 »
Можете дать пример грамотно написанного компонента? Сейчас изучаю joomlablog.ru, больше ничего стоящего по J3 в русском сегменте не нашел. Ну и здесь много материала, на joomla-support много (у них дизайн глаза режет ппц), но, как всегда, много времени уходит на поиск. И в таких случаях, наверное, проще спросить.  ::)
Оказываю услуги по Joomla | Миграция/Обновление | Сопровождение | IT-аутсорсинг | Недорогие домены и хостинг
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Re: О cron и платежных системах
« Ответ #5 : 30.01.2015, 22:18:01 »
Пример грамотно написанного компонента - в самой J, выбирайте любой. Любой ()или почти любой - за редким исключением) компонент разбит на 3 части: админка (/administrator/components/), фронт (/components/) и языковые файлы. Разберетесь.
*

SeBun

  • BanMaster
  • 4030
  • 259 / 5
  • @SeBun48
Re: О cron и платежных системах
« Ответ #6 : 31.01.2015, 20:45:13 »
Да, спасибо, уже многое понял как раз разбираясь в компонентах из коробки. В принципе, по моему вопросу неясные моменты пока есть, но разбираюсь. Сейчас пишу простенький компонент, пока Google отвечает на все возникающие вопросы.

Кстати, если кому интересно...
Спойлер
[свернуть]
Оказываю услуги по Joomla | Миграция/Обновление | Сопровождение | IT-аутсорсинг | Недорогие домены и хостинг
*

AlekVolsk

  • Гуру
  • 6913
  • 416 / 4
Re: О cron и платежных системах
« Ответ #7 : 01.02.2015, 17:54:36 »
Сори за флуд.
Интересно, я каким боком успел к вам в знакомые записаться? Во всяком случае никнейм "sebun" доселе мне небыл знаком.
*

SeBun

  • BanMaster
  • 4030
  • 259 / 5
  • @SeBun48
Re: О cron и платежных системах
« Ответ #8 : 01.02.2015, 19:21:23 »
Сори за флуд.
Интересно, я каким боком успел к вам в знакомые записаться? Во всяком случае никнейм "sebun" доселе мне небыл знаком.
Если мы ранее не пересекались, это не значит, что я о вас не знаю. Я имел ввиду то, что люди знакомые. Раньше часто приходилось искать разного рода информацию, и натыкался на ответы. К примеру, ник b2z, я его знаю в основном по публикациям на joomlablog.ru и даже пару лет назад задавал ему вопросы. Arkadiy так же мне отвечал, только не на этом сайте... Да это и не важно. Я лишь хотел показать, что люди все те же. Да и если однажды задал вопрос, получил ответ, а завтра меня уже тут никто и не вспомнит. Кстати, на этом сайте я был зареган в 2008 или 2009-м году, но то ли ник забыл, то ли удалили за отсутствие посещаемости. Да это и не важно. В любом случае я хотел выразить благодарность за труд. Вот и все. Сорь за флуд, но сами первые начали )
Оказываю услуги по Joomla | Миграция/Обновление | Сопровождение | IT-аутсорсинг | Недорогие домены и хостинг
*

SeBun

  • BanMaster
  • 4030
  • 259 / 5
  • @SeBun48
Re: О cron и платежных системах
« Ответ #9 : 15.02.2015, 21:31:22 »
В Joomla под такие дела принято создавать контроллер и запускать его в контексте Joomla а не напрямую. например http://my_site.ru/?option=com_componentname&task=controller.method
Где com_componentname - название компонента, controller - название контроллера, method - название метода (функции) контроллера, которая запустится по этому адресу.

Не пойму никак. Сейчас изучаю документацию с официального сайта. Там говорится, что если задать ссылку вида
Код
http://localhost/index.php?option=com_forecast&task=insert
то Joomla будет искать метод insert в контроллере по умолчанию. Я создал этот метод для проверки, он работает с проверочными данными. А вот дальше не могу врубиться. То, о чем вы писали выше, здесь речь идет о субконтроллерах (если я ставлю task=controller.method, то J ищет controller в папке controllers и пытается подключить method)? Я правильно понял?

Еще возникла проблема с моделью. Есть две модели, лежат в разных папках с разными названиями. Два разных вида используют каждый свою модель. Но один вид получает данные не из своей модели.

Вид:
Спойлер
[свернуть]

Модель:
Спойлер
[свернуть]

На сайте написано:
Цитировать
Note: $this->get() is a member of JViewLegacy::get which is a proxy to get* methods of the default model where * is populated with the value of the first parameter passed to get()

Но вид берет данные не из той модели, несмотря на то, что разные названия папок и разные классы, одинаковые лишь  $this->get('Msg').
« Последнее редактирование: 16.02.2015, 00:04:54 от sebun »
Оказываю услуги по Joomla | Миграция/Обновление | Сопровождение | IT-аутсорсинг | Недорогие домены и хостинг
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Re: О cron и платежных системах
« Ответ #10 : 16.02.2015, 07:07:48 »
А что за названия папок? Все модели лежат в одной папке (по правилам)
*

SeBun

  • BanMaster
  • 4030
  • 259 / 5
  • @SeBun48
Re: О cron и платежных системах
« Ответ #11 : 16.02.2015, 12:59:27 »
А что за названия папок? Все модели лежат в одной папке (по правилам)
Я для каждого представления создаю свою папку, как написано в оф. документации, а модели да, в папке models, только с разными названиями.
Цитировать
Есть две модели, лежат в разных папках с разными названиями. Два разных вида используют каждый свою модель.
Извиняюсь, что ввел в заблуждение, перепутал. В разных папках лежат представления. Модели в одной папке. В официальной документации не очень понятно, что к чему, нужно иметь какие то базовые знания в программировании на Joomla, что бы понять, что там написано. Я раньше никогда не занимался разработкой под Joomla, поэтому сложно вникнуть. Плюс в интернете много документации под старые версии, 1.5, 2.5, там многое отличается от J3, поэтому с ходу вникнуть проблематично.
« Последнее редактирование: 16.02.2015, 13:09:42 от sebun »
Оказываю услуги по Joomla | Миграция/Обновление | Сопровождение | IT-аутсорсинг | Недорогие домены и хостинг
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Re: О cron и платежных системах
« Ответ #12 : 16.02.2015, 22:12:06 »
Единственный вариант, который я могу предположить - в контроллерах обоих видов указана одна и та-же модель. Ничего другого пока в голову не идет. Если нигде явно не указана модель, то вид берет одноименную себе модель по умолчанию.
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
Re: О cron и платежных системах
« Ответ #13 : 16.02.2015, 23:00:12 »
Да, нужно видеть контроллеры. Там видимо что-то намутили.
*

SeBun

  • BanMaster
  • 4030
  • 259 / 5
  • @SeBun48
Re: О cron и платежных системах
« Ответ #14 : 18.02.2015, 01:21:35 »
Контроллер всего один. В нем два метода. Первый метод display.
Спойлер
[свернуть]

Там, где
Код
$model = $this->getModel('Forecast');
стоит switch вида
Код
if ($view = $this->getView($vName, $vFormat))
{
// Do any specific processing by view.
switch ($vName)...
просто убрал лишний код для наглядности, подключение модели в нем стоит по дефлоту.

Второй метод должен срабатывать (и срабатывает) при задании tаsak:
Спойлер
[свернуть]
Сейчас есть пока непонимание того, как классы связываются между собой. На изучение вопроса нужно время. В этом контроллере код брал из примеров и попутно разбирался в устройстве готовых модулей.

Вид LoadData:
Спойлер
[свернуть]
« Последнее редактирование: 18.02.2015, 01:27:06 от sebun »
Оказываю услуги по Joomla | Миграция/Обновление | Сопровождение | IT-аутсорсинг | Недорогие домены и хостинг
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Re: О cron и платежных системах
« Ответ #15 : 18.02.2015, 05:19:36 »
Ну если у вас всего один контроллер и явно и безусловно указывается модель, то вы имеете то, что написали. Сначала уберите выбор модели полностью, если не поможет, то вставляйте выбор в свое условие где выбираете виды. И выбирайте соответствующую виду модель.
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
Re: О cron и платежных системах
« Ответ #16 : 18.02.2015, 10:10:46 »
Зря убрали switch. Выложите полностью метод display контроллера.

Цитировать
Сейчас есть пока непонимание того, как классы связываются между собой.
Модель с представлением связывается через $view->setModel();
*

SeBun

  • BanMaster
  • 4030
  • 259 / 5
  • @SeBun48
Re: О cron и платежных системах
« Ответ #17 : 18.02.2015, 12:17:43 »
Модель с представлением связывается через $view->setModel();
Дмитрий, я извиняюсь за наглость, но не поясните ли сам принцип организации компонента? Я несколько лет использовал процедурный стиль программирования, сравнительно недавно перешел на ООП, а с MVC столкнулся только в конце прошлого года, когда встала необходимость писать под Joomla. Причем сразу 3 версии (основная масса документации для ранних версий). У вас в жумлаблоге много информации, но в основном там стоят задачи и показаны пути их решения. Мне не хватает понимания взаимодействия процессов. Это как в фотошопе - куча слоев выстраивается в одну картинку, а тут я не пойму, как эти слои выстраиваются и взаимодействуют. Изучение документации дает понимание, постепенно, по чайной ложке. Но время идет, клиент ждет... Я даже немного отошел от принципов MVC и начал прямо в контроллерах подключать классы, в принципе задачу я решаю. Но это как в авто - рулить и ногами можно. Вы работаете в банковской сфере, вам знакома программа "Бисквит" от ИБС? У нас специалисты до сих пор не знают, как и через какую задницу в ней закручено и как работает, хотя доступ к некоторому коду есть. Можно как то на примере слоев, схематично показать, как различные элементы (контроллеры, модели, представления и прочее) связываются между собой в единую структуру? Я видел множество схем, но они дают общее представление, но не нашел ни одной схемы уровня классов.

P.S. Кажется, нашел именно то, что искал.
« Последнее редактирование: 18.02.2015, 12:45:00 от sebun »
Оказываю услуги по Joomla | Миграция/Обновление | Сопровождение | IT-аутсорсинг | Недорогие домены и хостинг
*

b2z

  • Глобальный модератор
  • 7287
  • 778 / 0
  • Разраблю понемногу
Re: О cron и платежных системах
« Ответ #18 : 18.02.2015, 13:13:44 »
Да, по ссылке, которую нашли неплохо все описано. Правда остальной код у них приведен как для Joomla 1.5, так и для 2.5 вперемешку. Но в целом концепция верная.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться