Вход • Регистрация

Редирект с кнопки отправить

  • 28 августа 2017 г.
  • Не уверен что правильная терминология, но суть вот в чем. Мне нужно сделать так, чтобы при нажатии кнопки "отправить" В модуле обратная связь, человека перекидывало на другую страницу например - mysite.ru/spasibo и главное чтобы функция отправки формы сохранилась.
    Спасибо.
    • 29 августа 2017 г.
    • Файл /modules/feedback/feedback.action.php
      Функция
      Код
      public function add()
      {
      $this->check_site_id();

      if ($this->result())
      return;

      if ($this->diafan->_captcha->configmodules('feedback', $this->site_id))
      {
      $this->check_captcha();
      }
      $params = $this->model->get_params(array("module" => "feedback", "where" => "site_id=".$this->site_id));
      $this->empty_required_field(array("params" => $params));

      if ($this->result())
      return;

      $save = DB::query("INSERT INTO {feedback} (created, site_id, lang_id, url, user_id) VALUES (%d, %d, %d, '%h', %d)", time(), $this->site_id, _LANG, getenv('HTTP_REFERER'), $this->diafan->_users->id);

      if(! empty($_POST["tmpcode"]))
      {
      DB::query("UPDATE {images} SET element_id=%d, tmpcode='' WHERE module_name='feedback' AND element_id=0 AND tmpcode='%s'", $save, $_POST["tmpcode"]);
      }

      $this->insert_values(array("id" => $save, "table" => "feedback", "params" => $params));

      if ($this->result())
      return;

      $this->send_mail();
      $this->send_sms();

      $mes = $this->diafan->configmodules('add_message', 'feedback', $this->site_id, _LANG);
      $this->result["errors"][0] = $mes ? $mes : ' ';
      $this->result["result"] = 'success';
      $this->result["data"] = array("form" => false);
      // добавляем редирект на главную страницу
      $this->result["redirect"] = BASE_PATH_HREF;

      }

      В самый конец функции добавлена строчка переадресации на главную страницу сайта
      Код
      $this->result["redirect"] = BASE_PATH_HREF;
      • 29 августа 2017 г.
      • Заместо BASE_PATH_HREF; написать ссылку на нужную страницу? Спасибо
        • 29 августа 2017 г.
        • Можно конечно вместо BASE_PATH_HREF написать вот так
          Код
          $this->result["redirect"] = 'https://user.diafan.ru/forum/show4202/';

          Но это не по фэн-шую. Лучше, например, так (редирект на корзину товаров)
          Код
          $this->result["redirect"] = BASE_PATH_HREF.$this->diafan->_route->module("cart");

          Подробнее здесь.

          Успехов.

Новости

  • 18 июня
  • В сборке большое обновление demo-шаблона, дополнительная защита от спама, улучшение YML-импорта и еще много важного и интересного.
  • 24 апреля
  • В новой сборке совершили революцию в структурировании кастомизированной информации в шаблонах, добавили авторегистрацию пользователей, усовершенствовали защиту от спама, актуализировали накопительную скидку, а также улучшили производительность и стабильность работы системы.
  • 12 января
  • После выхода сборки 7.1 мы выпустили уже три патча, в каждом из которых улучшаем административную часть сайта. Сборка DIAFAN.CMS 7.1.3 уже доступна к установке. 

Форум