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

Parse error: syntax error, unexpected T_ENDIF in

fmiranda Usuário, Novo Usuário
editado November 2013 em PHP
stou instalando um modulo chamado callforprice, mas preciso adaptar para rodar em meu theme hellokids, juntando os 2 arquivos list.phtml

Agora esta dando o seguinte erro: Parse error: syntax error, unexpected T_ENDIF in

/app/design/frontend/default/default/template/callforprice/catalog/product/list.phtml on line 89


Segue arquivo para alguém verificar meu código.

<?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_default
* @package Mage
* @copyright Copyright (c) 2008 Irubin Consulting Inc. DBA Varien (http://www.varien.com)
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
*/
?>
<?php
/**
* Product list template
*
* @see Mage_Catalog_Block_Product_List
*/
?>
<?php $_productCollection=$this->getLoadedProductCollection() ?>
<?php if(!$_productCollection->count()): ?>
<div class=\"padder\">
<div class=\"note-msg\">
<?php echo $this->__('There are no products matching the selection.') ?>
</div>
</div>
<?php else: ?>

<?php echo $this->getToolbarHtml() ?>
<?php // List mode ?>
<?php if($this->getMode()!='grid'): ?>
<?php $_iterator = 0; ?>
<div class=\"listing-type-list catalog-listing padder\">
<?php foreach ($_productCollection as $_product): ?>
<div class=\"listing-item <?php if( ++$_iterator == sizeof($_productCollection) ): ?>last<?php endif; ?>\">
<?php // Product Image ?>
<div class=\"product-image\">
<a class=\"preview\" rel=\"<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(300, 300); ?>\" href=\"<?php echo $_product->getProductUrl() ?>\" title=\"<?php echo $this->htmlEscape($this->getImageLabel($_product, 'small_image')) ?>\">
<img src=\"<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(170, 170); ?>\" alt=\"<?php echo $this->htmlEscape($this->getImageLabel($_product, 'small_image')) ?>\" title=\"<?php echo $this->htmlEscape($this->getImageLabel($_product, 'small_image')) ?>\" />
</a>
</div>

<?php // Product description ?>
<div class=\"product-shop\">
<h5><a href=\"<?php echo $_product->getProductUrl() ?>\" title=\"<?php echo $this->htmlEscape($_product->getName()) ?>\"><?php echo $this->htmlEscape($_product->getName())?></a></h5>
<?php if($_product->getRatingSummary()): ?>
<?php echo $this->getReviewsSummaryHtml($_product) ?>
<?php endif; ?>



<?php foreach ($_productCollection as $_product): ?>
<?php
$clickforquoteAllow = 0;
$clickforquoteHelper = Mage::helper('callforprice/data');
if($clickforquoteHelper->isApplyToAllProducts() && $clickforquoteHelper->canRun()) {
$clickforquoteAllow = 1;
}
else {
if (($_product->getTypeId() == \"simple\" || $_product->getTypeId() == \"virtual\" || $_product->getTypeId() == \"grouped\" || $_product->getTypeId() == \"configurable\" || $_product->getTypeId() == \"bundle\") && $clickforquoteHelper->isEnable()) {
if($clickforquoteHelper->canRun()) {
$callforquote = 'get' . uc_words('callforquote', '', '_');
if ($_product->$callforquote() || $clickforquoteHelper->isValidCategory($_product->getId()))
if($clickforquoteHelper->isValidCustomerGroup())
$clickforquoteAllow = 1;
}
}
}
?>
<li class=\"item<?php if( ++$_iterator == sizeof($_productCollection) ): ?> last<?php endif; ?>\">




<?php endif; ?>
<div class=\"clear\"></div>
<div class=\"description\">
<?php echo nl2br($_product->getShortDescription()) ?>
<a href=\"<?php echo $_product->getProductUrl() ?>\" title=\"<?php echo $this->htmlEscape($_product->getName()) ?>\"><?php echo $this->__('Learn More') ?></a>
</div>
<ul class=\"add-to\">
<?php if ($this->helper('wishlist')->isAllow()) : ?>
<li><a href=\"<?php echo $this->helper('wishlist')->getAddUrl($_product) ?>\"><?php echo $this->__('Add to Wishlist') ?></a></li>
<span class=\"sep\">|</span>
<?php endif; ?>
<?php if($_compareUrl=$this->getAddToCompareUrl($_product)): ?>
<li><a href=\"<?php echo $_compareUrl ?>\"><?php echo $this->__('Add to Compare') ?></a></li>
<?php endif; ?>
</ul>
</div>
</div>
<?php endforeach; ?>
</div>

<?php else: ?>

<?php // Grid Mode ?>
<div class=\"listing-type-grid catalog-listing padder\"> <!-- the class name will change to .listing-type-cell if viewing in list mode -->
<?php $_collectionSize = 4; ?>
<table cellspacing=\"0\" class=\"generic-product-grid\" id=\"product-list-table\">
<?php $i=0; foreach ($_productCollection as $_product): ?>
<?php if ($i++%4==0): ?>
<tr>
<?php endif ?>
<td>
<div class=\"padder\">
<p class=\"product-image\">
<a class=\"preview\" rel=\"<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(300, 300); ?>\" href=\"<?php echo $_product->getProductUrl() ?>\" title=\"<?php echo $this->htmlEscape($this->getImageLabel($_product, 'small_image')) ?>\">
<img src=\"<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(170, 170); ?>\" alt=\"<?php echo $this->htmlEscape($this->getImageLabel($_product, 'small_image')) ?>\" title=\"<?php echo $this->htmlEscape($this->getImageLabel($_product, 'small_image')) ?>\" />
</a>
</p>
<h5><a href=\"<?php echo $_product->getProductUrl() ?>\" title=\"<?php echo $this->htmlEscape($_product->getName()) ?>\"><?php echo $this->htmlEscape($_product->getName()) ?></a></h5>
<?php if($_product->getRatingSummary()): ?>
<?php echo $this->getReviewsSummaryHtml($_product, 'short') ?>
<?php endif; ?>


<?php foreach ($_productCollection as $_product): ?>
<?php
$clickforquoteAllow = 0;
$clickforquoteHelper = Mage::helper('callforprice/data');
if($clickforquoteHelper->isApplyToAllProducts() && $clickforquoteHelper->canRun()) {
$clickforquoteAllow = 1;
}
else {
if (($_product->getTypeId() == \"simple\" || $_product->getTypeId() == \"virtual\" || $_product->getTypeId() == \"grouped\" || $_product->getTypeId() == \"configurable\" || $_product->getTypeId() == \"bundle\") && $clickforquoteHelper->isEnable()) {
if($clickforquoteHelper->canRun()) {
$callforquote = 'get' . uc_words('callforquote', '', '_');
if ($_product->$callforquote() || $clickforquoteHelper->isValidCategory($_product->getId()))
if($clickforquoteHelper->isValidCustomerGroup())
$clickforquoteAllow = 1;
}
}
}
?>
<li class=\"item<?php if( ++$_iterator == sizeof($_productCollection) ): ?> last<?php endif; ?>\">
<?php endif; ?>
<div class=\"clear\"></div>
<ul class=\"add-to\">
<?php if ($this->helper('wishlist')->isAllow()) : ?>
<li><a href=\"<?php echo $this->helper('wishlist')->getAddUrl($_product) ?>\"><?php echo $this->__('Add to Wishlist') ?></a></li>
<span class=\"sep\">|</span>
<?php endif; ?>
<?php if($_compareUrl=$this->getAddToCompareUrl($_product)): ?>
<li><a href=\"<?php echo $_compareUrl ?>\"><?php echo $this->__('Add to Compare') ?></a></li>
<?php endif; ?>
</ul>
</div>
</td>
<?php if ($i%4==0 && $i!=$_collectionSize): ?>
</tr>
<?php endif ?>
<?php endforeach ?>
<?php for($i;$i%4!=0;$i++): ?>
<td class=\"empty-product\"> </td>
<?php endfor ?>
<?php if ($i%4==0): ?>
</tr>
<?php endif ?>
</table>
<script type=\"text/javascript\">decorateTable('product-list-table')</script>
</div>

<?php endif; ?>
<?php echo $this->getToolbarHtml() ?>
<?php endif; ?>




Me ajude

Comentários

  • Jonatan Machado Moderador Global, Administrador
    Ola fmiranda Bem vindo!
    Faça um backup depois apague a linha 89

    <?php endif; ?>
    Arsenal Web Design.com
    Desenvolvimento de Lojas Virtuais
    Magento | Zend Framework | HTML5 | CSS3 | Blogs
    image
    E-mail: contato@brockdev.com
  • thiagothomaz Moderador Global
    Esse é erro de sintaxe, você tem um endif sobrando na linha 89.

    Cuidado com códigos complexos principalmente na view que mistura HTML com PHP e seu código acaba virando uma "zona" por
    maior o cuidado que se tome.
    Aproveitando e divulgando meu projeto :D -->>>
    A fim de evitar esse código que chamamos de "Spaghetti" eu venho desenvolvendo uma espécie de "biblioteca" para separar completamente o
    PHP do HTML. Caso queira dar uma olhada: http://thiagothomaz.com/htmlkit.html futuramente pretendo tornar essa biblioteca
    compativel com o CMS.
    Caso alguém queira participar do projeto também seja bem vindo... haha
    Thiago Thomaz
    Arquiteto de Software
    http://www.thiagothomaz.com
  • viniciusrtf Usuário, Novo Usuário
    disse:


    Aproveitando e divulgando meu projeto :D -->>>
    A fim de evitar esse código que chamamos de "Spaghetti" eu venho desenvolvendo uma espécie de "biblioteca" para separar completamente o
    PHP do HTML. Caso queira dar uma olhada: http://thiagothomaz.com/htmlkit.html futuramente pretendo tornar essa biblioteca
    compativel com o CMS.
    Caso alguém queira participar do projeto também seja bem vindo... haha

    Thiago, gostaria de entender melhor as vantagens em se utilizar do HTMLKit. Fico um pouco dividido em relação a isso porque embora uniformize a linguagem utilizada num mesmo arquivo, ela cria um nível de abstração a mais, não? Precisamos desse nível de abstração a mais? Você tem mais links, referências, discussões a respeito? Há tempos outras linguagens resolvem pelo menos parte desse problema criando elementos XML que fazem referência a classes, objetos, métodos, etc., mas tive a impressão que vocês partiram para uma abordagem diferente. Onde encontro exemplos de utilização? Um abraço.
  • thiagothomaz Moderador Global
    A inspiração a desenvolver a HTMLKit é justamente manter tudo no PHP, onde eu trabalho temos uma biblioteca quase igual, e eu achei a ideia bem interessante e quis mostra-la ao mundo.

    Sim criamos um nível de abstração a mais, eu acho melhor um nível de abstração a mais do que o macarrone pois futuramente a manutenção se torna muito ais fácil, erro de sintaxe como um endif a mais ferramentas como o netbens reconhecem e acusam para você.

    Eu particularmente não gosto de de fica misturando várias linguagens (entendo que HTML não é exatamente uma linguagem de programação) ou ficar colocando bibliotecas muito grandes como o Smarty que vem com o objetivo semelhante ao meu que é separar o HTML do PHP, a abordagem com XML confesso que nunca vi.

    Antes de começar a minha HTMLKit eu estudei um bocado sobre os Templates Engine como o Smarty e o Mustache, o Mustache foi um que mais me agradou mas ainda sim tinha aquele problema do "não é PHP puro".

    A grande vantagem da HTMLKit é: caras como um que não dedicam tempo em fazer layouts bonitos e não conhecem os devidamente os padrões HTML5 como se deveria consegue criar um HTML de qualidade e sem esforço pois é possível criar um template padrão e abstrato, a partir de então só ir especializando para suas telas concretas reaproveitando códigos. Então um desenvolvedor "back-end" como o pessoal costuma dizer se sente em casa e consegue fazer o "front-end" sem saber html, xml, ou colocar uma biblioteca pesada.

    E eu to fazendo a HTMLKit com um PHP bem puro para que ela seja facilmente estendível e independente.

    Referente a exemplos de utilização, ainda não tenho... haha Os sistemas que utilizam uma biblioteca parecida são internos, e essa eu estou começando para a comunidade ainda não é um projeto maduro mas ela irá ser bastante útil em equipes que não tenham um cara só para o HTML.
    Thiago Thomaz
    Arquiteto de Software
    http://www.thiagothomaz.com
Entre ou Registre-se para fazer um comentário.