isundil 10 年之前
父節點
當前提交
71ec503b7f
共有 100 個文件被更改,包括 16135 次插入0 次删除
  1. 2383 0
      doc/Doxyfile
  2. 132 0
      doc/html/_2main_8php.html
  3. 128 0
      doc/html/_2main_8php_source.html
  4. 117 0
      doc/html/_a_controller_8php.html
  5. 124 0
      doc/html/_a_controller_8php_source.html
  6. 117 0
      doc/html/_a_module_8php.html
  7. 157 0
      doc/html/_a_module_8php_source.html
  8. 117 0
      doc/html/_address_8php.html
  9. 133 0
      doc/html/_address_8php_source.html
  10. 117 0
      doc/html/_admin_8php.html
  11. 156 0
      doc/html/_admin_8php_source.html
  12. 117 0
      doc/html/_cart_8php.html
  13. 126 0
      doc/html/_cart_8php_source.html
  14. 117 0
      doc/html/_cart_product_8php.html
  15. 128 0
      doc/html/_cart_product_8php_source.html
  16. 117 0
      doc/html/_category_8php.html
  17. 125 0
      doc/html/_category_8php_source.html
  18. 117 0
      doc/html/_category_controller_8php.html
  19. 117 0
      doc/html/_category_controller_8php_source.html
  20. 117 0
      doc/html/_cms_8php.html
  21. 127 0
      doc/html/_cms_8php_source.html
  22. 117 0
      doc/html/_config_8php.html
  23. 142 0
      doc/html/_config_8php_source.html
  24. 117 0
      doc/html/_context_8php.html
  25. 173 0
      doc/html/_context_8php_source.html
  26. 117 0
      doc/html/_error404_8php.html
  27. 111 0
      doc/html/_error404_8php_source.html
  28. 117 0
      doc/html/_hook_event_8php.html
  29. 138 0
      doc/html/_hook_event_8php_source.html
  30. 117 0
      doc/html/_hooks_8php.html
  31. 182 0
      doc/html/_hooks_8php_source.html
  32. 117 0
      doc/html/_meta_8php.html
  33. 153 0
      doc/html/_meta_8php_source.html
  34. 117 0
      doc/html/_model_base_8php.html
  35. 334 0
      doc/html/_model_base_8php_source.html
  36. 117 0
      doc/html/_module_8php.html
  37. 134 0
      doc/html/_module_8php_source.html
  38. 117 0
      doc/html/_module_hook_8php.html
  39. 135 0
      doc/html/_module_hook_8php_source.html
  40. 117 0
      doc/html/_module_manager_8php.html
  41. 198 0
      doc/html/_module_manager_8php_source.html
  42. 117 0
      doc/html/_product_8php.html
  43. 129 0
      doc/html/_product_8php_source.html
  44. 117 0
      doc/html/_product_controller_8php.html
  45. 118 0
      doc/html/_product_controller_8php_source.html
  46. 99 0
      doc/html/_r_e_a_d_m_e_8md.html
  47. 97 0
      doc/html/_r_e_a_d_m_e_8md_source.html
  48. 117 0
      doc/html/_router_8php.html
  49. 253 0
      doc/html/_router_8php_source.html
  50. 117 0
      doc/html/_user_8php.html
  51. 161 0
      doc/html/_user_8php_source.html
  52. 132 0
      doc/html/annotated.html
  53. 157 0
      doc/html/autoload_8php.html
  54. 126 0
      doc/html/autoload_8php_source.html
  55. 二進制
      doc/html/bc_s.png
  56. 二進制
      doc/html/bdwn.png
  57. 170 0
      doc/html/class_controller_1_1_category_controller.html
  58. 二進制
      doc/html/class_controller_1_1_category_controller.png
  59. 171 0
      doc/html/class_controller_1_1_product_controller.html
  60. 二進制
      doc/html/class_controller_1_1_product_controller.png
  61. 205 0
      doc/html/class_entity_1_1_address.html
  62. 二進制
      doc/html/class_entity_1_1_address.png
  63. 304 0
      doc/html/class_entity_1_1_admin.html
  64. 二進制
      doc/html/class_entity_1_1_admin.png
  65. 198 0
      doc/html/class_entity_1_1_cart.html
  66. 二進制
      doc/html/class_entity_1_1_cart.png
  67. 200 0
      doc/html/class_entity_1_1_cart_product.html
  68. 二進制
      doc/html/class_entity_1_1_cart_product.png
  69. 197 0
      doc/html/class_entity_1_1_category.html
  70. 二進制
      doc/html/class_entity_1_1_category.png
  71. 199 0
      doc/html/class_entity_1_1_cms.html
  72. 二進制
      doc/html/class_entity_1_1_cms.png
  73. 286 0
      doc/html/class_entity_1_1_config.html
  74. 二進制
      doc/html/class_entity_1_1_config.png
  75. 300 0
      doc/html/class_entity_1_1_meta.html
  76. 二進制
      doc/html/class_entity_1_1_meta.png
  77. 781 0
      doc/html/class_entity_1_1_model_base.html
  78. 二進制
      doc/html/class_entity_1_1_model_base.png
  79. 234 0
      doc/html/class_entity_1_1_module.html
  80. 二進制
      doc/html/class_entity_1_1_module.png
  81. 236 0
      doc/html/class_entity_1_1_module_hook.html
  82. 二進制
      doc/html/class_entity_1_1_module_hook.png
  83. 201 0
      doc/html/class_entity_1_1_product.html
  84. 二進制
      doc/html/class_entity_1_1_product.png
  85. 306 0
      doc/html/class_entity_1_1_user.html
  86. 二進制
      doc/html/class_entity_1_1_user.png
  87. 118 0
      doc/html/class_exception_1_1_error404.html
  88. 二進制
      doc/html/class_exception_1_1_error404.png
  89. 219 0
      doc/html/class_test2_module.html
  90. 二進制
      doc/html/class_test2_module.png
  91. 219 0
      doc/html/class_test_module.html
  92. 二進制
      doc/html/class_test_module.png
  93. 231 0
      doc/html/class_tools_1_1_a_controller.html
  94. 二進制
      doc/html/class_tools_1_1_a_controller.png
  95. 432 0
      doc/html/class_tools_1_1_a_module.html
  96. 二進制
      doc/html/class_tools_1_1_a_module.png
  97. 357 0
      doc/html/class_tools_1_1_context.html
  98. 273 0
      doc/html/class_tools_1_1_hook_event.html
  99. 413 0
      doc/html/class_tools_1_1_hooks.html
  100. 386 0
      doc/html/class_tools_1_1_module_manager.html

+ 2383 - 0
doc/Doxyfile

@@ -0,0 +1,2383 @@
+# Doxyfile 1.8.8
+
+# This file describes the settings to be used by the documentation system
+# doxygen (www.doxygen.org) for a project.
+#
+# All text after a double hash (##) is considered a comment and is placed in
+# front of the TAG it is preceding.
+#
+# All text after a single hash (#) is considered a comment and will be ignored.
+# The format is:
+# TAG = value [value, ...]
+# For lists, items can also be appended using:
+# TAG += value [value, ...]
+# Values that contain spaces should be placed between quotes (\" \").
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+
+# This tag specifies the encoding used for all characters in the config file
+# that follow. The default is UTF-8 which is also the encoding used for all text
+# before the first occurrence of this tag. Doxygen uses libiconv (or the iconv
+# built into libc) for the transcoding. See http://www.gnu.org/software/libiconv
+# for the list of possible encodings.
+# The default value is: UTF-8.
+
+DOXYFILE_ENCODING      = UTF-8
+
+# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by
+# double-quotes, unless you are using Doxywizard) that should identify the
+# project for which the documentation is generated. This name is used in the
+# title of most generated pages and in a few other places.
+# The default value is: My Project.
+
+PROJECT_NAME           = ecom
+
+# The PROJECT_NUMBER tag can be used to enter a project or revision number. This
+# could be handy for archiving the generated documentation or if some version
+# control system is used.
+
+PROJECT_NUMBER         = 
+
+# Using the PROJECT_BRIEF tag one can provide an optional one line description
+# for a project that appears at the top of each page and should give viewer a
+# quick idea about the purpose of the project. Keep the description short.
+
+PROJECT_BRIEF          = "E-commerce cms"
+
+# With the PROJECT_LOGO tag one can specify an logo or icon that is included in
+# the documentation. The maximum height of the logo should not exceed 55 pixels
+# and the maximum width should not exceed 200 pixels. Doxygen will copy the logo
+# to the output directory.
+
+PROJECT_LOGO           = 
+
+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path
+# into which the generated documentation will be written. If a relative path is
+# entered, it will be relative to the location where doxygen was started. If
+# left blank the current directory will be used.
+
+OUTPUT_DIRECTORY       = /home/isundil/Project/ecom/doc
+
+# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 4096 sub-
+# directories (in 2 levels) under the output directory of each output format and
+# will distribute the generated files over these directories. Enabling this
+# option can be useful when feeding doxygen a huge amount of source files, where
+# putting all generated files in the same directory would otherwise causes
+# performance problems for the file system.
+# The default value is: NO.
+
+CREATE_SUBDIRS         = NO
+
+# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII
+# characters to appear in the names of generated files. If set to NO, non-ASCII
+# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode
+# U+3044.
+# The default value is: NO.
+
+ALLOW_UNICODE_NAMES    = NO
+
+# The OUTPUT_LANGUAGE tag is used to specify the language in which all
+# documentation generated by doxygen is written. Doxygen will use this
+# information to generate all constant output in the proper language.
+# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese,
+# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States),
+# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian,
+# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages),
+# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian,
+# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian,
+# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish,
+# Ukrainian and Vietnamese.
+# The default value is: English.
+
+OUTPUT_LANGUAGE        = English
+
+# If the BRIEF_MEMBER_DESC tag is set to YES doxygen will include brief member
+# descriptions after the members that are listed in the file and class
+# documentation (similar to Javadoc). Set to NO to disable this.
+# The default value is: YES.
+
+BRIEF_MEMBER_DESC      = YES
+
+# If the REPEAT_BRIEF tag is set to YES doxygen will prepend the brief
+# description of a member or function before the detailed description
+#
+# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
+# brief descriptions will be completely suppressed.
+# The default value is: YES.
+
+REPEAT_BRIEF           = YES
+
+# This tag implements a quasi-intelligent brief description abbreviator that is
+# used to form the text in various listings. Each string in this list, if found
+# as the leading text of the brief description, will be stripped from the text
+# and the result, after processing the whole list, is used as the annotated
+# text. Otherwise, the brief description is used as-is. If left blank, the
+# following values are used ($name is automatically replaced with the name of
+# the entity):The $name class, The $name widget, The $name file, is, provides,
+# specifies, contains, represents, a, an and the.
+
+ABBREVIATE_BRIEF       = "The $name class" \
+                         "The $name widget" \
+                         "The $name file" \
+                         is \
+                         provides \
+                         specifies \
+                         contains \
+                         represents \
+                         a \
+                         an \
+                         the
+
+# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
+# doxygen will generate a detailed section even if there is only a brief
+# description.
+# The default value is: NO.
+
+ALWAYS_DETAILED_SEC    = NO
+
+# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
+# inherited members of a class in the documentation of that class as if those
+# members were ordinary class members. Constructors, destructors and assignment
+# operators of the base classes will not be shown.
+# The default value is: NO.
+
+INLINE_INHERITED_MEMB  = NO
+
+# If the FULL_PATH_NAMES tag is set to YES doxygen will prepend the full path
+# before files name in the file list and in the header files. If set to NO the
+# shortest path that makes the file name unique will be used
+# The default value is: YES.
+
+FULL_PATH_NAMES        = YES
+
+# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path.
+# Stripping is only done if one of the specified strings matches the left-hand
+# part of the path. The tag can be used to show relative paths in the file list.
+# If left blank the directory from which doxygen is run is used as the path to
+# strip.
+#
+# Note that you can specify absolute paths here, but also relative paths, which
+# will be relative from the directory where doxygen is started.
+# This tag requires that the tag FULL_PATH_NAMES is set to YES.
+
+STRIP_FROM_PATH        = 
+
+# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the
+# path mentioned in the documentation of a class, which tells the reader which
+# header file to include in order to use a class. If left blank only the name of
+# the header file containing the class definition is used. Otherwise one should
+# specify the list of include paths that are normally passed to the compiler
+# using the -I flag.
+
+STRIP_FROM_INC_PATH    = 
+
+# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but
+# less readable) file names. This can be useful is your file systems doesn't
+# support long names like on DOS, Mac, or CD-ROM.
+# The default value is: NO.
+
+SHORT_NAMES            = NO
+
+# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the
+# first line (until the first dot) of a Javadoc-style comment as the brief
+# description. If set to NO, the Javadoc-style will behave just like regular Qt-
+# style comments (thus requiring an explicit @brief command for a brief
+# description.)
+# The default value is: NO.
+
+JAVADOC_AUTOBRIEF      = NO
+
+# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first
+# line (until the first dot) of a Qt-style comment as the brief description. If
+# set to NO, the Qt-style will behave just like regular Qt-style comments (thus
+# requiring an explicit \brief command for a brief description.)
+# The default value is: NO.
+
+QT_AUTOBRIEF           = NO
+
+# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a
+# multi-line C++ special comment block (i.e. a block of //! or /// comments) as
+# a brief description. This used to be the default behavior. The new default is
+# to treat a multi-line C++ comment block as a detailed description. Set this
+# tag to YES if you prefer the old behavior instead.
+#
+# Note that setting this tag to YES also means that rational rose comments are
+# not recognized any more.
+# The default value is: NO.
+
+MULTILINE_CPP_IS_BRIEF = NO
+
+# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the
+# documentation from any documented member that it re-implements.
+# The default value is: YES.
+
+INHERIT_DOCS           = YES
+
+# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce a
+# new page for each member. If set to NO, the documentation of a member will be
+# part of the file/class/namespace that contains it.
+# The default value is: NO.
+
+SEPARATE_MEMBER_PAGES  = NO
+
+# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen
+# uses this value to replace tabs by spaces in code fragments.
+# Minimum value: 1, maximum value: 16, default value: 4.
+
+TAB_SIZE               = 4
+
+# This tag can be used to specify a number of aliases that act as commands in
+# the documentation. An alias has the form:
+# name=value
+# For example adding
+# "sideeffect=@par Side Effects:\n"
+# will allow you to put the command \sideeffect (or @sideeffect) in the
+# documentation, which will result in a user-defined paragraph with heading
+# "Side Effects:". You can put \n's in the value part of an alias to insert
+# newlines.
+
+ALIASES                = 
+
+# This tag can be used to specify a number of word-keyword mappings (TCL only).
+# A mapping has the form "name=value". For example adding "class=itcl::class"
+# will allow you to use the command class in the itcl::class meaning.
+
+TCL_SUBST              = 
+
+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
+# only. Doxygen will then generate output that is more tailored for C. For
+# instance, some of the names that are used will be different. The list of all
+# members will be omitted, etc.
+# The default value is: NO.
+
+OPTIMIZE_OUTPUT_FOR_C  = YES
+
+# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or
+# Python sources only. Doxygen will then generate output that is more tailored
+# for that language. For instance, namespaces will be presented as packages,
+# qualified scopes will look different, etc.
+# The default value is: NO.
+
+OPTIMIZE_OUTPUT_JAVA   = NO
+
+# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
+# sources. Doxygen will then generate output that is tailored for Fortran.
+# The default value is: NO.
+
+OPTIMIZE_FOR_FORTRAN   = NO
+
+# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
+# sources. Doxygen will then generate output that is tailored for VHDL.
+# The default value is: NO.
+
+OPTIMIZE_OUTPUT_VHDL   = NO
+
+# Doxygen selects the parser to use depending on the extension of the files it
+# parses. With this tag you can assign which parser to use for a given
+# extension. Doxygen has a built-in mapping, but you can override or extend it
+# using this tag. The format is ext=language, where ext is a file extension, and
+# language is one of the parsers supported by doxygen: IDL, Java, Javascript,
+# C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran:
+# FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran:
+# Fortran. In the later case the parser tries to guess whether the code is fixed
+# or free formatted code, this is the default for Fortran type files), VHDL. For
+# instance to make doxygen treat .inc files as Fortran files (default is PHP),
+# and .f files as C (default is Fortran), use: inc=Fortran f=C.
+#
+# Note For files without extension you can use no_extension as a placeholder.
+#
+# Note that for custom extensions you also need to set FILE_PATTERNS otherwise
+# the files are not read by doxygen.
+
+EXTENSION_MAPPING      = 
+
+# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments
+# according to the Markdown format, which allows for more readable
+# documentation. See http://daringfireball.net/projects/markdown/ for details.
+# The output of markdown processing is further processed by doxygen, so you can
+# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in
+# case of backward compatibilities issues.
+# The default value is: YES.
+
+MARKDOWN_SUPPORT       = YES
+
+# When enabled doxygen tries to link words that correspond to documented
+# classes, or namespaces to their corresponding documentation. Such a link can
+# be prevented in individual cases by by putting a % sign in front of the word
+# or globally by setting AUTOLINK_SUPPORT to NO.
+# The default value is: YES.
+
+AUTOLINK_SUPPORT       = YES
+
+# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
+# to include (a tag file for) the STL sources as input, then you should set this
+# tag to YES in order to let doxygen match functions declarations and
+# definitions whose arguments contain STL classes (e.g. func(std::string);
+# versus func(std::string) {}). This also make the inheritance and collaboration
+# diagrams that involve STL classes more complete and accurate.
+# The default value is: NO.
+
+BUILTIN_STL_SUPPORT    = NO
+
+# If you use Microsoft's C++/CLI language, you should set this option to YES to
+# enable parsing support.
+# The default value is: NO.
+
+CPP_CLI_SUPPORT        = NO
+
+# Set the SIP_SUPPORT tag to YES if your project consists of sip (see:
+# http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen
+# will parse them like normal C++ but will assume all classes use public instead
+# of private inheritance when no explicit protection keyword is present.
+# The default value is: NO.
+
+SIP_SUPPORT            = NO
+
+# For Microsoft's IDL there are propget and propput attributes to indicate
+# getter and setter methods for a property. Setting this option to YES will make
+# doxygen to replace the get and set methods by a property in the documentation.
+# This will only work if the methods are indeed getting or setting a simple
+# type. If this is not the case, or you want to show the methods anyway, you
+# should set this option to NO.
+# The default value is: YES.
+
+IDL_PROPERTY_SUPPORT   = YES
+
+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
+# tag is set to YES, then doxygen will reuse the documentation of the first
+# member in the group (if any) for the other members of the group. By default
+# all members of a group must be documented explicitly.
+# The default value is: NO.
+
+DISTRIBUTE_GROUP_DOC   = NO
+
+# Set the SUBGROUPING tag to YES to allow class member groups of the same type
+# (for instance a group of public functions) to be put as a subgroup of that
+# type (e.g. under the Public Functions section). Set it to NO to prevent
+# subgrouping. Alternatively, this can be done per class using the
+# \nosubgrouping command.
+# The default value is: YES.
+
+SUBGROUPING            = YES
+
+# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions
+# are shown inside the group in which they are included (e.g. using \ingroup)
+# instead of on a separate page (for HTML and Man pages) or section (for LaTeX
+# and RTF).
+#
+# Note that this feature does not work in combination with
+# SEPARATE_MEMBER_PAGES.
+# The default value is: NO.
+
+INLINE_GROUPED_CLASSES = NO
+
+# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions
+# with only public data fields or simple typedef fields will be shown inline in
+# the documentation of the scope in which they are defined (i.e. file,
+# namespace, or group documentation), provided this scope is documented. If set
+# to NO, structs, classes, and unions are shown on a separate page (for HTML and
+# Man pages) or section (for LaTeX and RTF).
+# The default value is: NO.
+
+INLINE_SIMPLE_STRUCTS  = NO
+
+# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or
+# enum is documented as struct, union, or enum with the name of the typedef. So
+# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
+# with name TypeT. When disabled the typedef will appear as a member of a file,
+# namespace, or class. And the struct will be named TypeS. This can typically be
+# useful for C code in case the coding convention dictates that all compound
+# types are typedef'ed and only the typedef is referenced, never the tag name.
+# The default value is: NO.
+
+TYPEDEF_HIDES_STRUCT   = NO
+
+# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This
+# cache is used to resolve symbols given their name and scope. Since this can be
+# an expensive process and often the same symbol appears multiple times in the
+# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small
+# doxygen will become slower. If the cache is too large, memory is wasted. The
+# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range
+# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536
+# symbols. At the end of a run doxygen will report the cache usage and suggest
+# the optimal cache size from a speed point of view.
+# Minimum value: 0, maximum value: 9, default value: 0.
+
+LOOKUP_CACHE_SIZE      = 0
+
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+
+# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
+# documentation are documented, even if no documentation was available. Private
+# class members and static file members will be hidden unless the
+# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES.
+# Note: This will also disable the warnings about undocumented members that are
+# normally produced when WARNINGS is set to YES.
+# The default value is: NO.
+
+EXTRACT_ALL            = YES
+
+# If the EXTRACT_PRIVATE tag is set to YES all private members of a class will
+# be included in the documentation.
+# The default value is: NO.
+
+EXTRACT_PRIVATE        = YES
+
+# If the EXTRACT_PACKAGE tag is set to YES all members with package or internal
+# scope will be included in the documentation.
+# The default value is: NO.
+
+EXTRACT_PACKAGE        = NO
+
+# If the EXTRACT_STATIC tag is set to YES all static members of a file will be
+# included in the documentation.
+# The default value is: NO.
+
+EXTRACT_STATIC         = YES
+
+# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) defined
+# locally in source files will be included in the documentation. If set to NO
+# only classes defined in header files are included. Does not have any effect
+# for Java sources.
+# The default value is: YES.
+
+EXTRACT_LOCAL_CLASSES  = YES
+
+# This flag is only useful for Objective-C code. When set to YES local methods,
+# which are defined in the implementation section but not in the interface are
+# included in the documentation. If set to NO only methods in the interface are
+# included.
+# The default value is: NO.
+
+EXTRACT_LOCAL_METHODS  = YES
+
+# If this flag is set to YES, the members of anonymous namespaces will be
+# extracted and appear in the documentation as a namespace called
+# 'anonymous_namespace{file}', where file will be replaced with the base name of
+# the file that contains the anonymous namespace. By default anonymous namespace
+# are hidden.
+# The default value is: NO.
+
+EXTRACT_ANON_NSPACES   = NO
+
+# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all
+# undocumented members inside documented classes or files. If set to NO these
+# members will be included in the various overviews, but no documentation
+# section is generated. This option has no effect if EXTRACT_ALL is enabled.
+# The default value is: NO.
+
+HIDE_UNDOC_MEMBERS     = NO
+
+# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all
+# undocumented classes that are normally visible in the class hierarchy. If set
+# to NO these classes will be included in the various overviews. This option has
+# no effect if EXTRACT_ALL is enabled.
+# The default value is: NO.
+
+HIDE_UNDOC_CLASSES     = NO
+
+# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend
+# (class|struct|union) declarations. If set to NO these declarations will be
+# included in the documentation.
+# The default value is: NO.
+
+HIDE_FRIEND_COMPOUNDS  = NO
+
+# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any
+# documentation blocks found inside the body of a function. If set to NO these
+# blocks will be appended to the function's detailed documentation block.
+# The default value is: NO.
+
+HIDE_IN_BODY_DOCS      = NO
+
+# The INTERNAL_DOCS tag determines if documentation that is typed after a
+# \internal command is included. If the tag is set to NO then the documentation
+# will be excluded. Set it to YES to include the internal documentation.
+# The default value is: NO.
+
+INTERNAL_DOCS          = NO
+
+# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file
+# names in lower-case letters. If set to YES upper-case letters are also
+# allowed. This is useful if you have classes or files whose names only differ
+# in case and if your file system supports case sensitive file names. Windows
+# and Mac users are advised to set this option to NO.
+# The default value is: system dependent.
+
+CASE_SENSE_NAMES       = NO
+
+# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with
+# their full class and namespace scopes in the documentation. If set to YES the
+# scope will be hidden.
+# The default value is: NO.
+
+HIDE_SCOPE_NAMES       = YES
+
+# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of
+# the files that are included by a file in the documentation of that file.
+# The default value is: YES.
+
+SHOW_INCLUDE_FILES     = YES
+
+# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each
+# grouped member an include statement to the documentation, telling the reader
+# which file to include in order to use the member.
+# The default value is: NO.
+
+SHOW_GROUPED_MEMB_INC  = NO
+
+# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include
+# files with double quotes in the documentation rather than with sharp brackets.
+# The default value is: NO.
+
+FORCE_LOCAL_INCLUDES   = NO
+
+# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the
+# documentation for inline members.
+# The default value is: YES.
+
+INLINE_INFO            = YES
+
+# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the
+# (detailed) documentation of file and class members alphabetically by member
+# name. If set to NO the members will appear in declaration order.
+# The default value is: YES.
+
+SORT_MEMBER_DOCS       = YES
+
+# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief
+# descriptions of file, namespace and class members alphabetically by member
+# name. If set to NO the members will appear in declaration order. Note that
+# this will also influence the order of the classes in the class list.
+# The default value is: NO.
+
+SORT_BRIEF_DOCS        = NO
+
+# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the
+# (brief and detailed) documentation of class members so that constructors and
+# destructors are listed first. If set to NO the constructors will appear in the
+# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS.
+# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief
+# member documentation.
+# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting
+# detailed member documentation.
+# The default value is: NO.
+
+SORT_MEMBERS_CTORS_1ST = NO
+
+# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy
+# of group names into alphabetical order. If set to NO the group names will
+# appear in their defined order.
+# The default value is: NO.
+
+SORT_GROUP_NAMES       = NO
+
+# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by
+# fully-qualified names, including namespaces. If set to NO, the class list will
+# be sorted only by class name, not including the namespace part.
+# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
+# Note: This option applies only to the class list, not to the alphabetical
+# list.
+# The default value is: NO.
+
+SORT_BY_SCOPE_NAME     = NO
+
+# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper
+# type resolution of all parameters of a function it will reject a match between
+# the prototype and the implementation of a member function even if there is
+# only one candidate or it is obvious which candidate to choose by doing a
+# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still
+# accept a match between prototype and implementation in such cases.
+# The default value is: NO.
+
+STRICT_PROTO_MATCHING  = NO
+
+# The GENERATE_TODOLIST tag can be used to enable ( YES) or disable ( NO) the
+# todo list. This list is created by putting \todo commands in the
+# documentation.
+# The default value is: YES.
+
+GENERATE_TODOLIST      = YES
+
+# The GENERATE_TESTLIST tag can be used to enable ( YES) or disable ( NO) the
+# test list. This list is created by putting \test commands in the
+# documentation.
+# The default value is: YES.
+
+GENERATE_TESTLIST      = YES
+
+# The GENERATE_BUGLIST tag can be used to enable ( YES) or disable ( NO) the bug
+# list. This list is created by putting \bug commands in the documentation.
+# The default value is: YES.
+
+GENERATE_BUGLIST       = YES
+
+# The GENERATE_DEPRECATEDLIST tag can be used to enable ( YES) or disable ( NO)
+# the deprecated list. This list is created by putting \deprecated commands in
+# the documentation.
+# The default value is: YES.
+
+GENERATE_DEPRECATEDLIST= YES
+
+# The ENABLED_SECTIONS tag can be used to enable conditional documentation
+# sections, marked by \if <section_label> ... \endif and \cond <section_label>
+# ... \endcond blocks.
+
+ENABLED_SECTIONS       = 
+
+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the
+# initial value of a variable or macro / define can have for it to appear in the
+# documentation. If the initializer consists of more lines than specified here
+# it will be hidden. Use a value of 0 to hide initializers completely. The
+# appearance of the value of individual variables and macros / defines can be
+# controlled using \showinitializer or \hideinitializer command in the
+# documentation regardless of this setting.
+# Minimum value: 0, maximum value: 10000, default value: 30.
+
+MAX_INITIALIZER_LINES  = 30
+
+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at
+# the bottom of the documentation of classes and structs. If set to YES the list
+# will mention the files that were used to generate the documentation.
+# The default value is: YES.
+
+SHOW_USED_FILES        = YES
+
+# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This
+# will remove the Files entry from the Quick Index and from the Folder Tree View
+# (if specified).
+# The default value is: YES.
+
+SHOW_FILES             = YES
+
+# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces
+# page. This will remove the Namespaces entry from the Quick Index and from the
+# Folder Tree View (if specified).
+# The default value is: YES.
+
+SHOW_NAMESPACES        = YES
+
+# The FILE_VERSION_FILTER tag can be used to specify a program or script that
+# doxygen should invoke to get the current version for each file (typically from
+# the version control system). Doxygen will invoke the program by executing (via
+# popen()) the command command input-file, where command is the value of the
+# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided
+# by doxygen. Whatever the program writes to standard output is used as the file
+# version. For an example see the documentation.
+
+FILE_VERSION_FILTER    = 
+
+# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
+# by doxygen. The layout file controls the global structure of the generated
+# output files in an output format independent way. To create the layout file
+# that represents doxygen's defaults, run doxygen with the -l option. You can
+# optionally specify a file name after the option, if omitted DoxygenLayout.xml
+# will be used as the name of the layout file.
+#
+# Note that if you run doxygen from a directory containing a file called
+# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE
+# tag is left empty.
+
+LAYOUT_FILE            = 
+
+# The CITE_BIB_FILES tag can be used to specify one or more bib files containing
+# the reference definitions. This must be a list of .bib files. The .bib
+# extension is automatically appended if omitted. This requires the bibtex tool
+# to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info.
+# For LaTeX the style of the bibliography can be controlled using
+# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the
+# search path. See also \cite for info how to create references.
+
+CITE_BIB_FILES         = 
+
+#---------------------------------------------------------------------------
+# Configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+
+# The QUIET tag can be used to turn on/off the messages that are generated to
+# standard output by doxygen. If QUIET is set to YES this implies that the
+# messages are off.
+# The default value is: NO.
+
+QUIET                  = NO
+
+# The WARNINGS tag can be used to turn on/off the warning messages that are
+# generated to standard error ( stderr) by doxygen. If WARNINGS is set to YES
+# this implies that the warnings are on.
+#
+# Tip: Turn warnings on while writing the documentation.
+# The default value is: YES.
+
+WARNINGS               = YES
+
+# If the WARN_IF_UNDOCUMENTED tag is set to YES, then doxygen will generate
+# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag
+# will automatically be disabled.
+# The default value is: YES.
+
+WARN_IF_UNDOCUMENTED   = YES
+
+# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for
+# potential errors in the documentation, such as not documenting some parameters
+# in a documented function, or documenting parameters that don't exist or using
+# markup commands wrongly.
+# The default value is: YES.
+
+WARN_IF_DOC_ERROR      = YES
+
+# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that
+# are documented, but have no documentation for their parameters or return
+# value. If set to NO doxygen will only warn about wrong or incomplete parameter
+# documentation, but not about the absence of documentation.
+# The default value is: NO.
+
+WARN_NO_PARAMDOC       = NO
+
+# The WARN_FORMAT tag determines the format of the warning messages that doxygen
+# can produce. The string should contain the $file, $line, and $text tags, which
+# will be replaced by the file and line number from which the warning originated
+# and the warning text. Optionally the format may contain $version, which will
+# be replaced by the version of the file (if it could be obtained via
+# FILE_VERSION_FILTER)
+# The default value is: $file:$line: $text.
+
+WARN_FORMAT            = "$file:$line: $text"
+
+# The WARN_LOGFILE tag can be used to specify a file to which warning and error
+# messages should be written. If left blank the output is written to standard
+# error (stderr).
+
+WARN_LOGFILE           = 
+
+#---------------------------------------------------------------------------
+# Configuration options related to the input files
+#---------------------------------------------------------------------------
+
+# The INPUT tag is used to specify the files and/or directories that contain
+# documented source files. You may enter file names like myfile.cpp or
+# directories like /usr/src/myproject. Separate the files or directories with
+# spaces.
+# Note: If this tag is empty the current directory is searched.
+
+INPUT                  = /home/isundil/Project/ecom
+
+# This tag can be used to specify the character encoding of the source files
+# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
+# libiconv (or the iconv built into libc) for the transcoding. See the libiconv
+# documentation (see: http://www.gnu.org/software/libiconv) for the list of
+# possible encodings.
+# The default value is: UTF-8.
+
+INPUT_ENCODING         = UTF-8
+
+# If the value of the INPUT tag contains directories, you can use the
+# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and
+# *.h) to filter out the source-files in the directories. If left blank the
+# following patterns are tested:*.c, *.cc, *.cxx, *.cpp, *.c++, *.java, *.ii,
+# *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, *.hh, *.hxx, *.hpp,
+# *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown,
+# *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf,
+# *.qsf, *.as and *.js.
+
+FILE_PATTERNS          = *.c \
+                         *.cc \
+                         *.cxx \
+                         *.cpp \
+                         *.c++ \
+                         *.java \
+                         *.ii \
+                         *.ixx \
+                         *.ipp \
+                         *.i++ \
+                         *.inl \
+                         *.idl \
+                         *.ddl \
+                         *.odl \
+                         *.h \
+                         *.hh \
+                         *.hxx \
+                         *.hpp \
+                         *.h++ \
+                         *.cs \
+                         *.d \
+                         *.php \
+                         *.php4 \
+                         *.php5 \
+                         *.phtml \
+                         *.inc \
+                         *.m \
+                         *.markdown \
+                         *.md \
+                         *.mm \
+                         *.dox \
+                         *.py \
+                         *.f90 \
+                         *.f \
+                         *.for \
+                         *.tcl \
+                         *.vhd \
+                         *.vhdl \
+                         *.ucf \
+                         *.qsf \
+                         *.as \
+                         *.js \
+                         *.php
+
+# The RECURSIVE tag can be used to specify whether or not subdirectories should
+# be searched for input files as well.
+# The default value is: NO.
+
+RECURSIVE              = YES
+
+# The EXCLUDE tag can be used to specify files and/or directories that should be
+# excluded from the INPUT source files. This way you can easily exclude a
+# subdirectory from a directory tree whose root is specified with the INPUT tag.
+#
+# Note that relative paths are relative to the directory from which doxygen is
+# run.
+
+EXCLUDE                = 
+
+# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
+# directories that are symbolic links (a Unix file system feature) are excluded
+# from the input.
+# The default value is: NO.
+
+EXCLUDE_SYMLINKS       = NO
+
+# If the value of the INPUT tag contains directories, you can use the
+# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
+# certain files from those directories.
+#
+# Note that the wildcards are matched against the file with absolute path, so to
+# exclude all test directories for example use the pattern */test/*
+
+EXCLUDE_PATTERNS       = 
+
+# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
+# (namespaces, classes, functions, etc.) that should be excluded from the
+# output. The symbol name can be a fully qualified name, a word, or if the
+# wildcard * is used, a substring. Examples: ANamespace, AClass,
+# AClass::ANamespace, ANamespace::*Test
+#
+# Note that the wildcards are matched against the file with absolute path, so to
+# exclude all test directories use the pattern */test/*
+
+EXCLUDE_SYMBOLS        = 
+
+# The EXAMPLE_PATH tag can be used to specify one or more files or directories
+# that contain example code fragments that are included (see the \include
+# command).
+
+EXAMPLE_PATH           = 
+
+# If the value of the EXAMPLE_PATH tag contains directories, you can use the
+# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and
+# *.h) to filter out the source-files in the directories. If left blank all
+# files are included.
+
+EXAMPLE_PATTERNS       = *
+
+# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
+# searched for input files to be used with the \include or \dontinclude commands
+# irrespective of the value of the RECURSIVE tag.
+# The default value is: NO.
+
+EXAMPLE_RECURSIVE      = NO
+
+# The IMAGE_PATH tag can be used to specify one or more files or directories
+# that contain images that are to be included in the documentation (see the
+# \image command).
+
+IMAGE_PATH             = 
+
+# The INPUT_FILTER tag can be used to specify a program that doxygen should
+# invoke to filter for each input file. Doxygen will invoke the filter program
+# by executing (via popen()) the command:
+#
+# <filter> <input-file>
+#
+# where <filter> is the value of the INPUT_FILTER tag, and <input-file> is the
+# name of an input file. Doxygen will then use the output that the filter
+# program writes to standard output. If FILTER_PATTERNS is specified, this tag
+# will be ignored.
+#
+# Note that the filter must not add or remove lines; it is applied before the
+# code is scanned, but not when the output code is generated. If lines are added
+# or removed, the anchors will not be placed correctly.
+
+INPUT_FILTER           = 
+
+# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
+# basis. Doxygen will compare the file name with each pattern and apply the
+# filter if there is a match. The filters are a list of the form: pattern=filter
+# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how
+# filters are used. If the FILTER_PATTERNS tag is empty or if none of the
+# patterns match the file name, INPUT_FILTER is applied.
+
+FILTER_PATTERNS        = 
+
+# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
+# INPUT_FILTER ) will also be used to filter the input files that are used for
+# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES).
+# The default value is: NO.
+
+FILTER_SOURCE_FILES    = NO
+
+# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file
+# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and
+# it is also possible to disable source filtering for a specific pattern using
+# *.ext= (so without naming a filter).
+# This tag requires that the tag FILTER_SOURCE_FILES is set to YES.
+
+FILTER_SOURCE_PATTERNS = 
+
+# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that
+# is part of the input, its contents will be placed on the main page
+# (index.html). This can be useful if you have a project on for instance GitHub
+# and want to reuse the introduction page also for the doxygen output.
+
+USE_MDFILE_AS_MAINPAGE = 
+
+#---------------------------------------------------------------------------
+# Configuration options related to source browsing
+#---------------------------------------------------------------------------
+
+# If the SOURCE_BROWSER tag is set to YES then a list of source files will be
+# generated. Documented entities will be cross-referenced with these sources.
+#
+# Note: To get rid of all source code in the generated output, make sure that
+# also VERBATIM_HEADERS is set to NO.
+# The default value is: NO.
+
+SOURCE_BROWSER         = YES
+
+# Setting the INLINE_SOURCES tag to YES will include the body of functions,
+# classes and enums directly into the documentation.
+# The default value is: NO.
+
+INLINE_SOURCES         = YES
+
+# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any
+# special comment blocks from generated source code fragments. Normal C, C++ and
+# Fortran comments will always remain visible.
+# The default value is: YES.
+
+STRIP_CODE_COMMENTS    = YES
+
+# If the REFERENCED_BY_RELATION tag is set to YES then for each documented
+# function all documented functions referencing it will be listed.
+# The default value is: NO.
+
+REFERENCED_BY_RELATION = NO
+
+# If the REFERENCES_RELATION tag is set to YES then for each documented function
+# all documented entities called/used by that function will be listed.
+# The default value is: NO.
+
+REFERENCES_RELATION    = NO
+
+# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set
+# to YES, then the hyperlinks from functions in REFERENCES_RELATION and
+# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will
+# link to the documentation.
+# The default value is: YES.
+
+REFERENCES_LINK_SOURCE = YES
+
+# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the
+# source code will show a tooltip with additional information such as prototype,
+# brief description and links to the definition and documentation. Since this
+# will make the HTML file larger and loading of large files a bit slower, you
+# can opt to disable this feature.
+# The default value is: YES.
+# This tag requires that the tag SOURCE_BROWSER is set to YES.
+
+SOURCE_TOOLTIPS        = YES
+
+# If the USE_HTAGS tag is set to YES then the references to source code will
+# point to the HTML generated by the htags(1) tool instead of doxygen built-in
+# source browser. The htags tool is part of GNU's global source tagging system
+# (see http://www.gnu.org/software/global/global.html). You will need version
+# 4.8.6 or higher.
+#
+# To use it do the following:
+# - Install the latest version of global
+# - Enable SOURCE_BROWSER and USE_HTAGS in the config file
+# - Make sure the INPUT points to the root of the source tree
+# - Run doxygen as normal
+#
+# Doxygen will invoke htags (and that will in turn invoke gtags), so these
+# tools must be available from the command line (i.e. in the search path).
+#
+# The result: instead of the source browser generated by doxygen, the links to
+# source code will now point to the output of htags.
+# The default value is: NO.
+# This tag requires that the tag SOURCE_BROWSER is set to YES.
+
+USE_HTAGS              = NO
+
+# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a
+# verbatim copy of the header file for each class for which an include is
+# specified. Set to NO to disable this.
+# See also: Section \class.
+# The default value is: YES.
+
+VERBATIM_HEADERS       = YES
+
+#---------------------------------------------------------------------------
+# Configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+
+# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all
+# compounds will be generated. Enable this if the project contains a lot of
+# classes, structs, unions or interfaces.
+# The default value is: YES.
+
+ALPHABETICAL_INDEX     = YES
+
+# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in
+# which the alphabetical index list will be split.
+# Minimum value: 1, maximum value: 20, default value: 5.
+# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
+
+COLS_IN_ALPHA_INDEX    = 5
+
+# In case all classes in a project start with a common prefix, all classes will
+# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag
+# can be used to specify a prefix (or a list of prefixes) that should be ignored
+# while generating the index headers.
+# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
+
+IGNORE_PREFIX          = 
+
+#---------------------------------------------------------------------------
+# Configuration options related to the HTML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_HTML tag is set to YES doxygen will generate HTML output
+# The default value is: YES.
+
+GENERATE_HTML          = YES
+
+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: html.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_OUTPUT            = html
+
+# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each
+# generated HTML page (for example: .htm, .php, .asp).
+# The default value is: .html.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_FILE_EXTENSION    = .html
+
+# The HTML_HEADER tag can be used to specify a user-defined HTML header file for
+# each generated HTML page. If the tag is left blank doxygen will generate a
+# standard header.
+#
+# To get valid HTML the header file that includes any scripts and style sheets
+# that doxygen needs, which is dependent on the configuration options used (e.g.
+# the setting GENERATE_TREEVIEW). It is highly recommended to start with a
+# default header using
+# doxygen -w html new_header.html new_footer.html new_stylesheet.css
+# YourConfigFile
+# and then modify the file new_header.html. See also section "Doxygen usage"
+# for information on how to generate the default header that doxygen normally
+# uses.
+# Note: The header is subject to change so you typically have to regenerate the
+# default header when upgrading to a newer version of doxygen. For a description
+# of the possible markers and block names see the documentation.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_HEADER            = 
+
+# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each
+# generated HTML page. If the tag is left blank doxygen will generate a standard
+# footer. See HTML_HEADER for more information on how to generate a default
+# footer and what special commands can be used inside the footer. See also
+# section "Doxygen usage" for information on how to generate the default footer
+# that doxygen normally uses.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_FOOTER            = 
+
+# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style
+# sheet that is used by each HTML page. It can be used to fine-tune the look of
+# the HTML output. If left blank doxygen will generate a default style sheet.
+# See also section "Doxygen usage" for information on how to generate the style
+# sheet that doxygen normally uses.
+# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as
+# it is more robust and this tag (HTML_STYLESHEET) will in the future become
+# obsolete.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_STYLESHEET        = 
+
+# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined
+# cascading style sheets that are included after the standard style sheets
+# created by doxygen. Using this option one can overrule certain style aspects.
+# This is preferred over using HTML_STYLESHEET since it does not replace the
+# standard style sheet and is therefor more robust against future updates.
+# Doxygen will copy the style sheet files to the output directory.
+# Note: The order of the extra stylesheet files is of importance (e.g. the last
+# stylesheet in the list overrules the setting of the previous ones in the
+# list). For an example see the documentation.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_EXTRA_STYLESHEET  = 
+
+# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
+# other source files which should be copied to the HTML output directory. Note
+# that these files will be copied to the base HTML output directory. Use the
+# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these
+# files. In the HTML_STYLESHEET file, use the file name only. Also note that the
+# files will be copied as-is; there are no commands or markers available.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_EXTRA_FILES       = 
+
+# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen
+# will adjust the colors in the stylesheet and background images according to
+# this color. Hue is specified as an angle on a colorwheel, see
+# http://en.wikipedia.org/wiki/Hue for more information. For instance the value
+# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300
+# purple, and 360 is red again.
+# Minimum value: 0, maximum value: 359, default value: 220.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_COLORSTYLE_HUE    = 173
+
+# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors
+# in the HTML output. For a value of 0 the output will use grayscales only. A
+# value of 255 will produce the most vivid colors.
+# Minimum value: 0, maximum value: 255, default value: 100.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_COLORSTYLE_SAT    = 58
+
+# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the
+# luminance component of the colors in the HTML output. Values below 100
+# gradually make the output lighter, whereas values above 100 make the output
+# darker. The value divided by 100 is the actual gamma applied, so 80 represents
+# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not
+# change the gamma.
+# Minimum value: 40, maximum value: 240, default value: 80.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_COLORSTYLE_GAMMA  = 196
+
+# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
+# page will contain the date and time when the page was generated. Setting this
+# to NO can help when comparing the output of multiple runs.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_TIMESTAMP         = YES
+
+# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
+# documentation will contain sections that can be hidden and shown after the
+# page has loaded.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_DYNAMIC_SECTIONS  = NO
+
+# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries
+# shown in the various tree structured indices initially; the user can expand
+# and collapse entries dynamically later on. Doxygen will expand the tree to
+# such a level that at most the specified number of entries are visible (unless
+# a fully collapsed tree already exceeds this amount). So setting the number of
+# entries 1 will produce a full collapsed tree by default. 0 is a special value
+# representing an infinite number of entries and will result in a full expanded
+# tree by default.
+# Minimum value: 0, maximum value: 9999, default value: 100.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_INDEX_NUM_ENTRIES = 100
+
+# If the GENERATE_DOCSET tag is set to YES, additional index files will be
+# generated that can be used as input for Apple's Xcode 3 integrated development
+# environment (see: http://developer.apple.com/tools/xcode/), introduced with
+# OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a
+# Makefile in the HTML output directory. Running make will produce the docset in
+# that directory and running make install will install the docset in
+# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at
+# startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
+# for more information.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_DOCSET        = NO
+
+# This tag determines the name of the docset feed. A documentation feed provides
+# an umbrella under which multiple documentation sets from a single provider
+# (such as a company or product suite) can be grouped.
+# The default value is: Doxygen generated docs.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_FEEDNAME        = "Doxygen generated docs"
+
+# This tag specifies a string that should uniquely identify the documentation
+# set bundle. This should be a reverse domain-name style string, e.g.
+# com.mycompany.MyDocSet. Doxygen will append .docset to the name.
+# The default value is: org.doxygen.Project.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_BUNDLE_ID       = org.doxygen.Project
+
+# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify
+# the documentation publisher. This should be a reverse domain-name style
+# string, e.g. com.mycompany.MyDocSet.documentation.
+# The default value is: org.doxygen.Publisher.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_PUBLISHER_ID    = org.doxygen.Publisher
+
+# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.
+# The default value is: Publisher.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_PUBLISHER_NAME  = Publisher
+
+# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three
+# additional HTML index files: index.hhp, index.hhc, and index.hhk. The
+# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop
+# (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on
+# Windows.
+#
+# The HTML Help Workshop contains a compiler that can convert all HTML output
+# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML
+# files are now used as the Windows 98 help format, and will replace the old
+# Windows help format (.hlp) on all Windows platforms in the future. Compressed
+# HTML files also contain an index, a table of contents, and you can search for
+# words in the documentation. The HTML workshop also contains a viewer for
+# compressed HTML files.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_HTMLHELP      = NO
+
+# The CHM_FILE tag can be used to specify the file name of the resulting .chm
+# file. You can add a path in front of the file if the result should not be
+# written to the html output directory.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+CHM_FILE               = 
+
+# The HHC_LOCATION tag can be used to specify the location (absolute path
+# including file name) of the HTML help compiler ( hhc.exe). If non-empty
+# doxygen will try to run the HTML help compiler on the generated index.hhp.
+# The file has to be specified with full path.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+HHC_LOCATION           = 
+
+# The GENERATE_CHI flag controls if a separate .chi index file is generated (
+# YES) or that it should be included in the master .chm file ( NO).
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+GENERATE_CHI           = NO
+
+# The CHM_INDEX_ENCODING is used to encode HtmlHelp index ( hhk), content ( hhc)
+# and project file content.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+CHM_INDEX_ENCODING     = 
+
+# The BINARY_TOC flag controls whether a binary table of contents is generated (
+# YES) or a normal table of contents ( NO) in the .chm file. Furthermore it
+# enables the Previous and Next buttons.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+BINARY_TOC             = NO
+
+# The TOC_EXPAND flag can be set to YES to add extra items for group members to
+# the table of contents of the HTML help documentation and to the tree view.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+TOC_EXPAND             = NO
+
+# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
+# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that
+# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help
+# (.qch) of the generated HTML documentation.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_QHP           = NO
+
+# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify
+# the file name of the resulting .qch file. The path specified is relative to
+# the HTML output folder.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QCH_FILE               = 
+
+# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help
+# Project output. For more information please see Qt Help Project / Namespace
+# (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace).
+# The default value is: org.doxygen.Project.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_NAMESPACE          = org.doxygen.Project
+
+# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt
+# Help Project output. For more information please see Qt Help Project / Virtual
+# Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual-
+# folders).
+# The default value is: doc.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_VIRTUAL_FOLDER     = doc
+
+# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom
+# filter to add. For more information please see Qt Help Project / Custom
+# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
+# filters).
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_CUST_FILTER_NAME   = 
+
+# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the
+# custom filter to add. For more information please see Qt Help Project / Custom
+# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
+# filters).
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_CUST_FILTER_ATTRS  = 
+
+# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
+# project's filter section matches. Qt Help Project / Filter Attributes (see:
+# http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes).
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_SECT_FILTER_ATTRS  = 
+
+# The QHG_LOCATION tag can be used to specify the location of Qt's
+# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the
+# generated .qhp file.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHG_LOCATION           = 
+
+# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be
+# generated, together with the HTML files, they form an Eclipse help plugin. To
+# install this plugin and make it available under the help contents menu in
+# Eclipse, the contents of the directory containing the HTML and XML files needs
+# to be copied into the plugins directory of eclipse. The name of the directory
+# within the plugins directory should be the same as the ECLIPSE_DOC_ID value.
+# After copying Eclipse needs to be restarted before the help appears.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_ECLIPSEHELP   = NO
+
+# A unique identifier for the Eclipse help plugin. When installing the plugin
+# the directory name containing the HTML and XML files should also have this
+# name. Each documentation set should have its own identifier.
+# The default value is: org.doxygen.Project.
+# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES.
+
+ECLIPSE_DOC_ID         = org.doxygen.Project
+
+# If you want full control over the layout of the generated HTML pages it might
+# be necessary to disable the index and replace it with your own. The
+# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top
+# of each HTML page. A value of NO enables the index and the value YES disables
+# it. Since the tabs in the index contain the same information as the navigation
+# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+DISABLE_INDEX          = NO
+
+# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
+# structure should be generated to display hierarchical information. If the tag
+# value is set to YES, a side panel will be generated containing a tree-like
+# index structure (just like the one that is generated for HTML Help). For this
+# to work a browser that supports JavaScript, DHTML, CSS and frames is required
+# (i.e. any modern browser). Windows users are probably better off using the
+# HTML help feature. Via custom stylesheets (see HTML_EXTRA_STYLESHEET) one can
+# further fine-tune the look of the index. As an example, the default style
+# sheet generated by doxygen has an example that shows how to put an image at
+# the root of the tree instead of the PROJECT_NAME. Since the tree basically has
+# the same information as the tab index, you could consider setting
+# DISABLE_INDEX to YES when enabling this option.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_TREEVIEW      = NO
+
+# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that
+# doxygen will group on one line in the generated HTML documentation.
+#
+# Note that a value of 0 will completely suppress the enum values from appearing
+# in the overview section.
+# Minimum value: 0, maximum value: 20, default value: 4.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+ENUM_VALUES_PER_LINE   = 4
+
+# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used
+# to set the initial width (in pixels) of the frame in which the tree is shown.
+# Minimum value: 0, maximum value: 1500, default value: 250.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+TREEVIEW_WIDTH         = 250
+
+# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open links to
+# external symbols imported via tag files in a separate window.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+EXT_LINKS_IN_WINDOW    = NO
+
+# Use this tag to change the font size of LaTeX formulas included as images in
+# the HTML documentation. When you change the font size after a successful
+# doxygen run you need to manually remove any form_*.png images from the HTML
+# output directory to force them to be regenerated.
+# Minimum value: 8, maximum value: 50, default value: 10.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+FORMULA_FONTSIZE       = 10
+
+# Use the FORMULA_TRANPARENT tag to determine whether or not the images
+# generated for formulas are transparent PNGs. Transparent PNGs are not
+# supported properly for IE 6.0, but are supported on all modern browsers.
+#
+# Note that when changing this option you need to delete any form_*.png files in
+# the HTML output directory before the changes have effect.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+FORMULA_TRANSPARENT    = YES
+
+# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see
+# http://www.mathjax.org) which uses client side Javascript for the rendering
+# instead of using prerendered bitmaps. Use this if you do not have LaTeX
+# installed or if you want to formulas look prettier in the HTML output. When
+# enabled you may also need to install MathJax separately and configure the path
+# to it using the MATHJAX_RELPATH option.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+USE_MATHJAX            = NO
+
+# When MathJax is enabled you can set the default output format to be used for
+# the MathJax output. See the MathJax site (see:
+# http://docs.mathjax.org/en/latest/output.html) for more details.
+# Possible values are: HTML-CSS (which is slower, but has the best
+# compatibility), NativeMML (i.e. MathML) and SVG.
+# The default value is: HTML-CSS.
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_FORMAT         = HTML-CSS
+
+# When MathJax is enabled you need to specify the location relative to the HTML
+# output directory using the MATHJAX_RELPATH option. The destination directory
+# should contain the MathJax.js script. For instance, if the mathjax directory
+# is located at the same level as the HTML output directory, then
+# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax
+# Content Delivery Network so you can quickly see the result without installing
+# MathJax. However, it is strongly recommended to install a local copy of
+# MathJax from http://www.mathjax.org before deployment.
+# The default value is: http://cdn.mathjax.org/mathjax/latest.
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_RELPATH        = http://cdn.mathjax.org/mathjax/latest
+
+# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax
+# extension names that should be enabled during MathJax rendering. For example
+# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_EXTENSIONS     = 
+
+# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces
+# of code that will be used on startup of the MathJax code. See the MathJax site
+# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an
+# example see the documentation.
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_CODEFILE       = 
+
+# When the SEARCHENGINE tag is enabled doxygen will generate a search box for
+# the HTML output. The underlying search engine uses javascript and DHTML and
+# should work on any modern browser. Note that when using HTML help
+# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET)
+# there is already a search function so this one should typically be disabled.
+# For large projects the javascript based search engine can be slow, then
+# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to
+# search using the keyboard; to jump to the search box use <access key> + S
+# (what the <access key> is depends on the OS and browser, but it is typically
+# <CTRL>, <ALT>/<option>, or both). Inside the search box use the <cursor down
+# key> to jump into the search results window, the results can be navigated
+# using the <cursor keys>. Press <Enter> to select an item or <escape> to cancel
+# the search. The filter options can be selected when the cursor is inside the
+# search box by pressing <Shift>+<cursor down>. Also here use the <cursor keys>
+# to select a filter and <Enter> or <escape> to activate or cancel the filter
+# option.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+SEARCHENGINE           = YES
+
+# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
+# implemented using a web server instead of a web client using Javascript. There
+# are two flavors of web server based searching depending on the EXTERNAL_SEARCH
+# setting. When disabled, doxygen will generate a PHP script for searching and
+# an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing
+# and searching needs to be provided by external tools. See the section
+# "External Indexing and Searching" for details.
+# The default value is: NO.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+SERVER_BASED_SEARCH    = NO
+
+# When EXTERNAL_SEARCH tag is enabled doxygen will no longer generate the PHP
+# script for searching. Instead the search results are written to an XML file
+# which needs to be processed by an external indexer. Doxygen will invoke an
+# external search engine pointed to by the SEARCHENGINE_URL option to obtain the
+# search results.
+#
+# Doxygen ships with an example indexer ( doxyindexer) and search engine
+# (doxysearch.cgi) which are based on the open source search engine library
+# Xapian (see: http://xapian.org/).
+#
+# See the section "External Indexing and Searching" for details.
+# The default value is: NO.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+EXTERNAL_SEARCH        = NO
+
+# The SEARCHENGINE_URL should point to a search engine hosted by a web server
+# which will return the search results when EXTERNAL_SEARCH is enabled.
+#
+# Doxygen ships with an example indexer ( doxyindexer) and search engine
+# (doxysearch.cgi) which are based on the open source search engine library
+# Xapian (see: http://xapian.org/). See the section "External Indexing and
+# Searching" for details.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+SEARCHENGINE_URL       = 
+
+# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed
+# search data is written to a file for indexing by an external tool. With the
+# SEARCHDATA_FILE tag the name of this file can be specified.
+# The default file is: searchdata.xml.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+SEARCHDATA_FILE        = searchdata.xml
+
+# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the
+# EXTERNAL_SEARCH_ID tag can be used as an identifier for the project. This is
+# useful in combination with EXTRA_SEARCH_MAPPINGS to search through multiple
+# projects and redirect the results back to the right project.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+EXTERNAL_SEARCH_ID     = 
+
+# The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen
+# projects other than the one defined by this configuration file, but that are
+# all added to the same external search index. Each project needs to have a
+# unique id set via EXTERNAL_SEARCH_ID. The search mapping then maps the id of
+# to a relative location where the documentation can be found. The format is:
+# EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ...
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+EXTRA_SEARCH_MAPPINGS  = 
+
+#---------------------------------------------------------------------------
+# Configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_LATEX tag is set to YES doxygen will generate LaTeX output.
+# The default value is: YES.
+
+GENERATE_LATEX         = NO
+
+# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: latex.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_OUTPUT           = latex
+
+# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
+# invoked.
+#
+# Note that when enabling USE_PDFLATEX this option is only used for generating
+# bitmaps for formulas in the HTML output, but not in the Makefile that is
+# written to the output directory.
+# The default file is: latex.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_CMD_NAME         = latex
+
+# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate
+# index for LaTeX.
+# The default file is: makeindex.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+MAKEINDEX_CMD_NAME     = makeindex
+
+# If the COMPACT_LATEX tag is set to YES doxygen generates more compact LaTeX
+# documents. This may be useful for small projects and may help to save some
+# trees in general.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+COMPACT_LATEX          = NO
+
+# The PAPER_TYPE tag can be used to set the paper type that is used by the
+# printer.
+# Possible values are: a4 (210 x 297 mm), letter (8.5 x 11 inches), legal (8.5 x
+# 14 inches) and executive (7.25 x 10.5 inches).
+# The default value is: a4.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+PAPER_TYPE             = a4
+
+# The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names
+# that should be included in the LaTeX output. To get the times font for
+# instance you can specify
+# EXTRA_PACKAGES=times
+# If left blank no extra packages will be included.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+EXTRA_PACKAGES         = 
+
+# The LATEX_HEADER tag can be used to specify a personal LaTeX header for the
+# generated LaTeX document. The header should contain everything until the first
+# chapter. If it is left blank doxygen will generate a standard header. See
+# section "Doxygen usage" for information on how to let doxygen write the
+# default header to a separate file.
+#
+# Note: Only use a user-defined header if you know what you are doing! The
+# following commands have a special meaning inside the header: $title,
+# $datetime, $date, $doxygenversion, $projectname, $projectnumber,
+# $projectbrief, $projectlogo. Doxygen will replace $title with the empy string,
+# for the replacement values of the other commands the user is refered to
+# HTML_HEADER.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_HEADER           = 
+
+# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the
+# generated LaTeX document. The footer should contain everything after the last
+# chapter. If it is left blank doxygen will generate a standard footer. See
+# LATEX_HEADER for more information on how to generate a default footer and what
+# special commands can be used inside the footer.
+#
+# Note: Only use a user-defined footer if you know what you are doing!
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_FOOTER           = 
+
+# The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or
+# other source files which should be copied to the LATEX_OUTPUT output
+# directory. Note that the files will be copied as-is; there are no commands or
+# markers available.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_EXTRA_FILES      = 
+
+# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated is
+# prepared for conversion to PDF (using ps2pdf or pdflatex). The PDF file will
+# contain links (just like the HTML output) instead of page references. This
+# makes the output suitable for online browsing using a PDF viewer.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+PDF_HYPERLINKS         = YES
+
+# If the USE_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate
+# the PDF file directly from the LaTeX files. Set this option to YES to get a
+# higher quality PDF documentation.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+USE_PDFLATEX           = YES
+
+# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \batchmode
+# command to the generated LaTeX files. This will instruct LaTeX to keep running
+# if errors occur, instead of asking the user for help. This option is also used
+# when generating formulas in HTML.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_BATCHMODE        = NO
+
+# If the LATEX_HIDE_INDICES tag is set to YES then doxygen will not include the
+# index chapters (such as File Index, Compound Index, etc.) in the output.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_HIDE_INDICES     = NO
+
+# If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source
+# code with syntax highlighting in the LaTeX output.
+#
+# Note that which sources are shown also depends on other settings such as
+# SOURCE_BROWSER.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_SOURCE_CODE      = NO
+
+# The LATEX_BIB_STYLE tag can be used to specify the style to use for the
+# bibliography, e.g. plainnat, or ieeetr. See
+# http://en.wikipedia.org/wiki/BibTeX and \cite for more info.
+# The default value is: plain.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_BIB_STYLE        = plain
+
+#---------------------------------------------------------------------------
+# Configuration options related to the RTF output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_RTF tag is set to YES doxygen will generate RTF output. The
+# RTF output is optimized for Word 97 and may not look too pretty with other RTF
+# readers/editors.
+# The default value is: NO.
+
+GENERATE_RTF           = NO
+
+# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: rtf.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+RTF_OUTPUT             = rtf
+
+# If the COMPACT_RTF tag is set to YES doxygen generates more compact RTF
+# documents. This may be useful for small projects and may help to save some
+# trees in general.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+COMPACT_RTF            = NO
+
+# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated will
+# contain hyperlink fields. The RTF file will contain links (just like the HTML
+# output) instead of page references. This makes the output suitable for online
+# browsing using Word or some other Word compatible readers that support those
+# fields.
+#
+# Note: WordPad (write) and others do not support links.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+RTF_HYPERLINKS         = NO
+
+# Load stylesheet definitions from file. Syntax is similar to doxygen's config
+# file, i.e. a series of assignments. You only have to provide replacements,
+# missing definitions are set to their default value.
+#
+# See also section "Doxygen usage" for information on how to generate the
+# default style sheet that doxygen normally uses.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+RTF_STYLESHEET_FILE    = 
+
+# Set optional variables used in the generation of an RTF document. Syntax is
+# similar to doxygen's config file. A template extensions file can be generated
+# using doxygen -e rtf extensionFile.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+RTF_EXTENSIONS_FILE    = 
+
+#---------------------------------------------------------------------------
+# Configuration options related to the man page output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_MAN tag is set to YES doxygen will generate man pages for
+# classes and files.
+# The default value is: NO.
+
+GENERATE_MAN           = NO
+
+# The MAN_OUTPUT tag is used to specify where the man pages will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it. A directory man3 will be created inside the directory specified by
+# MAN_OUTPUT.
+# The default directory is: man.
+# This tag requires that the tag GENERATE_MAN is set to YES.
+
+MAN_OUTPUT             = man
+
+# The MAN_EXTENSION tag determines the extension that is added to the generated
+# man pages. In case the manual section does not start with a number, the number
+# 3 is prepended. The dot (.) at the beginning of the MAN_EXTENSION tag is
+# optional.
+# The default value is: .3.
+# This tag requires that the tag GENERATE_MAN is set to YES.
+
+MAN_EXTENSION          = .3
+
+# The MAN_SUBDIR tag determines the name of the directory created within
+# MAN_OUTPUT in which the man pages are placed. If defaults to man followed by
+# MAN_EXTENSION with the initial . removed.
+# This tag requires that the tag GENERATE_MAN is set to YES.
+
+MAN_SUBDIR             = 
+
+# If the MAN_LINKS tag is set to YES and doxygen generates man output, then it
+# will generate one additional man file for each entity documented in the real
+# man page(s). These additional files only source the real man page, but without
+# them the man command would be unable to find the correct page.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_MAN is set to YES.
+
+MAN_LINKS              = NO
+
+#---------------------------------------------------------------------------
+# Configuration options related to the XML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_XML tag is set to YES doxygen will generate an XML file that
+# captures the structure of the code including all documentation.
+# The default value is: NO.
+
+GENERATE_XML           = NO
+
+# The XML_OUTPUT tag is used to specify where the XML pages will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: xml.
+# This tag requires that the tag GENERATE_XML is set to YES.
+
+XML_OUTPUT             = xml
+
+# If the XML_PROGRAMLISTING tag is set to YES doxygen will dump the program
+# listings (including syntax highlighting and cross-referencing information) to
+# the XML output. Note that enabling this will significantly increase the size
+# of the XML output.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_XML is set to YES.
+
+XML_PROGRAMLISTING     = YES
+
+#---------------------------------------------------------------------------
+# Configuration options related to the DOCBOOK output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_DOCBOOK tag is set to YES doxygen will generate Docbook files
+# that can be used to generate PDF.
+# The default value is: NO.
+
+GENERATE_DOCBOOK       = NO
+
+# The DOCBOOK_OUTPUT tag is used to specify where the Docbook pages will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be put in
+# front of it.
+# The default directory is: docbook.
+# This tag requires that the tag GENERATE_DOCBOOK is set to YES.
+
+DOCBOOK_OUTPUT         = docbook
+
+# If the DOCBOOK_PROGRAMLISTING tag is set to YES doxygen will include the
+# program listings (including syntax highlighting and cross-referencing
+# information) to the DOCBOOK output. Note that enabling this will significantly
+# increase the size of the DOCBOOK output.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_DOCBOOK is set to YES.
+
+DOCBOOK_PROGRAMLISTING = NO
+
+#---------------------------------------------------------------------------
+# Configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_AUTOGEN_DEF tag is set to YES doxygen will generate an AutoGen
+# Definitions (see http://autogen.sf.net) file that captures the structure of
+# the code including all documentation. Note that this feature is still
+# experimental and incomplete at the moment.
+# The default value is: NO.
+
+GENERATE_AUTOGEN_DEF   = NO
+
+#---------------------------------------------------------------------------
+# Configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_PERLMOD tag is set to YES doxygen will generate a Perl module
+# file that captures the structure of the code including all documentation.
+#
+# Note that this feature is still experimental and incomplete at the moment.
+# The default value is: NO.
+
+GENERATE_PERLMOD       = NO
+
+# If the PERLMOD_LATEX tag is set to YES doxygen will generate the necessary
+# Makefile rules, Perl scripts and LaTeX code to be able to generate PDF and DVI
+# output from the Perl module output.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_PERLMOD is set to YES.
+
+PERLMOD_LATEX          = NO
+
+# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be nicely
+# formatted so it can be parsed by a human reader. This is useful if you want to
+# understand what is going on. On the other hand, if this tag is set to NO the
+# size of the Perl module output will be much smaller and Perl will parse it
+# just the same.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_PERLMOD is set to YES.
+
+PERLMOD_PRETTY         = YES
+
+# The names of the make variables in the generated doxyrules.make file are
+# prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. This is useful
+# so different doxyrules.make files included by the same Makefile don't
+# overwrite each other's variables.
+# This tag requires that the tag GENERATE_PERLMOD is set to YES.
+
+PERLMOD_MAKEVAR_PREFIX = 
+
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor
+#---------------------------------------------------------------------------
+
+# If the ENABLE_PREPROCESSING tag is set to YES doxygen will evaluate all
+# C-preprocessor directives found in the sources and include files.
+# The default value is: YES.
+
+ENABLE_PREPROCESSING   = YES
+
+# If the MACRO_EXPANSION tag is set to YES doxygen will expand all macro names
+# in the source code. If set to NO only conditional compilation will be
+# performed. Macro expansion can be done in a controlled way by setting
+# EXPAND_ONLY_PREDEF to YES.
+# The default value is: NO.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+MACRO_EXPANSION        = NO
+
+# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then
+# the macro expansion is limited to the macros specified with the PREDEFINED and
+# EXPAND_AS_DEFINED tags.
+# The default value is: NO.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+EXPAND_ONLY_PREDEF     = NO
+
+# If the SEARCH_INCLUDES tag is set to YES the includes files in the
+# INCLUDE_PATH will be searched if a #include is found.
+# The default value is: YES.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+SEARCH_INCLUDES        = YES
+
+# The INCLUDE_PATH tag can be used to specify one or more directories that
+# contain include files that are not input files but should be processed by the
+# preprocessor.
+# This tag requires that the tag SEARCH_INCLUDES is set to YES.
+
+INCLUDE_PATH           = 
+
+# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
+# patterns (like *.h and *.hpp) to filter out the header-files in the
+# directories. If left blank, the patterns specified with FILE_PATTERNS will be
+# used.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+INCLUDE_FILE_PATTERNS  = 
+
+# The PREDEFINED tag can be used to specify one or more macro names that are
+# defined before the preprocessor is started (similar to the -D option of e.g.
+# gcc). The argument of the tag is a list of macros of the form: name or
+# name=definition (no spaces). If the definition and the "=" are omitted, "=1"
+# is assumed. To prevent a macro definition from being undefined via #undef or
+# recursively expanded use the := operator instead of the = operator.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+PREDEFINED             = 
+
+# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this
+# tag can be used to specify a list of macro names that should be expanded. The
+# macro definition that is found in the sources will be used. Use the PREDEFINED
+# tag if you want to use a different macro definition that overrules the
+# definition found in the source code.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+EXPAND_AS_DEFINED      = 
+
+# If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will
+# remove all references to function-like macros that are alone on a line, have
+# an all uppercase name, and do not end with a semicolon. Such function macros
+# are typically used for boiler-plate code, and will confuse the parser if not
+# removed.
+# The default value is: YES.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+SKIP_FUNCTION_MACROS   = YES
+
+#---------------------------------------------------------------------------
+# Configuration options related to external references
+#---------------------------------------------------------------------------
+
+# The TAGFILES tag can be used to specify one or more tag files. For each tag
+# file the location of the external documentation should be added. The format of
+# a tag file without this location is as follows:
+# TAGFILES = file1 file2 ...
+# Adding location for the tag files is done as follows:
+# TAGFILES = file1=loc1 "file2 = loc2" ...
+# where loc1 and loc2 can be relative or absolute paths or URLs. See the
+# section "Linking to external documentation" for more information about the use
+# of tag files.
+# Note: Each tag file must have a unique name (where the name does NOT include
+# the path). If a tag file is not located in the directory in which doxygen is
+# run, you must also specify the path to the tagfile here.
+
+TAGFILES               = 
+
+# When a file name is specified after GENERATE_TAGFILE, doxygen will create a
+# tag file that is based on the input files it reads. See section "Linking to
+# external documentation" for more information about the usage of tag files.
+
+GENERATE_TAGFILE       = 
+
+# If the ALLEXTERNALS tag is set to YES all external class will be listed in the
+# class index. If set to NO only the inherited external classes will be listed.
+# The default value is: NO.
+
+ALLEXTERNALS           = NO
+
+# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed in
+# the modules index. If set to NO, only the current project's groups will be
+# listed.
+# The default value is: YES.
+
+EXTERNAL_GROUPS        = YES
+
+# If the EXTERNAL_PAGES tag is set to YES all external pages will be listed in
+# the related pages index. If set to NO, only the current project's pages will
+# be listed.
+# The default value is: YES.
+
+EXTERNAL_PAGES         = YES
+
+# The PERL_PATH should be the absolute path and name of the perl script
+# interpreter (i.e. the result of 'which perl').
+# The default file (with absolute path) is: /usr/bin/perl.
+
+PERL_PATH              = /usr/bin/perl
+
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool
+#---------------------------------------------------------------------------
+
+# If the CLASS_DIAGRAMS tag is set to YES doxygen will generate a class diagram
+# (in HTML and LaTeX) for classes with base or super classes. Setting the tag to
+# NO turns the diagrams off. Note that this option also works with HAVE_DOT
+# disabled, but it is recommended to install and use dot, since it yields more
+# powerful graphs.
+# The default value is: YES.
+
+CLASS_DIAGRAMS         = YES
+
+# You can define message sequence charts within doxygen comments using the \msc
+# command. Doxygen will then run the mscgen tool (see:
+# http://www.mcternan.me.uk/mscgen/)) to produce the chart and insert it in the
+# documentation. The MSCGEN_PATH tag allows you to specify the directory where
+# the mscgen tool resides. If left empty the tool is assumed to be found in the
+# default search path.
+
+MSCGEN_PATH            = 
+
+# You can include diagrams made with dia in doxygen documentation. Doxygen will
+# then run dia to produce the diagram and insert it in the documentation. The
+# DIA_PATH tag allows you to specify the directory where the dia binary resides.
+# If left empty dia is assumed to be found in the default search path.
+
+DIA_PATH               = 
+
+# If set to YES, the inheritance and collaboration graphs will hide inheritance
+# and usage relations if the target is undocumented or is not a class.
+# The default value is: YES.
+
+HIDE_UNDOC_RELATIONS   = YES
+
+# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
+# available from the path. This tool is part of Graphviz (see:
+# http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent
+# Bell Labs. The other options in this section have no effect if this option is
+# set to NO
+# The default value is: NO.
+
+HAVE_DOT               = NO
+
+# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed
+# to run in parallel. When set to 0 doxygen will base this on the number of
+# processors available in the system. You can set it explicitly to a value
+# larger than 0 to get control over the balance between CPU load and processing
+# speed.
+# Minimum value: 0, maximum value: 32, default value: 0.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_NUM_THREADS        = 0
+
+# When you want a differently looking font in the dot files that doxygen
+# generates you can specify the font name using DOT_FONTNAME. You need to make
+# sure dot is able to find the font, which can be done by putting it in a
+# standard location or by setting the DOTFONTPATH environment variable or by
+# setting DOT_FONTPATH to the directory containing the font.
+# The default value is: Helvetica.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_FONTNAME           = Helvetica
+
+# The DOT_FONTSIZE tag can be used to set the size (in points) of the font of
+# dot graphs.
+# Minimum value: 4, maximum value: 24, default value: 10.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_FONTSIZE           = 10
+
+# By default doxygen will tell dot to use the default font as specified with
+# DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set
+# the path where dot can find it using this tag.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_FONTPATH           = 
+
+# If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for
+# each documented class showing the direct and indirect inheritance relations.
+# Setting this tag to YES will force the CLASS_DIAGRAMS tag to NO.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+CLASS_GRAPH            = YES
+
+# If the COLLABORATION_GRAPH tag is set to YES then doxygen will generate a
+# graph for each documented class showing the direct and indirect implementation
+# dependencies (inheritance, containment, and class references variables) of the
+# class with other documented classes.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+COLLABORATION_GRAPH    = YES
+
+# If the GROUP_GRAPHS tag is set to YES then doxygen will generate a graph for
+# groups, showing the direct groups dependencies.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+GROUP_GRAPHS           = YES
+
+# If the UML_LOOK tag is set to YES doxygen will generate inheritance and
+# collaboration diagrams in a style similar to the OMG's Unified Modeling
+# Language.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+UML_LOOK               = NO
+
+# If the UML_LOOK tag is enabled, the fields and methods are shown inside the
+# class node. If there are many fields or methods and many nodes the graph may
+# become too big to be useful. The UML_LIMIT_NUM_FIELDS threshold limits the
+# number of items for each type to make the size more manageable. Set this to 0
+# for no limit. Note that the threshold may be exceeded by 50% before the limit
+# is enforced. So when you set the threshold to 10, up to 15 fields may appear,
+# but if the number exceeds 15, the total amount of fields shown is limited to
+# 10.
+# Minimum value: 0, maximum value: 100, default value: 10.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+UML_LIMIT_NUM_FIELDS   = 10
+
+# If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and
+# collaboration graphs will show the relations between templates and their
+# instances.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+TEMPLATE_RELATIONS     = NO
+
+# If the INCLUDE_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are set to
+# YES then doxygen will generate a graph for each documented file showing the
+# direct and indirect include dependencies of the file with other documented
+# files.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+INCLUDE_GRAPH          = YES
+
+# If the INCLUDED_BY_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are
+# set to YES then doxygen will generate a graph for each documented file showing
+# the direct and indirect include dependencies of the file with other documented
+# files.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+INCLUDED_BY_GRAPH      = YES
+
+# If the CALL_GRAPH tag is set to YES then doxygen will generate a call
+# dependency graph for every global function or class method.
+#
+# Note that enabling this option will significantly increase the time of a run.
+# So in most cases it will be better to enable call graphs for selected
+# functions only using the \callgraph command.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+CALL_GRAPH             = NO
+
+# If the CALLER_GRAPH tag is set to YES then doxygen will generate a caller
+# dependency graph for every global function or class method.
+#
+# Note that enabling this option will significantly increase the time of a run.
+# So in most cases it will be better to enable caller graphs for selected
+# functions only using the \callergraph command.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+CALLER_GRAPH           = NO
+
+# If the GRAPHICAL_HIERARCHY tag is set to YES then doxygen will graphical
+# hierarchy of all classes instead of a textual one.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+GRAPHICAL_HIERARCHY    = YES
+
+# If the DIRECTORY_GRAPH tag is set to YES then doxygen will show the
+# dependencies a directory has on other directories in a graphical way. The
+# dependency relations are determined by the #include relations between the
+# files in the directories.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DIRECTORY_GRAPH        = YES
+
+# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
+# generated by dot.
+# Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order
+# to make the SVG files visible in IE 9+ (other browsers do not have this
+# requirement).
+# Possible values are: png, jpg, gif and svg.
+# The default value is: png.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_IMAGE_FORMAT       = png
+
+# If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to
+# enable generation of interactive SVG images that allow zooming and panning.
+#
+# Note that this requires a modern browser other than Internet Explorer. Tested
+# and working are Firefox, Chrome, Safari, and Opera.
+# Note: For IE 9+ you need to set HTML_FILE_EXTENSION to xhtml in order to make
+# the SVG files visible. Older versions of IE do not have SVG support.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+INTERACTIVE_SVG        = NO
+
+# The DOT_PATH tag can be used to specify the path where the dot tool can be
+# found. If left blank, it is assumed the dot tool can be found in the path.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_PATH               = 
+
+# The DOTFILE_DIRS tag can be used to specify one or more directories that
+# contain dot files that are included in the documentation (see the \dotfile
+# command).
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOTFILE_DIRS           = 
+
+# The MSCFILE_DIRS tag can be used to specify one or more directories that
+# contain msc files that are included in the documentation (see the \mscfile
+# command).
+
+MSCFILE_DIRS           = 
+
+# The DIAFILE_DIRS tag can be used to specify one or more directories that
+# contain dia files that are included in the documentation (see the \diafile
+# command).
+
+DIAFILE_DIRS           = 
+
+# When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the
+# path where java can find the plantuml.jar file. If left blank, it is assumed
+# PlantUML is not used or called during a preprocessing step. Doxygen will
+# generate a warning when it encounters a \startuml command in this case and
+# will not generate output for the diagram.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+PLANTUML_JAR_PATH      = 
+
+# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes
+# that will be shown in the graph. If the number of nodes in a graph becomes
+# larger than this value, doxygen will truncate the graph, which is visualized
+# by representing a node as a red box. Note that doxygen if the number of direct
+# children of the root node in a graph is already larger than
+# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note that
+# the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
+# Minimum value: 0, maximum value: 10000, default value: 50.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_GRAPH_MAX_NODES    = 50
+
+# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the graphs
+# generated by dot. A depth value of 3 means that only nodes reachable from the
+# root by following a path via at most 3 edges will be shown. Nodes that lay
+# further from the root node will be omitted. Note that setting this option to 1
+# or 2 may greatly reduce the computation time needed for large code bases. Also
+# note that the size of a graph can be further restricted by
+# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
+# Minimum value: 0, maximum value: 1000, default value: 0.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+MAX_DOT_GRAPH_DEPTH    = 0
+
+# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
+# background. This is disabled by default, because dot on Windows does not seem
+# to support this out of the box.
+#
+# Warning: Depending on the platform used, enabling this option may lead to
+# badly anti-aliased labels on the edges of a graph (i.e. they become hard to
+# read).
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_TRANSPARENT        = NO
+
+# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
+# files in one run (i.e. multiple -o and -T options on the command line). This
+# makes dot run faster, but since only newer versions of dot (>1.8.10) support
+# this, this feature is disabled by default.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_MULTI_TARGETS      = NO
+
+# If the GENERATE_LEGEND tag is set to YES doxygen will generate a legend page
+# explaining the meaning of the various boxes and arrows in the dot generated
+# graphs.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+GENERATE_LEGEND        = YES
+
+# If the DOT_CLEANUP tag is set to YES doxygen will remove the intermediate dot
+# files that are used to generate the various graphs.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_CLEANUP            = YES

+ 132 - 0
doc/html/_2main_8php.html

@@ -0,0 +1,132 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: /home/isundil/Project/ecom/content/modules/test2/main.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_75b82e7e4a5feb05200b9ad7adf06257.html">home</a></li><li class="navelem"><a class="el" href="dir_9db4aabfa12fb2197f4b553e7ea8deed.html">isundil</a></li><li class="navelem"><a class="el" href="dir_1a6cb19e8504dda728b9574aa47fdf34.html">Project</a></li><li class="navelem"><a class="el" href="dir_f8738126562420a628a94e1d7172443f.html">ecom</a></li><li class="navelem"><a class="el" href="dir_e75d01dc4d8e7550864f910675e170c1.html">content</a></li><li class="navelem"><a class="el" href="dir_0879e2c245a5ff550e918760b3b06d44.html">modules</a></li><li class="navelem"><a class="el" href="dir_001e992a6957ceda7a80a2e4f1f6eae3.html">test2</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#var-members">Variables</a>  </div>
+  <div class="headertitle">
+<div class="title">main.php File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="_2main_8php_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_test2_module.html">Test2Module</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
+Variables</h2></td></tr>
+<tr class="memitem:af1551df0af71bdc9ff09728aee51fb9c"><td class="memItemLeft" align="right" valign="top">return new&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_2main_8php.html#af1551df0af71bdc9ff09728aee51fb9c">Test2Module</a></td></tr>
+<tr class="separator:af1551df0af71bdc9ff09728aee51fb9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Variable Documentation</h2>
+<a class="anchor" id="af1551df0af71bdc9ff09728aee51fb9c"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">return new <a class="el" href="class_test2_module.html">Test2Module</a></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="_2main_8php_source.html#l00019">19</a> of file <a class="el" href="_2main_8php_source.html">main.php</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:19 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

+ 128 - 0
doc/html/_2main_8php_source.html

@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: /home/isundil/Project/ecom/content/modules/test2/main.php Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_75b82e7e4a5feb05200b9ad7adf06257.html">home</a></li><li class="navelem"><a class="el" href="dir_9db4aabfa12fb2197f4b553e7ea8deed.html">isundil</a></li><li class="navelem"><a class="el" href="dir_1a6cb19e8504dda728b9574aa47fdf34.html">Project</a></li><li class="navelem"><a class="el" href="dir_f8738126562420a628a94e1d7172443f.html">ecom</a></li><li class="navelem"><a class="el" href="dir_e75d01dc4d8e7550864f910675e170c1.html">content</a></li><li class="navelem"><a class="el" href="dir_0879e2c245a5ff550e918760b3b06d44.html">modules</a></li><li class="navelem"><a class="el" href="dir_001e992a6957ceda7a80a2e4f1f6eae3.html">test2</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">main.php</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_2main_8php.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;&lt;?php</div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;</div>
+<div class="line"><a name="l00003"></a><span class="lineno"><a class="line" href="class_test2_module.html">    3</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_test2_module.html">Test2Module</a> <span class="keyword">extends</span> <a class="code" href="class_tools_1_1_a_module.html">\Tools\AModule</a></div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;{</div>
+<div class="line"><a name="l00005"></a><span class="lineno"><a class="line" href="class_test2_module.html#aa966adc12c56a4cc70da92207fa50929">    5</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_test2_module.html#aa966adc12c56a4cc70da92207fa50929">install</a>()</div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;    {</div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;        $this-&gt;<a class="code" href="class_tools_1_1_a_module.html#ab4218414b61680c0b9dee10c7f57e0a8">registerHook</a>(<span class="stringliteral">&quot;routerSetup&quot;</span>);</div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;    }</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;</div>
+<div class="line"><a name="l00010"></a><span class="lineno"><a class="line" href="class_test2_module.html#ab01ad47fd92026250cf7a4708ae5eecc">   10</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_test2_module.html#ab01ad47fd92026250cf7a4708ae5eecc">doAction</a>($ev)</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;    {</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;    }</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;</div>
+<div class="line"><a name="l00014"></a><span class="lineno"><a class="line" href="class_test2_module.html#ae4e3b24f775b7637ae1d3c6f8356c094">   14</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_test2_module.html#ae4e3b24f775b7637ae1d3c6f8356c094">doShortCode</a>($short, $params)</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;    {</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;    }</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;}</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div>
+<div class="line"><a name="l00019"></a><span class="lineno"><a class="line" href="_2main_8php.html#af1551df0af71bdc9ff09728aee51fb9c">   19</a></span>&#160;<span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="_2main_8php.html#af1551df0af71bdc9ff09728aee51fb9c">Test2Module</a>;</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div>
+<div class="ttc" id="_2main_8php_html_af1551df0af71bdc9ff09728aee51fb9c"><div class="ttname"><a href="_2main_8php.html#af1551df0af71bdc9ff09728aee51fb9c">Test2Module</a></div><div class="ttdeci">return new Test2Module</div><div class="ttdef"><b>Definition:</b> <a href="_2main_8php_source.html#l00019">main.php:19</a></div></div>
+<div class="ttc" id="class_test2_module_html_ab01ad47fd92026250cf7a4708ae5eecc"><div class="ttname"><a href="class_test2_module.html#ab01ad47fd92026250cf7a4708ae5eecc">Test2Module\doAction</a></div><div class="ttdeci">doAction($ev)</div><div class="ttdef"><b>Definition:</b> <a href="_2main_8php_source.html#l00010">main.php:10</a></div></div>
+<div class="ttc" id="class_tools_1_1_a_module_html"><div class="ttname"><a href="class_tools_1_1_a_module.html">Tools\AModule</a></div><div class="ttdef"><b>Definition:</b> <a href="_a_module_8php_source.html#l00009">AModule.php:9</a></div></div>
+<div class="ttc" id="class_test2_module_html"><div class="ttname"><a href="class_test2_module.html">Test2Module</a></div><div class="ttdef"><b>Definition:</b> <a href="_2main_8php_source.html#l00003">main.php:3</a></div></div>
+<div class="ttc" id="class_test2_module_html_ae4e3b24f775b7637ae1d3c6f8356c094"><div class="ttname"><a href="class_test2_module.html#ae4e3b24f775b7637ae1d3c6f8356c094">Test2Module\doShortCode</a></div><div class="ttdeci">doShortCode($short, $params)</div><div class="ttdef"><b>Definition:</b> <a href="_2main_8php_source.html#l00014">main.php:14</a></div></div>
+<div class="ttc" id="class_tools_1_1_a_module_html_ab4218414b61680c0b9dee10c7f57e0a8"><div class="ttname"><a href="class_tools_1_1_a_module.html#ab4218414b61680c0b9dee10c7f57e0a8">Tools\AModule\registerHook</a></div><div class="ttdeci">static registerHook($hookName)</div><div class="ttdef"><b>Definition:</b> <a href="_a_module_8php_source.html#l00078">AModule.php:78</a></div></div>
+<div class="ttc" id="class_test2_module_html_aa966adc12c56a4cc70da92207fa50929"><div class="ttname"><a href="class_test2_module.html#aa966adc12c56a4cc70da92207fa50929">Test2Module\install</a></div><div class="ttdeci">install()</div><div class="ttdef"><b>Definition:</b> <a href="_2main_8php_source.html#l00005">main.php:5</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:18 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

+ 117 - 0
doc/html/_a_controller_8php.html

@@ -0,0 +1,117 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: /home/isundil/Project/ecom/core/tools/AController.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_75b82e7e4a5feb05200b9ad7adf06257.html">home</a></li><li class="navelem"><a class="el" href="dir_9db4aabfa12fb2197f4b553e7ea8deed.html">isundil</a></li><li class="navelem"><a class="el" href="dir_1a6cb19e8504dda728b9574aa47fdf34.html">Project</a></li><li class="navelem"><a class="el" href="dir_f8738126562420a628a94e1d7172443f.html">ecom</a></li><li class="navelem"><a class="el" href="dir_fc33a2a7f6da4d78118e1e23a8f17b51.html">core</a></li><li class="navelem"><a class="el" href="dir_c7e9cf21629ccd0940e4dcdbd0bc9b8a.html">tools</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<div class="title">AController.php File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="_a_controller_8php_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_a_controller.html">AController</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespace_tools"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespace_tools.html">Tools</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:19 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

+ 124 - 0
doc/html/_a_controller_8php_source.html

@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: /home/isundil/Project/ecom/core/tools/AController.php Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_75b82e7e4a5feb05200b9ad7adf06257.html">home</a></li><li class="navelem"><a class="el" href="dir_9db4aabfa12fb2197f4b553e7ea8deed.html">isundil</a></li><li class="navelem"><a class="el" href="dir_1a6cb19e8504dda728b9574aa47fdf34.html">Project</a></li><li class="navelem"><a class="el" href="dir_f8738126562420a628a94e1d7172443f.html">ecom</a></li><li class="navelem"><a class="el" href="dir_fc33a2a7f6da4d78118e1e23a8f17b51.html">core</a></li><li class="navelem"><a class="el" href="dir_c7e9cf21629ccd0940e4dcdbd0bc9b8a.html">tools</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">AController.php</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_a_controller_8php.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;&lt;?php</div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;</div>
+<div class="line"><a name="l00003"></a><span class="lineno"><a class="line" href="namespace_tools.html">    3</a></span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_tools.html">Tools</a>;</div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;</div>
+<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment">// TODO RestController</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment">// TODO cliController</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;</div>
+<div class="line"><a name="l00011"></a><span class="lineno"><a class="line" href="class_tools_1_1_a_controller.html">   11</a></span>&#160;<span class="keyword">abstract</span> <span class="keyword">class </span><a class="code" href="class_tools_1_1_a_controller.html">AController</a></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;{</div>
+<div class="line"><a name="l00021"></a><span class="lineno"><a class="line" href="class_tools_1_1_a_controller.html#a21ae116e22adda72b3971dde67f4ef19">   21</a></span>&#160;    <span class="keyword">protected</span> <a class="code" href="class_tools_1_1_a_controller.html#a21ae116e22adda72b3971dde67f4ef19">$params</a>;</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div>
+<div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="class_tools_1_1_a_controller.html#a7b7ea19d18501d4214fb4dcb274addea">   30</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_a_controller.html#a7b7ea19d18501d4214fb4dcb274addea">__construct</a>($context, $params)</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;    {</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;        $this-&gt;params = $params;</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;    }</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;    <span class="keyword">public</span> <span class="keyword">abstract</span> <span class="keyword">function</span> start();</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;}</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;</div>
+<div class="ttc" id="class_tools_1_1_a_controller_html_a7b7ea19d18501d4214fb4dcb274addea"><div class="ttname"><a href="class_tools_1_1_a_controller.html#a7b7ea19d18501d4214fb4dcb274addea">Tools\AController\__construct</a></div><div class="ttdeci">__construct($context, $params)</div><div class="ttdef"><b>Definition:</b> <a href="_a_controller_8php_source.html#l00030">AController.php:30</a></div></div>
+<div class="ttc" id="class_tools_1_1_a_controller_html_a21ae116e22adda72b3971dde67f4ef19"><div class="ttname"><a href="class_tools_1_1_a_controller.html#a21ae116e22adda72b3971dde67f4ef19">Tools\AController\$params</a></div><div class="ttdeci">$params</div><div class="ttdef"><b>Definition:</b> <a href="_a_controller_8php_source.html#l00021">AController.php:21</a></div></div>
+<div class="ttc" id="namespace_tools_html"><div class="ttname"><a href="namespace_tools.html">Tools</a></div><div class="ttdef"><b>Definition:</b> <a href="_a_controller_8php_source.html#l00003">AController.php:3</a></div></div>
+<div class="ttc" id="class_tools_1_1_a_controller_html"><div class="ttname"><a href="class_tools_1_1_a_controller.html">Tools\AController</a></div><div class="ttdef"><b>Definition:</b> <a href="_a_controller_8php_source.html#l00011">AController.php:11</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:19 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

+ 117 - 0
doc/html/_a_module_8php.html

@@ -0,0 +1,117 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: /home/isundil/Project/ecom/core/tools/AModule.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_75b82e7e4a5feb05200b9ad7adf06257.html">home</a></li><li class="navelem"><a class="el" href="dir_9db4aabfa12fb2197f4b553e7ea8deed.html">isundil</a></li><li class="navelem"><a class="el" href="dir_1a6cb19e8504dda728b9574aa47fdf34.html">Project</a></li><li class="navelem"><a class="el" href="dir_f8738126562420a628a94e1d7172443f.html">ecom</a></li><li class="navelem"><a class="el" href="dir_fc33a2a7f6da4d78118e1e23a8f17b51.html">core</a></li><li class="navelem"><a class="el" href="dir_c7e9cf21629ccd0940e4dcdbd0bc9b8a.html">tools</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<div class="title">AModule.php File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="_a_module_8php_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_a_module.html">AModule</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespace_tools"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespace_tools.html">Tools</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:19 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

+ 157 - 0
doc/html/_a_module_8php_source.html

@@ -0,0 +1,157 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: /home/isundil/Project/ecom/core/tools/AModule.php Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_75b82e7e4a5feb05200b9ad7adf06257.html">home</a></li><li class="navelem"><a class="el" href="dir_9db4aabfa12fb2197f4b553e7ea8deed.html">isundil</a></li><li class="navelem"><a class="el" href="dir_1a6cb19e8504dda728b9574aa47fdf34.html">Project</a></li><li class="navelem"><a class="el" href="dir_f8738126562420a628a94e1d7172443f.html">ecom</a></li><li class="navelem"><a class="el" href="dir_fc33a2a7f6da4d78118e1e23a8f17b51.html">core</a></li><li class="navelem"><a class="el" href="dir_c7e9cf21629ccd0940e4dcdbd0bc9b8a.html">tools</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">AModule.php</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_a_module_8php.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;&lt;?php</div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;</div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_tools.html">Tools</a>;</div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;</div>
+<div class="line"><a name="l00009"></a><span class="lineno"><a class="line" href="class_tools_1_1_a_module.html">    9</a></span>&#160;<span class="keyword">abstract</span> <span class="keyword">class </span><a class="code" href="class_tools_1_1_a_module.html">AModule</a></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;{</div>
+<div class="line"><a name="l00017"></a><span class="lineno"><a class="line" href="class_tools_1_1_a_module.html#a7c294642225a6c91f5d7932dde75c2ae">   17</a></span>&#160;    <span class="keyword">private</span> <a class="code" href="class_tools_1_1_a_module.html#a7c294642225a6c91f5d7932dde75c2ae">$context</a>;</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div>
+<div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="class_tools_1_1_a_module.html#a74ed34e6d7bc9f3f8c4fb58a12247ee2">   22</a></span>&#160;    <span class="keyword">private</span> <a class="code" href="class_tools_1_1_a_module.html#a74ed34e6d7bc9f3f8c4fb58a12247ee2">$entity</a>;</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;    <span class="keyword">public</span> <span class="keyword">abstract</span> <span class="keyword">function</span> install();</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;</div>
+<div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="class_tools_1_1_a_module.html#a9db6a246faa6b948911078c4be4445c8">   33</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_a_module.html#a9db6a246faa6b948911078c4be4445c8">uninstall</a>()</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;    { }</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;    <span class="keyword">public</span> <span class="keyword">abstract</span> <span class="keyword">function</span> doAction($event);</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;    <span class="keyword">public</span> <span class="keyword">abstract</span> <span class="keyword">function</span> doShortCode($shortCode, $params);</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;</div>
+<div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="class_tools_1_1_a_module.html#a313783d5477383dd99a2f3785705aaf4">   56</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_a_module.html#a313783d5477383dd99a2f3785705aaf4">setContext</a>($context)</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;    {</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;        <span class="keywordflow">if</span> ($this-&gt;context === null)</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;            $this-&gt;context = $context;</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;    }</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;</div>
+<div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="class_tools_1_1_a_module.html#ad868339fe7830b388444095288d40e22">   68</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_a_module.html#ad868339fe7830b388444095288d40e22">setEntity</a>($entity)</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    {</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;        <span class="keywordflow">if</span> ($this-&gt;entity === null)</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;            $this-&gt;entity = $entity;</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;    }</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;</div>
+<div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="class_tools_1_1_a_module.html#ab4218414b61680c0b9dee10c7f57e0a8">   78</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_a_module.html#ab4218414b61680c0b9dee10c7f57e0a8">registerHook</a>($hookName)</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;    {</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;        $this-&gt;context-&gt;hooks-&gt;register($this, $hookname);</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;    }</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;</div>
+<div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="class_tools_1_1_a_module.html#a4537dad3b44254124991341cc91b28fb">   86</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_a_module.html#a4537dad3b44254124991341cc91b28fb">__get</a>($key)</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;    {</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;        <span class="keywordflow">switch</span> ($key)</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;        {</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;            <span class="keywordflow">case</span> <span class="stringliteral">&quot;context&quot;</span>: <span class="keywordflow">return</span> $this-&gt;context; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;            <span class="keywordflow">case</span> <span class="stringliteral">&quot;entity&quot;</span>: <span class="keywordflow">return</span> $this-&gt;entity; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;        }</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;        <span class="keywordflow">throw</span> new \Exception(<span class="stringliteral">&quot;Cannot access attribute {$key}&quot;</span>);</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;    }</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;}</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;</div>
+<div class="ttc" id="class_tools_1_1_a_module_html_a4537dad3b44254124991341cc91b28fb"><div class="ttname"><a href="class_tools_1_1_a_module.html#a4537dad3b44254124991341cc91b28fb">Tools\AModule\__get</a></div><div class="ttdeci">__get($key)</div><div class="ttdef"><b>Definition:</b> <a href="_a_module_8php_source.html#l00086">AModule.php:86</a></div></div>
+<div class="ttc" id="class_tools_1_1_a_module_html_a7c294642225a6c91f5d7932dde75c2ae"><div class="ttname"><a href="class_tools_1_1_a_module.html#a7c294642225a6c91f5d7932dde75c2ae">Tools\AModule\$context</a></div><div class="ttdeci">$context</div><div class="ttdef"><b>Definition:</b> <a href="_a_module_8php_source.html#l00017">AModule.php:17</a></div></div>
+<div class="ttc" id="class_tools_1_1_a_module_html_a9db6a246faa6b948911078c4be4445c8"><div class="ttname"><a href="class_tools_1_1_a_module.html#a9db6a246faa6b948911078c4be4445c8">Tools\AModule\uninstall</a></div><div class="ttdeci">uninstall()</div><div class="ttdef"><b>Definition:</b> <a href="_a_module_8php_source.html#l00033">AModule.php:33</a></div></div>
+<div class="ttc" id="class_tools_1_1_a_module_html"><div class="ttname"><a href="class_tools_1_1_a_module.html">Tools\AModule</a></div><div class="ttdef"><b>Definition:</b> <a href="_a_module_8php_source.html#l00009">AModule.php:9</a></div></div>
+<div class="ttc" id="class_tools_1_1_a_module_html_a313783d5477383dd99a2f3785705aaf4"><div class="ttname"><a href="class_tools_1_1_a_module.html#a313783d5477383dd99a2f3785705aaf4">Tools\AModule\setContext</a></div><div class="ttdeci">setContext($context)</div><div class="ttdef"><b>Definition:</b> <a href="_a_module_8php_source.html#l00056">AModule.php:56</a></div></div>
+<div class="ttc" id="class_tools_1_1_a_module_html_a74ed34e6d7bc9f3f8c4fb58a12247ee2"><div class="ttname"><a href="class_tools_1_1_a_module.html#a74ed34e6d7bc9f3f8c4fb58a12247ee2">Tools\AModule\$entity</a></div><div class="ttdeci">$entity</div><div class="ttdef"><b>Definition:</b> <a href="_a_module_8php_source.html#l00022">AModule.php:22</a></div></div>
+<div class="ttc" id="class_tools_1_1_a_module_html_ab4218414b61680c0b9dee10c7f57e0a8"><div class="ttname"><a href="class_tools_1_1_a_module.html#ab4218414b61680c0b9dee10c7f57e0a8">Tools\AModule\registerHook</a></div><div class="ttdeci">static registerHook($hookName)</div><div class="ttdef"><b>Definition:</b> <a href="_a_module_8php_source.html#l00078">AModule.php:78</a></div></div>
+<div class="ttc" id="namespace_tools_html"><div class="ttname"><a href="namespace_tools.html">Tools</a></div><div class="ttdef"><b>Definition:</b> <a href="_a_controller_8php_source.html#l00003">AController.php:3</a></div></div>
+<div class="ttc" id="class_tools_1_1_a_module_html_ad868339fe7830b388444095288d40e22"><div class="ttname"><a href="class_tools_1_1_a_module.html#ad868339fe7830b388444095288d40e22">Tools\AModule\setEntity</a></div><div class="ttdeci">setEntity($entity)</div><div class="ttdef"><b>Definition:</b> <a href="_a_module_8php_source.html#l00068">AModule.php:68</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:19 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

+ 117 - 0
doc/html/_address_8php.html

@@ -0,0 +1,117 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: /home/isundil/Project/ecom/core/models/Address.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_75b82e7e4a5feb05200b9ad7adf06257.html">home</a></li><li class="navelem"><a class="el" href="dir_9db4aabfa12fb2197f4b553e7ea8deed.html">isundil</a></li><li class="navelem"><a class="el" href="dir_1a6cb19e8504dda728b9574aa47fdf34.html">Project</a></li><li class="navelem"><a class="el" href="dir_f8738126562420a628a94e1d7172443f.html">ecom</a></li><li class="navelem"><a class="el" href="dir_fc33a2a7f6da4d78118e1e23a8f17b51.html">core</a></li><li class="navelem"><a class="el" href="dir_4c7ccac51765411e64ed8afa1459e892.html">models</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<div class="title">Address.php File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="_address_8php_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_address.html">Address</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespace_entity"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespace_entity.html">Entity</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:19 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

+ 133 - 0
doc/html/_address_8php_source.html

@@ -0,0 +1,133 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: /home/isundil/Project/ecom/core/models/Address.php Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_75b82e7e4a5feb05200b9ad7adf06257.html">home</a></li><li class="navelem"><a class="el" href="dir_9db4aabfa12fb2197f4b553e7ea8deed.html">isundil</a></li><li class="navelem"><a class="el" href="dir_1a6cb19e8504dda728b9574aa47fdf34.html">Project</a></li><li class="navelem"><a class="el" href="dir_f8738126562420a628a94e1d7172443f.html">ecom</a></li><li class="navelem"><a class="el" href="dir_fc33a2a7f6da4d78118e1e23a8f17b51.html">core</a></li><li class="navelem"><a class="el" href="dir_4c7ccac51765411e64ed8afa1459e892.html">models</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">Address.php</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_address_8php.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;&lt;?php</div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;</div>
+<div class="line"><a name="l00003"></a><span class="lineno"><a class="line" href="namespace_entity.html">    3</a></span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_entity.html">Entity</a>;</div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;</div>
+<div class="line"><a name="l00005"></a><span class="lineno"><a class="line" href="class_entity_1_1_address.html">    5</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_entity_1_1_address.html">Address</a> <span class="keyword">extends</span> <a class="code" href="class_entity_1_1_model_base.html">ModelBase</a></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;{</div>
+<div class="line"><a name="l00007"></a><span class="lineno"><a class="line" href="class_entity_1_1_address.html#aa966adc12c56a4cc70da92207fa50929">    7</a></span>&#160;    <span class="keyword">protected</span> <span class="keyword">function</span> <a class="code" href="class_entity_1_1_address.html#aa966adc12c56a4cc70da92207fa50929">install</a>()</div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;    {</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;        $dbPrefix = $this-&gt;getDbPrefix();</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;        $result = self::$dbo-&gt;exec(<span class="stringliteral">&quot;CREATE TABLE IF NOT EXISTS `{$dbPrefix}address` (</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="stringliteral">            `id` INTEGER(11) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="stringliteral">            `user_id` INTEGER(11) UNSIGNED NULL,</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="stringliteral">            `addressName` VARCHAR(255) NOT NULL,</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="stringliteral">            `fullName` VARCHAR(255) NOT NULL,</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="stringliteral">            `streetAddress` TEXT NOT NULL,</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="stringliteral">            `city` VARCHAR(128) NOT NULL,</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="stringliteral">            `zipCode` VARCHAR(16) NOT NULL,</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="stringliteral">            `country` VARCHAR(128) NOT NULL,</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="stringliteral">            `lastUsed` DATETIME NOT NULL,</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="stringliteral">            FOREIGN KEY (`user_id`) REFERENCES `{$dbPrefix}user`(id),</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="stringliteral">            UNIQUE(`user_id`, `addressName`)</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="stringliteral">        )&quot;</span>);</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;        <span class="keywordflow">if</span> ($result === <span class="keyword">false</span>)</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;            <span class="keywordflow">throw</span> new \Exception(get_class().<span class="stringliteral">&quot;: &quot;</span>.self::$dbo-&gt;errorInfo()[2]);</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;    }</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;}</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;</div>
+<div class="ttc" id="namespace_entity_html"><div class="ttname"><a href="namespace_entity.html">Entity</a></div><div class="ttdef"><b>Definition:</b> <a href="_address_8php_source.html#l00003">Address.php:3</a></div></div>
+<div class="ttc" id="class_entity_1_1_address_html_aa966adc12c56a4cc70da92207fa50929"><div class="ttname"><a href="class_entity_1_1_address.html#aa966adc12c56a4cc70da92207fa50929">Entity\Address\install</a></div><div class="ttdeci">install()</div><div class="ttdef"><b>Definition:</b> <a href="_address_8php_source.html#l00007">Address.php:7</a></div></div>
+<div class="ttc" id="class_entity_1_1_address_html"><div class="ttname"><a href="class_entity_1_1_address.html">Entity\Address</a></div><div class="ttdef"><b>Definition:</b> <a href="_address_8php_source.html#l00005">Address.php:5</a></div></div>
+<div class="ttc" id="class_entity_1_1_model_base_html"><div class="ttname"><a href="class_entity_1_1_model_base.html">Entity\ModelBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_model_base_8php_source.html#l00005">ModelBase.php:5</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:18 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

+ 117 - 0
doc/html/_admin_8php.html

@@ -0,0 +1,117 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: /home/isundil/Project/ecom/core/models/Admin.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_75b82e7e4a5feb05200b9ad7adf06257.html">home</a></li><li class="navelem"><a class="el" href="dir_9db4aabfa12fb2197f4b553e7ea8deed.html">isundil</a></li><li class="navelem"><a class="el" href="dir_1a6cb19e8504dda728b9574aa47fdf34.html">Project</a></li><li class="navelem"><a class="el" href="dir_f8738126562420a628a94e1d7172443f.html">ecom</a></li><li class="navelem"><a class="el" href="dir_fc33a2a7f6da4d78118e1e23a8f17b51.html">core</a></li><li class="navelem"><a class="el" href="dir_4c7ccac51765411e64ed8afa1459e892.html">models</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<div class="title">Admin.php File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="_admin_8php_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_admin.html">Admin</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespace_entity"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespace_entity.html">Entity</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:19 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

+ 156 - 0
doc/html/_admin_8php_source.html

@@ -0,0 +1,156 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: /home/isundil/Project/ecom/core/models/Admin.php Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_75b82e7e4a5feb05200b9ad7adf06257.html">home</a></li><li class="navelem"><a class="el" href="dir_9db4aabfa12fb2197f4b553e7ea8deed.html">isundil</a></li><li class="navelem"><a class="el" href="dir_1a6cb19e8504dda728b9574aa47fdf34.html">Project</a></li><li class="navelem"><a class="el" href="dir_f8738126562420a628a94e1d7172443f.html">ecom</a></li><li class="navelem"><a class="el" href="dir_fc33a2a7f6da4d78118e1e23a8f17b51.html">core</a></li><li class="navelem"><a class="el" href="dir_4c7ccac51765411e64ed8afa1459e892.html">models</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">Admin.php</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_admin_8php.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;&lt;?php</div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;</div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_entity.html">Entity</a>;</div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;</div>
+<div class="line"><a name="l00005"></a><span class="lineno"><a class="line" href="class_entity_1_1_admin.html">    5</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_entity_1_1_admin.html">Admin</a> <span class="keyword">extends</span> <a class="code" href="class_entity_1_1_model_base.html">ModelBase</a></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;{</div>
+<div class="line"><a name="l00021"></a><span class="lineno"><a class="line" href="class_entity_1_1_admin.html#aa966adc12c56a4cc70da92207fa50929">   21</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_entity_1_1_admin.html#aa966adc12c56a4cc70da92207fa50929">install</a>()</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;    {</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;        $dbPrefix = $this-&gt;getDbPrefix();</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;        $result = self::$dbo-&gt;exec(<span class="stringliteral">&quot;CREATE TABLE IF NOT EXISTS `{$dbPrefix}admin` (</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="stringliteral">            `id` INTEGER(11) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="stringliteral">            `email` VARCHAR(128) NOT NULL UNIQUE,</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="stringliteral">            `password` VARCHAR(64),</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="stringliteral">            `role` VARCHAR(8) NOT NULL DEFAULT &#39;00000&#39;,</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="stringliteral">            `lastConnect` DATETIME NOT NULL,</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="stringliteral">            `lastConnectIp` VARCHAR(42) NOT NULL</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="stringliteral">        )&quot;</span>);</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;        <span class="keywordflow">if</span> ($result === <span class="keyword">false</span>)</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;            <span class="keywordflow">throw</span> new \Exception(get_class().<span class="stringliteral">&quot;: &quot;</span>.self::$dbo-&gt;errorInfo()[2]);</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;    }</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;</div>
+<div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="class_entity_1_1_admin.html#abbda66c832a371bc9b6ec05cb8734efc">   37</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_entity_1_1_admin.html#abbda66c832a371bc9b6ec05cb8734efc">__construct</a>($id = null)</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;    {</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;        $this-&gt;lastConnect = new \DateTime();</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;        $this-&gt;lastConnectIp = $_SERVER[<span class="stringliteral">&quot;REMOTE_ADDR&quot;</span>];</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;        parent::__construct($id);</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;    }</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="class_entity_1_1_admin.html#aac8f8ac2e48fce84e6fadde734001d82">   44</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_entity_1_1_admin.html#aac8f8ac2e48fce84e6fadde734001d82">checkPassword</a>($value)</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;    {</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;        <span class="keywordflow">return</span> password_verify($value, $this-&gt;password);</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;    }</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;</div>
+<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="class_entity_1_1_admin.html#a1da155ea4c8dda7eb4cf986f05634003">   49</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_entity_1_1_admin.html#a1da155ea4c8dda7eb4cf986f05634003">setPassword</a>($value)</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;    {</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;        parent::__set(<span class="stringliteral">&quot;password&quot;</span>, password_hash($value, PASSWORD_BCRYPT));</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;    }</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;</div>
+<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="class_entity_1_1_admin.html#a79b36d71c6f1d4f9e6c4c3e34c081456">   54</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_entity_1_1_admin.html#a79b36d71c6f1d4f9e6c4c3e34c081456">__set</a>($key, $value)</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;    {</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;        <span class="keywordflow">if</span> ($key == <span class="stringliteral">&quot;password&quot;</span>)</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;            <span class="keywordflow">return</span> $this-&gt;setPassword($value);</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;        <span class="keywordflow">return</span> parent::__set($key, $value);</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;    }</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;}</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;</div>
+<div class="ttc" id="class_entity_1_1_admin_html_a79b36d71c6f1d4f9e6c4c3e34c081456"><div class="ttname"><a href="class_entity_1_1_admin.html#a79b36d71c6f1d4f9e6c4c3e34c081456">Entity\Admin\__set</a></div><div class="ttdeci">__set($key, $value)</div><div class="ttdef"><b>Definition:</b> <a href="_admin_8php_source.html#l00054">Admin.php:54</a></div></div>
+<div class="ttc" id="namespace_entity_html"><div class="ttname"><a href="namespace_entity.html">Entity</a></div><div class="ttdef"><b>Definition:</b> <a href="_address_8php_source.html#l00003">Address.php:3</a></div></div>
+<div class="ttc" id="class_entity_1_1_admin_html_aa966adc12c56a4cc70da92207fa50929"><div class="ttname"><a href="class_entity_1_1_admin.html#aa966adc12c56a4cc70da92207fa50929">Entity\Admin\install</a></div><div class="ttdeci">install()</div><div class="ttdef"><b>Definition:</b> <a href="_admin_8php_source.html#l00021">Admin.php:21</a></div></div>
+<div class="ttc" id="class_entity_1_1_admin_html_aac8f8ac2e48fce84e6fadde734001d82"><div class="ttname"><a href="class_entity_1_1_admin.html#aac8f8ac2e48fce84e6fadde734001d82">Entity\Admin\checkPassword</a></div><div class="ttdeci">checkPassword($value)</div><div class="ttdef"><b>Definition:</b> <a href="_admin_8php_source.html#l00044">Admin.php:44</a></div></div>
+<div class="ttc" id="class_entity_1_1_admin_html"><div class="ttname"><a href="class_entity_1_1_admin.html">Entity\Admin</a></div><div class="ttdef"><b>Definition:</b> <a href="_admin_8php_source.html#l00005">Admin.php:5</a></div></div>
+<div class="ttc" id="class_entity_1_1_model_base_html"><div class="ttname"><a href="class_entity_1_1_model_base.html">Entity\ModelBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_model_base_8php_source.html#l00005">ModelBase.php:5</a></div></div>
+<div class="ttc" id="class_entity_1_1_admin_html_abbda66c832a371bc9b6ec05cb8734efc"><div class="ttname"><a href="class_entity_1_1_admin.html#abbda66c832a371bc9b6ec05cb8734efc">Entity\Admin\__construct</a></div><div class="ttdeci">__construct($id=null)</div><div class="ttdef"><b>Definition:</b> <a href="_admin_8php_source.html#l00037">Admin.php:37</a></div></div>
+<div class="ttc" id="class_entity_1_1_admin_html_a1da155ea4c8dda7eb4cf986f05634003"><div class="ttname"><a href="class_entity_1_1_admin.html#a1da155ea4c8dda7eb4cf986f05634003">Entity\Admin\setPassword</a></div><div class="ttdeci">setPassword($value)</div><div class="ttdef"><b>Definition:</b> <a href="_admin_8php_source.html#l00049">Admin.php:49</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:18 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

+ 117 - 0
doc/html/_cart_8php.html

@@ -0,0 +1,117 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: /home/isundil/Project/ecom/core/models/Cart.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_75b82e7e4a5feb05200b9ad7adf06257.html">home</a></li><li class="navelem"><a class="el" href="dir_9db4aabfa12fb2197f4b553e7ea8deed.html">isundil</a></li><li class="navelem"><a class="el" href="dir_1a6cb19e8504dda728b9574aa47fdf34.html">Project</a></li><li class="navelem"><a class="el" href="dir_f8738126562420a628a94e1d7172443f.html">ecom</a></li><li class="navelem"><a class="el" href="dir_fc33a2a7f6da4d78118e1e23a8f17b51.html">core</a></li><li class="navelem"><a class="el" href="dir_4c7ccac51765411e64ed8afa1459e892.html">models</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<div class="title">Cart.php File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="_cart_8php_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_cart.html">Cart</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespace_entity"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespace_entity.html">Entity</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:19 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

+ 126 - 0
doc/html/_cart_8php_source.html

@@ -0,0 +1,126 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: /home/isundil/Project/ecom/core/models/Cart.php Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_75b82e7e4a5feb05200b9ad7adf06257.html">home</a></li><li class="navelem"><a class="el" href="dir_9db4aabfa12fb2197f4b553e7ea8deed.html">isundil</a></li><li class="navelem"><a class="el" href="dir_1a6cb19e8504dda728b9574aa47fdf34.html">Project</a></li><li class="navelem"><a class="el" href="dir_f8738126562420a628a94e1d7172443f.html">ecom</a></li><li class="navelem"><a class="el" href="dir_fc33a2a7f6da4d78118e1e23a8f17b51.html">core</a></li><li class="navelem"><a class="el" href="dir_4c7ccac51765411e64ed8afa1459e892.html">models</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">Cart.php</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_cart_8php.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;&lt;?php</div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;</div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_entity.html">Entity</a>;</div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;</div>
+<div class="line"><a name="l00005"></a><span class="lineno"><a class="line" href="class_entity_1_1_cart.html">    5</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_entity_1_1_cart.html">Cart</a> <span class="keyword">extends</span> <a class="code" href="class_entity_1_1_model_base.html">ModelBase</a></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;{</div>
+<div class="line"><a name="l00007"></a><span class="lineno"><a class="line" href="class_entity_1_1_cart.html#aa966adc12c56a4cc70da92207fa50929">    7</a></span>&#160;    <span class="keyword">protected</span> <span class="keyword">function</span> <a class="code" href="class_entity_1_1_cart.html#aa966adc12c56a4cc70da92207fa50929">install</a>()</div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;    {</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;        $dbPrefix = $this-&gt;getDbPrefix();</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;        $result = self::$dbo-&gt;exec(<span class="stringliteral">&quot;CREATE TABLE IF NOT EXISTS `{$dbPrefix}cart` (</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="stringliteral">            `id` INTEGER(11) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="stringliteral">            `user_id` INTEGER(11) UNSIGNED NULL,</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="stringliteral">            `created` DATETIME NOT NULL,</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="stringliteral">            FOREIGN KEY (`user_id`) REFERENCES `{$dbPrefix}user`(id)</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="stringliteral">        )&quot;</span>);</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;        <span class="keywordflow">if</span> ($result === <span class="keyword">false</span>)</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;            <span class="keywordflow">throw</span> new \Exception(get_class().<span class="stringliteral">&quot;: &quot;</span>.self::$dbo-&gt;errorInfo()[2]);</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;    }</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;}</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div>
+<div class="ttc" id="class_entity_1_1_cart_html"><div class="ttname"><a href="class_entity_1_1_cart.html">Entity\Cart</a></div><div class="ttdef"><b>Definition:</b> <a href="_cart_8php_source.html#l00005">Cart.php:5</a></div></div>
+<div class="ttc" id="namespace_entity_html"><div class="ttname"><a href="namespace_entity.html">Entity</a></div><div class="ttdef"><b>Definition:</b> <a href="_address_8php_source.html#l00003">Address.php:3</a></div></div>
+<div class="ttc" id="class_entity_1_1_cart_html_aa966adc12c56a4cc70da92207fa50929"><div class="ttname"><a href="class_entity_1_1_cart.html#aa966adc12c56a4cc70da92207fa50929">Entity\Cart\install</a></div><div class="ttdeci">install()</div><div class="ttdef"><b>Definition:</b> <a href="_cart_8php_source.html#l00007">Cart.php:7</a></div></div>
+<div class="ttc" id="class_entity_1_1_model_base_html"><div class="ttname"><a href="class_entity_1_1_model_base.html">Entity\ModelBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_model_base_8php_source.html#l00005">ModelBase.php:5</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:18 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

+ 117 - 0
doc/html/_cart_product_8php.html

@@ -0,0 +1,117 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: /home/isundil/Project/ecom/core/models/CartProduct.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_75b82e7e4a5feb05200b9ad7adf06257.html">home</a></li><li class="navelem"><a class="el" href="dir_9db4aabfa12fb2197f4b553e7ea8deed.html">isundil</a></li><li class="navelem"><a class="el" href="dir_1a6cb19e8504dda728b9574aa47fdf34.html">Project</a></li><li class="navelem"><a class="el" href="dir_f8738126562420a628a94e1d7172443f.html">ecom</a></li><li class="navelem"><a class="el" href="dir_fc33a2a7f6da4d78118e1e23a8f17b51.html">core</a></li><li class="navelem"><a class="el" href="dir_4c7ccac51765411e64ed8afa1459e892.html">models</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<div class="title">CartProduct.php File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="_cart_product_8php_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_cart_product.html">CartProduct</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespace_entity"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespace_entity.html">Entity</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:19 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

+ 128 - 0
doc/html/_cart_product_8php_source.html

@@ -0,0 +1,128 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: /home/isundil/Project/ecom/core/models/CartProduct.php Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_75b82e7e4a5feb05200b9ad7adf06257.html">home</a></li><li class="navelem"><a class="el" href="dir_9db4aabfa12fb2197f4b553e7ea8deed.html">isundil</a></li><li class="navelem"><a class="el" href="dir_1a6cb19e8504dda728b9574aa47fdf34.html">Project</a></li><li class="navelem"><a class="el" href="dir_f8738126562420a628a94e1d7172443f.html">ecom</a></li><li class="navelem"><a class="el" href="dir_fc33a2a7f6da4d78118e1e23a8f17b51.html">core</a></li><li class="navelem"><a class="el" href="dir_4c7ccac51765411e64ed8afa1459e892.html">models</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">CartProduct.php</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_cart_product_8php.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;&lt;?php</div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;</div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_entity.html">Entity</a>;</div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;</div>
+<div class="line"><a name="l00005"></a><span class="lineno"><a class="line" href="class_entity_1_1_cart_product.html">    5</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_entity_1_1_cart_product.html">CartProduct</a> <span class="keyword">extends</span> <a class="code" href="class_entity_1_1_model_base.html">ModelBase</a></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;{</div>
+<div class="line"><a name="l00007"></a><span class="lineno"><a class="line" href="class_entity_1_1_cart_product.html#aa966adc12c56a4cc70da92207fa50929">    7</a></span>&#160;    <span class="keyword">protected</span> <span class="keyword">function</span> <a class="code" href="class_entity_1_1_cart_product.html#aa966adc12c56a4cc70da92207fa50929">install</a>()</div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;    {</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;        $dbPrefix = $this-&gt;getDbPrefix();</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;        $result = self::$dbo-&gt;exec(<span class="stringliteral">&quot;CREATE TABLE IF NOT EXISTS `{$dbPrefix}cart_product` (</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="stringliteral">            `cart_id` INTEGER(11) UNSIGNED NOT NULL,</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="stringliteral">            `product_id` INTEGER(11) UNSIGNED NULL,</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="stringliteral">            `quantity` INTEGER(10) UNSIGNED NOT NULL,</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="stringliteral">            FOREIGN KEY (`cart_id`) REFERENCES `{$dbPrefix}cart`(id),</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="stringliteral">            FOREIGN KEY (`product_id`) REFERENCES `{$dbPrefix}product`(id),</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="stringliteral">            UNIQUE(`cart_id`, `product_id`)</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="stringliteral">        )&quot;</span>);</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;        <span class="keywordflow">if</span> ($result === <span class="keyword">false</span>)</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;            <span class="keywordflow">throw</span> new \Exception(get_class().<span class="stringliteral">&quot;: &quot;</span>.self::$dbo-&gt;errorInfo()[2]);</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;    }</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;}</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div>
+<div class="ttc" id="namespace_entity_html"><div class="ttname"><a href="namespace_entity.html">Entity</a></div><div class="ttdef"><b>Definition:</b> <a href="_address_8php_source.html#l00003">Address.php:3</a></div></div>
+<div class="ttc" id="class_entity_1_1_cart_product_html"><div class="ttname"><a href="class_entity_1_1_cart_product.html">Entity\CartProduct</a></div><div class="ttdef"><b>Definition:</b> <a href="_cart_product_8php_source.html#l00005">CartProduct.php:5</a></div></div>
+<div class="ttc" id="class_entity_1_1_cart_product_html_aa966adc12c56a4cc70da92207fa50929"><div class="ttname"><a href="class_entity_1_1_cart_product.html#aa966adc12c56a4cc70da92207fa50929">Entity\CartProduct\install</a></div><div class="ttdeci">install()</div><div class="ttdef"><b>Definition:</b> <a href="_cart_product_8php_source.html#l00007">CartProduct.php:7</a></div></div>
+<div class="ttc" id="class_entity_1_1_model_base_html"><div class="ttname"><a href="class_entity_1_1_model_base.html">Entity\ModelBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_model_base_8php_source.html#l00005">ModelBase.php:5</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:18 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

+ 117 - 0
doc/html/_category_8php.html

@@ -0,0 +1,117 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: /home/isundil/Project/ecom/core/models/Category.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_75b82e7e4a5feb05200b9ad7adf06257.html">home</a></li><li class="navelem"><a class="el" href="dir_9db4aabfa12fb2197f4b553e7ea8deed.html">isundil</a></li><li class="navelem"><a class="el" href="dir_1a6cb19e8504dda728b9574aa47fdf34.html">Project</a></li><li class="navelem"><a class="el" href="dir_f8738126562420a628a94e1d7172443f.html">ecom</a></li><li class="navelem"><a class="el" href="dir_fc33a2a7f6da4d78118e1e23a8f17b51.html">core</a></li><li class="navelem"><a class="el" href="dir_4c7ccac51765411e64ed8afa1459e892.html">models</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<div class="title">Category.php File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="_category_8php_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_category.html">Category</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespace_entity"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespace_entity.html">Entity</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:19 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

+ 125 - 0
doc/html/_category_8php_source.html

@@ -0,0 +1,125 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: /home/isundil/Project/ecom/core/models/Category.php Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_75b82e7e4a5feb05200b9ad7adf06257.html">home</a></li><li class="navelem"><a class="el" href="dir_9db4aabfa12fb2197f4b553e7ea8deed.html">isundil</a></li><li class="navelem"><a class="el" href="dir_1a6cb19e8504dda728b9574aa47fdf34.html">Project</a></li><li class="navelem"><a class="el" href="dir_f8738126562420a628a94e1d7172443f.html">ecom</a></li><li class="navelem"><a class="el" href="dir_fc33a2a7f6da4d78118e1e23a8f17b51.html">core</a></li><li class="navelem"><a class="el" href="dir_4c7ccac51765411e64ed8afa1459e892.html">models</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">Category.php</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_category_8php.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;&lt;?php</div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;</div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_entity.html">Entity</a>;</div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;</div>
+<div class="line"><a name="l00005"></a><span class="lineno"><a class="line" href="class_entity_1_1_category.html">    5</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_entity_1_1_category.html">Category</a> <span class="keyword">extends</span> <a class="code" href="class_entity_1_1_model_base.html">ModelBase</a></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;{</div>
+<div class="line"><a name="l00007"></a><span class="lineno"><a class="line" href="class_entity_1_1_category.html#aa966adc12c56a4cc70da92207fa50929">    7</a></span>&#160;    <span class="keyword">protected</span> <span class="keyword">function</span> <a class="code" href="class_entity_1_1_category.html#aa966adc12c56a4cc70da92207fa50929">install</a>()</div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;    {</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;        $dbPrefix = $this-&gt;getDbPrefix();</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;        $result = self::$dbo-&gt;exec(<span class="stringliteral">&quot;CREATE TABLE IF NOT EXISTS `{$dbPrefix}category` (</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="stringliteral">            `id` INTEGER(11) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="stringliteral">            `parent_id` INTEGER(11) UNSIGNED NULL,</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="stringliteral">            FOREIGN KEY (`parent_id`) REFERENCES `{$dbPrefix}category`(id)</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="stringliteral">        )&quot;</span>);</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;        <span class="keywordflow">if</span> ($result === <span class="keyword">false</span>)</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;            <span class="keywordflow">throw</span> new \Exception(get_class().<span class="stringliteral">&quot;: &quot;</span>.self::$dbo-&gt;errorInfo()[2]);</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;    }</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;}</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div>
+<div class="ttc" id="namespace_entity_html"><div class="ttname"><a href="namespace_entity.html">Entity</a></div><div class="ttdef"><b>Definition:</b> <a href="_address_8php_source.html#l00003">Address.php:3</a></div></div>
+<div class="ttc" id="class_entity_1_1_category_html_aa966adc12c56a4cc70da92207fa50929"><div class="ttname"><a href="class_entity_1_1_category.html#aa966adc12c56a4cc70da92207fa50929">Entity\Category\install</a></div><div class="ttdeci">install()</div><div class="ttdef"><b>Definition:</b> <a href="_category_8php_source.html#l00007">Category.php:7</a></div></div>
+<div class="ttc" id="class_entity_1_1_category_html"><div class="ttname"><a href="class_entity_1_1_category.html">Entity\Category</a></div><div class="ttdef"><b>Definition:</b> <a href="_category_8php_source.html#l00005">Category.php:5</a></div></div>
+<div class="ttc" id="class_entity_1_1_model_base_html"><div class="ttname"><a href="class_entity_1_1_model_base.html">Entity\ModelBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_model_base_8php_source.html#l00005">ModelBase.php:5</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:18 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

+ 117 - 0
doc/html/_category_controller_8php.html

@@ -0,0 +1,117 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: /home/isundil/Project/ecom/core/controllers/CategoryController.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_75b82e7e4a5feb05200b9ad7adf06257.html">home</a></li><li class="navelem"><a class="el" href="dir_9db4aabfa12fb2197f4b553e7ea8deed.html">isundil</a></li><li class="navelem"><a class="el" href="dir_1a6cb19e8504dda728b9574aa47fdf34.html">Project</a></li><li class="navelem"><a class="el" href="dir_f8738126562420a628a94e1d7172443f.html">ecom</a></li><li class="navelem"><a class="el" href="dir_fc33a2a7f6da4d78118e1e23a8f17b51.html">core</a></li><li class="navelem"><a class="el" href="dir_6053281efef16ae07a77b3abbde5e7df.html">controllers</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<div class="title">CategoryController.php File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="_category_controller_8php_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_controller_1_1_category_controller.html">CategoryController</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespace_controller"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespace_controller.html">Controller</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:19 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

+ 117 - 0
doc/html/_category_controller_8php_source.html

@@ -0,0 +1,117 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: /home/isundil/Project/ecom/core/controllers/CategoryController.php Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_75b82e7e4a5feb05200b9ad7adf06257.html">home</a></li><li class="navelem"><a class="el" href="dir_9db4aabfa12fb2197f4b553e7ea8deed.html">isundil</a></li><li class="navelem"><a class="el" href="dir_1a6cb19e8504dda728b9574aa47fdf34.html">Project</a></li><li class="navelem"><a class="el" href="dir_f8738126562420a628a94e1d7172443f.html">ecom</a></li><li class="navelem"><a class="el" href="dir_fc33a2a7f6da4d78118e1e23a8f17b51.html">core</a></li><li class="navelem"><a class="el" href="dir_6053281efef16ae07a77b3abbde5e7df.html">controllers</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">CategoryController.php</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_category_controller_8php.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;&lt;?php</div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;</div>
+<div class="line"><a name="l00003"></a><span class="lineno"><a class="line" href="namespace_controller.html">    3</a></span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_controller.html">Controller</a>;</div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;</div>
+<div class="line"><a name="l00005"></a><span class="lineno"><a class="line" href="class_controller_1_1_category_controller.html">    5</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_controller_1_1_category_controller.html">CategoryController</a> <span class="keyword">extends</span> <a class="code" href="class_tools_1_1_a_controller.html">\Tools\AController</a></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;{</div>
+<div class="line"><a name="l00007"></a><span class="lineno"><a class="line" href="class_controller_1_1_category_controller.html#a7b7ea19d18501d4214fb4dcb274addea">    7</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_controller_1_1_category_controller.html#a7b7ea19d18501d4214fb4dcb274addea">__construct</a>($context, $params)</div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;    {</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;        parent::__construct($context, $params);</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;    }</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;}</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;</div>
+<div class="ttc" id="class_controller_1_1_category_controller_html_a7b7ea19d18501d4214fb4dcb274addea"><div class="ttname"><a href="class_controller_1_1_category_controller.html#a7b7ea19d18501d4214fb4dcb274addea">Controller\CategoryController\__construct</a></div><div class="ttdeci">__construct($context, $params)</div><div class="ttdef"><b>Definition:</b> <a href="_category_controller_8php_source.html#l00007">CategoryController.php:7</a></div></div>
+<div class="ttc" id="class_controller_1_1_category_controller_html"><div class="ttname"><a href="class_controller_1_1_category_controller.html">Controller\CategoryController</a></div><div class="ttdef"><b>Definition:</b> <a href="_category_controller_8php_source.html#l00005">CategoryController.php:5</a></div></div>
+<div class="ttc" id="namespace_controller_html"><div class="ttname"><a href="namespace_controller.html">Controller</a></div><div class="ttdef"><b>Definition:</b> <a href="_category_controller_8php_source.html#l00003">CategoryController.php:3</a></div></div>
+<div class="ttc" id="class_tools_1_1_a_controller_html"><div class="ttname"><a href="class_tools_1_1_a_controller.html">Tools\AController</a></div><div class="ttdef"><b>Definition:</b> <a href="_a_controller_8php_source.html#l00011">AController.php:11</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:18 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

+ 117 - 0
doc/html/_cms_8php.html

@@ -0,0 +1,117 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: /home/isundil/Project/ecom/core/models/Cms.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_75b82e7e4a5feb05200b9ad7adf06257.html">home</a></li><li class="navelem"><a class="el" href="dir_9db4aabfa12fb2197f4b553e7ea8deed.html">isundil</a></li><li class="navelem"><a class="el" href="dir_1a6cb19e8504dda728b9574aa47fdf34.html">Project</a></li><li class="navelem"><a class="el" href="dir_f8738126562420a628a94e1d7172443f.html">ecom</a></li><li class="navelem"><a class="el" href="dir_fc33a2a7f6da4d78118e1e23a8f17b51.html">core</a></li><li class="navelem"><a class="el" href="dir_4c7ccac51765411e64ed8afa1459e892.html">models</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<div class="title">Cms.php File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="_cms_8php_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_cms.html">Cms</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespace_entity"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespace_entity.html">Entity</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:19 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

+ 127 - 0
doc/html/_cms_8php_source.html

@@ -0,0 +1,127 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: /home/isundil/Project/ecom/core/models/Cms.php Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_75b82e7e4a5feb05200b9ad7adf06257.html">home</a></li><li class="navelem"><a class="el" href="dir_9db4aabfa12fb2197f4b553e7ea8deed.html">isundil</a></li><li class="navelem"><a class="el" href="dir_1a6cb19e8504dda728b9574aa47fdf34.html">Project</a></li><li class="navelem"><a class="el" href="dir_f8738126562420a628a94e1d7172443f.html">ecom</a></li><li class="navelem"><a class="el" href="dir_fc33a2a7f6da4d78118e1e23a8f17b51.html">core</a></li><li class="navelem"><a class="el" href="dir_4c7ccac51765411e64ed8afa1459e892.html">models</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">Cms.php</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_cms_8php.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;&lt;?php</div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;</div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_entity.html">Entity</a>;</div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;</div>
+<div class="line"><a name="l00005"></a><span class="lineno"><a class="line" href="class_entity_1_1_cms.html">    5</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_entity_1_1_cms.html">Cms</a> <span class="keyword">extends</span> <a class="code" href="class_entity_1_1_model_base.html">ModelBase</a></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;{</div>
+<div class="line"><a name="l00007"></a><span class="lineno"><a class="line" href="class_entity_1_1_cms.html#aa966adc12c56a4cc70da92207fa50929">    7</a></span>&#160;    <span class="keyword">protected</span> <span class="keyword">function</span> <a class="code" href="class_entity_1_1_cms.html#aa966adc12c56a4cc70da92207fa50929">install</a>()</div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;    {</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;        $dbPrefix = $this-&gt;getDbPrefix();</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;        $result = self::$dbo-&gt;exec(<span class="stringliteral">&quot;CREATE TABLE IF NOT EXISTS `{$dbPrefix}cms` (</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="stringliteral">            `id` INTEGER(11) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="stringliteral">            `shurl` VARCHAR(255) NOT NULL,</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="stringliteral">            `controller` VARCHAR(255) NOT NULL,</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="stringliteral">            `order` INTEGER UNSIGNED NOT NULL DEFAULT 0,</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="stringliteral">            UNIQUE(`shurl`)</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="stringliteral">        )&quot;</span>);</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;        <span class="keywordflow">if</span> ($result === <span class="keyword">false</span>)</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;            <span class="keywordflow">throw</span> new \Exception(get_class().<span class="stringliteral">&quot;: &quot;</span>.self::$dbo-&gt;errorInfo()[2]);</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;    }</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;}</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div>
+<div class="ttc" id="class_entity_1_1_cms_html_aa966adc12c56a4cc70da92207fa50929"><div class="ttname"><a href="class_entity_1_1_cms.html#aa966adc12c56a4cc70da92207fa50929">Entity\Cms\install</a></div><div class="ttdeci">install()</div><div class="ttdef"><b>Definition:</b> <a href="_cms_8php_source.html#l00007">Cms.php:7</a></div></div>
+<div class="ttc" id="namespace_entity_html"><div class="ttname"><a href="namespace_entity.html">Entity</a></div><div class="ttdef"><b>Definition:</b> <a href="_address_8php_source.html#l00003">Address.php:3</a></div></div>
+<div class="ttc" id="class_entity_1_1_cms_html"><div class="ttname"><a href="class_entity_1_1_cms.html">Entity\Cms</a></div><div class="ttdef"><b>Definition:</b> <a href="_cms_8php_source.html#l00005">Cms.php:5</a></div></div>
+<div class="ttc" id="class_entity_1_1_model_base_html"><div class="ttname"><a href="class_entity_1_1_model_base.html">Entity\ModelBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_model_base_8php_source.html#l00005">ModelBase.php:5</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:18 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

+ 117 - 0
doc/html/_config_8php.html

@@ -0,0 +1,117 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: /home/isundil/Project/ecom/core/models/Config.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_75b82e7e4a5feb05200b9ad7adf06257.html">home</a></li><li class="navelem"><a class="el" href="dir_9db4aabfa12fb2197f4b553e7ea8deed.html">isundil</a></li><li class="navelem"><a class="el" href="dir_1a6cb19e8504dda728b9574aa47fdf34.html">Project</a></li><li class="navelem"><a class="el" href="dir_f8738126562420a628a94e1d7172443f.html">ecom</a></li><li class="navelem"><a class="el" href="dir_fc33a2a7f6da4d78118e1e23a8f17b51.html">core</a></li><li class="navelem"><a class="el" href="dir_4c7ccac51765411e64ed8afa1459e892.html">models</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<div class="title">Config.php File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="_config_8php_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_config.html">Config</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespace_entity"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespace_entity.html">Entity</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:19 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

+ 142 - 0
doc/html/_config_8php_source.html

@@ -0,0 +1,142 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: /home/isundil/Project/ecom/core/models/Config.php Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_75b82e7e4a5feb05200b9ad7adf06257.html">home</a></li><li class="navelem"><a class="el" href="dir_9db4aabfa12fb2197f4b553e7ea8deed.html">isundil</a></li><li class="navelem"><a class="el" href="dir_1a6cb19e8504dda728b9574aa47fdf34.html">Project</a></li><li class="navelem"><a class="el" href="dir_f8738126562420a628a94e1d7172443f.html">ecom</a></li><li class="navelem"><a class="el" href="dir_fc33a2a7f6da4d78118e1e23a8f17b51.html">core</a></li><li class="navelem"><a class="el" href="dir_4c7ccac51765411e64ed8afa1459e892.html">models</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">Config.php</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_config_8php.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;&lt;?php</div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;</div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_entity.html">Entity</a>;</div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;</div>
+<div class="line"><a name="l00005"></a><span class="lineno"><a class="line" href="class_entity_1_1_config.html">    5</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_entity_1_1_config.html">Config</a> <span class="keyword">extends</span> <a class="code" href="class_entity_1_1_model_base.html">ModelBase</a></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;{</div>
+<div class="line"><a name="l00007"></a><span class="lineno"><a class="line" href="class_entity_1_1_config.html#a49c7011be9c979d9174c52a8b83e5d8e">    7</a></span>&#160;    <span class="keyword">private</span> <span class="keyword">static</span> $config = array();</div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;</div>
+<div class="line"><a name="l00009"></a><span class="lineno"><a class="line" href="class_entity_1_1_config.html#aa966adc12c56a4cc70da92207fa50929">    9</a></span>&#160;    <span class="keyword">protected</span> <span class="keyword">function</span> <a class="code" href="class_entity_1_1_config.html#aa966adc12c56a4cc70da92207fa50929">install</a>()</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;    {</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;        $dbPrefix = $this-&gt;getDbPrefix();</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;        $result = self::$dbo-&gt;exec(<span class="stringliteral">&quot;CREATE TABLE IF NOT EXISTS `{$dbPrefix}config` (</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="stringliteral">            `lang` VARCHAR(8) NULL,</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="stringliteral">            `key` VARCHAR(64) NOT NULL,</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="stringliteral">            `value` TEXT NULL,</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="stringliteral">            UNIQUE(`lang`, `key`)</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="stringliteral">        )&quot;</span>);</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;        <span class="keywordflow">if</span> ($result === <span class="keyword">false</span>)</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;            <span class="keywordflow">throw</span> new \Exception(get_class().<span class="stringliteral">&quot;: &quot;</span>.self::$dbo-&gt;errorInfo()[2]);</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;    }</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"><a class="line" href="class_entity_1_1_config.html#af66f143ec797389e3ade6952ef7808e2">   23</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">function</span> <a class="code" href="class_entity_1_1_config.html#af66f143ec797389e3ade6952ef7808e2">getConfig</a>($lang =null, $key =null, $defaultValue =null)</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;    {</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;        $fetcher = <span class="keyword">new</span> <span class="keyword">self</span>();</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;        <span class="keywordflow">if</span> (isset(self::$config[$lang]))</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;            <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;        $values = $fetcher-&gt;selects(array(<span class="stringliteral">&quot;lang&quot;</span> =&gt; $lang));</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;        <span class="keywordflow">foreach</span> ($values as $i)</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;            self::$config[$lang][$i-&gt;key] = $i-&gt;value;</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;        <span class="keywordflow">if</span> ($key)</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;            <span class="keywordflow">return</span> (isset(self::$config[$lang][$key]) ? self::$config[$lang][$key] : $defaultValue);</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;        <span class="keywordflow">return</span> $defaultValue;</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;    }</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;}</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;</div>
+<div class="ttc" id="namespace_entity_html"><div class="ttname"><a href="namespace_entity.html">Entity</a></div><div class="ttdef"><b>Definition:</b> <a href="_address_8php_source.html#l00003">Address.php:3</a></div></div>
+<div class="ttc" id="class_entity_1_1_config_html_af66f143ec797389e3ade6952ef7808e2"><div class="ttname"><a href="class_entity_1_1_config.html#af66f143ec797389e3ade6952ef7808e2">Entity\Config\getConfig</a></div><div class="ttdeci">static getConfig($lang=null, $key=null, $defaultValue=null)</div><div class="ttdef"><b>Definition:</b> <a href="_config_8php_source.html#l00023">Config.php:23</a></div></div>
+<div class="ttc" id="class_entity_1_1_config_html_aa966adc12c56a4cc70da92207fa50929"><div class="ttname"><a href="class_entity_1_1_config.html#aa966adc12c56a4cc70da92207fa50929">Entity\Config\install</a></div><div class="ttdeci">install()</div><div class="ttdef"><b>Definition:</b> <a href="_config_8php_source.html#l00009">Config.php:9</a></div></div>
+<div class="ttc" id="class_entity_1_1_model_base_html"><div class="ttname"><a href="class_entity_1_1_model_base.html">Entity\ModelBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_model_base_8php_source.html#l00005">ModelBase.php:5</a></div></div>
+<div class="ttc" id="class_entity_1_1_config_html"><div class="ttname"><a href="class_entity_1_1_config.html">Entity\Config</a></div><div class="ttdef"><b>Definition:</b> <a href="_config_8php_source.html#l00005">Config.php:5</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:19 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

+ 117 - 0
doc/html/_context_8php.html

@@ -0,0 +1,117 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: /home/isundil/Project/ecom/core/tools/Context.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_75b82e7e4a5feb05200b9ad7adf06257.html">home</a></li><li class="navelem"><a class="el" href="dir_9db4aabfa12fb2197f4b553e7ea8deed.html">isundil</a></li><li class="navelem"><a class="el" href="dir_1a6cb19e8504dda728b9574aa47fdf34.html">Project</a></li><li class="navelem"><a class="el" href="dir_f8738126562420a628a94e1d7172443f.html">ecom</a></li><li class="navelem"><a class="el" href="dir_fc33a2a7f6da4d78118e1e23a8f17b51.html">core</a></li><li class="navelem"><a class="el" href="dir_c7e9cf21629ccd0940e4dcdbd0bc9b8a.html">tools</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<div class="title">Context.php File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="_context_8php_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_context.html">Context</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespace_tools"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespace_tools.html">Tools</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:19 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

+ 173 - 0
doc/html/_context_8php_source.html

@@ -0,0 +1,173 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: /home/isundil/Project/ecom/core/tools/Context.php Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_75b82e7e4a5feb05200b9ad7adf06257.html">home</a></li><li class="navelem"><a class="el" href="dir_9db4aabfa12fb2197f4b553e7ea8deed.html">isundil</a></li><li class="navelem"><a class="el" href="dir_1a6cb19e8504dda728b9574aa47fdf34.html">Project</a></li><li class="navelem"><a class="el" href="dir_f8738126562420a628a94e1d7172443f.html">ecom</a></li><li class="navelem"><a class="el" href="dir_fc33a2a7f6da4d78118e1e23a8f17b51.html">core</a></li><li class="navelem"><a class="el" href="dir_c7e9cf21629ccd0940e4dcdbd0bc9b8a.html">tools</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">Context.php</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_context_8php.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;&lt;?php</div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;</div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_tools.html">Tools</a>;</div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;</div>
+<div class="line"><a name="l00010"></a><span class="lineno"><a class="line" href="class_tools_1_1_context.html">   10</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_tools_1_1_context.html">Context</a></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;{</div>
+<div class="line"><a name="l00018"></a><span class="lineno"><a class="line" href="class_tools_1_1_context.html#aafbd9a1b51b1f8a2f339c26667b737f7">   18</a></span>&#160;    <span class="keyword">private</span> <a class="code" href="class_tools_1_1_context.html#aafbd9a1b51b1f8a2f339c26667b737f7">$hookManager</a>;</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;</div>
+<div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="class_tools_1_1_context.html#a98e337617fa9647176db165d050037a6">   26</a></span>&#160;    <span class="keyword">private</span> <a class="code" href="class_tools_1_1_context.html#a98e337617fa9647176db165d050037a6">$moduleManager</a>;</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;</div>
+<div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="class_tools_1_1_context.html#aa37a3471877826e6468824f3f4bbe045">   35</a></span>&#160;    <span class="keyword">private</span> <a class="code" href="class_tools_1_1_context.html#aa37a3471877826e6468824f3f4bbe045">$router</a>;</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="class_tools_1_1_context.html#a02e30d1742d35e696b2c57d76fbaa477">   44</a></span>&#160;    <span class="keyword">private</span> <a class="code" href="class_tools_1_1_context.html#a02e30d1742d35e696b2c57d76fbaa477">$cart</a>;</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;</div>
+<div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="class_tools_1_1_context.html#a8b7726f763e4795501ee2a0327960dc0">   52</a></span>&#160;    <span class="keyword">private</span> <a class="code" href="class_tools_1_1_context.html#a8b7726f763e4795501ee2a0327960dc0">$user</a>;</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;</div>
+<div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="class_tools_1_1_context.html#a232854b8e97359df1687d6c24460eacf">   59</a></span>&#160;    <span class="keyword">private</span> <a class="code" href="class_tools_1_1_context.html#a232854b8e97359df1687d6c24460eacf">$controller</a>;</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;</div>
+<div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="class_tools_1_1_context.html#a095c5d389db211932136b53f25f39685">   65</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_context.html#a095c5d389db211932136b53f25f39685">__construct</a>()</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;    {</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;        $this-&gt;hookManager = <span class="keyword">new</span> <a class="code" href="class_tools_1_1_hooks.html">Hooks</a>($this);</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;        $this-&gt;router = <span class="keyword">new</span> <a class="code" href="class_tools_1_1_router.html">Router</a>($this);</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;        <span class="keywordflow">if</span> (!\<a class="code" href="namespace_entity.html">Entity</a>\ModelBase::init())</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;        {</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;            @require_once(getcwd().<span class="stringliteral">&#39;/core/setup/index.php&#39;</span>);</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;            die;</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;        }</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;        $this-&gt;router-&gt;init();</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;        $this-&gt;moduleManager = <span class="keyword">new</span> <a class="code" href="class_tools_1_1_module_manager.html">ModuleManager</a>($this);</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;        $this-&gt;hookManager-&gt;trigger(<span class="stringliteral">&quot;routerSetup&quot;</span>);</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;        <span class="keywordflow">try</span></div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;        {</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;            $this-&gt;controller = $this-&gt;router-&gt;serveUrl();</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;            <span class="keywordflow">if</span> (!$this-&gt;controller)</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;                <span class="keywordflow">throw</span> new \Exception\Error404();</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;            $this-&gt;controller-&gt;start();</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;        }</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;        <span class="keywordflow">catch</span> (\<a class="code" href="namespace_exception.html">Exception</a>\Error404 $e)</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;        {</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;            echo <span class="stringliteral">&quot;404&quot;</span>;</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;        }</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    }</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;</div>
+<div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="class_tools_1_1_context.html#a4537dad3b44254124991341cc91b28fb">   93</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_context.html#a4537dad3b44254124991341cc91b28fb">__get</a>($key)</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;    {</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;        <span class="keywordflow">switch</span> ($key)</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;        {</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;            <span class="keywordflow">case</span> <span class="stringliteral">&quot;router&quot;</span>: <span class="keywordflow">return</span> $this-&gt;router; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;            <span class="keywordflow">case</span> <span class="stringliteral">&quot;cart&quot;</span>: <span class="keywordflow">return</span> $this-&gt;cart; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;            <span class="keywordflow">case</span> <span class="stringliteral">&quot;user&quot;</span>: <span class="keywordflow">return</span> $this-&gt;user; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;            <span class="keywordflow">case</span> <span class="stringliteral">&quot;moduleManager&quot;</span>: <span class="keywordflow">return</span> $this-&gt;moduleManager; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;            <span class="keywordflow">case</span> <span class="stringliteral">&quot;hookManager&quot;</span>: <span class="keywordflow">return</span> $this-&gt;hookManager; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;        }</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;        <span class="keywordflow">throw</span> new \Exception(<span class="stringliteral">&quot;Cannot access attribute {$key}&quot;</span>);</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;    }</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;}</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;</div>
+<div class="ttc" id="class_tools_1_1_context_html_a8b7726f763e4795501ee2a0327960dc0"><div class="ttname"><a href="class_tools_1_1_context.html#a8b7726f763e4795501ee2a0327960dc0">Tools\Context\$user</a></div><div class="ttdeci">$user</div><div class="ttdef"><b>Definition:</b> <a href="_context_8php_source.html#l00052">Context.php:52</a></div></div>
+<div class="ttc" id="class_tools_1_1_context_html_a095c5d389db211932136b53f25f39685"><div class="ttname"><a href="class_tools_1_1_context.html#a095c5d389db211932136b53f25f39685">Tools\Context\__construct</a></div><div class="ttdeci">__construct()</div><div class="ttdef"><b>Definition:</b> <a href="_context_8php_source.html#l00065">Context.php:65</a></div></div>
+<div class="ttc" id="class_tools_1_1_context_html_a02e30d1742d35e696b2c57d76fbaa477"><div class="ttname"><a href="class_tools_1_1_context.html#a02e30d1742d35e696b2c57d76fbaa477">Tools\Context\$cart</a></div><div class="ttdeci">$cart</div><div class="ttdef"><b>Definition:</b> <a href="_context_8php_source.html#l00044">Context.php:44</a></div></div>
+<div class="ttc" id="namespace_entity_html"><div class="ttname"><a href="namespace_entity.html">Entity</a></div><div class="ttdef"><b>Definition:</b> <a href="_address_8php_source.html#l00003">Address.php:3</a></div></div>
+<div class="ttc" id="class_tools_1_1_module_manager_html"><div class="ttname"><a href="class_tools_1_1_module_manager.html">Tools\ModuleManager</a></div><div class="ttdef"><b>Definition:</b> <a href="_module_manager_8php_source.html#l00009">ModuleManager.php:9</a></div></div>
+<div class="ttc" id="class_tools_1_1_context_html_aafbd9a1b51b1f8a2f339c26667b737f7"><div class="ttname"><a href="class_tools_1_1_context.html#aafbd9a1b51b1f8a2f339c26667b737f7">Tools\Context\$hookManager</a></div><div class="ttdeci">$hookManager</div><div class="ttdef"><b>Definition:</b> <a href="_context_8php_source.html#l00018">Context.php:18</a></div></div>
+<div class="ttc" id="class_tools_1_1_context_html_a98e337617fa9647176db165d050037a6"><div class="ttname"><a href="class_tools_1_1_context.html#a98e337617fa9647176db165d050037a6">Tools\Context\$moduleManager</a></div><div class="ttdeci">$moduleManager</div><div class="ttdef"><b>Definition:</b> <a href="_context_8php_source.html#l00026">Context.php:26</a></div></div>
+<div class="ttc" id="namespace_exception_html"><div class="ttname"><a href="namespace_exception.html">Exception</a></div><div class="ttdef"><b>Definition:</b> <a href="_error404_8php_source.html#l00003">Error404.php:3</a></div></div>
+<div class="ttc" id="class_tools_1_1_router_html"><div class="ttname"><a href="class_tools_1_1_router.html">Tools\Router</a></div><div class="ttdef"><b>Definition:</b> <a href="_router_8php_source.html#l00009">Router.php:9</a></div></div>
+<div class="ttc" id="class_tools_1_1_context_html_aa37a3471877826e6468824f3f4bbe045"><div class="ttname"><a href="class_tools_1_1_context.html#aa37a3471877826e6468824f3f4bbe045">Tools\Context\$router</a></div><div class="ttdeci">$router</div><div class="ttdef"><b>Definition:</b> <a href="_context_8php_source.html#l00035">Context.php:35</a></div></div>
+<div class="ttc" id="class_tools_1_1_context_html"><div class="ttname"><a href="class_tools_1_1_context.html">Tools\Context</a></div><div class="ttdef"><b>Definition:</b> <a href="_context_8php_source.html#l00010">Context.php:10</a></div></div>
+<div class="ttc" id="class_tools_1_1_context_html_a4537dad3b44254124991341cc91b28fb"><div class="ttname"><a href="class_tools_1_1_context.html#a4537dad3b44254124991341cc91b28fb">Tools\Context\__get</a></div><div class="ttdeci">__get($key)</div><div class="ttdef"><b>Definition:</b> <a href="_context_8php_source.html#l00093">Context.php:93</a></div></div>
+<div class="ttc" id="class_tools_1_1_context_html_a232854b8e97359df1687d6c24460eacf"><div class="ttname"><a href="class_tools_1_1_context.html#a232854b8e97359df1687d6c24460eacf">Tools\Context\$controller</a></div><div class="ttdeci">$controller</div><div class="ttdef"><b>Definition:</b> <a href="_context_8php_source.html#l00059">Context.php:59</a></div></div>
+<div class="ttc" id="class_tools_1_1_hooks_html"><div class="ttname"><a href="class_tools_1_1_hooks.html">Tools\Hooks</a></div><div class="ttdef"><b>Definition:</b> <a href="_hooks_8php_source.html#l00008">Hooks.php:8</a></div></div>
+<div class="ttc" id="namespace_tools_html"><div class="ttname"><a href="namespace_tools.html">Tools</a></div><div class="ttdef"><b>Definition:</b> <a href="_a_controller_8php_source.html#l00003">AController.php:3</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:19 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

+ 117 - 0
doc/html/_error404_8php.html

@@ -0,0 +1,117 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: /home/isundil/Project/ecom/core/exceptions/Error404.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_75b82e7e4a5feb05200b9ad7adf06257.html">home</a></li><li class="navelem"><a class="el" href="dir_9db4aabfa12fb2197f4b553e7ea8deed.html">isundil</a></li><li class="navelem"><a class="el" href="dir_1a6cb19e8504dda728b9574aa47fdf34.html">Project</a></li><li class="navelem"><a class="el" href="dir_f8738126562420a628a94e1d7172443f.html">ecom</a></li><li class="navelem"><a class="el" href="dir_fc33a2a7f6da4d78118e1e23a8f17b51.html">core</a></li><li class="navelem"><a class="el" href="dir_abafa4404983cd6580846ba76a33a52a.html">exceptions</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<div class="title">Error404.php File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="_error404_8php_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_exception_1_1_error404.html">Error404</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespace_exception"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespace_exception.html">Exception</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:19 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

+ 111 - 0
doc/html/_error404_8php_source.html

@@ -0,0 +1,111 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: /home/isundil/Project/ecom/core/exceptions/Error404.php Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_75b82e7e4a5feb05200b9ad7adf06257.html">home</a></li><li class="navelem"><a class="el" href="dir_9db4aabfa12fb2197f4b553e7ea8deed.html">isundil</a></li><li class="navelem"><a class="el" href="dir_1a6cb19e8504dda728b9574aa47fdf34.html">Project</a></li><li class="navelem"><a class="el" href="dir_f8738126562420a628a94e1d7172443f.html">ecom</a></li><li class="navelem"><a class="el" href="dir_fc33a2a7f6da4d78118e1e23a8f17b51.html">core</a></li><li class="navelem"><a class="el" href="dir_abafa4404983cd6580846ba76a33a52a.html">exceptions</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">Error404.php</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_error404_8php.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;&lt;?php</div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;</div>
+<div class="line"><a name="l00003"></a><span class="lineno"><a class="line" href="namespace_exception.html">    3</a></span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_exception.html">Exception</a>;</div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;</div>
+<div class="line"><a name="l00009"></a><span class="lineno"><a class="line" href="class_exception_1_1_error404.html">    9</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_exception_1_1_error404.html">Error404</a> <span class="keyword">extends</span> \Exception</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;{</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;}</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;</div>
+<div class="ttc" id="class_exception_1_1_error404_html"><div class="ttname"><a href="class_exception_1_1_error404.html">Exception\Error404</a></div><div class="ttdef"><b>Definition:</b> <a href="_error404_8php_source.html#l00009">Error404.php:9</a></div></div>
+<div class="ttc" id="namespace_exception_html"><div class="ttname"><a href="namespace_exception.html">Exception</a></div><div class="ttdef"><b>Definition:</b> <a href="_error404_8php_source.html#l00003">Error404.php:3</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:18 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

+ 117 - 0
doc/html/_hook_event_8php.html

@@ -0,0 +1,117 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: /home/isundil/Project/ecom/core/tools/HookEvent.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_75b82e7e4a5feb05200b9ad7adf06257.html">home</a></li><li class="navelem"><a class="el" href="dir_9db4aabfa12fb2197f4b553e7ea8deed.html">isundil</a></li><li class="navelem"><a class="el" href="dir_1a6cb19e8504dda728b9574aa47fdf34.html">Project</a></li><li class="navelem"><a class="el" href="dir_f8738126562420a628a94e1d7172443f.html">ecom</a></li><li class="navelem"><a class="el" href="dir_fc33a2a7f6da4d78118e1e23a8f17b51.html">core</a></li><li class="navelem"><a class="el" href="dir_c7e9cf21629ccd0940e4dcdbd0bc9b8a.html">tools</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<div class="title">HookEvent.php File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="_hook_event_8php_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_hook_event.html">HookEvent</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespace_tools"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespace_tools.html">Tools</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:19 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

+ 138 - 0
doc/html/_hook_event_8php_source.html

@@ -0,0 +1,138 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: /home/isundil/Project/ecom/core/tools/HookEvent.php Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_75b82e7e4a5feb05200b9ad7adf06257.html">home</a></li><li class="navelem"><a class="el" href="dir_9db4aabfa12fb2197f4b553e7ea8deed.html">isundil</a></li><li class="navelem"><a class="el" href="dir_1a6cb19e8504dda728b9574aa47fdf34.html">Project</a></li><li class="navelem"><a class="el" href="dir_f8738126562420a628a94e1d7172443f.html">ecom</a></li><li class="navelem"><a class="el" href="dir_fc33a2a7f6da4d78118e1e23a8f17b51.html">core</a></li><li class="navelem"><a class="el" href="dir_c7e9cf21629ccd0940e4dcdbd0bc9b8a.html">tools</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">HookEvent.php</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_hook_event_8php.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;&lt;?php</div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;</div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_tools.html">Tools</a>;</div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;</div>
+<div class="line"><a name="l00009"></a><span class="lineno"><a class="line" href="class_tools_1_1_hook_event.html">    9</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_tools_1_1_hook_event.html">HookEvent</a></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;{</div>
+<div class="line"><a name="l00016"></a><span class="lineno"><a class="line" href="class_tools_1_1_hook_event.html#a7c294642225a6c91f5d7932dde75c2ae">   16</a></span>&#160;    <span class="keyword">private</span> <a class="code" href="class_tools_1_1_hook_event.html#a7c294642225a6c91f5d7932dde75c2ae">$context</a>;</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"><a class="line" href="class_tools_1_1_hook_event.html#aea63c2ead484f541380a4be3a3de7da2">   23</a></span>&#160;    <span class="keyword">private</span> <a class="code" href="class_tools_1_1_hook_event.html#aea63c2ead484f541380a4be3a3de7da2">$hookName</a>;</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;</div>
+<div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="class_tools_1_1_hook_event.html#afe68e6fbe7acfbffc0af0c84a1996466">   30</a></span>&#160;    <span class="keyword">private</span> <a class="code" href="class_tools_1_1_hook_event.html#afe68e6fbe7acfbffc0af0c84a1996466">$params</a>;</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;</div>
+<div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="class_tools_1_1_hook_event.html#a5c11c5afa79de475e4b3760fcdbe82e3">   35</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_hook_event.html#a5c11c5afa79de475e4b3760fcdbe82e3">__construct</a>($hookName, $context, $params)</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;    {</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;        $this-&gt;context = $context;</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;        $this-&gt;hookName = $hookName;</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;        $this-&gt;params = $params;</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;    }</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;</div>
+<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="class_tools_1_1_hook_event.html#a4537dad3b44254124991341cc91b28fb">   45</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_hook_event.html#a4537dad3b44254124991341cc91b28fb">__get</a>($key)</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;    {</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;        <span class="keywordflow">switch</span> ($key)</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;        {</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;            <span class="keywordflow">case</span> <span class="stringliteral">&quot;hookName&quot;</span>: <span class="keywordflow">return</span> $this-&gt;hookName; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;            <span class="keywordflow">case</span> <span class="stringliteral">&quot;params&quot;</span>: <span class="keywordflow">return</span> $this-&gt;params; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;        }</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;        <span class="keywordflow">throw</span> new \Exception(<span class="stringliteral">&quot;Cannot access attribute {$key}&quot;</span>);</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;    }</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;}</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;</div>
+<div class="ttc" id="class_tools_1_1_hook_event_html_aea63c2ead484f541380a4be3a3de7da2"><div class="ttname"><a href="class_tools_1_1_hook_event.html#aea63c2ead484f541380a4be3a3de7da2">Tools\HookEvent\$hookName</a></div><div class="ttdeci">$hookName</div><div class="ttdef"><b>Definition:</b> <a href="_hook_event_8php_source.html#l00023">HookEvent.php:23</a></div></div>
+<div class="ttc" id="class_tools_1_1_hook_event_html_a4537dad3b44254124991341cc91b28fb"><div class="ttname"><a href="class_tools_1_1_hook_event.html#a4537dad3b44254124991341cc91b28fb">Tools\HookEvent\__get</a></div><div class="ttdeci">__get($key)</div><div class="ttdef"><b>Definition:</b> <a href="_hook_event_8php_source.html#l00045">HookEvent.php:45</a></div></div>
+<div class="ttc" id="class_tools_1_1_hook_event_html_a7c294642225a6c91f5d7932dde75c2ae"><div class="ttname"><a href="class_tools_1_1_hook_event.html#a7c294642225a6c91f5d7932dde75c2ae">Tools\HookEvent\$context</a></div><div class="ttdeci">$context</div><div class="ttdef"><b>Definition:</b> <a href="_hook_event_8php_source.html#l00016">HookEvent.php:16</a></div></div>
+<div class="ttc" id="class_tools_1_1_hook_event_html_afe68e6fbe7acfbffc0af0c84a1996466"><div class="ttname"><a href="class_tools_1_1_hook_event.html#afe68e6fbe7acfbffc0af0c84a1996466">Tools\HookEvent\$params</a></div><div class="ttdeci">$params</div><div class="ttdef"><b>Definition:</b> <a href="_hook_event_8php_source.html#l00030">HookEvent.php:30</a></div></div>
+<div class="ttc" id="class_tools_1_1_hook_event_html"><div class="ttname"><a href="class_tools_1_1_hook_event.html">Tools\HookEvent</a></div><div class="ttdef"><b>Definition:</b> <a href="_hook_event_8php_source.html#l00009">HookEvent.php:9</a></div></div>
+<div class="ttc" id="namespace_tools_html"><div class="ttname"><a href="namespace_tools.html">Tools</a></div><div class="ttdef"><b>Definition:</b> <a href="_a_controller_8php_source.html#l00003">AController.php:3</a></div></div>
+<div class="ttc" id="class_tools_1_1_hook_event_html_a5c11c5afa79de475e4b3760fcdbe82e3"><div class="ttname"><a href="class_tools_1_1_hook_event.html#a5c11c5afa79de475e4b3760fcdbe82e3">Tools\HookEvent\__construct</a></div><div class="ttdeci">__construct($hookName, $context, $params)</div><div class="ttdef"><b>Definition:</b> <a href="_hook_event_8php_source.html#l00035">HookEvent.php:35</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:19 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

+ 117 - 0
doc/html/_hooks_8php.html

@@ -0,0 +1,117 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: /home/isundil/Project/ecom/core/tools/Hooks.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_75b82e7e4a5feb05200b9ad7adf06257.html">home</a></li><li class="navelem"><a class="el" href="dir_9db4aabfa12fb2197f4b553e7ea8deed.html">isundil</a></li><li class="navelem"><a class="el" href="dir_1a6cb19e8504dda728b9574aa47fdf34.html">Project</a></li><li class="navelem"><a class="el" href="dir_f8738126562420a628a94e1d7172443f.html">ecom</a></li><li class="navelem"><a class="el" href="dir_fc33a2a7f6da4d78118e1e23a8f17b51.html">core</a></li><li class="navelem"><a class="el" href="dir_c7e9cf21629ccd0940e4dcdbd0bc9b8a.html">tools</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<div class="title">Hooks.php File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="_hooks_8php_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_hooks.html">Hooks</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespace_tools"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespace_tools.html">Tools</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:19 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

+ 182 - 0
doc/html/_hooks_8php_source.html

@@ -0,0 +1,182 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: /home/isundil/Project/ecom/core/tools/Hooks.php Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_75b82e7e4a5feb05200b9ad7adf06257.html">home</a></li><li class="navelem"><a class="el" href="dir_9db4aabfa12fb2197f4b553e7ea8deed.html">isundil</a></li><li class="navelem"><a class="el" href="dir_1a6cb19e8504dda728b9574aa47fdf34.html">Project</a></li><li class="navelem"><a class="el" href="dir_f8738126562420a628a94e1d7172443f.html">ecom</a></li><li class="navelem"><a class="el" href="dir_fc33a2a7f6da4d78118e1e23a8f17b51.html">core</a></li><li class="navelem"><a class="el" href="dir_c7e9cf21629ccd0940e4dcdbd0bc9b8a.html">tools</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">Hooks.php</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_hooks_8php.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;&lt;?php</div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;</div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_tools.html">Tools</a>;</div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;</div>
+<div class="line"><a name="l00008"></a><span class="lineno"><a class="line" href="class_tools_1_1_hooks.html">    8</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_tools_1_1_hooks.html">Hooks</a></div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;{</div>
+<div class="line"><a name="l00015"></a><span class="lineno"><a class="line" href="class_tools_1_1_hooks.html#a7c294642225a6c91f5d7932dde75c2ae">   15</a></span>&#160;    <span class="keyword">private</span> <a class="code" href="class_tools_1_1_hooks.html#a7c294642225a6c91f5d7932dde75c2ae">$context</a>;</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;</div>
+<div class="line"><a name="l00020"></a><span class="lineno"><a class="line" href="class_tools_1_1_hooks.html#a05aec88c3516c6db5da524fbcc673aff">   20</a></span>&#160;    <span class="keyword">private</span> <a class="code" href="class_tools_1_1_hooks.html#a05aec88c3516c6db5da524fbcc673aff">$hooks</a>;</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div>
+<div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="class_tools_1_1_hooks.html#a7e676775f276fe0a207276cdbfb984c8">   26</a></span>&#160;    <span class="keyword">private</span> <a class="code" href="class_tools_1_1_hooks.html#a7e676775f276fe0a207276cdbfb984c8">$currentHook</a>;</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;</div>
+<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="class_tools_1_1_hooks.html#a01955facbcef5c0159144d7209704be2">   36</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_hooks.html#a01955facbcef5c0159144d7209704be2">__construct</a>(&amp;$context)</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;    {</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;        $this-&gt;context = $context;</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;        $this-&gt;currentHook = array();</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;    }</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;</div>
+<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="class_tools_1_1_hooks.html#a708f58f8e895879111179ae63842d240">   49</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <span class="keyword">register</span>($module, $hookName)</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;    {</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;        <span class="keywordflow">if</span> (!\<a class="code" href="namespace_tools.html">Tools</a>\ModuleManager::isInstalling())</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;            <span class="keywordflow">throw</span> <span class="keyword">new</span> \<a class="code" href="namespace_exception.html">Exception</a>(<span class="stringliteral">&quot;You can only register hooks while installing&quot;</span>);</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;        <span class="comment">//TODO@2</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;    }</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;</div>
+<div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="class_tools_1_1_hooks.html#a8dc5debf6c33905af409438d26ed3916">   62</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_hooks.html#a8dc5debf6c33905af409438d26ed3916">trigger</a>($hookName, $params =null)</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;    {</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;        <span class="keywordflow">if</span> (empty($this-&gt;hooks[$hookName]))</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;            <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;        $hookEvent = <span class="keyword">new</span> <a class="code" href="class_tools_1_1_hook_event.html">HookEvent</a>($hookName, $this-&gt;context, $params);</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;        array_push($this-&gt;currentHook, $hookEvent);</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;        $result = 0;</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;        <span class="keywordflow">foreach</span> ($this-&gt;hooks[$hookName] as $module_id)</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;        {</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;            $module = $this-&gt;context-&gt;moduleManager-&gt;getModuleFromId($module_id);</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;            <span class="keywordflow">if</span> (!$module)</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;                <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;            $module-&gt;doAction($hookEvent);</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;            $result++;</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;        }</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;        array_pop($this-&gt;currentHook);</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;        <span class="keywordflow">return</span> $result;</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;    }</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;</div>
+<div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="class_tools_1_1_hooks.html#aa8a639e43502e64c10e92114c86d0d24">   86</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_hooks.html#aa8a639e43502e64c10e92114c86d0d24">isInHook</a>($hookName)</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;    {</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;        <span class="keywordflow">foreach</span> ($this-&gt;currentHook as $i)</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;            <span class="keywordflow">if</span> ($i-&gt;hookName == $hookName)</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;                <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;    }</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;</div>
+<div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="class_tools_1_1_hooks.html#adc040cf46ed4deda06079b3ad84ee792">   98</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_hooks.html#adc040cf46ed4deda06079b3ad84ee792">loadHooks</a>($hookEntities)</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;    {</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;        $this-&gt;hooks = array();</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;        <span class="keywordflow">foreach</span> ($hookEntities as $i)</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;            $this-&gt;hooks[$i-&gt;hookName][] = (int) $i-&gt;module_id;</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;    }</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;</div>
+<div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="class_tools_1_1_hooks.html#a4537dad3b44254124991341cc91b28fb">  108</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_hooks.html#a4537dad3b44254124991341cc91b28fb">__get</a>($key)</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;    {</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;        <span class="keywordflow">switch</span> ($key)</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;        {</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;            <span class="keywordflow">case</span> <span class="stringliteral">&quot;currentHook&quot;</span>: <span class="keywordflow">return</span> end($this-&gt;currentHook);</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;        }</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;        <span class="keywordflow">throw</span> new \Exception(<span class="stringliteral">&quot;Cannot access attribute {$key}&quot;</span>);</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;    }</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;}</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;</div>
+<div class="ttc" id="class_tools_1_1_hooks_html_a7e676775f276fe0a207276cdbfb984c8"><div class="ttname"><a href="class_tools_1_1_hooks.html#a7e676775f276fe0a207276cdbfb984c8">Tools\Hooks\$currentHook</a></div><div class="ttdeci">$currentHook</div><div class="ttdef"><b>Definition:</b> <a href="_hooks_8php_source.html#l00026">Hooks.php:26</a></div></div>
+<div class="ttc" id="class_tools_1_1_hooks_html_a01955facbcef5c0159144d7209704be2"><div class="ttname"><a href="class_tools_1_1_hooks.html#a01955facbcef5c0159144d7209704be2">Tools\Hooks\__construct</a></div><div class="ttdeci">__construct(&amp;$context)</div><div class="ttdef"><b>Definition:</b> <a href="_hooks_8php_source.html#l00036">Hooks.php:36</a></div></div>
+<div class="ttc" id="class_tools_1_1_hooks_html_a05aec88c3516c6db5da524fbcc673aff"><div class="ttname"><a href="class_tools_1_1_hooks.html#a05aec88c3516c6db5da524fbcc673aff">Tools\Hooks\$hooks</a></div><div class="ttdeci">$hooks</div><div class="ttdef"><b>Definition:</b> <a href="_hooks_8php_source.html#l00020">Hooks.php:20</a></div></div>
+<div class="ttc" id="class_tools_1_1_hooks_html_aa8a639e43502e64c10e92114c86d0d24"><div class="ttname"><a href="class_tools_1_1_hooks.html#aa8a639e43502e64c10e92114c86d0d24">Tools\Hooks\isInHook</a></div><div class="ttdeci">isInHook($hookName)</div><div class="ttdef"><b>Definition:</b> <a href="_hooks_8php_source.html#l00086">Hooks.php:86</a></div></div>
+<div class="ttc" id="namespace_exception_html"><div class="ttname"><a href="namespace_exception.html">Exception</a></div><div class="ttdef"><b>Definition:</b> <a href="_error404_8php_source.html#l00003">Error404.php:3</a></div></div>
+<div class="ttc" id="class_tools_1_1_hooks_html_a7c294642225a6c91f5d7932dde75c2ae"><div class="ttname"><a href="class_tools_1_1_hooks.html#a7c294642225a6c91f5d7932dde75c2ae">Tools\Hooks\$context</a></div><div class="ttdeci">$context</div><div class="ttdef"><b>Definition:</b> <a href="_hooks_8php_source.html#l00015">Hooks.php:15</a></div></div>
+<div class="ttc" id="class_tools_1_1_hooks_html_a4537dad3b44254124991341cc91b28fb"><div class="ttname"><a href="class_tools_1_1_hooks.html#a4537dad3b44254124991341cc91b28fb">Tools\Hooks\__get</a></div><div class="ttdeci">__get($key)</div><div class="ttdef"><b>Definition:</b> <a href="_hooks_8php_source.html#l00108">Hooks.php:108</a></div></div>
+<div class="ttc" id="class_tools_1_1_hook_event_html"><div class="ttname"><a href="class_tools_1_1_hook_event.html">Tools\HookEvent</a></div><div class="ttdef"><b>Definition:</b> <a href="_hook_event_8php_source.html#l00009">HookEvent.php:9</a></div></div>
+<div class="ttc" id="class_tools_1_1_hooks_html"><div class="ttname"><a href="class_tools_1_1_hooks.html">Tools\Hooks</a></div><div class="ttdef"><b>Definition:</b> <a href="_hooks_8php_source.html#l00008">Hooks.php:8</a></div></div>
+<div class="ttc" id="class_tools_1_1_hooks_html_adc040cf46ed4deda06079b3ad84ee792"><div class="ttname"><a href="class_tools_1_1_hooks.html#adc040cf46ed4deda06079b3ad84ee792">Tools\Hooks\loadHooks</a></div><div class="ttdeci">loadHooks($hookEntities)</div><div class="ttdef"><b>Definition:</b> <a href="_hooks_8php_source.html#l00098">Hooks.php:98</a></div></div>
+<div class="ttc" id="namespace_tools_html"><div class="ttname"><a href="namespace_tools.html">Tools</a></div><div class="ttdef"><b>Definition:</b> <a href="_a_controller_8php_source.html#l00003">AController.php:3</a></div></div>
+<div class="ttc" id="class_tools_1_1_hooks_html_a8dc5debf6c33905af409438d26ed3916"><div class="ttname"><a href="class_tools_1_1_hooks.html#a8dc5debf6c33905af409438d26ed3916">Tools\Hooks\trigger</a></div><div class="ttdeci">trigger($hookName, $params=null)</div><div class="ttdef"><b>Definition:</b> <a href="_hooks_8php_source.html#l00062">Hooks.php:62</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:19 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

+ 117 - 0
doc/html/_meta_8php.html

@@ -0,0 +1,117 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: /home/isundil/Project/ecom/core/models/Meta.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_75b82e7e4a5feb05200b9ad7adf06257.html">home</a></li><li class="navelem"><a class="el" href="dir_9db4aabfa12fb2197f4b553e7ea8deed.html">isundil</a></li><li class="navelem"><a class="el" href="dir_1a6cb19e8504dda728b9574aa47fdf34.html">Project</a></li><li class="navelem"><a class="el" href="dir_f8738126562420a628a94e1d7172443f.html">ecom</a></li><li class="navelem"><a class="el" href="dir_fc33a2a7f6da4d78118e1e23a8f17b51.html">core</a></li><li class="navelem"><a class="el" href="dir_4c7ccac51765411e64ed8afa1459e892.html">models</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<div class="title">Meta.php File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="_meta_8php_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_meta.html">Meta</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespace_entity"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespace_entity.html">Entity</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:19 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

+ 153 - 0
doc/html/_meta_8php_source.html

@@ -0,0 +1,153 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: /home/isundil/Project/ecom/core/models/Meta.php Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_75b82e7e4a5feb05200b9ad7adf06257.html">home</a></li><li class="navelem"><a class="el" href="dir_9db4aabfa12fb2197f4b553e7ea8deed.html">isundil</a></li><li class="navelem"><a class="el" href="dir_1a6cb19e8504dda728b9574aa47fdf34.html">Project</a></li><li class="navelem"><a class="el" href="dir_f8738126562420a628a94e1d7172443f.html">ecom</a></li><li class="navelem"><a class="el" href="dir_fc33a2a7f6da4d78118e1e23a8f17b51.html">core</a></li><li class="navelem"><a class="el" href="dir_4c7ccac51765411e64ed8afa1459e892.html">models</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">Meta.php</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_meta_8php.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;&lt;?php</div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;</div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_entity.html">Entity</a>;</div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;</div>
+<div class="line"><a name="l00005"></a><span class="lineno"><a class="line" href="class_entity_1_1_meta.html">    5</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_entity_1_1_meta.html">Meta</a> <span class="keyword">extends</span> <a class="code" href="class_entity_1_1_model_base.html">ModelBase</a></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;{</div>
+<div class="line"><a name="l00007"></a><span class="lineno"><a class="line" href="class_entity_1_1_meta.html#a74ed34e6d7bc9f3f8c4fb58a12247ee2">    7</a></span>&#160;    <span class="keyword">private</span> <a class="code" href="class_entity_1_1_meta.html#a74ed34e6d7bc9f3f8c4fb58a12247ee2">$entity</a>;</div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;</div>
+<div class="line"><a name="l00009"></a><span class="lineno"><a class="line" href="class_entity_1_1_meta.html#aa966adc12c56a4cc70da92207fa50929">    9</a></span>&#160;    <span class="keyword">protected</span> <span class="keyword">function</span> <a class="code" href="class_entity_1_1_meta.html#aa966adc12c56a4cc70da92207fa50929">install</a>()</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;    {</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;        $dbPrefix = $this-&gt;getDbPrefix();</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;        $result = self::$dbo-&gt;exec(<span class="stringliteral">&quot;CREATE TABLE IF NOT EXISTS `{$dbPrefix}meta` (</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="stringliteral">            `entity_id` INTEGER(11) UNSIGNED NOT NULL,</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="stringliteral">            `entityType` VARCHAR(32) NOT NULL,</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="stringliteral">            `lang` VARCHAR(8) NULL,</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="stringliteral">            `key` VARCHAR(64) NOT NULL,</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="stringliteral">            `value` TEXT NULL,</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="stringliteral">            UNIQUE(`entity_id`, `entityType`, `lang`)</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="stringliteral">        )&quot;</span>);</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;        <span class="keywordflow">if</span> ($result === <span class="keyword">false</span>)</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;            <span class="keywordflow">throw</span> new \Exception(get_class().<span class="stringliteral">&quot;: &quot;</span>.self::$dbo-&gt;errorInfo()[2]);</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;    }</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;</div>
+<div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="class_entity_1_1_meta.html#a4537dad3b44254124991341cc91b28fb">   25</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_entity_1_1_meta.html#a4537dad3b44254124991341cc91b28fb">__get</a>($key)</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;    {</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;        <span class="keywordflow">if</span> ($key == <span class="stringliteral">&quot;entity&quot;</span>)</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;            <span class="keywordflow">return</span> $this-&gt;entity;</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;        <span class="keywordflow">return</span> parent::__get($key);</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;    }</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;</div>
+<div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="class_entity_1_1_meta.html#a79b36d71c6f1d4f9e6c4c3e34c081456">   32</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_entity_1_1_meta.html#a79b36d71c6f1d4f9e6c4c3e34c081456">__set</a>($key, $value)</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;    {</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;        <span class="keywordflow">if</span> ($key == <span class="stringliteral">&quot;entity&quot;</span>)</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;        {</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;            parent::__set(<span class="stringliteral">&quot;entityId&quot;</span>, $value-&gt;id);</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;            parent::__set(<span class="stringliteral">&quot;entityType&quot;</span>, get_class($value));</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;            <span class="keywordflow">return</span> $value;</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;        }</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> ($key == <span class="stringliteral">&quot;entityId&quot;</span> || $key == <span class="stringliteral">&quot;entityType&quot;</span>)</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;            <span class="keywordflow">throw</span> new \Exception(<span class="stringliteral">&quot;Cannot access private field {$key}&quot;</span>);</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;        <span class="keywordflow">return</span> parent::__set($key, $value);</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;    }</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;}</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;</div>
+<div class="ttc" id="class_entity_1_1_meta_html"><div class="ttname"><a href="class_entity_1_1_meta.html">Entity\Meta</a></div><div class="ttdef"><b>Definition:</b> <a href="_meta_8php_source.html#l00005">Meta.php:5</a></div></div>
+<div class="ttc" id="namespace_entity_html"><div class="ttname"><a href="namespace_entity.html">Entity</a></div><div class="ttdef"><b>Definition:</b> <a href="_address_8php_source.html#l00003">Address.php:3</a></div></div>
+<div class="ttc" id="class_entity_1_1_meta_html_a74ed34e6d7bc9f3f8c4fb58a12247ee2"><div class="ttname"><a href="class_entity_1_1_meta.html#a74ed34e6d7bc9f3f8c4fb58a12247ee2">Entity\Meta\$entity</a></div><div class="ttdeci">$entity</div><div class="ttdef"><b>Definition:</b> <a href="_meta_8php_source.html#l00007">Meta.php:7</a></div></div>
+<div class="ttc" id="class_entity_1_1_meta_html_aa966adc12c56a4cc70da92207fa50929"><div class="ttname"><a href="class_entity_1_1_meta.html#aa966adc12c56a4cc70da92207fa50929">Entity\Meta\install</a></div><div class="ttdeci">install()</div><div class="ttdef"><b>Definition:</b> <a href="_meta_8php_source.html#l00009">Meta.php:9</a></div></div>
+<div class="ttc" id="class_entity_1_1_meta_html_a4537dad3b44254124991341cc91b28fb"><div class="ttname"><a href="class_entity_1_1_meta.html#a4537dad3b44254124991341cc91b28fb">Entity\Meta\__get</a></div><div class="ttdeci">__get($key)</div><div class="ttdef"><b>Definition:</b> <a href="_meta_8php_source.html#l00025">Meta.php:25</a></div></div>
+<div class="ttc" id="class_entity_1_1_meta_html_a79b36d71c6f1d4f9e6c4c3e34c081456"><div class="ttname"><a href="class_entity_1_1_meta.html#a79b36d71c6f1d4f9e6c4c3e34c081456">Entity\Meta\__set</a></div><div class="ttdeci">__set($key, $value)</div><div class="ttdef"><b>Definition:</b> <a href="_meta_8php_source.html#l00032">Meta.php:32</a></div></div>
+<div class="ttc" id="class_entity_1_1_model_base_html"><div class="ttname"><a href="class_entity_1_1_model_base.html">Entity\ModelBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_model_base_8php_source.html#l00005">ModelBase.php:5</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:19 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

+ 117 - 0
doc/html/_model_base_8php.html

@@ -0,0 +1,117 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: /home/isundil/Project/ecom/core/models/ModelBase.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_75b82e7e4a5feb05200b9ad7adf06257.html">home</a></li><li class="navelem"><a class="el" href="dir_9db4aabfa12fb2197f4b553e7ea8deed.html">isundil</a></li><li class="navelem"><a class="el" href="dir_1a6cb19e8504dda728b9574aa47fdf34.html">Project</a></li><li class="navelem"><a class="el" href="dir_f8738126562420a628a94e1d7172443f.html">ecom</a></li><li class="navelem"><a class="el" href="dir_fc33a2a7f6da4d78118e1e23a8f17b51.html">core</a></li><li class="navelem"><a class="el" href="dir_4c7ccac51765411e64ed8afa1459e892.html">models</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<div class="title">ModelBase.php File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="_model_base_8php_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html">ModelBase</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespace_entity"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespace_entity.html">Entity</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:19 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

+ 334 - 0
doc/html/_model_base_8php_source.html

@@ -0,0 +1,334 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: /home/isundil/Project/ecom/core/models/ModelBase.php Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_75b82e7e4a5feb05200b9ad7adf06257.html">home</a></li><li class="navelem"><a class="el" href="dir_9db4aabfa12fb2197f4b553e7ea8deed.html">isundil</a></li><li class="navelem"><a class="el" href="dir_1a6cb19e8504dda728b9574aa47fdf34.html">Project</a></li><li class="navelem"><a class="el" href="dir_f8738126562420a628a94e1d7172443f.html">ecom</a></li><li class="navelem"><a class="el" href="dir_fc33a2a7f6da4d78118e1e23a8f17b51.html">core</a></li><li class="navelem"><a class="el" href="dir_4c7ccac51765411e64ed8afa1459e892.html">models</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">ModelBase.php</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_model_base_8php.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;&lt;?php</div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;</div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_entity.html">Entity</a>;</div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;</div>
+<div class="line"><a name="l00005"></a><span class="lineno"><a class="line" href="class_entity_1_1_model_base.html">    5</a></span>&#160;<span class="keyword">abstract</span> <span class="keyword">class </span><a class="code" href="class_entity_1_1_model_base.html">ModelBase</a></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;{</div>
+<div class="line"><a name="l00007"></a><span class="lineno"><a class="line" href="class_entity_1_1_model_base.html#a80d18e0e9e33f8cee4f1c4871f1283a4">    7</a></span>&#160;    <span class="keyword">private</span> $fieldsValues = array();</div>
+<div class="line"><a name="l00008"></a><span class="lineno"><a class="line" href="class_entity_1_1_model_base.html#a7dcb5614ba1a7c7cd9379bdef91bd8d3">    8</a></span>&#160;    <span class="keyword">protected</span> <span class="keyword">static</span> $dbo = null;</div>
+<div class="line"><a name="l00009"></a><span class="lineno"><a class="line" href="class_entity_1_1_model_base.html#ab060006d1221e5e476126476b921ad54">    9</a></span>&#160;    <span class="keyword">private</span> $changed = array();</div>
+<div class="line"><a name="l00010"></a><span class="lineno"><a class="line" href="class_entity_1_1_model_base.html#a49c7011be9c979d9174c52a8b83e5d8e">   10</a></span>&#160;    <span class="keyword">private</span> <span class="keyword">static</span> $config = null;</div>
+<div class="line"><a name="l00011"></a><span class="lineno"><a class="line" href="class_entity_1_1_model_base.html#ae97941710d863131c700f069b109991e">   11</a></span>&#160;    <span class="keyword">private</span> <a class="code" href="class_entity_1_1_model_base.html#ae97941710d863131c700f069b109991e">$id</a>;</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;    <span class="keyword">protected</span> <span class="keyword">abstract</span> <span class="keyword">function</span> install();</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;</div>
+<div class="line"><a name="l00015"></a><span class="lineno"><a class="line" href="class_entity_1_1_model_base.html#abbda66c832a371bc9b6ec05cb8734efc">   15</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_entity_1_1_model_base.html#abbda66c832a371bc9b6ec05cb8734efc">__construct</a>($id = null)</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;    {</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;        self::init();</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;        $this-&gt;<span class="keywordtype">id</span> = null;</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;        <span class="keywordflow">if</span> ($id !== null &amp;&amp; is_numeric($id))</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;            $this-&gt;selectById($id);</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;    }</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"><a class="line" href="class_entity_1_1_model_base.html#a9f0be6ae273d3669e11c29910a0be338">   23</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">function</span> <a class="code" href="class_entity_1_1_model_base.html#a9f0be6ae273d3669e11c29910a0be338">init</a>()</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;    {</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;        <span class="keywordflow">if</span> (self::$dbo !== null)</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;        self::$config = @include(<span class="stringliteral">&quot;core/config.inc.php&quot;</span>);</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;        <span class="keywordflow">if</span> (empty(self::$config))</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;        self::$dbo = new \PDO(self::$config[0], self::$config[1], self::$config[2]);</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;    }</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div>
+<div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="class_entity_1_1_model_base.html#a8f625fd84b76c94749c8b1c992ef85ed">   34</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">function</span> <a class="code" href="class_entity_1_1_model_base.html#a8f625fd84b76c94749c8b1c992ef85ed">getDbPrefix</a>()</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;    {</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;        <span class="keywordflow">return</span> self::$config[3];</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;    }</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;</div>
+<div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="class_entity_1_1_model_base.html#a93566f2c8d709d410ae8ec46b813999b">   39</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_entity_1_1_model_base.html#a93566f2c8d709d410ae8ec46b813999b">getTableName</a>()</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;    {</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;        $className = new \ReflectionClass($this);</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;        <span class="keywordflow">return</span> $this-&gt;getDbPrefix().strtolower($className-&gt;getShortName());</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;    }</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;</div>
+<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="class_entity_1_1_model_base.html#ae59aa0f62b893798e267e842e0d10228">   45</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">function</span> <a class="code" href="class_entity_1_1_model_base.html#ae59aa0f62b893798e267e842e0d10228">setup</a>()</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;    {</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;        $tables = array(<span class="stringliteral">&quot;Admin&quot;</span>, <span class="stringliteral">&quot;User&quot;</span>, <span class="stringliteral">&quot;Address&quot;</span>, <span class="stringliteral">&quot;Cart&quot;</span>, <span class="stringliteral">&quot;Category&quot;</span>, <span class="stringliteral">&quot;Product&quot;</span>, <span class="stringliteral">&quot;CartProduct&quot;</span>, <span class="stringliteral">&quot;Meta&quot;</span>, <span class="stringliteral">&quot;Cms&quot;</span>, <span class="stringliteral">&quot;Config&quot;</span>, <span class="stringliteral">&quot;Module&quot;</span>, <span class="stringliteral">&quot;ModuleHook&quot;</span>);</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;        self::init();</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;        self::$dbo-&gt;beginTransaction();</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;        <span class="keywordflow">try</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;        {</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;            <span class="keywordflow">foreach</span> ($tables as $i)</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;            {</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;                $i = <span class="stringliteral">&quot;Entity\\&quot;</span>.$i;</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;                $table = <span class="keyword">new</span> $i();</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;                <span class="keywordflow">if</span> ($table-&gt;install() != <span class="keyword">true</span>)</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;                    <span class="keywordflow">throw</span> <span class="keyword">new</span> \<a class="code" href="namespace_exception.html">Exception</a>();</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;            }</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;        }</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;        <span class="keywordflow">catch</span> (\<a class="code" href="namespace_exception.html">Exception</a> $e)</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;        {</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;            echo $e-&gt;getMessage();</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;            self::$dbo-&gt;rollBack();</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;        }</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;        self::$dbo-&gt;commit();</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    }</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;</div>
+<div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="class_entity_1_1_model_base.html#abcae69e19426269fa17be92decfce7fd">   71</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_entity_1_1_model_base.html#abcae69e19426269fa17be92decfce7fd">getMeta</a>($lang=null)</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;    {</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;        $fetcher = new \Entity\Meta();</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;        <span class="keywordflow">return</span> $fetcher-&gt;query(array(<span class="stringliteral">&quot;type&quot;</span> =&gt; get_class()));</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;    }</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;</div>
+<div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="class_entity_1_1_model_base.html#a4537dad3b44254124991341cc91b28fb">   77</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_entity_1_1_model_base.html#a4537dad3b44254124991341cc91b28fb">__get</a>($key)</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;    {</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;        <span class="keywordflow">if</span> ($key == <span class="stringliteral">&quot;meta&quot;</span>)</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;            <span class="keywordflow">return</span> $this-&gt;getMeta();</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;        <span class="keywordflow">if</span> ($key == <span class="stringliteral">&quot;id&quot;</span>)</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;            <span class="keywordflow">return</span> $this-&gt;id;</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;        <span class="keywordflow">if</span> (!isset($this-&gt;fieldsValues[$key]))</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;            <span class="keywordflow">return</span> null;</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;        <span class="keywordflow">return</span> $this-&gt;fieldsValues[$key];</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;    }</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;</div>
+<div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="class_entity_1_1_model_base.html#a79b36d71c6f1d4f9e6c4c3e34c081456">   88</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_entity_1_1_model_base.html#a79b36d71c6f1d4f9e6c4c3e34c081456">__set</a>($key, $value)</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;    {</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;        <span class="keywordflow">if</span> ($value instanceof \DateTime)</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;            $value = $value-&gt;format(<span class="stringliteral">&quot;Y-m-d&quot;</span>);</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;        $this-&gt;fieldsValues[$key] = $value;</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;        <span class="keywordflow">if</span> (is_bool($value))</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;            $this-&gt;changed[$key] = $value ? 1 : 0;</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;        <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;            $this-&gt;changed[$key] = self::$dbo-&gt;quote($value);</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;        <span class="keywordflow">return</span> $value;</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;    }</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;</div>
+<div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="class_entity_1_1_model_base.html#afc8a3c62679cf00ade9f15fb2a6d6132">  100</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_entity_1_1_model_base.html#afc8a3c62679cf00ade9f15fb2a6d6132">save</a>()</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;    {</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;        <a class="code" href="class_tools_1_1_hooks.html#a8dc5debf6c33905af409438d26ed3916">\Tools\Hooks::trigger</a>(<span class="stringliteral">&quot;onBeforeEntitySave&quot;</span>);</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;        <a class="code" href="class_tools_1_1_hooks.html#a8dc5debf6c33905af409438d26ed3916">\Tools\Hooks::trigger</a>(<span class="stringliteral">&quot;onBeforeEntitySave&quot;</span>.$this-&gt;getTableName());</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;        <span class="keywordflow">if</span> ($this-&gt;<span class="keywordtype">id</span> === null)</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;        {</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;            <span class="keywordflow">if</span> (empty ($this-&gt;changed))</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;            {</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;                $query = <span class="stringliteral">&quot;INSERT INTO `{$this-&gt;getTableName()}` () VALUES ()&quot;</span>;</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;                $result = self::$dbo-&gt;exec($query);</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;                <span class="keywordflow">if</span> (!$result)</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;                    <span class="keywordflow">throw</span> new \Exception(self::$dbo-&gt;errorInfo()[2]);</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;            }</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;            <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;            {</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;                $query = <span class="stringliteral">&quot;INSERT INTO `{$this-&gt;getTableName()}` (`&quot;</span> .implode(<span class="stringliteral">&quot;`,`&quot;</span>, array_keys($this-&gt;changed)) . <span class="stringliteral">&quot;`) VALUES (&quot;</span> . implode(<span class="stringliteral">&quot;,&quot;</span>, $this-&gt;changed) . <span class="stringliteral">&quot;)&quot;</span>;</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;                $result = self::$dbo-&gt;exec($query);</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;                <span class="keywordflow">if</span> (!$result)</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;                    <span class="keywordflow">throw</span> new \Exception(self::$dbo-&gt;errorInfo()[2]);</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;                $this-&gt;changed = array();</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;            }</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;            $this-&gt;<span class="keywordtype">id</span> = self::$dbo-&gt;lastInsertId();</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;        }</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;        <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;        {</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;            <span class="keywordflow">if</span> (!empty($this-&gt;changed))</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;            {</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;                <span class="keywordflow">if</span> ($this-&gt;<span class="keywordtype">id</span> === <span class="keyword">false</span>)</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;                    <span class="keywordflow">throw</span> new \Exception(<span class="stringliteral">&quot;Cannot update private row&quot;</span>);</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;                $query = <span class="stringliteral">&quot;UPDATE {$this-&gt;getTableName()} SET &quot;</span>;</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;                $newValues = array();</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;                <span class="keywordflow">foreach</span> ($this-&gt;changed as $i =&gt; $j)</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;                    $newValues[] = <span class="stringliteral">&quot;`{$i}`=&quot;</span> . self::$dbo-&gt;quote($j);</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;                $query .= implode(<span class="stringliteral">&quot;,&quot;</span>,$newValues).<span class="stringliteral">&quot; WHERE id={$this-&gt;id}&quot;</span>;</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;                $result = self::$dbo-&gt;exec($query);</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;                <span class="keywordflow">if</span> (!$result)</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;                    <span class="keywordflow">throw</span> new \Exception(self::$dbo-&gt;errorInfo()[2]);</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;                $this-&gt;changed = array();</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;            }</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;        }</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;        <a class="code" href="class_tools_1_1_hooks.html#a8dc5debf6c33905af409438d26ed3916">\Tools\Hooks::trigger</a>(<span class="stringliteral">&quot;onAfterEntitySave&quot;</span>);</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;        <a class="code" href="class_tools_1_1_hooks.html#a8dc5debf6c33905af409438d26ed3916">\Tools\Hooks::trigger</a>(<span class="stringliteral">&quot;onAfterEntitySave&quot;</span>.$this-&gt;getTableName());</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;    }</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;</div>
+<div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="class_entity_1_1_model_base.html#a224e7fc70ae3e2646cd1167f72628ac2">  144</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_entity_1_1_model_base.html#a224e7fc70ae3e2646cd1167f72628ac2">selects</a>($criteria = null, $orderBy = null)</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;    {</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;        $query = <span class="stringliteral">&quot;SELECT * FROM {$this-&gt;getTableName()}&quot;</span>;</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;        <span class="keywordflow">if</span> (!empty($criteria))</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;        {</div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;            $subQuery = array();</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;            <span class="keywordflow">foreach</span> ($criteria as $i =&gt; $j)</div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;            {</div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;                <span class="keywordflow">if</span> ($j == null)</div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;                    $subQuery[] = <span class="stringliteral">&quot;`{$i}` IS NULL&quot;</span>;</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;                <span class="keywordflow">else</span> <span class="keywordflow">if</span> (is_array($j))</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;                {</div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;                    $inArray = [];</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;                    <span class="keywordflow">foreach</span> ($j as $k)</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;                        $inArray[] = self::$dbo-&gt;quote($k);</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;                    $subQuery[] = <span class="stringliteral">&quot;`{$i}` IN (&quot;</span>.implode(<span class="stringliteral">&quot;,&quot;</span>, $inArray).<span class="stringliteral">&quot;)&quot;</span>;</div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;                }</div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;                <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;                    $subQuery[] = <span class="stringliteral">&quot;`{$i}`=&quot;</span>.self::$dbo-&gt;quote($j);</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;            }</div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;            $query .= <span class="stringliteral">&quot; WHERE &quot;</span>.implode(<span class="stringliteral">&quot; AND &quot;</span>, $subQuery);</div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;        }</div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;        <span class="keywordflow">if</span> (!empty($orderBy))</div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;        {</div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;            $_orderBy = array();</div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;            <span class="keywordflow">foreach</span> ($orderBy as $i =&gt; $j)</div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;            {</div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;                <span class="keywordflow">if</span> (is_numeric($i))</div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;                    $_orderBy[] = <span class="stringliteral">&quot;`{$j}` ASC&quot;</span>;</div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;                <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;                {</div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;                    $orderType = <span class="stringliteral">&quot;ASC&quot;</span>;</div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;                    <span class="keywordflow">if</span> (strtoupper($j == <span class="stringliteral">&quot;DESC&quot;</span>))</div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;                        $orderType = <span class="stringliteral">&quot;DESC&quot;</span>;</div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;                    $_orderBy[] = <span class="stringliteral">&quot;`{$i}` {$orderType}&quot;</span>;</div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;                }</div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;            }</div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;            $query .= <span class="stringliteral">&quot; ORDER BY &quot;</span>.implode(<span class="stringliteral">&quot;,&quot;</span>, $_orderBy);</div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;        }</div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;        $result = self::$dbo-&gt;query($query, \PDO::FETCH_ASSOC);</div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;        <span class="keywordflow">if</span> ($result === <span class="keyword">false</span>)</div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;            <span class="keywordflow">throw</span> new \Exception(self::$dbo-&gt;errorInfo()[2]);</div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;        $resultObj = array();</div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;        $className = get_class($this);</div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;        <span class="keywordflow">foreach</span> ($result as $i)</div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;        {</div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;            $iObj = <span class="keyword">new</span> $className();</div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;            $iObj-&gt;populate($i);</div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;            $resultObj[] = $iObj;</div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;        }</div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;        <span class="keywordflow">return</span> $resultObj;</div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;    }</div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;</div>
+<div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="class_entity_1_1_model_base.html#a20020d3878c4bc983b90ba193c6f43a3">  198</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_entity_1_1_model_base.html#a20020d3878c4bc983b90ba193c6f43a3">selectById</a>($id)</div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;    {</div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;        $query = <span class="stringliteral">&quot;SELECT * FROM {$this-&gt;getTableName()} WHERE id=&quot;</span>.(int)$id.<span class="stringliteral">&quot; LIMIT 1&quot;</span>;</div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;        $result = self::$dbo-&gt;query($query, \PDO::FETCH_ASSOC);</div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;        <span class="keywordflow">if</span> ($result === <span class="keyword">false</span>)</div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;            <span class="keywordflow">throw</span> new \Exception(<span class="stringliteral">&quot;Cannot fetch data: &quot;</span>.self::$dbo-&gt;errorInfo()[2]);</div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;        $this-&gt;populate($result);</div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;    }</div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;</div>
+<div class="line"><a name="l00207"></a><span class="lineno"><a class="line" href="class_entity_1_1_model_base.html#a70391280402677bbb9cb6616fb9376fb">  207</a></span>&#160;    <span class="keyword">private</span> <span class="keyword">function</span> <a class="code" href="class_entity_1_1_model_base.html#a70391280402677bbb9cb6616fb9376fb">populate</a>($data)</div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;    {</div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;        $this-&gt;<span class="keywordtype">id</span> = FALSE;</div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;        <span class="keywordflow">foreach</span> ($data as $i =&gt; $j)</div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;            $this-&gt;fieldsValues[$i] = $j;</div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;        <span class="keywordflow">if</span> (isset($data[<span class="stringliteral">&quot;id&quot;</span>]))</div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;            $this-&gt;<span class="keywordtype">id</span> = (int) $data[<span class="stringliteral">&quot;id&quot;</span>];</div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;    }</div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;}</div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;</div>
+<div class="ttc" id="class_entity_1_1_model_base_html_a9f0be6ae273d3669e11c29910a0be338"><div class="ttname"><a href="class_entity_1_1_model_base.html#a9f0be6ae273d3669e11c29910a0be338">Entity\ModelBase\init</a></div><div class="ttdeci">static init()</div><div class="ttdef"><b>Definition:</b> <a href="_model_base_8php_source.html#l00023">ModelBase.php:23</a></div></div>
+<div class="ttc" id="class_entity_1_1_model_base_html_ae97941710d863131c700f069b109991e"><div class="ttname"><a href="class_entity_1_1_model_base.html#ae97941710d863131c700f069b109991e">Entity\ModelBase\$id</a></div><div class="ttdeci">$id</div><div class="ttdef"><b>Definition:</b> <a href="_model_base_8php_source.html#l00011">ModelBase.php:11</a></div></div>
+<div class="ttc" id="namespace_entity_html"><div class="ttname"><a href="namespace_entity.html">Entity</a></div><div class="ttdef"><b>Definition:</b> <a href="_address_8php_source.html#l00003">Address.php:3</a></div></div>
+<div class="ttc" id="class_entity_1_1_model_base_html_a224e7fc70ae3e2646cd1167f72628ac2"><div class="ttname"><a href="class_entity_1_1_model_base.html#a224e7fc70ae3e2646cd1167f72628ac2">Entity\ModelBase\selects</a></div><div class="ttdeci">selects($criteria=null, $orderBy=null)</div><div class="ttdef"><b>Definition:</b> <a href="_model_base_8php_source.html#l00144">ModelBase.php:144</a></div></div>
+<div class="ttc" id="namespace_exception_html"><div class="ttname"><a href="namespace_exception.html">Exception</a></div><div class="ttdef"><b>Definition:</b> <a href="_error404_8php_source.html#l00003">Error404.php:3</a></div></div>
+<div class="ttc" id="class_entity_1_1_model_base_html_abcae69e19426269fa17be92decfce7fd"><div class="ttname"><a href="class_entity_1_1_model_base.html#abcae69e19426269fa17be92decfce7fd">Entity\ModelBase\getMeta</a></div><div class="ttdeci">getMeta($lang=null)</div><div class="ttdef"><b>Definition:</b> <a href="_model_base_8php_source.html#l00071">ModelBase.php:71</a></div></div>
+<div class="ttc" id="class_entity_1_1_model_base_html_a79b36d71c6f1d4f9e6c4c3e34c081456"><div class="ttname"><a href="class_entity_1_1_model_base.html#a79b36d71c6f1d4f9e6c4c3e34c081456">Entity\ModelBase\__set</a></div><div class="ttdeci">__set($key, $value)</div><div class="ttdef"><b>Definition:</b> <a href="_model_base_8php_source.html#l00088">ModelBase.php:88</a></div></div>
+<div class="ttc" id="class_entity_1_1_model_base_html_a8f625fd84b76c94749c8b1c992ef85ed"><div class="ttname"><a href="class_entity_1_1_model_base.html#a8f625fd84b76c94749c8b1c992ef85ed">Entity\ModelBase\getDbPrefix</a></div><div class="ttdeci">static getDbPrefix()</div><div class="ttdef"><b>Definition:</b> <a href="_model_base_8php_source.html#l00034">ModelBase.php:34</a></div></div>
+<div class="ttc" id="class_entity_1_1_model_base_html_a20020d3878c4bc983b90ba193c6f43a3"><div class="ttname"><a href="class_entity_1_1_model_base.html#a20020d3878c4bc983b90ba193c6f43a3">Entity\ModelBase\selectById</a></div><div class="ttdeci">selectById($id)</div><div class="ttdef"><b>Definition:</b> <a href="_model_base_8php_source.html#l00198">ModelBase.php:198</a></div></div>
+<div class="ttc" id="class_entity_1_1_model_base_html_a4537dad3b44254124991341cc91b28fb"><div class="ttname"><a href="class_entity_1_1_model_base.html#a4537dad3b44254124991341cc91b28fb">Entity\ModelBase\__get</a></div><div class="ttdeci">__get($key)</div><div class="ttdef"><b>Definition:</b> <a href="_model_base_8php_source.html#l00077">ModelBase.php:77</a></div></div>
+<div class="ttc" id="class_entity_1_1_model_base_html"><div class="ttname"><a href="class_entity_1_1_model_base.html">Entity\ModelBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_model_base_8php_source.html#l00005">ModelBase.php:5</a></div></div>
+<div class="ttc" id="class_entity_1_1_model_base_html_abbda66c832a371bc9b6ec05cb8734efc"><div class="ttname"><a href="class_entity_1_1_model_base.html#abbda66c832a371bc9b6ec05cb8734efc">Entity\ModelBase\__construct</a></div><div class="ttdeci">__construct($id=null)</div><div class="ttdef"><b>Definition:</b> <a href="_model_base_8php_source.html#l00015">ModelBase.php:15</a></div></div>
+<div class="ttc" id="class_entity_1_1_model_base_html_ae59aa0f62b893798e267e842e0d10228"><div class="ttname"><a href="class_entity_1_1_model_base.html#ae59aa0f62b893798e267e842e0d10228">Entity\ModelBase\setup</a></div><div class="ttdeci">static setup()</div><div class="ttdef"><b>Definition:</b> <a href="_model_base_8php_source.html#l00045">ModelBase.php:45</a></div></div>
+<div class="ttc" id="class_entity_1_1_model_base_html_afc8a3c62679cf00ade9f15fb2a6d6132"><div class="ttname"><a href="class_entity_1_1_model_base.html#afc8a3c62679cf00ade9f15fb2a6d6132">Entity\ModelBase\save</a></div><div class="ttdeci">save()</div><div class="ttdef"><b>Definition:</b> <a href="_model_base_8php_source.html#l00100">ModelBase.php:100</a></div></div>
+<div class="ttc" id="class_tools_1_1_hooks_html_a8dc5debf6c33905af409438d26ed3916"><div class="ttname"><a href="class_tools_1_1_hooks.html#a8dc5debf6c33905af409438d26ed3916">Tools\Hooks\trigger</a></div><div class="ttdeci">trigger($hookName, $params=null)</div><div class="ttdef"><b>Definition:</b> <a href="_hooks_8php_source.html#l00062">Hooks.php:62</a></div></div>
+<div class="ttc" id="class_entity_1_1_model_base_html_a93566f2c8d709d410ae8ec46b813999b"><div class="ttname"><a href="class_entity_1_1_model_base.html#a93566f2c8d709d410ae8ec46b813999b">Entity\ModelBase\getTableName</a></div><div class="ttdeci">getTableName()</div><div class="ttdef"><b>Definition:</b> <a href="_model_base_8php_source.html#l00039">ModelBase.php:39</a></div></div>
+<div class="ttc" id="class_entity_1_1_model_base_html_a70391280402677bbb9cb6616fb9376fb"><div class="ttname"><a href="class_entity_1_1_model_base.html#a70391280402677bbb9cb6616fb9376fb">Entity\ModelBase\populate</a></div><div class="ttdeci">populate($data)</div><div class="ttdef"><b>Definition:</b> <a href="_model_base_8php_source.html#l00207">ModelBase.php:207</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:19 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

+ 117 - 0
doc/html/_module_8php.html

@@ -0,0 +1,117 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: /home/isundil/Project/ecom/core/models/Module.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_75b82e7e4a5feb05200b9ad7adf06257.html">home</a></li><li class="navelem"><a class="el" href="dir_9db4aabfa12fb2197f4b553e7ea8deed.html">isundil</a></li><li class="navelem"><a class="el" href="dir_1a6cb19e8504dda728b9574aa47fdf34.html">Project</a></li><li class="navelem"><a class="el" href="dir_f8738126562420a628a94e1d7172443f.html">ecom</a></li><li class="navelem"><a class="el" href="dir_fc33a2a7f6da4d78118e1e23a8f17b51.html">core</a></li><li class="navelem"><a class="el" href="dir_4c7ccac51765411e64ed8afa1459e892.html">models</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<div class="title">Module.php File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="_module_8php_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_module.html">Module</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespace_entity"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespace_entity.html">Entity</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:19 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

+ 134 - 0
doc/html/_module_8php_source.html

@@ -0,0 +1,134 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: /home/isundil/Project/ecom/core/models/Module.php Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_75b82e7e4a5feb05200b9ad7adf06257.html">home</a></li><li class="navelem"><a class="el" href="dir_9db4aabfa12fb2197f4b553e7ea8deed.html">isundil</a></li><li class="navelem"><a class="el" href="dir_1a6cb19e8504dda728b9574aa47fdf34.html">Project</a></li><li class="navelem"><a class="el" href="dir_f8738126562420a628a94e1d7172443f.html">ecom</a></li><li class="navelem"><a class="el" href="dir_fc33a2a7f6da4d78118e1e23a8f17b51.html">core</a></li><li class="navelem"><a class="el" href="dir_4c7ccac51765411e64ed8afa1459e892.html">models</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">Module.php</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_module_8php.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;&lt;?php</div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;</div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_entity.html">Entity</a>;</div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;</div>
+<div class="line"><a name="l00005"></a><span class="lineno"><a class="line" href="class_entity_1_1_module.html">    5</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_entity_1_1_module.html">Module</a> <span class="keyword">extends</span> <a class="code" href="class_entity_1_1_model_base.html">ModelBase</a></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;{</div>
+<div class="line"><a name="l00007"></a><span class="lineno"><a class="line" href="class_entity_1_1_module.html#aa966adc12c56a4cc70da92207fa50929">    7</a></span>&#160;    <span class="keyword">protected</span> <span class="keyword">function</span> <a class="code" href="class_entity_1_1_module.html#aa966adc12c56a4cc70da92207fa50929">install</a>()</div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;    {</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;        $dbPrefix = $this-&gt;getDbPrefix();</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;        $result = self::$dbo-&gt;exec(<span class="stringliteral">&quot;CREATE TABLE IF NOT EXISTS `{$dbPrefix}module` (</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="stringliteral">            `id` INTEGER(11) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="stringliteral">            `name` VARCHAR(128) NOT NULL,</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="stringliteral">            `description` VARCHAR(255) NOT NULL,</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="stringliteral">            `directory` VARCHAR(255) NOT NULL,</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="stringliteral">            `active` BOOLEAN DEFAULT FALSE NOT NULL</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="stringliteral">        )&quot;</span>);</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;        <span class="keywordflow">if</span> ($result === <span class="keyword">false</span>)</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;            <span class="keywordflow">throw</span> new \Exception(get_class().<span class="stringliteral">&quot;: &quot;</span>.self::$dbo-&gt;errorInfo()[2]);</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;    }</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div>
+<div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="class_entity_1_1_module.html#a5a5d2fbfed8c77d8760c2d0473e92220">   22</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">function</span> <a class="code" href="class_entity_1_1_module.html#a5a5d2fbfed8c77d8760c2d0473e92220">getActivated</a>()</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;    {</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;        $fetcher = <span class="keyword">new</span> <span class="keyword">self</span>();</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;        <span class="keywordflow">return</span> $fetcher-&gt;selects(array(<span class="stringliteral">&quot;active&quot;</span> =&gt; <span class="keyword">true</span>));</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;    }</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;}</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;</div>
+<div class="ttc" id="class_entity_1_1_module_html_a5a5d2fbfed8c77d8760c2d0473e92220"><div class="ttname"><a href="class_entity_1_1_module.html#a5a5d2fbfed8c77d8760c2d0473e92220">Entity\Module\getActivated</a></div><div class="ttdeci">static getActivated()</div><div class="ttdef"><b>Definition:</b> <a href="_module_8php_source.html#l00022">Module.php:22</a></div></div>
+<div class="ttc" id="namespace_entity_html"><div class="ttname"><a href="namespace_entity.html">Entity</a></div><div class="ttdef"><b>Definition:</b> <a href="_address_8php_source.html#l00003">Address.php:3</a></div></div>
+<div class="ttc" id="class_entity_1_1_module_html_aa966adc12c56a4cc70da92207fa50929"><div class="ttname"><a href="class_entity_1_1_module.html#aa966adc12c56a4cc70da92207fa50929">Entity\Module\install</a></div><div class="ttdeci">install()</div><div class="ttdef"><b>Definition:</b> <a href="_module_8php_source.html#l00007">Module.php:7</a></div></div>
+<div class="ttc" id="class_entity_1_1_model_base_html"><div class="ttname"><a href="class_entity_1_1_model_base.html">Entity\ModelBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_model_base_8php_source.html#l00005">ModelBase.php:5</a></div></div>
+<div class="ttc" id="class_entity_1_1_module_html"><div class="ttname"><a href="class_entity_1_1_module.html">Entity\Module</a></div><div class="ttdef"><b>Definition:</b> <a href="_module_8php_source.html#l00005">Module.php:5</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:19 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

+ 117 - 0
doc/html/_module_hook_8php.html

@@ -0,0 +1,117 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: /home/isundil/Project/ecom/core/models/ModuleHook.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_75b82e7e4a5feb05200b9ad7adf06257.html">home</a></li><li class="navelem"><a class="el" href="dir_9db4aabfa12fb2197f4b553e7ea8deed.html">isundil</a></li><li class="navelem"><a class="el" href="dir_1a6cb19e8504dda728b9574aa47fdf34.html">Project</a></li><li class="navelem"><a class="el" href="dir_f8738126562420a628a94e1d7172443f.html">ecom</a></li><li class="navelem"><a class="el" href="dir_fc33a2a7f6da4d78118e1e23a8f17b51.html">core</a></li><li class="navelem"><a class="el" href="dir_4c7ccac51765411e64ed8afa1459e892.html">models</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<div class="title">ModuleHook.php File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="_module_hook_8php_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_module_hook.html">ModuleHook</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespace_entity"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespace_entity.html">Entity</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:19 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

+ 135 - 0
doc/html/_module_hook_8php_source.html

@@ -0,0 +1,135 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: /home/isundil/Project/ecom/core/models/ModuleHook.php Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_75b82e7e4a5feb05200b9ad7adf06257.html">home</a></li><li class="navelem"><a class="el" href="dir_9db4aabfa12fb2197f4b553e7ea8deed.html">isundil</a></li><li class="navelem"><a class="el" href="dir_1a6cb19e8504dda728b9574aa47fdf34.html">Project</a></li><li class="navelem"><a class="el" href="dir_f8738126562420a628a94e1d7172443f.html">ecom</a></li><li class="navelem"><a class="el" href="dir_fc33a2a7f6da4d78118e1e23a8f17b51.html">core</a></li><li class="navelem"><a class="el" href="dir_4c7ccac51765411e64ed8afa1459e892.html">models</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">ModuleHook.php</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_module_hook_8php.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;&lt;?php</div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;</div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_entity.html">Entity</a>;</div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;</div>
+<div class="line"><a name="l00005"></a><span class="lineno"><a class="line" href="class_entity_1_1_module_hook.html">    5</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_entity_1_1_module_hook.html">ModuleHook</a> <span class="keyword">extends</span> <a class="code" href="class_entity_1_1_model_base.html">ModelBase</a></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;{</div>
+<div class="line"><a name="l00007"></a><span class="lineno"><a class="line" href="class_entity_1_1_module_hook.html#aa966adc12c56a4cc70da92207fa50929">    7</a></span>&#160;    <span class="keyword">protected</span> <span class="keyword">function</span> <a class="code" href="class_entity_1_1_module_hook.html#aa966adc12c56a4cc70da92207fa50929">install</a>()</div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;    {</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;        $dbPrefix = $this-&gt;getDbPrefix();</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;        $result = self::$dbo-&gt;exec(<span class="stringliteral">&quot;CREATE TABLE IF NOT EXISTS `{$dbPrefix}modulehook` (</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="stringliteral">            `id` INTEGER(11) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="stringliteral">            `module_id` INTEGER(11) UNSIGNED NOT NULL,</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="stringliteral">            `hookName` VARCHAR(32) NOT NULL,</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="stringliteral">            `hookPosition` INTEGER(11) NOT NULL,</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="stringliteral">            FOREIGN KEY (`module_id`) REFERENCES `{$dbPrefix}module`(id),</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="stringliteral">            UNIQUE(`module_id`, `hookName`)</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="stringliteral">        )&quot;</span>);</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;        <span class="keywordflow">if</span> ($result === <span class="keyword">false</span>)</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;            <span class="keywordflow">throw</span> new \Exception(get_class().<span class="stringliteral">&quot;: &quot;</span>.self::$dbo-&gt;errorInfo()[2]);</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;    }</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"><a class="line" href="class_entity_1_1_module_hook.html#a71be00f62d624dea24303dd1cbb3e611">   23</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">function</span> <a class="code" href="class_entity_1_1_module_hook.html#a71be00f62d624dea24303dd1cbb3e611">getModules</a>($moduleIds)</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;    {</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;        $fetcher = <span class="keyword">new</span> <span class="keyword">self</span>();</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;        <span class="keywordflow">return</span> $fetcher-&gt;selects(array(<span class="stringliteral">&quot;module_id&quot;</span> =&gt; $moduleIds), array(<span class="stringliteral">&quot;hookName&quot;</span>, <span class="stringliteral">&quot;hookPosition&quot;</span>));</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;    }</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;}</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;</div>
+<div class="ttc" id="class_entity_1_1_module_hook_html"><div class="ttname"><a href="class_entity_1_1_module_hook.html">Entity\ModuleHook</a></div><div class="ttdef"><b>Definition:</b> <a href="_module_hook_8php_source.html#l00005">ModuleHook.php:5</a></div></div>
+<div class="ttc" id="class_entity_1_1_module_hook_html_a71be00f62d624dea24303dd1cbb3e611"><div class="ttname"><a href="class_entity_1_1_module_hook.html#a71be00f62d624dea24303dd1cbb3e611">Entity\ModuleHook\getModules</a></div><div class="ttdeci">static getModules($moduleIds)</div><div class="ttdef"><b>Definition:</b> <a href="_module_hook_8php_source.html#l00023">ModuleHook.php:23</a></div></div>
+<div class="ttc" id="namespace_entity_html"><div class="ttname"><a href="namespace_entity.html">Entity</a></div><div class="ttdef"><b>Definition:</b> <a href="_address_8php_source.html#l00003">Address.php:3</a></div></div>
+<div class="ttc" id="class_entity_1_1_module_hook_html_aa966adc12c56a4cc70da92207fa50929"><div class="ttname"><a href="class_entity_1_1_module_hook.html#aa966adc12c56a4cc70da92207fa50929">Entity\ModuleHook\install</a></div><div class="ttdeci">install()</div><div class="ttdef"><b>Definition:</b> <a href="_module_hook_8php_source.html#l00007">ModuleHook.php:7</a></div></div>
+<div class="ttc" id="class_entity_1_1_model_base_html"><div class="ttname"><a href="class_entity_1_1_model_base.html">Entity\ModelBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_model_base_8php_source.html#l00005">ModelBase.php:5</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:19 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

+ 117 - 0
doc/html/_module_manager_8php.html

@@ -0,0 +1,117 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: /home/isundil/Project/ecom/core/tools/ModuleManager.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_75b82e7e4a5feb05200b9ad7adf06257.html">home</a></li><li class="navelem"><a class="el" href="dir_9db4aabfa12fb2197f4b553e7ea8deed.html">isundil</a></li><li class="navelem"><a class="el" href="dir_1a6cb19e8504dda728b9574aa47fdf34.html">Project</a></li><li class="navelem"><a class="el" href="dir_f8738126562420a628a94e1d7172443f.html">ecom</a></li><li class="navelem"><a class="el" href="dir_fc33a2a7f6da4d78118e1e23a8f17b51.html">core</a></li><li class="navelem"><a class="el" href="dir_c7e9cf21629ccd0940e4dcdbd0bc9b8a.html">tools</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<div class="title">ModuleManager.php File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="_module_manager_8php_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_module_manager.html">ModuleManager</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespace_tools"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespace_tools.html">Tools</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:19 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

+ 198 - 0
doc/html/_module_manager_8php_source.html

@@ -0,0 +1,198 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: /home/isundil/Project/ecom/core/tools/ModuleManager.php Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_75b82e7e4a5feb05200b9ad7adf06257.html">home</a></li><li class="navelem"><a class="el" href="dir_9db4aabfa12fb2197f4b553e7ea8deed.html">isundil</a></li><li class="navelem"><a class="el" href="dir_1a6cb19e8504dda728b9574aa47fdf34.html">Project</a></li><li class="navelem"><a class="el" href="dir_f8738126562420a628a94e1d7172443f.html">ecom</a></li><li class="navelem"><a class="el" href="dir_fc33a2a7f6da4d78118e1e23a8f17b51.html">core</a></li><li class="navelem"><a class="el" href="dir_c7e9cf21629ccd0940e4dcdbd0bc9b8a.html">tools</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">ModuleManager.php</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_module_manager_8php.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;&lt;?php </div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;</div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_tools.html">Tools</a>;</div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;</div>
+<div class="line"><a name="l00009"></a><span class="lineno"><a class="line" href="class_tools_1_1_module_manager.html">    9</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_tools_1_1_module_manager.html">ModuleManager</a></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;{</div>
+<div class="line"><a name="l00016"></a><span class="lineno"><a class="line" href="class_tools_1_1_module_manager.html#a7c294642225a6c91f5d7932dde75c2ae">   16</a></span>&#160;    <span class="keyword">private</span> <a class="code" href="class_tools_1_1_module_manager.html#a7c294642225a6c91f5d7932dde75c2ae">$context</a>;</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;</div>
+<div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="class_tools_1_1_module_manager.html#a19e625c76c6796e995f33d323ee3aa84">   24</a></span>&#160;    <span class="keyword">private</span> $modules = array();</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;</div>
+<div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="class_tools_1_1_module_manager.html#a01955facbcef5c0159144d7209704be2">   38</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_module_manager.html#a01955facbcef5c0159144d7209704be2">__construct</a>(&amp;$context)</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;    {</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;        $this-&gt;context = $context;</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;        $modulesRoot = $context-&gt;router-&gt;modulesPath;</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;        $modules = <a class="code" href="class_entity_1_1_module.html#a5a5d2fbfed8c77d8760c2d0473e92220">\Entity\Module::getActivated</a>();</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;        $ids = array();</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;        <span class="keywordflow">foreach</span> ($modules as $i)</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;        {</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;            $modulePath = <span class="stringliteral">&quot;{$modulesRoot}{$i-&gt;directory}/main.php&quot;</span>;</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;            <span class="keywordflow">if</span> (file_exists($modulePath) &amp;&amp; $this-&gt;loadModule($modulePath, $i))</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;            {</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;                $ids[] = $i-&gt;id;</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;            }</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;            <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;            {</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;                die (<span class="stringliteral">&quot;out&quot;</span>);</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;                $i-&gt;active = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;                $i-&gt;save();</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;            }</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;        }</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;        $context-&gt;hookManager-&gt;loadHooks(\<a class="code" href="namespace_entity.html">Entity</a>\ModuleHook::getModules($ids));</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;    }</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;</div>
+<div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="class_tools_1_1_module_manager.html#a167a402eddef05c09ce608f803009baa">   71</a></span>&#160;    <span class="keyword">private</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_module_manager.html#a167a402eddef05c09ce608f803009baa">loadModule</a>($path, $module)</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;    {</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;        $mod = include_once($path);</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;        <span class="keywordflow">if</span> (!$mod || !($mod instanceof \<a class="code" href="namespace_tools.html">Tools</a>\<a class="code" href="class_tools_1_1_a_module.html">AModule</a>))</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;        $mod-&gt;setContext($this-&gt;context);</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;        $mod-&gt;setEntity($module);</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;        $this-&gt;modules[] = $mod;</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;    }</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;    <span class="comment">/*</span></div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;<span class="comment">     * TODO revoir tout</span></div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;<span class="comment">     * @return array(AModule)</span></div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;<span class="comment">     * Will load every modules, and return them.</span></div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;<span class="comment">    **/</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="class_tools_1_1_module_manager.html#a279ef46fb2e62ce756023d9a443d7953">   87</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_module_manager.html#a279ef46fb2e62ce756023d9a443d7953">listAvailableModules</a>()</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    {</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;        $modulesRoot = $context-&gt;router-&gt;modulesPath;</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;        $result = array();</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;        $modules = scandir($modulesRoot, SCANDIR_SORT_NONE);</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;        <span class="keywordflow">foreach</span> ($modules as $i)</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;        {</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;            $path = $modulesRoot.$i;</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;            <span class="keywordflow">if</span> ($i == <span class="charliteral">&#39;.&#39;</span> || $i == <span class="stringliteral">&#39;..&#39;</span> || !is_dir($path))</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;                <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;            $this-&gt;loadModule($path);</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;        }</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;    }</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;</div>
+<div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="class_tools_1_1_module_manager.html#ab1dcee2727d5614cb8c028c57d2271e8">  106</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_module_manager.html#ab1dcee2727d5614cb8c028c57d2271e8">getModuleFromId</a>($id)</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;    {</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;        <span class="keywordflow">foreach</span> ($this-&gt;modules as $i)</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;        {</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;            <span class="keywordflow">if</span> ($i-&gt;entity-&gt;id == $id)</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;                <span class="keywordflow">return</span> $i;</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;        }</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;        <span class="keywordflow">return</span> FALSE;</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;    }</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;</div>
+<div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="class_tools_1_1_module_manager.html#a4537dad3b44254124991341cc91b28fb">  119</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_module_manager.html#a4537dad3b44254124991341cc91b28fb">__get</a>($key)</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;    {</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;        <span class="keywordflow">switch</span> ($key)</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;        {</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;            <span class="keywordflow">case</span> <span class="stringliteral">&quot;modules&quot;</span>:</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;                <span class="keywordflow">return</span> $this-&gt;modules; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;        }</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;        <span class="keywordflow">if</span> (substr($key, 0, 4) == <span class="stringliteral">&quot;_id_&quot;</span>)</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;            <span class="keywordflow">return</span> $this-&gt;getModuleFromId((<span class="keywordtype">int</span>) substr($key, 4));</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;        <span class="keywordflow">throw</span> new \Exception(<span class="stringliteral">&quot;Cannot access attribute {$key}&quot;</span>);</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;    }</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;}</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;</div>
+<div class="ttc" id="class_tools_1_1_module_manager_html_a7c294642225a6c91f5d7932dde75c2ae"><div class="ttname"><a href="class_tools_1_1_module_manager.html#a7c294642225a6c91f5d7932dde75c2ae">Tools\ModuleManager\$context</a></div><div class="ttdeci">$context</div><div class="ttdef"><b>Definition:</b> <a href="_module_manager_8php_source.html#l00016">ModuleManager.php:16</a></div></div>
+<div class="ttc" id="class_entity_1_1_module_html_a5a5d2fbfed8c77d8760c2d0473e92220"><div class="ttname"><a href="class_entity_1_1_module.html#a5a5d2fbfed8c77d8760c2d0473e92220">Entity\Module\getActivated</a></div><div class="ttdeci">static getActivated()</div><div class="ttdef"><b>Definition:</b> <a href="_module_8php_source.html#l00022">Module.php:22</a></div></div>
+<div class="ttc" id="namespace_entity_html"><div class="ttname"><a href="namespace_entity.html">Entity</a></div><div class="ttdef"><b>Definition:</b> <a href="_address_8php_source.html#l00003">Address.php:3</a></div></div>
+<div class="ttc" id="class_tools_1_1_module_manager_html"><div class="ttname"><a href="class_tools_1_1_module_manager.html">Tools\ModuleManager</a></div><div class="ttdef"><b>Definition:</b> <a href="_module_manager_8php_source.html#l00009">ModuleManager.php:9</a></div></div>
+<div class="ttc" id="class_tools_1_1_module_manager_html_a279ef46fb2e62ce756023d9a443d7953"><div class="ttname"><a href="class_tools_1_1_module_manager.html#a279ef46fb2e62ce756023d9a443d7953">Tools\ModuleManager\listAvailableModules</a></div><div class="ttdeci">listAvailableModules()</div><div class="ttdef"><b>Definition:</b> <a href="_module_manager_8php_source.html#l00087">ModuleManager.php:87</a></div></div>
+<div class="ttc" id="class_tools_1_1_module_manager_html_a167a402eddef05c09ce608f803009baa"><div class="ttname"><a href="class_tools_1_1_module_manager.html#a167a402eddef05c09ce608f803009baa">Tools\ModuleManager\loadModule</a></div><div class="ttdeci">loadModule($path, $module)</div><div class="ttdef"><b>Definition:</b> <a href="_module_manager_8php_source.html#l00071">ModuleManager.php:71</a></div></div>
+<div class="ttc" id="class_tools_1_1_module_manager_html_a01955facbcef5c0159144d7209704be2"><div class="ttname"><a href="class_tools_1_1_module_manager.html#a01955facbcef5c0159144d7209704be2">Tools\ModuleManager\__construct</a></div><div class="ttdeci">__construct(&amp;$context)</div><div class="ttdef"><b>Definition:</b> <a href="_module_manager_8php_source.html#l00038">ModuleManager.php:38</a></div></div>
+<div class="ttc" id="class_tools_1_1_a_module_html"><div class="ttname"><a href="class_tools_1_1_a_module.html">Tools\AModule</a></div><div class="ttdef"><b>Definition:</b> <a href="_a_module_8php_source.html#l00009">AModule.php:9</a></div></div>
+<div class="ttc" id="class_tools_1_1_module_manager_html_a4537dad3b44254124991341cc91b28fb"><div class="ttname"><a href="class_tools_1_1_module_manager.html#a4537dad3b44254124991341cc91b28fb">Tools\ModuleManager\__get</a></div><div class="ttdeci">__get($key)</div><div class="ttdef"><b>Definition:</b> <a href="_module_manager_8php_source.html#l00119">ModuleManager.php:119</a></div></div>
+<div class="ttc" id="namespace_tools_html"><div class="ttname"><a href="namespace_tools.html">Tools</a></div><div class="ttdef"><b>Definition:</b> <a href="_a_controller_8php_source.html#l00003">AController.php:3</a></div></div>
+<div class="ttc" id="class_tools_1_1_module_manager_html_ab1dcee2727d5614cb8c028c57d2271e8"><div class="ttname"><a href="class_tools_1_1_module_manager.html#ab1dcee2727d5614cb8c028c57d2271e8">Tools\ModuleManager\getModuleFromId</a></div><div class="ttdeci">getModuleFromId($id)</div><div class="ttdef"><b>Definition:</b> <a href="_module_manager_8php_source.html#l00106">ModuleManager.php:106</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:19 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

+ 117 - 0
doc/html/_product_8php.html

@@ -0,0 +1,117 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: /home/isundil/Project/ecom/core/models/Product.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_75b82e7e4a5feb05200b9ad7adf06257.html">home</a></li><li class="navelem"><a class="el" href="dir_9db4aabfa12fb2197f4b553e7ea8deed.html">isundil</a></li><li class="navelem"><a class="el" href="dir_1a6cb19e8504dda728b9574aa47fdf34.html">Project</a></li><li class="navelem"><a class="el" href="dir_f8738126562420a628a94e1d7172443f.html">ecom</a></li><li class="navelem"><a class="el" href="dir_fc33a2a7f6da4d78118e1e23a8f17b51.html">core</a></li><li class="navelem"><a class="el" href="dir_4c7ccac51765411e64ed8afa1459e892.html">models</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<div class="title">Product.php File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="_product_8php_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_product.html">Product</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespace_entity"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespace_entity.html">Entity</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:19 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

+ 129 - 0
doc/html/_product_8php_source.html

@@ -0,0 +1,129 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: /home/isundil/Project/ecom/core/models/Product.php Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_75b82e7e4a5feb05200b9ad7adf06257.html">home</a></li><li class="navelem"><a class="el" href="dir_9db4aabfa12fb2197f4b553e7ea8deed.html">isundil</a></li><li class="navelem"><a class="el" href="dir_1a6cb19e8504dda728b9574aa47fdf34.html">Project</a></li><li class="navelem"><a class="el" href="dir_f8738126562420a628a94e1d7172443f.html">ecom</a></li><li class="navelem"><a class="el" href="dir_fc33a2a7f6da4d78118e1e23a8f17b51.html">core</a></li><li class="navelem"><a class="el" href="dir_4c7ccac51765411e64ed8afa1459e892.html">models</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">Product.php</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_product_8php.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;&lt;?php</div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;</div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_entity.html">Entity</a>;</div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;</div>
+<div class="line"><a name="l00005"></a><span class="lineno"><a class="line" href="class_entity_1_1_product.html">    5</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_entity_1_1_product.html">Product</a> <span class="keyword">extends</span> <a class="code" href="class_entity_1_1_model_base.html">ModelBase</a></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;{</div>
+<div class="line"><a name="l00007"></a><span class="lineno"><a class="line" href="class_entity_1_1_product.html#aa966adc12c56a4cc70da92207fa50929">    7</a></span>&#160;    <span class="keyword">protected</span> <span class="keyword">function</span> <a class="code" href="class_entity_1_1_product.html#aa966adc12c56a4cc70da92207fa50929">install</a>()</div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;    {</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;        $dbPrefix = $this-&gt;getDbPrefix();</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;        $result = self::$dbo-&gt;exec(<span class="stringliteral">&quot;CREATE TABLE IF NOT EXISTS `{$dbPrefix}product` (</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="stringliteral">            `id` INTEGER(11) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="stringliteral">            `parent` INTEGER(11) UNSIGNED NULL,</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="stringliteral">            `shurl` VARCHAR(255) NOT NULL,</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="stringliteral">            `priceExcl` FLOAT NULL,</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="stringliteral">            `priceIncl` FLOAT NULL,</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="stringliteral">            `ean` VARCHAR(64) NULL,</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="stringliteral">            FOREIGN KEY (`parent`) REFERENCES `{$dbPrefix}product`(id)</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="stringliteral">        )&quot;</span>);</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;        <span class="keywordflow">if</span> ($result === <span class="keyword">false</span>)</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;            <span class="keywordflow">throw</span> new \Exception(get_class().<span class="stringliteral">&quot;: &quot;</span>.self::$dbo-&gt;errorInfo()[2]);</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;    }</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;}</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;</div>
+<div class="ttc" id="class_entity_1_1_product_html_aa966adc12c56a4cc70da92207fa50929"><div class="ttname"><a href="class_entity_1_1_product.html#aa966adc12c56a4cc70da92207fa50929">Entity\Product\install</a></div><div class="ttdeci">install()</div><div class="ttdef"><b>Definition:</b> <a href="_product_8php_source.html#l00007">Product.php:7</a></div></div>
+<div class="ttc" id="namespace_entity_html"><div class="ttname"><a href="namespace_entity.html">Entity</a></div><div class="ttdef"><b>Definition:</b> <a href="_address_8php_source.html#l00003">Address.php:3</a></div></div>
+<div class="ttc" id="class_entity_1_1_product_html"><div class="ttname"><a href="class_entity_1_1_product.html">Entity\Product</a></div><div class="ttdef"><b>Definition:</b> <a href="_product_8php_source.html#l00005">Product.php:5</a></div></div>
+<div class="ttc" id="class_entity_1_1_model_base_html"><div class="ttname"><a href="class_entity_1_1_model_base.html">Entity\ModelBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_model_base_8php_source.html#l00005">ModelBase.php:5</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:19 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

+ 117 - 0
doc/html/_product_controller_8php.html

@@ -0,0 +1,117 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: /home/isundil/Project/ecom/core/controllers/ProductController.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_75b82e7e4a5feb05200b9ad7adf06257.html">home</a></li><li class="navelem"><a class="el" href="dir_9db4aabfa12fb2197f4b553e7ea8deed.html">isundil</a></li><li class="navelem"><a class="el" href="dir_1a6cb19e8504dda728b9574aa47fdf34.html">Project</a></li><li class="navelem"><a class="el" href="dir_f8738126562420a628a94e1d7172443f.html">ecom</a></li><li class="navelem"><a class="el" href="dir_fc33a2a7f6da4d78118e1e23a8f17b51.html">core</a></li><li class="navelem"><a class="el" href="dir_6053281efef16ae07a77b3abbde5e7df.html">controllers</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<div class="title">ProductController.php File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="_product_controller_8php_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_controller_1_1_product_controller.html">ProductController</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespace_controller"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespace_controller.html">Controller</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:19 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

+ 118 - 0
doc/html/_product_controller_8php_source.html

@@ -0,0 +1,118 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: /home/isundil/Project/ecom/core/controllers/ProductController.php Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_75b82e7e4a5feb05200b9ad7adf06257.html">home</a></li><li class="navelem"><a class="el" href="dir_9db4aabfa12fb2197f4b553e7ea8deed.html">isundil</a></li><li class="navelem"><a class="el" href="dir_1a6cb19e8504dda728b9574aa47fdf34.html">Project</a></li><li class="navelem"><a class="el" href="dir_f8738126562420a628a94e1d7172443f.html">ecom</a></li><li class="navelem"><a class="el" href="dir_fc33a2a7f6da4d78118e1e23a8f17b51.html">core</a></li><li class="navelem"><a class="el" href="dir_6053281efef16ae07a77b3abbde5e7df.html">controllers</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">ProductController.php</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_product_controller_8php.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;&lt;?php</div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;</div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_controller.html">Controller</a>;</div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;</div>
+<div class="line"><a name="l00005"></a><span class="lineno"><a class="line" href="class_controller_1_1_product_controller.html">    5</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_controller_1_1_product_controller.html">ProductController</a> <span class="keyword">extends</span> <a class="code" href="class_tools_1_1_a_controller.html">\Tools\AController</a></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;{</div>
+<div class="line"><a name="l00007"></a><span class="lineno"><a class="line" href="class_controller_1_1_product_controller.html#a7b7ea19d18501d4214fb4dcb274addea">    7</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_controller_1_1_product_controller.html#a7b7ea19d18501d4214fb4dcb274addea">__construct</a>($context, $params)</div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;    {</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;        parent::__construct($context, $params);</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;        <span class="keywordflow">throw</span> new \Exception\Error404();</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;    }</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;}</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;</div>
+<div class="ttc" id="class_controller_1_1_product_controller_html"><div class="ttname"><a href="class_controller_1_1_product_controller.html">Controller\ProductController</a></div><div class="ttdef"><b>Definition:</b> <a href="_product_controller_8php_source.html#l00005">ProductController.php:5</a></div></div>
+<div class="ttc" id="namespace_controller_html"><div class="ttname"><a href="namespace_controller.html">Controller</a></div><div class="ttdef"><b>Definition:</b> <a href="_category_controller_8php_source.html#l00003">CategoryController.php:3</a></div></div>
+<div class="ttc" id="class_tools_1_1_a_controller_html"><div class="ttname"><a href="class_tools_1_1_a_controller.html">Tools\AController</a></div><div class="ttdef"><b>Definition:</b> <a href="_a_controller_8php_source.html#l00011">AController.php:11</a></div></div>
+<div class="ttc" id="class_controller_1_1_product_controller_html_a7b7ea19d18501d4214fb4dcb274addea"><div class="ttname"><a href="class_controller_1_1_product_controller.html#a7b7ea19d18501d4214fb4dcb274addea">Controller\ProductController\__construct</a></div><div class="ttdeci">__construct($context, $params)</div><div class="ttdef"><b>Definition:</b> <a href="_product_controller_8php_source.html#l00007">ProductController.php:7</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:18 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

+ 99 - 0
doc/html/_r_e_a_d_m_e_8md.html

@@ -0,0 +1,99 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: /home/isundil/Project/ecom/README.md File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">/home/isundil/Project/ecom/README.md File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="_r_e_a_d_m_e_8md_source.html">Go to the source code of this file.</a></p>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:19 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

+ 97 - 0
doc/html/_r_e_a_d_m_e_8md_source.html

@@ -0,0 +1,97 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: /home/isundil/Project/ecom/README.md Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">/home/isundil/Project/ecom/README.md</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_r_e_a_d_m_e_8md.html">Go to the documentation of this file.</a><div class="fragment"></div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:19 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

+ 117 - 0
doc/html/_router_8php.html

@@ -0,0 +1,117 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: /home/isundil/Project/ecom/core/tools/Router.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_75b82e7e4a5feb05200b9ad7adf06257.html">home</a></li><li class="navelem"><a class="el" href="dir_9db4aabfa12fb2197f4b553e7ea8deed.html">isundil</a></li><li class="navelem"><a class="el" href="dir_1a6cb19e8504dda728b9574aa47fdf34.html">Project</a></li><li class="navelem"><a class="el" href="dir_f8738126562420a628a94e1d7172443f.html">ecom</a></li><li class="navelem"><a class="el" href="dir_fc33a2a7f6da4d78118e1e23a8f17b51.html">core</a></li><li class="navelem"><a class="el" href="dir_c7e9cf21629ccd0940e4dcdbd0bc9b8a.html">tools</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<div class="title">Router.php File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="_router_8php_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_router.html">Router</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespace_tools"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespace_tools.html">Tools</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:19 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

+ 253 - 0
doc/html/_router_8php_source.html

@@ -0,0 +1,253 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: /home/isundil/Project/ecom/core/tools/Router.php Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_75b82e7e4a5feb05200b9ad7adf06257.html">home</a></li><li class="navelem"><a class="el" href="dir_9db4aabfa12fb2197f4b553e7ea8deed.html">isundil</a></li><li class="navelem"><a class="el" href="dir_1a6cb19e8504dda728b9574aa47fdf34.html">Project</a></li><li class="navelem"><a class="el" href="dir_f8738126562420a628a94e1d7172443f.html">ecom</a></li><li class="navelem"><a class="el" href="dir_fc33a2a7f6da4d78118e1e23a8f17b51.html">core</a></li><li class="navelem"><a class="el" href="dir_c7e9cf21629ccd0940e4dcdbd0bc9b8a.html">tools</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">Router.php</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_router_8php.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;&lt;?php</div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;</div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_tools.html">Tools</a>;</div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;</div>
+<div class="line"><a name="l00009"></a><span class="lineno"><a class="line" href="class_tools_1_1_router.html">    9</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_tools_1_1_router.html">Router</a></div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;{</div>
+<div class="line"><a name="l00016"></a><span class="lineno"><a class="line" href="class_tools_1_1_router.html#abaa9f54c924a22e8c0169f443efd1055">   16</a></span>&#160;    <span class="keyword">private</span> <a class="code" href="class_tools_1_1_router.html#abaa9f54c924a22e8c0169f443efd1055">$rootPath</a>;</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"><a class="line" href="class_tools_1_1_router.html#a0de279007713709c32cdf155ad3c63cd">   23</a></span>&#160;    <span class="keyword">private</span> <a class="code" href="class_tools_1_1_router.html#a0de279007713709c32cdf155ad3c63cd">$rootUrl</a>;</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;</div>
+<div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="class_tools_1_1_router.html#acbb09e02c973fc56c7395cc5b9a85123">   29</a></span>&#160;    <span class="keyword">private</span> <a class="code" href="class_tools_1_1_router.html#acbb09e02c973fc56c7395cc5b9a85123">$requestUrl</a>;</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;</div>
+<div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="class_tools_1_1_router.html#a8f7eb04a54e0f0bfc0cedeb9899ce4a8">   34</a></span>&#160;    <span class="keyword">private</span> <a class="code" href="class_tools_1_1_router.html#a8f7eb04a54e0f0bfc0cedeb9899ce4a8">$routes</a>;</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;</div>
+<div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="class_tools_1_1_router.html#a7c294642225a6c91f5d7932dde75c2ae">   41</a></span>&#160;    <span class="keyword">private</span> <a class="code" href="class_tools_1_1_router.html#a7c294642225a6c91f5d7932dde75c2ae">$context</a>;</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;</div>
+<div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="class_tools_1_1_router.html#ad167d71585142809d420fe2a3b66d56c">   51</a></span>&#160;    <span class="keyword">private</span> <a class="code" href="class_tools_1_1_router.html#ad167d71585142809d420fe2a3b66d56c">$routeParams</a>;</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;</div>
+<div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="class_tools_1_1_router.html#ad609bcb3079eea0bfaa8b9dc1edaaa5f">   76</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_router.html#ad609bcb3079eea0bfaa8b9dc1edaaa5f">__construct</a>($context)</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;    {</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;        $pos = strrpos($_SERVER[<span class="stringliteral">&quot;SCRIPT_NAME&quot;</span>], <span class="stringliteral">&quot;/&quot;</span>);</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;        $relativePath = (($pos === FALSE) ? <span class="stringliteral">&quot;&quot;</span> : substr($_SERVER[<span class="stringliteral">&quot;SCRIPT_NAME&quot;</span>], 0, $pos));</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;        $this-&gt;rootPath = $_SERVER[<span class="stringliteral">&quot;DOCUMENT_ROOT&quot;</span>] . $relativePath . <span class="stringliteral">&quot;/&quot;</span>;</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;        $this-&gt;rootUrl = $_SERVER[<span class="stringliteral">&quot;REQUEST_SCHEME&quot;</span>] . <span class="stringliteral">&quot;://&quot;</span> . $_SERVER[<span class="stringliteral">&quot;HTTP_HOST&quot;</span>] . $relativePath .<span class="stringliteral">&quot;/&quot;</span>;</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;        $this-&gt;requestUrl = substr($_SERVER[<span class="stringliteral">&quot;REQUEST_URI&quot;</span>], count($this-&gt;rootUrl) -1);</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;        $this-&gt;context = $context;</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;        $this-&gt;routes = array();</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;    }</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;</div>
+<div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="class_tools_1_1_router.html#a4be4055f3361d4800e16bc2e2e38cda6">   92</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_router.html#a4be4055f3361d4800e16bc2e2e38cda6">init</a>()</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;    {</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;        $siteUrl = <a class="code" href="class_entity_1_1_config.html#af66f143ec797389e3ade6952ef7808e2">\Entity\Config::getConfig</a>(null, <span class="stringliteral">&quot;siteUrl&quot;</span>);</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;        <span class="keywordflow">if</span> ($siteUrl != $_SERVER[<span class="stringliteral">&quot;HTTP_HOST&quot;</span>] &amp;&amp; $siteUrl !== null)</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;        {</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;            header(<span class="stringliteral">&quot;location: http://{$siteUrl}{$_SERVER[&#39;REQUEST_URI&#39;]}&quot;</span>);</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;            die;</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;        }</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;    }</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;</div>
+<div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="class_tools_1_1_router.html#a4001f7ed8b89fa23b5b1c77c8e320262">  108</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_router.html#a4001f7ed8b89fa23b5b1c77c8e320262">serveUrl</a>()</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;    {</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;        <span class="comment">//TODO trigger hook GET, POST</span></div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;        $this-&gt;prepareUrl();</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;        $requestParams = explode(<span class="stringliteral">&quot;/&quot;</span>, $this-&gt;requestUrl);</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;        <span class="keywordflow">foreach</span> ($this-&gt;routes as $i)</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;        {</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;            $routeParams = explode(<span class="stringliteral">&quot;/&quot;</span>, $i[0]);</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;            $p = $this-&gt;routeMatch($requestParams, $routeParams);</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;            <span class="keywordflow">if</span> (!$p)</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;                <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;            $controller = $this-&gt;createController($i[1], $p);</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;            <span class="keywordflow">if</span> ($controller)</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;                <span class="keywordflow">return</span> $controller;</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;        }</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;    }</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;</div>
+<div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="class_tools_1_1_router.html#ac721ad55028ff6c8fd3c006570fc475e">  132</a></span>&#160;    <span class="keyword">private</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_router.html#ac721ad55028ff6c8fd3c006570fc475e">createController</a>($className, $params)</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;    {</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;        <span class="keywordflow">if</span> (!class_exists($className))</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;        <span class="keywordflow">try</span></div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;        {</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;            $this-&gt;routeParams = $params;</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;            $result = <span class="keyword">new</span> $className($this-&gt;context, $params);</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;        }</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;        <span class="keywordflow">catch</span> (\<a class="code" href="namespace_exception.html">Exception</a>\Error404 $e)</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;        {</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;        }</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;        <span class="keywordflow">if</span> (!($result instanceof \<a class="code" href="namespace_tools.html">Tools</a>\<a class="code" href="class_tools_1_1_a_controller.html">AController</a>))</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;        <span class="keywordflow">return</span> $result;</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;    }</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;</div>
+<div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="class_tools_1_1_router.html#aca9c4092ad41ef8f6db2c3ca579a1a47">  156</a></span>&#160;    <span class="keyword">private</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_router.html#aca9c4092ad41ef8f6db2c3ca579a1a47">routeMatch</a>($request, $route)</div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;    {</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;        $i = count($request);</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;        $params = array();</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;        <span class="keywordflow">if</span> ($i != count($route))</div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;        <span class="keywordflow">while</span> ($i)</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;        {</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;            $i--;</div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;            <span class="keywordflow">if</span> ($route[$i] == <span class="stringliteral">&#39;&#39;</span> &amp;&amp; $request[$i] == <span class="stringliteral">&#39;&#39;</span>)</div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;                <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;            <span class="keywordflow">if</span> ($route[$i] == <span class="stringliteral">&#39;&#39;</span> || $request[$i] == <span class="stringliteral">&#39;&#39;</span>)</div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;                <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;            <span class="keywordflow">if</span> ($route[$i][0] != <span class="charliteral">&#39;:&#39;</span> &amp;&amp; ($route[$i] != $request[$i]))</div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;                <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;            <span class="keywordflow">if</span> ($route[$i][0] == <span class="charliteral">&#39;:&#39;</span>)</div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;                $params[$route[$i]] = $request[$i];</div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;            $params[$i -1] = $request[$i];</div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;        }</div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;        <span class="keywordflow">return</span> array_reverse($params);</div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;    }</div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;</div>
+<div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="class_tools_1_1_router.html#a5203c224e8eb5fc1072a980c264d33c1">  182</a></span>&#160;    <span class="keyword">private</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_router.html#a5203c224e8eb5fc1072a980c264d33c1">prepareUrl</a>()</div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;    {</div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;        $fetcher = new \Entity\Cms();</div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;        $pages = $fetcher-&gt;selects(null, array(<span class="stringliteral">&quot;order&quot;</span>));</div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;        <span class="keywordflow">foreach</span> ($pages as $i)</div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;            $this-&gt;doRouteAdd($i-&gt;shurl, $i-&gt;controller);</div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;    }</div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;</div>
+<div class="line"><a name="l00194"></a><span class="lineno"><a class="line" href="class_tools_1_1_router.html#a3dc609b3f27a881888ccf4a8c2df6ff4">  194</a></span>&#160;    <span class="keyword">private</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_router.html#a3dc609b3f27a881888ccf4a8c2df6ff4">doRouteAdd</a>($route, $controller)</div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;    {</div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;        $this-&gt;routes[] = array($route, $controller);</div>
+<div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;    }</div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;</div>
+<div class="line"><a name="l00209"></a><span class="lineno"><a class="line" href="class_tools_1_1_router.html#aaba248f1b462a6b58536ee8c2a835054">  209</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_router.html#aaba248f1b462a6b58536ee8c2a835054">routeAdd</a>($route, $controller)</div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;    {</div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;        <span class="keywordflow">if</span> (!$this-&gt;context-&gt;hookManager-&gt;isInHook(<span class="stringliteral">&quot;routerSetup&quot;</span>))</div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;            <span class="keywordflow">throw</span> <span class="keyword">new</span> \<a class="code" href="namespace_exception.html">Exception</a>(<span class="stringliteral">&quot;You can only add routes from `routerSetup&#39; hook&quot;</span>);</div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;        $this-&gt;doRouteAdd($route, $controller);</div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;    }</div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;</div>
+<div class="line"><a name="l00219"></a><span class="lineno"><a class="line" href="class_tools_1_1_router.html#a4537dad3b44254124991341cc91b28fb">  219</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_tools_1_1_router.html#a4537dad3b44254124991341cc91b28fb">__get</a>($key)</div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;    {</div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;        <span class="keywordflow">switch</span> ($key)</div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;        {</div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;        <span class="keywordflow">case</span> <span class="stringliteral">&quot;rootPath&quot;</span>: <span class="keywordflow">return</span> $this-&gt;rootPath; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;        <span class="keywordflow">case</span> <span class="stringliteral">&quot;rootUrl&quot;</span>: <span class="keywordflow">return</span> $this-&gt;rootUrl; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;        <span class="keywordflow">case</span> <span class="stringliteral">&quot;modulesPath&quot;</span>: <span class="keywordflow">return</span> $this-&gt;rootPath.<span class="stringliteral">&quot;content/modules/&quot;</span>; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;        <span class="keywordflow">case</span> <span class="stringliteral">&quot;modulesUrl&quot;</span>: <span class="keywordflow">return</span> $this-&gt;rootUrl.<span class="stringliteral">&quot;content/modules/&quot;</span>; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;        <span class="keywordflow">case</span> <span class="stringliteral">&quot;themesPath&quot;</span>: <span class="keywordflow">return</span> $this-&gt;rootPath.<span class="stringliteral">&quot;content/theme/&quot;</span>; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;        <span class="keywordflow">case</span> <span class="stringliteral">&quot;themesUrl&quot;</span>: <span class="keywordflow">return</span> $this-&gt;rootUrl.<span class="stringliteral">&quot;content/theme/&quot;</span>; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;        }</div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;        <span class="keywordflow">throw</span> new \Exception(<span class="stringliteral">&quot;Cannot access attribute {$key}&quot;</span>);</div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;    }</div>
+<div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;}</div>
+<div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;</div>
+<div class="ttc" id="class_tools_1_1_router_html_a3dc609b3f27a881888ccf4a8c2df6ff4"><div class="ttname"><a href="class_tools_1_1_router.html#a3dc609b3f27a881888ccf4a8c2df6ff4">Tools\Router\doRouteAdd</a></div><div class="ttdeci">doRouteAdd($route, $controller)</div><div class="ttdef"><b>Definition:</b> <a href="_router_8php_source.html#l00194">Router.php:194</a></div></div>
+<div class="ttc" id="class_tools_1_1_router_html_a5203c224e8eb5fc1072a980c264d33c1"><div class="ttname"><a href="class_tools_1_1_router.html#a5203c224e8eb5fc1072a980c264d33c1">Tools\Router\prepareUrl</a></div><div class="ttdeci">prepareUrl()</div><div class="ttdef"><b>Definition:</b> <a href="_router_8php_source.html#l00182">Router.php:182</a></div></div>
+<div class="ttc" id="class_tools_1_1_router_html_a4001f7ed8b89fa23b5b1c77c8e320262"><div class="ttname"><a href="class_tools_1_1_router.html#a4001f7ed8b89fa23b5b1c77c8e320262">Tools\Router\serveUrl</a></div><div class="ttdeci">serveUrl()</div><div class="ttdef"><b>Definition:</b> <a href="_router_8php_source.html#l00108">Router.php:108</a></div></div>
+<div class="ttc" id="class_tools_1_1_router_html_a8f7eb04a54e0f0bfc0cedeb9899ce4a8"><div class="ttname"><a href="class_tools_1_1_router.html#a8f7eb04a54e0f0bfc0cedeb9899ce4a8">Tools\Router\$routes</a></div><div class="ttdeci">$routes</div><div class="ttdef"><b>Definition:</b> <a href="_router_8php_source.html#l00034">Router.php:34</a></div></div>
+<div class="ttc" id="class_tools_1_1_router_html_abaa9f54c924a22e8c0169f443efd1055"><div class="ttname"><a href="class_tools_1_1_router.html#abaa9f54c924a22e8c0169f443efd1055">Tools\Router\$rootPath</a></div><div class="ttdeci">$rootPath</div><div class="ttdef"><b>Definition:</b> <a href="_router_8php_source.html#l00016">Router.php:16</a></div></div>
+<div class="ttc" id="class_tools_1_1_router_html_ad609bcb3079eea0bfaa8b9dc1edaaa5f"><div class="ttname"><a href="class_tools_1_1_router.html#ad609bcb3079eea0bfaa8b9dc1edaaa5f">Tools\Router\__construct</a></div><div class="ttdeci">__construct($context)</div><div class="ttdef"><b>Definition:</b> <a href="_router_8php_source.html#l00076">Router.php:76</a></div></div>
+<div class="ttc" id="class_tools_1_1_router_html_a4537dad3b44254124991341cc91b28fb"><div class="ttname"><a href="class_tools_1_1_router.html#a4537dad3b44254124991341cc91b28fb">Tools\Router\__get</a></div><div class="ttdeci">__get($key)</div><div class="ttdef"><b>Definition:</b> <a href="_router_8php_source.html#l00219">Router.php:219</a></div></div>
+<div class="ttc" id="class_tools_1_1_router_html_ad167d71585142809d420fe2a3b66d56c"><div class="ttname"><a href="class_tools_1_1_router.html#ad167d71585142809d420fe2a3b66d56c">Tools\Router\$routeParams</a></div><div class="ttdeci">$routeParams</div><div class="ttdef"><b>Definition:</b> <a href="_router_8php_source.html#l00051">Router.php:51</a></div></div>
+<div class="ttc" id="namespace_exception_html"><div class="ttname"><a href="namespace_exception.html">Exception</a></div><div class="ttdef"><b>Definition:</b> <a href="_error404_8php_source.html#l00003">Error404.php:3</a></div></div>
+<div class="ttc" id="class_tools_1_1_router_html"><div class="ttname"><a href="class_tools_1_1_router.html">Tools\Router</a></div><div class="ttdef"><b>Definition:</b> <a href="_router_8php_source.html#l00009">Router.php:9</a></div></div>
+<div class="ttc" id="class_tools_1_1_router_html_acbb09e02c973fc56c7395cc5b9a85123"><div class="ttname"><a href="class_tools_1_1_router.html#acbb09e02c973fc56c7395cc5b9a85123">Tools\Router\$requestUrl</a></div><div class="ttdeci">$requestUrl</div><div class="ttdef"><b>Definition:</b> <a href="_router_8php_source.html#l00029">Router.php:29</a></div></div>
+<div class="ttc" id="class_tools_1_1_router_html_a0de279007713709c32cdf155ad3c63cd"><div class="ttname"><a href="class_tools_1_1_router.html#a0de279007713709c32cdf155ad3c63cd">Tools\Router\$rootUrl</a></div><div class="ttdeci">$rootUrl</div><div class="ttdef"><b>Definition:</b> <a href="_router_8php_source.html#l00023">Router.php:23</a></div></div>
+<div class="ttc" id="class_entity_1_1_config_html_af66f143ec797389e3ade6952ef7808e2"><div class="ttname"><a href="class_entity_1_1_config.html#af66f143ec797389e3ade6952ef7808e2">Entity\Config\getConfig</a></div><div class="ttdeci">static getConfig($lang=null, $key=null, $defaultValue=null)</div><div class="ttdef"><b>Definition:</b> <a href="_config_8php_source.html#l00023">Config.php:23</a></div></div>
+<div class="ttc" id="class_tools_1_1_router_html_ac721ad55028ff6c8fd3c006570fc475e"><div class="ttname"><a href="class_tools_1_1_router.html#ac721ad55028ff6c8fd3c006570fc475e">Tools\Router\createController</a></div><div class="ttdeci">createController($className, $params)</div><div class="ttdef"><b>Definition:</b> <a href="_router_8php_source.html#l00132">Router.php:132</a></div></div>
+<div class="ttc" id="namespace_tools_html"><div class="ttname"><a href="namespace_tools.html">Tools</a></div><div class="ttdef"><b>Definition:</b> <a href="_a_controller_8php_source.html#l00003">AController.php:3</a></div></div>
+<div class="ttc" id="class_tools_1_1_router_html_a7c294642225a6c91f5d7932dde75c2ae"><div class="ttname"><a href="class_tools_1_1_router.html#a7c294642225a6c91f5d7932dde75c2ae">Tools\Router\$context</a></div><div class="ttdeci">$context</div><div class="ttdef"><b>Definition:</b> <a href="_router_8php_source.html#l00041">Router.php:41</a></div></div>
+<div class="ttc" id="class_tools_1_1_router_html_a4be4055f3361d4800e16bc2e2e38cda6"><div class="ttname"><a href="class_tools_1_1_router.html#a4be4055f3361d4800e16bc2e2e38cda6">Tools\Router\init</a></div><div class="ttdeci">init()</div><div class="ttdef"><b>Definition:</b> <a href="_router_8php_source.html#l00092">Router.php:92</a></div></div>
+<div class="ttc" id="class_tools_1_1_router_html_aaba248f1b462a6b58536ee8c2a835054"><div class="ttname"><a href="class_tools_1_1_router.html#aaba248f1b462a6b58536ee8c2a835054">Tools\Router\routeAdd</a></div><div class="ttdeci">routeAdd($route, $controller)</div><div class="ttdef"><b>Definition:</b> <a href="_router_8php_source.html#l00209">Router.php:209</a></div></div>
+<div class="ttc" id="class_tools_1_1_router_html_aca9c4092ad41ef8f6db2c3ca579a1a47"><div class="ttname"><a href="class_tools_1_1_router.html#aca9c4092ad41ef8f6db2c3ca579a1a47">Tools\Router\routeMatch</a></div><div class="ttdeci">routeMatch($request, $route)</div><div class="ttdef"><b>Definition:</b> <a href="_router_8php_source.html#l00156">Router.php:156</a></div></div>
+<div class="ttc" id="class_tools_1_1_a_controller_html"><div class="ttname"><a href="class_tools_1_1_a_controller.html">Tools\AController</a></div><div class="ttdef"><b>Definition:</b> <a href="_a_controller_8php_source.html#l00011">AController.php:11</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:19 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

+ 117 - 0
doc/html/_user_8php.html

@@ -0,0 +1,117 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: /home/isundil/Project/ecom/core/models/User.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_75b82e7e4a5feb05200b9ad7adf06257.html">home</a></li><li class="navelem"><a class="el" href="dir_9db4aabfa12fb2197f4b553e7ea8deed.html">isundil</a></li><li class="navelem"><a class="el" href="dir_1a6cb19e8504dda728b9574aa47fdf34.html">Project</a></li><li class="navelem"><a class="el" href="dir_f8738126562420a628a94e1d7172443f.html">ecom</a></li><li class="navelem"><a class="el" href="dir_fc33a2a7f6da4d78118e1e23a8f17b51.html">core</a></li><li class="navelem"><a class="el" href="dir_4c7ccac51765411e64ed8afa1459e892.html">models</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#namespaces">Namespaces</a>  </div>
+  <div class="headertitle">
+<div class="title">User.php File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="_user_8php_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_user.html">User</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
+Namespaces</h2></td></tr>
+<tr class="memitem:namespace_entity"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespace_entity.html">Entity</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:19 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

+ 161 - 0
doc/html/_user_8php_source.html

@@ -0,0 +1,161 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: /home/isundil/Project/ecom/core/models/User.php Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_75b82e7e4a5feb05200b9ad7adf06257.html">home</a></li><li class="navelem"><a class="el" href="dir_9db4aabfa12fb2197f4b553e7ea8deed.html">isundil</a></li><li class="navelem"><a class="el" href="dir_1a6cb19e8504dda728b9574aa47fdf34.html">Project</a></li><li class="navelem"><a class="el" href="dir_f8738126562420a628a94e1d7172443f.html">ecom</a></li><li class="navelem"><a class="el" href="dir_fc33a2a7f6da4d78118e1e23a8f17b51.html">core</a></li><li class="navelem"><a class="el" href="dir_4c7ccac51765411e64ed8afa1459e892.html">models</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">User.php</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="_user_8php.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;&lt;?php</div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;</div>
+<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespace_entity.html">Entity</a>;</div>
+<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;</div>
+<div class="line"><a name="l00005"></a><span class="lineno"><a class="line" href="class_entity_1_1_user.html">    5</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_entity_1_1_user.html">User</a> <span class="keyword">extends</span> <a class="code" href="class_entity_1_1_model_base.html">ModelBase</a></div>
+<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;{</div>
+<div class="line"><a name="l00007"></a><span class="lineno"><a class="line" href="class_entity_1_1_user.html#aa966adc12c56a4cc70da92207fa50929">    7</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_entity_1_1_user.html#aa966adc12c56a4cc70da92207fa50929">install</a>()</div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;    {</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;        $dbPrefix = $this-&gt;getDbPrefix();</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;        $result = self::$dbo-&gt;exec(<span class="stringliteral">&quot;CREATE TABLE IF NOT EXISTS `{$dbPrefix}user` (</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="stringliteral">            `id` INTEGER(11) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="stringliteral">            `email` VARCHAR(128) NOT NULL UNIQUE,</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="stringliteral">            `password` VARCHAR(64),</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="stringliteral">            `sexe` ENUM(&#39;MALE&#39;, &#39;FEMALE&#39;) NULL,</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="stringliteral">            `optin` BOOLEAN DEFAULT FALSE,</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="stringliteral">            `register` DATETIME NOT NULL,</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="stringliteral">            `lastConnect` DATETIME NOT NULL,</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="stringliteral">            `lastVisit` DATETIME NOT NULL,</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="stringliteral">            `registerIp` VARCHAR(42) NOT NULL,</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="stringliteral">            `lastConnectIp` VARCHAR(42) NOT NULL,</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="stringliteral">            `lastVisitIp` VARCHAR(42) NOT NULL</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="stringliteral">        )&quot;</span>);</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;        <span class="keywordflow">if</span> ($result === <span class="keyword">false</span>)</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;            <span class="keywordflow">throw</span> new \Exception(get_class().<span class="stringliteral">&quot;: &quot;</span>.self::$dbo-&gt;errorInfo()[2]);</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;    }</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;</div>
+<div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="class_entity_1_1_user.html#abbda66c832a371bc9b6ec05cb8734efc">   28</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_entity_1_1_user.html#abbda66c832a371bc9b6ec05cb8734efc">__construct</a>($id = null)</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;    {</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;        $this-&gt;<span class="keyword">register</span> = $this-&gt;lastVisit = $this-&gt;lastConnect = new \DateTime();</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;        $this-&gt;registerIp = $this-&gt;lastVisitIp = $this-&gt;lastConnectIp = $_SERVER[<span class="stringliteral">&quot;REMOTE_ADDR&quot;</span>];</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;        parent::__construct($id);</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;    }</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;</div>
+<div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="class_entity_1_1_user.html#aac8f8ac2e48fce84e6fadde734001d82">   35</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_entity_1_1_user.html#aac8f8ac2e48fce84e6fadde734001d82">checkPassword</a>($value)</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;    {</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;        <span class="keywordflow">return</span> password_verify($value, $this-&gt;password);</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;    }</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;</div>
+<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="class_entity_1_1_user.html#a1da155ea4c8dda7eb4cf986f05634003">   40</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_entity_1_1_user.html#a1da155ea4c8dda7eb4cf986f05634003">setPassword</a>($value)</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;    {</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;        parent::__set(<span class="stringliteral">&quot;password&quot;</span>, password_hash($value, PASSWORD_BCRYPT));</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;    }</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;</div>
+<div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="class_entity_1_1_user.html#a79b36d71c6f1d4f9e6c4c3e34c081456">   45</a></span>&#160;    <span class="keyword">public</span> <span class="keyword">function</span> <a class="code" href="class_entity_1_1_user.html#a79b36d71c6f1d4f9e6c4c3e34c081456">__set</a>($key, $value)</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;    {</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;        <span class="keywordflow">if</span> ($key == <span class="stringliteral">&quot;password&quot;</span>)</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;            <span class="keywordflow">return</span> $this-&gt;setPassword($value);</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;        <span class="keywordflow">return</span> parent::__set($key, $value);</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;    }</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;}</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;</div>
+<div class="ttc" id="class_entity_1_1_user_html_aa966adc12c56a4cc70da92207fa50929"><div class="ttname"><a href="class_entity_1_1_user.html#aa966adc12c56a4cc70da92207fa50929">Entity\User\install</a></div><div class="ttdeci">install()</div><div class="ttdef"><b>Definition:</b> <a href="_user_8php_source.html#l00007">User.php:7</a></div></div>
+<div class="ttc" id="namespace_entity_html"><div class="ttname"><a href="namespace_entity.html">Entity</a></div><div class="ttdef"><b>Definition:</b> <a href="_address_8php_source.html#l00003">Address.php:3</a></div></div>
+<div class="ttc" id="class_entity_1_1_user_html_a79b36d71c6f1d4f9e6c4c3e34c081456"><div class="ttname"><a href="class_entity_1_1_user.html#a79b36d71c6f1d4f9e6c4c3e34c081456">Entity\User\__set</a></div><div class="ttdeci">__set($key, $value)</div><div class="ttdef"><b>Definition:</b> <a href="_user_8php_source.html#l00045">User.php:45</a></div></div>
+<div class="ttc" id="class_entity_1_1_user_html"><div class="ttname"><a href="class_entity_1_1_user.html">Entity\User</a></div><div class="ttdef"><b>Definition:</b> <a href="_user_8php_source.html#l00005">User.php:5</a></div></div>
+<div class="ttc" id="class_entity_1_1_user_html_a1da155ea4c8dda7eb4cf986f05634003"><div class="ttname"><a href="class_entity_1_1_user.html#a1da155ea4c8dda7eb4cf986f05634003">Entity\User\setPassword</a></div><div class="ttdeci">setPassword($value)</div><div class="ttdef"><b>Definition:</b> <a href="_user_8php_source.html#l00040">User.php:40</a></div></div>
+<div class="ttc" id="class_entity_1_1_model_base_html"><div class="ttname"><a href="class_entity_1_1_model_base.html">Entity\ModelBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_model_base_8php_source.html#l00005">ModelBase.php:5</a></div></div>
+<div class="ttc" id="class_entity_1_1_user_html_aac8f8ac2e48fce84e6fadde734001d82"><div class="ttname"><a href="class_entity_1_1_user.html#aac8f8ac2e48fce84e6fadde734001d82">Entity\User\checkPassword</a></div><div class="ttdeci">checkPassword($value)</div><div class="ttdef"><b>Definition:</b> <a href="_user_8php_source.html#l00035">User.php:35</a></div></div>
+<div class="ttc" id="class_entity_1_1_user_html_abbda66c832a371bc9b6ec05cb8734efc"><div class="ttname"><a href="class_entity_1_1_user.html#abbda66c832a371bc9b6ec05cb8734efc">Entity\User\__construct</a></div><div class="ttdeci">__construct($id=null)</div><div class="ttdef"><b>Definition:</b> <a href="_user_8php_source.html#l00028">User.php:28</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:19 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

+ 132 - 0
doc/html/annotated.html

@@ -0,0 +1,132 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: Data Structures</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+    </ul>
+  </div>
+</div><!-- top -->
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">Data Structures</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock">Here are the data structures with brief descriptions:</div><div class="directory">
+<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span>]</div><table class="directory">
+<tr id="row_0_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_0_" class="arrow" onclick="toggleFolder('0_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespace_controller.html" target="_self">Controller</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_controller_1_1_category_controller.html" target="_self">CategoryController</a></td><td class="desc"></td></tr>
+<tr id="row_0_1_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_controller_1_1_product_controller.html" target="_self">ProductController</a></td><td class="desc"></td></tr>
+<tr id="row_1_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_1_" class="arrow" onclick="toggleFolder('1_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespace_entity.html" target="_self">Entity</a></td><td class="desc"></td></tr>
+<tr id="row_1_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_entity_1_1_address.html" target="_self">Address</a></td><td class="desc"></td></tr>
+<tr id="row_1_1_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_entity_1_1_admin.html" target="_self">Admin</a></td><td class="desc"></td></tr>
+<tr id="row_1_2_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_entity_1_1_cart.html" target="_self">Cart</a></td><td class="desc"></td></tr>
+<tr id="row_1_3_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_entity_1_1_cart_product.html" target="_self">CartProduct</a></td><td class="desc"></td></tr>
+<tr id="row_1_4_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_entity_1_1_category.html" target="_self">Category</a></td><td class="desc"></td></tr>
+<tr id="row_1_5_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_entity_1_1_cms.html" target="_self">Cms</a></td><td class="desc"></td></tr>
+<tr id="row_1_6_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_entity_1_1_config.html" target="_self">Config</a></td><td class="desc"></td></tr>
+<tr id="row_1_7_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_entity_1_1_meta.html" target="_self">Meta</a></td><td class="desc"></td></tr>
+<tr id="row_1_8_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_entity_1_1_model_base.html" target="_self">ModelBase</a></td><td class="desc"></td></tr>
+<tr id="row_1_9_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_entity_1_1_module.html" target="_self">Module</a></td><td class="desc"></td></tr>
+<tr id="row_1_10_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_entity_1_1_module_hook.html" target="_self">ModuleHook</a></td><td class="desc"></td></tr>
+<tr id="row_1_11_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_entity_1_1_product.html" target="_self">Product</a></td><td class="desc"></td></tr>
+<tr id="row_1_12_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_entity_1_1_user.html" target="_self">User</a></td><td class="desc"></td></tr>
+<tr id="row_2_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_2_" class="arrow" onclick="toggleFolder('2_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespace_exception.html" target="_self">Exception</a></td><td class="desc"></td></tr>
+<tr id="row_2_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_exception_1_1_error404.html" target="_self">Error404</a></td><td class="desc"></td></tr>
+<tr id="row_3_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_3_" class="arrow" onclick="toggleFolder('3_')">&#9660;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespace_tools.html" target="_self">Tools</a></td><td class="desc"></td></tr>
+<tr id="row_3_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_tools_1_1_a_controller.html" target="_self">AController</a></td><td class="desc"></td></tr>
+<tr id="row_3_1_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_tools_1_1_a_module.html" target="_self">AModule</a></td><td class="desc"></td></tr>
+<tr id="row_3_2_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_tools_1_1_context.html" target="_self">Context</a></td><td class="desc"></td></tr>
+<tr id="row_3_3_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_tools_1_1_hook_event.html" target="_self">HookEvent</a></td><td class="desc"></td></tr>
+<tr id="row_3_4_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_tools_1_1_hooks.html" target="_self">Hooks</a></td><td class="desc"></td></tr>
+<tr id="row_3_5_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_tools_1_1_module_manager.html" target="_self">ModuleManager</a></td><td class="desc"></td></tr>
+<tr id="row_3_6_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_tools_1_1_router.html" target="_self">Router</a></td><td class="desc"></td></tr>
+<tr id="row_4_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_test2_module.html" target="_self">Test2Module</a></td><td class="desc"></td></tr>
+<tr id="row_5_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_test_module.html" target="_self">TestModule</a></td><td class="desc"></td></tr>
+</table>
+</div><!-- directory -->
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:19 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

+ 157 - 0
doc/html/autoload_8php.html

@@ -0,0 +1,157 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: /home/isundil/Project/ecom/core/autoload.php File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_75b82e7e4a5feb05200b9ad7adf06257.html">home</a></li><li class="navelem"><a class="el" href="dir_9db4aabfa12fb2197f4b553e7ea8deed.html">isundil</a></li><li class="navelem"><a class="el" href="dir_1a6cb19e8504dda728b9574aa47fdf34.html">Project</a></li><li class="navelem"><a class="el" href="dir_f8738126562420a628a94e1d7172443f.html">ecom</a></li><li class="navelem"><a class="el" href="dir_fc33a2a7f6da4d78118e1e23a8f17b51.html">core</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#func-members">Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">autoload.php File Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p><a href="autoload_8php_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:a2ecfde85f554ea0b3fef0993aef304a9"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="autoload_8php.html#a2ecfde85f554ea0b3fef0993aef304a9">__autoload</a> ($className)</td></tr>
+<tr class="separator:a2ecfde85f554ea0b3fef0993aef304a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a2ecfde85f554ea0b3fef0993aef304a9"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">__autoload </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$className</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Load classes from core directories </p><dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramtype">string</td><td class="paramname">$classname</td><td>Class to load </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>file path loaded </dd></dl>
+
+<p>Definition at line <a class="el" href="autoload_8php_source.html#l00008">8</a> of file <a class="el" href="autoload_8php_source.html">autoload.php</a>.</p>
+<div class="fragment"><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;{</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;    <span class="keywordflow">if</span> (strpos($className, <span class="charliteral">&#39;\\&#39;</span>) === <span class="keyword">false</span>)</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;        <span class="keywordflow">return</span> FALSE;</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;    list($namespace, $class) = explode(<span class="charliteral">&#39;\\&#39;</span>, $className, 2);</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;    $path = null;</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;    <span class="keywordflow">switch</span> ($namespace)</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;    {</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;    <span class="keywordflow">case</span> <span class="stringliteral">&quot;Entity&quot;</span>:</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;        $path = <span class="stringliteral">&quot;core/models/{$class}.php&quot;</span>; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;    <span class="keywordflow">case</span> <span class="stringliteral">&quot;Tools&quot;</span>:</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;        $path = <span class="stringliteral">&quot;core/tools/{$class}.php&quot;</span>; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;    <span class="keywordflow">case</span> <span class="stringliteral">&quot;Controller&quot;</span>:</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;        $path = <span class="stringliteral">&quot;core/controllers/{$class}.php&quot;</span>; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;    <span class="keywordflow">case</span> <span class="stringliteral">&quot;Exception&quot;</span>:</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;        $path = <span class="stringliteral">&quot;core/exceptions/{$class}.php&quot;</span>; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;    }</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;    <span class="keywordflow">if</span> (file_exists($path))</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;        include_once ($path);</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;    <span class="keywordflow">return</span> $path;</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;}</div>
+</div><!-- fragment -->
+</div>
+</div>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:19 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

+ 126 - 0
doc/html/autoload_8php_source.html

@@ -0,0 +1,126 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: /home/isundil/Project/ecom/core/autoload.php Source File</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li class="current"><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="files.html"><span>File&#160;List</span></a></li>
+      <li><a href="globals.html"><span>Globals</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="dir_75b82e7e4a5feb05200b9ad7adf06257.html">home</a></li><li class="navelem"><a class="el" href="dir_9db4aabfa12fb2197f4b553e7ea8deed.html">isundil</a></li><li class="navelem"><a class="el" href="dir_1a6cb19e8504dda728b9574aa47fdf34.html">Project</a></li><li class="navelem"><a class="el" href="dir_f8738126562420a628a94e1d7172443f.html">ecom</a></li><li class="navelem"><a class="el" href="dir_fc33a2a7f6da4d78118e1e23a8f17b51.html">core</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">autoload.php</div>  </div>
+</div><!--header-->
+<div class="contents">
+<a href="autoload_8php.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;&lt;?php</div>
+<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;</div>
+<div class="line"><a name="l00008"></a><span class="lineno"><a class="line" href="autoload_8php.html#a2ecfde85f554ea0b3fef0993aef304a9">    8</a></span>&#160;<span class="keyword">function</span> <a class="code" href="autoload_8php.html#a2ecfde85f554ea0b3fef0993aef304a9">__autoload</a>($className)</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;{</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;    <span class="keywordflow">if</span> (strpos($className, <span class="charliteral">&#39;\\&#39;</span>) === <span class="keyword">false</span>)</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;        <span class="keywordflow">return</span> FALSE;</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;    list($namespace, $class) = explode(<span class="charliteral">&#39;\\&#39;</span>, $className, 2);</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;    $path = null;</div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;    <span class="keywordflow">switch</span> ($namespace)</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;    {</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;    <span class="keywordflow">case</span> <span class="stringliteral">&quot;Entity&quot;</span>:</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;        $path = <span class="stringliteral">&quot;core/models/{$class}.php&quot;</span>; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;    <span class="keywordflow">case</span> <span class="stringliteral">&quot;Tools&quot;</span>:</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;        $path = <span class="stringliteral">&quot;core/tools/{$class}.php&quot;</span>; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;    <span class="keywordflow">case</span> <span class="stringliteral">&quot;Controller&quot;</span>:</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;        $path = <span class="stringliteral">&quot;core/controllers/{$class}.php&quot;</span>; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;    <span class="keywordflow">case</span> <span class="stringliteral">&quot;Exception&quot;</span>:</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;        $path = <span class="stringliteral">&quot;core/exceptions/{$class}.php&quot;</span>; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;    }</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;    <span class="keywordflow">if</span> (file_exists($path))</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;        include_once ($path);</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;    <span class="keywordflow">return</span> $path;</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;}</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;</div>
+<div class="ttc" id="autoload_8php_html_a2ecfde85f554ea0b3fef0993aef304a9"><div class="ttname"><a href="autoload_8php.html#a2ecfde85f554ea0b3fef0993aef304a9">__autoload</a></div><div class="ttdeci">__autoload($className)</div><div class="ttdef"><b>Definition:</b> <a href="autoload_8php_source.html#l00008">autoload.php:8</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:18 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

二進制
doc/html/bc_s.png


二進制
doc/html/bdwn.png


+ 170 - 0
doc/html/class_controller_1_1_category_controller.html

@@ -0,0 +1,170 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: CategoryController Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespace_controller.html">Controller</a></li><li class="navelem"><a class="el" href="class_controller_1_1_category_controller.html">CategoryController</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">CategoryController Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for CategoryController:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="class_controller_1_1_category_controller.png" usemap="#CategoryController_map" alt=""/>
+  <map id="CategoryController_map" name="CategoryController_map">
+<area href="class_tools_1_1_a_controller.html" alt="AController" shape="rect" coords="0,0,120,24"/>
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a7b7ea19d18501d4214fb4dcb274addea"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_controller_1_1_category_controller.html#a7b7ea19d18501d4214fb4dcb274addea">__construct</a> ($context, $params)</td></tr>
+<tr class="separator:a7b7ea19d18501d4214fb4dcb274addea"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_class_tools_1_1_a_controller"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_tools_1_1_a_controller')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="class_tools_1_1_a_controller.html">AController</a></td></tr>
+<tr class="memitem:a7b7ea19d18501d4214fb4dcb274addea inherit pub_methods_class_tools_1_1_a_controller"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_a_controller.html#a7b7ea19d18501d4214fb4dcb274addea">__construct</a> ($context, $params)</td></tr>
+<tr class="separator:a7b7ea19d18501d4214fb4dcb274addea inherit pub_methods_class_tools_1_1_a_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af8fa59992209e36dccb3eefb0f75531f inherit pub_methods_class_tools_1_1_a_controller"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_a_controller.html#af8fa59992209e36dccb3eefb0f75531f">start</a> ()</td></tr>
+<tr class="separator:af8fa59992209e36dccb3eefb0f75531f inherit pub_methods_class_tools_1_1_a_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
+Additional Inherited Members</h2></td></tr>
+<tr class="inherit_header pro_attribs_class_tools_1_1_a_controller"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_class_tools_1_1_a_controller')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="class_tools_1_1_a_controller.html">AController</a></td></tr>
+<tr class="memitem:a21ae116e22adda72b3971dde67f4ef19 inherit pro_attribs_class_tools_1_1_a_controller"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_a_controller.html#a21ae116e22adda72b3971dde67f4ef19">$params</a></td></tr>
+<tr class="separator:a21ae116e22adda72b3971dde67f4ef19 inherit pro_attribs_class_tools_1_1_a_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock">
+<p>Definition at line <a class="el" href="_category_controller_8php_source.html#l00005">5</a> of file <a class="el" href="_category_controller_8php_source.html">CategoryController.php</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a7b7ea19d18501d4214fb4dcb274addea"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">__construct </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$context</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$params</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="_category_controller_8php_source.html#l00007">7</a> of file <a class="el" href="_category_controller_8php_source.html">CategoryController.php</a>.</p>
+<div class="fragment"><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;    {</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;        parent::__construct($context, <a class="code" href="class_tools_1_1_a_controller.html#a21ae116e22adda72b3971dde67f4ef19">$params</a>);</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;    }</div>
+<div class="ttc" id="class_tools_1_1_a_controller_html_a21ae116e22adda72b3971dde67f4ef19"><div class="ttname"><a href="class_tools_1_1_a_controller.html#a21ae116e22adda72b3971dde67f4ef19">Tools\AController\$params</a></div><div class="ttdeci">$params</div><div class="ttdef"><b>Definition:</b> <a href="_a_controller_8php_source.html#l00021">AController.php:21</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>/home/isundil/Project/ecom/core/controllers/<a class="el" href="_category_controller_8php_source.html">CategoryController.php</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:19 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

二進制
doc/html/class_controller_1_1_category_controller.png


+ 171 - 0
doc/html/class_controller_1_1_product_controller.html

@@ -0,0 +1,171 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: ProductController Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespace_controller.html">Controller</a></li><li class="navelem"><a class="el" href="class_controller_1_1_product_controller.html">ProductController</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">ProductController Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for ProductController:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="class_controller_1_1_product_controller.png" usemap="#ProductController_map" alt=""/>
+  <map id="ProductController_map" name="ProductController_map">
+<area href="class_tools_1_1_a_controller.html" alt="AController" shape="rect" coords="0,0,112,24"/>
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a7b7ea19d18501d4214fb4dcb274addea"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_controller_1_1_product_controller.html#a7b7ea19d18501d4214fb4dcb274addea">__construct</a> ($context, $params)</td></tr>
+<tr class="separator:a7b7ea19d18501d4214fb4dcb274addea"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_class_tools_1_1_a_controller"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_tools_1_1_a_controller')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="class_tools_1_1_a_controller.html">AController</a></td></tr>
+<tr class="memitem:a7b7ea19d18501d4214fb4dcb274addea inherit pub_methods_class_tools_1_1_a_controller"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_a_controller.html#a7b7ea19d18501d4214fb4dcb274addea">__construct</a> ($context, $params)</td></tr>
+<tr class="separator:a7b7ea19d18501d4214fb4dcb274addea inherit pub_methods_class_tools_1_1_a_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af8fa59992209e36dccb3eefb0f75531f inherit pub_methods_class_tools_1_1_a_controller"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_a_controller.html#af8fa59992209e36dccb3eefb0f75531f">start</a> ()</td></tr>
+<tr class="separator:af8fa59992209e36dccb3eefb0f75531f inherit pub_methods_class_tools_1_1_a_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
+Additional Inherited Members</h2></td></tr>
+<tr class="inherit_header pro_attribs_class_tools_1_1_a_controller"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_class_tools_1_1_a_controller')"><img src="closed.png" alt="-"/>&#160;Protected Attributes inherited from <a class="el" href="class_tools_1_1_a_controller.html">AController</a></td></tr>
+<tr class="memitem:a21ae116e22adda72b3971dde67f4ef19 inherit pro_attribs_class_tools_1_1_a_controller"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_a_controller.html#a21ae116e22adda72b3971dde67f4ef19">$params</a></td></tr>
+<tr class="separator:a21ae116e22adda72b3971dde67f4ef19 inherit pro_attribs_class_tools_1_1_a_controller"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock">
+<p>Definition at line <a class="el" href="_product_controller_8php_source.html#l00005">5</a> of file <a class="el" href="_product_controller_8php_source.html">ProductController.php</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a7b7ea19d18501d4214fb4dcb274addea"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">__construct </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$context</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$params</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="_product_controller_8php_source.html#l00007">7</a> of file <a class="el" href="_product_controller_8php_source.html">ProductController.php</a>.</p>
+<div class="fragment"><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;    {</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;        parent::__construct($context, <a class="code" href="class_tools_1_1_a_controller.html#a21ae116e22adda72b3971dde67f4ef19">$params</a>);</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;        <span class="keywordflow">throw</span> new \Exception\Error404();</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;    }</div>
+<div class="ttc" id="class_tools_1_1_a_controller_html_a21ae116e22adda72b3971dde67f4ef19"><div class="ttname"><a href="class_tools_1_1_a_controller.html#a21ae116e22adda72b3971dde67f4ef19">Tools\AController\$params</a></div><div class="ttdeci">$params</div><div class="ttdef"><b>Definition:</b> <a href="_a_controller_8php_source.html#l00021">AController.php:21</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>/home/isundil/Project/ecom/core/controllers/<a class="el" href="_product_controller_8php_source.html">ProductController.php</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:19 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

二進制
doc/html/class_controller_1_1_product_controller.png


+ 205 - 0
doc/html/class_entity_1_1_address.html

@@ -0,0 +1,205 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: Address Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespace_entity.html">Entity</a></li><li class="navelem"><a class="el" href="class_entity_1_1_address.html">Address</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pro-methods">Protected Member Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">Address Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for Address:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="class_entity_1_1_address.png" usemap="#Address_map" alt=""/>
+  <map id="Address_map" name="Address_map">
+<area href="class_entity_1_1_model_base.html" alt="ModelBase" shape="rect" coords="0,0,75,24"/>
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr class="memitem:aa966adc12c56a4cc70da92207fa50929"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_address.html#aa966adc12c56a4cc70da92207fa50929">install</a> ()</td></tr>
+<tr class="separator:aa966adc12c56a4cc70da92207fa50929"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_class_entity_1_1_model_base"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_class_entity_1_1_model_base')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="class_entity_1_1_model_base.html">ModelBase</a></td></tr>
+<tr class="memitem:aa966adc12c56a4cc70da92207fa50929 inherit pro_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#aa966adc12c56a4cc70da92207fa50929">install</a> ()</td></tr>
+<tr class="separator:aa966adc12c56a4cc70da92207fa50929 inherit pro_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
+Additional Inherited Members</h2></td></tr>
+<tr class="inherit_header pub_methods_class_entity_1_1_model_base"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_entity_1_1_model_base')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="class_entity_1_1_model_base.html">ModelBase</a></td></tr>
+<tr class="memitem:abbda66c832a371bc9b6ec05cb8734efc inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#abbda66c832a371bc9b6ec05cb8734efc">__construct</a> ($id=null)</td></tr>
+<tr class="separator:abbda66c832a371bc9b6ec05cb8734efc inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a93566f2c8d709d410ae8ec46b813999b inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a93566f2c8d709d410ae8ec46b813999b">getTableName</a> ()</td></tr>
+<tr class="separator:a93566f2c8d709d410ae8ec46b813999b inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abcae69e19426269fa17be92decfce7fd inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#abcae69e19426269fa17be92decfce7fd">getMeta</a> ($lang=null)</td></tr>
+<tr class="separator:abcae69e19426269fa17be92decfce7fd inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4537dad3b44254124991341cc91b28fb inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a4537dad3b44254124991341cc91b28fb">__get</a> ($key)</td></tr>
+<tr class="separator:a4537dad3b44254124991341cc91b28fb inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a79b36d71c6f1d4f9e6c4c3e34c081456 inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a79b36d71c6f1d4f9e6c4c3e34c081456">__set</a> ($key, $value)</td></tr>
+<tr class="separator:a79b36d71c6f1d4f9e6c4c3e34c081456 inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afc8a3c62679cf00ade9f15fb2a6d6132 inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#afc8a3c62679cf00ade9f15fb2a6d6132">save</a> ()</td></tr>
+<tr class="separator:afc8a3c62679cf00ade9f15fb2a6d6132 inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a224e7fc70ae3e2646cd1167f72628ac2 inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a224e7fc70ae3e2646cd1167f72628ac2">selects</a> ($criteria=null, $orderBy=null)</td></tr>
+<tr class="separator:a224e7fc70ae3e2646cd1167f72628ac2 inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a20020d3878c4bc983b90ba193c6f43a3 inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a20020d3878c4bc983b90ba193c6f43a3">selectById</a> ($id)</td></tr>
+<tr class="separator:a20020d3878c4bc983b90ba193c6f43a3 inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_static_methods_class_entity_1_1_model_base"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_class_entity_1_1_model_base')"><img src="closed.png" alt="-"/>&#160;Static Public Member Functions inherited from <a class="el" href="class_entity_1_1_model_base.html">ModelBase</a></td></tr>
+<tr class="memitem:a9f0be6ae273d3669e11c29910a0be338 inherit pub_static_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a9f0be6ae273d3669e11c29910a0be338">init</a> ()</td></tr>
+<tr class="separator:a9f0be6ae273d3669e11c29910a0be338 inherit pub_static_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8f625fd84b76c94749c8b1c992ef85ed inherit pub_static_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a8f625fd84b76c94749c8b1c992ef85ed">getDbPrefix</a> ()</td></tr>
+<tr class="separator:a8f625fd84b76c94749c8b1c992ef85ed inherit pub_static_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae59aa0f62b893798e267e842e0d10228 inherit pub_static_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#ae59aa0f62b893798e267e842e0d10228">setup</a> ()</td></tr>
+<tr class="separator:ae59aa0f62b893798e267e842e0d10228 inherit pub_static_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_static_attribs_class_entity_1_1_model_base"><td colspan="2" onclick="javascript:toggleInherit('pro_static_attribs_class_entity_1_1_model_base')"><img src="closed.png" alt="-"/>&#160;Static Protected Attributes inherited from <a class="el" href="class_entity_1_1_model_base.html">ModelBase</a></td></tr>
+<tr class="memitem:a7dcb5614ba1a7c7cd9379bdef91bd8d3 inherit pro_static_attribs_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a7dcb5614ba1a7c7cd9379bdef91bd8d3">$dbo</a> = null</td></tr>
+<tr class="separator:a7dcb5614ba1a7c7cd9379bdef91bd8d3 inherit pro_static_attribs_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock">
+<p>Definition at line <a class="el" href="_address_8php_source.html#l00005">5</a> of file <a class="el" href="_address_8php_source.html">Address.php</a>.</p>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="aa966adc12c56a4cc70da92207fa50929"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">install </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="_address_8php_source.html#l00007">7</a> of file <a class="el" href="_address_8php_source.html">Address.php</a>.</p>
+<div class="fragment"><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;    {</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;        $dbPrefix = $this-&gt;<a class="code" href="class_entity_1_1_model_base.html#a8f625fd84b76c94749c8b1c992ef85ed">getDbPrefix</a>();</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;        $result = self::$dbo-&gt;exec(<span class="stringliteral">&quot;CREATE TABLE IF NOT EXISTS `{$dbPrefix}address` (</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="stringliteral">            `id` INTEGER(11) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="stringliteral">            `user_id` INTEGER(11) UNSIGNED NULL,</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="stringliteral">            `addressName` VARCHAR(255) NOT NULL,</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="stringliteral">            `fullName` VARCHAR(255) NOT NULL,</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="stringliteral">            `streetAddress` TEXT NOT NULL,</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="stringliteral">            `city` VARCHAR(128) NOT NULL,</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="stringliteral">            `zipCode` VARCHAR(16) NOT NULL,</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="stringliteral">            `country` VARCHAR(128) NOT NULL,</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="stringliteral">            `lastUsed` DATETIME NOT NULL,</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="stringliteral">            FOREIGN KEY (`user_id`) REFERENCES `{$dbPrefix}user`(id),</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="stringliteral">            UNIQUE(`user_id`, `addressName`)</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="stringliteral">        )&quot;</span>);</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;        <span class="keywordflow">if</span> ($result === <span class="keyword">false</span>)</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;            <span class="keywordflow">throw</span> new \Exception(get_class().<span class="stringliteral">&quot;: &quot;</span>.self::$dbo-&gt;errorInfo()[2]);</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;    }</div>
+<div class="ttc" id="class_entity_1_1_model_base_html_a8f625fd84b76c94749c8b1c992ef85ed"><div class="ttname"><a href="class_entity_1_1_model_base.html#a8f625fd84b76c94749c8b1c992ef85ed">Entity\ModelBase\getDbPrefix</a></div><div class="ttdeci">static getDbPrefix()</div><div class="ttdef"><b>Definition:</b> <a href="_model_base_8php_source.html#l00034">ModelBase.php:34</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>/home/isundil/Project/ecom/core/models/<a class="el" href="_address_8php_source.html">Address.php</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:19 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

二進制
doc/html/class_entity_1_1_address.png


+ 304 - 0
doc/html/class_entity_1_1_admin.html

@@ -0,0 +1,304 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: Admin Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespace_entity.html">Entity</a></li><li class="navelem"><a class="el" href="class_entity_1_1_admin.html">Admin</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">Admin Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for Admin:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="class_entity_1_1_admin.png" usemap="#Admin_map" alt=""/>
+  <map id="Admin_map" name="Admin_map">
+<area href="class_entity_1_1_model_base.html" alt="ModelBase" shape="rect" coords="0,0,75,24"/>
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:aa966adc12c56a4cc70da92207fa50929"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_admin.html#aa966adc12c56a4cc70da92207fa50929">install</a> ()</td></tr>
+<tr class="separator:aa966adc12c56a4cc70da92207fa50929"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abbda66c832a371bc9b6ec05cb8734efc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_admin.html#abbda66c832a371bc9b6ec05cb8734efc">__construct</a> ($id=null)</td></tr>
+<tr class="separator:abbda66c832a371bc9b6ec05cb8734efc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aac8f8ac2e48fce84e6fadde734001d82"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_admin.html#aac8f8ac2e48fce84e6fadde734001d82">checkPassword</a> ($value)</td></tr>
+<tr class="separator:aac8f8ac2e48fce84e6fadde734001d82"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1da155ea4c8dda7eb4cf986f05634003"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_admin.html#a1da155ea4c8dda7eb4cf986f05634003">setPassword</a> ($value)</td></tr>
+<tr class="separator:a1da155ea4c8dda7eb4cf986f05634003"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a79b36d71c6f1d4f9e6c4c3e34c081456"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_admin.html#a79b36d71c6f1d4f9e6c4c3e34c081456">__set</a> ($key, $value)</td></tr>
+<tr class="separator:a79b36d71c6f1d4f9e6c4c3e34c081456"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_class_entity_1_1_model_base"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_entity_1_1_model_base')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="class_entity_1_1_model_base.html">ModelBase</a></td></tr>
+<tr class="memitem:abbda66c832a371bc9b6ec05cb8734efc inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#abbda66c832a371bc9b6ec05cb8734efc">__construct</a> ($id=null)</td></tr>
+<tr class="separator:abbda66c832a371bc9b6ec05cb8734efc inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a93566f2c8d709d410ae8ec46b813999b inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a93566f2c8d709d410ae8ec46b813999b">getTableName</a> ()</td></tr>
+<tr class="separator:a93566f2c8d709d410ae8ec46b813999b inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abcae69e19426269fa17be92decfce7fd inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#abcae69e19426269fa17be92decfce7fd">getMeta</a> ($lang=null)</td></tr>
+<tr class="separator:abcae69e19426269fa17be92decfce7fd inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4537dad3b44254124991341cc91b28fb inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a4537dad3b44254124991341cc91b28fb">__get</a> ($key)</td></tr>
+<tr class="separator:a4537dad3b44254124991341cc91b28fb inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a79b36d71c6f1d4f9e6c4c3e34c081456 inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a79b36d71c6f1d4f9e6c4c3e34c081456">__set</a> ($key, $value)</td></tr>
+<tr class="separator:a79b36d71c6f1d4f9e6c4c3e34c081456 inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afc8a3c62679cf00ade9f15fb2a6d6132 inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#afc8a3c62679cf00ade9f15fb2a6d6132">save</a> ()</td></tr>
+<tr class="separator:afc8a3c62679cf00ade9f15fb2a6d6132 inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a224e7fc70ae3e2646cd1167f72628ac2 inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a224e7fc70ae3e2646cd1167f72628ac2">selects</a> ($criteria=null, $orderBy=null)</td></tr>
+<tr class="separator:a224e7fc70ae3e2646cd1167f72628ac2 inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a20020d3878c4bc983b90ba193c6f43a3 inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a20020d3878c4bc983b90ba193c6f43a3">selectById</a> ($id)</td></tr>
+<tr class="separator:a20020d3878c4bc983b90ba193c6f43a3 inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
+Additional Inherited Members</h2></td></tr>
+<tr class="inherit_header pub_static_methods_class_entity_1_1_model_base"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_class_entity_1_1_model_base')"><img src="closed.png" alt="-"/>&#160;Static Public Member Functions inherited from <a class="el" href="class_entity_1_1_model_base.html">ModelBase</a></td></tr>
+<tr class="memitem:a9f0be6ae273d3669e11c29910a0be338 inherit pub_static_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a9f0be6ae273d3669e11c29910a0be338">init</a> ()</td></tr>
+<tr class="separator:a9f0be6ae273d3669e11c29910a0be338 inherit pub_static_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8f625fd84b76c94749c8b1c992ef85ed inherit pub_static_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a8f625fd84b76c94749c8b1c992ef85ed">getDbPrefix</a> ()</td></tr>
+<tr class="separator:a8f625fd84b76c94749c8b1c992ef85ed inherit pub_static_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae59aa0f62b893798e267e842e0d10228 inherit pub_static_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#ae59aa0f62b893798e267e842e0d10228">setup</a> ()</td></tr>
+<tr class="separator:ae59aa0f62b893798e267e842e0d10228 inherit pub_static_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_class_entity_1_1_model_base"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_class_entity_1_1_model_base')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="class_entity_1_1_model_base.html">ModelBase</a></td></tr>
+<tr class="memitem:aa966adc12c56a4cc70da92207fa50929 inherit pro_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#aa966adc12c56a4cc70da92207fa50929">install</a> ()</td></tr>
+<tr class="separator:aa966adc12c56a4cc70da92207fa50929 inherit pro_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_static_attribs_class_entity_1_1_model_base"><td colspan="2" onclick="javascript:toggleInherit('pro_static_attribs_class_entity_1_1_model_base')"><img src="closed.png" alt="-"/>&#160;Static Protected Attributes inherited from <a class="el" href="class_entity_1_1_model_base.html">ModelBase</a></td></tr>
+<tr class="memitem:a7dcb5614ba1a7c7cd9379bdef91bd8d3 inherit pro_static_attribs_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a7dcb5614ba1a7c7cd9379bdef91bd8d3">$dbo</a> = null</td></tr>
+<tr class="separator:a7dcb5614ba1a7c7cd9379bdef91bd8d3 inherit pro_static_attribs_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock">
+<p>Definition at line <a class="el" href="_admin_8php_source.html#l00005">5</a> of file <a class="el" href="_admin_8php_source.html">Admin.php</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="abbda66c832a371bc9b6ec05cb8734efc"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">__construct </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$id</em> = <code>null</code></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="_admin_8php_source.html#l00037">37</a> of file <a class="el" href="_admin_8php_source.html">Admin.php</a>.</p>
+<div class="fragment"><div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;    {</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;        $this-&gt;lastConnect = new \DateTime();</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;        $this-&gt;lastConnectIp = $_SERVER[<span class="stringliteral">&quot;REMOTE_ADDR&quot;</span>];</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;        parent::__construct(<a class="code" href="class_entity_1_1_model_base.html#ae97941710d863131c700f069b109991e">$id</a>);</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;    }</div>
+<div class="ttc" id="class_entity_1_1_model_base_html_ae97941710d863131c700f069b109991e"><div class="ttname"><a href="class_entity_1_1_model_base.html#ae97941710d863131c700f069b109991e">Entity\ModelBase\$id</a></div><div class="ttdeci">$id</div><div class="ttdef"><b>Definition:</b> <a href="_model_base_8php_source.html#l00011">ModelBase.php:11</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="a79b36d71c6f1d4f9e6c4c3e34c081456"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">__set </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$key</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$value</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="_admin_8php_source.html#l00054">54</a> of file <a class="el" href="_admin_8php_source.html">Admin.php</a>.</p>
+<div class="fragment"><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;    {</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;        <span class="keywordflow">if</span> ($key == <span class="stringliteral">&quot;password&quot;</span>)</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;            <span class="keywordflow">return</span> $this-&gt;<a class="code" href="class_entity_1_1_admin.html#a1da155ea4c8dda7eb4cf986f05634003">setPassword</a>($value);</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;        <span class="keywordflow">return</span> parent::__set($key, $value);</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;    }</div>
+<div class="ttc" id="class_entity_1_1_admin_html_a1da155ea4c8dda7eb4cf986f05634003"><div class="ttname"><a href="class_entity_1_1_admin.html#a1da155ea4c8dda7eb4cf986f05634003">Entity\Admin\setPassword</a></div><div class="ttdeci">setPassword($value)</div><div class="ttdef"><b>Definition:</b> <a href="_admin_8php_source.html#l00049">Admin.php:49</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="aac8f8ac2e48fce84e6fadde734001d82"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">checkPassword </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$value</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="_admin_8php_source.html#l00044">44</a> of file <a class="el" href="_admin_8php_source.html">Admin.php</a>.</p>
+<div class="fragment"><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;    {</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;        <span class="keywordflow">return</span> password_verify($value, $this-&gt;password);</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;    }</div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="aa966adc12c56a4cc70da92207fa50929"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">install </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Role -&gt; 0 : no access -&gt; 1 : read access -&gt; 2 : +write access -&gt; 3 : +delete /disable access</p>
+<p>[0] -&gt; admin (add user, change site configuration) [1] -&gt; cms (add / modify / delete pages) [2] -&gt; products [3] -&gt; orders [4] -&gt; translations</p>
+<p>'*' Is the site admin, have all rights and no one can change this role </p>
+
+<p>Definition at line <a class="el" href="_admin_8php_source.html#l00021">21</a> of file <a class="el" href="_admin_8php_source.html">Admin.php</a>.</p>
+<div class="fragment"><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;    {</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;        $dbPrefix = $this-&gt;<a class="code" href="class_entity_1_1_model_base.html#a8f625fd84b76c94749c8b1c992ef85ed">getDbPrefix</a>();</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;        $result = self::$dbo-&gt;exec(<span class="stringliteral">&quot;CREATE TABLE IF NOT EXISTS `{$dbPrefix}admin` (</span></div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="stringliteral">            `id` INTEGER(11) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,</span></div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="stringliteral">            `email` VARCHAR(128) NOT NULL UNIQUE,</span></div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="stringliteral">            `password` VARCHAR(64),</span></div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="stringliteral">            `role` VARCHAR(8) NOT NULL DEFAULT &#39;00000&#39;,</span></div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="stringliteral">            `lastConnect` DATETIME NOT NULL,</span></div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="stringliteral">            `lastConnectIp` VARCHAR(42) NOT NULL</span></div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="stringliteral">        )&quot;</span>);</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;        <span class="keywordflow">if</span> ($result === <span class="keyword">false</span>)</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;            <span class="keywordflow">throw</span> new \Exception(get_class().<span class="stringliteral">&quot;: &quot;</span>.self::$dbo-&gt;errorInfo()[2]);</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;    }</div>
+<div class="ttc" id="class_entity_1_1_model_base_html_a8f625fd84b76c94749c8b1c992ef85ed"><div class="ttname"><a href="class_entity_1_1_model_base.html#a8f625fd84b76c94749c8b1c992ef85ed">Entity\ModelBase\getDbPrefix</a></div><div class="ttdeci">static getDbPrefix()</div><div class="ttdef"><b>Definition:</b> <a href="_model_base_8php_source.html#l00034">ModelBase.php:34</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a1da155ea4c8dda7eb4cf986f05634003"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">setPassword </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$value</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="_admin_8php_source.html#l00049">49</a> of file <a class="el" href="_admin_8php_source.html">Admin.php</a>.</p>
+<div class="fragment"><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;    {</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;        parent::__set(<span class="stringliteral">&quot;password&quot;</span>, password_hash($value, PASSWORD_BCRYPT));</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;    }</div>
+</div><!-- fragment -->
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>/home/isundil/Project/ecom/core/models/<a class="el" href="_admin_8php_source.html">Admin.php</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:19 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

二進制
doc/html/class_entity_1_1_admin.png


+ 198 - 0
doc/html/class_entity_1_1_cart.html

@@ -0,0 +1,198 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: Cart Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespace_entity.html">Entity</a></li><li class="navelem"><a class="el" href="class_entity_1_1_cart.html">Cart</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pro-methods">Protected Member Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">Cart Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for Cart:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="class_entity_1_1_cart.png" usemap="#Cart_map" alt=""/>
+  <map id="Cart_map" name="Cart_map">
+<area href="class_entity_1_1_model_base.html" alt="ModelBase" shape="rect" coords="0,0,75,24"/>
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr class="memitem:aa966adc12c56a4cc70da92207fa50929"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_cart.html#aa966adc12c56a4cc70da92207fa50929">install</a> ()</td></tr>
+<tr class="separator:aa966adc12c56a4cc70da92207fa50929"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_class_entity_1_1_model_base"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_class_entity_1_1_model_base')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="class_entity_1_1_model_base.html">ModelBase</a></td></tr>
+<tr class="memitem:aa966adc12c56a4cc70da92207fa50929 inherit pro_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#aa966adc12c56a4cc70da92207fa50929">install</a> ()</td></tr>
+<tr class="separator:aa966adc12c56a4cc70da92207fa50929 inherit pro_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
+Additional Inherited Members</h2></td></tr>
+<tr class="inherit_header pub_methods_class_entity_1_1_model_base"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_entity_1_1_model_base')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="class_entity_1_1_model_base.html">ModelBase</a></td></tr>
+<tr class="memitem:abbda66c832a371bc9b6ec05cb8734efc inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#abbda66c832a371bc9b6ec05cb8734efc">__construct</a> ($id=null)</td></tr>
+<tr class="separator:abbda66c832a371bc9b6ec05cb8734efc inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a93566f2c8d709d410ae8ec46b813999b inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a93566f2c8d709d410ae8ec46b813999b">getTableName</a> ()</td></tr>
+<tr class="separator:a93566f2c8d709d410ae8ec46b813999b inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abcae69e19426269fa17be92decfce7fd inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#abcae69e19426269fa17be92decfce7fd">getMeta</a> ($lang=null)</td></tr>
+<tr class="separator:abcae69e19426269fa17be92decfce7fd inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4537dad3b44254124991341cc91b28fb inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a4537dad3b44254124991341cc91b28fb">__get</a> ($key)</td></tr>
+<tr class="separator:a4537dad3b44254124991341cc91b28fb inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a79b36d71c6f1d4f9e6c4c3e34c081456 inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a79b36d71c6f1d4f9e6c4c3e34c081456">__set</a> ($key, $value)</td></tr>
+<tr class="separator:a79b36d71c6f1d4f9e6c4c3e34c081456 inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afc8a3c62679cf00ade9f15fb2a6d6132 inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#afc8a3c62679cf00ade9f15fb2a6d6132">save</a> ()</td></tr>
+<tr class="separator:afc8a3c62679cf00ade9f15fb2a6d6132 inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a224e7fc70ae3e2646cd1167f72628ac2 inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a224e7fc70ae3e2646cd1167f72628ac2">selects</a> ($criteria=null, $orderBy=null)</td></tr>
+<tr class="separator:a224e7fc70ae3e2646cd1167f72628ac2 inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a20020d3878c4bc983b90ba193c6f43a3 inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a20020d3878c4bc983b90ba193c6f43a3">selectById</a> ($id)</td></tr>
+<tr class="separator:a20020d3878c4bc983b90ba193c6f43a3 inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_static_methods_class_entity_1_1_model_base"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_class_entity_1_1_model_base')"><img src="closed.png" alt="-"/>&#160;Static Public Member Functions inherited from <a class="el" href="class_entity_1_1_model_base.html">ModelBase</a></td></tr>
+<tr class="memitem:a9f0be6ae273d3669e11c29910a0be338 inherit pub_static_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a9f0be6ae273d3669e11c29910a0be338">init</a> ()</td></tr>
+<tr class="separator:a9f0be6ae273d3669e11c29910a0be338 inherit pub_static_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8f625fd84b76c94749c8b1c992ef85ed inherit pub_static_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a8f625fd84b76c94749c8b1c992ef85ed">getDbPrefix</a> ()</td></tr>
+<tr class="separator:a8f625fd84b76c94749c8b1c992ef85ed inherit pub_static_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae59aa0f62b893798e267e842e0d10228 inherit pub_static_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#ae59aa0f62b893798e267e842e0d10228">setup</a> ()</td></tr>
+<tr class="separator:ae59aa0f62b893798e267e842e0d10228 inherit pub_static_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_static_attribs_class_entity_1_1_model_base"><td colspan="2" onclick="javascript:toggleInherit('pro_static_attribs_class_entity_1_1_model_base')"><img src="closed.png" alt="-"/>&#160;Static Protected Attributes inherited from <a class="el" href="class_entity_1_1_model_base.html">ModelBase</a></td></tr>
+<tr class="memitem:a7dcb5614ba1a7c7cd9379bdef91bd8d3 inherit pro_static_attribs_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a7dcb5614ba1a7c7cd9379bdef91bd8d3">$dbo</a> = null</td></tr>
+<tr class="separator:a7dcb5614ba1a7c7cd9379bdef91bd8d3 inherit pro_static_attribs_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock">
+<p>Definition at line <a class="el" href="_cart_8php_source.html#l00005">5</a> of file <a class="el" href="_cart_8php_source.html">Cart.php</a>.</p>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="aa966adc12c56a4cc70da92207fa50929"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">install </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="_cart_8php_source.html#l00007">7</a> of file <a class="el" href="_cart_8php_source.html">Cart.php</a>.</p>
+<div class="fragment"><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;    {</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;        $dbPrefix = $this-&gt;<a class="code" href="class_entity_1_1_model_base.html#a8f625fd84b76c94749c8b1c992ef85ed">getDbPrefix</a>();</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;        $result = self::$dbo-&gt;exec(<span class="stringliteral">&quot;CREATE TABLE IF NOT EXISTS `{$dbPrefix}cart` (</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="stringliteral">            `id` INTEGER(11) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="stringliteral">            `user_id` INTEGER(11) UNSIGNED NULL,</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="stringliteral">            `created` DATETIME NOT NULL,</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="stringliteral">            FOREIGN KEY (`user_id`) REFERENCES `{$dbPrefix}user`(id)</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="stringliteral">        )&quot;</span>);</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;        <span class="keywordflow">if</span> ($result === <span class="keyword">false</span>)</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;            <span class="keywordflow">throw</span> new \Exception(get_class().<span class="stringliteral">&quot;: &quot;</span>.self::$dbo-&gt;errorInfo()[2]);</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;    }</div>
+<div class="ttc" id="class_entity_1_1_model_base_html_a8f625fd84b76c94749c8b1c992ef85ed"><div class="ttname"><a href="class_entity_1_1_model_base.html#a8f625fd84b76c94749c8b1c992ef85ed">Entity\ModelBase\getDbPrefix</a></div><div class="ttdeci">static getDbPrefix()</div><div class="ttdef"><b>Definition:</b> <a href="_model_base_8php_source.html#l00034">ModelBase.php:34</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>/home/isundil/Project/ecom/core/models/<a class="el" href="_cart_8php_source.html">Cart.php</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:19 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

二進制
doc/html/class_entity_1_1_cart.png


+ 200 - 0
doc/html/class_entity_1_1_cart_product.html

@@ -0,0 +1,200 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: CartProduct Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespace_entity.html">Entity</a></li><li class="navelem"><a class="el" href="class_entity_1_1_cart_product.html">CartProduct</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pro-methods">Protected Member Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">CartProduct Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for CartProduct:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="class_entity_1_1_cart_product.png" usemap="#CartProduct_map" alt=""/>
+  <map id="CartProduct_map" name="CartProduct_map">
+<area href="class_entity_1_1_model_base.html" alt="ModelBase" shape="rect" coords="0,0,80,24"/>
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr class="memitem:aa966adc12c56a4cc70da92207fa50929"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_cart_product.html#aa966adc12c56a4cc70da92207fa50929">install</a> ()</td></tr>
+<tr class="separator:aa966adc12c56a4cc70da92207fa50929"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_class_entity_1_1_model_base"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_class_entity_1_1_model_base')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="class_entity_1_1_model_base.html">ModelBase</a></td></tr>
+<tr class="memitem:aa966adc12c56a4cc70da92207fa50929 inherit pro_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#aa966adc12c56a4cc70da92207fa50929">install</a> ()</td></tr>
+<tr class="separator:aa966adc12c56a4cc70da92207fa50929 inherit pro_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
+Additional Inherited Members</h2></td></tr>
+<tr class="inherit_header pub_methods_class_entity_1_1_model_base"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_entity_1_1_model_base')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="class_entity_1_1_model_base.html">ModelBase</a></td></tr>
+<tr class="memitem:abbda66c832a371bc9b6ec05cb8734efc inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#abbda66c832a371bc9b6ec05cb8734efc">__construct</a> ($id=null)</td></tr>
+<tr class="separator:abbda66c832a371bc9b6ec05cb8734efc inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a93566f2c8d709d410ae8ec46b813999b inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a93566f2c8d709d410ae8ec46b813999b">getTableName</a> ()</td></tr>
+<tr class="separator:a93566f2c8d709d410ae8ec46b813999b inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abcae69e19426269fa17be92decfce7fd inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#abcae69e19426269fa17be92decfce7fd">getMeta</a> ($lang=null)</td></tr>
+<tr class="separator:abcae69e19426269fa17be92decfce7fd inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4537dad3b44254124991341cc91b28fb inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a4537dad3b44254124991341cc91b28fb">__get</a> ($key)</td></tr>
+<tr class="separator:a4537dad3b44254124991341cc91b28fb inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a79b36d71c6f1d4f9e6c4c3e34c081456 inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a79b36d71c6f1d4f9e6c4c3e34c081456">__set</a> ($key, $value)</td></tr>
+<tr class="separator:a79b36d71c6f1d4f9e6c4c3e34c081456 inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afc8a3c62679cf00ade9f15fb2a6d6132 inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#afc8a3c62679cf00ade9f15fb2a6d6132">save</a> ()</td></tr>
+<tr class="separator:afc8a3c62679cf00ade9f15fb2a6d6132 inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a224e7fc70ae3e2646cd1167f72628ac2 inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a224e7fc70ae3e2646cd1167f72628ac2">selects</a> ($criteria=null, $orderBy=null)</td></tr>
+<tr class="separator:a224e7fc70ae3e2646cd1167f72628ac2 inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a20020d3878c4bc983b90ba193c6f43a3 inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a20020d3878c4bc983b90ba193c6f43a3">selectById</a> ($id)</td></tr>
+<tr class="separator:a20020d3878c4bc983b90ba193c6f43a3 inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_static_methods_class_entity_1_1_model_base"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_class_entity_1_1_model_base')"><img src="closed.png" alt="-"/>&#160;Static Public Member Functions inherited from <a class="el" href="class_entity_1_1_model_base.html">ModelBase</a></td></tr>
+<tr class="memitem:a9f0be6ae273d3669e11c29910a0be338 inherit pub_static_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a9f0be6ae273d3669e11c29910a0be338">init</a> ()</td></tr>
+<tr class="separator:a9f0be6ae273d3669e11c29910a0be338 inherit pub_static_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8f625fd84b76c94749c8b1c992ef85ed inherit pub_static_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a8f625fd84b76c94749c8b1c992ef85ed">getDbPrefix</a> ()</td></tr>
+<tr class="separator:a8f625fd84b76c94749c8b1c992ef85ed inherit pub_static_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae59aa0f62b893798e267e842e0d10228 inherit pub_static_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#ae59aa0f62b893798e267e842e0d10228">setup</a> ()</td></tr>
+<tr class="separator:ae59aa0f62b893798e267e842e0d10228 inherit pub_static_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_static_attribs_class_entity_1_1_model_base"><td colspan="2" onclick="javascript:toggleInherit('pro_static_attribs_class_entity_1_1_model_base')"><img src="closed.png" alt="-"/>&#160;Static Protected Attributes inherited from <a class="el" href="class_entity_1_1_model_base.html">ModelBase</a></td></tr>
+<tr class="memitem:a7dcb5614ba1a7c7cd9379bdef91bd8d3 inherit pro_static_attribs_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a7dcb5614ba1a7c7cd9379bdef91bd8d3">$dbo</a> = null</td></tr>
+<tr class="separator:a7dcb5614ba1a7c7cd9379bdef91bd8d3 inherit pro_static_attribs_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock">
+<p>Definition at line <a class="el" href="_cart_product_8php_source.html#l00005">5</a> of file <a class="el" href="_cart_product_8php_source.html">CartProduct.php</a>.</p>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="aa966adc12c56a4cc70da92207fa50929"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">install </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="_cart_product_8php_source.html#l00007">7</a> of file <a class="el" href="_cart_product_8php_source.html">CartProduct.php</a>.</p>
+<div class="fragment"><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;    {</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;        $dbPrefix = $this-&gt;<a class="code" href="class_entity_1_1_model_base.html#a8f625fd84b76c94749c8b1c992ef85ed">getDbPrefix</a>();</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;        $result = self::$dbo-&gt;exec(<span class="stringliteral">&quot;CREATE TABLE IF NOT EXISTS `{$dbPrefix}cart_product` (</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="stringliteral">            `cart_id` INTEGER(11) UNSIGNED NOT NULL,</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="stringliteral">            `product_id` INTEGER(11) UNSIGNED NULL,</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="stringliteral">            `quantity` INTEGER(10) UNSIGNED NOT NULL,</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="stringliteral">            FOREIGN KEY (`cart_id`) REFERENCES `{$dbPrefix}cart`(id),</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="stringliteral">            FOREIGN KEY (`product_id`) REFERENCES `{$dbPrefix}product`(id),</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="stringliteral">            UNIQUE(`cart_id`, `product_id`)</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="stringliteral">        )&quot;</span>);</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;        <span class="keywordflow">if</span> ($result === <span class="keyword">false</span>)</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;            <span class="keywordflow">throw</span> new \Exception(get_class().<span class="stringliteral">&quot;: &quot;</span>.self::$dbo-&gt;errorInfo()[2]);</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;    }</div>
+<div class="ttc" id="class_entity_1_1_model_base_html_a8f625fd84b76c94749c8b1c992ef85ed"><div class="ttname"><a href="class_entity_1_1_model_base.html#a8f625fd84b76c94749c8b1c992ef85ed">Entity\ModelBase\getDbPrefix</a></div><div class="ttdeci">static getDbPrefix()</div><div class="ttdef"><b>Definition:</b> <a href="_model_base_8php_source.html#l00034">ModelBase.php:34</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>/home/isundil/Project/ecom/core/models/<a class="el" href="_cart_product_8php_source.html">CartProduct.php</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:19 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

二進制
doc/html/class_entity_1_1_cart_product.png


+ 197 - 0
doc/html/class_entity_1_1_category.html

@@ -0,0 +1,197 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: Category Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespace_entity.html">Entity</a></li><li class="navelem"><a class="el" href="class_entity_1_1_category.html">Category</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pro-methods">Protected Member Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">Category Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for Category:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="class_entity_1_1_category.png" usemap="#Category_map" alt=""/>
+  <map id="Category_map" name="Category_map">
+<area href="class_entity_1_1_model_base.html" alt="ModelBase" shape="rect" coords="0,0,75,24"/>
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr class="memitem:aa966adc12c56a4cc70da92207fa50929"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_category.html#aa966adc12c56a4cc70da92207fa50929">install</a> ()</td></tr>
+<tr class="separator:aa966adc12c56a4cc70da92207fa50929"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_class_entity_1_1_model_base"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_class_entity_1_1_model_base')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="class_entity_1_1_model_base.html">ModelBase</a></td></tr>
+<tr class="memitem:aa966adc12c56a4cc70da92207fa50929 inherit pro_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#aa966adc12c56a4cc70da92207fa50929">install</a> ()</td></tr>
+<tr class="separator:aa966adc12c56a4cc70da92207fa50929 inherit pro_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
+Additional Inherited Members</h2></td></tr>
+<tr class="inherit_header pub_methods_class_entity_1_1_model_base"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_entity_1_1_model_base')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="class_entity_1_1_model_base.html">ModelBase</a></td></tr>
+<tr class="memitem:abbda66c832a371bc9b6ec05cb8734efc inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#abbda66c832a371bc9b6ec05cb8734efc">__construct</a> ($id=null)</td></tr>
+<tr class="separator:abbda66c832a371bc9b6ec05cb8734efc inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a93566f2c8d709d410ae8ec46b813999b inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a93566f2c8d709d410ae8ec46b813999b">getTableName</a> ()</td></tr>
+<tr class="separator:a93566f2c8d709d410ae8ec46b813999b inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abcae69e19426269fa17be92decfce7fd inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#abcae69e19426269fa17be92decfce7fd">getMeta</a> ($lang=null)</td></tr>
+<tr class="separator:abcae69e19426269fa17be92decfce7fd inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4537dad3b44254124991341cc91b28fb inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a4537dad3b44254124991341cc91b28fb">__get</a> ($key)</td></tr>
+<tr class="separator:a4537dad3b44254124991341cc91b28fb inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a79b36d71c6f1d4f9e6c4c3e34c081456 inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a79b36d71c6f1d4f9e6c4c3e34c081456">__set</a> ($key, $value)</td></tr>
+<tr class="separator:a79b36d71c6f1d4f9e6c4c3e34c081456 inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afc8a3c62679cf00ade9f15fb2a6d6132 inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#afc8a3c62679cf00ade9f15fb2a6d6132">save</a> ()</td></tr>
+<tr class="separator:afc8a3c62679cf00ade9f15fb2a6d6132 inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a224e7fc70ae3e2646cd1167f72628ac2 inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a224e7fc70ae3e2646cd1167f72628ac2">selects</a> ($criteria=null, $orderBy=null)</td></tr>
+<tr class="separator:a224e7fc70ae3e2646cd1167f72628ac2 inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a20020d3878c4bc983b90ba193c6f43a3 inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a20020d3878c4bc983b90ba193c6f43a3">selectById</a> ($id)</td></tr>
+<tr class="separator:a20020d3878c4bc983b90ba193c6f43a3 inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_static_methods_class_entity_1_1_model_base"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_class_entity_1_1_model_base')"><img src="closed.png" alt="-"/>&#160;Static Public Member Functions inherited from <a class="el" href="class_entity_1_1_model_base.html">ModelBase</a></td></tr>
+<tr class="memitem:a9f0be6ae273d3669e11c29910a0be338 inherit pub_static_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a9f0be6ae273d3669e11c29910a0be338">init</a> ()</td></tr>
+<tr class="separator:a9f0be6ae273d3669e11c29910a0be338 inherit pub_static_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8f625fd84b76c94749c8b1c992ef85ed inherit pub_static_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a8f625fd84b76c94749c8b1c992ef85ed">getDbPrefix</a> ()</td></tr>
+<tr class="separator:a8f625fd84b76c94749c8b1c992ef85ed inherit pub_static_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae59aa0f62b893798e267e842e0d10228 inherit pub_static_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#ae59aa0f62b893798e267e842e0d10228">setup</a> ()</td></tr>
+<tr class="separator:ae59aa0f62b893798e267e842e0d10228 inherit pub_static_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_static_attribs_class_entity_1_1_model_base"><td colspan="2" onclick="javascript:toggleInherit('pro_static_attribs_class_entity_1_1_model_base')"><img src="closed.png" alt="-"/>&#160;Static Protected Attributes inherited from <a class="el" href="class_entity_1_1_model_base.html">ModelBase</a></td></tr>
+<tr class="memitem:a7dcb5614ba1a7c7cd9379bdef91bd8d3 inherit pro_static_attribs_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a7dcb5614ba1a7c7cd9379bdef91bd8d3">$dbo</a> = null</td></tr>
+<tr class="separator:a7dcb5614ba1a7c7cd9379bdef91bd8d3 inherit pro_static_attribs_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock">
+<p>Definition at line <a class="el" href="_category_8php_source.html#l00005">5</a> of file <a class="el" href="_category_8php_source.html">Category.php</a>.</p>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="aa966adc12c56a4cc70da92207fa50929"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">install </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="_category_8php_source.html#l00007">7</a> of file <a class="el" href="_category_8php_source.html">Category.php</a>.</p>
+<div class="fragment"><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;    {</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;        $dbPrefix = $this-&gt;<a class="code" href="class_entity_1_1_model_base.html#a8f625fd84b76c94749c8b1c992ef85ed">getDbPrefix</a>();</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;        $result = self::$dbo-&gt;exec(<span class="stringliteral">&quot;CREATE TABLE IF NOT EXISTS `{$dbPrefix}category` (</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="stringliteral">            `id` INTEGER(11) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="stringliteral">            `parent_id` INTEGER(11) UNSIGNED NULL,</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="stringliteral">            FOREIGN KEY (`parent_id`) REFERENCES `{$dbPrefix}category`(id)</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="stringliteral">        )&quot;</span>);</div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;        <span class="keywordflow">if</span> ($result === <span class="keyword">false</span>)</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;            <span class="keywordflow">throw</span> new \Exception(get_class().<span class="stringliteral">&quot;: &quot;</span>.self::$dbo-&gt;errorInfo()[2]);</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;    }</div>
+<div class="ttc" id="class_entity_1_1_model_base_html_a8f625fd84b76c94749c8b1c992ef85ed"><div class="ttname"><a href="class_entity_1_1_model_base.html#a8f625fd84b76c94749c8b1c992ef85ed">Entity\ModelBase\getDbPrefix</a></div><div class="ttdeci">static getDbPrefix()</div><div class="ttdef"><b>Definition:</b> <a href="_model_base_8php_source.html#l00034">ModelBase.php:34</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>/home/isundil/Project/ecom/core/models/<a class="el" href="_category_8php_source.html">Category.php</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:19 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

二進制
doc/html/class_entity_1_1_category.png


+ 199 - 0
doc/html/class_entity_1_1_cms.html

@@ -0,0 +1,199 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: Cms Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespace_entity.html">Entity</a></li><li class="navelem"><a class="el" href="class_entity_1_1_cms.html">Cms</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pro-methods">Protected Member Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">Cms Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for Cms:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="class_entity_1_1_cms.png" usemap="#Cms_map" alt=""/>
+  <map id="Cms_map" name="Cms_map">
+<area href="class_entity_1_1_model_base.html" alt="ModelBase" shape="rect" coords="0,0,75,24"/>
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr class="memitem:aa966adc12c56a4cc70da92207fa50929"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_cms.html#aa966adc12c56a4cc70da92207fa50929">install</a> ()</td></tr>
+<tr class="separator:aa966adc12c56a4cc70da92207fa50929"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_class_entity_1_1_model_base"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_class_entity_1_1_model_base')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="class_entity_1_1_model_base.html">ModelBase</a></td></tr>
+<tr class="memitem:aa966adc12c56a4cc70da92207fa50929 inherit pro_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#aa966adc12c56a4cc70da92207fa50929">install</a> ()</td></tr>
+<tr class="separator:aa966adc12c56a4cc70da92207fa50929 inherit pro_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
+Additional Inherited Members</h2></td></tr>
+<tr class="inherit_header pub_methods_class_entity_1_1_model_base"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_entity_1_1_model_base')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="class_entity_1_1_model_base.html">ModelBase</a></td></tr>
+<tr class="memitem:abbda66c832a371bc9b6ec05cb8734efc inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#abbda66c832a371bc9b6ec05cb8734efc">__construct</a> ($id=null)</td></tr>
+<tr class="separator:abbda66c832a371bc9b6ec05cb8734efc inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a93566f2c8d709d410ae8ec46b813999b inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a93566f2c8d709d410ae8ec46b813999b">getTableName</a> ()</td></tr>
+<tr class="separator:a93566f2c8d709d410ae8ec46b813999b inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abcae69e19426269fa17be92decfce7fd inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#abcae69e19426269fa17be92decfce7fd">getMeta</a> ($lang=null)</td></tr>
+<tr class="separator:abcae69e19426269fa17be92decfce7fd inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4537dad3b44254124991341cc91b28fb inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a4537dad3b44254124991341cc91b28fb">__get</a> ($key)</td></tr>
+<tr class="separator:a4537dad3b44254124991341cc91b28fb inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a79b36d71c6f1d4f9e6c4c3e34c081456 inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a79b36d71c6f1d4f9e6c4c3e34c081456">__set</a> ($key, $value)</td></tr>
+<tr class="separator:a79b36d71c6f1d4f9e6c4c3e34c081456 inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afc8a3c62679cf00ade9f15fb2a6d6132 inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#afc8a3c62679cf00ade9f15fb2a6d6132">save</a> ()</td></tr>
+<tr class="separator:afc8a3c62679cf00ade9f15fb2a6d6132 inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a224e7fc70ae3e2646cd1167f72628ac2 inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a224e7fc70ae3e2646cd1167f72628ac2">selects</a> ($criteria=null, $orderBy=null)</td></tr>
+<tr class="separator:a224e7fc70ae3e2646cd1167f72628ac2 inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a20020d3878c4bc983b90ba193c6f43a3 inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a20020d3878c4bc983b90ba193c6f43a3">selectById</a> ($id)</td></tr>
+<tr class="separator:a20020d3878c4bc983b90ba193c6f43a3 inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_static_methods_class_entity_1_1_model_base"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_class_entity_1_1_model_base')"><img src="closed.png" alt="-"/>&#160;Static Public Member Functions inherited from <a class="el" href="class_entity_1_1_model_base.html">ModelBase</a></td></tr>
+<tr class="memitem:a9f0be6ae273d3669e11c29910a0be338 inherit pub_static_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a9f0be6ae273d3669e11c29910a0be338">init</a> ()</td></tr>
+<tr class="separator:a9f0be6ae273d3669e11c29910a0be338 inherit pub_static_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8f625fd84b76c94749c8b1c992ef85ed inherit pub_static_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a8f625fd84b76c94749c8b1c992ef85ed">getDbPrefix</a> ()</td></tr>
+<tr class="separator:a8f625fd84b76c94749c8b1c992ef85ed inherit pub_static_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae59aa0f62b893798e267e842e0d10228 inherit pub_static_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#ae59aa0f62b893798e267e842e0d10228">setup</a> ()</td></tr>
+<tr class="separator:ae59aa0f62b893798e267e842e0d10228 inherit pub_static_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_static_attribs_class_entity_1_1_model_base"><td colspan="2" onclick="javascript:toggleInherit('pro_static_attribs_class_entity_1_1_model_base')"><img src="closed.png" alt="-"/>&#160;Static Protected Attributes inherited from <a class="el" href="class_entity_1_1_model_base.html">ModelBase</a></td></tr>
+<tr class="memitem:a7dcb5614ba1a7c7cd9379bdef91bd8d3 inherit pro_static_attribs_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a7dcb5614ba1a7c7cd9379bdef91bd8d3">$dbo</a> = null</td></tr>
+<tr class="separator:a7dcb5614ba1a7c7cd9379bdef91bd8d3 inherit pro_static_attribs_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock">
+<p>Definition at line <a class="el" href="_cms_8php_source.html#l00005">5</a> of file <a class="el" href="_cms_8php_source.html">Cms.php</a>.</p>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="aa966adc12c56a4cc70da92207fa50929"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">install </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="_cms_8php_source.html#l00007">7</a> of file <a class="el" href="_cms_8php_source.html">Cms.php</a>.</p>
+<div class="fragment"><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;    {</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;        $dbPrefix = $this-&gt;<a class="code" href="class_entity_1_1_model_base.html#a8f625fd84b76c94749c8b1c992ef85ed">getDbPrefix</a>();</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;        $result = self::$dbo-&gt;exec(<span class="stringliteral">&quot;CREATE TABLE IF NOT EXISTS `{$dbPrefix}cms` (</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="stringliteral">            `id` INTEGER(11) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="stringliteral">            `shurl` VARCHAR(255) NOT NULL,</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="stringliteral">            `controller` VARCHAR(255) NOT NULL,</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="stringliteral">            `order` INTEGER UNSIGNED NOT NULL DEFAULT 0,</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="stringliteral">            UNIQUE(`shurl`)</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="stringliteral">        )&quot;</span>);</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;        <span class="keywordflow">if</span> ($result === <span class="keyword">false</span>)</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;            <span class="keywordflow">throw</span> new \Exception(get_class().<span class="stringliteral">&quot;: &quot;</span>.self::$dbo-&gt;errorInfo()[2]);</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;    }</div>
+<div class="ttc" id="class_entity_1_1_model_base_html_a8f625fd84b76c94749c8b1c992ef85ed"><div class="ttname"><a href="class_entity_1_1_model_base.html#a8f625fd84b76c94749c8b1c992ef85ed">Entity\ModelBase\getDbPrefix</a></div><div class="ttdeci">static getDbPrefix()</div><div class="ttdef"><b>Definition:</b> <a href="_model_base_8php_source.html#l00034">ModelBase.php:34</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>/home/isundil/Project/ecom/core/models/<a class="el" href="_cms_8php_source.html">Cms.php</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:19 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

二進制
doc/html/class_entity_1_1_cms.png


+ 286 - 0
doc/html/class_entity_1_1_config.html

@@ -0,0 +1,286 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: Config Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespace_entity.html">Entity</a></li><li class="navelem"><a class="el" href="class_entity_1_1_config.html">Config</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
+<a href="#pro-methods">Protected Member Functions</a> &#124;
+<a href="#pri-static-attribs">Static Private Attributes</a>  </div>
+  <div class="headertitle">
+<div class="title">Config Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for Config:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="class_entity_1_1_config.png" usemap="#Config_map" alt=""/>
+  <map id="Config_map" name="Config_map">
+<area href="class_entity_1_1_model_base.html" alt="ModelBase" shape="rect" coords="0,0,75,24"/>
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
+Static Public Member Functions</h2></td></tr>
+<tr class="memitem:af66f143ec797389e3ade6952ef7808e2"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_config.html#af66f143ec797389e3ade6952ef7808e2">getConfig</a> ($lang=null, $key=null, $defaultValue=null)</td></tr>
+<tr class="separator:af66f143ec797389e3ade6952ef7808e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_static_methods_class_entity_1_1_model_base"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_class_entity_1_1_model_base')"><img src="closed.png" alt="-"/>&#160;Static Public Member Functions inherited from <a class="el" href="class_entity_1_1_model_base.html">ModelBase</a></td></tr>
+<tr class="memitem:a9f0be6ae273d3669e11c29910a0be338 inherit pub_static_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a9f0be6ae273d3669e11c29910a0be338">init</a> ()</td></tr>
+<tr class="separator:a9f0be6ae273d3669e11c29910a0be338 inherit pub_static_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8f625fd84b76c94749c8b1c992ef85ed inherit pub_static_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a8f625fd84b76c94749c8b1c992ef85ed">getDbPrefix</a> ()</td></tr>
+<tr class="separator:a8f625fd84b76c94749c8b1c992ef85ed inherit pub_static_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae59aa0f62b893798e267e842e0d10228 inherit pub_static_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#ae59aa0f62b893798e267e842e0d10228">setup</a> ()</td></tr>
+<tr class="separator:ae59aa0f62b893798e267e842e0d10228 inherit pub_static_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr class="memitem:aa966adc12c56a4cc70da92207fa50929"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_config.html#aa966adc12c56a4cc70da92207fa50929">install</a> ()</td></tr>
+<tr class="separator:aa966adc12c56a4cc70da92207fa50929"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_class_entity_1_1_model_base"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_class_entity_1_1_model_base')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="class_entity_1_1_model_base.html">ModelBase</a></td></tr>
+<tr class="memitem:aa966adc12c56a4cc70da92207fa50929 inherit pro_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#aa966adc12c56a4cc70da92207fa50929">install</a> ()</td></tr>
+<tr class="separator:aa966adc12c56a4cc70da92207fa50929 inherit pro_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-static-attribs"></a>
+Static Private Attributes</h2></td></tr>
+<tr class="memitem:a49c7011be9c979d9174c52a8b83e5d8e"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_config.html#a49c7011be9c979d9174c52a8b83e5d8e">$config</a> = array()</td></tr>
+<tr class="separator:a49c7011be9c979d9174c52a8b83e5d8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
+Additional Inherited Members</h2></td></tr>
+<tr class="inherit_header pub_methods_class_entity_1_1_model_base"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_entity_1_1_model_base')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="class_entity_1_1_model_base.html">ModelBase</a></td></tr>
+<tr class="memitem:abbda66c832a371bc9b6ec05cb8734efc inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#abbda66c832a371bc9b6ec05cb8734efc">__construct</a> ($id=null)</td></tr>
+<tr class="separator:abbda66c832a371bc9b6ec05cb8734efc inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a93566f2c8d709d410ae8ec46b813999b inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a93566f2c8d709d410ae8ec46b813999b">getTableName</a> ()</td></tr>
+<tr class="separator:a93566f2c8d709d410ae8ec46b813999b inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abcae69e19426269fa17be92decfce7fd inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#abcae69e19426269fa17be92decfce7fd">getMeta</a> ($lang=null)</td></tr>
+<tr class="separator:abcae69e19426269fa17be92decfce7fd inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4537dad3b44254124991341cc91b28fb inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a4537dad3b44254124991341cc91b28fb">__get</a> ($key)</td></tr>
+<tr class="separator:a4537dad3b44254124991341cc91b28fb inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a79b36d71c6f1d4f9e6c4c3e34c081456 inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a79b36d71c6f1d4f9e6c4c3e34c081456">__set</a> ($key, $value)</td></tr>
+<tr class="separator:a79b36d71c6f1d4f9e6c4c3e34c081456 inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afc8a3c62679cf00ade9f15fb2a6d6132 inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#afc8a3c62679cf00ade9f15fb2a6d6132">save</a> ()</td></tr>
+<tr class="separator:afc8a3c62679cf00ade9f15fb2a6d6132 inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a224e7fc70ae3e2646cd1167f72628ac2 inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a224e7fc70ae3e2646cd1167f72628ac2">selects</a> ($criteria=null, $orderBy=null)</td></tr>
+<tr class="separator:a224e7fc70ae3e2646cd1167f72628ac2 inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a20020d3878c4bc983b90ba193c6f43a3 inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a20020d3878c4bc983b90ba193c6f43a3">selectById</a> ($id)</td></tr>
+<tr class="separator:a20020d3878c4bc983b90ba193c6f43a3 inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_static_attribs_class_entity_1_1_model_base"><td colspan="2" onclick="javascript:toggleInherit('pro_static_attribs_class_entity_1_1_model_base')"><img src="closed.png" alt="-"/>&#160;Static Protected Attributes inherited from <a class="el" href="class_entity_1_1_model_base.html">ModelBase</a></td></tr>
+<tr class="memitem:a7dcb5614ba1a7c7cd9379bdef91bd8d3 inherit pro_static_attribs_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a7dcb5614ba1a7c7cd9379bdef91bd8d3">$dbo</a> = null</td></tr>
+<tr class="separator:a7dcb5614ba1a7c7cd9379bdef91bd8d3 inherit pro_static_attribs_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock">
+<p>Definition at line <a class="el" href="_config_8php_source.html#l00005">5</a> of file <a class="el" href="_config_8php_source.html">Config.php</a>.</p>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="af66f143ec797389e3ade6952ef7808e2"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">static getConfig </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$lang</em> = <code>null</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$key</em> = <code>null</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$defaultValue</em> = <code>null</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="_config_8php_source.html#l00023">23</a> of file <a class="el" href="_config_8php_source.html">Config.php</a>.</p>
+<div class="fragment"><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;    {</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;        $fetcher = <span class="keyword">new</span> <span class="keyword">self</span>();</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;        <span class="keywordflow">if</span> (isset(self::$config[$lang]))</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;            <span class="keywordflow">return</span>;</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;        $values = $fetcher-&gt;selects(array(<span class="stringliteral">&quot;lang&quot;</span> =&gt; $lang));</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;        <span class="keywordflow">foreach</span> ($values as $i)</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;            self::$config[$lang][$i-&gt;key] = $i-&gt;value;</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;        <span class="keywordflow">if</span> ($key)</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;            <span class="keywordflow">return</span> (isset(self::$config[$lang][$key]) ? self::$config[$lang][$key] : $defaultValue);</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;        <span class="keywordflow">return</span> $defaultValue;</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;    }</div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="aa966adc12c56a4cc70da92207fa50929"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">install </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="_config_8php_source.html#l00009">9</a> of file <a class="el" href="_config_8php_source.html">Config.php</a>.</p>
+<div class="fragment"><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;    {</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;        $dbPrefix = $this-&gt;<a class="code" href="class_entity_1_1_model_base.html#a8f625fd84b76c94749c8b1c992ef85ed">getDbPrefix</a>();</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;        $result = self::$dbo-&gt;exec(<span class="stringliteral">&quot;CREATE TABLE IF NOT EXISTS `{$dbPrefix}config` (</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="stringliteral">            `lang` VARCHAR(8) NULL,</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="stringliteral">            `key` VARCHAR(64) NOT NULL,</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="stringliteral">            `value` TEXT NULL,</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="stringliteral">            UNIQUE(`lang`, `key`)</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="stringliteral">        )&quot;</span>);</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;        <span class="keywordflow">if</span> ($result === <span class="keyword">false</span>)</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;            <span class="keywordflow">throw</span> new \Exception(get_class().<span class="stringliteral">&quot;: &quot;</span>.self::$dbo-&gt;errorInfo()[2]);</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;    }</div>
+<div class="ttc" id="class_entity_1_1_model_base_html_a8f625fd84b76c94749c8b1c992ef85ed"><div class="ttname"><a href="class_entity_1_1_model_base.html#a8f625fd84b76c94749c8b1c992ef85ed">Entity\ModelBase\getDbPrefix</a></div><div class="ttdeci">static getDbPrefix()</div><div class="ttdef"><b>Definition:</b> <a href="_model_base_8php_source.html#l00034">ModelBase.php:34</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<h2 class="groupheader">Field Documentation</h2>
+<a class="anchor" id="a49c7011be9c979d9174c52a8b83e5d8e"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">$config = array()</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">private</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="_config_8php_source.html#l00007">7</a> of file <a class="el" href="_config_8php_source.html">Config.php</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>/home/isundil/Project/ecom/core/models/<a class="el" href="_config_8php_source.html">Config.php</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:19 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

二進制
doc/html/class_entity_1_1_config.png


+ 300 - 0
doc/html/class_entity_1_1_meta.html

@@ -0,0 +1,300 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: Meta Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespace_entity.html">Entity</a></li><li class="navelem"><a class="el" href="class_entity_1_1_meta.html">Meta</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pro-methods">Protected Member Functions</a> &#124;
+<a href="#pri-attribs">Private Attributes</a>  </div>
+  <div class="headertitle">
+<div class="title">Meta Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for Meta:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="class_entity_1_1_meta.png" usemap="#Meta_map" alt=""/>
+  <map id="Meta_map" name="Meta_map">
+<area href="class_entity_1_1_model_base.html" alt="ModelBase" shape="rect" coords="0,0,75,24"/>
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a4537dad3b44254124991341cc91b28fb"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_meta.html#a4537dad3b44254124991341cc91b28fb">__get</a> ($key)</td></tr>
+<tr class="separator:a4537dad3b44254124991341cc91b28fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a79b36d71c6f1d4f9e6c4c3e34c081456"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_meta.html#a79b36d71c6f1d4f9e6c4c3e34c081456">__set</a> ($key, $value)</td></tr>
+<tr class="separator:a79b36d71c6f1d4f9e6c4c3e34c081456"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_class_entity_1_1_model_base"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_entity_1_1_model_base')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="class_entity_1_1_model_base.html">ModelBase</a></td></tr>
+<tr class="memitem:abbda66c832a371bc9b6ec05cb8734efc inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#abbda66c832a371bc9b6ec05cb8734efc">__construct</a> ($id=null)</td></tr>
+<tr class="separator:abbda66c832a371bc9b6ec05cb8734efc inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a93566f2c8d709d410ae8ec46b813999b inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a93566f2c8d709d410ae8ec46b813999b">getTableName</a> ()</td></tr>
+<tr class="separator:a93566f2c8d709d410ae8ec46b813999b inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abcae69e19426269fa17be92decfce7fd inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#abcae69e19426269fa17be92decfce7fd">getMeta</a> ($lang=null)</td></tr>
+<tr class="separator:abcae69e19426269fa17be92decfce7fd inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4537dad3b44254124991341cc91b28fb inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a4537dad3b44254124991341cc91b28fb">__get</a> ($key)</td></tr>
+<tr class="separator:a4537dad3b44254124991341cc91b28fb inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a79b36d71c6f1d4f9e6c4c3e34c081456 inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a79b36d71c6f1d4f9e6c4c3e34c081456">__set</a> ($key, $value)</td></tr>
+<tr class="separator:a79b36d71c6f1d4f9e6c4c3e34c081456 inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afc8a3c62679cf00ade9f15fb2a6d6132 inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#afc8a3c62679cf00ade9f15fb2a6d6132">save</a> ()</td></tr>
+<tr class="separator:afc8a3c62679cf00ade9f15fb2a6d6132 inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a224e7fc70ae3e2646cd1167f72628ac2 inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a224e7fc70ae3e2646cd1167f72628ac2">selects</a> ($criteria=null, $orderBy=null)</td></tr>
+<tr class="separator:a224e7fc70ae3e2646cd1167f72628ac2 inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a20020d3878c4bc983b90ba193c6f43a3 inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a20020d3878c4bc983b90ba193c6f43a3">selectById</a> ($id)</td></tr>
+<tr class="separator:a20020d3878c4bc983b90ba193c6f43a3 inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr class="memitem:aa966adc12c56a4cc70da92207fa50929"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_meta.html#aa966adc12c56a4cc70da92207fa50929">install</a> ()</td></tr>
+<tr class="separator:aa966adc12c56a4cc70da92207fa50929"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_class_entity_1_1_model_base"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_class_entity_1_1_model_base')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="class_entity_1_1_model_base.html">ModelBase</a></td></tr>
+<tr class="memitem:aa966adc12c56a4cc70da92207fa50929 inherit pro_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#aa966adc12c56a4cc70da92207fa50929">install</a> ()</td></tr>
+<tr class="separator:aa966adc12c56a4cc70da92207fa50929 inherit pro_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
+Private Attributes</h2></td></tr>
+<tr class="memitem:a74ed34e6d7bc9f3f8c4fb58a12247ee2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_meta.html#a74ed34e6d7bc9f3f8c4fb58a12247ee2">$entity</a></td></tr>
+<tr class="separator:a74ed34e6d7bc9f3f8c4fb58a12247ee2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
+Additional Inherited Members</h2></td></tr>
+<tr class="inherit_header pub_static_methods_class_entity_1_1_model_base"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_class_entity_1_1_model_base')"><img src="closed.png" alt="-"/>&#160;Static Public Member Functions inherited from <a class="el" href="class_entity_1_1_model_base.html">ModelBase</a></td></tr>
+<tr class="memitem:a9f0be6ae273d3669e11c29910a0be338 inherit pub_static_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a9f0be6ae273d3669e11c29910a0be338">init</a> ()</td></tr>
+<tr class="separator:a9f0be6ae273d3669e11c29910a0be338 inherit pub_static_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8f625fd84b76c94749c8b1c992ef85ed inherit pub_static_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a8f625fd84b76c94749c8b1c992ef85ed">getDbPrefix</a> ()</td></tr>
+<tr class="separator:a8f625fd84b76c94749c8b1c992ef85ed inherit pub_static_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae59aa0f62b893798e267e842e0d10228 inherit pub_static_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#ae59aa0f62b893798e267e842e0d10228">setup</a> ()</td></tr>
+<tr class="separator:ae59aa0f62b893798e267e842e0d10228 inherit pub_static_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_static_attribs_class_entity_1_1_model_base"><td colspan="2" onclick="javascript:toggleInherit('pro_static_attribs_class_entity_1_1_model_base')"><img src="closed.png" alt="-"/>&#160;Static Protected Attributes inherited from <a class="el" href="class_entity_1_1_model_base.html">ModelBase</a></td></tr>
+<tr class="memitem:a7dcb5614ba1a7c7cd9379bdef91bd8d3 inherit pro_static_attribs_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a7dcb5614ba1a7c7cd9379bdef91bd8d3">$dbo</a> = null</td></tr>
+<tr class="separator:a7dcb5614ba1a7c7cd9379bdef91bd8d3 inherit pro_static_attribs_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock">
+<p>Definition at line <a class="el" href="_meta_8php_source.html#l00005">5</a> of file <a class="el" href="_meta_8php_source.html">Meta.php</a>.</p>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="a4537dad3b44254124991341cc91b28fb"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">__get </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$key</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="_meta_8php_source.html#l00025">25</a> of file <a class="el" href="_meta_8php_source.html">Meta.php</a>.</p>
+<div class="fragment"><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;    {</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;        <span class="keywordflow">if</span> ($key == <span class="stringliteral">&quot;entity&quot;</span>)</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;            <span class="keywordflow">return</span> <a class="code" href="class_entity_1_1_meta.html#a74ed34e6d7bc9f3f8c4fb58a12247ee2">$this-&gt;entity</a>;</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;        <span class="keywordflow">return</span> parent::__get($key);</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;    }</div>
+<div class="ttc" id="class_entity_1_1_meta_html_a74ed34e6d7bc9f3f8c4fb58a12247ee2"><div class="ttname"><a href="class_entity_1_1_meta.html#a74ed34e6d7bc9f3f8c4fb58a12247ee2">Entity\Meta\$entity</a></div><div class="ttdeci">$entity</div><div class="ttdef"><b>Definition:</b> <a href="_meta_8php_source.html#l00007">Meta.php:7</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a79b36d71c6f1d4f9e6c4c3e34c081456"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">__set </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$key</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$value</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="_meta_8php_source.html#l00032">32</a> of file <a class="el" href="_meta_8php_source.html">Meta.php</a>.</p>
+<div class="fragment"><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;    {</div>
+<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;        <span class="keywordflow">if</span> ($key == <span class="stringliteral">&quot;entity&quot;</span>)</div>
+<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;        {</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;            parent::__set(<span class="stringliteral">&quot;entityId&quot;</span>, $value-&gt;id);</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;            parent::__set(<span class="stringliteral">&quot;entityType&quot;</span>, get_class($value));</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;            <span class="keywordflow">return</span> $value;</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;        }</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;        <span class="keywordflow">else</span> <span class="keywordflow">if</span> ($key == <span class="stringliteral">&quot;entityId&quot;</span> || $key == <span class="stringliteral">&quot;entityType&quot;</span>)</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;            <span class="keywordflow">throw</span> new \Exception(<span class="stringliteral">&quot;Cannot access private field {$key}&quot;</span>);</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;        <span class="keywordflow">return</span> parent::__set($key, $value);</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;    }</div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="aa966adc12c56a4cc70da92207fa50929"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">install </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="_meta_8php_source.html#l00009">9</a> of file <a class="el" href="_meta_8php_source.html">Meta.php</a>.</p>
+<div class="fragment"><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;    {</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;        $dbPrefix = $this-&gt;<a class="code" href="class_entity_1_1_model_base.html#a8f625fd84b76c94749c8b1c992ef85ed">getDbPrefix</a>();</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;        $result = self::$dbo-&gt;exec(<span class="stringliteral">&quot;CREATE TABLE IF NOT EXISTS `{$dbPrefix}meta` (</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="stringliteral">            `entity_id` INTEGER(11) UNSIGNED NOT NULL,</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="stringliteral">            `entityType` VARCHAR(32) NOT NULL,</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="stringliteral">            `lang` VARCHAR(8) NULL,</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="stringliteral">            `key` VARCHAR(64) NOT NULL,</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="stringliteral">            `value` TEXT NULL,</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="stringliteral">            UNIQUE(`entity_id`, `entityType`, `lang`)</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="stringliteral">        )&quot;</span>);</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;        <span class="keywordflow">if</span> ($result === <span class="keyword">false</span>)</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;            <span class="keywordflow">throw</span> new \Exception(get_class().<span class="stringliteral">&quot;: &quot;</span>.self::$dbo-&gt;errorInfo()[2]);</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;    }</div>
+<div class="ttc" id="class_entity_1_1_model_base_html_a8f625fd84b76c94749c8b1c992ef85ed"><div class="ttname"><a href="class_entity_1_1_model_base.html#a8f625fd84b76c94749c8b1c992ef85ed">Entity\ModelBase\getDbPrefix</a></div><div class="ttdeci">static getDbPrefix()</div><div class="ttdef"><b>Definition:</b> <a href="_model_base_8php_source.html#l00034">ModelBase.php:34</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<h2 class="groupheader">Field Documentation</h2>
+<a class="anchor" id="a74ed34e6d7bc9f3f8c4fb58a12247ee2"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">$entity</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="_meta_8php_source.html#l00007">7</a> of file <a class="el" href="_meta_8php_source.html">Meta.php</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>/home/isundil/Project/ecom/core/models/<a class="el" href="_meta_8php_source.html">Meta.php</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:19 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

二進制
doc/html/class_entity_1_1_meta.png


+ 781 - 0
doc/html/class_entity_1_1_model_base.html

@@ -0,0 +1,781 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: ModelBase Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespace_entity.html">Entity</a></li><li class="navelem"><a class="el" href="class_entity_1_1_model_base.html">ModelBase</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
+<a href="#pro-methods">Protected Member Functions</a> &#124;
+<a href="#pro-static-attribs">Static Protected Attributes</a> &#124;
+<a href="#pri-methods">Private Member Functions</a> &#124;
+<a href="#pri-attribs">Private Attributes</a> &#124;
+<a href="#pri-static-attribs">Static Private Attributes</a>  </div>
+  <div class="headertitle">
+<div class="title">ModelBase Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for ModelBase:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="class_entity_1_1_model_base.png" usemap="#ModelBase_map" alt=""/>
+  <map id="ModelBase_map" name="ModelBase_map">
+<area href="class_entity_1_1_address.html" alt="Address" shape="rect" coords="93,56,176,80"/>
+<area href="class_entity_1_1_admin.html" alt="Admin" shape="rect" coords="93,112,176,136"/>
+<area href="class_entity_1_1_cart.html" alt="Cart" shape="rect" coords="93,168,176,192"/>
+<area href="class_entity_1_1_cart_product.html" alt="CartProduct" shape="rect" coords="93,224,176,248"/>
+<area href="class_entity_1_1_category.html" alt="Category" shape="rect" coords="93,280,176,304"/>
+<area href="class_entity_1_1_cms.html" alt="Cms" shape="rect" coords="93,336,176,360"/>
+<area href="class_entity_1_1_config.html" alt="Config" shape="rect" coords="93,392,176,416"/>
+<area href="class_entity_1_1_meta.html" alt="Meta" shape="rect" coords="93,448,176,472"/>
+<area href="class_entity_1_1_module.html" alt="Module" shape="rect" coords="93,504,176,528"/>
+<area href="class_entity_1_1_module_hook.html" alt="ModuleHook" shape="rect" coords="93,560,176,584"/>
+<area href="class_entity_1_1_product.html" alt="Product" shape="rect" coords="93,616,176,640"/>
+<area href="class_entity_1_1_user.html" alt="User" shape="rect" coords="93,672,176,696"/>
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:abbda66c832a371bc9b6ec05cb8734efc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#abbda66c832a371bc9b6ec05cb8734efc">__construct</a> ($id=null)</td></tr>
+<tr class="separator:abbda66c832a371bc9b6ec05cb8734efc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a93566f2c8d709d410ae8ec46b813999b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a93566f2c8d709d410ae8ec46b813999b">getTableName</a> ()</td></tr>
+<tr class="separator:a93566f2c8d709d410ae8ec46b813999b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abcae69e19426269fa17be92decfce7fd"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#abcae69e19426269fa17be92decfce7fd">getMeta</a> ($lang=null)</td></tr>
+<tr class="separator:abcae69e19426269fa17be92decfce7fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4537dad3b44254124991341cc91b28fb"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a4537dad3b44254124991341cc91b28fb">__get</a> ($key)</td></tr>
+<tr class="separator:a4537dad3b44254124991341cc91b28fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a79b36d71c6f1d4f9e6c4c3e34c081456"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a79b36d71c6f1d4f9e6c4c3e34c081456">__set</a> ($key, $value)</td></tr>
+<tr class="separator:a79b36d71c6f1d4f9e6c4c3e34c081456"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afc8a3c62679cf00ade9f15fb2a6d6132"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#afc8a3c62679cf00ade9f15fb2a6d6132">save</a> ()</td></tr>
+<tr class="separator:afc8a3c62679cf00ade9f15fb2a6d6132"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a224e7fc70ae3e2646cd1167f72628ac2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a224e7fc70ae3e2646cd1167f72628ac2">selects</a> ($criteria=null, $orderBy=null)</td></tr>
+<tr class="separator:a224e7fc70ae3e2646cd1167f72628ac2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a20020d3878c4bc983b90ba193c6f43a3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a20020d3878c4bc983b90ba193c6f43a3">selectById</a> ($id)</td></tr>
+<tr class="separator:a20020d3878c4bc983b90ba193c6f43a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
+Static Public Member Functions</h2></td></tr>
+<tr class="memitem:a9f0be6ae273d3669e11c29910a0be338"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a9f0be6ae273d3669e11c29910a0be338">init</a> ()</td></tr>
+<tr class="separator:a9f0be6ae273d3669e11c29910a0be338"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8f625fd84b76c94749c8b1c992ef85ed"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a8f625fd84b76c94749c8b1c992ef85ed">getDbPrefix</a> ()</td></tr>
+<tr class="separator:a8f625fd84b76c94749c8b1c992ef85ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae59aa0f62b893798e267e842e0d10228"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#ae59aa0f62b893798e267e842e0d10228">setup</a> ()</td></tr>
+<tr class="separator:ae59aa0f62b893798e267e842e0d10228"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr class="memitem:aa966adc12c56a4cc70da92207fa50929"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#aa966adc12c56a4cc70da92207fa50929">install</a> ()</td></tr>
+<tr class="separator:aa966adc12c56a4cc70da92207fa50929"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-static-attribs"></a>
+Static Protected Attributes</h2></td></tr>
+<tr class="memitem:a7dcb5614ba1a7c7cd9379bdef91bd8d3"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a7dcb5614ba1a7c7cd9379bdef91bd8d3">$dbo</a> = null</td></tr>
+<tr class="separator:a7dcb5614ba1a7c7cd9379bdef91bd8d3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
+Private Member Functions</h2></td></tr>
+<tr class="memitem:a70391280402677bbb9cb6616fb9376fb"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a70391280402677bbb9cb6616fb9376fb">populate</a> ($data)</td></tr>
+<tr class="separator:a70391280402677bbb9cb6616fb9376fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
+Private Attributes</h2></td></tr>
+<tr class="memitem:a80d18e0e9e33f8cee4f1c4871f1283a4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a80d18e0e9e33f8cee4f1c4871f1283a4">$fieldsValues</a> = array()</td></tr>
+<tr class="separator:a80d18e0e9e33f8cee4f1c4871f1283a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab060006d1221e5e476126476b921ad54"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#ab060006d1221e5e476126476b921ad54">$changed</a> = array()</td></tr>
+<tr class="separator:ab060006d1221e5e476126476b921ad54"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae97941710d863131c700f069b109991e"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#ae97941710d863131c700f069b109991e">$id</a></td></tr>
+<tr class="separator:ae97941710d863131c700f069b109991e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-static-attribs"></a>
+Static Private Attributes</h2></td></tr>
+<tr class="memitem:a49c7011be9c979d9174c52a8b83e5d8e"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a49c7011be9c979d9174c52a8b83e5d8e">$config</a> = null</td></tr>
+<tr class="separator:a49c7011be9c979d9174c52a8b83e5d8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock">
+<p>Definition at line <a class="el" href="_model_base_8php_source.html#l00005">5</a> of file <a class="el" href="_model_base_8php_source.html">ModelBase.php</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="abbda66c832a371bc9b6ec05cb8734efc"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">__construct </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$id</em> = <code>null</code></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="_model_base_8php_source.html#l00015">15</a> of file <a class="el" href="_model_base_8php_source.html">ModelBase.php</a>.</p>
+<div class="fragment"><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;    {</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;        self::init();</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;        $this-&gt;<span class="keywordtype">id</span> = null;</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="class_entity_1_1_model_base.html#ae97941710d863131c700f069b109991e">$id</a> !== null &amp;&amp; is_numeric(<a class="code" href="class_entity_1_1_model_base.html#ae97941710d863131c700f069b109991e">$id</a>))</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;            $this-&gt;<a class="code" href="class_entity_1_1_model_base.html#a20020d3878c4bc983b90ba193c6f43a3">selectById</a>(<a class="code" href="class_entity_1_1_model_base.html#ae97941710d863131c700f069b109991e">$id</a>);</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;    }</div>
+<div class="ttc" id="class_entity_1_1_model_base_html_ae97941710d863131c700f069b109991e"><div class="ttname"><a href="class_entity_1_1_model_base.html#ae97941710d863131c700f069b109991e">Entity\ModelBase\$id</a></div><div class="ttdeci">$id</div><div class="ttdef"><b>Definition:</b> <a href="_model_base_8php_source.html#l00011">ModelBase.php:11</a></div></div>
+<div class="ttc" id="class_entity_1_1_model_base_html_a20020d3878c4bc983b90ba193c6f43a3"><div class="ttname"><a href="class_entity_1_1_model_base.html#a20020d3878c4bc983b90ba193c6f43a3">Entity\ModelBase\selectById</a></div><div class="ttdeci">selectById($id)</div><div class="ttdef"><b>Definition:</b> <a href="_model_base_8php_source.html#l00198">ModelBase.php:198</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="a4537dad3b44254124991341cc91b28fb"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">__get </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$key</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="_model_base_8php_source.html#l00077">77</a> of file <a class="el" href="_model_base_8php_source.html">ModelBase.php</a>.</p>
+<div class="fragment"><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;    {</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;        <span class="keywordflow">if</span> ($key == <span class="stringliteral">&quot;meta&quot;</span>)</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;            <span class="keywordflow">return</span> $this-&gt;<a class="code" href="class_entity_1_1_model_base.html#abcae69e19426269fa17be92decfce7fd">getMeta</a>();</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;        <span class="keywordflow">if</span> ($key == <span class="stringliteral">&quot;id&quot;</span>)</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;            <span class="keywordflow">return</span> <a class="code" href="class_entity_1_1_model_base.html#ae97941710d863131c700f069b109991e">$this-&gt;id</a>;</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;        <span class="keywordflow">if</span> (!isset($this-&gt;fieldsValues[$key]))</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;            <span class="keywordflow">return</span> null;</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;        <span class="keywordflow">return</span> $this-&gt;fieldsValues[$key];</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;    }</div>
+<div class="ttc" id="class_entity_1_1_model_base_html_ae97941710d863131c700f069b109991e"><div class="ttname"><a href="class_entity_1_1_model_base.html#ae97941710d863131c700f069b109991e">Entity\ModelBase\$id</a></div><div class="ttdeci">$id</div><div class="ttdef"><b>Definition:</b> <a href="_model_base_8php_source.html#l00011">ModelBase.php:11</a></div></div>
+<div class="ttc" id="class_entity_1_1_model_base_html_abcae69e19426269fa17be92decfce7fd"><div class="ttname"><a href="class_entity_1_1_model_base.html#abcae69e19426269fa17be92decfce7fd">Entity\ModelBase\getMeta</a></div><div class="ttdeci">getMeta($lang=null)</div><div class="ttdef"><b>Definition:</b> <a href="_model_base_8php_source.html#l00071">ModelBase.php:71</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a79b36d71c6f1d4f9e6c4c3e34c081456"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">__set </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$key</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$value</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="_model_base_8php_source.html#l00088">88</a> of file <a class="el" href="_model_base_8php_source.html">ModelBase.php</a>.</p>
+<div class="fragment"><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;    {</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;        <span class="keywordflow">if</span> ($value instanceof \DateTime)</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;            $value = $value-&gt;format(<span class="stringliteral">&quot;Y-m-d&quot;</span>);</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;        $this-&gt;fieldsValues[$key] = $value;</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;        <span class="keywordflow">if</span> (is_bool($value))</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;            $this-&gt;changed[$key] = $value ? 1 : 0;</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;        <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;            $this-&gt;changed[$key] = self::$dbo-&gt;quote($value);</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;        <span class="keywordflow">return</span> $value;</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;    }</div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a8f625fd84b76c94749c8b1c992ef85ed"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">static getDbPrefix </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="_model_base_8php_source.html#l00034">34</a> of file <a class="el" href="_model_base_8php_source.html">ModelBase.php</a>.</p>
+<div class="fragment"><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;    {</div>
+<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;        <span class="keywordflow">return</span> self::$config[3];</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;    }</div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="abcae69e19426269fa17be92decfce7fd"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">getMeta </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$lang</em> = <code>null</code></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="_model_base_8php_source.html#l00071">71</a> of file <a class="el" href="_model_base_8php_source.html">ModelBase.php</a>.</p>
+<div class="fragment"><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;    {</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;        $fetcher = new \Entity\Meta();</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;        <span class="keywordflow">return</span> $fetcher-&gt;query(array(<span class="stringliteral">&quot;type&quot;</span> =&gt; get_class()));</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;    }</div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a93566f2c8d709d410ae8ec46b813999b"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">getTableName </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="_model_base_8php_source.html#l00039">39</a> of file <a class="el" href="_model_base_8php_source.html">ModelBase.php</a>.</p>
+<div class="fragment"><div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;    {</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;        $className = new \ReflectionClass($this);</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;        <span class="keywordflow">return</span> $this-&gt;<a class="code" href="class_entity_1_1_model_base.html#a8f625fd84b76c94749c8b1c992ef85ed">getDbPrefix</a>().strtolower($className-&gt;getShortName());</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;    }</div>
+<div class="ttc" id="class_entity_1_1_model_base_html_a8f625fd84b76c94749c8b1c992ef85ed"><div class="ttname"><a href="class_entity_1_1_model_base.html#a8f625fd84b76c94749c8b1c992ef85ed">Entity\ModelBase\getDbPrefix</a></div><div class="ttdeci">static getDbPrefix()</div><div class="ttdef"><b>Definition:</b> <a href="_model_base_8php_source.html#l00034">ModelBase.php:34</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a9f0be6ae273d3669e11c29910a0be338"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">static init </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="_model_base_8php_source.html#l00023">23</a> of file <a class="el" href="_model_base_8php_source.html">ModelBase.php</a>.</p>
+<div class="fragment"><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;    {</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;        <span class="keywordflow">if</span> (self::$dbo !== null)</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;        self::$config = @include(<span class="stringliteral">&quot;core/config.inc.php&quot;</span>);</div>
+<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;        <span class="keywordflow">if</span> (empty(self::$config))</div>
+<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;        self::$dbo = new \PDO(self::$config[0], self::$config[1], self::$config[2]);</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;    }</div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="aa966adc12c56a4cc70da92207fa50929"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">install </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">abstract</span><span class="mlabel">protected</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a70391280402677bbb9cb6616fb9376fb"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">populate </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$data</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="_model_base_8php_source.html#l00207">207</a> of file <a class="el" href="_model_base_8php_source.html">ModelBase.php</a>.</p>
+<div class="fragment"><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;    {</div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;        $this-&gt;<span class="keywordtype">id</span> = FALSE;</div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;        <span class="keywordflow">foreach</span> ($data as $i =&gt; $j)</div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;            $this-&gt;fieldsValues[$i] = $j;</div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;        <span class="keywordflow">if</span> (isset($data[<span class="stringliteral">&quot;id&quot;</span>]))</div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;            $this-&gt;<span class="keywordtype">id</span> = (int) $data[<span class="stringliteral">&quot;id&quot;</span>];</div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;    }</div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="afc8a3c62679cf00ade9f15fb2a6d6132"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">save </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="_model_base_8php_source.html#l00100">100</a> of file <a class="el" href="_model_base_8php_source.html">ModelBase.php</a>.</p>
+<div class="fragment"><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;    {</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;        <a class="code" href="class_tools_1_1_hooks.html#a8dc5debf6c33905af409438d26ed3916">\Tools\Hooks::trigger</a>(<span class="stringliteral">&quot;onBeforeEntitySave&quot;</span>);</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;        <a class="code" href="class_tools_1_1_hooks.html#a8dc5debf6c33905af409438d26ed3916">\Tools\Hooks::trigger</a>(<span class="stringliteral">&quot;onBeforeEntitySave&quot;</span>.$this-&gt;<a class="code" href="class_entity_1_1_model_base.html#a93566f2c8d709d410ae8ec46b813999b">getTableName</a>());</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;        <span class="keywordflow">if</span> ($this-&gt;<span class="keywordtype">id</span> === null)</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;        {</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;            <span class="keywordflow">if</span> (empty ($this-&gt;changed))</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;            {</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;                $query = <span class="stringliteral">&quot;INSERT INTO `{$this-&gt;getTableName()}` () VALUES ()&quot;</span>;</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;                $result = self::$dbo-&gt;exec($query);</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;                <span class="keywordflow">if</span> (!$result)</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;                    <span class="keywordflow">throw</span> new \Exception(self::$dbo-&gt;errorInfo()[2]);</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;            }</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;            <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;            {</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;                $query = <span class="stringliteral">&quot;INSERT INTO `{$this-&gt;getTableName()}` (`&quot;</span> .implode(<span class="stringliteral">&quot;`,`&quot;</span>, array_keys($this-&gt;changed)) . <span class="stringliteral">&quot;`) VALUES (&quot;</span> . implode(<span class="stringliteral">&quot;,&quot;</span>, $this-&gt;changed) . <span class="stringliteral">&quot;)&quot;</span>;</div>
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;                $result = self::$dbo-&gt;exec($query);</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;                <span class="keywordflow">if</span> (!$result)</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;                    <span class="keywordflow">throw</span> new \Exception(self::$dbo-&gt;errorInfo()[2]);</div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;                $this-&gt;changed = array();</div>
+<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;            }</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;            $this-&gt;<span class="keywordtype">id</span> = self::$dbo-&gt;lastInsertId();</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;        }</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;        <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;        {</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;            <span class="keywordflow">if</span> (!empty($this-&gt;changed))</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;            {</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;                <span class="keywordflow">if</span> ($this-&gt;<span class="keywordtype">id</span> === <span class="keyword">false</span>)</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;                    <span class="keywordflow">throw</span> new \Exception(<span class="stringliteral">&quot;Cannot update private row&quot;</span>);</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;                $query = <span class="stringliteral">&quot;UPDATE {$this-&gt;getTableName()} SET &quot;</span>;</div>
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;                $newValues = array();</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;                <span class="keywordflow">foreach</span> ($this-&gt;changed as $i =&gt; $j)</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;                    $newValues[] = <span class="stringliteral">&quot;`{$i}`=&quot;</span> . self::$dbo-&gt;quote($j);</div>
+<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;                $query .= implode(<span class="stringliteral">&quot;,&quot;</span>,$newValues).<span class="stringliteral">&quot; WHERE id={$this-&gt;id}&quot;</span>;</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;                $result = self::$dbo-&gt;exec($query);</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;                <span class="keywordflow">if</span> (!$result)</div>
+<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;                    <span class="keywordflow">throw</span> new \Exception(self::$dbo-&gt;errorInfo()[2]);</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;                $this-&gt;changed = array();</div>
+<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;            }</div>
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;        }</div>
+<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;        <a class="code" href="class_tools_1_1_hooks.html#a8dc5debf6c33905af409438d26ed3916">\Tools\Hooks::trigger</a>(<span class="stringliteral">&quot;onAfterEntitySave&quot;</span>);</div>
+<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;        <a class="code" href="class_tools_1_1_hooks.html#a8dc5debf6c33905af409438d26ed3916">\Tools\Hooks::trigger</a>(<span class="stringliteral">&quot;onAfterEntitySave&quot;</span>.$this-&gt;<a class="code" href="class_entity_1_1_model_base.html#a93566f2c8d709d410ae8ec46b813999b">getTableName</a>());</div>
+<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;    }</div>
+<div class="ttc" id="class_tools_1_1_hooks_html_a8dc5debf6c33905af409438d26ed3916"><div class="ttname"><a href="class_tools_1_1_hooks.html#a8dc5debf6c33905af409438d26ed3916">Tools\Hooks\trigger</a></div><div class="ttdeci">trigger($hookName, $params=null)</div><div class="ttdef"><b>Definition:</b> <a href="_hooks_8php_source.html#l00062">Hooks.php:62</a></div></div>
+<div class="ttc" id="class_entity_1_1_model_base_html_a93566f2c8d709d410ae8ec46b813999b"><div class="ttname"><a href="class_entity_1_1_model_base.html#a93566f2c8d709d410ae8ec46b813999b">Entity\ModelBase\getTableName</a></div><div class="ttdeci">getTableName()</div><div class="ttdef"><b>Definition:</b> <a href="_model_base_8php_source.html#l00039">ModelBase.php:39</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a20020d3878c4bc983b90ba193c6f43a3"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">selectById </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$id</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="_model_base_8php_source.html#l00198">198</a> of file <a class="el" href="_model_base_8php_source.html">ModelBase.php</a>.</p>
+<div class="fragment"><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;    {</div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;        $query = <span class="stringliteral">&quot;SELECT * FROM {$this-&gt;getTableName()} WHERE id=&quot;</span>.(int)<a class="code" href="class_entity_1_1_model_base.html#ae97941710d863131c700f069b109991e">$id</a>.<span class="stringliteral">&quot; LIMIT 1&quot;</span>;</div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;        $result = self::$dbo-&gt;query($query, \PDO::FETCH_ASSOC);</div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;        <span class="keywordflow">if</span> ($result === <span class="keyword">false</span>)</div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;            <span class="keywordflow">throw</span> new \Exception(<span class="stringliteral">&quot;Cannot fetch data: &quot;</span>.self::$dbo-&gt;errorInfo()[2]);</div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;        $this-&gt;<a class="code" href="class_entity_1_1_model_base.html#a70391280402677bbb9cb6616fb9376fb">populate</a>($result);</div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;    }</div>
+<div class="ttc" id="class_entity_1_1_model_base_html_ae97941710d863131c700f069b109991e"><div class="ttname"><a href="class_entity_1_1_model_base.html#ae97941710d863131c700f069b109991e">Entity\ModelBase\$id</a></div><div class="ttdeci">$id</div><div class="ttdef"><b>Definition:</b> <a href="_model_base_8php_source.html#l00011">ModelBase.php:11</a></div></div>
+<div class="ttc" id="class_entity_1_1_model_base_html_a70391280402677bbb9cb6616fb9376fb"><div class="ttname"><a href="class_entity_1_1_model_base.html#a70391280402677bbb9cb6616fb9376fb">Entity\ModelBase\populate</a></div><div class="ttdeci">populate($data)</div><div class="ttdef"><b>Definition:</b> <a href="_model_base_8php_source.html#l00207">ModelBase.php:207</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a224e7fc70ae3e2646cd1167f72628ac2"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">selects </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$criteria</em> = <code>null</code>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$orderBy</em> = <code>null</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="_model_base_8php_source.html#l00144">144</a> of file <a class="el" href="_model_base_8php_source.html">ModelBase.php</a>.</p>
+<div class="fragment"><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;    {</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;        $query = <span class="stringliteral">&quot;SELECT * FROM {$this-&gt;getTableName()}&quot;</span>;</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;        <span class="keywordflow">if</span> (!empty($criteria))</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;        {</div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;            $subQuery = array();</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;            <span class="keywordflow">foreach</span> ($criteria as $i =&gt; $j)</div>
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;            {</div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;                <span class="keywordflow">if</span> ($j == null)</div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;                    $subQuery[] = <span class="stringliteral">&quot;`{$i}` IS NULL&quot;</span>;</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;                <span class="keywordflow">else</span> <span class="keywordflow">if</span> (is_array($j))</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;                {</div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;                    $inArray = [];</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;                    <span class="keywordflow">foreach</span> ($j as $k)</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;                        $inArray[] = self::$dbo-&gt;quote($k);</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;                    $subQuery[] = <span class="stringliteral">&quot;`{$i}` IN (&quot;</span>.implode(<span class="stringliteral">&quot;,&quot;</span>, $inArray).<span class="stringliteral">&quot;)&quot;</span>;</div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;                }</div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;                <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;                    $subQuery[] = <span class="stringliteral">&quot;`{$i}`=&quot;</span>.self::$dbo-&gt;quote($j);</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;            }</div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;            $query .= <span class="stringliteral">&quot; WHERE &quot;</span>.implode(<span class="stringliteral">&quot; AND &quot;</span>, $subQuery);</div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;        }</div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;        <span class="keywordflow">if</span> (!empty($orderBy))</div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;        {</div>
+<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;            $_orderBy = array();</div>
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;            <span class="keywordflow">foreach</span> ($orderBy as $i =&gt; $j)</div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;            {</div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;                <span class="keywordflow">if</span> (is_numeric($i))</div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;                    $_orderBy[] = <span class="stringliteral">&quot;`{$j}` ASC&quot;</span>;</div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;                <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;                {</div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;                    $orderType = <span class="stringliteral">&quot;ASC&quot;</span>;</div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;                    <span class="keywordflow">if</span> (strtoupper($j == <span class="stringliteral">&quot;DESC&quot;</span>))</div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;                        $orderType = <span class="stringliteral">&quot;DESC&quot;</span>;</div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;                    $_orderBy[] = <span class="stringliteral">&quot;`{$i}` {$orderType}&quot;</span>;</div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;                }</div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;            }</div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;            $query .= <span class="stringliteral">&quot; ORDER BY &quot;</span>.implode(<span class="stringliteral">&quot;,&quot;</span>, $_orderBy);</div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;        }</div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;        $result = self::$dbo-&gt;query($query, \PDO::FETCH_ASSOC);</div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;        <span class="keywordflow">if</span> ($result === <span class="keyword">false</span>)</div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;            <span class="keywordflow">throw</span> new \Exception(self::$dbo-&gt;errorInfo()[2]);</div>
+<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;        $resultObj = array();</div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;        $className = get_class($this);</div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;        <span class="keywordflow">foreach</span> ($result as $i)</div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;        {</div>
+<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;            $iObj = <span class="keyword">new</span> $className();</div>
+<div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;            $iObj-&gt;populate($i);</div>
+<div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;            $resultObj[] = $iObj;</div>
+<div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;        }</div>
+<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;        <span class="keywordflow">return</span> $resultObj;</div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;    }</div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="ae59aa0f62b893798e267e842e0d10228"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">static setup </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="_model_base_8php_source.html#l00045">45</a> of file <a class="el" href="_model_base_8php_source.html">ModelBase.php</a>.</p>
+<div class="fragment"><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;    {</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;        $tables = array(<span class="stringliteral">&quot;Admin&quot;</span>, <span class="stringliteral">&quot;User&quot;</span>, <span class="stringliteral">&quot;Address&quot;</span>, <span class="stringliteral">&quot;Cart&quot;</span>, <span class="stringliteral">&quot;Category&quot;</span>, <span class="stringliteral">&quot;Product&quot;</span>, <span class="stringliteral">&quot;CartProduct&quot;</span>, <span class="stringliteral">&quot;Meta&quot;</span>, <span class="stringliteral">&quot;Cms&quot;</span>, <span class="stringliteral">&quot;Config&quot;</span>, <span class="stringliteral">&quot;Module&quot;</span>, <span class="stringliteral">&quot;ModuleHook&quot;</span>);</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;        self::init();</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;        self::$dbo-&gt;beginTransaction();</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;        <span class="keywordflow">try</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;        {</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;            <span class="keywordflow">foreach</span> ($tables as $i)</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;            {</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;                $i = <span class="stringliteral">&quot;Entity\\&quot;</span>.$i;</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;                $table = <span class="keyword">new</span> $i();</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;                <span class="keywordflow">if</span> ($table-&gt;install() != <span class="keyword">true</span>)</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;                    <span class="keywordflow">throw</span> <span class="keyword">new</span> \<a class="code" href="namespace_exception.html">Exception</a>();</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;            }</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;        }</div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;        <span class="keywordflow">catch</span> (\<a class="code" href="namespace_exception.html">Exception</a> $e)</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;        {</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;            echo $e-&gt;getMessage();</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;            self::$dbo-&gt;rollBack();</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;        }</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;        self::$dbo-&gt;commit();</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    }</div>
+<div class="ttc" id="namespace_exception_html"><div class="ttname"><a href="namespace_exception.html">Exception</a></div><div class="ttdef"><b>Definition:</b> <a href="_error404_8php_source.html#l00003">Error404.php:3</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<h2 class="groupheader">Field Documentation</h2>
+<a class="anchor" id="ab060006d1221e5e476126476b921ad54"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">$changed = array()</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="_model_base_8php_source.html#l00009">9</a> of file <a class="el" href="_model_base_8php_source.html">ModelBase.php</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a49c7011be9c979d9174c52a8b83e5d8e"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">$config = null</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">private</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="_model_base_8php_source.html#l00010">10</a> of file <a class="el" href="_model_base_8php_source.html">ModelBase.php</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a7dcb5614ba1a7c7cd9379bdef91bd8d3"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">$dbo = null</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">protected</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="_model_base_8php_source.html#l00008">8</a> of file <a class="el" href="_model_base_8php_source.html">ModelBase.php</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a80d18e0e9e33f8cee4f1c4871f1283a4"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">$fieldsValues = array()</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="_model_base_8php_source.html#l00007">7</a> of file <a class="el" href="_model_base_8php_source.html">ModelBase.php</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="ae97941710d863131c700f069b109991e"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">$id</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="_model_base_8php_source.html#l00011">11</a> of file <a class="el" href="_model_base_8php_source.html">ModelBase.php</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>/home/isundil/Project/ecom/core/models/<a class="el" href="_model_base_8php_source.html">ModelBase.php</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:19 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

二進制
doc/html/class_entity_1_1_model_base.png


+ 234 - 0
doc/html/class_entity_1_1_module.html

@@ -0,0 +1,234 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: Module Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespace_entity.html">Entity</a></li><li class="navelem"><a class="el" href="class_entity_1_1_module.html">Module</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
+<a href="#pro-methods">Protected Member Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">Module Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for Module:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="class_entity_1_1_module.png" usemap="#Module_map" alt=""/>
+  <map id="Module_map" name="Module_map">
+<area href="class_entity_1_1_model_base.html" alt="ModelBase" shape="rect" coords="0,0,75,24"/>
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
+Static Public Member Functions</h2></td></tr>
+<tr class="memitem:a5a5d2fbfed8c77d8760c2d0473e92220"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_module.html#a5a5d2fbfed8c77d8760c2d0473e92220">getActivated</a> ()</td></tr>
+<tr class="separator:a5a5d2fbfed8c77d8760c2d0473e92220"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_static_methods_class_entity_1_1_model_base"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_class_entity_1_1_model_base')"><img src="closed.png" alt="-"/>&#160;Static Public Member Functions inherited from <a class="el" href="class_entity_1_1_model_base.html">ModelBase</a></td></tr>
+<tr class="memitem:a9f0be6ae273d3669e11c29910a0be338 inherit pub_static_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a9f0be6ae273d3669e11c29910a0be338">init</a> ()</td></tr>
+<tr class="separator:a9f0be6ae273d3669e11c29910a0be338 inherit pub_static_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8f625fd84b76c94749c8b1c992ef85ed inherit pub_static_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a8f625fd84b76c94749c8b1c992ef85ed">getDbPrefix</a> ()</td></tr>
+<tr class="separator:a8f625fd84b76c94749c8b1c992ef85ed inherit pub_static_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae59aa0f62b893798e267e842e0d10228 inherit pub_static_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#ae59aa0f62b893798e267e842e0d10228">setup</a> ()</td></tr>
+<tr class="separator:ae59aa0f62b893798e267e842e0d10228 inherit pub_static_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr class="memitem:aa966adc12c56a4cc70da92207fa50929"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_module.html#aa966adc12c56a4cc70da92207fa50929">install</a> ()</td></tr>
+<tr class="separator:aa966adc12c56a4cc70da92207fa50929"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_class_entity_1_1_model_base"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_class_entity_1_1_model_base')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="class_entity_1_1_model_base.html">ModelBase</a></td></tr>
+<tr class="memitem:aa966adc12c56a4cc70da92207fa50929 inherit pro_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#aa966adc12c56a4cc70da92207fa50929">install</a> ()</td></tr>
+<tr class="separator:aa966adc12c56a4cc70da92207fa50929 inherit pro_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
+Additional Inherited Members</h2></td></tr>
+<tr class="inherit_header pub_methods_class_entity_1_1_model_base"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_entity_1_1_model_base')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="class_entity_1_1_model_base.html">ModelBase</a></td></tr>
+<tr class="memitem:abbda66c832a371bc9b6ec05cb8734efc inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#abbda66c832a371bc9b6ec05cb8734efc">__construct</a> ($id=null)</td></tr>
+<tr class="separator:abbda66c832a371bc9b6ec05cb8734efc inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a93566f2c8d709d410ae8ec46b813999b inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a93566f2c8d709d410ae8ec46b813999b">getTableName</a> ()</td></tr>
+<tr class="separator:a93566f2c8d709d410ae8ec46b813999b inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abcae69e19426269fa17be92decfce7fd inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#abcae69e19426269fa17be92decfce7fd">getMeta</a> ($lang=null)</td></tr>
+<tr class="separator:abcae69e19426269fa17be92decfce7fd inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4537dad3b44254124991341cc91b28fb inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a4537dad3b44254124991341cc91b28fb">__get</a> ($key)</td></tr>
+<tr class="separator:a4537dad3b44254124991341cc91b28fb inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a79b36d71c6f1d4f9e6c4c3e34c081456 inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a79b36d71c6f1d4f9e6c4c3e34c081456">__set</a> ($key, $value)</td></tr>
+<tr class="separator:a79b36d71c6f1d4f9e6c4c3e34c081456 inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afc8a3c62679cf00ade9f15fb2a6d6132 inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#afc8a3c62679cf00ade9f15fb2a6d6132">save</a> ()</td></tr>
+<tr class="separator:afc8a3c62679cf00ade9f15fb2a6d6132 inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a224e7fc70ae3e2646cd1167f72628ac2 inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a224e7fc70ae3e2646cd1167f72628ac2">selects</a> ($criteria=null, $orderBy=null)</td></tr>
+<tr class="separator:a224e7fc70ae3e2646cd1167f72628ac2 inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a20020d3878c4bc983b90ba193c6f43a3 inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a20020d3878c4bc983b90ba193c6f43a3">selectById</a> ($id)</td></tr>
+<tr class="separator:a20020d3878c4bc983b90ba193c6f43a3 inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_static_attribs_class_entity_1_1_model_base"><td colspan="2" onclick="javascript:toggleInherit('pro_static_attribs_class_entity_1_1_model_base')"><img src="closed.png" alt="-"/>&#160;Static Protected Attributes inherited from <a class="el" href="class_entity_1_1_model_base.html">ModelBase</a></td></tr>
+<tr class="memitem:a7dcb5614ba1a7c7cd9379bdef91bd8d3 inherit pro_static_attribs_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a7dcb5614ba1a7c7cd9379bdef91bd8d3">$dbo</a> = null</td></tr>
+<tr class="separator:a7dcb5614ba1a7c7cd9379bdef91bd8d3 inherit pro_static_attribs_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock">
+<p>Definition at line <a class="el" href="_module_8php_source.html#l00005">5</a> of file <a class="el" href="_module_8php_source.html">Module.php</a>.</p>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="a5a5d2fbfed8c77d8760c2d0473e92220"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">static getActivated </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="_module_8php_source.html#l00022">22</a> of file <a class="el" href="_module_8php_source.html">Module.php</a>.</p>
+<div class="fragment"><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;    {</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;        $fetcher = <span class="keyword">new</span> <span class="keyword">self</span>();</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;        <span class="keywordflow">return</span> $fetcher-&gt;selects(array(<span class="stringliteral">&quot;active&quot;</span> =&gt; <span class="keyword">true</span>));</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;    }</div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="aa966adc12c56a4cc70da92207fa50929"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">install </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="_module_8php_source.html#l00007">7</a> of file <a class="el" href="_module_8php_source.html">Module.php</a>.</p>
+<div class="fragment"><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;    {</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;        $dbPrefix = $this-&gt;<a class="code" href="class_entity_1_1_model_base.html#a8f625fd84b76c94749c8b1c992ef85ed">getDbPrefix</a>();</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;        $result = self::$dbo-&gt;exec(<span class="stringliteral">&quot;CREATE TABLE IF NOT EXISTS `{$dbPrefix}module` (</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="stringliteral">            `id` INTEGER(11) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="stringliteral">            `name` VARCHAR(128) NOT NULL,</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="stringliteral">            `description` VARCHAR(255) NOT NULL,</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="stringliteral">            `directory` VARCHAR(255) NOT NULL,</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="stringliteral">            `active` BOOLEAN DEFAULT FALSE NOT NULL</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="stringliteral">        )&quot;</span>);</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;        <span class="keywordflow">if</span> ($result === <span class="keyword">false</span>)</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;            <span class="keywordflow">throw</span> new \Exception(get_class().<span class="stringliteral">&quot;: &quot;</span>.self::$dbo-&gt;errorInfo()[2]);</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;    }</div>
+<div class="ttc" id="class_entity_1_1_model_base_html_a8f625fd84b76c94749c8b1c992ef85ed"><div class="ttname"><a href="class_entity_1_1_model_base.html#a8f625fd84b76c94749c8b1c992ef85ed">Entity\ModelBase\getDbPrefix</a></div><div class="ttdeci">static getDbPrefix()</div><div class="ttdef"><b>Definition:</b> <a href="_model_base_8php_source.html#l00034">ModelBase.php:34</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>/home/isundil/Project/ecom/core/models/<a class="el" href="_module_8php_source.html">Module.php</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:19 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

二進制
doc/html/class_entity_1_1_module.png


+ 236 - 0
doc/html/class_entity_1_1_module_hook.html

@@ -0,0 +1,236 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: ModuleHook Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespace_entity.html">Entity</a></li><li class="navelem"><a class="el" href="class_entity_1_1_module_hook.html">ModuleHook</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
+<a href="#pro-methods">Protected Member Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">ModuleHook Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for ModuleHook:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="class_entity_1_1_module_hook.png" usemap="#ModuleHook_map" alt=""/>
+  <map id="ModuleHook_map" name="ModuleHook_map">
+<area href="class_entity_1_1_model_base.html" alt="ModelBase" shape="rect" coords="0,0,83,24"/>
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
+Static Public Member Functions</h2></td></tr>
+<tr class="memitem:a71be00f62d624dea24303dd1cbb3e611"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_module_hook.html#a71be00f62d624dea24303dd1cbb3e611">getModules</a> ($moduleIds)</td></tr>
+<tr class="separator:a71be00f62d624dea24303dd1cbb3e611"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_static_methods_class_entity_1_1_model_base"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_class_entity_1_1_model_base')"><img src="closed.png" alt="-"/>&#160;Static Public Member Functions inherited from <a class="el" href="class_entity_1_1_model_base.html">ModelBase</a></td></tr>
+<tr class="memitem:a9f0be6ae273d3669e11c29910a0be338 inherit pub_static_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a9f0be6ae273d3669e11c29910a0be338">init</a> ()</td></tr>
+<tr class="separator:a9f0be6ae273d3669e11c29910a0be338 inherit pub_static_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8f625fd84b76c94749c8b1c992ef85ed inherit pub_static_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a8f625fd84b76c94749c8b1c992ef85ed">getDbPrefix</a> ()</td></tr>
+<tr class="separator:a8f625fd84b76c94749c8b1c992ef85ed inherit pub_static_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae59aa0f62b893798e267e842e0d10228 inherit pub_static_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#ae59aa0f62b893798e267e842e0d10228">setup</a> ()</td></tr>
+<tr class="separator:ae59aa0f62b893798e267e842e0d10228 inherit pub_static_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr class="memitem:aa966adc12c56a4cc70da92207fa50929"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_module_hook.html#aa966adc12c56a4cc70da92207fa50929">install</a> ()</td></tr>
+<tr class="separator:aa966adc12c56a4cc70da92207fa50929"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_class_entity_1_1_model_base"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_class_entity_1_1_model_base')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="class_entity_1_1_model_base.html">ModelBase</a></td></tr>
+<tr class="memitem:aa966adc12c56a4cc70da92207fa50929 inherit pro_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#aa966adc12c56a4cc70da92207fa50929">install</a> ()</td></tr>
+<tr class="separator:aa966adc12c56a4cc70da92207fa50929 inherit pro_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
+Additional Inherited Members</h2></td></tr>
+<tr class="inherit_header pub_methods_class_entity_1_1_model_base"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_entity_1_1_model_base')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="class_entity_1_1_model_base.html">ModelBase</a></td></tr>
+<tr class="memitem:abbda66c832a371bc9b6ec05cb8734efc inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#abbda66c832a371bc9b6ec05cb8734efc">__construct</a> ($id=null)</td></tr>
+<tr class="separator:abbda66c832a371bc9b6ec05cb8734efc inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a93566f2c8d709d410ae8ec46b813999b inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a93566f2c8d709d410ae8ec46b813999b">getTableName</a> ()</td></tr>
+<tr class="separator:a93566f2c8d709d410ae8ec46b813999b inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abcae69e19426269fa17be92decfce7fd inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#abcae69e19426269fa17be92decfce7fd">getMeta</a> ($lang=null)</td></tr>
+<tr class="separator:abcae69e19426269fa17be92decfce7fd inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4537dad3b44254124991341cc91b28fb inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a4537dad3b44254124991341cc91b28fb">__get</a> ($key)</td></tr>
+<tr class="separator:a4537dad3b44254124991341cc91b28fb inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a79b36d71c6f1d4f9e6c4c3e34c081456 inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a79b36d71c6f1d4f9e6c4c3e34c081456">__set</a> ($key, $value)</td></tr>
+<tr class="separator:a79b36d71c6f1d4f9e6c4c3e34c081456 inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afc8a3c62679cf00ade9f15fb2a6d6132 inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#afc8a3c62679cf00ade9f15fb2a6d6132">save</a> ()</td></tr>
+<tr class="separator:afc8a3c62679cf00ade9f15fb2a6d6132 inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a224e7fc70ae3e2646cd1167f72628ac2 inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a224e7fc70ae3e2646cd1167f72628ac2">selects</a> ($criteria=null, $orderBy=null)</td></tr>
+<tr class="separator:a224e7fc70ae3e2646cd1167f72628ac2 inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a20020d3878c4bc983b90ba193c6f43a3 inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a20020d3878c4bc983b90ba193c6f43a3">selectById</a> ($id)</td></tr>
+<tr class="separator:a20020d3878c4bc983b90ba193c6f43a3 inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_static_attribs_class_entity_1_1_model_base"><td colspan="2" onclick="javascript:toggleInherit('pro_static_attribs_class_entity_1_1_model_base')"><img src="closed.png" alt="-"/>&#160;Static Protected Attributes inherited from <a class="el" href="class_entity_1_1_model_base.html">ModelBase</a></td></tr>
+<tr class="memitem:a7dcb5614ba1a7c7cd9379bdef91bd8d3 inherit pro_static_attribs_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a7dcb5614ba1a7c7cd9379bdef91bd8d3">$dbo</a> = null</td></tr>
+<tr class="separator:a7dcb5614ba1a7c7cd9379bdef91bd8d3 inherit pro_static_attribs_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock">
+<p>Definition at line <a class="el" href="_module_hook_8php_source.html#l00005">5</a> of file <a class="el" href="_module_hook_8php_source.html">ModuleHook.php</a>.</p>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="a71be00f62d624dea24303dd1cbb3e611"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">static getModules </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$moduleIds</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="_module_hook_8php_source.html#l00023">23</a> of file <a class="el" href="_module_hook_8php_source.html">ModuleHook.php</a>.</p>
+<div class="fragment"><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;    {</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;        $fetcher = <span class="keyword">new</span> <span class="keyword">self</span>();</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;        <span class="keywordflow">return</span> $fetcher-&gt;selects(array(<span class="stringliteral">&quot;module_id&quot;</span> =&gt; $moduleIds), array(<span class="stringliteral">&quot;hookName&quot;</span>, <span class="stringliteral">&quot;hookPosition&quot;</span>));</div>
+<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;    }</div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="aa966adc12c56a4cc70da92207fa50929"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">install </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="_module_hook_8php_source.html#l00007">7</a> of file <a class="el" href="_module_hook_8php_source.html">ModuleHook.php</a>.</p>
+<div class="fragment"><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;    {</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;        $dbPrefix = $this-&gt;<a class="code" href="class_entity_1_1_model_base.html#a8f625fd84b76c94749c8b1c992ef85ed">getDbPrefix</a>();</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;        $result = self::$dbo-&gt;exec(<span class="stringliteral">&quot;CREATE TABLE IF NOT EXISTS `{$dbPrefix}modulehook` (</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="stringliteral">            `id` INTEGER(11) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="stringliteral">            `module_id` INTEGER(11) UNSIGNED NOT NULL,</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="stringliteral">            `hookName` VARCHAR(32) NOT NULL,</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="stringliteral">            `hookPosition` INTEGER(11) NOT NULL,</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="stringliteral">            FOREIGN KEY (`module_id`) REFERENCES `{$dbPrefix}module`(id),</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="stringliteral">            UNIQUE(`module_id`, `hookName`)</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="stringliteral">        )&quot;</span>);</div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;        <span class="keywordflow">if</span> ($result === <span class="keyword">false</span>)</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;            <span class="keywordflow">throw</span> new \Exception(get_class().<span class="stringliteral">&quot;: &quot;</span>.self::$dbo-&gt;errorInfo()[2]);</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;    }</div>
+<div class="ttc" id="class_entity_1_1_model_base_html_a8f625fd84b76c94749c8b1c992ef85ed"><div class="ttname"><a href="class_entity_1_1_model_base.html#a8f625fd84b76c94749c8b1c992ef85ed">Entity\ModelBase\getDbPrefix</a></div><div class="ttdeci">static getDbPrefix()</div><div class="ttdef"><b>Definition:</b> <a href="_model_base_8php_source.html#l00034">ModelBase.php:34</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>/home/isundil/Project/ecom/core/models/<a class="el" href="_module_hook_8php_source.html">ModuleHook.php</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:19 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

二進制
doc/html/class_entity_1_1_module_hook.png


+ 201 - 0
doc/html/class_entity_1_1_product.html

@@ -0,0 +1,201 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: Product Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespace_entity.html">Entity</a></li><li class="navelem"><a class="el" href="class_entity_1_1_product.html">Product</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pro-methods">Protected Member Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">Product Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for Product:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="class_entity_1_1_product.png" usemap="#Product_map" alt=""/>
+  <map id="Product_map" name="Product_map">
+<area href="class_entity_1_1_model_base.html" alt="ModelBase" shape="rect" coords="0,0,75,24"/>
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
+Protected Member Functions</h2></td></tr>
+<tr class="memitem:aa966adc12c56a4cc70da92207fa50929"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_product.html#aa966adc12c56a4cc70da92207fa50929">install</a> ()</td></tr>
+<tr class="separator:aa966adc12c56a4cc70da92207fa50929"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_class_entity_1_1_model_base"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_class_entity_1_1_model_base')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="class_entity_1_1_model_base.html">ModelBase</a></td></tr>
+<tr class="memitem:aa966adc12c56a4cc70da92207fa50929 inherit pro_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#aa966adc12c56a4cc70da92207fa50929">install</a> ()</td></tr>
+<tr class="separator:aa966adc12c56a4cc70da92207fa50929 inherit pro_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
+Additional Inherited Members</h2></td></tr>
+<tr class="inherit_header pub_methods_class_entity_1_1_model_base"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_entity_1_1_model_base')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="class_entity_1_1_model_base.html">ModelBase</a></td></tr>
+<tr class="memitem:abbda66c832a371bc9b6ec05cb8734efc inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#abbda66c832a371bc9b6ec05cb8734efc">__construct</a> ($id=null)</td></tr>
+<tr class="separator:abbda66c832a371bc9b6ec05cb8734efc inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a93566f2c8d709d410ae8ec46b813999b inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a93566f2c8d709d410ae8ec46b813999b">getTableName</a> ()</td></tr>
+<tr class="separator:a93566f2c8d709d410ae8ec46b813999b inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abcae69e19426269fa17be92decfce7fd inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#abcae69e19426269fa17be92decfce7fd">getMeta</a> ($lang=null)</td></tr>
+<tr class="separator:abcae69e19426269fa17be92decfce7fd inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4537dad3b44254124991341cc91b28fb inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a4537dad3b44254124991341cc91b28fb">__get</a> ($key)</td></tr>
+<tr class="separator:a4537dad3b44254124991341cc91b28fb inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a79b36d71c6f1d4f9e6c4c3e34c081456 inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a79b36d71c6f1d4f9e6c4c3e34c081456">__set</a> ($key, $value)</td></tr>
+<tr class="separator:a79b36d71c6f1d4f9e6c4c3e34c081456 inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afc8a3c62679cf00ade9f15fb2a6d6132 inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#afc8a3c62679cf00ade9f15fb2a6d6132">save</a> ()</td></tr>
+<tr class="separator:afc8a3c62679cf00ade9f15fb2a6d6132 inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a224e7fc70ae3e2646cd1167f72628ac2 inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a224e7fc70ae3e2646cd1167f72628ac2">selects</a> ($criteria=null, $orderBy=null)</td></tr>
+<tr class="separator:a224e7fc70ae3e2646cd1167f72628ac2 inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a20020d3878c4bc983b90ba193c6f43a3 inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a20020d3878c4bc983b90ba193c6f43a3">selectById</a> ($id)</td></tr>
+<tr class="separator:a20020d3878c4bc983b90ba193c6f43a3 inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_static_methods_class_entity_1_1_model_base"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_class_entity_1_1_model_base')"><img src="closed.png" alt="-"/>&#160;Static Public Member Functions inherited from <a class="el" href="class_entity_1_1_model_base.html">ModelBase</a></td></tr>
+<tr class="memitem:a9f0be6ae273d3669e11c29910a0be338 inherit pub_static_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a9f0be6ae273d3669e11c29910a0be338">init</a> ()</td></tr>
+<tr class="separator:a9f0be6ae273d3669e11c29910a0be338 inherit pub_static_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8f625fd84b76c94749c8b1c992ef85ed inherit pub_static_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a8f625fd84b76c94749c8b1c992ef85ed">getDbPrefix</a> ()</td></tr>
+<tr class="separator:a8f625fd84b76c94749c8b1c992ef85ed inherit pub_static_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae59aa0f62b893798e267e842e0d10228 inherit pub_static_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#ae59aa0f62b893798e267e842e0d10228">setup</a> ()</td></tr>
+<tr class="separator:ae59aa0f62b893798e267e842e0d10228 inherit pub_static_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_static_attribs_class_entity_1_1_model_base"><td colspan="2" onclick="javascript:toggleInherit('pro_static_attribs_class_entity_1_1_model_base')"><img src="closed.png" alt="-"/>&#160;Static Protected Attributes inherited from <a class="el" href="class_entity_1_1_model_base.html">ModelBase</a></td></tr>
+<tr class="memitem:a7dcb5614ba1a7c7cd9379bdef91bd8d3 inherit pro_static_attribs_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a7dcb5614ba1a7c7cd9379bdef91bd8d3">$dbo</a> = null</td></tr>
+<tr class="separator:a7dcb5614ba1a7c7cd9379bdef91bd8d3 inherit pro_static_attribs_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock">
+<p>Definition at line <a class="el" href="_product_8php_source.html#l00005">5</a> of file <a class="el" href="_product_8php_source.html">Product.php</a>.</p>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="aa966adc12c56a4cc70da92207fa50929"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">install </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="_product_8php_source.html#l00007">7</a> of file <a class="el" href="_product_8php_source.html">Product.php</a>.</p>
+<div class="fragment"><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;    {</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;        $dbPrefix = $this-&gt;<a class="code" href="class_entity_1_1_model_base.html#a8f625fd84b76c94749c8b1c992ef85ed">getDbPrefix</a>();</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;        $result = self::$dbo-&gt;exec(<span class="stringliteral">&quot;CREATE TABLE IF NOT EXISTS `{$dbPrefix}product` (</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="stringliteral">            `id` INTEGER(11) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="stringliteral">            `parent` INTEGER(11) UNSIGNED NULL,</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="stringliteral">            `shurl` VARCHAR(255) NOT NULL,</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="stringliteral">            `priceExcl` FLOAT NULL,</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="stringliteral">            `priceIncl` FLOAT NULL,</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="stringliteral">            `ean` VARCHAR(64) NULL,</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="stringliteral">            FOREIGN KEY (`parent`) REFERENCES `{$dbPrefix}product`(id)</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="stringliteral">        )&quot;</span>);</div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;        <span class="keywordflow">if</span> ($result === <span class="keyword">false</span>)</div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;            <span class="keywordflow">throw</span> new \Exception(get_class().<span class="stringliteral">&quot;: &quot;</span>.self::$dbo-&gt;errorInfo()[2]);</div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;    }</div>
+<div class="ttc" id="class_entity_1_1_model_base_html_a8f625fd84b76c94749c8b1c992ef85ed"><div class="ttname"><a href="class_entity_1_1_model_base.html#a8f625fd84b76c94749c8b1c992ef85ed">Entity\ModelBase\getDbPrefix</a></div><div class="ttdeci">static getDbPrefix()</div><div class="ttdef"><b>Definition:</b> <a href="_model_base_8php_source.html#l00034">ModelBase.php:34</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>/home/isundil/Project/ecom/core/models/<a class="el" href="_product_8php_source.html">Product.php</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:19 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

二進制
doc/html/class_entity_1_1_product.png


+ 306 - 0
doc/html/class_entity_1_1_user.html

@@ -0,0 +1,306 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: User Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespace_entity.html">Entity</a></li><li class="navelem"><a class="el" href="class_entity_1_1_user.html">User</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">User Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for User:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="class_entity_1_1_user.png" usemap="#User_map" alt=""/>
+  <map id="User_map" name="User_map">
+<area href="class_entity_1_1_model_base.html" alt="ModelBase" shape="rect" coords="0,0,75,24"/>
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:aa966adc12c56a4cc70da92207fa50929"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_user.html#aa966adc12c56a4cc70da92207fa50929">install</a> ()</td></tr>
+<tr class="separator:aa966adc12c56a4cc70da92207fa50929"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abbda66c832a371bc9b6ec05cb8734efc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_user.html#abbda66c832a371bc9b6ec05cb8734efc">__construct</a> ($id=null)</td></tr>
+<tr class="separator:abbda66c832a371bc9b6ec05cb8734efc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aac8f8ac2e48fce84e6fadde734001d82"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_user.html#aac8f8ac2e48fce84e6fadde734001d82">checkPassword</a> ($value)</td></tr>
+<tr class="separator:aac8f8ac2e48fce84e6fadde734001d82"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1da155ea4c8dda7eb4cf986f05634003"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_user.html#a1da155ea4c8dda7eb4cf986f05634003">setPassword</a> ($value)</td></tr>
+<tr class="separator:a1da155ea4c8dda7eb4cf986f05634003"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a79b36d71c6f1d4f9e6c4c3e34c081456"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_user.html#a79b36d71c6f1d4f9e6c4c3e34c081456">__set</a> ($key, $value)</td></tr>
+<tr class="separator:a79b36d71c6f1d4f9e6c4c3e34c081456"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_class_entity_1_1_model_base"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_entity_1_1_model_base')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="class_entity_1_1_model_base.html">ModelBase</a></td></tr>
+<tr class="memitem:abbda66c832a371bc9b6ec05cb8734efc inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#abbda66c832a371bc9b6ec05cb8734efc">__construct</a> ($id=null)</td></tr>
+<tr class="separator:abbda66c832a371bc9b6ec05cb8734efc inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a93566f2c8d709d410ae8ec46b813999b inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a93566f2c8d709d410ae8ec46b813999b">getTableName</a> ()</td></tr>
+<tr class="separator:a93566f2c8d709d410ae8ec46b813999b inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abcae69e19426269fa17be92decfce7fd inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#abcae69e19426269fa17be92decfce7fd">getMeta</a> ($lang=null)</td></tr>
+<tr class="separator:abcae69e19426269fa17be92decfce7fd inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4537dad3b44254124991341cc91b28fb inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a4537dad3b44254124991341cc91b28fb">__get</a> ($key)</td></tr>
+<tr class="separator:a4537dad3b44254124991341cc91b28fb inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a79b36d71c6f1d4f9e6c4c3e34c081456 inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a79b36d71c6f1d4f9e6c4c3e34c081456">__set</a> ($key, $value)</td></tr>
+<tr class="separator:a79b36d71c6f1d4f9e6c4c3e34c081456 inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afc8a3c62679cf00ade9f15fb2a6d6132 inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#afc8a3c62679cf00ade9f15fb2a6d6132">save</a> ()</td></tr>
+<tr class="separator:afc8a3c62679cf00ade9f15fb2a6d6132 inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a224e7fc70ae3e2646cd1167f72628ac2 inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a224e7fc70ae3e2646cd1167f72628ac2">selects</a> ($criteria=null, $orderBy=null)</td></tr>
+<tr class="separator:a224e7fc70ae3e2646cd1167f72628ac2 inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a20020d3878c4bc983b90ba193c6f43a3 inherit pub_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a20020d3878c4bc983b90ba193c6f43a3">selectById</a> ($id)</td></tr>
+<tr class="separator:a20020d3878c4bc983b90ba193c6f43a3 inherit pub_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
+Additional Inherited Members</h2></td></tr>
+<tr class="inherit_header pub_static_methods_class_entity_1_1_model_base"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_class_entity_1_1_model_base')"><img src="closed.png" alt="-"/>&#160;Static Public Member Functions inherited from <a class="el" href="class_entity_1_1_model_base.html">ModelBase</a></td></tr>
+<tr class="memitem:a9f0be6ae273d3669e11c29910a0be338 inherit pub_static_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a9f0be6ae273d3669e11c29910a0be338">init</a> ()</td></tr>
+<tr class="separator:a9f0be6ae273d3669e11c29910a0be338 inherit pub_static_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8f625fd84b76c94749c8b1c992ef85ed inherit pub_static_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a8f625fd84b76c94749c8b1c992ef85ed">getDbPrefix</a> ()</td></tr>
+<tr class="separator:a8f625fd84b76c94749c8b1c992ef85ed inherit pub_static_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae59aa0f62b893798e267e842e0d10228 inherit pub_static_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#ae59aa0f62b893798e267e842e0d10228">setup</a> ()</td></tr>
+<tr class="separator:ae59aa0f62b893798e267e842e0d10228 inherit pub_static_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_class_entity_1_1_model_base"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_class_entity_1_1_model_base')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="class_entity_1_1_model_base.html">ModelBase</a></td></tr>
+<tr class="memitem:aa966adc12c56a4cc70da92207fa50929 inherit pro_methods_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#aa966adc12c56a4cc70da92207fa50929">install</a> ()</td></tr>
+<tr class="separator:aa966adc12c56a4cc70da92207fa50929 inherit pro_methods_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_static_attribs_class_entity_1_1_model_base"><td colspan="2" onclick="javascript:toggleInherit('pro_static_attribs_class_entity_1_1_model_base')"><img src="closed.png" alt="-"/>&#160;Static Protected Attributes inherited from <a class="el" href="class_entity_1_1_model_base.html">ModelBase</a></td></tr>
+<tr class="memitem:a7dcb5614ba1a7c7cd9379bdef91bd8d3 inherit pro_static_attribs_class_entity_1_1_model_base"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_entity_1_1_model_base.html#a7dcb5614ba1a7c7cd9379bdef91bd8d3">$dbo</a> = null</td></tr>
+<tr class="separator:a7dcb5614ba1a7c7cd9379bdef91bd8d3 inherit pro_static_attribs_class_entity_1_1_model_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock">
+<p>Definition at line <a class="el" href="_user_8php_source.html#l00005">5</a> of file <a class="el" href="_user_8php_source.html">User.php</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="abbda66c832a371bc9b6ec05cb8734efc"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">__construct </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$id</em> = <code>null</code></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="_user_8php_source.html#l00028">28</a> of file <a class="el" href="_user_8php_source.html">User.php</a>.</p>
+<div class="fragment"><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;    {</div>
+<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;        $this-&gt;<span class="keyword">register</span> = $this-&gt;lastVisit = $this-&gt;lastConnect = new \DateTime();</div>
+<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;        $this-&gt;registerIp = $this-&gt;lastVisitIp = $this-&gt;lastConnectIp = $_SERVER[<span class="stringliteral">&quot;REMOTE_ADDR&quot;</span>];</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;        parent::__construct(<a class="code" href="class_entity_1_1_model_base.html#ae97941710d863131c700f069b109991e">$id</a>);</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;    }</div>
+<div class="ttc" id="class_entity_1_1_model_base_html_ae97941710d863131c700f069b109991e"><div class="ttname"><a href="class_entity_1_1_model_base.html#ae97941710d863131c700f069b109991e">Entity\ModelBase\$id</a></div><div class="ttdeci">$id</div><div class="ttdef"><b>Definition:</b> <a href="_model_base_8php_source.html#l00011">ModelBase.php:11</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="a79b36d71c6f1d4f9e6c4c3e34c081456"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">__set </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$key</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$value</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="_user_8php_source.html#l00045">45</a> of file <a class="el" href="_user_8php_source.html">User.php</a>.</p>
+<div class="fragment"><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;    {</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;        <span class="keywordflow">if</span> ($key == <span class="stringliteral">&quot;password&quot;</span>)</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;            <span class="keywordflow">return</span> $this-&gt;<a class="code" href="class_entity_1_1_user.html#a1da155ea4c8dda7eb4cf986f05634003">setPassword</a>($value);</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;        <span class="keywordflow">return</span> parent::__set($key, $value);</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;    }</div>
+<div class="ttc" id="class_entity_1_1_user_html_a1da155ea4c8dda7eb4cf986f05634003"><div class="ttname"><a href="class_entity_1_1_user.html#a1da155ea4c8dda7eb4cf986f05634003">Entity\User\setPassword</a></div><div class="ttdeci">setPassword($value)</div><div class="ttdef"><b>Definition:</b> <a href="_user_8php_source.html#l00040">User.php:40</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="aac8f8ac2e48fce84e6fadde734001d82"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">checkPassword </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$value</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="_user_8php_source.html#l00035">35</a> of file <a class="el" href="_user_8php_source.html">User.php</a>.</p>
+<div class="fragment"><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;    {</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;        <span class="keywordflow">return</span> password_verify($value, $this-&gt;password);</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;    }</div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="aa966adc12c56a4cc70da92207fa50929"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">install </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="_user_8php_source.html#l00007">7</a> of file <a class="el" href="_user_8php_source.html">User.php</a>.</p>
+<div class="fragment"><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;    {</div>
+<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;        $dbPrefix = $this-&gt;<a class="code" href="class_entity_1_1_model_base.html#a8f625fd84b76c94749c8b1c992ef85ed">getDbPrefix</a>();</div>
+<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;        $result = self::$dbo-&gt;exec(<span class="stringliteral">&quot;CREATE TABLE IF NOT EXISTS `{$dbPrefix}user` (</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="stringliteral">            `id` INTEGER(11) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="stringliteral">            `email` VARCHAR(128) NOT NULL UNIQUE,</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="stringliteral">            `password` VARCHAR(64),</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="stringliteral">            `sexe` ENUM(&#39;MALE&#39;, &#39;FEMALE&#39;) NULL,</span></div>
+<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="stringliteral">            `optin` BOOLEAN DEFAULT FALSE,</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="stringliteral">            `register` DATETIME NOT NULL,</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="stringliteral">            `lastConnect` DATETIME NOT NULL,</span></div>
+<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="stringliteral">            `lastVisit` DATETIME NOT NULL,</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="stringliteral">            `registerIp` VARCHAR(42) NOT NULL,</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="stringliteral">            `lastConnectIp` VARCHAR(42) NOT NULL,</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="stringliteral">            `lastVisitIp` VARCHAR(42) NOT NULL</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="stringliteral">        )&quot;</span>);</div>
+<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;        <span class="keywordflow">if</span> ($result === <span class="keyword">false</span>)</div>
+<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;            <span class="keywordflow">throw</span> new \Exception(get_class().<span class="stringliteral">&quot;: &quot;</span>.self::$dbo-&gt;errorInfo()[2]);</div>
+<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;    }</div>
+<div class="ttc" id="class_entity_1_1_model_base_html_a8f625fd84b76c94749c8b1c992ef85ed"><div class="ttname"><a href="class_entity_1_1_model_base.html#a8f625fd84b76c94749c8b1c992ef85ed">Entity\ModelBase\getDbPrefix</a></div><div class="ttdeci">static getDbPrefix()</div><div class="ttdef"><b>Definition:</b> <a href="_model_base_8php_source.html#l00034">ModelBase.php:34</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a1da155ea4c8dda7eb4cf986f05634003"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">setPassword </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$value</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="_user_8php_source.html#l00040">40</a> of file <a class="el" href="_user_8php_source.html">User.php</a>.</p>
+<div class="fragment"><div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;    {</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;        parent::__set(<span class="stringliteral">&quot;password&quot;</span>, password_hash($value, PASSWORD_BCRYPT));</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;    }</div>
+</div><!-- fragment -->
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>/home/isundil/Project/ecom/core/models/<a class="el" href="_user_8php_source.html">User.php</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:19 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

二進制
doc/html/class_entity_1_1_user.png


+ 118 - 0
doc/html/class_exception_1_1_error404.html

@@ -0,0 +1,118 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: Error404 Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespace_exception.html">Exception</a></li><li class="navelem"><a class="el" href="class_exception_1_1_error404.html">Error404</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">Error404 Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for Error404:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="class_exception_1_1_error404.png" usemap="#Error404_map" alt=""/>
+  <map id="Error404_map" name="Error404_map">
+</map>
+ </div></div>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="class_exception_1_1_error404.html">Error404</a> throw it before AController::start to get a 404 error </p>
+
+<p>Definition at line <a class="el" href="_error404_8php_source.html#l00009">9</a> of file <a class="el" href="_error404_8php_source.html">Error404.php</a>.</p>
+</div><hr/>The documentation for this class was generated from the following file:<ul>
+<li>/home/isundil/Project/ecom/core/exceptions/<a class="el" href="_error404_8php_source.html">Error404.php</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:19 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

二進制
doc/html/class_exception_1_1_error404.png


+ 219 - 0
doc/html/class_test2_module.html

@@ -0,0 +1,219 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: Test2Module Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">Test2Module Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for Test2Module:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="class_test2_module.png" usemap="#Test2Module_map" alt=""/>
+  <map id="Test2Module_map" name="Test2Module_map">
+<area href="class_tools_1_1_a_module.html" alt="AModule" shape="rect" coords="0,0,84,24"/>
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:aa966adc12c56a4cc70da92207fa50929"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_test2_module.html#aa966adc12c56a4cc70da92207fa50929">install</a> ()</td></tr>
+<tr class="separator:aa966adc12c56a4cc70da92207fa50929"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab01ad47fd92026250cf7a4708ae5eecc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_test2_module.html#ab01ad47fd92026250cf7a4708ae5eecc">doAction</a> ($ev)</td></tr>
+<tr class="separator:ab01ad47fd92026250cf7a4708ae5eecc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae4e3b24f775b7637ae1d3c6f8356c094"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_test2_module.html#ae4e3b24f775b7637ae1d3c6f8356c094">doShortCode</a> ($short, $params)</td></tr>
+<tr class="separator:ae4e3b24f775b7637ae1d3c6f8356c094"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_class_tools_1_1_a_module"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_tools_1_1_a_module')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="class_tools_1_1_a_module.html">AModule</a></td></tr>
+<tr class="memitem:aa966adc12c56a4cc70da92207fa50929 inherit pub_methods_class_tools_1_1_a_module"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_a_module.html#aa966adc12c56a4cc70da92207fa50929">install</a> ()</td></tr>
+<tr class="separator:aa966adc12c56a4cc70da92207fa50929 inherit pub_methods_class_tools_1_1_a_module"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9db6a246faa6b948911078c4be4445c8 inherit pub_methods_class_tools_1_1_a_module"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_a_module.html#a9db6a246faa6b948911078c4be4445c8">uninstall</a> ()</td></tr>
+<tr class="separator:a9db6a246faa6b948911078c4be4445c8 inherit pub_methods_class_tools_1_1_a_module"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7b891c67ff8ce78a36b3b7983cce0353 inherit pub_methods_class_tools_1_1_a_module"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_a_module.html#a7b891c67ff8ce78a36b3b7983cce0353">doAction</a> ($event)</td></tr>
+<tr class="separator:a7b891c67ff8ce78a36b3b7983cce0353 inherit pub_methods_class_tools_1_1_a_module"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aea0a54f8b69249bbe7433211e0e1eaa5 inherit pub_methods_class_tools_1_1_a_module"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_a_module.html#aea0a54f8b69249bbe7433211e0e1eaa5">doShortCode</a> ($shortCode, $params)</td></tr>
+<tr class="separator:aea0a54f8b69249bbe7433211e0e1eaa5 inherit pub_methods_class_tools_1_1_a_module"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a313783d5477383dd99a2f3785705aaf4 inherit pub_methods_class_tools_1_1_a_module"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_a_module.html#a313783d5477383dd99a2f3785705aaf4">setContext</a> ($context)</td></tr>
+<tr class="separator:a313783d5477383dd99a2f3785705aaf4 inherit pub_methods_class_tools_1_1_a_module"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad868339fe7830b388444095288d40e22 inherit pub_methods_class_tools_1_1_a_module"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_a_module.html#ad868339fe7830b388444095288d40e22">setEntity</a> ($entity)</td></tr>
+<tr class="separator:ad868339fe7830b388444095288d40e22 inherit pub_methods_class_tools_1_1_a_module"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4537dad3b44254124991341cc91b28fb inherit pub_methods_class_tools_1_1_a_module"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_a_module.html#a4537dad3b44254124991341cc91b28fb">__get</a> ($key)</td></tr>
+<tr class="separator:a4537dad3b44254124991341cc91b28fb inherit pub_methods_class_tools_1_1_a_module"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
+Additional Inherited Members</h2></td></tr>
+<tr class="inherit_header pub_static_methods_class_tools_1_1_a_module"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_class_tools_1_1_a_module')"><img src="closed.png" alt="-"/>&#160;Static Public Member Functions inherited from <a class="el" href="class_tools_1_1_a_module.html">AModule</a></td></tr>
+<tr class="memitem:ab4218414b61680c0b9dee10c7f57e0a8 inherit pub_static_methods_class_tools_1_1_a_module"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_a_module.html#ab4218414b61680c0b9dee10c7f57e0a8">registerHook</a> ($hookName)</td></tr>
+<tr class="separator:ab4218414b61680c0b9dee10c7f57e0a8 inherit pub_static_methods_class_tools_1_1_a_module"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock">
+<p>Definition at line <a class="el" href="_2main_8php_source.html#l00003">3</a> of file <a class="el" href="_2main_8php_source.html">main.php</a>.</p>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="ab01ad47fd92026250cf7a4708ae5eecc"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">doAction </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$ev</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="_2main_8php_source.html#l00010">10</a> of file <a class="el" href="_2main_8php_source.html">main.php</a>.</p>
+<div class="fragment"><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;    {</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;    }</div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="ae4e3b24f775b7637ae1d3c6f8356c094"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">doShortCode </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$short</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$params</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="_2main_8php_source.html#l00014">14</a> of file <a class="el" href="_2main_8php_source.html">main.php</a>.</p>
+<div class="fragment"><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;    {</div>
+<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;    }</div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="aa966adc12c56a4cc70da92207fa50929"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">install </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="_2main_8php_source.html#l00005">5</a> of file <a class="el" href="_2main_8php_source.html">main.php</a>.</p>
+<div class="fragment"><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;    {</div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;        $this-&gt;<a class="code" href="class_tools_1_1_a_module.html#ab4218414b61680c0b9dee10c7f57e0a8">registerHook</a>(<span class="stringliteral">&quot;routerSetup&quot;</span>);</div>
+<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;    }</div>
+<div class="ttc" id="class_tools_1_1_a_module_html_ab4218414b61680c0b9dee10c7f57e0a8"><div class="ttname"><a href="class_tools_1_1_a_module.html#ab4218414b61680c0b9dee10c7f57e0a8">Tools\AModule\registerHook</a></div><div class="ttdeci">static registerHook($hookName)</div><div class="ttdef"><b>Definition:</b> <a href="_a_module_8php_source.html#l00078">AModule.php:78</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>/home/isundil/Project/ecom/content/modules/test2/<a class="el" href="_2main_8php_source.html">main.php</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:19 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

二進制
doc/html/class_test2_module.png


+ 219 - 0
doc/html/class_test_module.html

@@ -0,0 +1,219 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: TestModule Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a>  </div>
+  <div class="headertitle">
+<div class="title">TestModule Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for TestModule:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="class_test_module.png" usemap="#TestModule_map" alt=""/>
+  <map id="TestModule_map" name="TestModule_map">
+<area href="class_tools_1_1_a_module.html" alt="AModule" shape="rect" coords="0,0,77,24"/>
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:aa966adc12c56a4cc70da92207fa50929"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_test_module.html#aa966adc12c56a4cc70da92207fa50929">install</a> ()</td></tr>
+<tr class="separator:aa966adc12c56a4cc70da92207fa50929"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8f627dbd0a098feac620f25691bc06ad"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_test_module.html#a8f627dbd0a098feac620f25691bc06ad">doAction</a> ($e)</td></tr>
+<tr class="separator:a8f627dbd0a098feac620f25691bc06ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae4e3b24f775b7637ae1d3c6f8356c094"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_test_module.html#ae4e3b24f775b7637ae1d3c6f8356c094">doShortCode</a> ($short, $params)</td></tr>
+<tr class="separator:ae4e3b24f775b7637ae1d3c6f8356c094"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_class_tools_1_1_a_module"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_tools_1_1_a_module')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="class_tools_1_1_a_module.html">AModule</a></td></tr>
+<tr class="memitem:aa966adc12c56a4cc70da92207fa50929 inherit pub_methods_class_tools_1_1_a_module"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_a_module.html#aa966adc12c56a4cc70da92207fa50929">install</a> ()</td></tr>
+<tr class="separator:aa966adc12c56a4cc70da92207fa50929 inherit pub_methods_class_tools_1_1_a_module"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9db6a246faa6b948911078c4be4445c8 inherit pub_methods_class_tools_1_1_a_module"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_a_module.html#a9db6a246faa6b948911078c4be4445c8">uninstall</a> ()</td></tr>
+<tr class="separator:a9db6a246faa6b948911078c4be4445c8 inherit pub_methods_class_tools_1_1_a_module"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7b891c67ff8ce78a36b3b7983cce0353 inherit pub_methods_class_tools_1_1_a_module"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_a_module.html#a7b891c67ff8ce78a36b3b7983cce0353">doAction</a> ($event)</td></tr>
+<tr class="separator:a7b891c67ff8ce78a36b3b7983cce0353 inherit pub_methods_class_tools_1_1_a_module"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aea0a54f8b69249bbe7433211e0e1eaa5 inherit pub_methods_class_tools_1_1_a_module"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_a_module.html#aea0a54f8b69249bbe7433211e0e1eaa5">doShortCode</a> ($shortCode, $params)</td></tr>
+<tr class="separator:aea0a54f8b69249bbe7433211e0e1eaa5 inherit pub_methods_class_tools_1_1_a_module"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a313783d5477383dd99a2f3785705aaf4 inherit pub_methods_class_tools_1_1_a_module"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_a_module.html#a313783d5477383dd99a2f3785705aaf4">setContext</a> ($context)</td></tr>
+<tr class="separator:a313783d5477383dd99a2f3785705aaf4 inherit pub_methods_class_tools_1_1_a_module"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad868339fe7830b388444095288d40e22 inherit pub_methods_class_tools_1_1_a_module"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_a_module.html#ad868339fe7830b388444095288d40e22">setEntity</a> ($entity)</td></tr>
+<tr class="separator:ad868339fe7830b388444095288d40e22 inherit pub_methods_class_tools_1_1_a_module"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4537dad3b44254124991341cc91b28fb inherit pub_methods_class_tools_1_1_a_module"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_a_module.html#a4537dad3b44254124991341cc91b28fb">__get</a> ($key)</td></tr>
+<tr class="separator:a4537dad3b44254124991341cc91b28fb inherit pub_methods_class_tools_1_1_a_module"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
+Additional Inherited Members</h2></td></tr>
+<tr class="inherit_header pub_static_methods_class_tools_1_1_a_module"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_class_tools_1_1_a_module')"><img src="closed.png" alt="-"/>&#160;Static Public Member Functions inherited from <a class="el" href="class_tools_1_1_a_module.html">AModule</a></td></tr>
+<tr class="memitem:ab4218414b61680c0b9dee10c7f57e0a8 inherit pub_static_methods_class_tools_1_1_a_module"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_a_module.html#ab4218414b61680c0b9dee10c7f57e0a8">registerHook</a> ($hookName)</td></tr>
+<tr class="separator:ab4218414b61680c0b9dee10c7f57e0a8 inherit pub_static_methods_class_tools_1_1_a_module"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock">
+<p>Definition at line <a class="el" href="main_8php_source.html#l00003">3</a> of file <a class="el" href="main_8php_source.html">main.php</a>.</p>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="a8f627dbd0a098feac620f25691bc06ad"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">doAction </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$e</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="main_8php_source.html#l00009">9</a> of file <a class="el" href="main_8php_source.html">main.php</a>.</p>
+<div class="fragment"><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;    {</div>
+<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;        <span class="keywordflow">if</span> ($e-&gt;hookName == <span class="stringliteral">&quot;routerSetup&quot;</span>)</div>
+<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;            $this-&gt;context-&gt;router-&gt;routeAdd(<span class="stringliteral">&quot;/test&quot;</span>, <span class="stringliteral">&quot;MyController&quot;</span>);</div>
+<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;    }</div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="ae4e3b24f775b7637ae1d3c6f8356c094"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">doShortCode </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$short</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$params</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="main_8php_source.html#l00015">15</a> of file <a class="el" href="main_8php_source.html">main.php</a>.</p>
+<div class="fragment"><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;    {</div>
+<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;    }</div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="aa966adc12c56a4cc70da92207fa50929"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">install </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="main_8php_source.html#l00005">5</a> of file <a class="el" href="main_8php_source.html">main.php</a>.</p>
+<div class="fragment"><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;    {</div>
+<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;    }</div>
+</div><!-- fragment -->
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>/home/isundil/Project/ecom/content/modules/test/<a class="el" href="main_8php_source.html">main.php</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:19 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

二進制
doc/html/class_test_module.png


+ 231 - 0
doc/html/class_tools_1_1_a_controller.html

@@ -0,0 +1,231 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: AController Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespace_tools.html">Tools</a></li><li class="navelem"><a class="el" href="class_tools_1_1_a_controller.html">AController</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pro-attribs">Protected Attributes</a>  </div>
+  <div class="headertitle">
+<div class="title">AController Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for AController:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="class_tools_1_1_a_controller.png" usemap="#AController_map" alt=""/>
+  <map id="AController_map" name="AController_map">
+<area href="class_controller_1_1_category_controller.html" alt="CategoryController" shape="rect" coords="0,56,120,80"/>
+<area href="class_controller_1_1_product_controller.html" alt="ProductController" shape="rect" coords="130,56,250,80"/>
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a7b7ea19d18501d4214fb4dcb274addea"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_a_controller.html#a7b7ea19d18501d4214fb4dcb274addea">__construct</a> ($context, $params)</td></tr>
+<tr class="separator:a7b7ea19d18501d4214fb4dcb274addea"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af8fa59992209e36dccb3eefb0f75531f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_a_controller.html#af8fa59992209e36dccb3eefb0f75531f">start</a> ()</td></tr>
+<tr class="separator:af8fa59992209e36dccb3eefb0f75531f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
+Protected Attributes</h2></td></tr>
+<tr class="memitem:a21ae116e22adda72b3971dde67f4ef19"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_a_controller.html#a21ae116e22adda72b3971dde67f4ef19">$params</a></td></tr>
+<tr class="separator:a21ae116e22adda72b3971dde67f4ef19"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p><a class="el" href="namespace_controller.html">Controller</a> abstract class </p>
+
+<p>Definition at line <a class="el" href="_a_controller_8php_source.html#l00011">11</a> of file <a class="el" href="_a_controller_8php_source.html">AController.php</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a7b7ea19d18501d4214fb4dcb274addea"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">__construct </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$context</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$params</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramtype">\Tools\Context</td><td class="paramname">$context</td><td></td></tr>
+    <tr><td class="paramtype">array</td><td class="paramname">$params</td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="exception"><dt>Exceptions</dt><dd>
+  <table class="exception">
+    <tr><td class="paramname"></td><td>Exception if parameters does not correspond On 404 error, router will try to find another route Initialize structure </td></tr>
+  </table>
+  </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="_a_controller_8php_source.html#l00030">30</a> of file <a class="el" href="_a_controller_8php_source.html">AController.php</a>.</p>
+<div class="fragment"><div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;    {</div>
+<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;        $this-&gt;params = <a class="code" href="class_tools_1_1_a_controller.html#a21ae116e22adda72b3971dde67f4ef19">$params</a>;</div>
+<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;    }</div>
+<div class="ttc" id="class_tools_1_1_a_controller_html_a21ae116e22adda72b3971dde67f4ef19"><div class="ttname"><a href="class_tools_1_1_a_controller.html#a21ae116e22adda72b3971dde67f4ef19">Tools\AController\$params</a></div><div class="ttdeci">$params</div><div class="ttdef"><b>Definition:</b> <a href="_a_controller_8php_source.html#l00021">AController.php:21</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="af8fa59992209e36dccb3eefb0f75531f"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">start </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">abstract</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+<p>Fullfill <a class="el" href="namespace_controller.html">Controller</a>'s request </p>
+
+</div>
+</div>
+<h2 class="groupheader">Field Documentation</h2>
+<a class="anchor" id="a21ae116e22adda72b3971dde67f4ef19"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">array $params</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+<p>Contains route parameter ex: /product/:id will contains { 0 =&gt; product 1 =&gt; [ID] ':id' =&gt; [ID] </p>
+
+<p>Definition at line <a class="el" href="_a_controller_8php_source.html#l00021">21</a> of file <a class="el" href="_a_controller_8php_source.html">AController.php</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>/home/isundil/Project/ecom/core/tools/<a class="el" href="_a_controller_8php_source.html">AController.php</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:19 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

二進制
doc/html/class_tools_1_1_a_controller.png


+ 432 - 0
doc/html/class_tools_1_1_a_module.html

@@ -0,0 +1,432 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: AModule Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespace_tools.html">Tools</a></li><li class="navelem"><a class="el" href="class_tools_1_1_a_module.html">AModule</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pub-static-methods">Static Public Member Functions</a> &#124;
+<a href="#pri-attribs">Private Attributes</a>  </div>
+  <div class="headertitle">
+<div class="title">AModule Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="dynheader">
+Inheritance diagram for AModule:</div>
+<div class="dyncontent">
+ <div class="center">
+  <img src="class_tools_1_1_a_module.png" usemap="#AModule_map" alt=""/>
+  <map id="AModule_map" name="AModule_map">
+<area href="class_test2_module.html" alt="Test2Module" shape="rect" coords="0,56,84,80"/>
+<area href="class_test_module.html" alt="TestModule" shape="rect" coords="94,56,178,80"/>
+</map>
+ </div></div>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:aa966adc12c56a4cc70da92207fa50929"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_a_module.html#aa966adc12c56a4cc70da92207fa50929">install</a> ()</td></tr>
+<tr class="separator:aa966adc12c56a4cc70da92207fa50929"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9db6a246faa6b948911078c4be4445c8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_a_module.html#a9db6a246faa6b948911078c4be4445c8">uninstall</a> ()</td></tr>
+<tr class="separator:a9db6a246faa6b948911078c4be4445c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7b891c67ff8ce78a36b3b7983cce0353"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_a_module.html#a7b891c67ff8ce78a36b3b7983cce0353">doAction</a> ($event)</td></tr>
+<tr class="separator:a7b891c67ff8ce78a36b3b7983cce0353"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aea0a54f8b69249bbe7433211e0e1eaa5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_a_module.html#aea0a54f8b69249bbe7433211e0e1eaa5">doShortCode</a> ($shortCode, $params)</td></tr>
+<tr class="separator:aea0a54f8b69249bbe7433211e0e1eaa5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a313783d5477383dd99a2f3785705aaf4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_a_module.html#a313783d5477383dd99a2f3785705aaf4">setContext</a> ($context)</td></tr>
+<tr class="separator:a313783d5477383dd99a2f3785705aaf4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad868339fe7830b388444095288d40e22"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_a_module.html#ad868339fe7830b388444095288d40e22">setEntity</a> ($entity)</td></tr>
+<tr class="separator:ad868339fe7830b388444095288d40e22"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4537dad3b44254124991341cc91b28fb"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_a_module.html#a4537dad3b44254124991341cc91b28fb">__get</a> ($key)</td></tr>
+<tr class="separator:a4537dad3b44254124991341cc91b28fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
+Static Public Member Functions</h2></td></tr>
+<tr class="memitem:ab4218414b61680c0b9dee10c7f57e0a8"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_a_module.html#ab4218414b61680c0b9dee10c7f57e0a8">registerHook</a> ($hookName)</td></tr>
+<tr class="separator:ab4218414b61680c0b9dee10c7f57e0a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
+Private Attributes</h2></td></tr>
+<tr class="memitem:a7c294642225a6c91f5d7932dde75c2ae"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_a_module.html#a7c294642225a6c91f5d7932dde75c2ae">$context</a></td></tr>
+<tr class="separator:a7c294642225a6c91f5d7932dde75c2ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a74ed34e6d7bc9f3f8c4fb58a12247ee2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_a_module.html#a74ed34e6d7bc9f3f8c4fb58a12247ee2">$entity</a></td></tr>
+<tr class="separator:a74ed34e6d7bc9f3f8c4fb58a12247ee2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Module superclass Contains all informations about the module </p>
+
+<p>Definition at line <a class="el" href="_a_module_8php_source.html#l00009">9</a> of file <a class="el" href="_a_module_8php_source.html">AModule.php</a>.</p>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="a4537dad3b44254124991341cc91b28fb"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">__get </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$key</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Getter </p>
+
+<p>Definition at line <a class="el" href="_a_module_8php_source.html#l00086">86</a> of file <a class="el" href="_a_module_8php_source.html">AModule.php</a>.</p>
+<div class="fragment"><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;    {</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;        <span class="keywordflow">switch</span> ($key)</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;        {</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;            <span class="keywordflow">case</span> <span class="stringliteral">&quot;context&quot;</span>: <span class="keywordflow">return</span> <a class="code" href="class_tools_1_1_a_module.html#a7c294642225a6c91f5d7932dde75c2ae">$this-&gt;context</a>; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;            <span class="keywordflow">case</span> <span class="stringliteral">&quot;entity&quot;</span>: <span class="keywordflow">return</span> <a class="code" href="class_tools_1_1_a_module.html#a74ed34e6d7bc9f3f8c4fb58a12247ee2">$this-&gt;entity</a>; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;        }</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;        <span class="keywordflow">throw</span> new \Exception(<span class="stringliteral">&quot;Cannot access attribute {$key}&quot;</span>);</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;    }</div>
+<div class="ttc" id="class_tools_1_1_a_module_html_a7c294642225a6c91f5d7932dde75c2ae"><div class="ttname"><a href="class_tools_1_1_a_module.html#a7c294642225a6c91f5d7932dde75c2ae">Tools\AModule\$context</a></div><div class="ttdeci">$context</div><div class="ttdef"><b>Definition:</b> <a href="_a_module_8php_source.html#l00017">AModule.php:17</a></div></div>
+<div class="ttc" id="class_tools_1_1_a_module_html_a74ed34e6d7bc9f3f8c4fb58a12247ee2"><div class="ttname"><a href="class_tools_1_1_a_module.html#a74ed34e6d7bc9f3f8c4fb58a12247ee2">Tools\AModule\$entity</a></div><div class="ttdeci">$entity</div><div class="ttdef"><b>Definition:</b> <a href="_a_module_8php_source.html#l00022">AModule.php:22</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a7b891c67ff8ce78a36b3b7983cce0353"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">doAction </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$event</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">abstract</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramtype">\Tools\HookEvent</td><td class="paramname">$event</td><td>called hook /core/tools/HookEvent.php Called on hook reception </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="aea0a54f8b69249bbe7433211e0e1eaa5"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">doShortCode </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$shortCode</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$params</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">abstract</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramtype">string</td><td class="paramname">$shortCode</td><td></td></tr>
+    <tr><td class="paramtype"></td><td class="paramname">array</td><td>( key =&gt; value ) shortcode's parameters Called on shortcode reception </td></tr>
+  </table>
+  </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="aa966adc12c56a4cc70da92207fa50929"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">install </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">abstract</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+<p>Called on module install Should register shortcodes and <a class="el" href="class_tools_1_1_hooks.html">Hooks</a> </p>
+
+</div>
+</div>
+<a class="anchor" id="ab4218414b61680c0b9dee10c7f57e0a8"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">static registerHook </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$hookName</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+<p>Register hook to be triggered Can only be triggered while module setup </p>
+
+<p>Definition at line <a class="el" href="_a_module_8php_source.html#l00078">78</a> of file <a class="el" href="_a_module_8php_source.html">AModule.php</a>.</p>
+<div class="fragment"><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;    {</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;        $this-&gt;context-&gt;hooks-&gt;register($this, $hookname);</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;    }</div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a313783d5477383dd99a2f3785705aaf4"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">setContext </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$context</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramtype">\Tools\Context</td><td class="paramname">$context</td><td>/core/tools/Context.php set the application context Will work only one time </td></tr>
+  </table>
+  </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="_a_module_8php_source.html#l00056">56</a> of file <a class="el" href="_a_module_8php_source.html">AModule.php</a>.</p>
+<div class="fragment"><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;    {</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;        <span class="keywordflow">if</span> ($this-&gt;context === null)</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;            $this-&gt;context = <a class="code" href="class_tools_1_1_a_module.html#a7c294642225a6c91f5d7932dde75c2ae">$context</a>;</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;    }</div>
+<div class="ttc" id="class_tools_1_1_a_module_html_a7c294642225a6c91f5d7932dde75c2ae"><div class="ttname"><a href="class_tools_1_1_a_module.html#a7c294642225a6c91f5d7932dde75c2ae">Tools\AModule\$context</a></div><div class="ttdeci">$context</div><div class="ttdef"><b>Definition:</b> <a href="_a_module_8php_source.html#l00017">AModule.php:17</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="ad868339fe7830b388444095288d40e22"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">setEntity </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$entity</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramtype">\Entity\Module</td><td class="paramname">$module</td><td>/core/models/Module.php set the module database object Will work only one time </td></tr>
+  </table>
+  </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="_a_module_8php_source.html#l00068">68</a> of file <a class="el" href="_a_module_8php_source.html">AModule.php</a>.</p>
+<div class="fragment"><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    {</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;        <span class="keywordflow">if</span> ($this-&gt;entity === null)</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;            $this-&gt;entity = <a class="code" href="class_tools_1_1_a_module.html#a74ed34e6d7bc9f3f8c4fb58a12247ee2">$entity</a>;</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;    }</div>
+<div class="ttc" id="class_tools_1_1_a_module_html_a74ed34e6d7bc9f3f8c4fb58a12247ee2"><div class="ttname"><a href="class_tools_1_1_a_module.html#a74ed34e6d7bc9f3f8c4fb58a12247ee2">Tools\AModule\$entity</a></div><div class="ttdeci">$entity</div><div class="ttdef"><b>Definition:</b> <a href="_a_module_8php_source.html#l00022">AModule.php:22</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a9db6a246faa6b948911078c4be4445c8"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">uninstall </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Called on module unsinstall </p>
+
+<p>Definition at line <a class="el" href="_a_module_8php_source.html#l00033">33</a> of file <a class="el" href="_a_module_8php_source.html">AModule.php</a>.</p>
+<div class="fragment"><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;    { }</div>
+</div><!-- fragment -->
+</div>
+</div>
+<h2 class="groupheader">Field Documentation</h2>
+<a class="anchor" id="a7c294642225a6c91f5d7932dde75c2ae"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">Tools <a class="el" href="class_tools_1_1_context.html">Context</a> $context</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+<p>/core/tools/Context.php Website context Can be accessed read-only </p>
+
+<p>Definition at line <a class="el" href="_a_module_8php_source.html#l00017">17</a> of file <a class="el" href="_a_module_8php_source.html">AModule.php</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a74ed34e6d7bc9f3f8c4fb58a12247ee2"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">$entity</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="_a_module_8php_source.html#l00022">22</a> of file <a class="el" href="_a_module_8php_source.html">AModule.php</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>/home/isundil/Project/ecom/core/tools/<a class="el" href="_a_module_8php_source.html">AModule.php</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:19 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

二進制
doc/html/class_tools_1_1_a_module.png


+ 357 - 0
doc/html/class_tools_1_1_context.html

@@ -0,0 +1,357 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: Context Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespace_tools.html">Tools</a></li><li class="navelem"><a class="el" href="class_tools_1_1_context.html">Context</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pri-attribs">Private Attributes</a>  </div>
+  <div class="headertitle">
+<div class="title">Context Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a095c5d389db211932136b53f25f39685"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_context.html#a095c5d389db211932136b53f25f39685">__construct</a> ()</td></tr>
+<tr class="separator:a095c5d389db211932136b53f25f39685"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4537dad3b44254124991341cc91b28fb"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_context.html#a4537dad3b44254124991341cc91b28fb">__get</a> ($key)</td></tr>
+<tr class="separator:a4537dad3b44254124991341cc91b28fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
+Private Attributes</h2></td></tr>
+<tr class="memitem:aafbd9a1b51b1f8a2f339c26667b737f7"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_context.html#aafbd9a1b51b1f8a2f339c26667b737f7">$hookManager</a></td></tr>
+<tr class="separator:aafbd9a1b51b1f8a2f339c26667b737f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a98e337617fa9647176db165d050037a6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_context.html#a98e337617fa9647176db165d050037a6">$moduleManager</a></td></tr>
+<tr class="separator:a98e337617fa9647176db165d050037a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa37a3471877826e6468824f3f4bbe045"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_context.html#aa37a3471877826e6468824f3f4bbe045">$router</a></td></tr>
+<tr class="separator:aa37a3471877826e6468824f3f4bbe045"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a02e30d1742d35e696b2c57d76fbaa477"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_context.html#a02e30d1742d35e696b2c57d76fbaa477">$cart</a></td></tr>
+<tr class="separator:a02e30d1742d35e696b2c57d76fbaa477"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8b7726f763e4795501ee2a0327960dc0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_context.html#a8b7726f763e4795501ee2a0327960dc0">$user</a></td></tr>
+<tr class="separator:a8b7726f763e4795501ee2a0327960dc0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a232854b8e97359df1687d6c24460eacf"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_context.html#a232854b8e97359df1687d6c24460eacf">$controller</a></td></tr>
+<tr class="separator:a232854b8e97359df1687d6c24460eacf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Cms context Contains all website informations Will be passed to themes files and to modules </p>
+
+<p>Definition at line <a class="el" href="_context_8php_source.html#l00010">10</a> of file <a class="el" href="_context_8php_source.html">Context.php</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a095c5d389db211932136b53f25f39685"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">__construct </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Create context from $_SERVER environment and initialize all data </p>
+
+<p>Definition at line <a class="el" href="_context_8php_source.html#l00065">65</a> of file <a class="el" href="_context_8php_source.html">Context.php</a>.</p>
+<div class="fragment"><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;    {</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;        $this-&gt;hookManager = <span class="keyword">new</span> Hooks($this);</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;        $this-&gt;router = <span class="keyword">new</span> Router($this);</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;        <span class="keywordflow">if</span> (!\<a class="code" href="namespace_entity.html">Entity</a>\ModelBase::init())</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;        {</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;            @require_once(getcwd().<span class="stringliteral">&#39;/core/setup/index.php&#39;</span>);</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;            die;</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;        }</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;        $this-&gt;router-&gt;init();</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;        $this-&gt;moduleManager = <span class="keyword">new</span> ModuleManager($this);</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;        $this-&gt;hookManager-&gt;trigger(<span class="stringliteral">&quot;routerSetup&quot;</span>);</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;        <span class="keywordflow">try</span></div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;        {</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;            $this-&gt;controller = $this-&gt;router-&gt;serveUrl();</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;            <span class="keywordflow">if</span> (!$this-&gt;controller)</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;                <span class="keywordflow">throw</span> new \Exception\Error404();</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;            $this-&gt;controller-&gt;start();</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;        }</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;        <span class="keywordflow">catch</span> (\<a class="code" href="namespace_exception.html">Exception</a>\Error404 $e)</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;        {</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;            echo <span class="stringliteral">&quot;404&quot;</span>;</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;        }</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    }</div>
+<div class="ttc" id="namespace_entity_html"><div class="ttname"><a href="namespace_entity.html">Entity</a></div><div class="ttdef"><b>Definition:</b> <a href="_address_8php_source.html#l00003">Address.php:3</a></div></div>
+<div class="ttc" id="namespace_exception_html"><div class="ttname"><a href="namespace_exception.html">Exception</a></div><div class="ttdef"><b>Definition:</b> <a href="_error404_8php_source.html#l00003">Error404.php:3</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="a4537dad3b44254124991341cc91b28fb"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">__get </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$key</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Getter function </p>
+
+<p>Definition at line <a class="el" href="_context_8php_source.html#l00093">93</a> of file <a class="el" href="_context_8php_source.html">Context.php</a>.</p>
+<div class="fragment"><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;    {</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;        <span class="keywordflow">switch</span> ($key)</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;        {</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;            <span class="keywordflow">case</span> <span class="stringliteral">&quot;router&quot;</span>: <span class="keywordflow">return</span> <a class="code" href="class_tools_1_1_context.html#aa37a3471877826e6468824f3f4bbe045">$this-&gt;router</a>; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;            <span class="keywordflow">case</span> <span class="stringliteral">&quot;cart&quot;</span>: <span class="keywordflow">return</span> <a class="code" href="class_tools_1_1_context.html#a02e30d1742d35e696b2c57d76fbaa477">$this-&gt;cart</a>; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;            <span class="keywordflow">case</span> <span class="stringliteral">&quot;user&quot;</span>: <span class="keywordflow">return</span> <a class="code" href="class_tools_1_1_context.html#a8b7726f763e4795501ee2a0327960dc0">$this-&gt;user</a>; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;            <span class="keywordflow">case</span> <span class="stringliteral">&quot;moduleManager&quot;</span>: <span class="keywordflow">return</span> <a class="code" href="class_tools_1_1_context.html#a98e337617fa9647176db165d050037a6">$this-&gt;moduleManager</a>; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;            <span class="keywordflow">case</span> <span class="stringliteral">&quot;hookManager&quot;</span>: <span class="keywordflow">return</span> <a class="code" href="class_tools_1_1_context.html#aafbd9a1b51b1f8a2f339c26667b737f7">$this-&gt;hookManager</a>; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;        }</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;        <span class="keywordflow">throw</span> new \Exception(<span class="stringliteral">&quot;Cannot access attribute {$key}&quot;</span>);</div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;    }</div>
+<div class="ttc" id="class_tools_1_1_context_html_a8b7726f763e4795501ee2a0327960dc0"><div class="ttname"><a href="class_tools_1_1_context.html#a8b7726f763e4795501ee2a0327960dc0">Tools\Context\$user</a></div><div class="ttdeci">$user</div><div class="ttdef"><b>Definition:</b> <a href="_context_8php_source.html#l00052">Context.php:52</a></div></div>
+<div class="ttc" id="class_tools_1_1_context_html_a02e30d1742d35e696b2c57d76fbaa477"><div class="ttname"><a href="class_tools_1_1_context.html#a02e30d1742d35e696b2c57d76fbaa477">Tools\Context\$cart</a></div><div class="ttdeci">$cart</div><div class="ttdef"><b>Definition:</b> <a href="_context_8php_source.html#l00044">Context.php:44</a></div></div>
+<div class="ttc" id="class_tools_1_1_context_html_aafbd9a1b51b1f8a2f339c26667b737f7"><div class="ttname"><a href="class_tools_1_1_context.html#aafbd9a1b51b1f8a2f339c26667b737f7">Tools\Context\$hookManager</a></div><div class="ttdeci">$hookManager</div><div class="ttdef"><b>Definition:</b> <a href="_context_8php_source.html#l00018">Context.php:18</a></div></div>
+<div class="ttc" id="class_tools_1_1_context_html_a98e337617fa9647176db165d050037a6"><div class="ttname"><a href="class_tools_1_1_context.html#a98e337617fa9647176db165d050037a6">Tools\Context\$moduleManager</a></div><div class="ttdeci">$moduleManager</div><div class="ttdef"><b>Definition:</b> <a href="_context_8php_source.html#l00026">Context.php:26</a></div></div>
+<div class="ttc" id="class_tools_1_1_context_html_aa37a3471877826e6468824f3f4bbe045"><div class="ttname"><a href="class_tools_1_1_context.html#aa37a3471877826e6468824f3f4bbe045">Tools\Context\$router</a></div><div class="ttdeci">$router</div><div class="ttdef"><b>Definition:</b> <a href="_context_8php_source.html#l00035">Context.php:35</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<h2 class="groupheader">Field Documentation</h2>
+<a class="anchor" id="a02e30d1742d35e696b2c57d76fbaa477"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">Tools Cart $cart</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+<p>TODO</p>
+<p>/core/tools/Cart.php Not defined yet Can be accessed read-only via $instance-&gt;cart </p>
+
+<p>Definition at line <a class="el" href="_context_8php_source.html#l00044">44</a> of file <a class="el" href="_context_8php_source.html">Context.php</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a232854b8e97359df1687d6c24460eacf"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">Tools <a class="el" href="class_tools_1_1_a_controller.html">AController</a> $controller</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+<p>/core/tools/AController.php <a class="el" href="namespace_controller.html">Controller</a> being called by user's request </p>
+
+<p>Definition at line <a class="el" href="_context_8php_source.html#l00059">59</a> of file <a class="el" href="_context_8php_source.html">Context.php</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aafbd9a1b51b1f8a2f339c26667b737f7"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">Tools <a class="el" href="class_tools_1_1_hooks.html">Hooks</a> $hookManager</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+<p>/core/tools/Hooks.php allow triggering hooks and registers module's endpoints Can be accessed read-only via $instance-&gt;hookManager </p>
+
+<p>Definition at line <a class="el" href="_context_8php_source.html#l00018">18</a> of file <a class="el" href="_context_8php_source.html">Context.php</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a98e337617fa9647176db165d050037a6"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">Tools <a class="el" href="class_tools_1_1_module_manager.html">ModuleManager</a> $moduleManager</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+<p>/core/tools/ModuleManager.php load all active modules and contains informations about them Can be accessed read-only via $instance-&gt;moduleManager </p>
+
+<p>Definition at line <a class="el" href="_context_8php_source.html#l00026">26</a> of file <a class="el" href="_context_8php_source.html">Context.php</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aa37a3471877826e6468824f3f4bbe045"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">Tools <a class="el" href="class_tools_1_1_router.html">Router</a> $router</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+<p>/core/tools/Router.php Contains information about directories and paths Allow user to generate links Can be accessed read-only via $instance-&gt;router </p>
+
+<p>Definition at line <a class="el" href="_context_8php_source.html#l00035">35</a> of file <a class="el" href="_context_8php_source.html">Context.php</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a8b7726f763e4795501ee2a0327960dc0"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">Tools User $user</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+<p>TODO</p>
+<p>/core/tools/User.php Can be accessed read-only via $instance-&gt;user </p>
+
+<p>Definition at line <a class="el" href="_context_8php_source.html#l00052">52</a> of file <a class="el" href="_context_8php_source.html">Context.php</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>/home/isundil/Project/ecom/core/tools/<a class="el" href="_context_8php_source.html">Context.php</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:19 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

+ 273 - 0
doc/html/class_tools_1_1_hook_event.html

@@ -0,0 +1,273 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: HookEvent Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespace_tools.html">Tools</a></li><li class="navelem"><a class="el" href="class_tools_1_1_hook_event.html">HookEvent</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pri-attribs">Private Attributes</a>  </div>
+  <div class="headertitle">
+<div class="title">HookEvent Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a5c11c5afa79de475e4b3760fcdbe82e3"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_hook_event.html#a5c11c5afa79de475e4b3760fcdbe82e3">__construct</a> ($hookName, $context, $params)</td></tr>
+<tr class="separator:a5c11c5afa79de475e4b3760fcdbe82e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4537dad3b44254124991341cc91b28fb"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_hook_event.html#a4537dad3b44254124991341cc91b28fb">__get</a> ($key)</td></tr>
+<tr class="separator:a4537dad3b44254124991341cc91b28fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
+Private Attributes</h2></td></tr>
+<tr class="memitem:a7c294642225a6c91f5d7932dde75c2ae"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_hook_event.html#a7c294642225a6c91f5d7932dde75c2ae">$context</a></td></tr>
+<tr class="separator:a7c294642225a6c91f5d7932dde75c2ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aea63c2ead484f541380a4be3a3de7da2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_hook_event.html#aea63c2ead484f541380a4be3a3de7da2">$hookName</a></td></tr>
+<tr class="separator:aea63c2ead484f541380a4be3a3de7da2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afe68e6fbe7acfbffc0af0c84a1996466"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_hook_event.html#afe68e6fbe7acfbffc0af0c84a1996466">$params</a></td></tr>
+<tr class="separator:afe68e6fbe7acfbffc0af0c84a1996466"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Event's parameters This classe is attached to a hook when fired </p>
+
+<p>Definition at line <a class="el" href="_hook_event_8php_source.html#l00009">9</a> of file <a class="el" href="_hook_event_8php_source.html">HookEvent.php</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a5c11c5afa79de475e4b3760fcdbe82e3"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">__construct </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$hookName</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$context</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$params</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Constructor </p>
+
+<p>Definition at line <a class="el" href="_hook_event_8php_source.html#l00035">35</a> of file <a class="el" href="_hook_event_8php_source.html">HookEvent.php</a>.</p>
+<div class="fragment"><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;    {</div>
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;        $this-&gt;context = <a class="code" href="class_tools_1_1_hook_event.html#a7c294642225a6c91f5d7932dde75c2ae">$context</a>;</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;        $this-&gt;hookName = <a class="code" href="class_tools_1_1_hook_event.html#aea63c2ead484f541380a4be3a3de7da2">$hookName</a>;</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;        $this-&gt;params = <a class="code" href="class_tools_1_1_hook_event.html#afe68e6fbe7acfbffc0af0c84a1996466">$params</a>;</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;    }</div>
+<div class="ttc" id="class_tools_1_1_hook_event_html_aea63c2ead484f541380a4be3a3de7da2"><div class="ttname"><a href="class_tools_1_1_hook_event.html#aea63c2ead484f541380a4be3a3de7da2">Tools\HookEvent\$hookName</a></div><div class="ttdeci">$hookName</div><div class="ttdef"><b>Definition:</b> <a href="_hook_event_8php_source.html#l00023">HookEvent.php:23</a></div></div>
+<div class="ttc" id="class_tools_1_1_hook_event_html_a7c294642225a6c91f5d7932dde75c2ae"><div class="ttname"><a href="class_tools_1_1_hook_event.html#a7c294642225a6c91f5d7932dde75c2ae">Tools\HookEvent\$context</a></div><div class="ttdeci">$context</div><div class="ttdef"><b>Definition:</b> <a href="_hook_event_8php_source.html#l00016">HookEvent.php:16</a></div></div>
+<div class="ttc" id="class_tools_1_1_hook_event_html_afe68e6fbe7acfbffc0af0c84a1996466"><div class="ttname"><a href="class_tools_1_1_hook_event.html#afe68e6fbe7acfbffc0af0c84a1996466">Tools\HookEvent\$params</a></div><div class="ttdeci">$params</div><div class="ttdef"><b>Definition:</b> <a href="_hook_event_8php_source.html#l00030">HookEvent.php:30</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="a4537dad3b44254124991341cc91b28fb"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">__get </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$key</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Getter </p>
+
+<p>Definition at line <a class="el" href="_hook_event_8php_source.html#l00045">45</a> of file <a class="el" href="_hook_event_8php_source.html">HookEvent.php</a>.</p>
+<div class="fragment"><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;    {</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;        <span class="keywordflow">switch</span> ($key)</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;        {</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;            <span class="keywordflow">case</span> <span class="stringliteral">&quot;hookName&quot;</span>: <span class="keywordflow">return</span> <a class="code" href="class_tools_1_1_hook_event.html#aea63c2ead484f541380a4be3a3de7da2">$this-&gt;hookName</a>; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;            <span class="keywordflow">case</span> <span class="stringliteral">&quot;params&quot;</span>: <span class="keywordflow">return</span> <a class="code" href="class_tools_1_1_hook_event.html#afe68e6fbe7acfbffc0af0c84a1996466">$this-&gt;params</a>; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;        }</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;        <span class="keywordflow">throw</span> new \Exception(<span class="stringliteral">&quot;Cannot access attribute {$key}&quot;</span>);</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;    }</div>
+<div class="ttc" id="class_tools_1_1_hook_event_html_aea63c2ead484f541380a4be3a3de7da2"><div class="ttname"><a href="class_tools_1_1_hook_event.html#aea63c2ead484f541380a4be3a3de7da2">Tools\HookEvent\$hookName</a></div><div class="ttdeci">$hookName</div><div class="ttdef"><b>Definition:</b> <a href="_hook_event_8php_source.html#l00023">HookEvent.php:23</a></div></div>
+<div class="ttc" id="class_tools_1_1_hook_event_html_afe68e6fbe7acfbffc0af0c84a1996466"><div class="ttname"><a href="class_tools_1_1_hook_event.html#afe68e6fbe7acfbffc0af0c84a1996466">Tools\HookEvent\$params</a></div><div class="ttdeci">$params</div><div class="ttdef"><b>Definition:</b> <a href="_hook_event_8php_source.html#l00030">HookEvent.php:30</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<h2 class="groupheader">Field Documentation</h2>
+<a class="anchor" id="a7c294642225a6c91f5d7932dde75c2ae"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">Tools <a class="el" href="class_tools_1_1_context.html">Context</a> $context</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+<p>/core/tools/Context.php Contains website's informations </p>
+
+<p>Definition at line <a class="el" href="_hook_event_8php_source.html#l00016">16</a> of file <a class="el" href="_hook_event_8php_source.html">HookEvent.php</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="aea63c2ead484f541380a4be3a3de7da2"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">string $hookName</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+<p>Contains hook name Can be accessed read-only </p>
+
+<p>Definition at line <a class="el" href="_hook_event_8php_source.html#l00023">23</a> of file <a class="el" href="_hook_event_8php_source.html">HookEvent.php</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="afe68e6fbe7acfbffc0af0c84a1996466"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">$params</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="_hook_event_8php_source.html#l00030">30</a> of file <a class="el" href="_hook_event_8php_source.html">HookEvent.php</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>/home/isundil/Project/ecom/core/tools/<a class="el" href="_hook_event_8php_source.html">HookEvent.php</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:19 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

+ 413 - 0
doc/html/class_tools_1_1_hooks.html

@@ -0,0 +1,413 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: Hooks Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespace_tools.html">Tools</a></li><li class="navelem"><a class="el" href="class_tools_1_1_hooks.html">Hooks</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pri-attribs">Private Attributes</a>  </div>
+  <div class="headertitle">
+<div class="title">Hooks Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a01955facbcef5c0159144d7209704be2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_hooks.html#a01955facbcef5c0159144d7209704be2">__construct</a> (&amp;$context)</td></tr>
+<tr class="separator:a01955facbcef5c0159144d7209704be2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a708f58f8e895879111179ae63842d240"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_hooks.html#a708f58f8e895879111179ae63842d240">register</a> ($module, $hookName)</td></tr>
+<tr class="separator:a708f58f8e895879111179ae63842d240"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8dc5debf6c33905af409438d26ed3916"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_hooks.html#a8dc5debf6c33905af409438d26ed3916">trigger</a> ($hookName, $params=null)</td></tr>
+<tr class="separator:a8dc5debf6c33905af409438d26ed3916"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa8a639e43502e64c10e92114c86d0d24"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_hooks.html#aa8a639e43502e64c10e92114c86d0d24">isInHook</a> ($hookName)</td></tr>
+<tr class="separator:aa8a639e43502e64c10e92114c86d0d24"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adc040cf46ed4deda06079b3ad84ee792"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_hooks.html#adc040cf46ed4deda06079b3ad84ee792">loadHooks</a> ($hookEntities)</td></tr>
+<tr class="separator:adc040cf46ed4deda06079b3ad84ee792"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4537dad3b44254124991341cc91b28fb"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_hooks.html#a4537dad3b44254124991341cc91b28fb">__get</a> ($key)</td></tr>
+<tr class="separator:a4537dad3b44254124991341cc91b28fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
+Private Attributes</h2></td></tr>
+<tr class="memitem:a7c294642225a6c91f5d7932dde75c2ae"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_hooks.html#a7c294642225a6c91f5d7932dde75c2ae">$context</a></td></tr>
+<tr class="separator:a7c294642225a6c91f5d7932dde75c2ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a05aec88c3516c6db5da524fbcc673aff"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_hooks.html#a05aec88c3516c6db5da524fbcc673aff">$hooks</a></td></tr>
+<tr class="separator:a05aec88c3516c6db5da524fbcc673aff"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7e676775f276fe0a207276cdbfb984c8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_hooks.html#a7e676775f276fe0a207276cdbfb984c8">$currentHook</a></td></tr>
+<tr class="separator:a7e676775f276fe0a207276cdbfb984c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Allow user to manage hooks </p>
+
+<p>Definition at line <a class="el" href="_hooks_8php_source.html#l00008">8</a> of file <a class="el" href="_hooks_8php_source.html">Hooks.php</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a01955facbcef5c0159144d7209704be2"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">__construct </td>
+          <td>(</td>
+          <td class="paramtype">&amp;&#160;</td>
+          <td class="paramname"><em>$context</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>ctor. Initialize context for having them passed to hook as parameter </p>
+
+<p>Definition at line <a class="el" href="_hooks_8php_source.html#l00036">36</a> of file <a class="el" href="_hooks_8php_source.html">Hooks.php</a>.</p>
+<div class="fragment"><div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;    {</div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;        $this-&gt;context = <a class="code" href="class_tools_1_1_hooks.html#a7c294642225a6c91f5d7932dde75c2ae">$context</a>;</div>
+<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;        $this-&gt;currentHook = array();</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;    }</div>
+<div class="ttc" id="class_tools_1_1_hooks_html_a7c294642225a6c91f5d7932dde75c2ae"><div class="ttname"><a href="class_tools_1_1_hooks.html#a7c294642225a6c91f5d7932dde75c2ae">Tools\Hooks\$context</a></div><div class="ttdeci">$context</div><div class="ttdef"><b>Definition:</b> <a href="_hooks_8php_source.html#l00015">Hooks.php:15</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="a4537dad3b44254124991341cc91b28fb"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">__get </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$key</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Getter </p>
+
+<p>Definition at line <a class="el" href="_hooks_8php_source.html#l00108">108</a> of file <a class="el" href="_hooks_8php_source.html">Hooks.php</a>.</p>
+<div class="fragment"><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;    {</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;        <span class="keywordflow">switch</span> ($key)</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;        {</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;            <span class="keywordflow">case</span> <span class="stringliteral">&quot;currentHook&quot;</span>: <span class="keywordflow">return</span> end($this-&gt;currentHook);</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;        }</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;        <span class="keywordflow">throw</span> new \Exception(<span class="stringliteral">&quot;Cannot access attribute {$key}&quot;</span>);</div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;    }</div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="aa8a639e43502e64c10e92114c86d0d24"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">isInHook </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$hookName</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramtype">string</td><td class="paramname">$hookName</td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>boolean Check if $hookName is treating </dd></dl>
+
+<p>Definition at line <a class="el" href="_hooks_8php_source.html#l00086">86</a> of file <a class="el" href="_hooks_8php_source.html">Hooks.php</a>.</p>
+<div class="fragment"><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;    {</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;        <span class="keywordflow">foreach</span> ($this-&gt;currentHook as $i)</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;            <span class="keywordflow">if</span> ($i-&gt;hookName == $hookName)</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;                <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;    }</div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="adc040cf46ed4deda06079b3ad84ee792"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">loadHooks </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$hookEntities</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramname">array(</td><td><a class="el" href="namespace_entity.html">Entity</a>) $module_hookEntities entities to load Reload hooks from entities </td></tr>
+  </table>
+  </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="_hooks_8php_source.html#l00098">98</a> of file <a class="el" href="_hooks_8php_source.html">Hooks.php</a>.</p>
+<div class="fragment"><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;    {</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;        $this-&gt;hooks = array();</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;        <span class="keywordflow">foreach</span> ($hookEntities as $i)</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;            $this-&gt;hooks[$i-&gt;hookName][] = (int) $i-&gt;module_id;</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;    }</div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a708f58f8e895879111179ae63842d240"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">register </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$module</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$hookName</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramtype">\Tool\AModule</td><td class="paramname">$module</td><td></td></tr>
+    <tr><td class="paramtype">string</td><td class="paramname">$hookname</td><td>Attach module $module to $hookName Can only be called while installing the module. When fired, the <a class="el" href="class_tools_1_1_a_module.html#a7b891c67ff8ce78a36b3b7983cce0353">AModule::doAction</a>($hookName, $context) function will be called. </td></tr>
+  </table>
+  </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="_hooks_8php_source.html#l00049">49</a> of file <a class="el" href="_hooks_8php_source.html">Hooks.php</a>.</p>
+<div class="fragment"><div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;    {</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;        <span class="keywordflow">if</span> (!\<a class="code" href="namespace_tools.html">Tools</a>\ModuleManager::isInstalling())</div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;            <span class="keywordflow">throw</span> new \Exception(<span class="stringliteral">&quot;You can only register hooks while installing&quot;</span>);</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;        <span class="comment">//TODO@2</span></div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;    }</div>
+<div class="ttc" id="namespace_tools_html"><div class="ttname"><a href="namespace_tools.html">Tools</a></div><div class="ttdef"><b>Definition:</b> <a href="_a_controller_8php_source.html#l00003">AController.php:3</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a8dc5debf6c33905af409438d26ed3916"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">trigger </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$hookName</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$params</em> = <code>null</code>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramtype">string</td><td class="paramname">$hookName</td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>number of modules successfully reached fire the hook hookName call the <a class="el" href="class_tools_1_1_a_module.html#a7b891c67ff8ce78a36b3b7983cce0353">AModule::doAction</a>($hookEvent) function for each attached modules </dd></dl>
+
+<p>Definition at line <a class="el" href="_hooks_8php_source.html#l00062">62</a> of file <a class="el" href="_hooks_8php_source.html">Hooks.php</a>.</p>
+<div class="fragment"><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;    {</div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;        <span class="keywordflow">if</span> (empty($this-&gt;hooks[$hookName]))</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;            <span class="keywordflow">return</span> 0;</div>
+<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;        $hookEvent = <span class="keyword">new</span> HookEvent($hookName, $this-&gt;context, $params);</div>
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;        array_push($this-&gt;currentHook, $hookEvent);</div>
+<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;        $result = 0;</div>
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;        <span class="keywordflow">foreach</span> ($this-&gt;hooks[$hookName] as $module_id)</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;        {</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;            $module = $this-&gt;context-&gt;moduleManager-&gt;getModuleFromId($module_id);</div>
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;            <span class="keywordflow">if</span> (!$module)</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;                <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;            $module-&gt;doAction($hookEvent);</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;            $result++;</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;        }</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;        array_pop($this-&gt;currentHook);</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;        <span class="keywordflow">return</span> $result;</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;    }</div>
+</div><!-- fragment -->
+</div>
+</div>
+<h2 class="groupheader">Field Documentation</h2>
+<a class="anchor" id="a7c294642225a6c91f5d7932dde75c2ae"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">Tools <a class="el" href="class_tools_1_1_context.html">Context</a> $context</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+<p>/core/tools/Context.php Contains website's informations </p>
+
+<p>Definition at line <a class="el" href="_hooks_8php_source.html#l00015">15</a> of file <a class="el" href="_hooks_8php_source.html">Hooks.php</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a7e676775f276fe0a207276cdbfb984c8"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">Tools <a class="el" href="class_tools_1_1_hook_event.html">HookEvent</a> $currentHook</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+<p>Contains current trigerred event</p>
+<p>get current hook event </p>
+
+<p>Definition at line <a class="el" href="_hooks_8php_source.html#l00026">26</a> of file <a class="el" href="_hooks_8php_source.html">Hooks.php</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a05aec88c3516c6db5da524fbcc673aff"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">$hooks</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="_hooks_8php_source.html#l00020">20</a> of file <a class="el" href="_hooks_8php_source.html">Hooks.php</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>/home/isundil/Project/ecom/core/tools/<a class="el" href="_hooks_8php_source.html">Hooks.php</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:19 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

+ 386 - 0
doc/html/class_tools_1_1_module_manager.html

@@ -0,0 +1,386 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.8"/>
+<title>ecom: ModuleManager Class Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+  $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">ecom
+   </div>
+   <div id="projectbrief">E-commerce cms</div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.8 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+  <div id="navrow1" class="tabs">
+    <ul class="tablist">
+      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
+      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
+      <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="files.html"><span>Files</span></a></li>
+      <li>
+        <div id="MSearchBox" class="MSearchBoxInactive">
+        <span class="left">
+          <img id="MSearchSelect" src="search/mag_sel.png"
+               onmouseover="return searchBox.OnSearchSelectShow()"
+               onmouseout="return searchBox.OnSearchSelectHide()"
+               alt=""/>
+          <input type="text" id="MSearchField" value="Search" accesskey="S"
+               onfocus="searchBox.OnSearchFieldFocus(true)" 
+               onblur="searchBox.OnSearchFieldFocus(false)" 
+               onkeyup="searchBox.OnSearchFieldChange(event)"/>
+          </span><span class="right">
+            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+          </span>
+        </div>
+      </li>
+    </ul>
+  </div>
+  <div id="navrow2" class="tabs2">
+    <ul class="tablist">
+      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+      <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
+      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
+      <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+    </ul>
+  </div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespace_tools.html">Tools</a></li><li class="navelem"><a class="el" href="class_tools_1_1_module_manager.html">ModuleManager</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="summary">
+<a href="#pub-methods">Public Member Functions</a> &#124;
+<a href="#pri-methods">Private Member Functions</a> &#124;
+<a href="#pri-attribs">Private Attributes</a>  </div>
+  <div class="headertitle">
+<div class="title">ModuleManager Class Reference</div>  </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
+Public Member Functions</h2></td></tr>
+<tr class="memitem:a01955facbcef5c0159144d7209704be2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_module_manager.html#a01955facbcef5c0159144d7209704be2">__construct</a> (&amp;$context)</td></tr>
+<tr class="separator:a01955facbcef5c0159144d7209704be2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a279ef46fb2e62ce756023d9a443d7953"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_module_manager.html#a279ef46fb2e62ce756023d9a443d7953">listAvailableModules</a> ()</td></tr>
+<tr class="separator:a279ef46fb2e62ce756023d9a443d7953"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab1dcee2727d5614cb8c028c57d2271e8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_module_manager.html#ab1dcee2727d5614cb8c028c57d2271e8">getModuleFromId</a> ($id)</td></tr>
+<tr class="separator:ab1dcee2727d5614cb8c028c57d2271e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4537dad3b44254124991341cc91b28fb"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_module_manager.html#a4537dad3b44254124991341cc91b28fb">__get</a> ($key)</td></tr>
+<tr class="separator:a4537dad3b44254124991341cc91b28fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
+Private Member Functions</h2></td></tr>
+<tr class="memitem:a167a402eddef05c09ce608f803009baa"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_module_manager.html#a167a402eddef05c09ce608f803009baa">loadModule</a> ($path, $module)</td></tr>
+<tr class="separator:a167a402eddef05c09ce608f803009baa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
+Private Attributes</h2></td></tr>
+<tr class="memitem:a7c294642225a6c91f5d7932dde75c2ae"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_module_manager.html#a7c294642225a6c91f5d7932dde75c2ae">$context</a></td></tr>
+<tr class="separator:a7c294642225a6c91f5d7932dde75c2ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a19e625c76c6796e995f33d323ee3aa84"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tools_1_1_module_manager.html#a19e625c76c6796e995f33d323ee3aa84">$modules</a> = array()</td></tr>
+<tr class="separator:a19e625c76c6796e995f33d323ee3aa84"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Container all modules. Allow module managment </p>
+
+<p>Definition at line <a class="el" href="_module_manager_8php_source.html#l00009">9</a> of file <a class="el" href="_module_manager_8php_source.html">ModuleManager.php</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a class="anchor" id="a01955facbcef5c0159144d7209704be2"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">__construct </td>
+          <td>(</td>
+          <td class="paramtype">&amp;&#160;</td>
+          <td class="paramname"><em>$context</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramtype">\Tool\Context</td><td class="paramname">$context</td><td>Load all active modules from database. Enable hooks for these modules Disable them if the module cannot be loaded </td></tr>
+  </table>
+  </dd>
+</dl>
+
+<p>Definition at line <a class="el" href="_module_manager_8php_source.html#l00038">38</a> of file <a class="el" href="_module_manager_8php_source.html">ModuleManager.php</a>.</p>
+<div class="fragment"><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;    {</div>
+<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;        $this-&gt;context = <a class="code" href="class_tools_1_1_module_manager.html#a7c294642225a6c91f5d7932dde75c2ae">$context</a>;</div>
+<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160;        $modulesRoot = <a class="code" href="class_tools_1_1_module_manager.html#a7c294642225a6c91f5d7932dde75c2ae">$context</a>-&gt;router-&gt;modulesPath;</div>
+<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;        <a class="code" href="class_tools_1_1_module_manager.html#a19e625c76c6796e995f33d323ee3aa84">$modules</a> = <a class="code" href="class_entity_1_1_module.html#a5a5d2fbfed8c77d8760c2d0473e92220">\Entity\Module::getActivated</a>();</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;        $ids = array();</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;        <span class="keywordflow">foreach</span> (<a class="code" href="class_tools_1_1_module_manager.html#a19e625c76c6796e995f33d323ee3aa84">$modules</a> as $i)</div>
+<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;        {</div>
+<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;            $modulePath = <span class="stringliteral">&quot;{$modulesRoot}{$i-&gt;directory}/main.php&quot;</span>;</div>
+<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;            <span class="keywordflow">if</span> (file_exists($modulePath) &amp;&amp; $this-&gt;<a class="code" href="class_tools_1_1_module_manager.html#a167a402eddef05c09ce608f803009baa">loadModule</a>($modulePath, $i))</div>
+<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;            {</div>
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;                $ids[] = $i-&gt;id;</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;            }</div>
+<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;            <span class="keywordflow">else</span></div>
+<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;            {</div>
+<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;                die (<span class="stringliteral">&quot;out&quot;</span>);</div>
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;                $i-&gt;active = <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;                $i-&gt;save();</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;            }</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;        }</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;        <a class="code" href="class_tools_1_1_module_manager.html#a7c294642225a6c91f5d7932dde75c2ae">$context</a>-&gt;hookManager-&gt;loadHooks(\<a class="code" href="namespace_entity.html">Entity</a>\ModuleHook::getModules($ids));</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;    }</div>
+<div class="ttc" id="class_tools_1_1_module_manager_html_a7c294642225a6c91f5d7932dde75c2ae"><div class="ttname"><a href="class_tools_1_1_module_manager.html#a7c294642225a6c91f5d7932dde75c2ae">Tools\ModuleManager\$context</a></div><div class="ttdeci">$context</div><div class="ttdef"><b>Definition:</b> <a href="_module_manager_8php_source.html#l00016">ModuleManager.php:16</a></div></div>
+<div class="ttc" id="class_entity_1_1_module_html_a5a5d2fbfed8c77d8760c2d0473e92220"><div class="ttname"><a href="class_entity_1_1_module.html#a5a5d2fbfed8c77d8760c2d0473e92220">Entity\Module\getActivated</a></div><div class="ttdeci">static getActivated()</div><div class="ttdef"><b>Definition:</b> <a href="_module_8php_source.html#l00022">Module.php:22</a></div></div>
+<div class="ttc" id="namespace_entity_html"><div class="ttname"><a href="namespace_entity.html">Entity</a></div><div class="ttdef"><b>Definition:</b> <a href="_address_8php_source.html#l00003">Address.php:3</a></div></div>
+<div class="ttc" id="class_tools_1_1_module_manager_html_a167a402eddef05c09ce608f803009baa"><div class="ttname"><a href="class_tools_1_1_module_manager.html#a167a402eddef05c09ce608f803009baa">Tools\ModuleManager\loadModule</a></div><div class="ttdeci">loadModule($path, $module)</div><div class="ttdef"><b>Definition:</b> <a href="_module_manager_8php_source.html#l00071">ModuleManager.php:71</a></div></div>
+<div class="ttc" id="class_tools_1_1_module_manager_html_a19e625c76c6796e995f33d323ee3aa84"><div class="ttname"><a href="class_tools_1_1_module_manager.html#a19e625c76c6796e995f33d323ee3aa84">Tools\ModuleManager\$modules</a></div><div class="ttdeci">$modules</div><div class="ttdef"><b>Definition:</b> <a href="_module_manager_8php_source.html#l00024">ModuleManager.php:24</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a class="anchor" id="a4537dad3b44254124991341cc91b28fb"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">__get </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$key</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<p>Getter </p>
+
+<p>Definition at line <a class="el" href="_module_manager_8php_source.html#l00119">119</a> of file <a class="el" href="_module_manager_8php_source.html">ModuleManager.php</a>.</p>
+<div class="fragment"><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;    {</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;        <span class="keywordflow">switch</span> ($key)</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;        {</div>
+<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;            <span class="keywordflow">case</span> <span class="stringliteral">&quot;modules&quot;</span>:</div>
+<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;                <span class="keywordflow">return</span> <a class="code" href="class_tools_1_1_module_manager.html#a19e625c76c6796e995f33d323ee3aa84">$this-&gt;modules</a>; <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;        }</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;        <span class="keywordflow">if</span> (substr($key, 0, 4) == <span class="stringliteral">&quot;_id_&quot;</span>)</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;            <span class="keywordflow">return</span> $this-&gt;<a class="code" href="class_tools_1_1_module_manager.html#ab1dcee2727d5614cb8c028c57d2271e8">getModuleFromId</a>((<span class="keywordtype">int</span>) substr($key, 4));</div>
+<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;        <span class="keywordflow">throw</span> new \Exception(<span class="stringliteral">&quot;Cannot access attribute {$key}&quot;</span>);</div>
+<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;    }</div>
+<div class="ttc" id="class_tools_1_1_module_manager_html_ab1dcee2727d5614cb8c028c57d2271e8"><div class="ttname"><a href="class_tools_1_1_module_manager.html#ab1dcee2727d5614cb8c028c57d2271e8">Tools\ModuleManager\getModuleFromId</a></div><div class="ttdeci">getModuleFromId($id)</div><div class="ttdef"><b>Definition:</b> <a href="_module_manager_8php_source.html#l00106">ModuleManager.php:106</a></div></div>
+<div class="ttc" id="class_tools_1_1_module_manager_html_a19e625c76c6796e995f33d323ee3aa84"><div class="ttname"><a href="class_tools_1_1_module_manager.html#a19e625c76c6796e995f33d323ee3aa84">Tools\ModuleManager\$modules</a></div><div class="ttdeci">$modules</div><div class="ttdef"><b>Definition:</b> <a href="_module_manager_8php_source.html#l00024">ModuleManager.php:24</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="ab1dcee2727d5614cb8c028c57d2271e8"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">getModuleFromId </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$id</em></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramtype">int</td><td class="paramname">$id</td><td></td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd><a class="el" href="class_tools_1_1_a_module.html">AModule</a> on success, FALSE on failure (no such ID / module not loaded) Get the module identified with id ID </dd></dl>
+
+<p>Definition at line <a class="el" href="_module_manager_8php_source.html#l00106">106</a> of file <a class="el" href="_module_manager_8php_source.html">ModuleManager.php</a>.</p>
+<div class="fragment"><div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;    {</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;        <span class="keywordflow">foreach</span> ($this-&gt;modules as $i)</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;        {</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;            <span class="keywordflow">if</span> ($i-&gt;entity-&gt;id == $id)</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;                <span class="keywordflow">return</span> $i;</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;        }</div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;        <span class="keywordflow">return</span> FALSE;</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;    }</div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a279ef46fb2e62ce756023d9a443d7953"></a>
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">listAvailableModules </td>
+          <td>(</td>
+          <td class="paramname"></td><td>)</td>
+          <td></td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="_module_manager_8php_source.html#l00087">87</a> of file <a class="el" href="_module_manager_8php_source.html">ModuleManager.php</a>.</p>
+<div class="fragment"><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    {</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;        $modulesRoot = <a class="code" href="class_tools_1_1_module_manager.html#a7c294642225a6c91f5d7932dde75c2ae">$context</a>-&gt;router-&gt;modulesPath;</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;        $result = array();</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;        <a class="code" href="class_tools_1_1_module_manager.html#a19e625c76c6796e995f33d323ee3aa84">$modules</a> = scandir($modulesRoot, SCANDIR_SORT_NONE);</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;        <span class="keywordflow">foreach</span> (<a class="code" href="class_tools_1_1_module_manager.html#a19e625c76c6796e995f33d323ee3aa84">$modules</a> as $i)</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;        {</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;            $path = $modulesRoot.$i;</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;            <span class="keywordflow">if</span> ($i == <span class="charliteral">&#39;.&#39;</span> || $i == <span class="stringliteral">&#39;..&#39;</span> || !is_dir($path))</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;                <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;            $this-&gt;<a class="code" href="class_tools_1_1_module_manager.html#a167a402eddef05c09ce608f803009baa">loadModule</a>($path);</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;        }</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;    }</div>
+<div class="ttc" id="class_tools_1_1_module_manager_html_a7c294642225a6c91f5d7932dde75c2ae"><div class="ttname"><a href="class_tools_1_1_module_manager.html#a7c294642225a6c91f5d7932dde75c2ae">Tools\ModuleManager\$context</a></div><div class="ttdeci">$context</div><div class="ttdef"><b>Definition:</b> <a href="_module_manager_8php_source.html#l00016">ModuleManager.php:16</a></div></div>
+<div class="ttc" id="class_tools_1_1_module_manager_html_a167a402eddef05c09ce608f803009baa"><div class="ttname"><a href="class_tools_1_1_module_manager.html#a167a402eddef05c09ce608f803009baa">Tools\ModuleManager\loadModule</a></div><div class="ttdeci">loadModule($path, $module)</div><div class="ttdef"><b>Definition:</b> <a href="_module_manager_8php_source.html#l00071">ModuleManager.php:71</a></div></div>
+<div class="ttc" id="class_tools_1_1_module_manager_html_a19e625c76c6796e995f33d323ee3aa84"><div class="ttname"><a href="class_tools_1_1_module_manager.html#a19e625c76c6796e995f33d323ee3aa84">Tools\ModuleManager\$modules</a></div><div class="ttdeci">$modules</div><div class="ttdef"><b>Definition:</b> <a href="_module_manager_8php_source.html#l00024">ModuleManager.php:24</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="a167a402eddef05c09ce608f803009baa"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">loadModule </td>
+          <td>(</td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$path</em>, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
+          <td class="paramtype">&#160;</td>
+          <td class="paramname"><em>$module</em>&#160;</td>
+        </tr>
+        <tr>
+          <td></td>
+          <td>)</td>
+          <td></td><td></td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+  <table class="params">
+    <tr><td class="paramtype">string</td><td class="paramname">$path</td><td>path to module's main file </td></tr>
+    <tr><td class="paramtype">\Entity\Module</td><td class="paramname">$module</td><td>module's database object to load /core/models/Module.php </td></tr>
+  </table>
+  </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>TRUE on success Will try to load module located at $path. This function will include the main.php file located in the module's directory The file MUST return an <a class="el" href="class_tools_1_1_a_module.html">AModule</a> object to be considered as successfull /core/tools/AModule.php </dd></dl>
+
+<p>Definition at line <a class="el" href="_module_manager_8php_source.html#l00071">71</a> of file <a class="el" href="_module_manager_8php_source.html">ModuleManager.php</a>.</p>
+<div class="fragment"><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;    {</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;        $mod = include_once($path);</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;        <span class="keywordflow">if</span> (!$mod || !($mod instanceof \<a class="code" href="namespace_tools.html">Tools</a>\AModule))</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;        $mod-&gt;setContext($this-&gt;context);</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;        $mod-&gt;setEntity($module);</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;        $this-&gt;modules[] = $mod;</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;    }</div>
+<div class="ttc" id="namespace_tools_html"><div class="ttname"><a href="namespace_tools.html">Tools</a></div><div class="ttdef"><b>Definition:</b> <a href="_a_controller_8php_source.html#l00003">AController.php:3</a></div></div>
+</div><!-- fragment -->
+</div>
+</div>
+<h2 class="groupheader">Field Documentation</h2>
+<a class="anchor" id="a7c294642225a6c91f5d7932dde75c2ae"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">Tools <a class="el" href="class_tools_1_1_context.html">Context</a> $context</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+<p>/core/tools/Context.php Contains website's informations </p>
+
+<p>Definition at line <a class="el" href="_module_manager_8php_source.html#l00016">16</a> of file <a class="el" href="_module_manager_8php_source.html">ModuleManager.php</a>.</p>
+
+</div>
+</div>
+<a class="anchor" id="a19e625c76c6796e995f33d323ee3aa84"></a>
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+  <tr>
+  <td class="mlabels-left">
+      <table class="memname">
+        <tr>
+          <td class="memname">$modules = array()</td>
+        </tr>
+      </table>
+  </td>
+  <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">private</span></span>  </td>
+  </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Definition at line <a class="el" href="_module_manager_8php_source.html#l00024">24</a> of file <a class="el" href="_module_manager_8php_source.html">ModuleManager.php</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following file:<ul>
+<li>/home/isundil/Project/ecom/core/tools/<a class="el" href="_module_manager_8php_source.html">ModuleManager.php</a></li>
+</ul>
+</div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated on Tue Aug 4 2015 00:33:19 for ecom by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.8
+</small></address>
+</body>
+</html>

部分文件因文件數量過多而無法顯示