A Qcodo based CMS/ecommerce framework
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

111 lines
6.0 KiB

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