Custom Builders
Custom builders intercept the creation of new Apps, Pages, databases and tables to allow the operation to be handled programmatically and apply developer customizations.
They can be coded in the following languages:
- Lianja (.prg)
- Python (.py)
- JavaScript (.js)
- PHP (.php)
- TypeScript (.ts)
- Lianja Server Pages (.rsp)
They should be located in the builders sub-directory of the Library and are named for the target element along with the default programming language extension.
Windows
Target | Filename |
---|---|
App | C:\lianja\library\builders\app.ext |
Page | C:\lianja\library\builders\page.ext |
Database | C:\lianja\library\builders\database.ext |
Table | C:\lianja\library\builders\table.ext |
Linux
Target | Filename |
---|---|
App | /opt/lianja/library/builders/app.ext |
Page | /opt/lianja/library/builders/page.ext |
Database | /opt/lianja/library/builders/database.ext |
Table | /opt/lianja/library/builders/table.ext |
macOS (From Lianja v6.0)
Target | Filename |
---|---|
App | /Users/Shared/Lianja/library/builders/app.ext |
Page | /Users/Shared/Lianja/library/builders/page.ext |
Database | /Users/Shared/Lianja/library/builders/database.ext |
Table | /Users/Shared/Lianja/library/builders/table.ext |
Custom builders can also be created for a specific project. In this case, prefix the custom builder script with the name of the project. So the Lianja script custom builder for Apps in the myproject project would be:
myproject_app.prg
For example this could be used after the App Wizard completes to set some App attributes for each of the Apps created in a project.
// myproject_app.prg Lianja.writeOutput("Creating new App using the App wizard") // Show the wizard which is modal Lianja.showAppWizard() // after the wizard completes the new App is open if len(Lianja.Application) > 0 Lianja.writeOutput(format("App {0} was created place any post create code here", Lianja.Application)) // set attributes for all the apps created in myproject Lianja.setAttr("pwa", true) Lianja.saveApp() endif
Note the use of desktop Lianja system object methods (introduced in v5.5):
Lianja.saveApp() Lianja.setAttr(name, value) Lianja.showAppWizard()
The corresponding method to get an attribute is also now supported.
Lianja.getAttr(name)
App attribute names can be found here: App Settings.
See Also
App Settings, App Wizard, CREATE DATABASE, CREATE TABLE, Data Files:Databases, Data Files:Tables, Lianja System Object, Lianja Projects, Page Wizard