Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to make a simple module in OpenCart? Example getting latest posts from Wordpress and showing it in OpenCart?

Tags:

I am new to this forum and as well as to OpenCart.

I need help on creating a module in OpenCart. In my case it will get the latest 5 posts from each category of my WordPress installation and display it in my home page of my OpenCart store.

I have already installed OpenCart and WordPress in same database on the same host.

Can someone advice me on this?

like image 448
Developer Avatar asked Nov 03 '12 10:11

Developer


1 Answers

This can be very easy depending on your skills. I expect a downvote on your question but I will briefly run through the steps since this is not the way SO works. The first thing is to edit our THEMES files. Since OpenCart is MVC, we edit our Theme and then our PHP... or PHP and then the THEME files.. this is vice versa..

Guide

1 - Open /catalog/view/theme/default/template/common/home.tpl

After this line:

<h1 style="display: none;"><?php echo $heading_title; ?></h1> 

Add this:

<?php MyWordPressFunction() ?> 

or this:

<div>     <h2>Latest posts from our blog</h2>     <?php MyWordPressFunction() ?> </div> 

2 - Open our PHP code which is now the code for the home.tpl page, this is /catalog/controller/common/home.php

At the bottom of the code after the main class and the ending ?> PHP tag add this:

// WORDPRESS LATEST POSTS //#customPHP // The tag above is so that when you upgrade OpenCart // Before doing so you need to make sure of all the core // core changes you made - a unique global comment tag // is easy to find.  function MyWordPressFunction(){      // DB         // GET THE POSTS         // LIMIT BY 5         // ORDER BY LATEST POSTS     $sql=mysql_query("SELECT * FROM `wordpress_db`.`wp_posts` ORDER BY `wp_posts`.`post_date` DESC LIMIT 5");     while($row = mysql_fetch_array($sql)){          // VARS (easy to play with in the echo)          $id=$row["ID"];         $author=$row["post_author"];         $date=$row["post_date"];         $post=$row["post_content"];         $title=$row["post_title"];          echo '              <div id="postID_'.$id.'>                  <h3>'.$title.'</h3>                  <p>'.$post.'</p>                  <p>Posted by '.$author.' on '.$date.'</p>              </div>          ';      }      // END DB  } 

That should give you an idea of some basic PHP function calls. It is a direction to get you started. You can further expand to link categories, author links, etc..

By the way, all these variables can be used as you can see in the WP_Posts table:

/*  All these can be used  ID post_author post_date post_date_gmt post_content  post_title post_excerpt post_status comment_status ping_status post_password post_name to_ping pinged post_modified post_modified_gmt post_content_filtered post_parent guid menu_order post_type post_mime_type comment_count  */ 

Tips

Generally look through the entire OpenCart filter on SO - there are many articles on writing mods, modifying how it works and creating custom pages - these will really help in your long time tweaking. The above code is not got styling or further tweaks, this is a guide.

Further reading and better module type posts

How to add new module to opencart administration?

How to add new module to opencart administration?

How to create a custom admin page in opencart?

How to create a custom admin page in opencart?

How do I get an external page coupon/voucher form to work in OpenCart?

How do I get an external page coupon/voucher form to work in OpenCart?

Opencart - How I can execute a custom code on product page? Without mods on controller product

Opencart - How I can execute a custom code on product page? Without mods on controller product

How can I display the SubTotal on OpenCart on any page?

How can I display the SubTotal on OpenCart on any page?

like image 179
TheBlackBenzKid Avatar answered Sep 21 '22 07:09

TheBlackBenzKid