Bem vindo ao brockdev.com, não seja tímido compartilhe suas duvidas e conhecimento. :D

Trocar função

brunowdbrunowd Usuário
editado April 2014 em PHP
Olá Jonatan,

tenho que fazer um if na url do form,que está dentro do lightbox para que le seja manda do pra um email que escolher

o lightbox é carregado na página do produto pelo boão azul,e depois enviado para o carrinho junto com as opções personalizadas,eu quero trocar a função desse form pra que quando for na categoria escolas, e suas subcategorias, ele envie as opções personalizadas por email



Meu view.phtml :

<?php
/**
* Magento
*
* NOTICE OF LICENSE
*
* This source file is subject to the Academic Free License (AFL 3.0)
* that is bundled with this package in the file LICENSE_AFL.txt.
* It is also available through the world-wide-web at this URL:
* http://opensource.org/licenses/afl-3.0.php
* If you did not receive a copy of the license and are unable to
* obtain it through the world-wide-web, please send an email
* to license@magentocommerce.com so we can send you a copy immediately.
*
* DISCLAIMER
*
* Do not edit or add to this file if you wish to upgrade Magento to newer
* versions in the future. If you wish to customize Magento for your
* needs please refer to http://www.magentocommerce.com for more information.
*
* @category design
* @package base_default
* @copyright Copyright (c) 2013 Magento Inc. (http://www.magentocommerce.com)
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
*/

/**
* Product view template
*
* @see Mage_Catalog_Block_Product_View
* @see Mage_Review_Block_Product_View
*/
?>
<?php $_helper = $this->helper('catalog/output'); ?>
<?php $_product = $this->getProduct(); ?>
<script type=\"text/javascript\">
var optionsPrice = new Product.OptionsPrice(<?php echo $this->getJsonConfig() ?>);
</script>
<div id=\"messages_product_view\"><?php echo $this->getMessagesBlock()->getGroupedHtml() ?></div>
<div class=\"product-view\">
<div class=\"product-essential\">


<form action=\"<?php echo $this->getSubmitUrl($_product) ?>\" method=\"post\" id=\"product_addtocart_form\"<?php if($_product->getOptions()): ?> enctype=\"multipart/form-data\"<?php endif; ?>>




<?php echo $this->getBlockHtml('formkey') ?>
<div class=\"no-display\">
<input type=\"hidden\" name=\"product\" value=\"<?php echo $_product->getId() ?>\" />
<input type=\"hidden\" name=\"related_product\" id=\"related-products-field\" value=\"\" />
</div>

<div class=\"product-shop\">
<div class=\"product-name\">
<h1><?php echo $_helper->productAttribute($_product, $_product->getName(), 'name') ?></h1>
</div>


<li class=\"no-display\">
<?php if ($this->canEmailToFriend()): ?>
<p class=\"email-friend\"><a href=\"<?php echo $this->helper('catalog/product')->getEmailToFriendUrl($_product) ?>\"><?php echo $this->__('Email to a Friend') ?></a></p>
<?php endif; ?>

</li>



<?php echo $this->getReviewsSummaryHtml($_product, false, true)?>
<?php echo $this->getChildHtml('alert_urls') ?>
<?php echo $this->getChildHtml('product_type_data') ?>
<?php echo $this->getTierPriceHtml() ?>
<?php echo $this->getChildHtml('extrahint') ?>






<?php if (!$this->hasOptions()):?>
<div class=\"add-to-box\">
<?php if($_product->isSaleable()): ?>
<?php echo $this->getChildHtml('addtocart') ?>
<?php if( $this->helper('wishlist')->isAllow() || $_compareUrl=$this->helper('catalog/product_compare')->getAddUrl($_product)): ?>
<span class=\"or\"><?php echo $this->__('OR') ?></span>
<?php endif; ?>
<?php endif; ?>
<?php echo $this->getChildHtml('addto') ?>
</div>
<?php echo $this->getChildHtml('extra_buttons') ?>
<?php elseif (!$_product->isSaleable()): ?>
<div class=\"add-to-box\">
<?php echo $this->getChildHtml('addto') ?>
</div>
<?php endif; ?>

<?php if ($_product->getShortDescription()):?>
<div class=\"short-description\">
<h2><?php echo $this->__('Quick Overview') ?></h2>
<div class=\"std\"><?php echo $_helper->productAttribute($_product, nl2br($_product->getShortDescription()), 'short_description') ?></div>
</div>
<?php endif;?>



