Есть sobi2, CB и плагин CB-SOBI. В профиле пользователя отображается страничка со всеми его объявлениями. Есть там такое поле "Дата окончания публикации". Так вот, по умолчанию дата установлена "дата создания + 30 дней". Задача такова: нужно сделать кнопку "Обновить объявление", чтоб пользователь имел возможность продлевать дату публикации ещё на 30 дней. Почти со всем разобрался сам, остался один нерешенный вопрос - а как, собственно, сделать эту кнопку "Обновить"? Пробовал просто вставлять мой MySQL запрос в цикл, который выводит все данные о каждом объявлении. Работает, дата прекрасно обновляется как и было задумано. Но мне нужна именно кнопка, а не автоматическое обновление при заходе в профиль. Есть идеи?
Ответ: Запсиь в MySQL при клике на ссылку. Как? Идеи конечно есть Например вынести этот обновляющий код в отдельную функцию и вызывать отдельно, а не во всем цикле...
Ответ: Запсиь в MySQL при клике на ссылку. Как? А можно подробнее как это делается? Такая идея у меня тоже возникала, но я даже не представляю как это реализовать, т.к. с PHP почти не знаком, всё делаю методом научного тыка и c помощью логики. Вот кусок кода: Код (PHP): if(count($resutlts)) { foreach($resutlts as $resutlt) { $enddate = $resutlt->publish_down; $pf_time = strtotime($enddate); $pf_date = date("d-m-Y", $pf_time); $days = 3; // за сколько дней до истечения срока появляется возможность обновить дату $renewdays = 30; // сколько дней прибавлять к обновленной дате $renew = date( 'Y-m-d H:i:s', time() + (($renewdays) * 24 * 60 * 60) + ($mosConfig_offset * 60 * 60)); ... if((strtotime($resutlt->publish_down) < (mktime() + ($days * 86400))) && (strtotime($resutlt->publish_down) > (943912801))) { $query = "UPDATE `#__sobi2_item` SET `publish_down` = '{$renew}' WHERE itemid= '{$resutlt->itemid}'"; $database->setQuery( $query ); $database->query(); } ... } } Ещё пытался разобраться как работает стандартная кнопка Джумлы "Сохранить" в админке. Там ведь при клике происходит запись в БД введенных данных с формы. Но пока безрезультатно, слишком уж всё сложно и запутанно.
Ответ: Запсиь в MySQL при клике на ссылку. Как? Самый простой способ: вынести это в отдельный скрипт, который после выполнения всех действий будет перенаправлять пользователя обратно на страницу профиля.
Ответ: Запсиь в MySQL при клике на ссылку. Как? Тогда получается куча дополнительных проблем: 1. Т.к. это отдельный скрипт, вызвать его может кто угодно и откуда угодно. А значит нужна проверка прав доступа. 2. Нужно передавать ID пользователя этому скрипту. Как это сделать я не знаю, т.к. не программист. 3. Но всё равно таким способом получится сделать только одну кнопку для всех объявлений. А нужно каждому объявлению свою отдельную.
Ответ: Запсиь в MySQL при клике на ссылку. Как? Естественно. Но это не такая большая проблема. ID пользователя хранится в сессии, поэтому передавать его не нужно. Если ссылка генерируется скриптом, то в нее можно включить ID объявления.