|
BUGS:
|
|
* logout does not know if the session has timed out .. FIXME, causes an error.
|
|
* a wrong product id will cause error ..
|
|
|
|
* FINISH checkout:
|
|
- paypal's IPN responder
|
|
- PayPal button on first panel of checkout
|
|
- ensure that there is an address to ship to - either that or just make the address mandatory
|
|
- ensure that an account can only have one primary address - this should be a check in Account on save ..
|
|
|
|
* SECURITY:
|
|
- audit payment submission trail and add checks; possibly use zencart transaction id or encrypt something
|
|
like perhaps a checksum of order id, date and account id or such ..
|
|
- better password encryption - use DES or something, possibly farm this out to the db server ..
|
|
- check input, generally go through and make sure we are being safe anywhere input occurs, check
|
|
especially for XSS and SQL injections. Most of this should be taken care of by QCodo
|
|
but we should double check.
|
|
- validate email address
|
|
- validate zip?
|
|
- validate phone?
|
|
TODO items and notes/ideas
|
|
- make installation page
|
|
- fix Account password edit page - it should indicate when save happens and reload the Account
|
|
- make other sized images available in product view ..
|
|
- NEED: blog or news module
|
|
- NEED: module configuration scheme (table module_configuration?)
|
|
- ... everything else.
|
|
|
|
* IMPLEMENT - "keep me logged in forever .."
|
|
|
|
* IMPLEMENT permissions checking/framework, (especially on the MemberMenu). the same goes for products
|
|
and eventually (for bpcb) designs, content items and finally by page.
|
|
|
|
* IMPLEMENT - managing Persons, ie change/delete my people ...
|
|
|
|
* SEO - implement using .htaccess rewrites when possible:
|
|
if(mod_rewrite configured)
|
|
set Quasi::$Index = ''
|
|
else
|
|
set Quasi::$Index = '/index.php/'
|
|
fix redirects:
|
|
sed s/index.php/Quasi::$Index/g ..
|
|
|
|
* do something with account avatars ..
|
|
|
|
* finish - generic oscommerce import, add categories, images, etc ..
|
|
|
|
* resolve page loading issue - either use Name or Uri, currently Name is used. Or we could try both ..
|
|
|
|
* move any hard coded defaults either into configuration or the ORM classes
|
|
|
|
* ensure that ORM classes _have_ defaults where a column is NOT NULL.
|
|
|
|
* put read define guards on all quasi files - if(!defined QUASI) die and also the include guard defines
|
|
|
|
* minimally, brief intro comments for all classes, optimally a real entry with logic and example use
|
|
- also document non obvious members and methods, at least minimally.
|
|
|
|
* clean up the CSS framework, finish implementing style loading from the database/admin UI
|
|
and decide on a coherant approach to all this. needs a good deal of design thinking
|
|
|
|
* there are some issues with content blocks appearing multiple times on the same page - won't
|
|
work. we need to either find a way around this or to prohibit it in the adminstration page. One
|
|
thing that may solve this is tighter treatment of CssIds - currently there are holes in the implementation
|
|
and I am not sure we need as much control over id's; its handy for scripting and specific styling but
|
|
might be a bit much and classes are much more flexible. Placing conditionals in the MetaControls to
|
|
see if they have been passed an id string is a possible solution which leaves it optional; if they are
|
|
there an id of type control field is created, if not it is autogenerated in the library...
|
|
|
|
* Eventually remove cruft and unused methods from ORM, it would also be good to base class or
|
|
make factories or interface classes for some of this as a great deal is redundant due to generation.
|
|
might be able to script some conversion.
|
|
|
|
* Clean up quasi.css !! ...
|
|
|
|
* maybe make PageView a factory that will create a view for the page type. this may be too much
|
|
flexibility though ... not sure about it, currently you can already do a lot with a "page" just via css
|
|
and turning on the container divs, so far really everything i have needed to do, so this may be
|
|
cruft. extensibility is about my only reason to keep this, somehow i suspect page types would be
|
|
handy - you could define for a type how the containers are loaded, currently there is only one
|
|
order available... this might have proven handy with the account tool bar wars actually ... think.
|
|
|
|
* Installation page - as usual, if not installed run that instead of the index ..
|
|
|
|
* base class the shipping calculator and payment action classes - much of the data and behaviour
|
|
is the same, especially the connection (and the paymentaction base class is better ..). This means
|
|
a general purpose "WebServiceAction" class or such that a module or action can use to connect
|
|
to a service, submit a request and read the response ..
|
|
|
|
###### Administration UI design notes #########
|
|
|
|
* if a contentblock is assigned to a parent block that is already on a page and you try to assign
|
|
it to the page again there is a controlid conflict - resolve this; either make it impossible to do
|
|
in the UI (not sure i like this ..) or implement a check in the loader that will alter the id for
|
|
duplicate blocks .. this same problem exists for any duplication of a block on a page.
|
|
|
|
* we need an interface that will create a page with "Add a Content Item"; it shoud do the
|
|
following:
|
|
a. create the new page either like the rest or with a wizard .. it must provide sensible default
|
|
layout, top-level menu, etc
|
|
b. create a ContentBlock for the new Item, again this must have defaults
|
|
c. provide an interface for adding the content item - by default this should go automatically
|
|
in the center panel.
|
|
d. automatically add the page to the top-level menu - this should be adjustable in a menu
|
|
configuration section, but the default should be functional.
|
|
|
|
this all needs to be very easy to use - i refer to SilverStripe's admin UI for an example of simplicity
|
|
for the inexperienced user; it is very friendly and i would like to see something similar. I would like
|
|
to implement something like the tree list that they use for arranging pages/menus
|
|
|
|
* when creating a page: tbd
|
|
|