- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Зачем быть уникальным в мире, где все можно скопировать
Почему так важна уникальность текста и как она влияет на SEO
Ingate Organic
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Есть самописный компонент фирм в Джумле, все работает.
Когда-то давно при наполнении базы, не у всех фирм через геокодер Яндекса точно определились адреса.
В недрах компонента фирм есть специальная функция которая чекает адрес через геокодер, определяет район города, ближайшее метро и все записывает в базу.
Если переопределять такие адреса через админку - все нормально обрабатывает. Но таких адресов оч. много, вручную не вариант.
В админке я добавляю адреса через форму, вот ее код:
<form class="add-address" method="post" action="/administrator/index.php">
<div class="msg"></div>
<input type="text" name="geo_code" style="width: 500px; padding: 3px;" placeholder="г. Москва ул. Ленина 72" value="" />
<input type="hidden" name="item_id" value="<?php echo $this->item->id; ?>" />
<input type="hidden" name="option" value="com_firm">
<input type="hidden" name="controller" value="action">
<input type="hidden" name="view" value="action">
<input type="hidden" name="format" value="raw">
<input type="hidden" name="task" value="addAddress">
<input type="submit" name="submit" style="padding: 3px 7px;" value="Добавить">
</form>
</div>
Насколько я понимаю форма передает введенный мной адрес - geo_code
и id фирмы - $this->item->id;
Далее я нашел в недрах админки эту функцию, она конечно огромная
Насколько я опять понимаю, на вход она принимает адрес и id фирмы которые приходят через форму.
Далее решил написать скрипт для автоматизации задуманного
Dram, вариантов 2:
1. Делать post запросы на обработчик формы;
2. Временно отредактировать метод addAddress:
И вызывать указывая item_id и geo_code.
Второй вариант лучше.
Да, но я не могу понять как вызывать функцию из другого самописного скрипта?
В него нужно инклюдить файл с функцией?
В него нужно инклюдить файл с функцией?
Да. Но как правильнее это делать в Joomla - я не знаю.
---------- Добавлено 03.09.2019 в 12:56 ----------
Можете найти место где вызывается метод addAddress и временно вставить ваш foreach.
Далее я нашел в недрах админки эту функцию, она конечно огромная
Смотря где "в недрах админки". И смотря что она ещё использует.
Если не слишком завязана на Joomla и JRequest::getVar - самое "завязанное", то как и предлагает Gerga, можно её слегка подправить..
Только я бы с сохранением "обратной совместимости" сделал как-то так:
Можете найти место где вызывается метод addAddress и временно вставить ваш foreach.
Мысль интересная, а запустить к исполнению все это добро тогда как?
Так я обычно пишу че нить простенькое, кладу в корень и через консоль запускаю:
---------- Добавлено 03.09.2019 в 15:27 ----------
Инлюднул нужный вайл
и попробовал вызвать так
addAddress($item->item_id, $item->geo_code);
}
Получил
Error: Failed to start application: Call to undefined function addAddress()
Функцию предварительно поправил, как советовал ivan-lev
{
$response = array();
$item_id or $item_id = JRequest::getVar('item_id');
$geo_code or $geo_code = JRequest::getVar('geo_code');
if(!empty($geo_code))
{
Мысль интересная, а запустить к исполнению все это добро тогда как?
Так же, как вы переопределяете адреса через админку. Т.е. в форме из старттопика нажать на "Добавить" и таким образом запустите.
Получил
Error: Failed to start application: Call to undefined function addAddress()r
Да, потому что addAddress - это метод класса. Вам необходимо определить что это за класс. Создать объект и вызвать метод addAddress.
Инлюднул нужный вайл
Вангую одно или больше из трёх:
- не тот нужный файл (в котором на самом деле нет функции),
- функция - это не функция, а метод внутри класса.
- с неймспейсами чехарда..
Да, потому что addAddress - это метод класса. Вам необходимо определить что это за класс. Создать объект и вызвать метод addAddress.
Посмотрел, нужна функция находится внутри класса
{
..............
Как ее тогда вызвать?
Dram,
Попробуйте. Если будет ошибка, покажите метод __construct.
Gerga, большое спасибо, все сработало!