Página 1 de 2

CRIAÇÃO DE MÓDULO

Enviado: 12 Mar 2014, 11:50
por leandromello
Amigos,
Estou tentando modificar um módulo que já tenho aqui.
Gostaria que me ajudassem a entender o funcionamento de um módulo.

Meu módulo atual, insere uma tabela antes de determinado trecho de código.
Ele procura usando o <search> e adiciona a tabela usando o <add>... correto?

Como faço para o invés de somente adicionar ele substitua o trecho de código.
É uma tabela que deveria aparecer no lugar no botão comprar.

Re: CRIAÇÃO DE MÓDULO

Enviado: 12 Mar 2014, 12:40
por leandrorppo
Para substituir use o search assim: <search position="replace">

Re: CRIAÇÃO DE MÓDULO

Enviado: 12 Mar 2014, 12:44
por leandromello
xará, obrigado pelo retorno.
Tentei fazer isso... realmente substituiu, mas o módulo funciona assim:

Insere um botão de AVISE-ME quando o produto está esgotado.

Utilizei o REPLACE e substituiu o botão comprar, mas no produto que não está esgotado o botão de comprar desapareceu também.
Será que falta eu fazer alguma coisa?

Re: CRIAÇÃO DE MÓDULO

Enviado: 12 Mar 2014, 16:16
por denisbr
Você vai ter que fazer uma verificação se existe o produto em estoque ou não para exibir o botão do Avise-me.

Re: CRIAÇÃO DE MÓDULO

Enviado: 12 Mar 2014, 16:55
por leandromello
Denisbr,
Como eu faria isso... dá uma pista que o resto eu vou descobrindo.
É que a minha experiencia com programação é pequena... e preciso arrumar esse módulo aqui, que tá funcionando mais ou menos.

Re: CRIAÇÃO DE MÓDULO

Enviado: 12 Mar 2014, 17:10
por leandrorppo
Segue um xml que tem essa função, testado na versão 1.5.5.1
Código: Selecionar todos
<!--
  Copyright (C) 2012 Tri Le <trile7 at gmail dot com>

  This program is free software: you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
  the Free Software Foundation, either version 3 of the License, or
  (at your option) any later version.

  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.

  You should have received a copy of the GNU General Public License
  along with this program.  If not, see <http://www.gnu.org/licenses/>
