Ajutor temă Magento - Catalog/Product/List

Servus! Încerc să fac o temă pentru Magento, dar am reuşit să-mi prind urechile, aşa că am apelat la voi, poate se găseşte cineva să ma ajute, măcar cu un sfat.

Pe scurt: https://magento-mentalismus.c9.io/bilablau/ aici găsiţi template-ul html, iar aici http://185.53.173.254/ puteţi să vedeţi ce am făcut până acum. Dacă intraţi aici http://185.53.173.254/woman.html o să vedeţi că e diferenţă mare faţă de https://magento-mentalismus.c9.io/bilablau/category.html . Sigur e o chestie de începător, probabil nu am pus eu div-urile cum trebuie, nu ştiu ce să zic, dar la ora asta nu îmi dau seama. Sper că am fost destul de coerent.

list.phtml luat din base/default http://pastebin.com/jXfac35C

Mulţumesc anticipat!

Nu e vorba ca nu ai pus div-urile cum trebuie, ci ca in afara de header si footer nu ai implementat deloc structura din template-ul static. In primul rand, tu nu ai modificat nici fisierele ce tin de layout, si, mai exact, alea din folderul page, 1column.phtml, 2columns-left.phtml, 2columns-rightp.html, 3columns.phtml tre sa pui pe acolo div-urile din bootstrap, container, col-* si ce mai ai tu . Alea trebuie sa le modifici in primul rand. Pe langa asta, mai trebuiesc de modificat multe alte template-uri, nu doar list.phtml.

In primul rand, felicitari pentru design. Mie chiar imi place.

In al doilea rand, eu m-as opri o idee si as citi magento designer guide.

M-am oprit cand am vazut ca vrei sa modifici direct in base. NU modifici nimic in base.
Facand asta, strici tot sistemul de fallback al magento (sistem apreciat enorm dupa ce il intelegi)

Iti faci propria ta tema, unde iti iei STRICT fisierele pe care le modifici (catalog/product/list.phtml).
In felul asta iti pastrezi tema minimal (strict fisierele necesare), esti upgrade-proof, e mai usor sa-i faci mentenanta, poti crea noi variatiuni, etc.

Ghidul respectiv o sa-ti raspunde la multe intrebari dar daca mai ramane ceva fara raspuns ma gasesti tot aici :smile:

Spor!

2 Likes