<?php
$qtd = Mage::getModel('cataloginventory/stock_item')->loadByProduct($_product)->getQty();
if ( $qtd == 0 ) {


echo \"<a href = \\"javascript:void(0)\\" onclick = \\"document.getElementById('light').style.display='block';document.getElementById('fade').style.display='block'\\"> <div id=\\"persona\\">Solicite um Orçamento</div>\" ;



} else {


echo \"<a href = \\"javascript:void(0)\\" onclick = \\"document.getElementById('light').style.display='block';document.getElementById('fade').style.display='block'\\"><div id=\\"persona\\">Personalize seu Produto</div></a>\";

} ?>



<?php echo $this->getChildHtml('other');?>

<?php if ($_product->isSaleable() && $this->hasOptions()):?>

<?php echo $this->getChildChildHtml('container2', '', true, true) ?>

<?php endif;?>

</div>

<div class=\"product-img-box\">
<?php echo $this->getChildHtml('media') ?>
</div>

<div class=\"clearer\"></div>
<div id=\"light\" class=\"white_content\">
<?php if ($_product->isSaleable() && $this->hasOptions()):?>
<?php echo $this->getChildChildHtml('container1', '', true, true) ?>
<?php endif;?>
<a href = \"javascript:void(0)\" onclick = \"document.getElementById('light').style.display='none';document.getElementById('fade').style.display='none'\">Fechar</a></div>
<div id=\"fade\" class=\"black_overlay\"></div>



</form>
<script type=\"text/javascript\">
//<![CDATA[
var productAddToCartForm = new VarienForm('product_addtocart_form');
productAddToCartForm.submit = function(button, url) {
if (this.validator.validate()) {
var form = this.form;
var oldUrl = form.action;

if (url) {
form.action = url;
}
var e = null;
try {
this.form.submit();
} catch (e) {
}
this.form.action = oldUrl;
if (e) {
throw e;
}

if (button && button != 'undefined') {
button.disabled = true;
}
}
}.bind(productAddToCartForm);

productAddToCartForm.submitLight = function(button, url){
if(this.validator) {
var nv = Validation.methods;
delete Validation.methods['required-entry'];
delete Validation.methods['validate-one-required'];
delete Validation.methods['validate-one-required-by-name'];
// Remove custom datetime validators
for (var methodName in Validation.methods) {
if (methodName.match(/^validate-datetime-.*/i)) {
delete Validation.methods[methodName];
}
}

if (this.validator.validate()) {
if (url) {
this.form.action = url;
}
this.form.submit();
}
Object.extend(Validation.methods, nv);
}
}.bind(productAddToCartForm);
//]]>
</script>
</div>
<li class=\"no-display\">
<div class=\"product-collateral\">
<?php foreach ($this->getChildGroup('detailed_info', 'getChildHtml') as $alias => $html):?>
<div class=\"box-collateral <?php echo \"box-{$alias}\"?>\">
<?php if ($title = $this->getChildData($alias, 'title')):?>
<h2><?php echo $this->escapeHtml($title); ?></h2>
<?php endif;?>
<?php echo $html; ?>
</div>
<?php endforeach;?>
<?php echo $this->getChildHtml('upsell_products') ?>
<?php echo $this->getChildHtml('product_additional_data') ?>
</div>
</div>

</li >

<style type=\"text/css\">
.black_overlay{
display: none;
position: absolute;
top: 0%;
left: 0%;
width: 100%;
height: 100%;
background-color: black;
z-index:1001;
-moz-opacity: 0.8;
opacity:.80;
filter: alpha(opacity=80);
}
.white_content {
display: none;
position: absolute;
top: 25%;
left: 25%;
width: 50%;
height: 50%;
padding: 16px;
border: 16px solid orange;
background-color: white;
z-index:1002;
overflow: auto;
}
#persona{
padding: 10px;
border: 1px solid #2d559f;
background: #0084e1;
color: #FFFFFF;
font: bold 20px Arial, Helvetica, sans-serif;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
width: 232px;
display: inline-block;
}
#persona:hover{
-webkit-box-shadow: 0px 0px 3px 3px , #808080;
-moz-box-shadow: 0px 0px 3px 3px , #808080;
box-shadow: 0px 0px 3px 3px , #808080;
}


</style>






sei que tem que fazer o if nessa linha