-->
<modification>
  <id>SOLD OUT for out of stock product</id>
  <version>0.3.4</version>
  <vqmver>2.1.7</vqmver>
  <author>Tri Le trile7 at gmail dot com</author>
  <file name="catalog/controller/module/bestseller.php">
    <operation>
      <search position="after"><![CDATA[$this->data['products'][] = array(]]></search>
      <add><![CDATA[
        'quantity' => $result['quantity'], 'stock' => $result['stock_status'], 'model' => $result['model'],
      ]]></add>
    </operation>
  </file>
  <file name="catalog/view/theme/*/template/module/bestseller.tpl">
    <operation>
      <search position="replace"><![CDATA[<input type="button" value="<?php echo $button_cart; ?>" onclick="addToCart('<?php echo $product['product_id']; ?>');" class="button" />]]></search>
      <add><![CDATA[
        <?php
        if ($product['quantity']>0) echo "<input type='button' value='$button_cart' onclick='addToCart($product[product_id]);' class='button' />";
        else echo "<span style='color:red; font-weight:bold;'>$product[stock]</span><a href='index.php?route=information/contact&enquiry=", urlencode("$product[name] ($product[model])".PHP_EOL), "' target='_blank' class='button' style='color:yellow;'>Inquire Now</a>";
        ?>
      ]]></add>
    </operation>
  </file>
  <file name="catalog/controller/module/featured.php">
    <operation>
      <search position="after"><![CDATA[$this->data['products'][] = array(]]></search>
      <add><![CDATA[
        'quantity' => $product_info['quantity'], 'stock' => $product_info['stock_status'], 'model' => $product_info['model'],
      ]]></add>
    </operation>
  </file>
  <file name="catalog/view/theme/*/template/module/featured.tpl">
    <operation>
      <search position="replace"><![CDATA[<input type="button" value="<?php echo $button_cart; ?>" onclick="addToCart('<?php echo $product['product_id']; ?>');" class="button" />]]></search>
      <add><![CDATA[
        <?php
        if ($product['quantity']>0) echo "<input type='button' value='$button_cart' onclick='addToCart($product[product_id]);' class='button' />";
        else echo "<span style='color:red; font-weight:bold;'>$product[stock]</span><a href='index.php?route=information/contact&enquiry=", urlencode("$product[name] ($product[model])".PHP_EOL), "' target='_blank' class='button' style='color:yellow;'>Inquire Now</a>";
        ?>
      ]]></add>
    </operation>
  </file>
  <file name="catalog/controller/module/latest.php">
    <operation>
      <search position="after"><![CDATA[$this->data['products'][] = array(]]></search>
      <add><![CDATA[
        'quantity' => $result['quantity'], 'stock' => $result['stock_status'], 'model' => $result['model'],
      ]]></add>
    </operation>
  </file>
  <file name="catalog/view/theme/*/template/module/latest.tpl">
    <operation>
      <search position="replace"><![CDATA[<input type="button" value="<?php echo $button_cart; ?>" onclick="addToCart('<?php echo $product['product_id']; ?>');" class="button" />]]></search>
      <add><![CDATA[
        <?php
        if ($product['quantity']>0) echo "<input type='button' value='$button_cart' onclick='addToCart($product[product_id]);' class='button' />";
        else echo "<span style='color:red; font-weight:bold;'>$product[stock]</span><a href='index.php?route=information/contact&enquiry=", urlencode("$product[name] ($product[model])".PHP_EOL), "' target='_blank' class='button' style='color:yellow;'>Inquire Now</a>";
        ?>
      ]]></add>
    </operation>
  </file>
  <file name="catalog/controller/module/special.php">
    <operation>
      <search position="after"><![CDATA[$this->data['products'][] = array(]]></search>
      <add><![CDATA[
        'quantity' => $result['quantity'], 'stock' => $result['stock_status'], 'model' => $result['model'],
      ]]></add>
    </operation>
  </file>
  <file name="catalog/view/theme/*/template/module/special.tpl">
    <operation>
      <search position="replace"><![CDATA[<input type="button" value="<?php echo $button_cart; ?>" onclick="addToCart('<?php echo $product['product_id']; ?>');" class="button" />]]></search>
      <add><![CDATA[
        <?php
        if ($product['quantity']>0) echo "<input type='button' value='$button_cart' onclick='addToCart($product[product_id]);' class='button' />";
        else echo "<span style='color:red; font-weight:bold;'>$product[stock]</span><a href='index.php?route=information/contact&enquiry=", urlencode("$product[name] ($product[model])".PHP_EOL), "' target='_blank' class='button' style='color:yellow;'>Inquire Now</a>";
        ?>
      ]]></add>
    </operation>
  </file>
  <file name="catalog/controller/product/category.php">
    <operation>
      <search position="after"><![CDATA[$this->data['products'][] = array(]]></search>
      <add><![CDATA[
        'quantity' => $result['quantity'], 'stock' => $result['stock_status'], 'model' => $result['model'],
      ]]></add>
    </operation>
  </file>
  <file name="catalog/view/theme/*/template/product/category.tpl">
    <operation>
      <search position="replace"><![CDATA[<input type="button" value="<?php echo $button_cart; ?>" onclick="addToCart('<?php echo $product['product_id']; ?>');" class="button" />]]></search>
      <add><![CDATA[
        <?php
        if ($product['quantity']>0) echo "<input type='button' value='$button_cart' onclick='addToCart($product[product_id]);' class='button' />";
        else echo "<span style='color:red; font-weight:bold;'>$product[stock]</span><a href='index.php?route=information/contact&enquiry=", urlencode("$product[name] ($product[model])".PHP_EOL), "' target='_blank' class='button' style='color:yellow;'>Inquire Now</a>";
        ?>
      ]]></add>
    </operation>
  </file>
  <file name="catalog/controller/product/product.php">
    <operation>
      <search position="after"><![CDATA[$this->data['products'][] = array(]]></search>
      <add><![CDATA[
        'quantity' => $result['quantity'], 'stock' => $result['stock_status'], 'model' => $result['model'],
      ]]></add>
    </operation>
    <operation>
      <search position="before"><![CDATA[$product_info['quantity'] <= 0]]></search>
      <add><![CDATA[
        $this->data['prod_quant'] = $product_info['quantity'];
        $this->data['prod_name'] = $product_info['name'];
      ]]></add>
    </operation>
  </file>
  <file name="catalog/view/theme/*/template/product/product.tpl">
    <operation>
      <search position="replace" offset="3"><![CDATA[<div><?php echo $text_qty; ?>]]></search>
      <add><![CDATA[
      <?php
      if ($prod_quant>0) echo "<div>$text_qty<input type='text' name='quantity' size='2' value='$minimum' /><input type='hidden' name='product_id' size='2' value='$product_id' />&nbsp;";
      else echo "<div>";
      ?>
      ]]></add>
    </operation>
    <operation>
      <search position="replace"><![CDATA[<input type="button" value="<?php echo $button_cart; ?>" id="button-cart" class="button" />]]></search>
      <add><![CDATA[
        <?php
        if ($prod_quant>0) echo "<input type='button' value='$button_cart' id='button-cart' class='button' />";
        else echo "<span style='color:red; font-weight:bold;'>$stock</span><a href='index.php?route=information/contact&enquiry=", urlencode("$prod_name ($model)".PHP_EOL), "' target='_blank' class='button' style='color:yellow;'>Inquire Now</a>";
        ?>
      ]]></add>
    </operation>
    <operation>
      <search position="replace"><![CDATA[<a onclick="addToCart('<?php echo $product['product_id']; ?>');" class="button"><?php echo $button_cart; ?></a>]]></search>
      <add><![CDATA[
        <?php
        if ($product['quantity']>0) echo "<input type='button' value='$button_cart' onclick='addToCart($product[product_id]);' class='button' />";
        else echo "<span style='color:red; font-weight:bold;'>$product[stock]</span><a href='index.php?route=information/contact&enquiry=", urlencode("$product[name] ($product[model])".PHP_EOL), "' target='_blank' class='button' style='color:yellow;'>Inquire Now</a>";
        ?>
      ]]></add>
    </operation>
  </file>
  <file name="catalog/controller/product/special.php">
    <operation>
      <search position="after"><![CDATA[$this->data['products'][] = array(]]></search>
      <add><![CDATA[
        'quantity' => $result['quantity'], 'stock' => $result['stock_status'], 'model' => $result['model'],
      ]]></add>
    </operation>
  </file>
  <file name="catalog/view/theme/*/template/product/special.tpl">
    <operation>
      <search position="replace"><![CDATA[<input type="button" value="<?php echo $button_cart; ?>" onclick="addToCart('<?php echo $product['product_id']; ?>');" class="button" />]]></search>
      <add><![CDATA[
        <?php
        if ($product['quantity']>0) echo "<input type='button' value='$button_cart' onclick='addToCart($product[product_id]);' class='button' />";
        else echo "<span style='color:red; font-weight:bold;'>$product[stock]</span><a href='index.php?route=information/contact&enquiry=", urlencode("$product[name] ($product[model])".PHP_EOL), "' target='_blank' class='button' style='color:yellow;'>Inquire Now</a>";
        ?>
      ]]></add>
    </operation>
  </file>
  <file name="catalog/controller/product/compare.php">
    <operation>
      <search position="after"><![CDATA[$this->data['products'][$product_id] = array(]]></search>
      <add><![CDATA[
        'quantity' => $product_info['quantity'],
        'stock' => $product_info['stock_status'],
      ]]></add>
    </operation>
  </file>
  <file name="catalog/view/theme/*/template/product/compare.tpl">
    <operation>
      <search position="replace"><![CDATA[<input type="button" value="<?php echo $button_cart; ?>" onclick="addToCart('<?php echo $product['product_id']; ?>');" class="button" />]]></search>
      <add><![CDATA[
        <?php
        if ($product['quantity']>0) echo "<input type='button' value='$button_cart' onclick='addToCart($product[product_id]);' class='button' />";
        else echo "<span style='color:red; font-weight:bold;'>$product[stock]</span><a href='index.php?route=information/contact&enquiry=", urlencode("$product[name] ($product[model])".PHP_EOL), "' target='_blank' class='button' style='color:yellow;'>Inquire Now</a>";
        ?>
      ]]></add>
    </operation>
  </file>
  <file name="catalog/controller/account/wishlist.php">
    <operation>
      <search position="after"><![CDATA[$this->data['products'][] = array(]]></search>
      <add><![CDATA[
        'quantity' => $product_info['quantity'],
        'stock' => $product_info['stock_status'],
      ]]></add>
    </operation>
  </file>
  <file name="catalog/view/theme/*/template/account/wishlist.tpl">
    <operation>
      <search position="replace"><![CDATA[<img src="catalog/view/theme/default/image/cart-add.png" alt="<?php echo $button_cart; ?>" title="<?php echo $button_cart; ?>" onclick="addToCart('<?php echo $product['product_id']; ?>');" />]]></search>
      <add><![CDATA[
        <?php
        if ($product['quantity']>0) echo "<input type='button' value='$button_cart' onclick='addToCart($product[product_id]);' class='button' />";
        else echo "<span style='color:red; font-weight:bold;'>$product[stock]</span><a href='index.php?route=information/contact&enquiry=", urlencode("$product[name] ($product[model])".PHP_EOL), "' target='_blank' class='button' style='color:yellow;'>Inquire Now</a>";
        ?>
      ]]></add>
    </operation>
  </file>
  <file name="catalog/controller/product/search.php">
    <operation>
      <search position="after"><![CDATA[$this->data['products'][] = array(]]></search>
      <add><![CDATA[
        'quantity' => $result['quantity'], 'stock' => $result['stock_status'], 'model' => $result['model'],
      ]]></add>
    </operation>
  </file>
  <file name="catalog/view/theme/*/template/product/search.tpl">
    <operation>
      <search position="replace"><![CDATA[<input type="button" value="<?php echo $button_cart; ?>" onclick="addToCart('<?php echo $product['product_id']; ?>');" class="button" />]]></search>
      <add><![CDATA[
        <?php
        if ($product['quantity']>0) echo "<input type='button' value='$button_cart' onclick='addToCart($product[product_id]);' class='button' />";
        else echo "<span style='color:red; font-weight:bold;'>$product[stock]</span><a href='index.php?route=information/contact&enquiry=", urlencode("$product[name] ($product[model])".PHP_EOL), "' target='_blank' class='button' style='color:yellow;'>Inquire Now</a>";
        ?>
      ]]></add>
    </operation>
  </file>
  <file name="catalog/controller/product/manufacturer.php">
    <operation>
      <search position="after"><![CDATA[$this->data['products'][] = array(]]></search>
      <add><![CDATA[
        'quantity' => $result['quantity'], 'stock' => $result['stock_status'], 'model' => $result['model'],
      ]]></add>
    </operation>
  </file>
  <file name="catalog/view/theme/*/template/product/manufacturer_info.tpl">
    <operation>
      <search position="replace"><![CDATA[<input type="button" value="<?php echo $button_cart; ?>" onclick="addToCart('<?php echo $product['product_id']; ?>');" class="button" />]]></search>
      <add><![CDATA[
        <?php
        if ($product['quantity']>0) echo "<input type='button' value='$button_cart' onclick='addToCart($product[product_id]);' class='button' />";
        else echo "<span style='color:red; font-weight:bold;'>$product[stock]</span><a href='index.php?route=information/contact&enquiry=", urlencode("$product[name] ($product[model])".PHP_EOL), "' target='_blank' class='button' style='color:yellow;'>Inquire Now</a>";
        ?>
      ]]></add>
    </operation>
  </file>
  <file name="catalog/controller/information/contact.php">
    <operation>
      <search position="after" offset="1"><![CDATA[if (isset($this->request->post['enquiry'])) {]]></search>
      <add><![CDATA[
        } elseif (isset($this->request->get['enquiry'])) {
        $this->data['enquiry'] = $this->request->get['enquiry'];
      ]]></add>
    </operation>
  </file>
</modification>


Re: CRIAÇÃO DE MÓDULO

Enviado: 12 Mar 2014, 17:57
por denisbr
leandromello escreveu:Denisbr,
Como eu faria isso... dá uma pista que o resto eu vou descobrindo.
É que a minha experiencia com programação é pequena... e preciso arrumar esse módulo aqui, que tá funcionando mais ou menos.
Veja a sugestão apresentada pelo Leandro.

Re: CRIAÇÃO DE MÓDULO

Enviado: 28 Mar 2014, 18:20
por leandromello
Obrigado pela soluções... aceitei as sugestões e funcionou.

Agora estou querendo modificar outra coisa parecida.
No meu tema quero modificar o arquivo LATEST.tpl, para que não apareça o botão de COMPRAR quando o produto esta esgotado.

O meu botão de comprar nesta listagem aparece assim:
Código: Selecionar todos
<div class="cart handpoint" onclick="addToCart('<?php echo $product['product_id']; ?>');"><i class='icon-shopping-cart'></i>&nbsp;&nbsp;<?php echo $button_cart; ?></div>
Utilizei uma sugestão do VIDAL na página de produtos para fazer exatamente isso, mas no LATEST.tpl, não esta funcionando.
Como vocês fariam?

Re: CRIAÇÃO DE MÓDULO

Enviado: 28 Mar 2014, 19:05
por denisbr
Altere o arquivo catalog/controller/module/latest.php onde tem
Código: Selecionar todos
$this->data['products'][] = array(
	'product_id' => $result['product_id'],
	'thumb'   	 => $image,
	'name'    	 => $result['name'],
	'price'   	 => $price,
	'special' 	 => $special,
	'rating'     => $rating,
	'reviews'    => sprintf($this->language->get('text_reviews'), (int)$result['reviews']),
	'href'    	 => $this->url->link('product/product', 'product_id=' . $result['product_id']),
);
por
Código: Selecionar todos
$this->data['products'][] = array(
	'product_id' => $result['product_id'],
	'thumb'   	 => $image,
	'name'    	 => $result['name'],
	'price'   	 => $price,
	'special' 	 => $special,
	'rating'     => $rating,
	'reviews'    => sprintf($this->language->get('text_reviews'), (int)$result['reviews']),
	'href'    	 => $this->url->link('product/product', 'product_id=' . $result['product_id']),
        'quantity' => $resulta['quantity'],
);
E no arquivo catalog/view/theme/DIRETORIO_TEMA/template/module/latest.tpl, altere:
Código: Selecionar todos
<div class="cart"><input type="button" value="<?php echo $button_cart; ?>" onclick="addToCart('<?php echo $product['product_id']; ?>');" class="button" /></div>
por:
Código: Selecionar todos
<?php if ($product['quantity'] > 0) { ?>
	<div class="cart"><input type="button" value="<?php echo $button_cart; ?>" onclick="addToCart('<?php echo $product['product_id']; ?>');" class="button" /></div>
<?php } ?>
É interessante fazer estas modificações usando vqmod, mas não souber usar este recurso, pode fazer diretamente no código mesmo.

Dúvidas, é só perguntar.

Re: CRIAÇÃO DE MÓDULO

Enviado: 03 Abr 2014, 12:06
por leandromello
Denisbr,
Funcionou bem... o botão sumiu certinho.
Dai para aparecer o PRODUTO ESGOTADO que eu queria, como não consegui usar o ELSE, utlizei outro IF e acabou dando certo.

no código onde diz RESULTA no meu código é RESULT.
Di resto deu tudo certo.

Muito obrigado mesmo, fazia tempo que estava tentando fazer isso.
Grande comunidade.