Nu ai înţeles, am luat fişierul din base şi l-am băgat în tema mea. de acolo îl modific cum vreau eu.

    <?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 [email protected] 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.magento.com for more information.
 *
 * @category    design
 * @package     base_default
 * @copyright   Copyright (c) 2006-2015 X.commerce, Inc. (http://www.magento.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();
    $_helper = $this->helper('catalog/output');
?>
<?php if(!$_productCollection->count()): ?>
<p class="note-msg"><?php echo $this->__('There are no products matching the selection.') ?></p>
<?php else: ?>
<div class="category-products">
    <?php echo $this->getToolbarHtml() ?>
    <?php // List mode ?>
    <?php if($this->getMode()!='grid'): ?>
    <?php $_iterator = 0; ?>
    <ol class="products-list" id="products-list">
    <?php foreach ($_productCollection as $_product): ?>
        <li class="item<?php if( ++$_iterator == sizeof($_productCollection) ): ?> last<?php endif; ?>">
            <?php // Product Image ?>
            <a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" class="product-image"><img src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(135); ?>" width="135" height="135" alt="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" /></a>
            <?php // Product description ?>
            <div class="product-shop">
                <div class="f-fix">
                    <?php $_productNameStripped = $this->stripTags($_product->getName(), null, true); ?>
                    <h2 class="product-name"><a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $_productNameStripped; ?>"><?php echo $_helper->productAttribute($_product, $_product->getName() , 'name'); ?></a></h2>
                    <?php if($_product->getRatingSummary()): ?>
                    <?php echo $this->getReviewsSummaryHtml($_product) ?>
                    <?php endif; ?>
                    <?php echo $this->getPriceHtml($_product, true) ?>
                    <?php if($_product->isSaleable()): ?>
                        <p><button type="button" title="<?php echo Mage::helper('core')->quoteEscape($this->__('Add to Cart')) ?>" class="button btn-cart" onclick="setLocation('<?php echo $this->getAddToCartUrl($_product) ?>')"><span><span><?php echo $this->__('Add to Cart') ?></span></span></button></p>
                    <?php else: ?>
                        <p class="availability out-of-stock"><span><?php echo $this->__('Out of stock') ?></span></p>
                    <?php endif; ?>
                    <div class="desc std">
                        <?php echo $_helper->productAttribute($_product, $_product->getShortDescription(), 'short_description') ?>
                        <a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $_productNameStripped ?>" class="link-learn"><?php echo $this->__('Learn More') ?></a>
                    </div>
                    <ul class="add-to-links">
                        <?php if ($this->helper('wishlist')->isAllow()) : ?>
                            <li><a href="<?php echo $this->helper('wishlist')->getAddUrl($_product) ?>" class="link-wishlist"><?php echo $this->__('Add to Wishlist') ?></a></li>
                        <?php endif; ?>
                        <?php if($_compareUrl=$this->getAddToCompareUrl($_product)): ?>
                            <li><span class="separator">|</span> <a href="<?php echo $_compareUrl ?>" class="link-compare"><?php echo $this->__('Add to Compare') ?></a></li>
                        <?php endif; ?>
                    </ul>
                </div>
            </div>
        </li>
    <?php endforeach; ?>
    </ol>
    <script type="text/javascript">decorateList('products-list', 'none-recursive')</script>

    <?php else: ?>

    <?php // Grid Mode ?>

    <?php $_collectionSize = $_productCollection->count() ?>
    <?php $_columnCount = $this->getColumnCount(); ?>
    <?php $i=0; foreach ($_productCollection as $_product): ?>
        <?php if ($i++%$_columnCount==0): ?>
        <div class="page-content">
  <div class="category-section">
    <div class="category-listing">
        <ul class="product-grid col-xs-12 col-ms-6 col-sm-4 row">
        <?php endif ?>
            <li class="product-box<?php if(($i-1)%$_columnCount==0): ?> first<?php elseif($i%$_columnCount==0): ?> last<?php endif; ?>">
                <a href="<?php echo $_product->getProductUrl() ?>" class="product-image" title="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" class="product-image"><img src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(240); ?>" width="135" height="135" alt="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" /></a>
                
                <?php if($_product->getRatingSummary()): ?>
                <?php echo $this->getReviewsSummaryHtml($_product, 'short') ?>
                <?php endif; ?>
                <div class="actions product-details">
                <span class="product-name"><a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->stripTags($_product->getName(), null, true) ?>"><?php echo $_helper->productAttribute($_product, $_product->getName(), 'name') ?></a></span>
                <?php echo $this->getPriceHtml($_product, true) ?>
                
                    <?php if($_product->isSaleable()): ?>
                        <button type="button" title="<?php echo Mage::helper('core')->quoteEscape($this->__('&#xf07a;Læg i kurv')) ?>" class="btn" onclick="setLocation('<?php echo $this->getAddToCartUrl($_product) ?>')"><span><span><?php echo $this->__('Læg i kurv') ?></span></span></button>
                    <?php else: ?>
                        <p class="availability out-of-stock"><span><?php echo $this->__('Out of stock') ?></span></p>
                    <?php endif; ?>
                 <!--   <ul class="add-to-links"> -->
                        <?php if ($this->helper('wishlist')->isAllow()) : ?>
                    <!-- <li><a href="<?php //echo $this->helper('wishlist')->getAddUrl($_product) ?>" class="link-wishlist"><?php //echo $this->__('Add to Wishlist') ?></a></li>-->
                        <?php endif; ?>
                        <?php if($_compareUrl=$this->getAddToCompareUrl($_product)): ?>
                           <!-- <li><span class="separator">|</span> <a href="<?php //echo $_compareUrl ?>" class="link-compare"><?php //echo $this->__('Add to Compare') ?></a></li>-->
                        <?php endif; ?>
                <!--    </ul> -->
                </div>
            </li>
        <?php if ($i%$_columnCount==0 || $i==$_collectionSize): ?>
        </ul>
        <?php endif ?>
        <?php endforeach ?>
        <script type="text/javascript">decorateGeneric($$('ul.products-grid'), ['odd','even','first','last'])</script>
    <?php endif; ?>

    <div class="toolbar-bottom">
        <?php echo $this->getToolbarHtml() ?>
    </div>
</div>

  </div> <!--category-listing -->
    
  </div> <!-- category-section-->
  
</div> <!--page-content>

<?php endif; ?> <!-- asta e list.phtml --->

Am greşit, dar nu imi dau seama unde.

Asta am în templateul html:

<div class="row">
                                <div class="product-image">
                                    <span class="discount">-65%</span>
                                    <a href="detail.html">
                                        <img src="images/products/product1.png" alt="" class="img-responsive">
                                    </a>
                                </div>
                                <div class="product-details">
                                    <button class="btn"><i class="fa fa-shopping-cart"></i> Læg i kurv</button>
                                    <span class="old-price">1236 kr</span>
                                    <span class="new-price">729 kr</span>
                                    <span class="product-name">Joop Homme Man Perfume</span>
                                    <span class="product-description">Joop Homme 200 ml</span>
                                </div>
                            </div>
                        </div>

Şi încă o chestie, am modificat subscribe.phtml şi vreau să-l adaug în footer, dar nu apare. Am modificat local.xml şi în footer.phtml am adăugat <?php echo $this->getLayout()->createBlock('newsletter/subscribe')->setTemplate('newsletter/subscribe.phtml')->toHtml(); ?>

http://185.53.173.254/woman.html
Care să fie problema? Mulţumesc anticipat! :innocent:

Salut,
Mi se pare mie sau nu mai merg unele link-uri, cum ar fi https://magento-mentalismus.c9.io/bilablau/ ?
Referitor la footer, in afara de faptul ca ai un comment neinchis: <!--page-content>, conteaza si ce ai in local.xml si in page.xml

Am adăugat ce trebuie în local.xml, dar tot nu merge.

Ar trebui sa ne arati fisierul de xml (local.xml) si fisierul unde incerci sa afisezi block-ul de newsletter.

Ceva de genul asta:

XML

<reference name="footer">
    <block type="newsletter/subscribe" name="footer.newsletter" as="footer.newsletter" template="newsletter/subscribe.phtml"/>
</reference>

Footer

<?php echo $this->getChildHtml('footer.newsletter') ?>

p.s.: clear & flush cache

Exact aşa am făcut. Am încercat toate metodele. Culmea, pe local funcţionează!