Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [HTML][MySQL][PHP]Magento - przykładowy moduł - jak to przerobić ?
phpamator
post
Post #1





Grupa: Zarejestrowani
Postów: 328
Pomógł: 3
Dołączył: 10.07.2016
Skąd: UK-raine

Ostrzeżenie: (0%)
-----


Panowie,
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 (IMG:style_emoticons/default/smile.gif) .. od zera).
  1. <?php
  2. /*
  3.  
  4.  * @category AMBeR
  5.  
  6.  * @package AMBeR_Checkbox
  7.  
  8.  * @author AMBR
  9.  
  10.  * @date 12-07-2016
  11.  
  12.  * @last edit 12-07-2016
  13.  
  14.  * @copyright Copyright 2016 AMBeR
  15. it
  16.  */
  17.  
  18. class Amber_Checkbox_Adminhtml_FutureController extends Mage_Adminhtml_Controller_Action
  19. {
  20. public function indexAction()
  21. {
  22. $this->loadLayout();
  23. $ajax = "<script src='https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js'></script>
  24. <script> jQuery(document).ready(function(){
  25. var total = $(this).find(\"input[class=tramp]:checked\").length;
  26. jQuery(\".caret input[type='checkbox']\").change(function(){
  27. if($(this).is(':checked')){
  28. var value= true;
  29. }else{
  30. var value = false;
  31. }
  32. var brand = $(this).data('brand');
  33.  
  34. data = {brand: brand, value: value}
  35. jQuery.ajax({
  36. data: data,
  37. url: 'checkbox/adminhtml/ajax',
  38. method: 'POST',
  39. success: function(result){
  40.  
  41. console.log(data, total);
  42. }});
  43. });
  44. });
  45. </script>";
  46. $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>";
  47. $brandbox = $ajax.$style."<h2>Other brands</h2><div class='bobo'>";
  48. $favourite = $style."<h2>Favourites</h2><div class='bobo'>";
  49. $attribute = Mage::getModel('eav/entity_attribute')->loadByCode('catalog_product', 'manufacturer');
  50. $collection = Mage::getResourceModel('eav/entity_attribute_option_collection')->setAttributeFilter($attribute->getData('attribute_id'))->setStoreFilter(0, false);
  51. $a = 0;
  52. foreach($collection as $value) {
  53. $brand = Mage::getModel('catalog/category')->load($value['option_id']);
  54. $image = '../../../../../../media/catalog/category/'.$brand->getData('thumbnail');
  55. $url = Mage::getUrl().$brand->getRequestPath();
  56. $state = $value['show_brand'];
  57. if($value['show_brand']==1 && $value['attribute_id']==81){
  58. $state = 'checked';
  59. $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>";
  60. }else{
  61. $state = '';
  62. $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>";
  63. }
  64. $a++;
  65. //if($a==35){
  66. //break;
  67. //}
  68. }
  69. $favourite .="</div>";
  70. $brandbox .="</div>";
  71. $this->_addLeft($this->getLayout()->createBlock('core/text')->setText($favourite));
  72. $this->_addContent($this->getLayout()->createBlock('core/text')->setText($brandbox));
  73. $this->renderLayout();
  74. }
  75. }
  76. ?>

Trochę zamotane (IMG:style_emoticons/default/wink.gif)
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
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 14:39