Version Notes
Added multiple store views functionality.
Download this release
Release Info
| Developer | Clarion Tech |
| Extension | Clarion_Storelocator |
| Version | 1.0.1 |
| Comparing to | |
| See all releases | |
Code changes from version 1.0.0 to 1.0.1
- app/code/community/Clarion/Storelocator/Block/Adminhtml/Storelocator/Edit.php +1 -1
- app/code/community/Clarion/Storelocator/Block/Adminhtml/Storelocator/Edit/Tab/Form.php +26 -4
- app/code/community/Clarion/Storelocator/Block/Adminhtml/Storelocator/Grid.php +41 -12
- app/code/community/Clarion/Storelocator/Block/List.php +3 -2
- app/code/community/Clarion/Storelocator/Model/Resource/Storelocator.php +126 -7
- app/code/community/Clarion/Storelocator/Model/Resource/Storelocator/Collection.php +45 -1
- app/code/community/Clarion/Storelocator/Model/Storelocator.php +3 -3
- app/code/community/Clarion/Storelocator/controllers/Adminhtml/ManagestorelocatorController.php +20 -20
- app/code/community/Clarion/Storelocator/controllers/IndexController.php +5 -4
- app/code/community/Clarion/Storelocator/data/clarion_storelocator_setup/data-install-0.1.1.php +139 -0
- app/code/community/Clarion/Storelocator/data/clarion_storelocator_setup/data-upgrade-0.1.0-0.1.1.php +30 -0
- app/code/community/Clarion/Storelocator/etc/config.xml +4 -1
- app/code/community/Clarion/Storelocator/sql/clarion_storelocator_setup/install-0.1.1.php +166 -0
- app/code/community/Clarion/Storelocator/sql/clarion_storelocator_setup/upgrade-0.1.0-0.1.1.php +53 -0
- media/clarion_storelocator/cache/400/demo2.png +0 -0
- media/clarion_storelocator/cache/400/demo4.png +0 -0
- media/clarion_storelocator/cache/400/demo5.png +0 -0
- media/clarion_storelocator/cache/400/red3.jpeg +0 -0
- media/clarion_storelocator/demo1.png +0 -0
- media/clarion_storelocator/demo5.png +0 -0
- package.xml +5 -5
app/code/community/Clarion/Storelocator/Block/Adminhtml/Storelocator/Edit.php
CHANGED
|
@@ -15,7 +15,7 @@ class Clarion_Storelocator_Block_Adminhtml_Storelocator_Edit extends Mage_Adminh
|
|
| 15 |
* This variable has the forms entity primary key, e.g the delete button URL would be
|
| 16 |
* module/controller/action/$this->_objectid/3
|
| 17 |
*/
|
| 18 |
-
$this->_objectId = '
|
| 19 |
|
| 20 |
/*
|
| 21 |
* There two variables are very important, these variables are used to find FORM tags php file.
|
| 15 |
* This variable has the forms entity primary key, e.g the delete button URL would be
|
| 16 |
* module/controller/action/$this->_objectid/3
|
| 17 |
*/
|
| 18 |
+
$this->_objectId = 'storelocator_id';
|
| 19 |
|
| 20 |
/*
|
| 21 |
* There two variables are very important, these variables are used to find FORM tags php file.
|
app/code/community/Clarion/Storelocator/Block/Adminhtml/Storelocator/Edit/Tab/Form.php
CHANGED
|
@@ -12,8 +12,8 @@ class Clarion_Storelocator_Block_Adminhtml_Storelocator_Edit_Tab_Form extends Ma
|
|
| 12 |
protected function _prepareForm()
|
| 13 |
{
|
| 14 |
$model = Mage::registry('storelocator_data');
|
| 15 |
-
|
| 16 |
-
if ($data
|
| 17 |
if(isset($data['store_logo'])) {
|
| 18 |
$data['store_logo'] = 'clarion_storelocator/' . $data['store_logo'];
|
| 19 |
}
|
|
@@ -26,11 +26,33 @@ class Clarion_Storelocator_Block_Adminhtml_Storelocator_Edit_Tab_Form extends Ma
|
|
| 26 |
$fieldset = $form->addFieldset('form_General', array('legend'=>Mage::helper('clarion_storelocator')->__('General information')));
|
| 27 |
|
| 28 |
if ($model->getId()) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 29 |
$fieldset->addField('store_id', 'hidden', array(
|
| 30 |
-
'name'
|
|
|
|
| 31 |
));
|
| 32 |
}
|
| 33 |
-
|
| 34 |
$fieldset->addField('name', 'text', array(
|
| 35 |
'label' => Mage::helper('clarion_storelocator')->__('Store Name'),
|
| 36 |
'class' => 'required-entry',
|
| 12 |
protected function _prepareForm()
|
| 13 |
{
|
| 14 |
$model = Mage::registry('storelocator_data');
|
| 15 |
+
$data = $model->getData();
|
| 16 |
+
if ($data) {
|
| 17 |
if(isset($data['store_logo'])) {
|
| 18 |
$data['store_logo'] = 'clarion_storelocator/' . $data['store_logo'];
|
| 19 |
}
|
| 26 |
$fieldset = $form->addFieldset('form_General', array('legend'=>Mage::helper('clarion_storelocator')->__('General information')));
|
| 27 |
|
| 28 |
if ($model->getId()) {
|
| 29 |
+
$fieldset->addField('storelocator_id', 'hidden', array(
|
| 30 |
+
'name' => 'storelocator_id',
|
| 31 |
+
));
|
| 32 |
+
}
|
| 33 |
+
|
| 34 |
+
/**
|
| 35 |
+
* Check is single store mode
|
| 36 |
+
*/
|
| 37 |
+
if (!Mage::app()->isSingleStoreMode()) {
|
| 38 |
+
$field = $fieldset->addField('store_id', 'multiselect', array(
|
| 39 |
+
'name' => 'stores[]',
|
| 40 |
+
'label' => Mage::helper('clarion_storelocator')->__('Store View'),
|
| 41 |
+
'title' => Mage::helper('clarion_storelocator')->__('Store View'),
|
| 42 |
+
'required' => true,
|
| 43 |
+
'values' => Mage::getSingleton('adminhtml/system_store')->getStoreValuesForForm(false, true),
|
| 44 |
+
));
|
| 45 |
+
|
| 46 |
+
$renderer = $this->getLayout()->createBlock('adminhtml/store_switcher_form_renderer_fieldset_element');
|
| 47 |
+
$field->setRenderer($renderer);
|
| 48 |
+
}
|
| 49 |
+
else {
|
| 50 |
$fieldset->addField('store_id', 'hidden', array(
|
| 51 |
+
'name' => 'stores[]',
|
| 52 |
+
'value' => Mage::app()->getStore(true)->getId(),
|
| 53 |
));
|
| 54 |
}
|
| 55 |
+
|
| 56 |
$fieldset->addField('name', 'text', array(
|
| 57 |
'label' => Mage::helper('clarion_storelocator')->__('Store Name'),
|
| 58 |
'class' => 'required-entry',
|
app/code/community/Clarion/Storelocator/Block/Adminhtml/Storelocator/Grid.php
CHANGED
|
@@ -21,7 +21,7 @@ class Clarion_Storelocator_Block_Adminhtml_Storelocator_Grid extends Mage_Adminh
|
|
| 21 |
* This tells which sorting column to use in our grid. Which column
|
| 22 |
* should be used for default sorting
|
| 23 |
*/
|
| 24 |
-
$this->setDefaultSort('
|
| 25 |
|
| 26 |
/**
|
| 27 |
* The default sorting order, ascending or descending
|
|
@@ -48,6 +48,7 @@ class Clarion_Storelocator_Block_Adminhtml_Storelocator_Grid extends Mage_Adminh
|
|
| 48 |
$collection = Mage::getModel('clarion_storelocator/storelocator')->getCollection();
|
| 49 |
/* @var $collection Clarion_Storelocator_Model_Resource_Storelocator_Collection */
|
| 50 |
$this->setCollection($collection);
|
|
|
|
| 51 |
return parent::_prepareCollection();
|
| 52 |
}
|
| 53 |
|
|
@@ -67,13 +68,6 @@ class Clarion_Storelocator_Block_Adminhtml_Storelocator_Grid extends Mage_Adminh
|
|
| 67 |
|
| 68 |
$enableDisable = Mage::getModel('clarion_storelocator/enabledisable')->toArray();
|
| 69 |
|
| 70 |
-
$this->addColumn('store_id', array(
|
| 71 |
-
'header'=>Mage::helper('clarion_storelocator')->__('Store Id'),
|
| 72 |
-
'sortable'=>true,
|
| 73 |
-
'type' => 'number',
|
| 74 |
-
'index'=>'store_id'
|
| 75 |
-
));
|
| 76 |
-
|
| 77 |
$this->addColumn('name', array(
|
| 78 |
'header'=>Mage::helper('clarion_storelocator')->__('Store Name'),
|
| 79 |
'sortable'=>true,
|
|
@@ -105,6 +99,22 @@ class Clarion_Storelocator_Block_Adminhtml_Storelocator_Grid extends Mage_Adminh
|
|
| 105 |
'index'=>'zipcode'
|
| 106 |
));
|
| 107 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 108 |
$this->addColumn('status', array(
|
| 109 |
'header'=>Mage::helper('clarion_storelocator')->__('Status'),
|
| 110 |
'index' => 'status',
|
|
@@ -125,7 +135,7 @@ class Clarion_Storelocator_Block_Adminhtml_Storelocator_Grid extends Mage_Adminh
|
|
| 125 |
array(
|
| 126 |
'caption' => Mage::helper('clarion_storelocator')->__('Edit'),
|
| 127 |
'url' => array('base'=> '*/*/edit'),
|
| 128 |
-
'field' => '
|
| 129 |
)
|
| 130 |
),
|
| 131 |
'filter' => false,
|
|
@@ -150,7 +160,7 @@ class Clarion_Storelocator_Block_Adminhtml_Storelocator_Grid extends Mage_Adminh
|
|
| 150 |
*/
|
| 151 |
public function getRowUrl($row)
|
| 152 |
{
|
| 153 |
-
return $this->getUrl('*/*/edit', array('
|
| 154 |
}
|
| 155 |
|
| 156 |
/**
|
|
@@ -165,13 +175,13 @@ class Clarion_Storelocator_Block_Adminhtml_Storelocator_Grid extends Mage_Adminh
|
|
| 165 |
* your data structure, including: db table, single product magento model
|
| 166 |
* , and the collection.
|
| 167 |
*/
|
| 168 |
-
$this->setMassactionIdField('
|
| 169 |
|
| 170 |
/**
|
| 171 |
* By using this we can set name of checkbox, used for selection. Which
|
| 172 |
* is used to pass all the ids to the controller.
|
| 173 |
*/
|
| 174 |
-
$this->getMassactionBlock()->setFormFieldName('
|
| 175 |
|
| 176 |
/**
|
| 177 |
* url - sets url for the delete action
|
|
@@ -216,4 +226,23 @@ class Clarion_Storelocator_Block_Adminhtml_Storelocator_Grid extends Mage_Adminh
|
|
| 216 |
{
|
| 217 |
return $this->getUrl('*/*/grid', array('_current'=>true));
|
| 218 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 219 |
}
|
| 21 |
* This tells which sorting column to use in our grid. Which column
|
| 22 |
* should be used for default sorting
|
| 23 |
*/
|
| 24 |
+
$this->setDefaultSort('storelocator_id');
|
| 25 |
|
| 26 |
/**
|
| 27 |
* The default sorting order, ascending or descending
|
| 48 |
$collection = Mage::getModel('clarion_storelocator/storelocator')->getCollection();
|
| 49 |
/* @var $collection Clarion_Storelocator_Model_Resource_Storelocator_Collection */
|
| 50 |
$this->setCollection($collection);
|
| 51 |
+
//echo $collection->getSelect();
|
| 52 |
return parent::_prepareCollection();
|
| 53 |
}
|
| 54 |
|
| 68 |
|
| 69 |
$enableDisable = Mage::getModel('clarion_storelocator/enabledisable')->toArray();
|
| 70 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 71 |
$this->addColumn('name', array(
|
| 72 |
'header'=>Mage::helper('clarion_storelocator')->__('Store Name'),
|
| 73 |
'sortable'=>true,
|
| 99 |
'index'=>'zipcode'
|
| 100 |
));
|
| 101 |
|
| 102 |
+
/**
|
| 103 |
+
* Check is single store mode
|
| 104 |
+
*/
|
| 105 |
+
if (!Mage::app()->isSingleStoreMode()) {
|
| 106 |
+
$this->addColumn('store_id', array(
|
| 107 |
+
'header' => Mage::helper('clarion_storelocator')->__('Store View'),
|
| 108 |
+
'index' => 'store_id',
|
| 109 |
+
'type' => 'store',
|
| 110 |
+
'store_all' => true,
|
| 111 |
+
'store_view' => true,
|
| 112 |
+
'sortable' => false,
|
| 113 |
+
'filter_condition_callback'
|
| 114 |
+
=> array($this, '_filterStoreCondition'),
|
| 115 |
+
));
|
| 116 |
+
}
|
| 117 |
+
|
| 118 |
$this->addColumn('status', array(
|
| 119 |
'header'=>Mage::helper('clarion_storelocator')->__('Status'),
|
| 120 |
'index' => 'status',
|
| 135 |
array(
|
| 136 |
'caption' => Mage::helper('clarion_storelocator')->__('Edit'),
|
| 137 |
'url' => array('base'=> '*/*/edit'),
|
| 138 |
+
'field' => 'storelocator_id'
|
| 139 |
)
|
| 140 |
),
|
| 141 |
'filter' => false,
|
| 160 |
*/
|
| 161 |
public function getRowUrl($row)
|
| 162 |
{
|
| 163 |
+
return $this->getUrl('*/*/edit', array('storelocator_id' => $row->getId()));
|
| 164 |
}
|
| 165 |
|
| 166 |
/**
|
| 175 |
* your data structure, including: db table, single product magento model
|
| 176 |
* , and the collection.
|
| 177 |
*/
|
| 178 |
+
$this->setMassactionIdField('storelocator_id');
|
| 179 |
|
| 180 |
/**
|
| 181 |
* By using this we can set name of checkbox, used for selection. Which
|
| 182 |
* is used to pass all the ids to the controller.
|
| 183 |
*/
|
| 184 |
+
$this->getMassactionBlock()->setFormFieldName('storelocatorIds');
|
| 185 |
|
| 186 |
/**
|
| 187 |
* url - sets url for the delete action
|
| 226 |
{
|
| 227 |
return $this->getUrl('*/*/grid', array('_current'=>true));
|
| 228 |
}
|
| 229 |
+
|
| 230 |
+
/**
|
| 231 |
+
* This allows us to filter the grid on the store view.
|
| 232 |
+
*
|
| 233 |
+
*/
|
| 234 |
+
protected function _filterStoreCondition($collection, $column)
|
| 235 |
+
{
|
| 236 |
+
if (!$value = $column->getFilter()->getValue()) {
|
| 237 |
+
return;
|
| 238 |
+
}
|
| 239 |
+
|
| 240 |
+
$this->getCollection()->addStoreFilter($value);
|
| 241 |
+
}
|
| 242 |
+
|
| 243 |
+
protected function _afterLoadCollection()
|
| 244 |
+
{
|
| 245 |
+
$this->getCollection()->walk('afterLoad');
|
| 246 |
+
parent::_afterLoadCollection();
|
| 247 |
+
}
|
| 248 |
}
|
app/code/community/Clarion/Storelocator/Block/List.php
CHANGED
|
@@ -25,6 +25,7 @@ class Clarion_Storelocator_Block_List extends Mage_Core_Block_Template
|
|
| 25 |
protected function _getStoreCollection()
|
| 26 |
{
|
| 27 |
$collection = Mage::getModel('clarion_storelocator/storelocator')->getCollection()
|
|
|
|
| 28 |
->addStatusFilter();
|
| 29 |
return $collection;
|
| 30 |
}
|
|
@@ -112,10 +113,10 @@ class Clarion_Storelocator_Block_List extends Mage_Core_Block_Template
|
|
| 112 |
$storesPerPage = Mage::helper('clarion_storelocator')->getStoresPerPage();
|
| 113 |
$pager->setAvailableLimit(array($storesPerPage => $storesPerPage));
|
| 114 |
$pager->setTotalNum($this->getStoreCollection()->getSize());
|
| 115 |
-
|
| 116 |
$pager->setCollection($this->getStoreCollection());
|
| 117 |
$pager->setShowPerPage(true);
|
| 118 |
-
|
| 119 |
return $pager->toHtml();
|
| 120 |
}
|
| 121 |
|
| 25 |
protected function _getStoreCollection()
|
| 26 |
{
|
| 27 |
$collection = Mage::getModel('clarion_storelocator/storelocator')->getCollection()
|
| 28 |
+
->addStoreFilter(Mage::app()->getStore()->getId())
|
| 29 |
->addStatusFilter();
|
| 30 |
return $collection;
|
| 31 |
}
|
| 113 |
$storesPerPage = Mage::helper('clarion_storelocator')->getStoresPerPage();
|
| 114 |
$pager->setAvailableLimit(array($storesPerPage => $storesPerPage));
|
| 115 |
$pager->setTotalNum($this->getStoreCollection()->getSize());
|
| 116 |
+
// $pager->setPagerUrl(array('country'=>'india'));
|
| 117 |
$pager->setCollection($this->getStoreCollection());
|
| 118 |
$pager->setShowPerPage(true);
|
| 119 |
+
$pager->setShowAmounts(true);
|
| 120 |
return $pager->toHtml();
|
| 121 |
}
|
| 122 |
|
app/code/community/Clarion/Storelocator/Model/Resource/Storelocator.php
CHANGED
|
@@ -4,7 +4,7 @@
|
|
| 4 |
*
|
| 5 |
* @category Clarion
|
| 6 |
* @package Clarion_Storelocator
|
| 7 |
-
* @author Clarion Magento Team
|
| 8 |
*
|
| 9 |
*/
|
| 10 |
class Clarion_Storelocator_Model_Resource_Storelocator extends Mage_Core_Model_Resource_Db_Abstract
|
|
@@ -14,22 +14,39 @@ class Clarion_Storelocator_Model_Resource_Storelocator extends Mage_Core_Model_R
|
|
| 14 |
*/
|
| 15 |
protected function _construct()
|
| 16 |
{
|
| 17 |
-
$this->_init('clarion_storelocator/storelocator', '
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 18 |
}
|
| 19 |
|
| 20 |
/**
|
| 21 |
* Check if store exists
|
| 22 |
*
|
| 23 |
* @param $storeName store name
|
| 24 |
-
* @param $
|
| 25 |
* @return array|false
|
| 26 |
*/
|
| 27 |
-
public function storeExists($storeName, $
|
| 28 |
{
|
| 29 |
$adapter = $this->_getReadAdapter();
|
| 30 |
$select = $adapter->select();
|
| 31 |
|
| 32 |
-
if(empty($
|
| 33 |
$binds = array(
|
| 34 |
'name' => $storeName,
|
| 35 |
);
|
|
@@ -39,13 +56,115 @@ class Clarion_Storelocator_Model_Resource_Storelocator extends Mage_Core_Model_R
|
|
| 39 |
} else {
|
| 40 |
$binds = array(
|
| 41 |
'name' => $storeName,
|
| 42 |
-
'
|
| 43 |
);
|
| 44 |
|
| 45 |
$select->from($this->getMainTable())
|
| 46 |
->where('(name = :name)')
|
| 47 |
-
->where('
|
| 48 |
}
|
| 49 |
return $adapter->fetchRow($select, $binds);
|
| 50 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 51 |
}
|
| 4 |
*
|
| 5 |
* @category Clarion
|
| 6 |
* @package Clarion_Storelocator
|
| 7 |
+
* @author Clarion Magento Team <pandurang.babar@clariontechnologies.co.in>
|
| 8 |
*
|
| 9 |
*/
|
| 10 |
class Clarion_Storelocator_Model_Resource_Storelocator extends Mage_Core_Model_Resource_Db_Abstract
|
| 14 |
*/
|
| 15 |
protected function _construct()
|
| 16 |
{
|
| 17 |
+
$this->_init('clarion_storelocator/storelocator', 'storelocator_id');
|
| 18 |
+
}
|
| 19 |
+
|
| 20 |
+
/**
|
| 21 |
+
* Process storelocator data before deleting
|
| 22 |
+
*
|
| 23 |
+
* @param Mage_Core_Model_Abstract $object
|
| 24 |
+
* @return Clarion_Storelocator_Model_Resource_Storelocator
|
| 25 |
+
*/
|
| 26 |
+
protected function _beforeDelete(Mage_Core_Model_Abstract $object)
|
| 27 |
+
{
|
| 28 |
+
$condition = array(
|
| 29 |
+
'storelocator_id = ?' => (int) $object->getId(),
|
| 30 |
+
);
|
| 31 |
+
|
| 32 |
+
$this->_getWriteAdapter()->delete($this->getTable('clarion_storelocator/storelocator_store'), $condition);
|
| 33 |
+
|
| 34 |
+
return parent::_beforeDelete($object);
|
| 35 |
}
|
| 36 |
|
| 37 |
/**
|
| 38 |
* Check if store exists
|
| 39 |
*
|
| 40 |
* @param $storeName store name
|
| 41 |
+
* @param $storelocatorId storelocaror id
|
| 42 |
* @return array|false
|
| 43 |
*/
|
| 44 |
+
public function storeExists($storeName, $storelocatorId)
|
| 45 |
{
|
| 46 |
$adapter = $this->_getReadAdapter();
|
| 47 |
$select = $adapter->select();
|
| 48 |
|
| 49 |
+
if(empty($storelocatorId)){
|
| 50 |
$binds = array(
|
| 51 |
'name' => $storeName,
|
| 52 |
);
|
| 56 |
} else {
|
| 57 |
$binds = array(
|
| 58 |
'name' => $storeName,
|
| 59 |
+
'storelocator_id' => (int) $storelocatorId,
|
| 60 |
);
|
| 61 |
|
| 62 |
$select->from($this->getMainTable())
|
| 63 |
->where('(name = :name)')
|
| 64 |
+
->where('storelocator_id <> :storelocator_id');
|
| 65 |
}
|
| 66 |
return $adapter->fetchRow($select, $binds);
|
| 67 |
}
|
| 68 |
+
|
| 69 |
+
/**
|
| 70 |
+
* Assign storelocator to store views
|
| 71 |
+
*
|
| 72 |
+
* @param Mage_Core_Model_Abstract $object
|
| 73 |
+
* @return Clarion_Storelocator_Model_Resource_Storelocator
|
| 74 |
+
*/
|
| 75 |
+
protected function _afterSave(Mage_Core_Model_Abstract $object)
|
| 76 |
+
{
|
| 77 |
+
$oldStores = $this->lookupStoreIds($object->getId());
|
| 78 |
+
$newStores = (array)$object->getStores();
|
| 79 |
+
if (empty($newStores)) {
|
| 80 |
+
$newStores = (array)$object->getStoreId();
|
| 81 |
+
}
|
| 82 |
+
$table = $this->getTable('clarion_storelocator/storelocator_store');
|
| 83 |
+
$insert = array_diff($newStores, $oldStores);
|
| 84 |
+
$delete = array_diff($oldStores, $newStores);
|
| 85 |
+
|
| 86 |
+
if ($delete) {
|
| 87 |
+
$where = array(
|
| 88 |
+
'storelocator_id = ?' => (int) $object->getId(),
|
| 89 |
+
'store_id IN (?)' => $delete
|
| 90 |
+
);
|
| 91 |
+
|
| 92 |
+
$this->_getWriteAdapter()->delete($table, $where);
|
| 93 |
+
}
|
| 94 |
+
|
| 95 |
+
if ($insert) {
|
| 96 |
+
$data = array();
|
| 97 |
+
|
| 98 |
+
foreach ($insert as $storeId) {
|
| 99 |
+
$data[] = array(
|
| 100 |
+
'storelocator_id' => (int) $object->getId(),
|
| 101 |
+
'store_id' => (int) $storeId
|
| 102 |
+
);
|
| 103 |
+
}
|
| 104 |
+
|
| 105 |
+
$this->_getWriteAdapter()->insertMultiple($table, $data);
|
| 106 |
+
}
|
| 107 |
+
|
| 108 |
+
return parent::_afterSave($object);
|
| 109 |
+
}
|
| 110 |
+
|
| 111 |
+
/**
|
| 112 |
+
* Get store ids to which specified item is assigned
|
| 113 |
+
*
|
| 114 |
+
* @param int $storelocatorId
|
| 115 |
+
* @return array
|
| 116 |
+
*/
|
| 117 |
+
public function lookupStoreIds($storelocatorId)
|
| 118 |
+
{
|
| 119 |
+
$adapter = $this->_getReadAdapter();
|
| 120 |
+
|
| 121 |
+
$select = $adapter->select()
|
| 122 |
+
->from($this->getTable('clarion_storelocator/storelocator_store'), 'store_id')
|
| 123 |
+
->where('storelocator_id = ?',(int)$storelocatorId);
|
| 124 |
+
return $adapter->fetchCol($select);
|
| 125 |
+
}
|
| 126 |
+
|
| 127 |
+
/**
|
| 128 |
+
* Perform operations after object load
|
| 129 |
+
*
|
| 130 |
+
* @param Mage_Core_Model_Abstract $object
|
| 131 |
+
* @return Mage_Cms_Model_Resource_Page
|
| 132 |
+
*/
|
| 133 |
+
protected function _afterLoad(Mage_Core_Model_Abstract $object)
|
| 134 |
+
{
|
| 135 |
+
if ($object->getId()) {
|
| 136 |
+
$stores = $this->lookupStoreIds($object->getId());
|
| 137 |
+
|
| 138 |
+
$object->setData('store_id', $stores);
|
| 139 |
+
|
| 140 |
+
}
|
| 141 |
+
return parent::_afterLoad($object);
|
| 142 |
+
}
|
| 143 |
+
|
| 144 |
+
/**
|
| 145 |
+
* Retrieve select object for load object data
|
| 146 |
+
*
|
| 147 |
+
* @param string $field
|
| 148 |
+
* @param mixed $value
|
| 149 |
+
* @param Mage_Cms_Model_Page $object
|
| 150 |
+
* @return Zend_Db_Select
|
| 151 |
+
*/
|
| 152 |
+
protected function _getLoadSelect($field, $value, $object)
|
| 153 |
+
{
|
| 154 |
+
$select = parent::_getLoadSelect($field, $value, $object);
|
| 155 |
+
|
| 156 |
+
if ($object->getStoreId()) {
|
| 157 |
+
$storeIds = array(Mage_Core_Model_App::ADMIN_STORE_ID, (int)$object->getStoreId());
|
| 158 |
+
$select->join(
|
| 159 |
+
array('clarion_storelocator_store' => $this->getTable('clarion_storelocator/storelocator_store')),
|
| 160 |
+
$this->getMainTable() . '.storelocator_id = clarion_storelocator_store.storelocator_id',
|
| 161 |
+
array())
|
| 162 |
+
->where('status = ?', 1)
|
| 163 |
+
->where('clarion_storelocator_store.store_id IN (?)', $storeIds)
|
| 164 |
+
->order('clarion_storelocator_store.store_id DESC')
|
| 165 |
+
->limit(1);
|
| 166 |
+
}
|
| 167 |
+
return $select;
|
| 168 |
+
}
|
| 169 |
+
|
| 170 |
}
|
app/code/community/Clarion/Storelocator/Model/Resource/Storelocator/Collection.php
CHANGED
|
@@ -15,7 +15,9 @@ class Clarion_Storelocator_Model_Resource_Storelocator_Collection extends Mage_C
|
|
| 15 |
*/
|
| 16 |
protected function _construct()
|
| 17 |
{
|
| 18 |
-
|
|
|
|
|
|
|
| 19 |
}
|
| 20 |
|
| 21 |
/**
|
|
@@ -44,4 +46,46 @@ class Clarion_Storelocator_Model_Resource_Storelocator_Collection extends Mage_C
|
|
| 44 |
$this->setOrder('created_at', Varien_Data_Collection::SORT_ORDER_DESC);
|
| 45 |
return $this;
|
| 46 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 47 |
}
|
| 15 |
*/
|
| 16 |
protected function _construct()
|
| 17 |
{
|
| 18 |
+
$this->_init('clarion_storelocator/storelocator');
|
| 19 |
+
$this->_map['fields']['storelocator_id'] = 'main_table.storelocator_id';
|
| 20 |
+
$this->_map['fields']['store'] = 'store_table.store_id';
|
| 21 |
}
|
| 22 |
|
| 23 |
/**
|
| 46 |
$this->setOrder('created_at', Varien_Data_Collection::SORT_ORDER_DESC);
|
| 47 |
return $this;
|
| 48 |
}
|
| 49 |
+
|
| 50 |
+
/**
|
| 51 |
+
* Add filter by store
|
| 52 |
+
*
|
| 53 |
+
* @param int|Mage_Core_Model_Store $store
|
| 54 |
+
* @param bool $withAdmin
|
| 55 |
+
* @return Clarion_Storelocator_Model_Resource_Storelocator_Collection
|
| 56 |
+
*/
|
| 57 |
+
public function addStoreFilter($store, $withAdmin = true)
|
| 58 |
+
{
|
| 59 |
+
if (!$this->getFlag('store_filter_added')) {
|
| 60 |
+
if ($store instanceof Mage_Core_Model_Store) {
|
| 61 |
+
$store = array($store->getId());
|
| 62 |
+
}
|
| 63 |
+
|
| 64 |
+
if (!is_array($store)) {
|
| 65 |
+
$store = array($store);
|
| 66 |
+
}
|
| 67 |
+
|
| 68 |
+
if ($withAdmin) {
|
| 69 |
+
$store[] = Mage_Core_Model_App::ADMIN_STORE_ID;
|
| 70 |
+
}
|
| 71 |
+
|
| 72 |
+
$this->addFilter('store', array('in' => $store), 'public');
|
| 73 |
+
}
|
| 74 |
+
return $this;
|
| 75 |
+
}
|
| 76 |
+
|
| 77 |
+
/**
|
| 78 |
+
* Join store relation table if there is store filter
|
| 79 |
+
*/
|
| 80 |
+
protected function _renderFiltersBefore()
|
| 81 |
+
{
|
| 82 |
+
if ($this->getFilter('store')) {
|
| 83 |
+
$this->getSelect()->join(
|
| 84 |
+
array('store_table' => $this->getTable('clarion_storelocator/storelocator_store')),
|
| 85 |
+
'main_table.storelocator_id = store_table.storelocator_id',
|
| 86 |
+
array()
|
| 87 |
+
);
|
| 88 |
+
}
|
| 89 |
+
return parent::_renderFiltersBefore();
|
| 90 |
+
}
|
| 91 |
}
|
app/code/community/Clarion/Storelocator/Model/Storelocator.php
CHANGED
|
@@ -21,12 +21,12 @@ class Clarion_Storelocator_Model_Storelocator extends Mage_Core_Model_Abstract
|
|
| 21 |
* Check if store exists based on its name
|
| 22 |
*
|
| 23 |
* @param $storeName store name
|
| 24 |
-
* @param $
|
| 25 |
* @return boolean
|
| 26 |
*/
|
| 27 |
-
public function storeExists($storeName, $
|
| 28 |
{
|
| 29 |
-
$result = $this->_getResource()->storeExists($storeName, $
|
| 30 |
return (is_array($result) && count($result) > 0) ? true : false;
|
| 31 |
}
|
| 32 |
|
| 21 |
* Check if store exists based on its name
|
| 22 |
*
|
| 23 |
* @param $storeName store name
|
| 24 |
+
* @param $storelocatorId storelocator id
|
| 25 |
* @return boolean
|
| 26 |
*/
|
| 27 |
+
public function storeExists($storeName, $storelocatorId = null)
|
| 28 |
{
|
| 29 |
+
$result = $this->_getResource()->storeExists($storeName, $storelocatorId);
|
| 30 |
return (is_array($result) && count($result) > 0) ? true : false;
|
| 31 |
}
|
| 32 |
|
app/code/community/Clarion/Storelocator/controllers/Adminhtml/ManagestorelocatorController.php
CHANGED
|
@@ -98,15 +98,15 @@ class Clarion_Storelocator_Adminhtml_ManagestorelocatorController extends Mage_A
|
|
| 98 |
public function massDeleteAction()
|
| 99 |
{
|
| 100 |
//Get store ids from selected checkbox
|
| 101 |
-
$
|
| 102 |
|
| 103 |
-
if (!is_array($
|
| 104 |
Mage::getSingleton('adminhtml/session')->addError($this->__('Please select store(s).'));
|
| 105 |
} else {
|
| 106 |
-
if (!empty($
|
| 107 |
try {
|
| 108 |
-
foreach ($
|
| 109 |
-
$storelocator = Mage::getSingleton('clarion_storelocator/storelocator')->load($
|
| 110 |
//delete image file
|
| 111 |
if($storelocator->getStoreLogo()) {
|
| 112 |
$oldFileTargetPath = Mage::getBaseDir('media') . DS . 'clarion_storelocator' . DS . $storelocator->getStoreLogo();
|
|
@@ -116,7 +116,7 @@ class Clarion_Storelocator_Adminhtml_ManagestorelocatorController extends Mage_A
|
|
| 116 |
$storelocator->delete();
|
| 117 |
}
|
| 118 |
Mage::getSingleton('adminhtml/session')->addSuccess(
|
| 119 |
-
$this->__('Total of %d record(s) have been deleted.', count($
|
| 120 |
);
|
| 121 |
} catch (Exception $e) {
|
| 122 |
Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
|
|
@@ -133,21 +133,21 @@ class Clarion_Storelocator_Adminhtml_ManagestorelocatorController extends Mage_A
|
|
| 133 |
public function massStatusAction()
|
| 134 |
{
|
| 135 |
//Get store ids from selected checkbox
|
| 136 |
-
$
|
| 137 |
|
| 138 |
-
if (!is_array($
|
| 139 |
Mage::getSingleton('adminhtml/session')->addError($this->__('Please select store(s)'));
|
| 140 |
} else {
|
| 141 |
try {
|
| 142 |
-
foreach ($
|
| 143 |
Mage::getSingleton('clarion_storelocator/storelocator')
|
| 144 |
-
->load($
|
| 145 |
->setStatus($this->getRequest()->getParam('status'))
|
| 146 |
->setIsMassupdate(true)
|
| 147 |
->save();
|
| 148 |
}
|
| 149 |
Mage::getSingleton('adminhtml/session')->addSuccess(
|
| 150 |
-
$this->__('Total of %d record(s) were successfully updated', count($
|
| 151 |
);
|
| 152 |
} catch (Exception $e) {
|
| 153 |
Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
|
|
@@ -174,7 +174,7 @@ class Clarion_Storelocator_Adminhtml_ManagestorelocatorController extends Mage_A
|
|
| 174 |
->_title($this->__('Manage Store Locator'));
|
| 175 |
|
| 176 |
// 1. Get ID and create model
|
| 177 |
-
$id = $this->getRequest()->getParam('
|
| 178 |
$model = Mage::getModel('clarion_storelocator/storelocator');
|
| 179 |
|
| 180 |
// 2. Initial checking
|
|
@@ -266,7 +266,7 @@ class Clarion_Storelocator_Adminhtml_ManagestorelocatorController extends Mage_A
|
|
| 266 |
// check if data sent
|
| 267 |
if ($data = $this->getRequest()->getPost()) {
|
| 268 |
|
| 269 |
-
$id = $this->getRequest()->getParam('
|
| 270 |
$model = Mage::getModel('clarion_storelocator/storelocator');
|
| 271 |
$session = Mage::getSingleton('adminhtml/session');
|
| 272 |
/* @var $session Mage_Core_Model_Session */
|
|
@@ -292,7 +292,7 @@ class Clarion_Storelocator_Adminhtml_ManagestorelocatorController extends Mage_A
|
|
| 292 |
$session->addError($this->__('Unable to add/edit store.'));
|
| 293 |
}
|
| 294 |
$session->setStorelocatorData($data);
|
| 295 |
-
$this->_redirect('*/*/edit', array('
|
| 296 |
return;
|
| 297 |
}
|
| 298 |
|
|
@@ -348,7 +348,7 @@ class Clarion_Storelocator_Adminhtml_ManagestorelocatorController extends Mage_A
|
|
| 348 |
|
| 349 |
// check if 'Save and Continue'
|
| 350 |
if ($this->getRequest()->getParam('back')) {
|
| 351 |
-
$this->_redirect('*/*/edit', array('
|
| 352 |
return;
|
| 353 |
}
|
| 354 |
// go to grid
|
|
@@ -363,7 +363,7 @@ class Clarion_Storelocator_Adminhtml_ManagestorelocatorController extends Mage_A
|
|
| 363 |
Mage::helper('clarion_storelocator')->__('An error occurred while saving the store.'));
|
| 364 |
}
|
| 365 |
$session->setStorelocatorData($data);
|
| 366 |
-
$this->_redirect('*/*/edit', array('
|
| 367 |
return;
|
| 368 |
}
|
| 369 |
$this->_redirect('*/*/');
|
|
@@ -375,9 +375,9 @@ class Clarion_Storelocator_Adminhtml_ManagestorelocatorController extends Mage_A
|
|
| 375 |
|
| 376 |
$storelocator = Mage::getModel('clarion_storelocator/storelocator');
|
| 377 |
$storeName = isset($data['name']) ? $data['name'] : '';
|
| 378 |
-
$
|
| 379 |
|
| 380 |
-
if($storelocator->storeExists($storeName, $
|
| 381 |
$errors[] = Mage::helper('clarion_storelocator')->__('Store name already exists');
|
| 382 |
}
|
| 383 |
|
|
@@ -405,7 +405,7 @@ class Clarion_Storelocator_Adminhtml_ManagestorelocatorController extends Mage_A
|
|
| 405 |
public function deleteAction()
|
| 406 |
{
|
| 407 |
// check if we know what should be deleted
|
| 408 |
-
if ($id = $this->getRequest()->getParam('
|
| 409 |
try {
|
| 410 |
// init model and delete
|
| 411 |
$model = Mage::getModel('clarion_storelocator/storelocator');
|
|
@@ -428,7 +428,7 @@ class Clarion_Storelocator_Adminhtml_ManagestorelocatorController extends Mage_A
|
|
| 428 |
// display error message
|
| 429 |
Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
|
| 430 |
// go back to edit form
|
| 431 |
-
$this->_redirect('*/*/edit', array('
|
| 432 |
return;
|
| 433 |
}
|
| 434 |
}
|
| 98 |
public function massDeleteAction()
|
| 99 |
{
|
| 100 |
//Get store ids from selected checkbox
|
| 101 |
+
$storelocatorIds = $this->getRequest()->getParam('storelocatorIds');
|
| 102 |
|
| 103 |
+
if (!is_array($storelocatorIds)) {
|
| 104 |
Mage::getSingleton('adminhtml/session')->addError($this->__('Please select store(s).'));
|
| 105 |
} else {
|
| 106 |
+
if (!empty($storelocatorIds)) {
|
| 107 |
try {
|
| 108 |
+
foreach ($storelocatorIds as $storelocatorId) {
|
| 109 |
+
$storelocator = Mage::getSingleton('clarion_storelocator/storelocator')->load($storelocatorId);
|
| 110 |
//delete image file
|
| 111 |
if($storelocator->getStoreLogo()) {
|
| 112 |
$oldFileTargetPath = Mage::getBaseDir('media') . DS . 'clarion_storelocator' . DS . $storelocator->getStoreLogo();
|
| 116 |
$storelocator->delete();
|
| 117 |
}
|
| 118 |
Mage::getSingleton('adminhtml/session')->addSuccess(
|
| 119 |
+
$this->__('Total of %d record(s) have been deleted.', count($storelocatorIds))
|
| 120 |
);
|
| 121 |
} catch (Exception $e) {
|
| 122 |
Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
|
| 133 |
public function massStatusAction()
|
| 134 |
{
|
| 135 |
//Get store ids from selected checkbox
|
| 136 |
+
$storelocatorIds = $this->getRequest()->getParam('storelocatorIds');
|
| 137 |
|
| 138 |
+
if (!is_array($storelocatorIds)) {
|
| 139 |
Mage::getSingleton('adminhtml/session')->addError($this->__('Please select store(s)'));
|
| 140 |
} else {
|
| 141 |
try {
|
| 142 |
+
foreach ($storelocatorIds as $storelocatorId) {
|
| 143 |
Mage::getSingleton('clarion_storelocator/storelocator')
|
| 144 |
+
->load($storelocatorId)
|
| 145 |
->setStatus($this->getRequest()->getParam('status'))
|
| 146 |
->setIsMassupdate(true)
|
| 147 |
->save();
|
| 148 |
}
|
| 149 |
Mage::getSingleton('adminhtml/session')->addSuccess(
|
| 150 |
+
$this->__('Total of %d record(s) were successfully updated', count($storelocatorIds))
|
| 151 |
);
|
| 152 |
} catch (Exception $e) {
|
| 153 |
Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
|
| 174 |
->_title($this->__('Manage Store Locator'));
|
| 175 |
|
| 176 |
// 1. Get ID and create model
|
| 177 |
+
$id = $this->getRequest()->getParam('storelocator_id');
|
| 178 |
$model = Mage::getModel('clarion_storelocator/storelocator');
|
| 179 |
|
| 180 |
// 2. Initial checking
|
| 266 |
// check if data sent
|
| 267 |
if ($data = $this->getRequest()->getPost()) {
|
| 268 |
|
| 269 |
+
$id = $this->getRequest()->getParam('storelocator_id');
|
| 270 |
$model = Mage::getModel('clarion_storelocator/storelocator');
|
| 271 |
$session = Mage::getSingleton('adminhtml/session');
|
| 272 |
/* @var $session Mage_Core_Model_Session */
|
| 292 |
$session->addError($this->__('Unable to add/edit store.'));
|
| 293 |
}
|
| 294 |
$session->setStorelocatorData($data);
|
| 295 |
+
$this->_redirect('*/*/edit', array('storelocator_id' => $this->getRequest()->getParam('storelocator_id')));
|
| 296 |
return;
|
| 297 |
}
|
| 298 |
|
| 348 |
|
| 349 |
// check if 'Save and Continue'
|
| 350 |
if ($this->getRequest()->getParam('back')) {
|
| 351 |
+
$this->_redirect('*/*/edit', array('storelocator_id' => $model->getId(), '_current'=>true));
|
| 352 |
return;
|
| 353 |
}
|
| 354 |
// go to grid
|
| 363 |
Mage::helper('clarion_storelocator')->__('An error occurred while saving the store.'));
|
| 364 |
}
|
| 365 |
$session->setStorelocatorData($data);
|
| 366 |
+
$this->_redirect('*/*/edit', array('storelocator_id' => $this->getRequest()->getParam('storelocator_id')));
|
| 367 |
return;
|
| 368 |
}
|
| 369 |
$this->_redirect('*/*/');
|
| 375 |
|
| 376 |
$storelocator = Mage::getModel('clarion_storelocator/storelocator');
|
| 377 |
$storeName = isset($data['name']) ? $data['name'] : '';
|
| 378 |
+
$storelocatorId = isset($data['storelocator_id']) ? $data['storelocator_id'] : '';
|
| 379 |
|
| 380 |
+
if($storelocator->storeExists($storeName, $storelocatorId)) {
|
| 381 |
$errors[] = Mage::helper('clarion_storelocator')->__('Store name already exists');
|
| 382 |
}
|
| 383 |
|
| 405 |
public function deleteAction()
|
| 406 |
{
|
| 407 |
// check if we know what should be deleted
|
| 408 |
+
if ($id = $this->getRequest()->getParam('storelocator_id')) {
|
| 409 |
try {
|
| 410 |
// init model and delete
|
| 411 |
$model = Mage::getModel('clarion_storelocator/storelocator');
|
| 428 |
// display error message
|
| 429 |
Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
|
| 430 |
// go back to edit form
|
| 431 |
+
$this->_redirect('*/*/edit', array('storelocator_id' => $id));
|
| 432 |
return;
|
| 433 |
}
|
| 434 |
}
|
app/code/community/Clarion/Storelocator/controllers/IndexController.php
CHANGED
|
@@ -43,14 +43,15 @@ class Clarion_Storelocator_IndexController extends Mage_Core_Controller_Front_Ac
|
|
| 43 |
*/
|
| 44 |
public function viewAction()
|
| 45 |
{
|
| 46 |
-
$
|
| 47 |
-
if (!$
|
| 48 |
return $this->_forward('noRoute');
|
| 49 |
}
|
| 50 |
|
| 51 |
/** @var $model Clarion_Storelocator_Model_Storelocator */
|
| 52 |
-
$model = Mage::getModel('clarion_storelocator/storelocator')
|
| 53 |
-
|
|
|
|
| 54 |
|
| 55 |
if (!$model->getId()) {
|
| 56 |
return $this->_forward('noRoute');
|
| 43 |
*/
|
| 44 |
public function viewAction()
|
| 45 |
{
|
| 46 |
+
$storelocatorId = $this->getRequest()->getParam('id');
|
| 47 |
+
if (!$storelocatorId) {
|
| 48 |
return $this->_forward('noRoute');
|
| 49 |
}
|
| 50 |
|
| 51 |
/** @var $model Clarion_Storelocator_Model_Storelocator */
|
| 52 |
+
$model = Mage::getModel('clarion_storelocator/storelocator')
|
| 53 |
+
->setStoreId(Mage::app()->getStore()->getId())
|
| 54 |
+
->load($storelocatorId);
|
| 55 |
|
| 56 |
if (!$model->getId()) {
|
| 57 |
return $this->_forward('noRoute');
|
app/code/community/Clarion/Storelocator/data/clarion_storelocator_setup/data-install-0.1.1.php
ADDED
|
@@ -0,0 +1,139 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
/**
|
| 3 |
+
* Storelocator data installation script
|
| 4 |
+
*
|
| 5 |
+
* @category Clarion
|
| 6 |
+
* @package Clarion_Storelocator
|
| 7 |
+
* @author Clarion Magento Team <pandurang.babar@clariontechnologies.co.in>
|
| 8 |
+
*
|
| 9 |
+
*/
|
| 10 |
+
/**
|
| 11 |
+
* @var $installer Mage_Core_Model_Resource_Setup
|
| 12 |
+
*/
|
| 13 |
+
$installer = $this;
|
| 14 |
+
/**
|
| 15 |
+
* Fill table clarion_storelocator/storelocator
|
| 16 |
+
*/
|
| 17 |
+
|
| 18 |
+
//Get current timestamp
|
| 19 |
+
$currentTimestamp = Mage::getModel('core/date')->timestamp(time());
|
| 20 |
+
|
| 21 |
+
$stores = array(
|
| 22 |
+
array(
|
| 23 |
+
'name' => 'Demo1',
|
| 24 |
+
'status' => 1,
|
| 25 |
+
'street_address' =>'NY Road',
|
| 26 |
+
'country' =>'US',
|
| 27 |
+
'state' =>'New York',
|
| 28 |
+
'city' =>'New York',
|
| 29 |
+
'zipcode' =>'10007',
|
| 30 |
+
'phone' =>'111-111-1111',
|
| 31 |
+
'fax' =>'1-111-111 1111',
|
| 32 |
+
'url' =>'http://www.magento.com',
|
| 33 |
+
'email' =>'test@gmail.com',
|
| 34 |
+
'store_logo' =>'demo1.png',
|
| 35 |
+
'description' =>'This is for testing.',
|
| 36 |
+
'trading_hours' =>'10AM-1PM 2PM-10PM',
|
| 37 |
+
'radius' =>'100',
|
| 38 |
+
'latitude' =>'40.712784',
|
| 39 |
+
'longitude' =>'-74.005941',
|
| 40 |
+
'zoom_level' =>'6',
|
| 41 |
+
'created_at' =>$currentTimestamp,
|
| 42 |
+
'stores' => array(0)
|
| 43 |
+
),
|
| 44 |
+
array(
|
| 45 |
+
'name' => 'Demo2',
|
| 46 |
+
'status' => 1,
|
| 47 |
+
'street_address' =>'LA Road',
|
| 48 |
+
'country' =>'US',
|
| 49 |
+
'state' =>'California',
|
| 50 |
+
'city' =>'Los Angeles',
|
| 51 |
+
'zipcode' =>'90012',
|
| 52 |
+
'phone' =>'111-111-1111',
|
| 53 |
+
'fax' =>'1-111-111 1111',
|
| 54 |
+
'url' =>'http://www.magento.com',
|
| 55 |
+
'email' =>'test@gmail.com',
|
| 56 |
+
'store_logo' =>'demo2.png',
|
| 57 |
+
'description' =>'This is for testing.',
|
| 58 |
+
'trading_hours' =>'10AM-1PM 2PM-10PM',
|
| 59 |
+
'radius' =>'100',
|
| 60 |
+
'latitude' =>'34.052234',
|
| 61 |
+
'longitude' =>'-118.243685',
|
| 62 |
+
'zoom_level' =>'6',
|
| 63 |
+
'created_at' =>$currentTimestamp,
|
| 64 |
+
'stores' => array(0)
|
| 65 |
+
),
|
| 66 |
+
array(
|
| 67 |
+
'name' => 'Demo3',
|
| 68 |
+
'status' => 1,
|
| 69 |
+
'street_address' =>'CH Road',
|
| 70 |
+
'country' =>'US',
|
| 71 |
+
'state' =>'Illinois',
|
| 72 |
+
'city' =>'Chicago',
|
| 73 |
+
'zipcode' =>'60602',
|
| 74 |
+
'phone' =>'111-111-1111',
|
| 75 |
+
'fax' =>'1-111-111 1111',
|
| 76 |
+
'url' =>'http://www.magento.com',
|
| 77 |
+
'email' =>'test@gmail.com',
|
| 78 |
+
'store_logo' =>'demo3.png',
|
| 79 |
+
'description' =>'This is for testing.',
|
| 80 |
+
'trading_hours' =>'10AM-1PM 2PM-10PM',
|
| 81 |
+
'radius' =>'100',
|
| 82 |
+
'latitude' =>'41.878114',
|
| 83 |
+
'longitude' =>'-87.629798',
|
| 84 |
+
'zoom_level' =>'6',
|
| 85 |
+
'created_at' =>$currentTimestamp,
|
| 86 |
+
'stores' => array(0)
|
| 87 |
+
),
|
| 88 |
+
array(
|
| 89 |
+
'name' => 'Demo4',
|
| 90 |
+
'status' => 1,
|
| 91 |
+
'street_address' =>'HO Road',
|
| 92 |
+
'country' =>'US',
|
| 93 |
+
'state' =>'Texas',
|
| 94 |
+
'city' =>'Houston',
|
| 95 |
+
'zipcode' =>'77002',
|
| 96 |
+
'phone' =>'111-111-1111',
|
| 97 |
+
'fax' =>'1-111-111 1111',
|
| 98 |
+
'url' =>'http://www.magento.com',
|
| 99 |
+
'email' =>'test@gmail.com',
|
| 100 |
+
'store_logo' =>'demo4.png',
|
| 101 |
+
'description' =>'This is for testing.',
|
| 102 |
+
'trading_hours' =>'10AM-1PM 2PM-10PM',
|
| 103 |
+
'radius' =>'100',
|
| 104 |
+
'latitude' =>'29.760193',
|
| 105 |
+
'longitude' =>'-95.369390',
|
| 106 |
+
'zoom_level' =>'6',
|
| 107 |
+
'created_at' =>$currentTimestamp,
|
| 108 |
+
'stores' => array(0)
|
| 109 |
+
),
|
| 110 |
+
array(
|
| 111 |
+
'name' => 'Demo5',
|
| 112 |
+
'status' => 1,
|
| 113 |
+
'street_address' =>'LV Road',
|
| 114 |
+
'country' =>'US',
|
| 115 |
+
'state' =>'Nevada',
|
| 116 |
+
'city' =>'Las Vegas',
|
| 117 |
+
'zipcode' =>'89101',
|
| 118 |
+
'phone' =>'111-111-1111',
|
| 119 |
+
'fax' =>'1-111-111 1111',
|
| 120 |
+
'url' =>'http://www.magento.com',
|
| 121 |
+
'email' =>'test@gmail.com',
|
| 122 |
+
'store_logo' =>'demo5.png',
|
| 123 |
+
'description' =>'This is for testing.',
|
| 124 |
+
'trading_hours' =>'10AM-1PM 2PM-10PM',
|
| 125 |
+
'radius' =>'100',
|
| 126 |
+
'latitude' =>'36.255123',
|
| 127 |
+
'longitude' =>'-115.238349',
|
| 128 |
+
'zoom_level' =>'6',
|
| 129 |
+
'created_at' =>$currentTimestamp,
|
| 130 |
+
'stores' => array(0)
|
| 131 |
+
)
|
| 132 |
+
);
|
| 133 |
+
|
| 134 |
+
/**
|
| 135 |
+
* Insert data into storelocator table for testing/demo
|
| 136 |
+
*/
|
| 137 |
+
foreach ($stores as $data) {
|
| 138 |
+
Mage::getModel('clarion_storelocator/storelocator')->setData($data)->save();
|
| 139 |
+
}
|
app/code/community/Clarion/Storelocator/data/clarion_storelocator_setup/data-upgrade-0.1.0-0.1.1.php
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
/**
|
| 3 |
+
* Storelocator data installation script
|
| 4 |
+
*
|
| 5 |
+
* @category Clarion
|
| 6 |
+
* @package Clarion_Storelocator
|
| 7 |
+
* @author Clarion Magento Team <pandurang.babar@clariontechnologies.co.in>
|
| 8 |
+
*
|
| 9 |
+
*/
|
| 10 |
+
/**
|
| 11 |
+
* @var $installer Mage_Core_Model_Resource_Setup
|
| 12 |
+
*/
|
| 13 |
+
$installer = $this;
|
| 14 |
+
|
| 15 |
+
/**
|
| 16 |
+
* Update table 'clarion_storelocator/storelocator_store' for multiple store view
|
| 17 |
+
*/
|
| 18 |
+
|
| 19 |
+
//test stores in the table 'clarion_storelocator/storelocator'
|
| 20 |
+
$testStores = array('Demo1', 'Demo2', 'Demo3', 'Demo4', 'Demo5');
|
| 21 |
+
|
| 22 |
+
foreach ($testStores as $testStore) {
|
| 23 |
+
$testStorelocator = Mage::getModel('clarion_storelocator/storelocator')->load($testStore,'name');
|
| 24 |
+
if ($testStorelocator->getId()) {
|
| 25 |
+
$stores = $testStorelocator->getStores();
|
| 26 |
+
if(empty($stores)){
|
| 27 |
+
$testStorelocator->setStores(array(0))->save();
|
| 28 |
+
}
|
| 29 |
+
}
|
| 30 |
+
}
|
app/code/community/Clarion/Storelocator/etc/config.xml
CHANGED
|
@@ -11,7 +11,7 @@
|
|
| 11 |
<config>
|
| 12 |
<modules>
|
| 13 |
<Clarion_Storelocator>
|
| 14 |
-
<version>0.1.
|
| 15 |
</Clarion_Storelocator>
|
| 16 |
</modules>
|
| 17 |
|
|
@@ -27,6 +27,9 @@
|
|
| 27 |
<storelocator>
|
| 28 |
<table>clarion_storelocator</table>
|
| 29 |
</storelocator>
|
|
|
|
|
|
|
|
|
|
| 30 |
</entities>
|
| 31 |
</storelocator_resource>
|
| 32 |
</models>
|
| 11 |
<config>
|
| 12 |
<modules>
|
| 13 |
<Clarion_Storelocator>
|
| 14 |
+
<version>0.1.1</version>
|
| 15 |
</Clarion_Storelocator>
|
| 16 |
</modules>
|
| 17 |
|
| 27 |
<storelocator>
|
| 28 |
<table>clarion_storelocator</table>
|
| 29 |
</storelocator>
|
| 30 |
+
<storelocator_store>
|
| 31 |
+
<table>clarion_storelocator_store</table>
|
| 32 |
+
</storelocator_store>
|
| 33 |
</entities>
|
| 34 |
</storelocator_resource>
|
| 35 |
</models>
|
app/code/community/Clarion/Storelocator/sql/clarion_storelocator_setup/install-0.1.1.php
ADDED
|
@@ -0,0 +1,166 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
/**
|
| 3 |
+
* Storelocator installation script
|
| 4 |
+
*
|
| 5 |
+
* @category Clarion
|
| 6 |
+
* @package Clarion_Storelocator
|
| 7 |
+
* @author Clarion Magento Team <pandurang.babar@clariontechnologies.co.in>
|
| 8 |
+
*
|
| 9 |
+
*/
|
| 10 |
+
/**
|
| 11 |
+
* @var $installer Mage_Core_Model_Resource_Setup
|
| 12 |
+
*/
|
| 13 |
+
$installer = $this;
|
| 14 |
+
|
| 15 |
+
/**
|
| 16 |
+
* Prepare database for install
|
| 17 |
+
*/
|
| 18 |
+
$installer->startSetup();
|
| 19 |
+
|
| 20 |
+
/**
|
| 21 |
+
* Create table 'clarion_storelocator/storelocator'
|
| 22 |
+
*/
|
| 23 |
+
$table = $installer->getConnection()
|
| 24 |
+
->newTable($installer->getTable('clarion_storelocator/storelocator'))
|
| 25 |
+
->addColumn('storelocator_id', Varien_Db_Ddl_Table::TYPE_INTEGER, null, array(
|
| 26 |
+
'identity' => true,
|
| 27 |
+
'unsigned' => true,
|
| 28 |
+
'nullable' => false,
|
| 29 |
+
'primary' => true,
|
| 30 |
+
), 'Storelocator Id')
|
| 31 |
+
|
| 32 |
+
->addColumn('name', Varien_Db_Ddl_Table::TYPE_TEXT, 255, array(
|
| 33 |
+
), 'Store Name')
|
| 34 |
+
|
| 35 |
+
->addColumn('status', Varien_Db_Ddl_Table::TYPE_TINYINT, null, array(
|
| 36 |
+
'nullable' => false,
|
| 37 |
+
'default' => '1',
|
| 38 |
+
), 'Staus')
|
| 39 |
+
|
| 40 |
+
->addColumn('street_address', Varien_Db_Ddl_Table::TYPE_TEXT, 255, array(
|
| 41 |
+
'nullable' => true,
|
| 42 |
+
'default' => null,
|
| 43 |
+
), 'Street Address')
|
| 44 |
+
|
| 45 |
+
->addColumn('country', Varien_Db_Ddl_Table::TYPE_TEXT, 64, array(
|
| 46 |
+
'nullable' => true,
|
| 47 |
+
'default' => null,
|
| 48 |
+
), 'Country')
|
| 49 |
+
|
| 50 |
+
->addColumn('state', Varien_Db_Ddl_Table::TYPE_TEXT, 64, array(
|
| 51 |
+
'nullable' => true,
|
| 52 |
+
'default' => null,
|
| 53 |
+
), 'State')
|
| 54 |
+
|
| 55 |
+
->addColumn('city', Varien_Db_Ddl_Table::TYPE_TEXT, 64, array(
|
| 56 |
+
'nullable' => true,
|
| 57 |
+
'default' => null,
|
| 58 |
+
), 'City')
|
| 59 |
+
|
| 60 |
+
->addColumn('zipcode', Varien_Db_Ddl_Table::TYPE_TEXT, 64, array(
|
| 61 |
+
'nullable' => true,
|
| 62 |
+
'default' => null,
|
| 63 |
+
), 'Zipcode')
|
| 64 |
+
|
| 65 |
+
->addColumn('phone', Varien_Db_Ddl_Table::TYPE_TEXT, 255, array(
|
| 66 |
+
'nullable' => true,
|
| 67 |
+
'default' => null,
|
| 68 |
+
), 'Phone')
|
| 69 |
+
|
| 70 |
+
->addColumn('fax', Varien_Db_Ddl_Table::TYPE_TEXT, 64, array(
|
| 71 |
+
'nullable' => true,
|
| 72 |
+
'default' => null,
|
| 73 |
+
), 'Fax')
|
| 74 |
+
|
| 75 |
+
->addColumn('url', Varien_Db_Ddl_Table::TYPE_TEXT, 255, array(
|
| 76 |
+
'nullable' => true,
|
| 77 |
+
'default' => null,
|
| 78 |
+
), 'Store Url')
|
| 79 |
+
|
| 80 |
+
->addColumn('email', Varien_Db_Ddl_Table::TYPE_TEXT, 255, array(
|
| 81 |
+
'nullable' => true,
|
| 82 |
+
'default' => null,
|
| 83 |
+
), 'Email')
|
| 84 |
+
|
| 85 |
+
->addColumn('store_logo', Varien_Db_Ddl_Table::TYPE_TEXT, 255, array(
|
| 86 |
+
'nullable' => true,
|
| 87 |
+
'default' => null,
|
| 88 |
+
), 'Store Logo')
|
| 89 |
+
|
| 90 |
+
->addColumn('description', Varien_Db_Ddl_Table::TYPE_TEXT, '64K', array(
|
| 91 |
+
'nullable' => true,
|
| 92 |
+
'default' => null,
|
| 93 |
+
), 'Description')
|
| 94 |
+
|
| 95 |
+
->addColumn('trading_hours', Varien_Db_Ddl_Table::TYPE_TEXT, 255, array(
|
| 96 |
+
'nullable' => true,
|
| 97 |
+
'default' => null,
|
| 98 |
+
), 'Trading Hours')
|
| 99 |
+
|
| 100 |
+
->addColumn('radius', Varien_Db_Ddl_Table::TYPE_TEXT, 64, array(
|
| 101 |
+
'nullable' => true,
|
| 102 |
+
'default' => null,
|
| 103 |
+
), 'Radius')
|
| 104 |
+
|
| 105 |
+
->addColumn('latitude', Varien_Db_Ddl_Table::TYPE_TEXT, 255, array(
|
| 106 |
+
'nullable' => true,
|
| 107 |
+
'default' => null,
|
| 108 |
+
), 'Latitude')
|
| 109 |
+
|
| 110 |
+
->addColumn('longitude', Varien_Db_Ddl_Table::TYPE_TEXT, 255, array(
|
| 111 |
+
'nullable' => true,
|
| 112 |
+
'default' => null,
|
| 113 |
+
), 'Longitude')
|
| 114 |
+
|
| 115 |
+
->addColumn('zoom_level', Varien_Db_Ddl_Table::TYPE_TEXT, 64, array(
|
| 116 |
+
'nullable' => true,
|
| 117 |
+
'default' => null,
|
| 118 |
+
), 'Zoom level')
|
| 119 |
+
|
| 120 |
+
->addColumn('created_at', Varien_Db_Ddl_Table::TYPE_TIMESTAMP, null, array(
|
| 121 |
+
'nullable' => true,
|
| 122 |
+
'default' => null,
|
| 123 |
+
), 'Creation Time')
|
| 124 |
+
|
| 125 |
+
->addColumn('updated_at', Varien_Db_Ddl_Table::TYPE_TIMESTAMP, null, array(
|
| 126 |
+
'nullable' => true,
|
| 127 |
+
'default' => null,
|
| 128 |
+
), 'Store Updated Date')
|
| 129 |
+
|
| 130 |
+
->setComment('Clarion Storelocator Table');
|
| 131 |
+
|
| 132 |
+
$installer->getConnection()->createTable($table);
|
| 133 |
+
|
| 134 |
+
/**
|
| 135 |
+
* Create table 'clarion_storelocator/storelocator_store'
|
| 136 |
+
*/
|
| 137 |
+
|
| 138 |
+
$table = $installer->getConnection()
|
| 139 |
+
->newTable($installer->getTable('clarion_storelocator/storelocator_store'))
|
| 140 |
+
->addColumn('storelocator_id', Varien_Db_Ddl_Table::TYPE_SMALLINT, null, array(
|
| 141 |
+
'nullable' => false,
|
| 142 |
+
'primary' => true,
|
| 143 |
+
), 'Storelocator ID')
|
| 144 |
+
->addColumn('store_id', Varien_Db_Ddl_Table::TYPE_SMALLINT, null, array(
|
| 145 |
+
'unsigned' => true,
|
| 146 |
+
'nullable' => false,
|
| 147 |
+
'primary' => true,
|
| 148 |
+
), 'Store ID')
|
| 149 |
+
->addIndex($installer->getIdxName('clarion_storelocator/storelocator_store', array('store_id')),
|
| 150 |
+
array('store_id'))
|
| 151 |
+
|
| 152 |
+
->addForeignKey($installer->getFkName('clarion_storelocator/storelocator_store', 'storelocator_id', 'clarion_storelocator/storelocator', 'storelocator_id'),
|
| 153 |
+
'storelocator_id', $installer->getTable('clarion_storelocator/storelocator'), 'storelocator_id',
|
| 154 |
+
Varien_Db_Ddl_Table::ACTION_CASCADE, Varien_Db_Ddl_Table::ACTION_CASCADE)
|
| 155 |
+
|
| 156 |
+
->addForeignKey($installer->getFkName('clarion_storelocator/storelocator_store', 'store_id', 'core/store', 'store_id'),
|
| 157 |
+
'store_id', $installer->getTable('core/store'), 'store_id',
|
| 158 |
+
Varien_Db_Ddl_Table::ACTION_CASCADE, Varien_Db_Ddl_Table::ACTION_CASCADE)
|
| 159 |
+
|
| 160 |
+
->setComment('Clarion Storelocator To Store Linkage Table');
|
| 161 |
+
$installer->getConnection()->createTable($table);
|
| 162 |
+
|
| 163 |
+
/**
|
| 164 |
+
* Prepare database after install
|
| 165 |
+
*/
|
| 166 |
+
$installer->endSetup();
|
app/code/community/Clarion/Storelocator/sql/clarion_storelocator_setup/upgrade-0.1.0-0.1.1.php
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<?php
|
| 2 |
+
/**
|
| 3 |
+
* Storelocator installation script
|
| 4 |
+
*
|
| 5 |
+
* @category Clarion
|
| 6 |
+
* @package Clarion_Storelocator
|
| 7 |
+
* @author Clarion Magento Team <pandurang.babar@clariontechnologies.co.in>
|
| 8 |
+
*
|
| 9 |
+
*/
|
| 10 |
+
/** @var $installer Mage_Core_Model_Resource_Setup */
|
| 11 |
+
$installer = $this;
|
| 12 |
+
$installer->startSetup();
|
| 13 |
+
|
| 14 |
+
//Change field store_id to storelocator_id
|
| 15 |
+
$installer->getConnection()->changeColumn($installer->getTable('clarion_storelocator/storelocator'), 'store_id', 'storelocator_id', array(
|
| 16 |
+
'type' => Varien_Db_Ddl_Table::TYPE_INTEGER,
|
| 17 |
+
'identity' => true,
|
| 18 |
+
'unsigned' => true,
|
| 19 |
+
'nullable' => false,
|
| 20 |
+
'primary' => true,
|
| 21 |
+
'comment' => 'Storelocator Id'
|
| 22 |
+
));
|
| 23 |
+
|
| 24 |
+
/**
|
| 25 |
+
* Create table 'clarion_storelocator/storelocator_store'
|
| 26 |
+
*/
|
| 27 |
+
|
| 28 |
+
$table = $installer->getConnection()
|
| 29 |
+
->newTable($installer->getTable('clarion_storelocator/storelocator_store'))
|
| 30 |
+
->addColumn('storelocator_id', Varien_Db_Ddl_Table::TYPE_SMALLINT, null, array(
|
| 31 |
+
'nullable' => false,
|
| 32 |
+
'primary' => true,
|
| 33 |
+
), 'Storelocator ID')
|
| 34 |
+
->addColumn('store_id', Varien_Db_Ddl_Table::TYPE_SMALLINT, null, array(
|
| 35 |
+
'unsigned' => true,
|
| 36 |
+
'nullable' => false,
|
| 37 |
+
'primary' => true,
|
| 38 |
+
), 'Store ID')
|
| 39 |
+
->addIndex($installer->getIdxName('clarion_storelocator/storelocator_store', array('store_id')),
|
| 40 |
+
array('store_id'))
|
| 41 |
+
|
| 42 |
+
->addForeignKey($installer->getFkName('clarion_storelocator/storelocator_store', 'storelocator_id', 'clarion_storelocator/storelocator', 'storelocator_id'),
|
| 43 |
+
'storelocator_id', $installer->getTable('clarion_storelocator/storelocator'), 'storelocator_id',
|
| 44 |
+
Varien_Db_Ddl_Table::ACTION_CASCADE, Varien_Db_Ddl_Table::ACTION_CASCADE)
|
| 45 |
+
|
| 46 |
+
->addForeignKey($installer->getFkName('clarion_storelocator/storelocator_store', 'store_id', 'core/store', 'store_id'),
|
| 47 |
+
'store_id', $installer->getTable('core/store'), 'store_id',
|
| 48 |
+
Varien_Db_Ddl_Table::ACTION_CASCADE, Varien_Db_Ddl_Table::ACTION_CASCADE)
|
| 49 |
+
|
| 50 |
+
->setComment('Clarion Storelocator To Store Linkage Table');
|
| 51 |
+
$installer->getConnection()->createTable($table);
|
| 52 |
+
|
| 53 |
+
$installer->endSetup();
|
media/clarion_storelocator/cache/400/demo2.png
ADDED
|
Binary file
|
media/clarion_storelocator/cache/400/demo4.png
ADDED
|
Binary file
|
media/clarion_storelocator/cache/400/demo5.png
ADDED
|
Binary file
|
media/clarion_storelocator/cache/400/red3.jpeg
ADDED
|
Binary file
|
media/clarion_storelocator/demo1.png
DELETED
|
Binary file
|
media/clarion_storelocator/demo5.png
DELETED
|
Binary file
|
package.xml
CHANGED
|
@@ -1,18 +1,18 @@
|
|
| 1 |
<?xml version="1.0"?>
|
| 2 |
<package>
|
| 3 |
<name>Clarion_Storelocator</name>
|
| 4 |
-
<version>1.0.
|
| 5 |
<stability>stable</stability>
|
| 6 |
<license uri="http://opensource.org/licenses/osl-3.0.php">Open Software License (OSL)</license>
|
| 7 |
<channel>community</channel>
|
| 8 |
<extends/>
|
| 9 |
<summary>Store Locator With Google Map</summary>
|
| 10 |
<description>Store locator extension helps to manage multiple stores from admin panel. Customers can search nearest stores. Customers can view individual store details. Stores shown on the Google map.</description>
|
| 11 |
-
<notes>
|
| 12 |
<authors><author><name>Clarion Technologies</name><user>Clariontech</user><email>magento@clariontechnologies.co.in</email></author></authors>
|
| 13 |
-
<date>2014-07-
|
| 14 |
-
<time>07:
|
| 15 |
-
<contents><target name="magecommunity"><dir name="Clarion"><dir name="Storelocator"><dir name="Block"><dir name="Adminhtml"><dir name="Storelocator"><dir name="Edit"><file name="Form.php" hash="6ae73ab1e08b67ece7ef0b8090fa58ac"/><dir name="Tab"><file name="Description.php" hash="6d7713c768072d32e669f43e82ed43b6"/><file name="Display.php" hash="98f53775cdfff51f1b18594d769fd5cc"/><file name="Form.php" hash="
|
| 16 |
<compatible/>
|
| 17 |
<dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
|
| 18 |
</package>
|
| 1 |
<?xml version="1.0"?>
|
| 2 |
<package>
|
| 3 |
<name>Clarion_Storelocator</name>
|
| 4 |
+
<version>1.0.1</version>
|
| 5 |
<stability>stable</stability>
|
| 6 |
<license uri="http://opensource.org/licenses/osl-3.0.php">Open Software License (OSL)</license>
|
| 7 |
<channel>community</channel>
|
| 8 |
<extends/>
|
| 9 |
<summary>Store Locator With Google Map</summary>
|
| 10 |
<description>Store locator extension helps to manage multiple stores from admin panel. Customers can search nearest stores. Customers can view individual store details. Stores shown on the Google map.</description>
|
| 11 |
+
<notes>Added multiple store views functionality.</notes>
|
| 12 |
<authors><author><name>Clarion Technologies</name><user>Clariontech</user><email>magento@clariontechnologies.co.in</email></author></authors>
|
| 13 |
+
<date>2014-07-21</date>
|
| 14 |
+
<time>07:00:02</time>
|
| 15 |
+
<contents><target name="magecommunity"><dir name="Clarion"><dir name="Storelocator"><dir name="Block"><dir name="Adminhtml"><dir name="Storelocator"><dir name="Edit"><file name="Form.php" hash="6ae73ab1e08b67ece7ef0b8090fa58ac"/><dir name="Tab"><file name="Description.php" hash="6d7713c768072d32e669f43e82ed43b6"/><file name="Display.php" hash="98f53775cdfff51f1b18594d769fd5cc"/><file name="Form.php" hash="ddb9c96ffdb1848badee1ac396a6028d"/><file name="Googlemap.PHP" hash="5f6a32c06b19e78b6a67a4f54e6c735f"/></dir><file name="Tabs.php" hash="ee6cf57f633fc54c41f2a0097b02292b"/></dir><file name="Edit.php" hash="b84a1b2280b0c7d765b93daac5a0ec54"/><file name="Grid.php" hash="1b71cce9ee18ccb4980f7aeef91fc150"/></dir><file name="Storelocator.php" hash="8408bd9a6cd03628fbeb189b5ea25796"/></dir><file name="List.php" hash="30e86853e0fa4efe921bf015ba47be38"/><file name="View.php" hash="851850836d6bb8e4228a6173dce2375d"/></dir><dir name="Helper"><file name="Admin.php" hash="c3b93859c4e926afd7dfa1931b805040"/><file name="Data.php" hash="5ddcdaf83c7c3e34ddafdcbd9fd61d47"/><file name="Image.php" hash="f57436a272c1bd566239a52ea7429c5a"/></dir><dir name="Model"><file name="Enabledisable.php" hash="9a4274b006e955c1da42253260ec3fa3"/><dir name="Resource"><file name="Setup.php" hash="d626686cd920168f17d332b1edd3860d"/><dir name="Storelocator"><file name="Collection.php" hash="b4b795d05336b1f017768e56794dae62"/></dir><file name="Storelocator.php" hash="3657638c7dafc174f0197add770d6b8a"/></dir><file name="Storelocator.php" hash="fe10791b42d03149f8e3f32160d4e522"/></dir><dir name="controllers"><dir name="Adminhtml"><file name="ManagestorelocatorController.php" hash="f7984c1764fbb2c06e249a71ca44af8a"/></dir><file name="IndexController.php" hash="598df2ba06adbb249bac3b997e380194"/></dir><dir name="data"><dir name="clarion_storelocator_setup"><file name="data-install-0.1.0.php" hash="c1a712b8a0832f53afd0a9de4289ef61"/><file name="data-install-0.1.1.php" hash="7f1b72e3001764fb8d51882a50fdc9c9"/><file name="data-upgrade-0.1.0-0.1.1.php" hash="2f61434eeff7a8031db63fd8f62bbc34"/></dir></dir><dir name="etc"><file name="adminhtml.xml" hash="cdc622c940dc5be38dbc0ac0f4692827"/><file name="config.xml" hash="b81aadab59c1a7d19fba90489a1eb589"/><file name="system.xml" hash="b22b364f771a8d79762e468f438c040b"/></dir><dir name="sql"><dir name="clarion_storelocator_setup"><file name="install-0.1.0.php" hash="837a059b999021a4fca8714dae95ed7c"/><file name="install-0.1.1.php" hash="806bb2bf8db848b1e17f0b32cd269d65"/><file name="upgrade-0.1.0-0.1.1.php" hash="10d75aaa89d7c7db9369fc37f2147eae"/></dir></dir></dir></dir></target><target name="magedesign"><dir name="adminhtml"><dir name="default"><dir name="default"><dir name="layout"><file name="clarion_storelocator.xml" hash="ed85f66f43d0abed92fbc8e6a4752e7a"/></dir></dir></dir></dir><dir name="frontend"><dir name="base"><dir name="default"><dir name="layout"><file name="clarion_storelocator.xml" hash="657e24dc7c3ea71c9cb5241611f1c43f"/></dir><dir name="template"><dir name="clarion"><dir name="storelocator"><file name="list.phtml" hash="a321d7338a3317883487d55a825dd60b"/><file name="view.phtml" hash="5e216c02a4ecde43d2548572e60e6e47"/></dir></dir></dir></dir></dir></dir></target><target name="mageetc"><dir name="modules"><file name="Clarion_Storelocator.xml" hash="64d157a8f5d3806f9294495058042a8b"/></dir></target><target name="magemedia"><dir name="clarion_storelocator"><dir name="cache"><dir name="400"><file name="demo2.png" hash="b267c5fb7a839b31015d8172c11b4c71"/><file name="demo4.png" hash="45247c98e898b992e22131422f5f6b02"/><file name="demo5.png" hash="a4a73084252f19bb3c033d07b9298957"/><file name="red3.jpeg" hash="ad747ba8acdf66bf640242912ad52c82"/></dir></dir><file name="demo2.png" hash="1e691b78821ad95c4fd12f2e66990f93"/><file name="demo3.png" hash="e821fde1f20f200dea31e9e9e39cddd7"/><file name="demo4.png" hash="1f90c8d847fd50d9062ac6fda4d9104d"/></dir></target><target name="mageskin"><dir name="frontend"><dir name="base"><dir name="default"><dir name="css"><file name="clarion_storelocator.css" hash="e012deb8f48fff3d466aeff420097d7b"/></dir><dir name="js"><dir name="clarion_storelocator"><file name="storelocator.js" hash="cd71dbe51c5b86e8ab0f94a00660c3ce"/></dir></dir></dir></dir></dir></target></contents>
|
| 16 |
<compatible/>
|
| 17 |
<dependencies><required><php><min>5.2.0</min><max>6.0.0</max></php></required></dependencies>
|
| 18 |
</package>
|
