stawiając pierwsze kroki w Magento z przyzwyczajenia napakowałem wszystkiego jak leci do jednego pliku. Nie do końca rozumiem idee więc chciałbym zasięgnąć języka i może podpowiedzi jak powinienem to rozbić do postaci bardziej "Magento-podobnej" czyli co powinienem wrzucić do Model, co do Controller, Helper itd.
Oczywiście kod z pewnością pozostawia wiele do życzenia ale jak wspomniałem dopiero zacząłem (jakieś 3 tygodnie temu

<?php /* * @category AMBeR * @package AMBeR_Checkbox * @author AMBR * @date 12-07-2016 * @last edit 12-07-2016 * @copyright Copyright 2016 AMBeR it */ class Amber_Checkbox_Adminhtml_FutureController extends Mage_Adminhtml_Controller_Action { public function indexAction() { $this->loadLayout(); $ajax = "<script src='https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js'></script> <script> jQuery(document).ready(function(){ var total = $(this).find(\"input[class=tramp]:checked\").length; jQuery(\".caret input[type='checkbox']\").change(function(){ if($(this).is(':checked')){ var value= true; }else{ var value = false; } var brand = $(this).data('brand'); data = {brand: brand, value: value} jQuery.ajax({ data: data, url: 'checkbox/adminhtml/ajax', method: 'POST', success: function(result){ console.log(data, total); }}); }); }); </script>"; $style = "<style>a{display: block;}.pico{width:150px;height:50px; background-color: #FF6700;color: #00a;}.inline:hover{box-shadow: #888888 3px 3px 3px;}.inline{display: flex; border-radius:5px;margin-bottom: 5px;margin-right: 5px;width: 170px; float: left;font-family: Verdana; font-size: 16px;}.tiname{position: relative;text-align: center;border-top-left-radius: 5px;border-bottom-left-radius: 5px;padding:10px;border: 1px solid rgba(100,120,100,0.5); height: 145px;width: 110px;}.sub{ border-top-right-radius: 5px;border-bottom-right-radius: 5px;text-align: center;padding:10px;border: 1px solid rgba(100,120,100,0.5);width: 20px; }.pic{z-index:2;width:100px;height:auto;}.sub{ border-top-right-radius: 5px;border-bottom-right-radius: 5px;text-align: center;padding:10px;border: 1px solid rgba(100,120,100,0.5);width: 20px; }</style>"; $brandbox = $ajax.$style."<h2>Other brands</h2><div class='bobo'>"; $favourite = $style."<h2>Favourites</h2><div class='bobo'>"; $attribute = Mage::getModel('eav/entity_attribute')->loadByCode('catalog_product', 'manufacturer'); $collection = Mage::getResourceModel('eav/entity_attribute_option_collection')->setAttributeFilter($attribute->getData('attribute_id'))->setStoreFilter(0, false); $a = 0; foreach($collection as $value) { $brand = Mage::getModel('catalog/category')->load($value['option_id']); $image = '../../../../../../media/catalog/category/'.$brand->getData('thumbnail'); $url = Mage::getUrl().$brand->getRequestPath(); $state = $value['show_brand']; if($value['show_brand']==1 && $value['attribute_id']==81){ $state = 'checked'; $favourite .= "<a href='".$url."'><div class='inline'><div class='tiname'><img class='pic' src='{$image}'/>" . $value['value'] ."</div></a><div class='sub caret'><input id='".$value['option_id']."' class='tramp' name='check[]' data-brand=".$value['option_id']." type='checkbox' {$state}/></div></div>"; }else{ $state = ''; $brandbox .= "<a href='".$url."'><div class='inline'><div class='tiname'><img class='pic' src='{$image}'/>" . $value['value'] . "</div></a><div class='sub caret'><input id='".$value['option_id']."' class='tramp' name='check[]' data-brand=".$value['option_id']." type='checkbox' {$state}/></div></div>"; } $a++; //if($a==35){ //break; //} } $favourite .="</div>"; $brandbox .="</div>"; $this->_addLeft($this->getLayout()->createBlock('core/text')->setText($favourite)); $this->_addContent($this->getLayout()->createBlock('core/text')->setText($brandbox)); $this->renderLayout(); } } ?>
Trochę zamotane

bo powinienem utworzyć layout i template albo block i tam wetknąć co nieco a tylko pobieranie danych i ich obróbkę do model i controller.
Szukam przykładów (v1.9) na podstawie których mógłbym co nieco rozkminić.
Niemniej, jesli ktoś mogłby mi podpowiedziećjak to przerobić ?
Pozdrawiam