diff --git a/code/ryzom/tools/server/ryzom_ams_docs/doxygen/Doxyfile b/code/ryzom/tools/server/ryzom_ams_docs/doxygen/Doxyfile index 1f93a9cb3..8c4cad40f 100644 --- a/code/ryzom/tools/server/ryzom_ams_docs/doxygen/Doxyfile +++ b/code/ryzom/tools/server/ryzom_ams_docs/doxygen/Doxyfile @@ -833,7 +833,7 @@ EXAMPLE_RECURSIVE = NO # that contain images that are to be included in the documentation (see the # \image command). -IMAGE_PATH = +IMAGE_PATH = img # 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 diff --git a/code/ryzom/tools/server/ryzom_ams_docs/doxygen/img/db.png b/code/ryzom/tools/server/ryzom_ams_docs/doxygen/img/db.png new file mode 100644 index 000000000..63cb4c92b Binary files /dev/null and b/code/ryzom/tools/server/ryzom_ams_docs/doxygen/img/db.png differ diff --git a/code/ryzom/tools/server/ryzom_ams_docs/doxygen/img/info.jpg b/code/ryzom/tools/server/ryzom_ams_docs/doxygen/img/info.jpg new file mode 100644 index 000000000..9c9f05092 Binary files /dev/null and b/code/ryzom/tools/server/ryzom_ams_docs/doxygen/img/info.jpg differ diff --git a/code/ryzom/tools/server/ryzom_ams_docs/doxygen/img/info.psd b/code/ryzom/tools/server/ryzom_ams_docs/doxygen/img/info.psd new file mode 100755 index 000000000..5b0334eaa Binary files /dev/null and b/code/ryzom/tools/server/ryzom_ams_docs/doxygen/img/info.psd differ diff --git a/code/ryzom/tools/server/ryzom_ams_docs/doxygen/info.php b/code/ryzom/tools/server/ryzom_ams_docs/doxygen/info.php index b5c3088cb..efa4617a1 100644 --- a/code/ryzom/tools/server/ryzom_ams_docs/doxygen/info.php +++ b/code/ryzom/tools/server/ryzom_ams_docs/doxygen/info.php @@ -8,6 +8,100 @@ * * \section install_sec More info? * - * if you want more information take a look at the ryzomcore wikipages - * + * if you want more information take a look at the ryzomcore wikipages and the \link design \endlink pages + * */ + + +/** +* @page design Design Info +* \section intro_design A brief introduction to the design of the AMS +* +* We will take a look at the current db design, the way the classes are designed, the way the WWW version works and how it was reused in the drupal module. +* +* \subsection db_struct The database structure +* +*
My project started with the design of our database. I had to think about the advanced AMS features in advance. This is the reason why there are still a few unused DB tables in the design, the plan however is to use those as soon as possible by implementing the extra features.
+* +*The tables that are unused are the following: +*
Let's take a look at the 'used' tables. The database structure is shown in the image below. For each table I made a matching class that handles the info of that table.
+*Quite central you can see the ticket table. As you can see, a ticket has a ticket_category field and author field, these hold the id of the related row in the ticket_category and ticket_user table. +* There's also the relation between a ticket and it's log entries, this is done by the ticket foreign key in the ticket_log table. The same counts for most other tables that are related to the ticket, they all got a ticket column used as foreign key.
+*Another thing that you might notice is the separation between ticket_reply and ticket_content, this is a 1-to-1 relation and this makes it easier to search between the replies if we only need their general information without having to take care of the content.
+* The ticket_user is another quite important table that's being foreigned keyed by the others. It holds the permission of a user and the externID links to an ID given by the CMS(or our own www version) +*Most things are pretty clear and straight forward, you can find the MYSQL Workbench file in the ryzom_ams/www/html/sql folder, which might give a better overview and can be used to update the DB easily when adding/modifying features in the future.
+* \image html db.png +* +** \subsection used_tech Technologies used +*As you might have noticed, the ryzom_ams directory contains 3 directories: the ams_lib dir, the www dir and a drupal_module dir.
+*+* the ams_lib contains the following important dirs/files: +*
+* the www contains the following important dirs/files: +*
+* the drupal_module contains the following important dirs/files: +*
Like I mentioned above, each DB table has a class related that handles the data linked to that table and has functions working with that data.
+*The private attributes of each class are similar to the fields in the DB table. Every class also has the following functions: +*
You can reference for example the Support_Group class's information, which shows this setup!
+*/ diff --git a/code/ryzom/tools/server/ryzom_ams_docs/html/add__sgroup_8php.html b/code/ryzom/tools/server/ryzom_ams_docs/html/add__sgroup_8php.html index 25b7a8205..f525076f5 100644 --- a/code/ryzom/tools/server/ryzom_ams_docs/html/add__sgroup_8php.html +++ b/code/ryzom/tools/server/ryzom_ams_docs/html/add__sgroup_8php.html @@ -129,7 +129,7 @@ Functions+ + + |
+ Ryzom Account Management System
+ 1.0
+
+
+ |
+
+
+
+
We will take a look at the current db design, the way the classes are designed, the way the WWW version works and how it was reused in the drupal module.
+My project started with the design of our database. I had to think about the advanced AMS features in advance. This is the reason why there are still a few unused DB tables in the design, the plan however is to use those as soon as possible by implementing the extra features.
+The tables that are unused are the following:
+The idea for the ticket_groups was to provide the ability to bundle multiple tickets together in groups, this could be used for tickets that are alike or are in a weird way related. The idea for the tagging was to provide an extra system that allows to query tickets based on their tags (datamining). These features can be easily added in the future!
+Let's take a look at the 'used' tables. The database structure is shown in the image below. For each table I made a matching class that handles the info of that table.
+Quite central you can see the ticket table. As you can see, a ticket has a ticket_category field and author field, these hold the id of the related row in the ticket_category and ticket_user table. There's also the relation between a ticket and it's log entries, this is done by the ticket foreign key in the ticket_log table. The same counts for most other tables that are related to the ticket, they all got a ticket column used as foreign key.
+Another thing that you might notice is the separation between ticket_reply and ticket_content, this is a 1-to-1 relation and this makes it easier to search between the replies if we only need their general information without having to take care of the content. The ticket_user is another quite important table that's being foreigned keyed by the others. It holds the permission of a user and the externID links to an ID given by the CMS(or our own www version)
+Most things are pretty clear and straight forward, you can find the MYSQL Workbench file in the ryzom_ams/www/html/sql folder, which might give a better overview and can be used to update the DB easily when adding/modifying features in the future.
+As you might have noticed, the ryzom_ams directory contains 3 directories: the ams_lib dir, the www dir and a drupal_module dir.
+the ams_lib contains the following important dirs/files:
+the www contains the following important dirs/files:
+the drupal_module contains the following important dirs/files:
+Important: the func dir and inc dir in the drupal_module are almost empty, that's because the inc/func directories of the WWW version can be copied to the drupal version, they are exactly the same. However, because the drupal_module isn't completely up to date, the settings page doesn't has the extra fields (like gender,country,..) therefore the ingame template file, inc files related to that are still in the module.
+Like I mentioned above, each DB table has a class related that handles the data linked to that table and has functions working with that data.
+The private attributes of each class are similar to the fields in the DB table. Every class also has the following functions:
+These methods are being used by the public static functions of that class, which represent the 'real' AMS-functions, the ones being used by the inc/func files.
+You can reference for example the Support_Group class's information, which shows this setup!
+if you want more information take a look at the ryzomcore wikipages
+if you want more information take a look at the ryzomcore wikipages and the design pages