Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

sv2109
 Поделиться

Рекомендованные сообщения

Для чего такие сложности с получением модуля. Сколько ни покупал сразу скачивал, а здесь скачиваешь пустышку в которой написано свяжитесь с автором, он вам пришлет на почту.

Если автор заболел или уехал на отдых, да мало ли чего есть риск, что деньги ушли в никуда!

Пока жду модуль буду следить за ситуацией.

ну вот зачем эти истерики? вы получили свой модуль через 15 минут после покупки.

Если ваши "деньги уйдут в никуда" то вы всегда можете обратится к администрации форума, объяснить ситуацию и вернуть ваши деньги.

То за 2 или 3 года, что я продаю модули, еще ни разу такого не было, чтобы покупатель заплатил и не получил свой модуль.

Ссылка на комментарий
Поделиться на других сайтах

ну вот зачем эти истерики? вы получили свой модуль через 15 минут после покупки.

Если ваши "деньги уйдут в никуда" то вы всегда можете обратится к администрации форума, объяснить ситуацию и вернуть ваши деньги.

То за 2 или 3 года, что я продаю модули, еще ни разу такого не было, чтобы покупатель заплатил и не получил свой модуль.

При чем здесь истерики.

Я как покупатель о таких вещах хочу знать заранее. Напишите в описании модуля о том, что модуль присылаете лично сами, а не автоматом через сервис. И все будут заранее знать.

Честно могу сказать если бы я это знал заранее я бы не рискнул покупать.

 

Фразы на счет истерики совершенно неуместны для вашего покупателя.

Как то с самого начала неудобства и грубость со стороны продавца.

Ссылка на комментарий
Поделиться на других сайтах


Ребят, а для 2.0.1.1. есть уже? готов купить

пока нет, но скоро будет, если все хорошо, то до недели времени.
Ссылка на комментарий
Поделиться на других сайтах

пока нет, но скоро будет, если все хорошо, то до недели времени.

я уже думал исправили баг с множеством файлов

Ссылка на комментарий
Поделиться на других сайтах


Здравствуйте, автор! Пожалуйста, замените код:


