Semplice, ma cominciamo dal business. Questa procedimento è molto semplice, ma anche molto potente. Nonostante la sua grandezza, Magento manca di una buona soluzione di gestione del contenuto (CMS) Molte persone stanno cercando di integrare WordPress e Magento. Probilimente tutti quelli che si occupano di sviluppo web hanno sentito parlare di WordPress. Personalmente, li trovo tutti molto utili, da Joomla, Drupal, Wordpress… Tuttavia c’è qualcosa che rende WordPress un pochino più avanti rispetto agli altri. Non voglio innescare polemiche, percui torniamo all’argomento.
A causa della mancanza di una buona soluzione di gestione del contenuto, coloro i quali usano WordPress possono gestire facilmente il contenuto e renderlo accessibile nella pagina CMS di Magento (che si può impostare come home page di Magento).
Quando vi piacerebbe farlo?
Immaginate di aver istallato Magento nella root del proprio sito e WordPress in una cartella come /articles. Di default, si accede a WordPress attraverso l’indirizzo http://mysite.domain/articles, mentre si accede a Magento attraverso l’indirizzo http://mysite.domain. Il nostro obiettivo è rendere accessibile la pagina WordPress (che sarà chiamata “home” all’indirizzo http://mysite.domain.
Sono necessari alcuni passaggi
- Create un pagina WordPress chiamata “home” (sotto un url come http://mysite.domain/articles/wp-content)
- Create un file chiamato cmswp_home.phtml sotto la cartella pp/design/frontend/default/yourtheme_or_default_theme/template/inchoo/
- Create una pagina CMS di Magento (se ancora non è stato fatto), nominatela come preferite e aggiunte al contenuto questa riga: {{block type=”core/template” template=”inchoo/cmswp_home.phtml”}}
- Impostate la pagina CMS di Magento appena creata come home page sotto il percorso Pannello di controllo > Configurazione > Web > Pagine di Default > CMS Home Page
Segue il codice che dovete incollare nel file cmswp_home.phtml di cui si è parlato prima.
< ?php /** * Pulls the content of post named 'home' from WordPress 'wp_posts' table * @author Branko Ajzele * @license GPL */ //Fetch database connection $_conn = Mage::getSingleton('core/resource')->getConnection('core_write'); //Set query that retrieves the home page content //THIS GOES IF YOU HAVE WORDPRESS AND MAGENTO IN SAME DATABSE $_findHomePage = "SELECT post_content FROM wp_posts WHERE post_name = 'home' AND post_status = 'publish' AND post_type = 'page'"; //Set default value of home page to null, then do a safe check just to be more user friendly $_homePageContent = null; try { /* //IF YOU HAVE WORDPRESS AND MAGENTO INSTALLED EACH IN ITS OWN DATABASE; THEN USE $conf = array( 'host' => 'localhost', 'username' => 'wordpress_db_username', 'password' => 'wordpress_db_password', 'dbname' => 'wordpress_db_name' ); $_resource = Mage::getSingleton('core/resource'); //Create new connection to new server and new databse $_conn = $_resource->createConnection('place_some_free_random_resource_name_here', 'pdo_mysql', $conf); */ $_homePageContent = $_conn->fetchOne($_findHomePage); } catch (Exception $ex) { //SEND EXCEPTION INFO TO ADMIN? /* * USE $emailSmtpConf, $transport and $mail->send($transport); in case you need to specify SMTP manualy $emailSmtpConf = array( 'auth' => 'login', 'ssl' => 'tls', 'username' => 'some_email@gmail.com', 'password' => 'some_pass_here' ); $transport = new Zend_Mail_Transport_Smtp('smtp.gmail.com', $emailSmtpConf); */ $_sendTo_email = 'ajzele@somemail.com'; $_sendFrom_email = 'branko.ajzele@somemail.com'; //Notify each item author about purchase $mail = new Zend_Mail(); $mail->addTo($_sendTo_email, 'Branko Ajzele'); $mail->setFrom($_sendFrom_email, 'Branko Ajzele'); $mail->setSubject('Invalid HOME PAGE on site detected'); $mail->setBodyHtml(' <h1>Invalid HOME PAGE on site detected</h1> There seem to be some issues with home page on your site. Please take a look at it. Could be that WordPress page has been disabled and this made the query for page return null. '); try { //Try to send email //$mail->send($transport); $mail->send(); } catch (Exception $ex) { //echo $ex->getMessage(); } } ?> < ?php if($_homePageContent): ?> < ?php echo $_homePageContent ?> < ?php else: ?> <h1>Home page unavailable</h1> Seems like home page is unavailable at the moment. We apologize for the inconvenience. < ?php endif; ?> |
Questo è tutto.
Se volete avere maggiore controllo sul risultato. Date un’occhiata alla variabile $_findHomePage, dietro la query.
Fonte: Inchoo.net
















Clicca qui per