1. About the Module :
This module is for media sync when deploying magento as distributed application
Module located at : app/code/local/Kim/Syncmedia/
There are only 4 files list below to make that all :
2. app/code/local/Kim/Syncmedia/controllers/indexController.php
[codesyntax lang=”php”]
class Kim_Syncmedia_IndexController extends Mage_Core_Controller_Front_Action { public function indexAction() { $params = $this->getRequest()->getParams(); $model = Mage::getModel('syncmedia/observer'); var_dump($params); var_dump($model); exit(); } }
[/codesyntax]
3. app/code/local/Kim/Syncmedia/etc/config.xml
[codesyntax lang=”xml”]
<?xml version="1.0"?> <config> <!-- base configurations --> <modules> <Kim_Syncmedia> <!-- module version --> <version>0.1.0</version> </Kim_Syncmedia> </modules> <!-- global configurations --> <global> <!-- enable models and resources --> <models> <syncmedia> <class>Kim_Syncmedia_Model</class> <!-- <resourceModel>weblog_mysql4</resourceModel> --> </syncmedia> </models> <!-- events hooks --> <events> <cms_page_save_after> <observers> <kim_catalog_observer> <type>singleton</type> <class>syncmedia/observer</class> <method>sync_cms_image</method> </kim_catalog_observer> </observers> </cms_page_save_after> <catalog_category_save_after> <observers> <kim_catalog_observer> <type>singleton</type> <class>syncmedia/observer</class> <method>sync_category_image</method> </kim_catalog_observer> </observers> </catalog_category_save_after> <catalog_product_save_after> <observers> <kim_catalog_observer> <type>singleton</type> <class>syncmedia/observer</class> <method>sync_product_image</method> </kim_catalog_observer> </observers> </catalog_product_save_after> </events> </global> <!-- frontend configurations --> <frontend> <routers> <syncmedia> <!-- module route --> <use>standard</use> <args> <module>Kim_Syncmedia</module> <frontName>syncmedia</frontName> </args> </syncmedia> </routers> </frontend>
[/codesyntax]
4. app/code/local/Kim/Syncmedia/Model/Observer.php
[codesyntax lang=”php”]
class Kim_Syncmedia_Model_Observer { protected function _construct() { $this->_init('syncmedia/observer'); } public function sync_cms_image($observer) { system('cp -Ru /data/vhosts/magento/public_html/media/*[.a-z] /data/vhosts/magento2/public_html/media/ &'); system('chmod -R g+w /data/vhosts/magento2/public_html/media/ &'); return $this; } public function sync_product_image($observer) { system('cp -Ru /ddata/vhosts/magento/public_html/media/catalog/product/* /ddata/vhosts/magento2/public_html/media/catalog/product/ &'); system('chmod -R g+w /data/vhosts/magento2/public_html/media/catalog/product/ &'); return $this; } public function sync_category_image($observer) { system('cp -Ru /data/vhosts/magento/public_html/media/catalog/category/* /data/vhosts/magento2/public_html/media/catalog/category/ &'); system('chmod -R g+w /data/vhosts/magento2/public_html/media/catalog/category/ &'); return $this; } }
[/codesyntax]
5. Finally you need to enable the module with : app/etc/modules/Kim_Syncmedia.xml
[codesyntax lang=”xml”]
<?xml version="1.0"?> <config> <modules> <Kim_Syncmedia> <active>true</active> <codePool>local</codePool> </Kim_Syncmedia> </modules> </config>
[/codesyntax]