Year_Make_Model_Filter_Box - Version 2.0

Version Notes

Import feature was added

Download this release

Release Info

Developer Magento Core Team
Extension Year_Make_Model_Filter_Box
Version 2.0
Comparing to
See all releases


Code changes from version 1.1 to 2.0

app/code/local/Pektsekye/Adminhtml/Block/Page/Footer.php DELETED
@@ -1,26 +0,0 @@
1
- <?php
2
- /*
3
- Written by pektsekye@gmail.com on Tuesday Jul 21 2009
4
- version 1.0
5
- */
6
-
7
- class Pektsekye_Adminhtml_Block_Page_Footer extends Mage_Adminhtml_Block_Page_Footer
8
- {
9
-
10
- /**
11
- * Override Mage Adminhtml footer block
12
- */
13
- public function getLanguageSelect()
14
- {
15
- $html = $this->getLayout()->createBlock('adminhtml/html_select')
16
- ->setName('locale')
17
- ->setId('interface_locale')
18
- ->setTitle(Mage::helper('page')->__('Interface Language'))
19
- ->setExtraParams('style="width:200px"')
20
- ->setValue(Mage::app()->getLocale()->getLocaleCode())
21
- ->setOptions(Mage::app()->getLocale()->getOptionLocales())
22
- ->getHtml();
23
- return $html;
24
- }
25
-
26
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/local/Pektsekye/Adminhtml/etc/config.xml DELETED
@@ -1,17 +0,0 @@
1
- <?xml version="1.0"?>
2
- <config>
3
- <modules>
4
- <Pektsekye_Adminhtml>
5
- <version>0.1.0</version>
6
- </Pektsekye_Adminhtml>
7
- </modules>
8
- <global>
9
- <blocks>
10
- <adminhtml>
11
- <rewrite>
12
- <page_footer>Pektsekye_Adminhtml_Block_Page_Footer</page_footer>
13
- </rewrite>
14
- </adminhtml>
15
- </blocks>
16
- </global>
17
- </config>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/code/local/Pektsekye/Ymm/Block/Adminhtml/Ymm/Edit.php CHANGED
@@ -37,7 +37,7 @@ class Pektsekye_Ymm_Block_Adminhtml_Ymm_Edit extends Mage_Adminhtml_Block_Widget
37
  public function getHeaderText()
38
  {
39
  if( Mage::registry('ymm_data') && Mage::registry('ymm_data')->getId() ) {
40
- return Mage::helper('ymm')->__("Edit Item '%s'", $this->htmlEscape(Mage::registry('ymm_data')->getTitle()));
41
  } else {
42
  return Mage::helper('ymm')->__('Add Item');
43
  }
37
  public function getHeaderText()
38
  {
39
  if( Mage::registry('ymm_data') && Mage::registry('ymm_data')->getId() ) {
40
+ return Mage::helper('ymm')->__('Edit Item');
41
  } else {
42
  return Mage::helper('ymm')->__('Add Item');
43
  }
app/code/local/Pektsekye/Ymm/Block/Adminhtml/Ymm/Edit/Form.php CHANGED
@@ -7,8 +7,7 @@ class Pektsekye_Ymm_Block_Adminhtml_Ymm_Edit_Form extends Mage_Adminhtml_Block_W
7
  $form = new Varien_Data_Form(array(
8
  'id' => 'edit_form',
9
  'action' => $this->getUrl('*/*/save', array('id' => $this->getRequest()->getParam('id'))),
10
- 'method' => 'post',
11
- 'enctype' => 'multipart/form-data'
12
  )
13
  );
14
 
7
  $form = new Varien_Data_Form(array(
8
  'id' => 'edit_form',
9
  'action' => $this->getUrl('*/*/save', array('id' => $this->getRequest()->getParam('id'))),
10
+ 'method' => 'post'
 
11
  )
12
  );
13
 
app/code/local/Pektsekye/Ymm/Block/Adminhtml/Ymm/Grid.php CHANGED
@@ -4,8 +4,7 @@ class Pektsekye_Ymm_Block_Adminhtml_Ymm_Grid extends Mage_Adminhtml_Block_Widget
4
  {
5
  public function __construct()
6
  {
7
- parent::__construct();
8
- // $this->setEmptyText(Mage::helper('ymm')->__('This product is set to be always shown'));
9
  $this->setId('ymmGrid');
10
  $this->setDefaultSort('id');
11
  $this->setDefaultDir('ASC');
@@ -21,12 +20,6 @@ class Pektsekye_Ymm_Block_Adminhtml_Ymm_Grid extends Mage_Adminhtml_Block_Widget
21
 
22
  protected function _prepareColumns()
23
  {
24
- $this->addColumn('id', array(
25
- 'header' => Mage::helper('ymm')->__('ID'),
26
- 'align' =>'right',
27
- 'width' => '50px',
28
- 'index' => 'id',
29
- ));
30
 
31
  $this->addColumn('products_id', array(
32
  'header' => Mage::helper('ymm')->__('Products ID'),
@@ -76,9 +69,7 @@ class Pektsekye_Ymm_Block_Adminhtml_Ymm_Grid extends Mage_Adminhtml_Block_Widget
76
  'index' => 'stores',
77
  'is_system' => true,
78
  ));
79
-
80
- $this->addExportType('*/*/exportCsv', Mage::helper('ymm')->__('CSV'));
81
- $this->addExportType('*/*/exportXml', Mage::helper('ymm')->__('XML'));
82
 
83
  return parent::_prepareColumns();
84
  }
@@ -92,24 +83,8 @@ class Pektsekye_Ymm_Block_Adminhtml_Ymm_Grid extends Mage_Adminhtml_Block_Widget
92
  'label' => Mage::helper('ymm')->__('Delete'),
93
  'url' => $this->getUrl('*/*/massDelete'),
94
  'confirm' => Mage::helper('ymm')->__('Are you sure?')
95
- ));
96
-
97
- $statuses = Mage::getSingleton('ymm/status')->getOptionArray();
98
-
99
- array_unshift($statuses, array('label'=>'', 'value'=>''));
100
- $this->getMassactionBlock()->addItem('status', array(
101
- 'label'=> Mage::helper('ymm')->__('Change status'),
102
- 'url' => $this->getUrl('*/*/massStatus', array('_current'=>true)),
103
- 'additional' => array(
104
- 'visibility' => array(
105
- 'name' => 'status',
106
- 'type' => 'select',
107
- 'class' => 'required-entry',
108
- 'label' => Mage::helper('ymm')->__('Status'),
109
- 'values' => $statuses
110
- )
111
- )
112
- ));
113
  return $this;
114
  }
115
 
4
  {
5
  public function __construct()
6
  {
7
+ parent::__construct();
 
8
  $this->setId('ymmGrid');
9
  $this->setDefaultSort('id');
10
  $this->setDefaultDir('ASC');
20
 
21
  protected function _prepareColumns()
22
  {
 
 
 
 
 
 
23
 
24
  $this->addColumn('products_id', array(
25
  'header' => Mage::helper('ymm')->__('Products ID'),
69
  'index' => 'stores',
70
  'is_system' => true,
71
  ));
72
+
 
 
73
 
74
  return parent::_prepareColumns();
75
  }
83
  'label' => Mage::helper('ymm')->__('Delete'),
84
  'url' => $this->getUrl('*/*/massDelete'),
85
  'confirm' => Mage::helper('ymm')->__('Are you sure?')
86
+ ));
87
+
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
88
  return $this;
89
  }
90
 
app/code/local/Pektsekye/Ymm/Block/Adminhtml/Ymm/ImportExport.php ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ class Pektsekye_Ymm_Block_Adminhtml_Ymm_importExport extends Mage_Adminhtml_Block_Widget
4
+ {
5
+ public function __construct()
6
+ {
7
+ parent::__construct();
8
+ $this->setTemplate('ymm/importExport.phtml');
9
+ }
10
+ }
app/code/local/Pektsekye/Ymm/controllers/Adminhtml/YmmController.php CHANGED
@@ -32,7 +32,6 @@ class Pektsekye_Ymm_Adminhtml_YmmController extends Mage_Adminhtml_Controller_ac
32
  $this->_setActiveMenu('ymm/items');
33
 
34
  $this->_addBreadcrumb(Mage::helper('adminhtml')->__('Item Manager'), Mage::helper('adminhtml')->__('Item Manager'));
35
- $this->_addBreadcrumb(Mage::helper('adminhtml')->__('Item News'), Mage::helper('adminhtml')->__('Item News'));
36
 
37
  $this->getLayout()->getBlock('head')->setCanLoadExtJs(true);
38
 
@@ -53,45 +52,17 @@ class Pektsekye_Ymm_Adminhtml_YmmController extends Mage_Adminhtml_Controller_ac
53
  public function saveAction() {
54
  if ($data = $this->getRequest()->getPost()) {
55
 
56
- if(isset($_FILES['filename']['name']) && $_FILES['filename']['name'] != '') {
57
- try {
58
- /* Starting upload */
59
- $uploader = new Varien_File_Uploader('filename');
60
-
61
- // Any extention would work
62
- $uploader->setAllowedExtensions(array('jpg','jpeg','gif','png'));
63
- $uploader->setAllowRenameFiles(false);
64
-
65
- // Set the file upload mode
66
- // false -> get the file directly in the specified folder
67
- // true -> get the file in the product like folders
68
- // (file.jpg will go in something like /media/f/i/file.jpg)
69
- $uploader->setFilesDispersion(false);
70
-
71
- // We set media as the upload dir
72
- $path = Mage::getBaseDir('media') . DS ;
73
- $uploader->save($path, $_FILES['filename']['name'] );
74
-
75
- } catch (Exception $e) {
76
-
77
- }
78
-
79
- //this way the name is saved in DB
80
- $data['filename'] = $_FILES['filename']['name'];
81
- }
82
-
83
-
84
  $model = Mage::getModel('ymm/ymm');
85
  $model->setData($data)
86
  ->setId($this->getRequest()->getParam('id'));
87
 
88
  try {
89
- if ($model->getCreatedTime == NULL || $model->getUpdateTime() == NULL) {
90
- $model->setCreatedTime(now())
91
- ->setUpdateTime(now());
92
- } else {
93
- $model->setUpdateTime(now());
94
- }
95
 
96
  $model->save();
97
  Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('ymm')->__('Item was successfully saved'));
@@ -178,23 +149,6 @@ class Pektsekye_Ymm_Adminhtml_YmmController extends Mage_Adminhtml_Controller_ac
178
  $this->_redirect('*/*/index');
179
  }
180
 
181
- public function exportCsvAction()
182
- {
183
- $fileName = 'ymm.csv';
184
- $content = $this->getLayout()->createBlock('ymm/adminhtml_ymm_grid')
185
- ->getCsv();
186
-
187
- $this->_sendUploadResponse($fileName, $content);
188
- }
189
-
190
- public function exportXmlAction()
191
- {
192
- $fileName = 'ymm.xml';
193
- $content = $this->getLayout()->createBlock('ymm/adminhtml_ymm_grid')
194
- ->getXml();
195
-
196
- $this->_sendUploadResponse($fileName, $content);
197
- }
198
 
199
  protected function _sendUploadResponse($fileName, $content, $contentType='application/octet-stream')
200
  {
@@ -210,5 +164,130 @@ class Pektsekye_Ymm_Adminhtml_YmmController extends Mage_Adminhtml_Controller_ac
210
  $response->setBody($content);
211
  $response->sendResponse();
212
  die;
213
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
214
  }
32
  $this->_setActiveMenu('ymm/items');
33
 
34
  $this->_addBreadcrumb(Mage::helper('adminhtml')->__('Item Manager'), Mage::helper('adminhtml')->__('Item Manager'));
 
35
 
36
  $this->getLayout()->getBlock('head')->setCanLoadExtJs(true);
37
 
52
  public function saveAction() {
53
  if ($data = $this->getRequest()->getPost()) {
54
 
55
+ $data ['products_id'] = (int) $data ['products_id'];
56
+ $data ['products_car_make'] = trim(preg_replace('/[^\w\s-]/','',$data ['products_car_make']));
57
+ $data ['products_car_model'] = trim(preg_replace('/[^\w\s-]/','',$data ['products_car_model']));
58
+ $data ['products_car_year_bof'] = (int) $data ['products_car_year_bof'];
59
+ $data ['products_car_year_eof'] = (int) $data ['products_car_year_eof'];
60
+
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
61
  $model = Mage::getModel('ymm/ymm');
62
  $model->setData($data)
63
  ->setId($this->getRequest()->getParam('id'));
64
 
65
  try {
 
 
 
 
 
 
66
 
67
  $model->save();
68
  Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('ymm')->__('Item was successfully saved'));
149
  $this->_redirect('*/*/index');
150
  }
151
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
152
 
153
  protected function _sendUploadResponse($fileName, $content, $contentType='application/octet-stream')
154
  {
164
  $response->setBody($content);
165
  $response->sendResponse();
166
  die;
167
+ }
168
+
169
+
170
+ /**
171
+ * Import and export Page
172
+ *
173
+ */
174
+ public function importExportAction()
175
+ {
176
+ $this->loadLayout()
177
+ ->_setActiveMenu('ymm/import')
178
+ ->_addContent($this->getLayout()->createBlock('ymm/adminhtml_ymm_importExport'))
179
+ ->renderLayout();
180
+ }
181
+
182
+ /**
183
+ * import action from import/export ymm
184
+ *
185
+ */
186
+ public function importPostAction()
187
+ {
188
+ if ($this->getRequest()->isPost() && !empty($_FILES['import_ymm_file']['tmp_name'])) {
189
+ try {
190
+ $number = $this->_importYmm();
191
+
192
+ Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('ymm')->__('%d new item(s) were imported',$number));
193
+ }
194
+ catch (Mage_Core_Exception $e) {
195
+ Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
196
+ }
197
+ catch (Exception $e) {
198
+ Mage::getSingleton('adminhtml/session')->addError(Mage::helper('ymm')->__('Invalid file upload attempt'));
199
+ }
200
+ }
201
+ else {
202
+ Mage::getSingleton('adminhtml/session')->addError(Mage::helper('ymm')->__('Invalid file upload attempt'));
203
+ }
204
+ $this->_redirect('*/*/importExport');
205
+ }
206
+
207
+ protected function _importYmm()
208
+ {
209
+ $fileName = $_FILES['import_ymm_file']['tmp_name'];
210
+ $csvObject = new Varien_File_Csv();
211
+ $csvData = $csvObject->getData($fileName);
212
+ $number = 0;
213
+ /** checks columns */
214
+ $csvFields = array(
215
+ 0 => Mage::helper('ymm')->__('Products ID'),
216
+ 1 => Mage::helper('ymm')->__('Vehicle Make'),
217
+ 2 => Mage::helper('ymm')->__('Vehicle Model'),
218
+ 3 => Mage::helper('ymm')->__('From Year'),
219
+ 4 => Mage::helper('ymm')->__('To Year')
220
+ );
221
+
222
+ if ($csvData[0] == $csvFields) {
223
+ foreach ($csvData as $k => $v) {
224
+ if ($k == 0) {
225
+ continue;
226
+ }
227
+
228
+ //end of file has more then one empty lines
229
+ if (count($v) <= 1 && !strlen($v[0])) {
230
+ continue;
231
+ }
232
+
233
+ if (count($csvFields) != count($v)) {
234
+ Mage::getSingleton('adminhtml/session')->addError(Mage::helper('ymm')->__('Invalid file upload attempt'));
235
+ }
236
+
237
+ if (!empty($v[0]) && is_numeric($v[0]) && !empty($v[1])) {
238
+
239
+ $v[1] = trim(preg_replace('/[^\w\s-]/','',$v[1]));
240
+ $v[2] = trim(preg_replace('/[^\w\s-]/','',$v[2]));
241
+
242
+ $resource = Mage::getSingleton('core/resource');
243
+ $read= $resource->getConnection('core_read');
244
+ $ymmTable = $resource->getTableName('ymm');
245
+ $select = $read->select()
246
+ ->from($ymmTable,array('id'))
247
+ ->where("products_id=?",(int)$v[0])
248
+ ->where("products_car_make=?",$v[1])
249
+ ->where("products_car_model=?",$v[2])
250
+ ->where("products_car_year_bof=?",(int)$v[3])
251
+ ->where("products_car_year_eof=?",(int)$v[4])
252
+ ->limit(1);
253
+
254
+ if($read->fetchOne($select)){
255
+ continue;
256
+ }
257
+
258
+ $data = array(
259
+ 'products_id'=>$v[0],
260
+ 'products_car_make' => $v[1],
261
+ 'products_car_model' => $v[2],
262
+ 'products_car_year_bof' => $v[3],
263
+ 'products_car_year_eof'=>$v[4],
264
+ );
265
+
266
+ $model = Mage::getModel('ymm/ymm');
267
+ $model->setData($data);
268
+ $model->save();
269
+ $number++;
270
+ }
271
+ }
272
+ }
273
+ else {
274
+ Mage::throwException(Mage::helper('tax')->__('Invalid file format upload attempt'));
275
+ }
276
+
277
+ return $number;
278
+ }
279
+
280
+ /**
281
+ * export action from import/export tax
282
+ *
283
+ */
284
+ public function exportPostAction()
285
+ {
286
+ $fileName = 'ymm.csv';
287
+ $content = $this->getLayout()->createBlock('ymm/adminhtml_ymm_grid')
288
+ ->getCsv();
289
+
290
+ $this->_sendUploadResponse($fileName, $content);
291
+ }
292
+
293
  }
app/code/local/Pektsekye/Ymm/etc/config.xml CHANGED
@@ -2,7 +2,7 @@
2
  <config>
3
  <modules>
4
  <Pektsekye_Ymm>
5
- <version>0.1.0</version>
6
  </Pektsekye_Ymm>
7
  </modules>
8
  <frontend>
@@ -44,7 +44,12 @@
44
  <title>Manage Items</title>
45
  <sort_order>0</sort_order>
46
  <action>ymm/adminhtml_ymm</action>
47
- </items>
 
 
 
 
 
48
  </children>
49
  </ymm>
50
  </menu>
2
  <config>
3
  <modules>
4
  <Pektsekye_Ymm>
5
+ <version>0.2.0</version>
6
  </Pektsekye_Ymm>
7
  </modules>
8
  <frontend>
44
  <title>Manage Items</title>
45
  <sort_order>0</sort_order>
46
  <action>ymm/adminhtml_ymm</action>
47
+ </items>
48
+ <import module="ymm">
49
+ <title>Import / Export</title>
50
+ <sort_order>1</sort_order>
51
+ <action>ymm/adminhtml_ymm/importExport</action>
52
+ </import>
53
  </children>
54
  </ymm>
55
  </menu>
app/code/local/Pektsekye/Ymm/sql/ymm_setup/mysql4-install-0.1.0.php CHANGED
@@ -4,8 +4,7 @@ $installer = $this;
4
 
5
  $installer->startSetup();
6
 
7
- $installer->run("
8
-
9
  DROP TABLE IF EXISTS {$this->getTable('ymm')};
10
  CREATE TABLE {$this->getTable('ymm')} (
11
  `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
4
 
5
  $installer->startSetup();
6
 
7
+ $installer->run("
 
8
  DROP TABLE IF EXISTS {$this->getTable('ymm')};
9
  CREATE TABLE {$this->getTable('ymm')} (
10
  `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
app/design/adminhtml/default/default/template/ymm/importExport.phtml ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div class="content-header">
2
+ <table cellspacing="0">
3
+ <tr>
4
+ <td><h3 class="icon-head head-tax-rate-importExport"><?php echo Mage::helper('ymm')->__('Import / Export') ?></h3></td>
5
+ </tr>
6
+ </table>
7
+ </div>
8
+ <div class="entry-edit">
9
+ <div class="box-left">
10
+ <form id="import_form" action="<?php echo $this->getUrl('*/*/importPost') ?>" method="post" enctype="multipart/form-data">
11
+ <?php echo $this->getBlockHtml('formkey')?>
12
+ <div class="entry-edit-head">
13
+ <h4 class="icon-head head-edit-form fieldset-legend"><?php echo Mage::helper('ymm')->__('Import YMM items') ?></h4>
14
+ </div>
15
+ <fieldset>
16
+ <legend><?php echo Mage::helper('ymm')->__('Import YMM items') ?></legend>
17
+ <input type="file" name="import_ymm_file" class="input-file required-entry"/>
18
+ <?php echo $this->getButtonHtml('Import YMM items', "this.form.submit()") ?>
19
+ </fieldset>
20
+ </form>
21
+ <script type="text/javascript">
22
+ var importForm = new varienForm('import_form');
23
+ </script>
24
+ </div>
25
+ <div class="box-right">
26
+ <form id="export_form" action="<?php echo $this->getUrl('*/*/exportPost') ?>" method="post" enctype="multipart/form-data">
27
+ <?php echo $this->getBlockHtml('formkey')?>
28
+ <div class="entry-edit-head">
29
+ <h4 class="icon-head head-edit-form fieldset-legend"><?php echo Mage::helper('ymm')->__('Export YMM items') ?></h4>
30
+ </div>
31
+ <fieldset>
32
+ <legend><?php echo Mage::helper('ymm')->__('Export YMM items') ?></legend>
33
+ <?php echo $this->getButtonHtml('Export YMM items', "this.form.submit()") ?>
34
+ </fieldset>
35
+ </form>
36
+ </div>
37
+ <div class="clear"></div>
38
+ </div>
app/design/frontend/default/default/template/ymm/ymm.phtml CHANGED
@@ -1,6 +1,6 @@
1
  <?php
2
  /*
3
- Written by pektsekye@gmail.com on Monday Jul 20 2009
4
  version 1.0
5
  */
6
 
@@ -32,36 +32,40 @@ var c = new Array();';
32
 
33
  $y = array();
34
  $M_a = array();
35
- $products_car_make_old = '';
36
- $products_car_model_old = '';
37
 
38
  foreach ($rows as $Makes) {
39
 
40
- if (!isset($M_a [$Makes['products_car_make']]))
41
- $Make_array[] = array('id' => $Makes['products_car_make'], 'text' => $Makes['products_car_make']);
 
 
 
 
 
42
 
43
-
44
- if (!isset($M_a [$Makes['products_car_make']][$Makes['products_car_model']]) && count($y) > 0){
45
- $M_a [$products_car_make_old][$products_car_model_old]=$y;
46
  $y = array();
47
  }
48
 
49
- if ($Makes['products_car_year_bof'] != 0 && $Makes['products_car_year_eof'] != 0){
50
- if ($Makes['products_car_year_bof'] == $Makes['products_car_year_eof']){
51
- $y [$Makes['products_car_year_bof']] = 1;
52
- } elseif ($Makes['products_car_year_bof'] < $Makes['products_car_year_eof']){
53
- while ($Makes['products_car_year_bof'] <= $Makes['products_car_year_eof']){
54
- $y [$Makes['products_car_year_bof']] = 1;
55
- $Makes['products_car_year_bof']++;
56
  }
57
  }
58
  }
59
- $products_car_make_old = $Makes['products_car_make'];
60
- $products_car_model_old = $Makes['products_car_model'];
61
- $M_a [$Makes['products_car_make']][$Makes['products_car_model']] = array();
62
  }
63
 
64
- $M_a [$products_car_make_old][$products_car_model_old]=$y;
65
 
66
 
67
 
1
  <?php
2
  /*
3
+ Written by pektsekye@gmail.com on Friday Jul 24 2009
4
  version 1.0
5
  */
6
 
32
 
33
  $y = array();
34
  $M_a = array();
35
+ $make_old = '';
36
+ $model_old = '';
37
 
38
  foreach ($rows as $Makes) {
39
 
40
+ $make = $Makes['products_car_make'];
41
+ $model = $Makes['products_car_model'];
42
+ $year_bof = $Makes['products_car_year_bof'];
43
+ $year_eof = $Makes['products_car_year_eof'];
44
+
45
+ if (!isset($M_a [$make]))
46
+ $Make_array[] = array('id' => $make, 'text' => $make);
47
 
48
+ if (!isset($M_a [$make][$model]) && count($y) > 0){
49
+ $M_a [$make_old][$model_old]=$y;
 
50
  $y = array();
51
  }
52
 
53
+ if ($year_bof != 0 && $year_eof != 0){
54
+ if ($year_bof == $year_eof){
55
+ $y [$year_bof] = 1;
56
+ } elseif ($year_bof < $year_eof){
57
+ while ($year_bof <= $year_eof){
58
+ $y [$year_bof] = 1;
59
+ $year_bof++;
60
  }
61
  }
62
  }
63
+ $make_old = $make;
64
+ $model_old = $model;
65
+ $M_a [$make][$model] = array();
66
  }
67
 
68
+ $M_a [$make_old][$model_old]=$y;
69
 
70
 
71
 
package.xml CHANGED
@@ -1,7 +1,7 @@
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Year_Make_Model_Filter_Box</name>
4
- <version>1.1</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/osl-3.0.php">OSL v3.0</license>
7
  <channel>community</channel>
@@ -12,7 +12,6 @@
12
  HOW TO USE:
13
  Go to your Magento admin panel -&gt; Ymm -&gt; Manage Items and add YMM items to all your products.
14
 
15
- If you need to set a product to be shown for all models type word "all" instead of the model name.
16
 
17
  NOTE: The products without model/make/year/ set are treated as for all models, all years, all makes.
18
  If you want to select BMW and see only BMW products all the other products should be set to another car.
@@ -23,11 +22,11 @@ NOTE: You should know your product id to be able to add an YMM item to it.
23
  You can find product id in the product description page url:
24
  http://yoursite.com/magento/catalog/product/view/id/119/s/coalesce-functioning-on-impatience-t-shirt/category/4/
25
  The number 119 is the product id in the url.</description>
26
- <notes>Wrong PHP Version in package dependences corrected.</notes>
27
  <authors><author><name>Stanislav</name><user>auto-converted</user><email>pektsekye@gmail.com</email></author></authors>
28
- <date>2009-07-21</date>
29
- <time>18:39:49</time>
30
- <contents><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="ymm.xml" hash="07bb5759f6ff145da493c94452f029af"/></dir></dir></dir></dir><dir name="frontend"><dir name="default"><dir name="default"><dir name="layout"><file name="ymm.xml" hash="1db60ab2dc6f85b6866d9162a252a4ad"/></dir><dir name="template"><dir name="ymm"><file name="ymm.phtml" hash="d0405a01c8ae9f9600c88adec34c40f6"/></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Pektsekye_Catalog.xml" hash="89e3ec6056b4ba53d06df1370b347d42"/><file name="Pektsekye_Ymm.xml" hash="990f4f561816481bd0c517f4fa131436"/></dir></target><target name="magelocal"><dir name="Pektsekye"><dir name="Adminhtml"><dir name="Block"><dir name="Page"><file name="Footer.php" hash="4d8a5ce910d38e5a68cac7ad436a40f8"/></dir></dir><dir name="etc"><file name="config.xml" hash="25feb8c371018591fb47510676f8fac5"/></dir></dir><dir name="Catalog"><dir name="Model"><file name="Category.php" hash="adb2fc5d69c5c122033d336236a3c88f"/></dir></dir><dir name="Ymm"><dir name="Block"><dir name="Adminhtml"><dir name="Ymm"><dir name="Edit"><dir name="Tab"><file name="Form.php" hash="37e926941c2510b54e4d3048f7ee1b18"/></dir><file name="Form.php" hash="dd81999c40ba81c9a1b95861b95092e4"/><file name="Tabs.php" hash="9048cfd443135e36e2b9cb5de38fcb47"/></dir><file name="Edit.php" hash="d00f46695fe1865cb9a2665711bbf0bb"/><file name="Grid.php" hash="3f5d7dfb16b57021cf29a566f73dea76"/></dir><file name="Ymm.php" hash="2c2d280c93d8839cd67515cd2d6c7ddd"/></dir><file name="Ymm.php" hash="3b7b316856d66630a6a926b5645cd4db"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="YmmController.php" hash="07c3c929064c954ac3b59148608b48a2"/></dir><file name="IndexController.php" hash="241a989b18c6309977568c050215730a"/></dir><dir name="etc"><file name="config.xml" hash="eee12b305f8d257fc0ee95f310be1479"/></dir><dir name="Helper"><file name="Data.php" hash="0cd0de912f0412670f9657b395861d90"/></dir><dir name="Model"><dir name="Mysql4"><dir name="Ymm"><file name="Collection.php" hash="1c6a50ea1416ce936892156806d20e15"/></dir><file name="Ymm.php" hash="8ac41d6fdf44dbf5bea1e9b01a0a0389"/></dir><file name="Status.php" hash="a10da0eebafef60fcceb6a8c396ad201"/><file name="Ymm.php" hash="fdf6dbac2b9595f7183ca1f951538b97"/></dir><dir name="sql"><dir name="ymm_setup"><file name="mysql4-install-0.1.0.php" hash="8f20e954febeb598712160fec4ac7109"/></dir></dir></dir></dir></target></contents>
31
  <compatible/>
32
  <dependencies/>
33
  </package>
1
  <?xml version="1.0"?>
2
  <package>
3
  <name>Year_Make_Model_Filter_Box</name>
4
+ <version>2.0</version>
5
  <stability>stable</stability>
6
  <license uri="http://opensource.org/licenses/osl-3.0.php">OSL v3.0</license>
7
  <channel>community</channel>
12
  HOW TO USE:
13
  Go to your Magento admin panel -&gt; Ymm -&gt; Manage Items and add YMM items to all your products.
14
 
 
15
 
16
  NOTE: The products without model/make/year/ set are treated as for all models, all years, all makes.
17
  If you want to select BMW and see only BMW products all the other products should be set to another car.
22
  You can find product id in the product description page url:
23
  http://yoursite.com/magento/catalog/product/view/id/119/s/coalesce-functioning-on-impatience-t-shirt/category/4/
24
  The number 119 is the product id in the url.</description>
25
+ <notes>Import feature was added</notes>
26
  <authors><author><name>Stanislav</name><user>auto-converted</user><email>pektsekye@gmail.com</email></author></authors>
27
+ <date>2009-07-24</date>
28
+ <time>02:30:33</time>
29
+ <contents><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="ymm.xml" hash="07bb5759f6ff145da493c94452f029af"/></dir><dir name="template"><dir name="ymm"><file name="importExport.phtml" hash="962cd5005434dfb5878b59af757f796e"/></dir></dir></dir></dir></dir><dir name="frontend"><dir name="default"><dir name="default"><dir name="layout"><file name="ymm.xml" hash="1db60ab2dc6f85b6866d9162a252a4ad"/></dir><dir name="template"><dir name="ymm"><file name="ymm.phtml" hash="fa5b0beff2dbf244f077385019f1bdd8"/></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Pektsekye_Catalog.xml" hash="89e3ec6056b4ba53d06df1370b347d42"/><file name="Pektsekye_Ymm.xml" hash="990f4f561816481bd0c517f4fa131436"/></dir></target><target name="magelocal"><dir name="Pektsekye"><dir name="Catalog"><dir name="Model"><file name="Category.php" hash="adb2fc5d69c5c122033d336236a3c88f"/></dir></dir><dir name="Ymm"><dir name="Block"><dir name="Adminhtml"><dir name="Ymm"><dir name="Edit"><dir name="Tab"><file name="Form.php" hash="37e926941c2510b54e4d3048f7ee1b18"/></dir><file name="Form.php" hash="c673af9d5e772ee2230a838971a633e1"/><file name="Tabs.php" hash="9048cfd443135e36e2b9cb5de38fcb47"/></dir><file name="Edit.php" hash="fb03b2d7cc9d282221af18c6ce9f6f9f"/><file name="Grid.php" hash="57d72d01ed8140f55b2490a8b08b8409"/><file name="ImportExport.php" hash="e1b161394a704c51c454ead1ca04e6cd"/></dir><file name="Ymm.php" hash="2c2d280c93d8839cd67515cd2d6c7ddd"/></dir><file name="Ymm.php" hash="3b7b316856d66630a6a926b5645cd4db"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="YmmController.php" hash="bef44e8dc00bfd6e0cf20bbfaf4f3fad"/></dir><file name="IndexController.php" hash="241a989b18c6309977568c050215730a"/></dir><dir name="etc"><file name="config.xml" hash="8290182a510c6e471fe0396a61419283"/></dir><dir name="Helper"><file name="Data.php" hash="0cd0de912f0412670f9657b395861d90"/></dir><dir name="Model"><dir name="Mysql4"><dir name="Ymm"><file name="Collection.php" hash="1c6a50ea1416ce936892156806d20e15"/></dir><file name="Ymm.php" hash="8ac41d6fdf44dbf5bea1e9b01a0a0389"/></dir><file name="Status.php" hash="a10da0eebafef60fcceb6a8c396ad201"/><file name="Ymm.php" hash="fdf6dbac2b9595f7183ca1f951538b97"/></dir><dir name="sql"><dir name="ymm_setup"><file name="mysql4-install-0.1.0.php" hash="9e4d9d55d8996105775b26c667eff6d1"/></dir></dir></dir></dir></target></contents>
30
  <compatible/>
31
  <dependencies/>
32
  </package>