[Помогите] Добавление своего поля в validateForm()

Тема в разделе "OpenCart", создана пользователем mmaaxx9, 11 сен 2013.

  1. mmaaxx9

    mmaaxx9

    Регистрация:
    11 сен 2013
    Сообщения:
    24
    Симпатии:
    4
    Доброго времени суток. Моя проблема в следующем: в админке проверяю поле length_dresses через встроенный метод validateForm() вписываю ошибку
    PHP:
    $this->error['length_dresses'] = $this->language->get('error_length_dresses');
    , но в шаблоне при обращении к $error_length_dresses вылазит NOTICE... Open Cart 1.5.4.1
     
  2. SmileOk

    SmileOk

    Регистрация:
    29 янв 2013
    Сообщения:
    84
    Симпатии:
    27
    Напишите пожалуйста полный текст ошибки.
     
  3. GaD

    GaD

    Регистрация:
    24 мар 2013
    Сообщения:
    59
    Симпатии:
    24
    в языки добавил error_length_dresses?
     
  4. mmaaxx9

    mmaaxx9

    Регистрация:
    11 сен 2013
    Сообщения:
    24
    Симпатии:
    4
    Да добавил, в контроллере все отрабатывает, а шаблоне нет
    --- Добавлено, 12 сен 2013 ---
    language file
    PHP:
    $_['error_length_dresses']  = 'Укажите длину платья!';
    ControllerCatalogProduct
    PHP:
    if (!isset($this->request->post['length_dresses'])) {
                
    $this->error['length_dresses'] = $this->language->get('error_length_dresses');
            }
    product_form.tpl
    PHP:
     <?php if ($error_length_dresses) { ?>
                              <span class="error"><?php echo $error_length_dresses?></span>
                          <?php ?>
    NOTICE
    Код:
    Notice: Undefined variable: error_length_dresses inZ:\home\opencart\www\vqmod\vqcache\vq2-admin_view_template_catalog_product_form.tplon line 186
     
    Последнее редактирование: 12 сен 2013
  5. SmileOk

    SmileOk

    Регистрация:
    29 янв 2013
    Сообщения:
    84
    Симпатии:
    27
    Попробуйте в ControllerCatalogProduct
    Код:
    if (isset($this->request->post['length_dresses'])) {
                $this->data['length_dresses'] = $this->request->post['length_dresses'];
            } else {
                $this->data['length_dresses'] = '';
            }
    
    
    
    if (isset($this->error['length_dresses'])) {
                $this->data['error_length_dresses'] = $this->error['length_dresses'];
            } else {
                $this->data['error_length_dresses'] = '';
            }  
    И после функции protected function validate() {

    Код:
    if ((utf8_strlen($this->request->post['length_dresses']) < 1) || (utf8_strlen($this->request->post['length_dresses']) > 32)) {
                  $this->error['length_dresses'] = $this->language->get('error_length_dresses');
            }
     
  6. mmaaxx9

    mmaaxx9

    Регистрация:
    11 сен 2013
    Сообщения:
    24
    Симпатии:
    4
    как я понимаю массив error служит как механизм вывода ошибки на станицу, а текст ошибки нужно передавать как обычную переменную через массив data?