Jump to content
Sign in to follow this  
freelancer

проблемы совместимости opencart

Recommended Posts

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

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

 

90% проблема в теме, которую использует покупатель

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

справедливости ради, беру код из тех же версий

default

<input type="button" value="<?php echo $button_cart; ?>" onclick="addToCart('<?php echo $product['product_id']; ?>');" class="button" />

metroshop

<div class="link-cart" onclick="addToCart('<?php echo $product['product_id']; ?>');"><?php echo $button_cart; ?></div>

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

если кто видел модуль Intelligent Product Labels, у него vqmod xml очень длинный. потому как автор постоянно добавляет правила для каждой новой темы или дополнения

или вот ещё

    <?php $counter = 0; foreach ($products as $product) {
       if (($counter+3) %3 == 0) $xclass="span-first-child";
       else $xclass=""; ?>        
    <div class="span <?php echo $xclass; ?>">

тоже самое можно реализовать, добавить строчку кода в js функцию display, но в этом случае останется совместимость.

$(".product-" + view +" > div.span:nth-child(3n+1)").addClass("span-first-child");

вообще с помощью display можно как угодно вертеть выводом товаров без потери совместимости.

 

кроме как не знанием движка я не могу объяснить зачем темо-писатели вырезают функционал.

так например в одних темах встречал когда вырезают подключение сторонних js скриптов или css файлов

<?php foreach ($styles as $style) { ?>
<link rel="<?php echo $style['rel']; ?>" type="text/css" href="<?php echo $style['href']; ?>" media="<?php echo $style['media']; ?>" />
<?php } ?>
...
<?php foreach ($scripts as $script) { ?>
<script type="text/javascript" src="<?php echo $script; ?>"></script>
<?php } ?>

в других намеренно отключают некоторые js скрипты, как jQuery ui, обновляют версию jQuery, а jQury ui нет

 

или вот код, подключи vqmod и вся верстка отвалится

$themeName = basename( dirname(dirname(dirname(__FILE__))) );
<link rel="stylesheet" type="text/css" href="catalog/view/theme/<?php echo $themeName;?>/stylesheet/stylesheet.css" />

в третьей разработчик решил заменить seo_url своей библиотекой, т.е. про seo_pro можно забыть.

 

 

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

автор настолько влез в движок, что это уже не opencart. серьезно, посмотрите сколько с ней проблем http://goo.gl/GJPbi4

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

 

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

 

 
  • +1 4

Share this post


Link to post
Share on other sites

Поддерживаю, не видел ни одной нормальной темы на themeforest, где разработчик бы не влез в код или оставил бы названия классов дефолтными. Особенно убивают темы, заменяющие стандартные файлы контроллеров и модели, из-за чего при установке любого дополения приходится лезть в код.

Кстати, хорошо было бы закрепить этот пост в разделе.

Share this post


Link to post
Share on other sites

По поводу шоппики , то согласен полностью, по поводу "кода" в модулях\темах, то тут вопрос исключительно компетенции кодера\дизайнера, не каждому дано постигнуть дзен выше описанных оптимизированных строк, так же могу сказать, что несколько раз был запрос на добавление определённого функционала под фильтрПРО, но в последних версиях, использована специальная семантика кода, для вывода шаблона, зачем усложнять разработку ? если можно просто использовать ту же функцию display.

 

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

Share this post


Link to post
Share on other sites

А мне сложно поддерживать совместимость с модулем Simpla. Модуль классный, спору нет, но поля, блоки...

 

Это в симпле

<input id="customer_main_city" class="simplecheckout-red-border" type="text" reload="from_customer" value="" name="customer[main_city]">

это в оригинале

<input class="large-field" type="text" value="" name="city">

 

нельзя было оставить name="city" ?

Share this post


Link to post
Share on other sites

так же могу сказать, что несколько раз был запрос на добавление определённого функционала под фильтрПРО, но в последних версиях, использована специальная семантика кода, для вывода шаблона, зачем усложнять разработку ? если можно просто использовать ту же функцию display.

плохо понял, нельзя ли по конкретнее и лучше в ЛС

Share this post


Link to post
Share on other sites

плохо понял, нельзя ли по конкретнее и лучше в ЛС

<script id="productTemplate" type="text/x-jquery-tmpl">
	<div>
		{{if thumb}}
			<div class="image"><a href="${href}"><img src="${thumb}" title="${name}" alt="${name}"/></a></div>
		{{/if}}
		<div class="name"><a href="${href}">${name}</a>
			<div class="extra" style="color: #444;">
				{{if sku}}
...

Если для примера, я хочу в шаблон добавить вывод опций, то наследовать text/x-jquery-tmpl семантику считаю не целесообразно, и тогда возникает резонный вопрос, или обратится к автору "FilterPRO", что б внес изменения, или менять саму структуру вывода товаров при фильтрации.

Share this post


Link to post
Share on other sites

я просил написать в ЛС потому как эта проблема не относится к теме. но могу ответить тут.

 

поторопился я с jQuery templates, если с php ещё кто-то может разобраться, с этим js плагином совсем плохо. из-за чего я часто встречал сообщения типо "автор криворукий, фильтр проще переписать с нуля чем доработать" =))) которые у меня и сейчас вызывают улыбку.

в версии мега рендеринг я перенес на сервер на всем привычный .tpl

 

PS - зачем извращаться с этим js templates ? всё просто - скорость.

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

Edited by freelancer

Share this post


Link to post
Share on other sites

Применение подобной технологии - только + однозначно, да и показатель высокого уровня, но (как на примере с фильтром) затачивать нужный функционал ИМХО поспешили, посему и отписал сюда, а не в ЛС, что б однозначно расставить точки над вопросами, если ещё раз возникнут у пользователей и можно было их отправить для прочтения и понимания сути проблемы.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

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.