-
- Preview browser
- Page designer
- DQL editor
- Application wide settings
- Security settings
- Page caching module
- Modules
- Snippets
- Actions
- Context editor
- Task editor
- Scheduler editor
- Search engine editor
- Web server console
- Site layout editor
- Template editor
- Robots editor
- Style definitions
- Database manipulation
- Table designer
- Transfer editor
- Reporter
- Deployment module
- Deployment server settings
- Debugger
- .end
- .form header
- .form trailer
- .items
- assign
- application status
- backup db
- begin transaction
- break
- call menu
- call program
- case
- cluster by
- commit
- connect
- copy all from
- data-entry
- db status
- delete records
- define
- disconnect
- do
- documents
- exec SQL
- else
- end
- enter a record
- error messages off
- error messages on
- exit
- export
- for
- global
- if
- import
- imports
- in
- input using
- install application
- into
- list records
- lock
- lock db
- modify records
- message
- named
- others
- prompt
- query selection
- record entry
- records
- reorganize
- restore db
- rollback
- run procedure
- servers
- temp
- then
- tran off
- tran on
- unclustered
- unlock
- unlock db
- via form
- while
- with
- abs
- acos
- addressof
- ampm
- anylookup
- asin
- atan
- atan2
- ceil
- CHR
- concat
- ConsoleCopy
- ConsoleMemoCopy
- ConsoleShow
- ConsoleWriteToFile
- cos
- cosh
- date
- DatePicker
- day
- DEOS
- DialogOpen
- DialogOpenRelated
- DocumentCloseName
- DoesObjectExist
- ExecDQL
- ExecuteFile
- exp
- FileExecDQL
- firstc
- firstlast
- firstw
- FixedWidth
- floor
- futurevalue
- GetCurrent
- GetVar
- hours
- if
- installment
- jointext
- julian
- lastc
- lastfirst
- lastw
- length
- log
- log10
- lower
- MemoChunk
- MemoCopy
- MemoDecodePair
- MemoExecDQL
- MemoFind
- MemoGetGlobal
- MemoLength
- MemoMemoCopy
- MemoMemoReplace
- MemoReadFromFile
- MemoReplace
- MemoSetGlobal
- MemoStringBetween
- MemoStringFrom
- MemoStringTo
- MemoWordCount
- MemoWriteToFile
- midc
- midw
- minutes
- mod
- month
- OpenForm
- OpenMenu
- OpenProcedure
- OpenReport
- periods
- power
- presentvalue
- proper
- random
- rate
- RefreshForm
- RefreshScreen
- RefreshStatus
- Remote
- Remote authentication
- Remote POP3
- Remote IMAP
- Remote SMTP
- Remote XML
- seconds
- SetColor
- SetCurrent
- SetFocus
- SetLabelText
- SetMemoValue
- SetState
- SetStyle
- SetValue
- SetVar
- sin
- sinh
- spellcurrency
- spelldate
- spellmonth
- spellnumber
- spellweekday
- sqrt
- StringBetween
- StringEscape
- StringFind
- StringFrom
- StringReplace
- StringTo
- tan
- tanh
- textpos
- timeampm
- ToText
- UniqueID
- upper
- Wait
- weekday
- WriteToFile
- year
- yearday
- yearweek
- " (quotation marks)
- () (parentheses)
- + (addition)
- , (comma)
- - (subtraction)
- . (period)
- -- (comment)
- / (division)
- * (multiplication)
- * (asterisk)
- ? (question mark)
- ~ (tilde)
- : (colon)
- := (assignment operator)
- ; (semicolon)
- < (less than)
- <= (less than or equal to)
- = (equals)
- > (greater than)
- >= (greater than or equal to)
- all
- all files
- and
- any
- between
- blank
- count
- count of
- file
- highest of
- in groups
- in groups with group-totals
- in order
- in reverse
- item (Statistical)
- item (Conditional Statistical)
- lock files
- lock nothing
- lock records
- lookup
- lowest of
- max
- mean
- mean of
- min
- not
- number
- numeric string
- or
- pause
- percent
- selected record
- std.dev.
- std.err.
- sum
- sum of
- text
- time
- to
- variance
- window
- Rules for queries
- * (asterisk)
- ? (question mark)
- ~ (tilde)
- and
- or
- not
- ( ) (parentheses)
- Debug querys
- Livetext tags
- xdg3 query
- Sessions
- Pagination
- Free text search
- Intro on fields
- Text
- Hidden
- Date
- Dropdown
- List
- Checkbox
- Radio button
- Text edit
- Redactor (richtext)
- CKEditor
- TinyMCE
- Intro
- hasPrismConnection
- doAction
- doDerivation
- doMenuItem
- doPrismDerivation
- setFormField
- runPrismFunction
- @GetDefinition
- . document
- . listcommands
- . listdocuments
- . listdrives
- . listfiles
- . listfunctions
- . listinternals
- . listoperators
- . listrelated
- . listtables
- . object
- . table
- . testdql
- @SetDefinition
- . document
- . object
- Extra modules intro
- python
- Qt
- wkhtmltopdf
- PySide
- PyXCC
- django
- Apache
- LightTPD
- nginx
- pywin32
- flup
- cssutils
- Pillow
- psutil
- mysqldb
- psycopg2
- pyodbc
- python_dateutil
- requests
- suds-ews
- setuptools
- Whoosh
- wmi
- django-send
- bootstrap
- bootstrapmultiselect
- jquery
- jqueryui
- ckedit
- tinymce
- redactor
- JavaScript EU VAT Number Validation
- feedparser
- beautifulsoup
- appsdir
- six
- pycparser
- pyOpenSSL
- cryptography
- cffi
- enum34
- pyasn1
- idna
- ipaddress
- PyYAML
- coverage
- coveralls
- docopt
- mock
- funcsigs
- pbr
- nose
- paypalrestsdk
- paypal
- libcurl
- 7zipcpp
- cef
- cpp-jwt
Modules
Modules are the most advanced kind of extension. If can hold libraries of different kinds like javascripts, python modules, css and pages. It can be complete applications ready for you to extend. All code libraries are copied each time you deploy, but pages and the likes are only copied the first time to make you able to do your changes without loosing them. Not all modules have forms, but the ones that do, will copy them into a folder with the same name as the module it self.
Format of the config file
The config file is a dict in a special format and stored in a file that must be named module.conf and lie in the root of the extension directory.
""" This is telling what the module is and is also the info showing up in documentation if you do not supply a special help file. """ version = '1.0.0' title = 'Module heading in the documentation' dependencies = { 'python' : ['modulename',], 'javascript' : [], 'css' : [], 'modules' : [], 'snippets' : [], 'actions' : [], } libraries = { 'python' : { 'modulename' : { 'sortorder' : 200, 'module' : 'pythonfilenamewithoutextention', }, }, 'assets' : { 'assetname' : { 'sortorder' : 105, 'filedirectory' : 'modules:assetdirectory/', }, }, 'js' : {}, 'css' : {}, } definitions = { 'alwaysinclude' : True, 'settingsdef' : 'module:ModuleSettings', 'settings' : { 'DEFAULT_FROM_EMAIL' : '@settings.emailfrom', 'EMAIL_HOST' : '@settings.emailsmtpserver', 'EMAIL_PORT': '@settings.emailsmtpport', 'EMAIL_HOST_USER': '@settings.emailsmtpuser', 'EMAIL_HOST_PASSWORD' : '@settings.emailsmtppassword', 'EMAIL_USE_TLS': '@settings.emailsmtpusetls', }, } defaultsettings = { 'emailtype' : 'send', #'read' 'both' 'emailfrom' : 'yourname@example.com', 'emailsmtpserver' : 'mail.example.com', 'emailsmtpport' : 25, 'emailsmtpuser' : 'yourmailuser', 'emailsmtppassword' : 'secretpassword', 'emailsmtpusetls' : False, }
Each section is another dict that holds definition in a specific format.
Format of the setting form
The settings form is like any other form in DG3, it contain a comment of what it is, a title and a form element.
""" Config form for mailhandling """ title = 'Mail handling config' form = { 'type' : 'page', 'title' : 'Configuration', 'stretch' : True, 'elements' : [ { 'type' : 'label', 'html' : '<b>Settings for mailhandling</b>', }, { 'type' : 'page', 'layout' : 'lineform', 'elements' : [ { 'type' : 'field', 'label' : 'EMail from', 'input' : {'type' : 'lineedit',}, 'datamap' : { 'type' : 'direct', 'readon' : 'load', 'writeon' : 'losefocus', 'toupdate' : '@emailfrom', }, }, { 'type' : 'field', 'label' : 'SMTP server', 'input' : {'type' : 'lineedit',}, 'datamap' : { 'type' : 'direct', 'readon' : 'load', 'writeon' : 'losefocus', 'toupdate' : '@emailsmtpserver', }, }, { 'type' : 'field', 'label' : 'SMTP port', 'input' : {'type' : 'lineedit',}, 'datamap' : { 'type' : 'direct', 'readon' : 'load', 'writeon' : 'losefocus', 'datatype' : 'int', 'toupdate' : '@emailsmtpport', }, }, { 'type' : 'field', 'label' : 'SMTP user', 'input' : {'type' : 'lineedit',}, 'datamap' : { 'type' : 'direct', 'readon' : 'load', 'writeon' : 'losefocus', 'toupdate' : '@emailsmtpuser', }, }, { 'type' : 'field', 'label' : 'SMTP password', 'input' : {'type' : 'lineedit',}, 'datamap' : { 'type' : 'direct', 'readon' : 'load', 'writeon' : 'losefocus', 'toupdate' : '@emailsmtppassword', }, }, { 'type' : 'field', 'label' : 'SMTP use TLS', 'input' : {'type' : 'checkbox',}, 'datamap' : { 'type' : 'direct', 'readon' : 'load', 'writeon' : 'changed', 'datatype' : 'bool', 'toupdate' : '@emailsmtpusetls', }, }, ], }, ], }
The example in this document are taken from the mailhandling module.
The names for the fields in the settings document are the same as the one you find in definition and in default settings. The default settings are set as default values when the module is activated by the user. All setting is then added as settings to the Django settings module with the name corresponding to name given in setting:
'EMAIL_HOST' : '@settings.emailsmtpserver' can be found in the Django settings as EMAIL_HOST = "mail.example.com" in this case.