GetSimple Support Forum

Full Version: Catalog Plugin
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3 4
Continuing the thread with Angryboy ( http://get-simple.info/forums/showthread...4#pid36954 ) about a decent catalog for GS .... as it's one of the major things that a decent cms really need !!!

Angryboy asked for a feature list, so here are the features that may fit a good catalog plugin (please add if I missed something):

3 main sections
  • categories
  • products
  • options ( templates , custom-fields etc')


categories
  • title , description, photo
  • hierarchical
  • can be ordered
  • slugged or numbered pages (non-Latin-lang awareness)

products
  • slugged or numbered pages (non-Latin-lang awareness)
  • can be in multiple categories
  • custom-fields ability (include wysiwyg/photo fields/checkbox ... that will cover: photos,price,catalog no. etc' ... )
  • Featured products
  • tags

options
  • slug of the page that include the catalog.
  • templates for the catalog's front/category/product/featured-products
  • include/don't-include sub-cats in parents.
  • no. of products in each product page + pagination
  • choose between a few presentations ( IE: list-view, detailed view etc' )

... and some general staff ..
- Top link to the catalog admin to make it separate from pages / plugins
- search in products (internal search)
- products will be included in site search (I18N Search)

- This kind of catalog will be flexible enough to serve all kinds of needs & products and to except shopping cart if needed ....

============ // GITHUB LINK OF DEVELOPMENT // ===========

https://github.com/lokothodida/gs-catalog

=================================================
The only point that has me slightly puzzled is:

- include/dont-include sub-cats in parents.

Are you expecting that to be handled like page statuses? (toggling some kind of 'view in parent' option?)

(Otherwise everything else is doable...in fact it could be done in one PHP file with DM Matrix if coded efficiently (I hold my tongue: the admin panel would probably be suited in its own file/set of files))
(2013-05-31, 06:22:22)Angryboy Wrote: [ rel="nofollow" -> ]The only point that has me slightly puzzled is:

- include/dont-include sub-cats in parents.

Are you expecting that to be handled like page statuses? (toggling some kind of 'view in parent' option?)

(Otherwise everything else is doable...in fact it could be done in one PHP file with DM Matrix if coded efficiently (I hold my tongue: the admin panel would probably be suited in its own file/set of files))

Well .. no ...

Lets say we make a Jewelry catalog , out rings category may have a few sub-categories:
  • wedding rings
  • engagement rings
  • man rings
  • diamond rings
  • etc'

There can be a few scenarios here:
the main rings page will include the rings of the subs automatically (or not) , rings page will include/don't include (before or after the products list) the sub-category list ... and all those can be a per-category decision or catalog-wide option ...
but, well, if there is a separate templating system + custom-fields ... it's all can be done easily with it ...
(2013-05-31, 06:22:22)Angryboy Wrote: [ rel="nofollow" -> ]in fact it could be done in one PHP file with DM Matrix if coded efficiently

The templates probably should be in a separate folder for users to edit ...
it will keep it flexible .... ability to play with css and JS on the presentation side for advanced users.
With DM Matrix you can code the template files all into the a database record without much worry (they would still have separate pages/panels in the admin panel to view/make changes. If need be, a 'header' field/record can be made that activates in the theme header to load all of the css and js). Basically, it would save the need to have separate template files for everything. But my point was that in designing the admin panel (which is arguably the more difficult part for me in this), it would be easier to keep the files separate anyway just for housekeeping.

So would you be using the templating system to alter how the categories are displayed based on whether they have parents? (similar to i18n's custom navigation rendering?)
(2013-05-31, 10:23:37)Angryboy Wrote: [ rel="nofollow" -> ]So would you be using the templating system to alter how the categories are displayed based on whether they have parents? (similar to i18n's custom navigation rendering?)

I think placeholders &
if haschildren
if hasparent
for categories will do the job ...

I think the main issue here about custom product fields is it it's catalog-wide or by category, and if by category - what to do with a multi-category product ?

The advantages of using templates files instead of database are usually a way of giving the catalog users ability to contribute their own (design+logic) templates ... for others to use too ... that way, you end up with a catalog that fits much more scenarios/products/designs/needs :-)

I think it needs to be very flexible ...
There will probably be users that will want to add shopping cart, or things like forms - "order the product" ...
or if it's a "digital product" , ways to see or download ...
Yeah it would be harder to distribute and share if templates or modules were not portable.
But what do you mean by not portable? I'm picturing it working like components, in that you copy-paste the code if you want to share it. Would you want something that can be zipped and extracted to the /plugins (or /data) folder?
Yes, so it can be shared, we plan on making components like this also, next major release.
Fair point. It seems there are a good number of things to look forward to in the next major release. :-)

There probably won't be the time today, but I'm thinking over the weekend I might create a non-functioning mockup to show just to see if I've got the idea of the management of the plugin down (from what Tzvook and shawn have recommended).
I have built a few catalogs in and and out of GS, ill have some useful input when i have time, and I most likely will be using it also. Item manager just didnt cut it, even after i modded the crap out of it.

I find that image manipulation and thumbs creation is always needed for normal customers.
(2013-06-01, 00:26:31)shawn_a Wrote: [ rel="nofollow" rel="nofollow" -> ]Item manager just didnt cut it, even after i modded the crap out of it.

That's why I ended using wordpress even for simple catalogs, and I didn't liked it :-)

(2013-06-01, 00:26:31)shawn_a Wrote: [ rel="nofollow" rel="nofollow" -> ]I find that image manipulation and thumbs creation is always needed for normal customers.

yep :-)
it's always better to resize the images instead of the end user, since he end up uploading huge camara-image instead of 200x200 image ....
but custom-fields will do nicely too ..
(2013-06-01, 00:26:31)shawn_a Wrote: [ rel="nofollow" -> ]I find that image manipulation and thumbs creation is always needed for normal customers.

This would be an absolute marvelous plugin and a much needed one at that to help GS mature futher. And if anybody can pull it off it is angryboy Smile

Going slightly off-topic, yet on a very important subject, this is something that would make a really good addition to the core Shawn: Setting a maximum size for the photo's and have them resized automatically after uploading.

As in practice end users always end up uploading images that are way too big.
(2013-06-01, 15:54:15)Draxeiro Wrote: [ rel="nofollow" -> ]Going slightly off-topic, yet on a very important subject, this is something that would make a really good addition to the core Shawn: Setting a maximum size for the photo's and have them resized automatically after uploading.

As in practice end users always end up uploading images that are way too big.

The Wordpress approach is automatically making a few version of every image you upload.
(default is 3 sizes and it can be manipulated via plugins or the function.php file @ the template directory ... you can manipulate your whole site with this file )

Though it meets the needs, its an example how you need a small site and end up with a "heavy big useless monster" (so typical to wordpress).
(2013-06-01, 19:02:37)Tzvook Wrote: [ rel="nofollow" -> ]
(2013-06-01, 15:54:15)Draxeiro Wrote: [ rel="nofollow" -> ]Going slightly off-topic, yet on a very important subject, this is something that would make a really good addition to the core Shawn: Setting a maximum size for the photo's and have them resized automatically after uploading.

As in practice end users always end up uploading images that are way too big.

The Wordpress approach is automatically making a few version of every image you upload.
(default is 3 sizes and it can be manipulated via plugins or the function.php file @ the template directory ... you can manipulate your whole site with this file )

Though it meets the needs, its an example how you need a small site and end up with a "heavy big useless monster" (so typical to wordpress).

That's one of the great things about GS, it's lean and mean. Keeping the core relatively bare bone and being able to extend it with all kinds of plugins works a treat. Not too many nuts and bolts should be added, though at the same time, this feature is absolutely needed in my opinion (and not too complex, seeing as how GS will create thumbnails already).

So many end users just do not get it and end up uploading huge images. So a feature like this should really be standard functionality.
Angryboy ?? something t see? to help with ?
I started on it, but then reached a point where I needed more built-in functionality into DM Matrix to get this into a feasible working state. I can show you a screenshot of the dummy pages that I created later today, but currently I'm basically extending DM Matrix in order to make further progress possible.
Did you create issues on github for DM Matrix, I would love to see what needs to be done, or even help.
Not yet. I've just been developing the class to help extend the existing features of the plugin and adding more functionality. At the time of speaking, the extended features are:

- Simpler table creation
- Simpler table deletion (i.e. function for deleting tables that have data in them)
- Simpler field creation
- Simpler field reordering
- Updating records without worrying about clearing data that shouldn't be affected

And the new features are:

- Backup capabilities (creating archives (zip) of existing tables and their schema)
- Restoration capabilities (restoring tables from existing archives)
- Duplicating tables
- Renaming tables
- Renaming fields
- Simple query pagination (with paginated links - link labels (prev, next etc) can be customised)

Not sure what else needs adding for the mean time, but those were a set of functions that I thought would make use of DM Matrix immensely easier and more potent (pretty much all of them would be needed for this plugin).
I don't remember table or field creation being hard, but makes sense.
It wasn't difficult, but I just simplified the process further (automating certain values necessary for constructing the field/table if they aren't provided).

(are you talking about from within the DM Matrix back-end, or with the actual public functions?)
createSchemaTable, dropSchemaTable, addSchemaField, createRecord etc.
They are fine on their own, but I found myself building certain functions repeatedly to do the types of actions that I wanted.

Spent the day working on the set of functions still. With any luck (fingers crossed) I can show something this weekend. I'm seeing how easy it is to build a blog with it.

Latest functions include more uniform form creation (that fits with the CSS of the core), editing files on the server (e.g. if you can access /plugin/yourplugin/theme.css, you can edit it like template files from your plugin panel), and codeMirror/CKEditor initialisation (DM_Matrix was initially supposed to do this, but I couldn't get it to work till I did some tinkering - so you can now use CKEditor for any wysiwyg field within your own plugin, not just the Matrix table manager). This will make the template management for the catalog plugin pretty much on par with what everyone had been recommending, and will allow for the wysiwyg editor to be utilised easily for the product/category description.

-edit- also added the html input datetime-local for a javascript-less datetime picker to the field-type options.

Is there anything that I've missed that might make plugin development smoother?

*edit* One problem with the instantiation of codeMirror that I can't seem to fix is that it doesn't highlight the syntax. I don't know if this is something on my part or just the version currently used for DM. Otherwise it's working.
(2013-06-08, 07:45:47)Angryboy Wrote: [ rel="nofollow" -> ]Spent the day working on the set of functions still. With any luck (fingers crossed) I can show something this weekend. I'm seeing how easy it is to build a blog with it.

Yep - a structure as "elastic" as this can serve as a frameworks source for catalogs, atricle-system, Blog .... all depends on imagination and creativity ....

Anyway: I experience Laptop failure, with not-new-enough backups :-)
So I'm partly paralyzed for a week now , till it'll come back from the lab (hopefully with no hard-drive damage) ...

I'll try to follow ... though ... it's truly something to wait for
Yeah I often wondered how awesome it would be if building forms was as easy as using dm itself. Then you could make your plugins UI with simple class calls and all the form inputs are handled for you just as the dm editor is built. Or even better the same methods would be used against a sorted and filtered schema mask dictating, read/write permissions and order of display. All display, submission and validation would be built in by dmmatrix.

So not only can i add db to my plugin i can add a front end and all of the io is automaticly handled.
Pages: 1 2 3 4