<operation>
      <search position="after"><![CDATA[
public function getProduct($product_id) {        
      ]]></search>
      <add><![CDATA[
$this->load->model('catalog/promotion');
      ]]></add>
</operation>

на

    <operation error="skip">
        <search position="replace" regex="true"><![CDATA[#public function getProduct\((.*)\)#]]></search>
        <add><![CDATA[
        public function getProduct(${1})
        {
            $this->load->model('catalog/promotion');
            return call_user_func_array(array($this,'getProduct_promotion'),func_get_args());
        }
        
        public function getProduct_promotion(${1})
        ]]></add>
    </operation>

 

так как, не везде public function getProduct($product_id) { встречается.

Может быть:

public function getProduct($product_id){

или

public function getProduct($product_id)

{

или

public function getProduct( $product_id )

{

и тд...

Ссылка на комментарий
Поделиться на других сайтах


Здравствуйте, автор! Пожалуйста, замените код:

<operation>

      <search position="after"><![CDATA[

public function getProduct($product_id) {        

      ]]></search>

      <add><![CDATA[

$this->load->model('catalog/promotion');

      ]]></add>

</operation>

на

    <operation error="skip">

        <search position="replace" regex="true"><![CDATA[#public function getProduct\((.*)\)#]]></search>

        <add><![CDATA[

        public function getProduct(${1})

        {

            $this->load->model('catalog/promotion');

            return call_user_func_array(array($this,'getProduct_promotion'),func_get_args());

        }

        

        public function getProduct_promotion(${1})

        ]]></add>

    </operation>

 

так как, не везде public function getProduct($product_id) { встречается.

Может быть:

public function getProduct($product_id){

или

public function getProduct($product_id)

{

или

public function getProduct( $product_id )

{

и тд...

Нет, так быть НЕ может.

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

Понимаете. Меняя стандартный код опенкарта вы не должны ни на секунду забывать что этот код могут использовать другие модули, этого категорически нельзя делать. Ладно пару строк кода поменять, но менять своим модулем название самой используемой в опенкарте ф-ции это даже не обсуждается!

И так

public function getProduct( $product_id )

{

тоже быть не может потому что есть стандарты кодирования опенкарт! Если вы пишете модули для опенкарт, то вы должны их соблюдать, потому что их соблюдают другие и на то они и стандарты чтобы из соблюдать!

Извините за возможно сумбурный ответ, но я просто выдел код вашего модуля, который изменяет стандартные опенкартовские ф-ции и долго после этого громко ругался матом. Если вы не хотите чтобы ваш код также ругали и другие разработчики то сделайте то, о чем я писал выше, пожалуйста. 

Ссылка на комментарий
Поделиться на других сайтах

Нет, так быть НЕ может.

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

Понимаете. Меняя стандартный код опенкарта вы не должны ни на секунду забывать что этот код могут использовать другие модули, этого категорически нельзя делать. Ладно пару строк кода поменять, но менять своим модулем название самой используемой в опенкарте ф-ции это даже не обсуждается!

И так

public function getProduct( $product_id )

{

тоже быть не может потому что есть стандарты кодирования опенкарт! Если вы пишете модули для опенкарт, то вы должны их соблюдать, потому что их соблюдают другие и на то они и стандарты чтобы из соблюдать!

Извините за возможно сумбурный ответ, но я просто выдел код вашего модуля, который изменяет стандартные опенкартовские ф-ции и долго после этого громко ругался матом. Если вы не хотите чтобы ваш код также ругали и другие разработчики то сделайте то, о чем я писал выше, пожалуйста. 

В некоторых сайтах я очень часто встречал такой код, когда функция не в таком виде "fpublic unction getProduct( $product_id ) {", вы говорите о стандартах, но не везде код стандартный, люди часто вносят изменения в эти файлы на своих сайтах. Из за этого я пользуюсь таким подходом, чтобы модуль был максимально совместим. А ваших случаях если есть изменения в коде(люди часто вносят изменения в системные файлы, вообще то модели не надо считать строго системными), будет конфликт.

Ссылка на комментарий
Поделиться на других сайтах


В некоторых сайтах я очень часто встречал такой код, 

 

1. если вы где-то это встречали, то это потому что опенркат из-за своей простоты притягивает к себе огромное количество идиотов новичков, которые  до этого не написали ни одной строчки кода, а в опенкарте, так как он очень простой, начинают создавать свои модули пачками и даже продавать их. Но это абсолютно не значит что нужно опускаться до их уровня и писать такой же гавнокод. 

 

2. тут речь идет не о каких-то других модулях, а а вашем модуле и о вашем коде, который я видел, и который изменяет стандартную ф-цию модели. 

 

3. насчет моделей - по логике MVC, модель это как раз та сущность, которая меньше всего должна подвергаться изменениям. Потому что в отличие от контроллеров модели широко используются другими модулями, особенно модель товара в ИМ.

Ссылка на комментарий
Поделиться на других сайтах

1. если вы где-то это встречали, то это потому что опенркат из-за своей простоты притягивает к себе огромное количество идиотов новичков, которые  до этого не написали ни одной строчки кода, а в опенкарте, так как он очень простой, начинают создавать свои модули пачками и даже продавать их. Но это абсолютно не значит что нужно опускаться до их уровня и писать такой же гавнокод. 

 

2. тут речь идет не о каких-то других модулях, а а вашем модуле и о вашем коде, который я видел, и который изменяет стандартную ф-цию модели. 

 

3. насчет моделей - по логике MVC, модель это как раз та сущность, которая меньше всего должна подвергаться изменениям. Потому что в отличие от контроллеров модели широко используются другими модулями, особенно модель товара в ИМ.

С вами спорить бесполезно.

1. Если вы про меня, будьте уверены, я намного лучше пишу коды, я пишу и на линюксе, в отличии от вас у меня всё автоматизировано. Сравните рейтинг наших модулей, лайков. Мои модули одновременно работают под всех версий, 1 архив для всех версий. Вам далеко ещё до моего уровня.

2. Я пишу грамотный vqmod код который максимально совместим с изменениями, для этого я пользуюсь регулярными выражениями и каждый раз не возникают ошибки когда в кодах есть изменения.

3. Вы же не можете всем идиотам не менять коды в моделях. Я очень часто увидел изменения в моделях. Даже видел когда function getProduct($product_id, $default_data). Я согласен что это неправильно, но это они не поймут же! Они хотят что бы купленный модуль работал с их кодами, и не всегда модуль покупают разработчики сайтов, когда владельцы покупают модуль и увидят что модуль не работает, они обращаются к автору, а не своему разработчику. Откуда им знать что его разработчик не грамотно изменял коды?!

Ссылка на комментарий
Поделиться на других сайтах


[offtop]

 

написание текстов что на линЮксе, что в виндоувЗ  не делает код кошерным

[/offtop]

Ссылка на комментарий
Поделиться на других сайтах

[offtop]

написание текстов что на линЮксе, что в виндоувЗ  не делает код кошерным

[/offtop]

Я не о php говорю, я говорю пишу демоны на линюксе. Php пишу на винде.

Ссылка на комментарий
Поделиться на других сайтах


С вами спорить бесполезно.

1. Если вы про меня, будьте уверены, я намного лучше пишу коды, я пишу и на линюксе, в отличии от вас у меня всё автоматизировано. Сравните рейтинг наших модулей, лайков. Мои модули одновременно работают под всех версий, 1 архив для всех версий. Вам далеко ещё до моего уровня.

2. Я пишу грамотный vqmod код который максимально совместим с изменениями, для этого я пользуюсь регулярными выражениями и каждый раз не возникают ошибки когда в кодах есть изменения.

3. Вы же не можете всем идиотам не менять коды в моделях. Я очень часто увидел изменения в моделях. Даже видел когда function getProduct($product_id, $default_data). Я согласен что это неправильно, но это они не поймут же! Они хотят что бы купленный модуль работал с их кодами, и не всегда модуль покупают разработчики сайтов, когда владельцы покупают модуль и увидят что модуль не работает, они обращаются к автору, а не своему разработчику. Откуда им знать что его разработчик не грамотно изменял коды?!

1. На linux-е не пишут, его используют для написания кода... Например bash, sh, c... 

2. "Я согласен что это неправильно, но это они не поймут же!" -  Вот он, подход быдлокодинга... ИМХО (с таким подходом - жигули собирать, а не код писать)

3. MVC - систематезированный паттерн написания кода, вот стайлинг, и если взялся писать код, так будь добр - почитай как должно быть.

Ссылка на комментарий
Поделиться на других сайтах

[offtop]

написание текстов что на линЮксе, что в виндоувЗ  не делает код кошерным

[/offtop]

Сами можете сравнить наши работы. Каждый купивший мой модуль не обращается ко мне, все данные поступают на сервер моментально, модули прямо из админки активируются. У меня есть свой фирменный установщик который избавляет пользователей от головных болей. Мои модуль можно загрузить бесплатно и тестировать 3 дня. Я когда обновляю модули на своем сайте они автоматически синхронизируются с офф сайтом opencart.com(об этом уже сообщил Дениелу)

Ссылка на комментарий
Поделиться на других сайтах


1. На linux-е не пишут, его используют для написания кода...

2. "Я согласен что это неправильно, но это они не поймут же!" -  Вот он, подход быдлокодинга... ИМХО (с таким подходом - жигули собирать, а не код писать)

3. MVC - систематезированный паттерн написания кода, вот стайлинг, и если взялся писать код, так будь добр - почитай как должно быть.

1. А вы про С слышали? Мне бы стыдно стал после такого заявления, узнав что линюкс используют только для написание кода...

2. Тут идет речь не о моем коде, а о том что не все покупатели понимают что проблема в их сайте и это связан с их изменениями.

3. Меня не надо учить, учите всех покупателей которые изменяет стандартные коды отходя от стандартов.

Ссылка на комментарий
Поделиться на других сайтах


1. А вы про С слышали? Мне бы стыдно стал после такого заявления, узнав что линюкс используют только для написание кода...

2. Тут идет речь не о моем коде, а о том что не все покупатели понимают что проблема в их сайте и это связан с их изменениями.

3. Меня не надо учить, учите всех покупателей которые изменяет стандартные коды отходя от стандартов.

Так какого милово вы все свои файлы (даже известный установщик) под ионкубом держим ?

по поводу unix-ов, то поверьте, вы не единственный тут гуру, способный автоматизировать подобные соккеты\демоны и прочие скрипты, которые массивы json обрабатывают, по поводу покупателя, то они то как раз недоумевают, почему после установки, отваливается какой то модуль, а всё из за того, что нарушена логика или добавлены изменения, я не хочу дискутировать, но просто вмешательство - это крайний случай, а если хотите свой функционал - делайте по MVC - свои модели и контроллеры, что бы не пересекались со стандартными - и пишите хоть на Notepad ++, главное что бы другие прочитать и подправить могли.

Ссылка на комментарий
Поделиться на других сайтах

Вообще то, я начал не враждебный разговор. Мне не интересно, кто как пишет Я уважаю всех авторов, в том числе и Владимира. Просто я не ожидал такой реакции, когда то давно когда он мне дал советы я признался в своих ошибках и отреагировал на это оптимистично. А он отреагировал наоборот.

Я его не просил написать код в таком виде:

***

function getProduct()

{

***

а просил что бы его vqmod коды не дали "ABORTING" и нашли подходящую строку если даже код изменен на сайте.

***

Уважаемый, Владимир! Я честно не хочу испортить никому настроение, от этого для меня ничего хорошего. Если вас я разозлил, за это я прошу прошения.

  • +1 1
Ссылка на комментарий
Поделиться на других сайтах


Вообще то, я начал не враждебный разговор. Мне не интересно, кто как пишет Я уважаю всех авторов, в том числе и Владимира. Просто я не ожидал такой реакции, когда то давно когда он мне дал советы я признался в своих ошибках и отреагировал на это оптимистично. А он отреагировал наоборот.

Я его не просил написать код в таком виде:

***

function getProduct()

{

***

а просил что бы его vqmod коды не дали "ABORTING" и нашли подходящую строку если даже код изменен на сайте.

***

Уважаемый, Владимир! Я честно не хочу испортить никому настроение, от этого для меня ничего хорошего. Если вас я разозлил, за это я прошу прошения.

Ну так как раз с вашей стороны и идет эта враждебность! Я вам указал на ваши ошибки, указал не потому чтобы как-то обидеть или опустить или еще что, а потому чтобы подсказать, научить делать правильно чтобы ваши модули в будущем не конфликтовали со всем на свете и вам не пришлось писать каждому разработчику и просить поменять его код. Потому что каждый второй будет вас посылать подальше.

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

вот такой код 

function getProduct()

{

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

Ссылка на комментарий
Поделиться на других сайтах

Ну так как раз с вашей стороны и идет эта враждебность! Я вам указал на ваши ошибки, указал не потому чтобы как-то обидеть или опустить или еще что, а потому чтобы подсказать, научить делать правильно чтобы ваши модули в будущем не конфликтовали со всем на свете и вам не пришлось писать каждому разработчику и просить поменять его код. Потому что каждый второй будет вас посылать подальше.

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

вот такой код 

function getProduct()

{

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

Ну я это признаю, теперь в vqmod поменяю везде на "() {", но, всё равно такой код встречается не редко. Я этого и имел ввиду. С моими модулями больше не будет такой конфликт. Но будет полезно использовать тот код который я вам написал. Так как, я не один на свете пишу в таком стиле(но, я теперь не буду в vqmod файлах так писать что бы не было конфликта с другими дополнениями других авторов).

Ссылка на комментарий
Поделиться на других сайтах


Ну я это признаю, теперь в vqmod поменяю везде на "() {", но, всё равно такой код встречается не редко. Я этого и имел ввиду. С моими модулями больше не будет такой конфликт. Но будет полезно использовать тот код который я вам написал. Так как, я не один на свете пишу в таком стиле(но, я теперь не буду в vqmod файлах так писать что бы не было конфликта с другими дополнениями других авторов).

 

Тут дело не только в скобке у вас подход к разработке в корне не правильный!

Приведу пример.

Это оригинальный код опенкарт:

public function getProduct($product_id) {
        if ($this->customer->isLogged()) {
            $customer_group_id = $this->customer->getCustomerGroupId();
        } else {
            $customer_group_id = $this->config->get('config_customer_group_id');
        }

        $query = $this->db->query("SELECT DISTINCT *, pd.name AS name, p.image, m.name AS manufacturer, (SELECT price FROM " . DB_PREFIX . "product_discount pd2 WHERE p...");

        if ($query->num_rows) {
            $query->row['price'] = ($query->row['discount'] ? $query->row['discount'] : $query->row['price']);
            $query->row['rating'] = (int)$query->row['rating'];

            return $query->row;
        } else {
            return false;
        }
    } 

А это код, который получается после ваших изменений через vqmod (отступы сохранены):

public function getProduct($product_id)
            {
                $product = $this->getProduct_SpecialPro($product_id);
                return $this->special_pro->getProduct($product_id,$product);
            }

            public function getProduct_SpecialPro(
            $product_id) {
        if ($this->customer->isLogged()) {
            $customer_group_id = $this->customer->getCustomerGroupId();
        } else {
            $customer_group_id = $this->config->get('config_customer_group_id');
        }

        $query = $this->db->query("SELECT DISTINCT *,  pd.name AS name, p.image, m.name AS manufacturer,    (SELECT date_start FROM " . DB_PREFIX . "product_special ps
        (SELECT price FROM " . DB_PREFIX . "product_discount pd2 WHERE pd2.product_id = p.product_id AND pd2.customer_group_id = '" . (int)$customer_group_id . "' AND p...");

        if ($query->num_rows) {
            $query->row['price'] = ($query->row['discount'] ? $query->row['discount'] : $query->row['price']);
            $query->row['rating'] = (int)$query->row['rating'];

            return $query->row;
        } else {
            return false;
        }
    }

Спрашивается ЗАЧЕМ??

Зачем создавать еще одну функцию в стандартной модели?

Зачем изменять логику работы стандартного метода опенкарт (наиболее используемого метода, который используют десятки модулей) ?

Зачем грузить вашу модель через фронт контроллер? Чтобы добавить дополнительных конфликтов? 

Зачем передавать весь массив товара в метод своего модуля, которые полностью зашифрован? Неужели нельзя передать только нужные параметры?

Как бы сделал я:

1. не меняя логику работы стандартного метода getProduct

после:  

if ($query->num_rows) {

добавил бы:

$this->load->model('catalog/speсial_pro');
$query->row['special_pro'] = $this->special_pro->getProduct($product_id);

или в крайнем случае, так как я не знаю что делает ваш модуль:

$this->load->model('catalog/spesial_pro');
$query->row = $this->special_pro->getProduct($query->row);

Все! 2 строчки кода и никаких конфликтов с другими модулями в будущем!  И никаких километровых vqmod файлов.. 

 

Ссылка на комментарий
Поделиться на других сайтах

Добрый день. Был замечен такой баг. К примеру у меня на двух разных товарах подвязаны одинаковые подарки. Когда я добавляю эти два товара в корзину, то вижу в корзине 2 подарка. Но, после оформления заказа, в самом заказе только один подарок. При этом, если добавляю один товар, но в количестве 2 штуки, то подарка 2 и в корзине и в заказе. Это только у меня так или глюк в модуле?

Ссылка на комментарий
Поделиться на других сайтах


Автор решите наконец проблему с генерацией тысяч файлов (у меня их более 4000) по 2 байта на сервере. Модуль создает их даже при отключении акций в настройках!

Ссылка на комментарий
Поделиться на других сайтах


Автор решите наконец проблему с генерацией тысяч файлов (у меня их более 4000) по 2 байта на сервере. Модуль создает их даже при отключении акций в настройках!

Эти файлы нужны!

Поясню.

Код модуля вызывается каждый раз при загрузке каждого товара для получения акций для этого товара. 

То есть каждый раз происходит обращение к базе данных, вычисления, создание шаблона итд. 

Соответственно чтобы весь этот код с обращениями к базе не вызывать каждый раз и создается кеш. 

Он создается для всех товаров, даже для тех, у которых нету акций чтобы в следующий раз не обращаться лишний раз к базе. 

Решить проблему можно разве что кардинально - сделать возможность в модуле вообще не использовать кеш. 

Но это создаст дополнительную нагрузку на сервер так как для каждого товара будет делаться дополнительное обращение к базе, а если товаров на странице 50 то это +50 обращений к базе только этого модуля.

Ссылка на комментарий
Поделиться на других сайтах

Скажите, а как быть с багом, который я описал? Вы сможете его решить?

нужно тестировать модуль, пробовать воссоздать баг, после чего думать как его решить. 

Ссылка на комментарий
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.