38 posts in this topic

Quick note about this site, it's just been re-launched as a 'V2' after an additional 90 hrs of work on it...


mostly a lot of refactoring of code, finding better, more efficient ways of doing things, both in frontend and admin...I had about 2 years of good reading–the forum–between the initial launch and when the refactor started... <_<

Thanks to pro modules like Table and Lister Pro, the management interface is fast, and easy for the company management to maintain.

With 4 separate product lines to manage (Speakers, Legacy Products, B-Stock and Home Theater), Lister pro has streamlined this–the agile ajax interface is truly unparalleled amongst ecommercce systems for adding and editing hundreds of products.

The news system has been expanded and enhanced with xml feeds, category/tag/archive filters, author profile, and other enhancements.

The product search was converted from a server side search to a completely Javascript based filter, using html5 pushstate, and graphical sliders.

The category overview pages filter the products as opposed to being separate pages, reducing page loads.

Product pages are more intuitive, with better veneer picker, and other javascript enhancements.

6 people like this

Share this post

Link to post
Share on other sites

What order management system are you using with Foxycart? Orderdesk? Or a custom solution?

They are actually not using anything other than the stock Foxycart admin; Though i did setup Orderdesk and it looks great, but i don't think they ever used it.

the filter is awesome! do you have some insights on this for us? :)

@BernhardB - thanks for checking it out!

The filter is really dead simple..

1.) jQuery Datatable with custom filters, using PW page IDs as data attributes on the cells, e.g. data-filter="1234"

2.) when you change any of the filters, there is an onchange trigger to redraw the table with the filter;

3.) change some numerical inputs to the sliders

4.) empty divs above the table, one for each filter type, and those are populated at the same time when the filters change

3 people like this

Share this post

Link to post
Share on other sites

Yes - good find, that was the model i used for setting up the range filtering..

    function( settings, data, dataIndex ) {
        var distance 	= parseInt( $('#search_distance').val(), 10 );
        var distmax 	= parseFloat( data[3] ) || 0; // use data for the distance column

        	isNaN( distance )
        	distance <= distmax
            return true;
        return false;

and i'm using the ion rangeslider, which after testing a few different ones seemed to work best

2 people like this

Share this post

Link to post
Share on other sites

hi macrura,

just visited your site again because i may need something similar. as i did lots of work with datatables recently i saw you might want to add scrollx to your table as it is not 100% visible on very small screens: https://datatables.net/examples/basic_init/scroll_x.html

maybe you are already checking for mobile devices. i just checked with chrome window resize ;)

Share this post

Link to post
Share on other sites

i thought i made the tables all collapse to vertical on mobile - which table isn't visible?

Share this post

Link to post
Share on other sites

oh, thanks - yeah, didn't get around to doing the 'collapsable' rows on that page - thanks for the heads up!

1 person likes this

Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By benbyf
      New website for Fabrica Captial – Commercial Real Estate Investment
      http://fabrixcap.com/ (previously at http://www.fabricacapital.com/)
      Design by http://crookdesign.co.uk/
    • By Sylv
      Hello all ! Just because I'm proud to be featured by Snipcart (js ecommerce solution) about my integration on my Processwire based website !
      This post talks about Processwire and how I've done it : https://snipcart.com/blog/case-study-ateliers-fromagers-processwire
      If you wanna take a look at my website : https://www.ateliersfromagers.com/ (french & english)
      Have a good day everyone !
    • By Nukro
      Hi Guys
      I am trying to save Pages with the API from the root Folder in a file named refreshIndex.php. The code looks like this:
      $root = "/path/to/root"; include($root . "index.php"); //$doctors = wire('pages')->find("template=doctors"); $jobs = wire('pages')->find("template=jobs"); //$news = wire('pages')->find("template=news"); //$specialities = wire('pages')->find("template=specialities-clinics"); //$events = wire('pages')->find("template=signup-form-formbuilder"); //$dbpages = wire('pages')->find("template=doctors|specialities-clinics|news|signup-form-formbuilder|jobs"); //$allpages = wire('pages')->get(27200)->find(""); foreach ($jobs as $stpage) { $stpage->save(); } Now at the moment I am trying to save Job Pages. They are 2 job pages right now. It saves 1 of them and at the 2 one I get an Error like this:
      Error: Uncaught WirePermissionException: Page '/de/jobs/test-job_ge/' is not currently viewable. in /pathtoroot/wire/modules/PageRender.module:319
      They are both using the same template with the same permissions respectively they are visible (guest user is viewable). And also the languages of the page are all active inside page settings.
      Somehow my Hook is responsible for this. The hook is the reason for my Script above. I am trying to update the index field for my site search. The hooks works fine when I am saving the pages from the backend interface, but I can't save all pages from the backend since they are over 1500 pages I need to save.
      $this->addHookBefore('Pages::saveReady', $this, 'hookIndexingBefore'); protected function hookIndexingBefore( HookEvent $event ) { $options = array(); $page = $event->arguments("page"); // abort when true if(!$page->template->hasField("index")) return; if($page->isNew() || $page->isTrash()) return; // save user lang $language = $this->wire("user")->language; // clear index field at the begin $page->index = ''; if($page->is("template=specialities-clinics")){ $options['sender'] = $page->choose_sender_2016->id; } $options['pagename'] = $page->name; foreach($this->wire("languages") as $lang) { $this->wire("user")->language = $lang; // change user lang wire('pages')->setOutputFormatting(true); $content = $page->render($options); wire('pages')->setOutputFormatting(false); if($content){ $startStr = "<!--### start-indexing-area ###-->"; $endStr = "<!--### end-indexing-area ###-->"; preg_match_all('/'.$startStr.'(.*)'.$endStr.'/siU', $content, $matches); $newContent = preg_replace("/<div class='breadcrumb.*'>.*<\/div>/siU", '', $matches[1][0]); $newContent = str_replace('<', ' <', $newContent); $newContent = strip_tags($newContent); $newContent = preg_replace("/\s\s+/", " ", $newContent); } $page->index .= $newContent; } $this->wire("user")->language = $language; // restore user language }  
    • By microcipcip
      How do you access ProcessWire API from an external file? I wrote a class and I need to use the API from there...my php file is in templates/includes/file.php
      <?php namespace ProcessWire; include_once('../../../index.php'); class myClass { private function ($query){ return $sanitizer->selectorValue($query); } } I get this error: Call to a member function selectorValue() on a non-object
    • By andre
      Hi guys,
      I have built a website with pw and now my client wants to add ecommerce. 
      For me being a frontend dev, pw is amazing because it gives me full control of the output just using basic php, but now that I want to add more complicated functionality I am not liking it so much.
      Is it possible to add ecommerce to a pw powered website without diving deep in php? Stripe and paypal integration, coupons, shipping tables...
      I have seen padloper... it seems basic and not very actively developed.
      Thanks in advance.