na verdade no action do form....

<form action=\"<?php echo $this->getSubmitUrl($_product) ?>\" method=\"post\" id=\"product_addtocart_form\"<?php if($_product->getOptions()): ?> enctype=\"multipart/form-data\"<?php endif; ?>>


mas não sei que url colocar nem onde ,alguma ideia?? :)

Comentários

  • Jonatan Machado Moderador Global, Administrador
    Ola brunowd voce ainda nao esta entendendo com funciona o if e else, da uma pesquisada em tutorial na internet voce tem que entender pra poder fazer isso.
    Você ja fez isso em outras duvidas suas, mais agora a unica diferença e que voce vai fazer no action=""
    Abraço
    Arsenal Web Design.com
    Desenvolvimento de Lojas Virtuais
    Magento | Zend Framework | HTML5 | CSS3 | Blogs
    image
    E-mail: contato@brockdev.com
  • brunowdbrunowd Usuário
    disse:

    Ola brunowd voce ainda nao esta entendendo com funciona o if e else, da uma pesquisada em tutorial na internet voce tem que entender pra poder fazer isso.
    Você ja fez isso em outras duvidas suas, mais agora a unica diferença e que voce vai fazer no action=""
    Abraço

    Jonatan, já entendo sobre o if else, o que não "entendi" é que url coloco ali pra substituir a do form,tipo

    if {

    <form action=\" \" method=\"post\" id=\"product_addtocart_form\"<?php if($_product->getOptions()): ?> enctype=\"multipart/form-data\"<?php endif; ?>>

    else {

    <form action=\"<?php echo $this->getSubmitUrl($_product) ?>\" method=\"post\" id=\"product_addtocart_form\"<?php if($_product->getOptions()): ?> enctype=\"multipart/form-data\"<?php endif; ?>>


    Que url coloco ali no action"" vazio ?

    substituiria o

    <form action="<?php echo $this->getSubmitUrl($_product) ?>"

    e o

    id="product_addtocart_form" ?



    e manteria <?php if($_product->getOptions() ele pega as opções personalizadas e envia para o carrinho certo ?

    não sei esse lance das url's do magento,como poderia mandar para um email as informações :(
  • Jonatan Machado Moderador Global, Administrador
    Você tem que fazer uma ação mais agora que vai enviar por email.
    O correto e voce fazer o if e else antes, e jogar em uma variavel depois voce coloca a variavel action="sua variavel"
    Voce usa so um
    &lt;form action=\"sua variavel\" method=\"post\" id=\"product_addtocart_form\"&lt;?php if($_product-&gt;getOptions()): ?&gt; enctype=\"multipart/form-data\"&lt;?php endif; ?&gt;&gt;
    Arsenal Web Design.com
    Desenvolvimento de Lojas Virtuais
    Magento | Zend Framework | HTML5 | CSS3 | Blogs
    image
    E-mail: contato@brockdev.com
  • brunowdbrunowd Usuário
    disse:

    Você tem que fazer uma ação mais agora que vai enviar por email.
    O correto e voce fazer o if e else antes, e jogar em uma variavel depois voce coloca a variavel action="sua variavel"
    Voce usa so um

    &lt;form action=\"sua variavel\" method=\"post\" id=\"product_addtocart_form\"&lt;?php if($_product-&gt;getOptions()): ?&gt; enctype=\"multipart/form-data\"&lt;?php endif; ?&gt;&gt;

    A MINHA VARIÁVEL SERIA,POR EXEMPLO,

    "consulta.php"

    ficaria assim:

    &lt;form action=\"consulta.php\" method=\"post\" id=\"product_addtocart_form\"&lt;?php if($_product-&gt;getOptions()): ?&gt; enctype=\"multipart/form-data\"&lt;?php endif; ?&gt;&gt;
  • Jonatan Machado Moderador Global, Administrador
    Assim seria aconsulta.php seria a nova função, que ia executar o envio dos email.
    Arsenal Web Design.com
    Desenvolvimento de Lojas Virtuais
    Magento | Zend Framework | HTML5 | CSS3 | Blogs
    image
    E-mail: contato@brockdev.com
  • brunowdbrunowd Usuário
    disse:

    Assim seria aconsulta.php seria a nova função, que ia executar o envio dos email.


    tá ok vou tentar aqui, obrigado Jonatan. ;)
Entre ou Registre-se para fazer um comentário.