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

Отправка личного сообщения из страницы объявления

  • 06 апреля 2016 г.
  • хочу сделать возможность написать личное сообщение не из страницы пользователя, а непосредственно из страницы объявления. Вывожу форму личного сообщения таким образом:

    if (! empty($result["form"]))
    {
    echo $this->get('form', 'messages', array("to" => $result['user_id'])); //переменной "to" присваиваем значение user_id (id автора объявления)
    }

    шаблон формы:

    echo '<form method="POST" action="" id="messages" class="ajax messages_form">
    <div class="block_header">'.$this->diafan->_('Написать автору').'</div>
    <input type="hidden" name="module" value="messages">
    <input type="hidden" name="action" value="add">
    <input type="hidden" name="to" value="'.$result["to"].'">
    <input type="hidden" name="redirect" value="'.(! empty($result["redirect"]) ? $result["redirect"] : '').'">';

    echo $this->get('get', 'bbcode', array("name" => "message", "tag" => "message", "value" => ""));

    echo '<br>
    <input type="submit" value="'.$this->diafan->_('Отправить', false).'">
    <div class="errors error"'.(!empty($result["error"]) ? '>'.$result["error"] : ' style="display:none">').'</div>
    </form>';



    при отправке формы, в таблицу "messages" в поле "to_user" записуется id текущего объявления, но не id - автора как положено и естественно модуль не корректно работает.... как это можно исправить?
  • 07 апреля 2016 г.
  • форму вывожу в ab.view.id.php

    if (! empty($result["form"]))
    {
    echo $this->get('form', 'messages', array("to" => $result['user_id'])); //переменной "to" присваиваем значение user_id из таблицы БД "ab"
    }


    Шаблон формы личного сообщения messages.view.form.php
    echo '<form method="POST" action="" id="messages" class="ajax messages_form">
    <div class="block_header">'.$this->diafan->_('Написать автору').'</div>
    <input type="hidden" name="module" value="messages">
    <input type="hidden" name="action" value="add">
    <input type="hidden" name="to" value="'.$result["to"].'">
    <input type="hidden" name="redirect" value="'.(! empty($result["redirect"]) ? $result["redirect"] : '').'">';

    echo $this->get('get', 'bbcode', array("name" => "message", "tag" => "message", "value" => ""));

    echo '<br>
    <input type="submit" value="'.$this->diafan->_('Отправить', false).'">
    <div class="errors error"'.(!empty($result["error"]) ? '>'.$result["error"] : ' style="display:none">').'</div>
    </form>';

    и еще вопрос:
    в файле messages.action.php в валидации введенных данных есть проверка:

    if (! empty($this->diafan->_route->show))
    {
    $_POST['to'] = $this->diafan->_route->show;
    }

    если ее убрать, то все работает. для чего она?

Новости

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

Форум