Jump to content

Sean Raviolli

Members
  • Posts

    14
  • Joined

  • Last visited

1 Follower

Profile Information

  • Location
    United States
  • Activity
    Web development agency

Recent Profile Visitors

2,406,071 profile views

Sean Raviolli's Achievements

Newbie

Newbie (1/14)

1

Reputation

  1. Thanks for the reply. Actually I'm looking to recruit someone to take care of it ;-) that's why I posted here.
  2. Hi Everyone! This is my website: http://www.partsgalaxy.com/ We are an after market auto parts company. We are looking for SEO professionals to do both native SEO (on the website) and also the Google thing (social presence, back links, articles, stuff). WE NEED SOMEONE WITH KNOWLEDGE OF PRESTASHOP SOFTWARE. I want everything be done (as possible) with presta's native tools. All the products, categories and stuff must be tagged and also content must be revised with keywords and pictures. You will be in charge of checking your competitors websites and finding keywords. We are targeting English and Spanish in California. My initial bid is about 400$. This is an ongoing project and there is a possibility for direct hire. Thanks! You can either message me here or email me directly at anoosh _AT_ webcook.net
  3. And this to GENERATE those requests. i modified my blockcategories from my theme, but should be applicable to default module as well: {$showMMY = !($page_name == 'category' || $page_name == 'product')} <!-- straight up JS to make MMY working. --> {if $showMMY } {literal} <script type='text/javascript'> $(document).ready(function() { // make sure we are on the same page if ( $('ul.mmy-selector').length > 0 ){ // Change page's name $('#top-categ').find('span').text('Make, Model, Year Search'); // load the makes initially. $.ajax({ url: '/modules/blocklayered/blocklayered-ajax-r.php', data: {mode: 4}, type: "POST", dataType: "JSON", success: function (makes){$.each (makes, function (){ // Append the option bar $('#make-selector') .append($("<option></option>") .attr("value",this.id_attribute) .text(this.name)); }); $('#make-selector').parent().find('.mmy-loader').hide(); }, }); // Bind event to this one's change attr and fill up the models $(document).on('change', '#make-selector', function(){ $('#model-selector').parent().find('.mmy-loader').show(); // Send another AJAX request with mode 5 (model) and key 4 (make) $.ajax({ url: '/modules/blocklayered/blocklayered-ajax-r.php', data: {mode: 5, make: $('#make-selector').val()}, type: "POST", dataType: "JSON", success: function (models){ // remove previous options rather than nullifier $('#model-selector') .find('option') .remove() .end() .append('<option disabled="disabled" selected="selected">Select...</option>'); $.each (models, function (){ // Append the option bar $('#model-selector') .append($("<option></option>") .attr("value",this.id_attribute) .text(this.name)); }); $('#model-selector').parent().find('.mmy-loader').hide(); }, }); }); // Bind event to model change. pick up years and we're ready to go $(document).on('change', '#model-selector', function(){ $('#year-selector').parent().find('.mmy-loader').show(); // Send another AJAX request with mode 5 (model) and key 4 (make) $.ajax({ url: '/modules/blocklayered/blocklayered-ajax-r.php', data: {mode: 6, make: $('#make-selector').val(), model: $('#model-selector').val()}, type: "POST", dataType: "JSON", success: function (years){ // remove previous options rather than nullifier $('#year-selector') .find('option') .remove() .end() .append('<option disabled="disabled" selected="selected">Select...</option>'); $.each (years, function (){ // Append the option bar $('#year-selector') .append($("<option></option>") .attr("value",this.id_attribute) .text(this.name)); }); $('#year-selector').parent().find('.mmy-loader').hide(); }, }); }); // Bind event to the button $(document).on('click', '#mmy-go', function(){ if ($("#make-selector ")[0].selectedIndex <= 0) { $("#make-selector").prev().css({color:'red'}); return false; } if ($("#model-selector ")[0].selectedIndex <= 0) { $("#model-selector").prev().css({color:'red'}); return false; } if ($("#year-selector ")[0].selectedIndex <= 0) { $("#year-selector").prev().css({color:'red'}); return false; } // Down here everything is fine, we can simply go var searchString = $('#make-selector option:selected').text() + ' ' + $('#model-selector option:selected').text() + ' ' + $('#year-selector option:selected').text() ; // paste it into the search box $('#search_query_top').val(searchString); // hit submit $('#search_query_top').next().click(); }); // End ready and if } }); </script> {/literal} {/if} <!-- Block categories module --> <div id="categories_block_left" class="demo-container block"> <div class="tptn-vertical-mega-menu"> {if $showMMY } <!-- Do the triple level select boxes and a submit button for MMY search --> <ul id="mega-1" class="menu right mmy-selector"> <li> <a href="#"> <label for="make-selector">Make: </label> <select name="make-selector" id="make-selector"> <option disabled="disabled">Select...</option> </select> <img src="{$img_ps_dir}mmy-loader.gif" class="middle mmy-loader" alt="" id="stores_loader" /> </a> </li> <li> <a href="#"> <label for="model-selector">Model: </label> <select name="model-selector" id="model-selector"> <option disabled="disabled">Select Make.</option> </select> <img src="{$img_ps_dir}mmy-loader.gif" class="middle mmy-loader" alt="" id="stores_loader" style="display: none; !important;" /> </a> </a> </li> <li> <a href="#"> <label for="year-selector">Year: </label> <select name="year-selector" id="year-selector"> <option disabled="disabled">Select Make.</option> </select> <img src="{$img_ps_dir}mmy-loader.gif" class="middle mmy-loader" alt="" id="stores_loader" style="display: none; !important;" /> </a> </a> </li> <li> <a href="#"> <button id="mmy-go"> Find my Part</button> </a> </li> </ul> {else} <ul id="mega-1" class="menu right"> {foreach from=$blockCategTree.children item=child name=blockCategTree} {if $smarty.foreach.blockCategTree.last} {include file="$branche_tpl_path" node=$child last='true'} {else} {include file="$branche_tpl_path" node=$child} {/if} {/foreach} </ul> {/if} </div> </div> <!-- /Block categories module -->
  4. Yes. Basically, I added a file to handle AJAX requests in blocklayered module: <?php include(dirname(__FILE__).'/../../config/config.inc.php'); include(dirname(__FILE__).'/../../init.php'); // What mode are we running $myMode = (int)Tools::getValue('mode'); // params $myMake = (int)Tools::getValue('make'); $myModel = (int)Tools::getValue('model'); if ($myMode){ switch ($myMode){ case 4: echo json_encode(getMakes()); break; // Models case 5: echo json_encode(getModels($myMake)); break; // Years: case 6: echo json_encode(getYears($myMake, $myModel)); break; } } return true; /* functions */ // Get all makes by cross joining products table function getMakes(){ $makes = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS(' SELECT al.id_attribute, al.name FROM ps_attribute_group ag JOIN ps_attribute a ON (a.id_attribute_group = ag.id_attribute_group) JOIN ps_attribute_lang al ON (al.id_attribute = a.id_attribute) WHERE ag.id_attribute_group = 4 AND id_lang = 1 ORDER BY al.name DESC '); // No makes is an error if (!$makes) return NULL; return $makes; } // Grab all models based on this make, from products. function getModels($myMake){ if(!is_int($myMake)) return NULL; $models = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS(' SELECT DISTINCT(al.name), al.id_attribute FROM ps_layered_product_attribute lpa1 JOIN ps_layered_product_attribute lpa2 ON (lpa1.id_product = lpa2.id_product) JOIN ps_attribute_lang al ON (lpa2.id_attribute = al.id_attribute ) WHERE lpa1.id_attribute = '.$myMake.' AND lpa2.id_attribute_group = 5 ORDER BY al.name DESC '); // empty if (!$models) return NULL; return $models; } // Grab all the years from this make + model selection function getYears($myMake, $myModel){ if(!is_int($myMake) OR ! is_int($myModel)) return NULL; $years = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS('SELECT DISTINCT(al.name), al.id_attribute FROM ps_layered_product_attribute lpa1 JOIN ps_layered_product_attribute lpa2 ON (lpa1.id_product = lpa2.id_product) JOIN ps_layered_product_attribute lpa3 ON (lpa2.id_product = lpa3.id_product) JOIN ps_attribute_lang al ON (lpa3.id_attribute = al.id_attribute ) WHERE lpa1.id_attribute = '.$myMake. ' AND lpa1.id_attribute_group =4 AND lpa2.id_attribute = '.$myModel.' AND lpa2.id_attribute_group = 5 AND lpa3.id_attribute_group = 6 ORDER BY al.name DESC '); if(!$years) return NULL; return $years; }
  5. Fixed it finally by a simple script I wrote. http://partsgalaxy.com
  6. Hello Everyone, I have a shop located at http://partsgalaxy.info/ I have a price list with `pre-sale` and `sale` prices. I want both prices shown up on the product's page -- like one crossed out and the other one shown as last bargain. Any ideas? PS: like this: http://www.ebay.com/itm/2-New-Rear-Air-Ride-Suspension-Spring-Bags-Ford-Expedition-2x2-2WD-4x2-4WD-PAIR-/111017202664?pt=Motors_Car_Truck_Parts_Accessories&hash=item19d92413e8#vi-ilComp
  7. Hey Maria, Can you post a link to your website? I actually did nothing with blockcategories.tpl -- I changed the code in header.tpl of my theme.
  8. Thanks for the reply. Actually the code I used was this (as of prestashop 1.5.4) {if isset($category->id) && $category->id == 22} $(document).ready(function(){ //$('#categories_block_left').hide(); $('#top-categ').find('span').text('Make, Model, Year Search'); }); {/if}
  9. Hi Everyone, My e-shop is located at: http://autopartsaftermarket.us I want the categories menu to "go away" (not displayed) when I click on specific category , let's say the first one. Any insights for this? I need some kind of "exception" rule. I have a hand on coding so if someone can point me out to the correct direction i can fix this probably by adding an IF ELSE statement. There reason for this is, i want all the products to be under one special category (called ALL) and enable layered navigation only there. This is the nature of our business. Thanks! PS: please let me know if this is the incorrect section to do this.
  10. Thanks guys, It solved my problem. Mentioning this: http://doc.prestashop.com/display/PS15/Implementing+layered+navigation+in+a+theme
  11. Hello Everyone, I'm working on a Presashop store for my online auto parts business. My eBay store is located at: http://goo.gl/ghNEK I want a module (free or paid) to simulate that 'compatibility' part of the mentioned website. Any inights are appreciated. PS: I tried using tags for the thing, but it seems that they are not searchable / configurable. I want something like make/model/year. Thanks!
×
×
  • Create New...