| Electronic Manual - EasyData
© SunnyScript - www.sunnyscript.com |
| Table of contents | |||||||||||||||||
Smart
tip: This handbook is also designed to be printed... set your
printer's page orientation to landscape format, so there is enough space
to place hand-written notes on the left and right margin easily.
|
| General information about databases |
| Successful database planning... |
|
1. Determine required database fields: Write down all fields required for your database on a piece of paper to ensure having a consistent and logical data structure. For example, a database containing business contacts has other field demands than a product catalogue. If you're very unsure which fields are needed, just think about the content you want to store in the database and create some sample records based upon this. Have still problems ? Don't worry, you can add, modify and delete fields later at any time. 2. Assign field types, edit controls and verification parameters: Field types describe the content of the concerned fields closer. By default, EasyData uses the type "text" which accepts any input - but it can be wiser to be a bit more specific (e.g. a field like "Birthday" should be set to the type "date"). Edit controls determine how particular fields are displayed. By default, EasyData uses a single input line. But it is possible to work with any edit control supported by HTML (like text boxes, radiobuttons, drop-down lists, checkboxes, ...). Verification parameters are intended to ensure that only correct data is entered for a particular field. EasyData offers many pre-set verifications for date formats, e-mail addresses and value ranges but also allows custom settings. Please take some time to work out suited field parameters. Especially when having different people working on one database, meaningful settings will increase data consistency dramatically - and so, this makes also search operations easier. Helpful hint: Confused about all this stuff ? Don't worry, the correct usage will be explained later. At this stage, you should just have a basic understanding of the database structure and your desired application. 3. Check all of your planning steps: Last but not least you should go carefully through your planning and check it. It's a matter of course, that you can do changes to existing databases at any time, but it will save some time and trouble to start right away from the beginning. Has your planning matched the application your database is intended to ? Try to perform some search operations on the sample records you invented previously and see how users are able to access particular records. Furthermore you may think
about some extras, like desired sorting, scheduled record availability,
user permissions and other stuff. But for now, don't care about this too
much. It will all be explained later step by step in this handbook.
|
| Database size vs. system resources... |
|
EasyData is highly optimized and supports databases of an unlimited size (number of records, data volume to handle), so the performance mainly depends upon the used server type and available system resources. Accesses to your databases are handled very efficiently, so also high traffic websites are generally managed fine by EasyData. Our special database backend provides you with SQL-like performance, but neither with the need to have a SQL software server installed nor to deal with SQL's complexity and typical hang-ups. In a common system environment,
you don't have to take care about this issue. However if you have more
specific questions regarding this topic, please contact SunnyScript's customer
service department for personal assistance.
|
| Administration panel | |||||||||||||||||||||||||||||||||||||||||||
|
The administration panel is a convenient way to work interactively with EasyData. You can start the admin panel by calling admin.cgi with your favorite web browsing software:
How to access your databases: Please refer to the chapter
"Web-frontend and template management" for detailed information about web
integration.
|
|||||||||||||||||||||||||||||||||||||||||||
| Admin menu... | |||||||||||||||||||||||||||||||||||||||||||
|
This screen allows the following actions:
The top menu line provides
additional selections (depending on the current system status):
|
|||||||||||||||||||||||||||||||||||||||||||
| Database creation and maintenance | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Create a new database (table)... | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
First of all, call the admin panel and go to the part "Create new table". Now just follow these steps:
After this is done, just click on the "Create new table" button in order to create the new database. By the way: You can add and remove system fields manually later at any time; so if you are unsure about an optional setting described above, just leave it empty and read more about below in this manual. * What exactly is a record owner ? Each record can have an assigned e-mail address as well as a password (optional). In this way, people are able to modify their owned records. Additionally, the mailing utility allows sending of e-mails to all registered record owners. Why is there an ID field in each table ? This field is required for some internal functions of EasyData (mainly used to distinguish records); so you can commonly ignore it. If you like, you may also rename its label, hide it when showing records or even make it editable by users. Technical
note: Since each record must have a unique ID field value, this
field is of autoincrement type by default.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Create table fields... | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Choose the desired table and select "Restructure table". Alternatively click on "Restructure" in the upper right corner of the screen. If you just created a table, this screen appears automatically. Go to "New field name", type in the desired name and select the data type. In order to finish action, click on "Create new field". There are also various system
fields available, required for advanced features. Type in the field names
exactly as they appear in the following list to enable the concerned feature
(refer to following chapters for details):
After a field was created
successfully, the screen "Field properties" appears (see next part of this
chapter).
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Edit or remove existing fields... | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Select the desired table and choose "Restructure table" from admin panel. Alternatively you can click on "Restructure" in the upper right corner of the screen. How to delete a field: Look for the field you wish to remove from the table and click on "Delete". However, please note that once a field is removed, all related content will get lost and cannot be recovered. By the way: All table parameters are automatically updated and the concerned field becomes removed from these settings. How to change sorting of fields: Look for the field you wish to move around and click on either "move up" or "move down" to change the field's position. Technical note: Sorting of fields takes effect only to various admin panel screens. Use "Table parameters and layout" settings to change the default field order for the web-frontend. How to edit a field: Look for the field you wish
to modify and click either on "Edit" or the field name. Now the screen
"Field properties" appears. Depending of the selected field, you can modify
these options:
Important
notes: If you edit a system field, some of the settings above
may be not available for selection. Don't touch pre-filled settings for
system fields; you may negatively affect their behavior.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Category handling... | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Usage note: Before you can use categories, ensure that the system field _category is available within your table. From admin panel, select the desired table and choose "Edit table categories". Alternatively you can click on "Categories" in the upper right corner of the screen. How to create a new category: Type in a category name and short description (optional; can be displayed when browsing by categories). Now click either on the button "Add new top-level category" to create a new main category or "Add new category inside current category" to add a sub-category within the currently selected category. How to edit a category: Click on the ID of the category
you wish to modify:
In order to take over the changes to the system, click on the button "Save". Helpful hint: Since categories are sorted alphabetically by their IDs (category codes), changing their displayed default order is very easy by altering the concerned category codes according your desired arrangement. How to delete a category: Select the ID of the category you wish to remove and then click on the appropriate deletion button to remove the concerned category from the table (please be careful when doing so; once deleted, categories cannot be recovered). Important note: Records related to removed categories are re-assigned to the concerned upper level category. Category trees - overview: EasyData comes with a feature allowing website developers to implement an interactive JavaScript-powered category tree to websites in just a few minutes. Ideally suited for easy database navigation on category-based tables. Each tree is built with graphical elements and can be individualized to allow highest flexibility. It is also based upon an own template (treeview.htm), so even surrounding HTML elements are possible. Category trees - website implementation: Call treeview.cgi
to display a table's tree:
Implementation by using SSI-tags: Example: <!--#include
virtual="/cgi-bin/ed/treeview.cgi?tbl=TABLE"-->
Technical note: Remove all HTML initializing tags from template treeview.htm (mainly <HTML> and <HEAD>) to avoid display errors caused when inserting the category tree codes into an existing webpage via SSI. Important note: In order to use category trees, at least the permission "Search" is required for anonymous users. Category trees - available settings: Choose the desired table and select "Restructure table". Alternatively click on "Restructure" in the upper right corner of the screen. If you just created a table, this screen appears automatically. Now click on the button "Edit treeview parameters". Layout options:
Drawing icons:
Folder/leaf icons:
Root category:
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Moderated user actions... | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
If this feature is active, administrator can approve (or decline) changes submitted by users (mainly additions, modifications or deletions of records). Enable moderated modifications by configuring the appropriate fields on the screen "Table parameters". Important note: It is strongly recommended to enable this feature, if you allow people adding their own records. Otherwise you have no control about the database content. Enable moderation mode: Check fields "Make additions
moderated" and/or "Make modifications moderated" during table creation
or go to "Change table parameters and layout" and modify "Permissions"
according your needs.
Usage note: For more details about permissions and user groups, please take a look at the next chapter. How to moderate actions: From admin panel (you must be logged in as admin), select the desired table and choose "Moderate table". Alternatively you can click on "Moderate" in the upper right corner of the screen. Now you see a list containing all queued requests. Each request can be approved or declined by selecting the concerned radio button. Select "Hold" and the concerned record will be still kept in moderation queue. After you moderated all requests, click on the button at the end of this screen to take over your decisions to the system. How to edit records in moderation queue: If you wish to modify records
that are currently in moderation queue, mark the button "Remind to update"
when approving the concerned records. Now the moderation result screen
allows you to edit them right away (new browser window opens).
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Table maintenance... | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Select the desired table and choose "Restructure table" from admin panel. Alternatively you can click on "Restructure" in the upper right corner of the screen. How to remove a table (be very careful): Go to "Delete table" and then click on "Delete files". You can either remove parts of this table or the entire database structure. How to clear selected table files (be very careful): Go to "Empty table", select the appropriate files you wish to clear and then click on "Clear data" to carry out this action. How to rename a table: Go to "Rename table" and
specify the new name. Click on "Rename" to take over the changes to the
system.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| View, add, clone, update and delete records... | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Go to the admin panel, select the desired table and choose "View/Add/Update/Delete records". On the following screen, you may browse through all categories, search for records, add new ones, remove, update or clone existing records and do all other database administration tasks (see menu on the upper right corner of the screen). Technical note 1: When updating records (admin only), all fields are shown regardless of the "Visible fields" settings at the "Table parameters" screen for convenience reasons (however other screens in admin panel consider these preferences). Technical
note 2: Cloning a record means to take over all field values
from an existing record to a new one showing the "Add record" screen. It
is not possible to clone fields of type "image", "binary" and "uploadmemo".
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Search requests statistics... | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
The search requests statistics shows how people are using your database regarding search queries. All search queries are logged and then presented in a comprehensive graphical report searchable by date/time and sorted by usage frequency. You can use these statistics for various marketing and performance analysis (e.g. most popular search queries, behavior of the users when doing search operations) or just for your personal interest. How to enable search requests logging ? Go to the screen "Table layout
parameters", "Search requests logging":
Sending of statistics
via e-mail: See also "Table layout parameters" screen, but now part
"Table automatic maintenance":
How to access the statistics ? Click on "Search stats" available in the upper left corner of the screen to access the statistics of the currently active table. Search requests statistics
form:
Smart tip 1: The generated reports can be printed easily: Depending upon the used paper size, you may need to set the printer's page orientation to landscape format. In this case, there is also space for placing hand-written notes at the margins. Smart
tip 2: Since EasyData doesn't use image files to create bar
graphs, you can simply copy the report to a disk and carry it to other
computers, still keeping the layout (reports are generated in HTML language).
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Advanced features in detail | ||||||||||||||||||||||||||||||||||||||||||||
| User managed record modifications (record owner)... | ||||||||||||||||||||||||||||||||||||||||||||
|
How to enable managed records: As mentioned in the previous chapter, users can be assigned to records they added to a table. By using this feature, record owners are able to modify or delete their owned records online and even prolong the life of them (if expiration feature is active). In order to enable managed records, just ensure that you have the system field _email (e-mail address) within your table. Higher security will be achieved by adding another system field called _pwd, which contains a user determinable password. Registered users are required to log in by using the login screen of EasyData providing their e-mail address and password. Usage note: Alternatively to _email, also the field _login can be used. While _email needs to contain an e-mail address, the _login field may hold any content (e.g. alphanumerical values). If both fields are available, _login has a higher priority. Configure the password reminder utility: If a record owner forgot
the password, it can be re-send automatically by the system at request.
In order to configure this utility, please go to the "Table parameters"
screen:
Important note: Since the admin password is saved encrypted for higher security, it cannot be restored. See chapter "Helpful hints and technical reference" about information on how to reset the admin password. Technical
note: For this feature, the system field _email
is required.
|
||||||||||||||||||||||||||||||||||||||||||||
| Set user permissions and limitations... | ||||||||||||||||||||||||||||||||||||||||||||
|
Available types of users: Anonymous users are
not logged in and just work with the system (e.g. searching or browsing
a database).
Set permissions for anonymous
users:
Set permissions for registered
users (record owners):
Set permissions for (registered
users') owned records:
Enable moderation for
record comments:
Enable "flood" prevention
(anonymous and registered users):
|
||||||||||||||||||||||||||||||||||||||||||||
| Voting and comments... | ||||||||||||||||||||||||||||||||||||||||||||
|
How to enable voting and/or comments for a table: Add system field _rating
to the table to allow user ratings. Optionally add system field
_votes
to count number of ratings.
Helpful hint: During table creation, mark "Include user feedback fields" to allow rating as well as comments; so you don't have to add the system fields above manually. Voting and comments settings: Select the desired table
and choose "Change table parameters and layout" from admin panel. Go to
the part "Voting and comment parameters".
Technical note: Admin can remove unwanted comments by editing the field _comments_data of the concerned record. Helpful hint: It is also possible to make comments moderated. Please refer to "Set user permissions and limitations" above. Voting and comments web-frontend: Please refer to the chapter "Web-frontend and template management" for more details. Technical
note: The default maximum size for _rating
field is five characters. Since it is in float data type, digits are chopped
off if field size exceeds the maximum size (however admin can adjust field
properties).
|
||||||||||||||||||||||||||||||||||||||||||||
| Record time management... | ||||||||||||||||||||||||||||||||||||||||||||
|
General information: EasyData provides the ability to schedule the appearance and disappearance of records. In case of removements, notification messages may be sent before and records are able to be prolonged by their concerned owners. There are several ways to set appearance dates, expiration dates and periods (e.g. based upon record creation date or last record update, for the entire table or unique for each record). Pre-requisites for automatic record expiration: 1. Maintenance interval: Ensure that a maintenance interval is specified. See screen "Table parameters", "Table automatic maintenance". Recommended range: 3600 to 43200 seconds (1 to 12 hours). 2. Record owner: If you wish to allow record owners to prolong the life of their assigned record(s), the system fields _email (alternatively _login) and _pwd are required (password field is optional). Technical note: Record appearance tasks are automatically handled when accessing the concerned table. Appearance... table-wide appearance date (valid for all new records): Add system field _effective_since and type in the following string as "Default value" setting at "Field properties" screen:
<x>: Number of days counted from record creation till appearance. Usage note: This string is a special command, only valid for the above particular application. Technical note: Until appearance date, the record exists but is not allowed being shown when searching or browsing the table. While for the admin such records are always visible, registered users can update them only by using a direct link. Appearance... individual appearance date for each unique record - absolute date: Add the system field _effective_since which contains the date of first desired appearance (format: YYYY-MM-DD or YYYY-MM-DD HH:MM:SS). It must be filled during record addition; leave field empty to make the record available immediately. Appearance... individual appearance date for each unique record - relative date: Same procedure as done for a table-wide appearance date, but don't set a default value for _effective_since, just use "Appears in <x> days" individually for each created record as field value. Expiration... table-wide expiration date (valid for all records): Ensure that either the system
field _add_datetime
or _update_datetime
is present for the concerned table - based upon these date/time stamps,
the expiration dates are calculated:
Helpful hint: _update_datetime should be used, if you wish to allow record owners to prolong life of their records. At "Table automatic maintenance"
(see "Table parameters" screen), you'll find the record expiration settings:
If you activated the setting
"Allow record life be prolonged", notification mails are sent out to record
owners with instructions on how to prolong the life of concerned record:
If you wish to notify the
record owner as soon as a record is removed, fill out also these settings:
Expiration... individual expiration of each unique record - absolute date: Add the system field _expires which contains the date of expiration (format: YYYY-MM-DD or YYYY-MM-DD HH:MM:SS). This field must be filled during record addition; leave it empty to disable expiration for a particular record. Important note: Setting an expiration time (see above) is required also here to determine a maximum applicable time frame; you may wish to set the expiration time parameter to a high value, like 3650 days (about ten years). Helpful hint: If you allow record owners to prolong the life of their assigned records, ensure that the system field _expires is accessible for updates (see "Table parameters", "Record update mode - visible fields"). Expiration... individual expiration of each unique record - relative date: Alternatively to the date input described before, simply type in this as "Default value" setting for the field _expires:
<x>: Number of days counted from record creation till expiration. Usage note: This string is a special command, only valid for the above particular application. Expiration... combination of table wide and individual expiration dates: If _expires
and one date/time stamp as well as an expiration time exists, then the
expiration date in _expires
applies.
General priority of date/time stamps and expiration field: _expires, _update_datetime, _add_datetime. Expiration... Templates (warning / notification mails): Please refer to the chapter
"Web-frontend and template management" for more details.
|
||||||||||||||||||||||||||||||||||||||||||||
| Images / Binaries / Memos... | ||||||||||||||||||||||||||||||||||||||||||||
|
You can have multiple image fields as well as binary fields and memos in each table. Just create a table field and set its data type to "image", "binary" or a memo one. Depending on your selection, the concerned field has a specific behavior:
By using the parameter "Max. size" at "Field properties", you can specify the maximum file size in bytes allowed for uploads. Setting a file size limitation is strongly recommended, if you want to enable public record additions or modifications. Important
note: It is not possible to perform search operations upon these
fields' content.
|
||||||||||||||||||||||||||||||||||||||||||||
| Temporarily blocking of records... | ||||||||||||||||||||||||||||||||||||||||||||
|
An existing record can be blocked, which means that it cannot be found during table browsing or search operations. In order to enable this feature, you must have the system field _blocked in your table. How to block a record: Search for the concerned record to block, click on "Update" (can be found in the upper right corner of the screen) and then just check the appropriate button (edit control of the field _blocked). How to unblock a record: Search for the concerned
record to unblock, click on "Update" (can be found in the upper right corner
of the screen) and then just uncheck the appropriate button (edit control
of the field _blocked).
|
||||||||||||||||||||||||||||||||||||||||||||
| Send out mailings... | ||||||||||||||||||||||||||||||||||||||||||||
|
In order to create a mailing, select the desired table and choose "Send out mailings" from admin panel. Alternatively you can click on "Mailings" in the upper right corner of the screen. You can send out mailings either to all record owners of a selected table (recipients filter set to "Send to all") or just mail such people who have allowed you to do so (recipients filter set to "Send to subscribed users only"). Mark "Do not send duplicate e-mails" in order to send only one single mail, even a particular address is found multiple times. Custom recipients filter: You can specify a search query that filters only recipients matching particular criteria. It is possible to use any field available in the table this mailing is intended for. Click on "view filter results" to get a listing of all selected records. For example: income>=3000
AND education="high"
Usage note: For more details about how to perform search operations, please refer to "Searching of databases (tables)" below. Personalized mailings: Personalized mailings contain
an individual "To:" field for each recipient. In addition, you can include
fields from the concerned table (format: <!--$FIELDNAME-->)
which are replaced by appropriate content.
Sample personalized mailing:
Technical note: If "Do not send duplicate e-mails" is marked, a recipient with multiple records receives mail for the first found record only (and so will just see content of table fields for this specific record). Quick mailings: Quick mailings are used to
send identical messages to all recipients (faster processing). However
the usage of personalized elements is not possible (included table tags
are removed automatically).
Intelligent mail content delivery: The most powerful feature is the delivery of intelligent message parts based on a record's content and "if/then/else" conditions. So a mailing can be written absolutely targeted, which leads to higher response rates and increased user convenience. Important note: This works only with "Personalized" mailing method. "Quick" mailings will ignore intelligent message parts. Each "intelligent message
part" has the following structure:
Usage notes: "if" and "endif" tags are required, while the "else" part is optional. Recurrent tags may also be used. <expression> can contain
these operators:
Format of field values: $fieldname (field names are handled case-sensitive). Sample applications (non-recurrent
tags):
Usage notes: Second sample does not have an "else" tag, which means that a false result will lead into not displaying anything. Should a field value be unavailable (spelling error, non-existing field), then the argument is considered as being empty. Technical note: It is also possible to use HTML and client-sided scripts (like JavaScript) within intelligent message parts. Sample application (recurrent
tags):
Usage notes: Parts in green text belonging together. Do not forget to close all "if" tags avoiding malfunctions. How to perform a test of personalized and intelligent mailings: In order to let the system process a sample message, click on the button "Send test message to admin". The system then generates a mailing, which is sent to the administrator under real life conditions. And these default values are used: Numerical = 0; date/time related fields = actual date/time; URLs = http://test.<fieldname>/; e-mail addresses = test@<fieldname>.test; fields in general = test-<fieldname>. Smart
tip: Have a look at MailingStar
(plus) - professional mailing list management and e-mail marketing
software.
|
||||||||||||||||||||||||||||||||||||||||||||
| Searching of databases (tables)... | ||||||||||||||||||||||||||||||||||||||||||||
|
Searching for information: EasyData provides a wide range of powerful search features to retrieve information from your stored data fast and accurate. In the following, we want to show how to built search operations in an effective way. Let's first have a look at
these two records used to explain the sample operations below:
Usage note: All samples don't consider special features like searchable fields, whole word or case-sensitive search operations. They just refer exclusively to their concerned explained features. Interpreting keyword searches: In most cases, you can use any text string for query fields in order to start searching a table. Sample query: smith
Multiple keywords should be separated by spaces. EasyData automatically adds the logical operator AND unless an other one is specified (read below for details and additional explanations). Sample query: john blanche
If you are not sure about the spelling of a word (e.g. singular/plural or different spelling alternatives), then just type in a partial word. EasyData will perform a sub-string search for the provided string. Sample query: some
Boolean operators: AND (&) OR (|) NOT (!) The logical operators AND, OR, NOT are supported. Instead of the words AND, OR and NOT you can also use the operator characters ampersand (&), pipe (|) and exclamation mark (!). Sample query: john AND smith
Sample query: john OR max
Sample query: john ! max
Technical note: At advanced searches or custom search forms you can specify a default operator. Please have a look at the chapter "Web-frontend and template management", parts "Web integration: HTML based forms..." for more information. Parentheses: ( ) Operations put within parentheses are processed first; the result is then used for further operations within the search string. Sample query: (john NOT max)
AND samplecity
Phrases: " " Strings put within phrases are searched exactly as they are (not case-sensitive). Sample query: "sample"
Sample query: "JOHN"
Wildcards: * ? \ Beside of the standard sub-string search, it is possible to use more specific wildcards for automatically expanding a search operation. Wildcards marking variable parts of a string; they are helpful when looking for word variations and different spellings. The asterisk (*) is considered as placeholder for none, one or more characters; the question mark (?) is considered as placeholder for exactly one character. Place an escape character (\) before any symbol to disable its special meaning (e.g. a search for the string "book\*" will look for "book*" as it is written and does not consider the special meaning of the asterisk character). Sample query: sample*
Sample query: ?2345
Comparison operators: = == < > <= >= <> ~ !~ ~~ Within a search query you may address a specific record field being searched for a given string or numerical value. Available operators:
Sample query: age <= 12
Technical note: When just entering a string, EasyData converts it into <searchable field> ~ <search string>. In case of using "whole word" match, the search string is converted into <searchable field> ~~ <search string>. Priority of used operators: When processing a search request, EasyData first handles all parentheses, then comparisons and finally any boolean operator found (in this priority: NOT, AND, OR). Search options at "Advanced search" screen: By clicking at the "Search" link in the upper left corner of the screen you will come to the advanced search area for the concerned active table. Beside of a standard search mask, also the following options are available: Case-sensitive: Mark this button to handle search operations case-sensitive (CAPITAL and lowercase chars are differed). Whole words: Mark this button to search for entire words only (recognizes space characters). Match method: Select whether all arguments must be found (AND) or just one is sufficient to list a record (OR). Sort by / then sort by: Define sorting of search results over two levels. Additional references within this handbook: For complete information,
please also have a look at the chapter "Web-frontend and template management",
parts "Adjust table parameters" and "Web integration: HTML based forms..."
for more details and advanced possibilities.
|
||||||||||||||||||||||||||||||||||||||||||||
| Re-randomization... | ||||||||||||||||||||||||||||||||||||||||||||
|
What exactly is re-randomization ? When browsing categories or viewing search results, all shown records are presented in a given order. However in some cases, you may wish to achieve a random order (e.g. to provide a fair rotation of records). The re-randomization feature allows to fill one or more table fields with random numerical values; these fields can be used for sorting records by chance. Each table maintenance, the field values are refreshed and so also records are sorted differently. Pre-requisites for re-randomization feature: Maintenance interval: Ensure that a maintenance interval is specified. Please see screen "Table parameters", "Table automatic maintenance". Recommended range: 3600 to 43200 seconds (1 to 12 hours). Create a "randomizable"
field:
|
||||||||||||||||||||||||||||||||||||||||||||
| Sorting by record popularity... | ||||||||||||||||||||||||||||||||||||||||||||
|
What is meant with "popularity" ? Popularity refers to the number of times, a particular record is shown in detailed entry view mode. How to count the popularity of records ? Add the system field _views_number to your table. Its numerical content is automatically handled by EasyData and becomes increased by 1 each time a record is shown detailed (as higher the value, as more popular the record). How to sort search results by popularity ? When wishing to sort records by popularity, just ensure that _views_number is added to all "Sort records" parameters at the "Table parameters" screen. Usage
note: You can also show the field's content (e.g. color it with
"Display mask" parameter when it exceeds a given number to attract users)
or embed it into search forms - there are many more types of usage than
just sorting.
|
||||||||||||||||||||||||||||||||||||||||||||
| Bookmarking records... | ||||||||||||||||||||||||||||||||||||||||||||
|
What exactly is record bookmarking ? Each time a user browses through a table, it is possible to bookmark records (a cookie is set on user's computer containing the table name and record ID) for finding them later again easily. It is possible to bookmark as many records as desired. How to enable record bookmarking ? You just need to add the system field _addbookmark to the concerned table. This will lead that the necessary links and screen elements are created automatically allowing records being bookmarked, bookmarked ones viewed and unbookmarked. Each bookmark will kept stored for seven days to allow later visits without losing already found information. View set bookmarks: Click on "Bookmarks" available in the upper left corner of the screen to see a list with all bookmarked records of the actual table. In order to remove a bookmark, uncheck "Keep bookmark" of the concerned record and click on "Refresh bookmarks". Usage
notes: Records are shown as specified for table browsing mode
(as first column, a "Keep bookmark" button is shown). All bookmarks are
alive for about seven days before they will be removed automatically.
|
||||||||||||||||||||||||||||||||||||||||||||
| Sending records via e-mail... | ||||||||||||||||||||||||||||||||||||||||||||
|
EasyData provides the ability to send records via e-mail. This allows users to forward records very convenient to other people (or putting them into their own mailboxes, of course). How to enable sending of records via e-mail: Please select the desired
table and choose "Change table parameters and layout" from admin panel.
Go to the part "'Send records by e-mail' feature".
Technical
notes: Any applying field formatting (defined in display masks)
is ignored (plain text message is sent). Binary, memo and image typed fields
are shown as links to their respective files.
|
||||||||||||||||||||||||||||||||||||||||||||
| Automatic backup generation... | ||||||||||||||||||||||||||||||||||||||||||||
|
What exactly is backup generation ? EasyData is able to generate backups of its data files automatically to allow restoring them later. Generated backup files (extension .db.bak) are located within the "data" directory. Pre-requisites for generating backups: Maintenance interval: Ensure that a maintenance interval is specified. Please see screen "Table parameters", "Table automatic maintenance". Recommended range: 3600 to 43200 seconds (1 to 12 hours). Important note: The backup update period must be longer than the specified maintenance interval. Enable / disable backup generation: Select the desired table and choose "Change table parameters and layout" from admin panel. Alternatively you can click on "Restructure" in the upper right corner of the screen and then click on "Edit table parameters". Go to the part "Table automatic
maintenance" to find the appropriate settings:
Technical notes: In order to disable the backup feature, set "Number of backup files" to 0 or leave it empty. New backups are not generated for unchanged files (since backup already exists). Recommended backup settings: Maintenance interval = 3600;
number of backup files = 4; backup file #1 update period = 6
<TABLENAME>.db.bak1
holds 0 to 6 hours old database content.
<TABLENAME>: Name of the table, concerned backup file belongs to. Retrieve data from backup: If you wish to roll-back a corrupted data file, just replace the original file with the latest error-free backup copy. Before doing so, please ensure that the table definition did not change recently (e.g. by adding new fields). In this case, the table definition needs to be set to the configuration of the data file to restore. Important note: Restoring data files should be managed by an experienced system administrator only. In case of emergency, SunnyScript can provide you with special assistance to professionally handle this task (optional fee-based service). Helpful
hint: In order to create a backup of an entire database, you
may use the "Download/upload table package" feature.
|
||||||||||||||||||||||||||||||||||||||||||||
| Database import and export tools... | ||||||||||||||||||||||||||||||||||||||||||||
|
In order to import or export data, click on the button "Import / export data" available on the main admin menu. Import data into database: Click at the button "Start
data import..." to begin reading in an existing 3rd-party database.
Click on the button "Import data" to start the importing process. After it is finished successfully, please check the read in data for consistency first. It is also recommended to keep a backup copy of all original database files for later references. Technical note: Data formats "... with field names" requires that the first line of the importable file holds the names of the fields. Alternatively, default names are chosen you can rename later at any time. Importing already uploaded source files: This feature is useful especially when trying to import huge databases, because the file size allowed to read in through the admin panel may be limited by your server or webbrowsing software... Just place the source file into the directory data/import.tmp. Now go to the admin panel, click on "Import / export data" and select the concerned file from the list (see parameter "Determine data file being uploaded"). Export data from database: Select the appropriate source
table and click on "Continue..." to go to the next screen.
Now click on "Export data" to start the exporting process. A "save file" dialog is shown by your web browsing software to store the exported data file on your computer. Advantages of the "EasyData exchange format": The "EasyData exchange format" is a tab-delimited text-based format also storing binary field content, like images or software files together with the textual data (URL-encoded). Where possible, this format should be used for data import and export tasks to ensure best results when handling non-textual contents (all other supported formats cannot handle binary fields). Technical note: If you are a programmer interested in implementing our exchange format into your own applications, please let us know. We are able to provide you with additional information upon request. Helpful hint: Should you wish to manually back up an entire database or to carry an existing one over to an other EasyData installation, you may decide to create a "table package" as described more closer in the following. Table packages - overview: A table package contains an entire database (the table and all related elements) in one single file (TABLENAME.ede). So table packages are ideally suited for carrying an entire database to an other server or for generating manual backups. Download table package:
Now click on "Download table" to save the table package. A "save file" dialog is shown by your web browsing software. Upload table package:
Now click on "Upload table" to copy the table package to the server. Technical note 1: Should there already exist a table with equal name, EasyData chooses a new name for the uploaded table (may be changed later at "Restructure table" screen). Technical
note 2: The choices "Use internal GZIP compression" respectively
"Use internal GZIP decompression" for table package down- and uploads are
only available, if there is the Perl module "Compress::Zlib" installed.
|
||||||||||||||||||||||||||||||||||||||||||||
| Web-frontend and template management | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
With EasyData it's a matter of just minutes to create new databases and bring them online. We provide the following three ways to access data online and to work with the powerful web-frontend: Important note: Ensure that you are logged out as admin, otherwise you may see a slightly different web-frontend. 1. Pre-defined web-frontend (default template scheme): This is the easiest way, because you just need to add the following URLs as links to your website to allow people working with your tables (depending upon the set configuration). Please refer to the part "Web integration: Embedding EasyData into websites" within this chapter for more details and usage samples of the web-frontend. It's a matter of course, that the default template scheme can be customized (color and font schemes) according your needs achieving a similar layout as the one of your business website... Go to the admin menu, click on the button "Edit templates" and search for "main template" labelled entries. These contains various layout settings taking effect to all sub-templates connected with the concerned main template. 2. Full set of freely configurable templates: Beside of just customizing color and font schemes with style sheet commands, you can create your own set of templates or re-write the standard ones (they are a good basis for your own templates). Each template is written in HTML and contains special tags which will be replaced by appropriate content. There's nothing you cannot customize, however you should have a familiar understanding of EasyData and HTML programming. 3. Integration of EasyData with HTML based forms: Another method is to write
own webpages and use HTML based forms to embed EasyData. Available for
selected actions like searching databases and adding new records. They
can be also used in combination with templates.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Adjust table parameters... | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Choose the desired table and select "Change table parameters and layout" from main admin menu. Table layout parameters:
* These are required (and important) fields; double-check them for containing correct values. Search layout parameters:
* These are required (and important) fields; double-check them for correct values. Categories list layout:
Behavior:
Important note: It is recommended to modify these settings (except moderation request alert / decline note) only if you're an experienced user. These settings can negatively affect the behavior of EasyData. Permissions: Permissions are described closer in the chapter "Advanced features in detail". Menu layout (applicable
to all modes):
Database script pages headers / Login script page headers / Search script pages headers: Customize the headlines of generated pages; also usage of images (IMG tags according HTML) is allowed. Voting and comment parameters / Table automatic maintenance / Password reminder utility / "Send record by e-mail" feature: These settings are described closer in the chapters "Database creation and maintenance" and "Advanced features in detail". Table modifications logging: Check this button in order to log all table modifications (add, update and delete records) to TABLENAME.modif.log located in the "data" directory (TABLENAME is replaced with the name of the concerned table). In this way, you are able to manually recover lost data or track IP addresses of users trying to cheat your system. Technical notes: Content of memo / image / binary field types is not logged. Search requests logging: This setting is described closer in the chapter "Database creation and maintenance". Table automatic maintenance - Log files cleanup: Specify the maximum size of system-generated log files (it is recommended to fill these parameters, otherwise the logs are growing indefinitely). Recommended range: 2048 to 5120 KB. Templates substitution: If you wish to use your own templates instead of the pre-defined ones, please select your desired templates here (more details about templates can be found below). "--use default--" will activate the standard template for concerned output. Helpful hint: If you're unable to find your recently created templates within the lists, hold CTRL or SHIFT key and click on the "Reload" button of your browser software to reload the browser window (to replace an old copy in cache). Table filename substitutions: Important
note: You should be familiar with EasyData, before you modify
these settings. Also please refer to "Helpful hints and technical reference"
for more details.
<TABLENAME>:
Name of the table, concerned file belongs to.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Available templates and basic overview... | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Available templates: There are three kinds of templates: Main templates contain the master layout; sub-templates hold the layout of output blocks appearing in these main templates; independent templates stand alone. A detailed list with comprehensive descriptions of all template files is available from the admin panel (see "Templates editor" screen). Please contact our customer service for pre-sale inquiries asking for this list. Helpful hints: If you create your own template sets, start creating the main templates first to have a better overview. After each single template is ready, run a test-drive to check correct functionality. By the way: We strongly recommend to keep backup copies of the original template files for later referencing purposes. Location of templates: All template files are physically located in the templates directory you specified during installation of EasyData. As long as you create or modify templates using the admin panel, you don't have to care about. However if you create templates manually, you must copy them to this location, because EasyData only recognizes files in this directory. Create templates for your tables: Each table can have its own set of templates - so you are able to run different applications simultaneously on one installation. In order to modify templates or create new ones, go to the admin menu and click on the button "Edit templates". Activate your own templates for a table: Please take a look at the
part "Adjust table parameters" above to see how to select specific templates
for a table.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Customization of templates... | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
As you may have seen above, each template contains special tags in the format <!--$TAGNAME--> which will be replaced by EasyData with appropriate content (like search results or system messages). For some advanced functions, Perl code is used on the templates together with internal script variables. You may just surround these codes with additional HTML tags or modify it as desired (suggested only if you are familiar with Perl). Important notes: Some tags are specific for selected templates. If you add a tag to a template which cannot use it, concerned tag will be simply ignored. However a missing tag can cause that users are not able to get access to selected features. If you wish to customize templates, go to the admin menu and click on the button "Edit templates". List of tags and Perl script variables you can use on templates: A detailed list with comprehensive descriptions of all valid variables and tags is available from the admin panel (see "Templates editor" screen). Please contact our customer service for pre-sale inquiries asking for this list. Expert note: Common script variables available in all templates are $in{<form_var>}, which gives access to form variables submitted by the user (<form_var>) and $namespace->{'TAG'}, which offers access to special tag variables. Helpful hint: An alternative of template modification is to create own HTML based forms. However not all features can be customized in this way. Please refer to the next part for more details. Custom software solutions: Contact
our sales department to request a free quote for our individual programming
and customization services. Our team of experienced programmers and website
designers looks forward to take over your project at affordable rates.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Web integration: Embedding EasyData into websites... | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
The following scheme shows how to create URLs for using EasyData with websites or other online documents:
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Web integration: HTML based forms... | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
General notes: It is recommended to be familiar with HTML programming, before starting to create own forms. Please refer to available literature regarding more information about this issue. Instead of using the POST
form submission method, you can also use GET in most cases.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Web integration: HTML based forms - perform an advanced search... | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
The following HTML commands are required to build an (advanced) search form for your website: 1. FORM action tag: Example: <FORM action="http://www.sunnyscript.com/cgi-bin/ed/search.cgi"
method="POST">
2. Action field: Example: <INPUT name="action"
type="hidden" value="search">
3. Table selector: Example: <INPUT name="tbl"
type="hidden" value="TABLE">
Helpful hint: Make the field visible to allow your users selecting a table. 4. Query field: Example: <INPUT type="text"
name="query" size=25>
5. Optional form fields: By
the way: All valid HTML edit controls can be used for these
search options (e.g. input fields, radiobuttons, selectboxes, ...).
6. "Submit"-Button and end of form tag: Example: <INPUT type="SUBMIT"
value="SUBMIT"> and </FORM>
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Web integration: HTML based forms - add a new record... | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
The following HTML commands are required to build a form for record additions: 1. FORM action tag: Example: <FORM action="http://www.sunnyscript.com/cgi-bin/ed/db.cgi"
method="POST" enctype="multipart/form-data">
2. Action field: Example: <INPUT name="action"
type="hidden" value="add">
3. Table selector: Example: <INPUT name="tbl"
type="hidden" value="TABLE">
Helpful hint: Make the field visible to allow your users selecting a table. 4. Table fields to fill in: Example: <INPUT type="text"
name="field.fieldname" size=25>
Helpful hint 1: If a required field is missing, an error message is shown. In order to prevent this, you may add a pre-set value (like space character) to each field, for example <INPUT type="text" name="field.fieldname" value=" " size=25>. Helpful
hint 2: Using the _expires
system field requires a special value (replace <days> with the # of
days till expiration).
5. "Submit"-Button and end of form tag: Example: <INPUT type="SUBMIT"
value="SUBMIT"> and </FORM>
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Web integration: HTML based forms - rating of resources... | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Beside of achieving a custom layout, this method is also very well suited to allow remote ratings of resources (make the form source public to let people add it to their websites). 1. FORM action tag: Example: <FORM action="http://www.sunnyscript.com/cgi-bin/ed/db.cgi"
method="POST">
2. Action field: Example: <INPUT name="action"
type="hidden" value="rate">
3. Table and record ID: Example: <INPUT name="tbl"
type="hidden" value="TABLE"> and <INPUT name="ID" type="hidden" value="RECID">
4. Rating selectbox: Example: <SELECT name="rating"><option
value="">Please rate<option value="0">0<option value="1">1</SELECT>
5. "Submit"-Button and end of form tag: Example: <INPUT type="SUBMIT"
value="SUBMIT"> and </FORM>
Rating of resources & leaving comments: In addition of just rating resources, you can also allow people to leave comments. Add the following parts after point 4 above. 4.1. Request e-mail address: Example: <INPUT type="text"
name="Email" size=25>
4.2. Request name (required): Example: <INPUT type="text"
name="Name" size=25>
4.3. Request location: Example: <INPUT type="text"
name="Location" size=25>
4.4. Comment text (required): Example: <TEXTAREA name="Comment"
rows=5 cols=30 wrap="physical"></TEXTAREA>
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Web integration: Browse tables with custom visible fields... | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
It may be desired for some applications to show not all fields of a record (as set at "Visible fields"), but just selected ones. EasyData provides the optional argument view_fields available when browsing a table (entire table or category), viewing a particular record detailed or performing a search operation. Important note: In order to avoid abuse, it is not possible for anonymous or registered users to show fields unless they were selected by the admin as being "Visible fields" for concerned view mode (see part "Adjust table parameters" within this chapter). Sample for browsing a
table:
<name>: Desired
table name.
Usage note: This works also when browsing tables by categories. Sample for viewing a record
detailed:
<recID>: Record ID the request is intended for. Sample for performing
a search operation:
Usage
note: For advanced search forms, create a field named view_fields
to use this feature there.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Web integration: Create URLs performing search operations... | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Beside of having forms which allows user determinable search operations, it is also possible to call search.cgi directly in order to perform a search. This is useful to provide text or image based links starting search actions. A sample URL looks like
the following:
The argument "action=search" within the URL is mandatory to indicate a search operation. All other features of performing an advanced search (see above) are also allowed here; just enhance the arguments accordingly. Hexadecimal URL encoding: Within the values of arguments (e.g. filter operations), you must take care about replacing special characters by hexadecimal values (at least all chars having a special meaning to the web browser or server software, like spaces and quotation marks). Sample: http://www.sunnyscript.com/cgi-bin/ed/search.cgi?action=search&tbl=TABLE&filter.name=%3E%3DA+AND+%3CB
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Helpful hints and technical reference | |||||||||||||||||||||||||||
| Internal database handling... | |||||||||||||||||||||||||||
Helpful
hint: If you decide to make manual backups, use either "Download
table package" from "Import / export data" screen or manually download
all files from the concerned table's location.
|
|||||||||||||||||||||||||||
| Forgot your admin password ? | |||||||||||||||||||||||||||
|
If you forgot your admin password, you must remove the admin password file named admin.pass located in "auth" directory (see software directory of EasyData). Then you can set a new password next time you access the admin panel. Technical
note: The admin password cannot be send by the reminder utility,
because it is encrypted for maximum security.
|
|||||||||||||||||||||||||||
| Web-frontend and template translations... | |||||||||||||||||||||||||||
|
The web-frontend of EasyData is fully customizable and translatable by modifying the existing templates accordingly. In addition, also system messages may be translated: In order to translate system messages into your desired language, download the files *.en (located in the software directory), which holds all pre-defined text parts and load them into a text editor. Each language file uses the same structure:
Please change only the part <Translation> while keeping the left-sided ones. After you finished translation, please upload the files to your server and give them a try. Important
note: You should create a backup copy of all original *.en
for later reference.
|
|||||||||||||||||||||||||||
| Field output formatting with display masks... | |||||||||||||||||||||||||||
|
When creating or editing a table field (screen "Field properties"), the parameter "Display mask" allows to treat the field's output in search results by using HTML and Perl commands. So you are able to easily add powerful goodies to your tables. Important note: It is recommended to be slightly experienced in HTML and Perl before working with display masks. Here are some interesting sample applications for the "Display mask" parameter: 1. Link a field with the
content of an other field (URL or e-mail address):
Usage note: Sample above will link the content of the field business_name with the field URL. Please note that any existing content of the field holding this display mask is ignored for the output (but not for search operations). 2. Link a field to perform
search operation based upon a current record's field value:
Usage note: Sample above will show the string "Personal details" as hyperlink to process a search for table second_table which bases upon the field userid (must be a valid field of the actual table; field value will be URL encoded). Please note that the content of the field holding this display mask is ignored for the output. Helpful hint: This is a great method to connect multiple tables; e.g. one table holds projects data and the second one personal details about persons participating in these projects. Depending upon delivered search results, personal details can be viewed although not stored in the originally searched table. 3. Show default text in
case of an empty field value:
Usage note: Sample above will show "No data available" if there is no field value. 4. Show default picture
in case of an empty image typed field:
Usage note: Sample above will show the image www.sunnyscript.com/sunny.gif if the field my_picture is empty. 5. Use different text
colors for particular alphanumerical field content:
Usage note: Sample above will use green text color for value "OK" and red text color for value "ERROR". Not matching content is displayed in the standard color (e.g. black). 6. Use different text
color for particular numerical field content:
Usage note: Sample above will use green text color for positive values and red text color for negative values. 7. Link a field to display
its record showing selected fields only / to perform a new search (on a
given table):
Usage note: Replace "usertable" with the desired table name and specify within the argument &view_fields the fields to display. 8. Format field output
with HTML tags:
Usage note: Just surround "$value" with HTML tags to format the output of the concerned field. However it is important to close all HTML tags again (see sample 2), otherwise the formatting you set here may take also effect to the following displayed fields. 9. Show uploaded images
in fixed dimensions:
Usage note: Sample above will show the image stored in my_picture in dimensions of 150*50 pixels. 10. Display an image as
one field's value when value of an other field contains a specific string:
Usage note: Sample above will show the image sunnyscript.com/sunny.gif at the field holding this display mask, if the field show contains the string "yes" (otherwise current field is left empty). 11. Calculate with fields
(adding up numerical fields):
Usage note: Sample above adds up numerical values stored at field1, field2 and field3 and shows the result at the field holding this display mask. Helpful
hint: Similar to above, you can also create other spreadsheet-like
calculations, e.g. average value or loan interest.
|
|||||||||||||||||||||||||||
| Edit control alterations using edit control templates... | |||||||||||||||||||||||||||
|
On the screen "Field properties" you can adjust the default edit control definitions (parameter "Edit control template") using Perl expressions. This feature is recommended for experienced users having some Perl knowledge. Important note: It is recommended to be slightly experienced in HTML and Perl before working with edit control templates. Here are some interesting sample applications for the "Edit control template" parameter: 1. Set font within a "text
input control" box:
2. Set wrap attribute
at a "text area" multi-line text box:
3. Tables interaction - drop-down list: The following edit control
template is intended for a drop-down list using values from an outside
table.
Replace <source_table>, <source_field|2> placeholders with appropriate table and field names to take values from. 4. Tables interaction - "text input with dropdown list" typed edit control: As sample before, but this
one uses the more complex JavaScript-powered edit control.
Replace <source_table>
and <source_field>
placeholders with appropriate table and field name to take values from.
|
|||||||||||||||||||||||||||
| Custom field validations (Perl expressions)... | |||||||||||||||||||||||||||
|
On the screen "Field properties" you can specify own format definitions (parameter "Verification rules") using Perl expressions. This feature is recommended for experienced users having some Perl knowledge. Important notes: System fields cannot have custom formats; data type "text" is mainly recommended for table fields with customized format definitions. It is recommended to be slightly experienced in Perl before working with custom verifications. Furthermore it is possible to specify a custom error message shown when the verification failed (used instead of the default one "Field ... doesn't match format of this field."): format:<regular expression>::<custom error message>. Here are some interesting sample applications for the "Verification rules" parameter: 1. Check for local/nationwide
US telephone numbers - 123-456-7890 or 1234567890:
2. Check for weekdays
input (or any other specified values) - Mon, Tue, Wed, Thu, Fri, Sat or
Sun:
3. Check for correct currency
input (multiple digits followed by point and two digits) - e.g. 123.45:
4. Check that exactly
three items of a multi-selectlist are chosen (incl. custom error message):
By the way: Alternatively you can also use a default value or descriptive comment to tell other people working with the database about required field content (although verification rules should be preferred). Verification of European data formats: And here are some useful verification strings of data formats commonly used by European countries... 1. European date format
- DD.MM.YYYY:
2. European time format
- hh.mm.ss:
3. European date/time
format - DD.MM.YYYY hh.mm.ss:
|
|||||||||||||||||||||||||||
| Interaction between tables... | |||||||||||||||||||||||||||
|
EasyData provides many ways allowing tables to interact with each other. In the following, we have shortly written together all possibilities and their references within this handbook. Search operations over multiple tables: See chapter "Web-frontend and template management", part "Web integration: HTML based forms - perform an adv. search". Merging two (or more) tables, also partial: See chapter "Advanced features in detail", part "Database import and export tools" (feature "Import data into database"). Tables sharing one data file: See chapter "Web-frontend and template management", end of part "Adjust table parameters". Important note: This feature is intended for advanced users only. Edit controls with values from different table: See samples at chapter "Helpful hints and technical reference", part "Edit control alterations using edit control templates". Important note: This feature is intended for advanced users only. Links used as record fields to start various actions at other tables: See samples at chapter "Helpful hints and technical reference", part "Field output formatting with display masks". Important
note: This feature is intended for advanced users only.
|
|||||||||||||||||||||||||||
| Some collected tips and tricks... | |||||||||||||||||||||||||||
|
"Catch all user records" after login: If you allow users owning records, you may wish to provide also the possibility showing all owned records after an user logged in (this is especially useful to provide direct editing of records and record renewals). Go to the screen "Table parameters"
and look for a parameter called "After logging in redirect user to this
URL" (located within the "Behavior" part). Replace the active template
parameter with the following line:
When using _login
alternatively to _email
for record owner logins, the active template parameter must contain this
line:
Pre-requisite: System field _email (or _login) must be made searchable. Now all registered users will see their assigned records directly after logging in, but can also use all other database features of course (technically, just a search for assigned records is done after login). Helpful hint: Alternatively users can search for their e-mail address or login information also manually. Categories or multiple tables ? During database planning you may ask yourself either to create one table with categories or multiple tables (each table stands for a main category) connected together as described in the part "Interaction between tables" of this chapter. Generally it is advised to create multiple tables when having a large database (10.000+ records) to improve performance during search operations. Otherwise a category-based one-table system may be more convenient. More useful technical notes: Each unique record can belong to multiple categories. If a record belongs to more than one category, it will be counted to the primary category (the first in range selected for the concerned record). When displaying search results or while browsing a category, also records from sub-categories are displayed (if search criteria applies to them). Uncheck the option "Show subcategory entries" to disable this feature. If a record is currently in moderation queue, expiration of record is blocked unless moderation is done (moderation has a higher priority compared to expiration). Merging two (or more) tables can be done by using the import/export feature for reading in one table's contents into an other's. During import, select "Append new records and update existing ones" option for the targeted table. Should you wish to deactivate an entire table temporarily for being accessed over the web, simply uncheck all permissions (for both, anonymous and registered users). By doing so, only the admin is allowed to see it. In order to achieve different views of one table, use "Table filename substitutions" settings: One datafile is shared by two table definition files (sample applications: printable versions of records, making some information of a table only available to registered members). However note that field structure is required being the same for tables connected together in this way. EasyData is also the ideal
solution to manage binary content (like software and cliparts). Use fields
of binary type to store all kinds of files and provide advanced search
abilities to your users - create image archives, software resources and
more !
|
|||||||||||||||||||||||||||
| Customer services |
|
Depending upon your license type, this software package includes various support services. Please refer to the license document or visit our website for more information about available services. Before you contact our customer service department, please read this manual first. In most cases you find the answer here. However if you still experience problems, we will be more than happy to help you... For all support inquiries, please contact support@sunnyscript.com and provide the following information: * The license number of the
concerned product.
|
|
|
| © SunnyScript
- A subsidiary of Star Enterprise.
Visit the
SunnyScript website.
Please read our terms of business located at... http://www.sunnyscript.com/terms.htm |