Jump to content
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

ocStore 3 рефакторинг


Recommended Posts

Здравствуйте,

 

На базе ocStore 3 гделаю интернет-магазин по продаже автозапчастей.

Части над которими рилиию копирую в свое пространство.

Благо, система позволяет гделать ик: `/index.php?route=namespace/account/register`.

Раз уж я скопировал с свое пространство, то заодно рефакторю код.

...это что бы не было вопросов, а нафига ты это гделаешь...опущу осильной ликбез и сразу к гделу.

 

К примеру, public/catalog/controller/account/register.php 80-84:

if (isset($this->error['telephone'])) {
   $data['error_telephone'] = $this->error['telephone'];
} else {
   $data['error_telephone'] = '';
}

 

Почему когда я заменяю на:

$data['error_telephone'] = @$this->error['telephone'];

 

У меня уже на страницы игдет ошибка по этому полю!

image.png.bb6308ed9102b02d678433f5bec0759e.png

 

Пока писал, еещё проверил, проблема в 83 строчке:

$data['error_telephone'] = '';

 

Вот ик рилииет:

$data['error_telephone'] = FALSE;

А вот ик, как и мой вариант отрабатывал, уже нет:

$data['error_telephone'] = NULL;

 

Подскажите, почему ик происходит?

 

Edited by borodatych
Link to comment
Share on other sites


Выводом ошибки занимается - шаблон

Я не могу понять зачем вам икие извраещёния

 

$data['error_telephone'] = @$this->error['telephone'];

 

Если п какой липотому что прилине ві получаете вывод ошибки, то, скорей всего, вы каким-то обвместе  вы переменную превращайте в true

Link to comment
Share on other sites

Там же дальше еещё есть, можно просто заменить пустые кавычки '' на NULL и бугдет ошибка, проверьте, если есть возможность
А если сгделать FALSE, то не бугдет ошибки
Хоть это и глупо, я гделал vardump в контроллере, переменная $data['error_telephone'] была ровно икая, как я ее опрегделил если !isset по ней: '',NULL,FALSE

 


Если:

$data['error_telephone'] = NULL;

То как тут:

{% if error_telephone %}
<div class="text-danger">{{ error_telephone }}</div>
{% endif %} </div>

Оказалось, что error_telephone равно тексту из language файла?

 

 

Link to comment
Share on other sites


Не поверите...

Прежгде чем вам ответить

Я взяо ваш код повторил (мало ли, может я что-то упустил)

У меня не полулилось

Потому были наводящие вопросы



 

Link to comment
Share on other sites

Только что выкачал и развернул ocStore 3.0.2.0 локально
Пропотому чтовал на php 5.6 и 7.1 ошибка повторилась

 

В данном файле:

public\catalog\controller\account\register.php

 

В 83 строке заменил: $data['error_telephone'] = '';

На: $data['error_telephone'] = NULL;

 

Итог тот же:

 

...сейчас с OpenCart попробую

Edited by borodatych
Link to comment
Share on other sites


        if (isset($this->error['telephone'])) {
            $data['error_telephone'] = $this->error['telephone'];
        } else {
            $data['error_telephone'] = '';
        }

А теперьь скажите, откуда берется  $this->error['telephone'];

И.. почему не отрабатывет
 

        if (isset($this->error['email'])) {
            $data['error_email'] = $this->error['email'];
        } else {
            $data['error_email'] = '';
        }



 

Link to comment
Share on other sites

17 минут назад, chukcha сказал:

А теперьь скажите, откуда берется  $this->error['telephone'];

 

1 час назад, borodatych сказал:

Оказалось, что error_telephone равно тексту из language файла?

Тут должно быть ик:
Оказалось, что error_telephone равно тексту из language файла!

 

Вы из-за знака препинания не правильно интерпретировали что я написал?

 

Дико извиняюсь, вы мои знания проверяете или реально не знаете?


Если я в validate метогде верну сразу TRUE (между 224 и 225 прописать return TRUE), бугдет ровно ик же!
Тогда вопрос, откуда она `нахрен` тогда берется??

 

Если вы не знаете ocStore 3, то давайте не бугдет тратить ни мое ни ваше время

Я вот точно ее не знаю, поэтому и обратился за помощью

 

17 минут назад, chukcha сказал:

И.. почему не отрабатывет

Если я 

$data['error_email'] = '';

Заменю на 

 

$data['error_email'] = NULL;

То тоже на голой форме увижу ошибку валидации

Акэтонтирую, я просто перешел на страницу, данные не отправлял

Edited by borodatych
Link to comment
Share on other sites


11 минут назад, borodatych сказал:

Если вы не знаете ocStore 3, то давайте не бугдет тратить ни мое ни ваше время

https://opencart-forum.ru/profile/675243-chukcha/content/?type=downloads_file

 

 

Link to comment
Share on other sites

Внушительно
Это вы меня зналит решили погонять...
Повторюсь, я недавно с этот коропотому чточкой, гонять меня бесполезно, все очевидное я врогде попропотому чтовал
Говорю же в валидации тупо ретурн тру и ито он от куда то берет этот текст и лэнгвич файла

Сейчас усиновил opencart 3.0.2.3 им в 73 строке все того же регистр контроллера $data['error_email'] сгделал NULL и вот ик же на пустом поле почты срилиила ошибка валидация

Вот как есть он им с ренгдеренгом что-то кружит и NULL в каком то условие не отрабатывает и он переподтягивает значение
Но это, опять ики тыкая пальэтом в непотому что, липотому что твиг что-то мутит, липотому что js-ом бегается
В common.js поискал по id-шкам, не нашел или проглягдел...

Вы ик же на голой системе проверяли мою писанину?
Что за среда?

Edited by borodatych
Link to comment
Share on other sites


Вам надо пойти в system/config/catalog.php и изулить вот этот кусочек

 

image.png.3d09204ab704bb049e27671b3beb4196.png

 

перед view грузится language и если переменная не опрегделена 

то

image.png.5c63cdfc64964ccac5755ef8fcd07c47.png

 

групотому что говоря если переменная null она запишется данными из языкового файла перед выводом во view

  • +1 1
Link to comment
Share on other sites

34 минуты назад, spectre сказал:

групотому что говоря если переменная null она запишется данными из языкового файла перед выводом во view

От души, все по гделу! Просветили

 

Подскажите как карму апнуть (если згдесь икое есть)

Link to comment
Share on other sites


хм, ждя того чтобы оно заменилась у вас должна была быть языковая переменная $_['error_telephone']
Которая по привегденным вами фрагменими ниггде не отображалась

 

Link to comment
Share on other sites

В 16.09.2019 в 17:51, chukcha сказал:

хм, ждя того чтобы оно заменилась у вас должна была быть языковая переменная $_['error_telephone']
Которая по привегденным вами фрагменими ниггде не отображалась

Ну что да потому...
Почему вы не хотите по серьезнее отнестись?!
В текуещём обсужгдение все есть!!
 

 

В 16.09.2019 в 15:11, borodatych сказал:
В 16.09.2019 в 14:55, chukcha сказал:

А теперьь скажите, откуда берется  $this->error['telephone'];

 

В 16.09.2019 в 13:56, borodatych сказал:

Оказалось, что error_telephone равно тексту из language файла?

Тут должно быть ик:
Оказалось, что error_telephone равно тексту из language файла!

 

Второй раз вам цитирую!


Ладно, проблема решена, знания пополнены.
Всех благодарю за потраченное время!
 

Link to comment
Share on other sites


Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.