Post by deuce » Tue Jul 27, 2010 7:18 am

I know I ran across someone asking this question and I can't find that post again and I don't know if this has ever been answered, so I will post my solution. If it's a dupe, my apologies to the mods.

In -- controller > common > home.php -- I added it around line 25, right under this portion

Code: Select all

if (!$this->config->get('config_store_id')) {
    $this->data['welcome'] = html_entity_decode($this->config->get('config_description_' . $this->config->get('config_language_id')), ENT_QUOTES, 'UTF-8');
} else {
    $store_info = $this->model_setting_store->getStore($this->config->get('config_store_id'));
    
    if ($store_info) {
        $this->data['welcome'] = html_entity_decode($store_info['description'], ENT_QUOTES, 'UTF-8');
    } else {
        $this->data['welcome'] = '';
    }
}
 
I added

Code: Select all

$this->load->model('catalog/category');
$this->data['categories'] = $this->model_catalog_category->getCategories(0); 
Then in -- view > theme > ThemeName > template > common > home.tpl

Code: Select all

<ul id="catalog-nav">
<?php foreach($categories as $category): ?>        
    <?php // print_r($category); ?>        
    <li style="text-indent: 0;">
        <a href="index.php?route=product/category&path=<?php echo $category['category_id'] ?>">
            <img src="/store/image/<?php echo $category['image'] ?>" style="border:0;">
        </a>
    </li>        
<?php endforeach; ?>
</ul>
You can uncomment the print_r to see what is all available for you to work with.
I also implemented a lookup for SEO Friendly URLs, but it can be pretty database intensive for larger sites, so if anyone knows of a better way to doing this lookup then my way, please feel free to post it!

I added this to the controller, just beneath the first snippet.

Code: Select all

$cat_count = 0;

foreach($this->data['categories'] as $category){
    $seo_url_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE query = 'category_id=" . $category['category_id'] . "'");
    if ($seo_url_query->num_rows) {
        $this->data['categories'][$cat_count]['seo_keyword'] = $seo_url_query->row['keyword'];
    }
    $cat_count++;
}
 
Technically, this should be done from the category model, but since I am not the best at MySQL, I wasn't able to decipher the query that is currently being used.

Then, for the view, replace the previous snippet with this one.

Code: Select all

<ul id="catalog-nav">
<?php foreach($categories as $category): ?>        
    <?php // print_r($category); ?>        
    <li style="text-indent: 0;">
        <?php if(isset($category['seo_keyword'])){ ?>
            <a href="/store/<?php echo $category['seo_keyword'] ?>/">
        <?php } else { ?>
            <a href="index.php?route=product/category&path=<?php echo $category['category_id'] ?>">
        <?php } ?>
            <img src="/store/image/<?php echo $category['image'] ?>" style="border:0;">
        </a>
    </li>        
<?php endforeach; ?>
</ul>
Again, the store I used this on has 3 products and has no plans on adding more products. If you start adding hundreds or thousands of products using the above SEO URL lookup, you will be slamming your database pretty hard. I hope someone can post a followup to this with a better way to look this up.

Happy hacking!

Newbie

Posts

Joined
Sat Jul 03, 2010 1:40 am

Post by aaron1988 » Mon Jan 31, 2011 1:38 am

this is working all i get is bullet points? on version 1.4.9.1

Newbie

Posts

Joined
Thu Jan 27, 2011 10:03 am

Post by marc_cole » Mon Jan 31, 2011 2:35 am

There is a mod called Categories Home which handles this beautifully without any need for modifying the core code.

OpenCart v1.4.9.4
VQMod | Categories Home | Cleaner By Default - 2 Column | Speak Good English


Newbie

Posts

Joined
Tue Dec 14, 2010 11:26 am
Location - Seattle, WA

Post by webmix » Wed Apr 06, 2011 6:43 am

Advanced Categories Module Features:

1) Front block name settings in admin panel.
2) Positions: Home, Left, Right.
3) Subcategories settings (show/hide).
4) Categories images settings (show/hide).
5) Categories images size settings (max.width / max height).
6) 3 languages (english, russian, ukrainian).
7) Module can work together with Category module.

WEBMIX
http://webmix.info
http://store.webmix.info
dmitriy.proshin@gmail.com


User avatar
Newbie

Posts

Joined
Tue Apr 05, 2011 2:03 am
Location - Ukraine, Dnepropetrovsk

Post by remcofaasse » Fri Dec 30, 2011 12:55 am

How can I use this script to show category images in the header? Now I have showing an image per category on category page. But I want them to show in the header. Thanks for help.

Newbie

Posts

Joined
Mon Dec 05, 2011 2:20 am

Post by scanreg » Fri Dec 30, 2011 1:41 am

webmix wrote:Advanced Categories Module Features:

1) Front block name settings in admin panel.
2) Positions: Home, Left, Right.
3) Subcategories settings (show/hide).
4) Categories images settings (show/hide).
5) Categories images size settings (max.width / max height).
6) 3 languages (english, russian, ukrainian).
7) Module can work together with Category module.
Will this work with opencart 1.5.x.x ?

Newbie

Posts

Joined
Thu May 06, 2010 12:15 am

Post by gymrat29 » Sat Feb 18, 2012 3:16 am

marc_cole wrote:There is a mod called Categories Home which handles this beautifully without any need for modifying the core code.
Has this been solved??? Is there a new module for the latest version 1.5.1.3? By the way marc_cole, I tried to see if this would work with the new one but it doesn't. Just a blank screen when trying to edit. Also, in viewing comments on the module, people are saying it's not the categories that are featured?

Newbie

Posts

Joined
Tue Aug 17, 2010 12:38 am

Post by gymrat29 » Sat Feb 18, 2012 3:17 am

scanreg wrote:
webmix wrote:Advanced Categories Module Features:

1) Front block name settings in admin panel.
2) Positions: Home, Left, Right.
3) Subcategories settings (show/hide).
4) Categories images settings (show/hide).
5) Categories images size settings (max.width / max height).
6) 3 languages (english, russian, ukrainian).
7) Module can work together with Category module.
Will this work with opencart 1.5.x.x ?
Yeah, what he said??????????????????????????????

Newbie

Posts

Joined
Tue Aug 17, 2010 12:38 am

Post by scanreg » Sat Feb 18, 2012 4:07 am

i think there is a contrib around called Category Wall that might do this

Newbie

Posts

Joined
Thu May 06, 2010 12:15 am

Post by gymrat29 » Sun Feb 19, 2012 1:58 am

scanreg wrote:i think there is a contrib around called Category Wall that might do this

Awesome! Thanks, that's just what I was looking for. ;D

Newbie

Posts

Joined
Tue Aug 17, 2010 12:38 am
Who is online

Users browsing this forum: No registered users and 5 guests