2023年5月20日 星期六

了解一下 Scriptcase 的資料夾結構(目錄結構)

由於 Scriptcase 是一個程式產生器,他被設計得極其複雜。經常會有許多不可預期的 BUGS、說明文件缺乏、技術支援不足(技術支援還要額外付費!)等!令人又愛又恨!

站在使用工具的角度來看,Scriptcase 是一個好用但有缺陷的工具,我們使用的人,就要充分了解這個工具的特性、長處、缺點。

了解SC的目錄結構,有助於我們對工具的了解。

參考這篇:

https://medium.com/mestre-scriptcase/entendendo-a-estrutura-de-pastas-do-scriptcase-4eb15a759589

https://miro.medium.com/v2/resize:fit:640/format:webp/1*wyNN2WDB4REdB_w4AEd0Tw.png

其中:

app/

Stores everything generated by the project, from application source code to libraries, themes, langs and other assets. This directory is only for a preview of what is being developed, not for backups or production purposes.

The structure of this folder is defined as:

<nome do projeto>: Applications source code.
<nome do projeto>/_lib/buttons: Button theme.
<nome do projeto>/_lib/chart: Graphic themes.
<nome do projeto>/_lib/css: Application themes.
<nome do projeto>/_lib/font: Report PDF and Captcha fonts.
<nome do projeto>/_lib/friendly_url: Application friendly URLs.
<nome do projeto>/_lib/googlefonts: Google Fonts of the themes.
<nome do projeto>/_lib/img: Screenshots of applications.

Inside the directory <nome do projeto>/_lib/imgwe have the following file structure:

img/grp__NM__bg__NM__*: Project-level background images.
img/grp__NM__btn__NM__*: Images of project-level buttons.
img/grp__NM__ico__NM__*: Project-level icons.
img/grp__NM__img__NM__*: General images at project level.
img/grp__NM__menu_img__NM__*: Project-level menu images.
img/grp__NM__helpcase__NM__*: Helpcase images at project level.
img/scriptcase__NM__bg__NM__*: Background images at Scriptcase level.
img/scriptcase__NM__btn__NM__*: Images of buttons at Scriptcase level.
img/scriptcase__NM__ico__NM__*: Scriptcase level icons.
img/scriptcase__NM__img__NM__*: General images at Scriptcase level.
img/scriptcase__NM__menu_img__NM__*: Menu images at Scriptcase level.
img/sys__NM__bg__NM__*: Public level background images.
img/sys__NM__btn__NM__*: Public level button images.
img/sys__NM__ico__NM__*: Public level icons.
img/sys__NM__img__NM__*: General images at public level.
img/sys__menu_img__NM__*: Screenshots of the public menu.
img/usr__NM__bg__NM__*: User-level background images.
img/usr__NM__btn__NM__*: Images of user-level buttons.
img/usr__NM__ico__NM__*: User-level icons.
img/usr__NM__img__NM__*: General user-level images.
img/usr__NM__menu_img__NM__*: User-level menu screenshots.

Back in the directory <nome do projeto>/_lib/we have this structure:

js: Notifications Javascript messages.
lang: Application messages.
lib: Scriptcase Assets.
libraries: Project external libraries.

We will not <nome do projeto>/_lib/librariessee the following:

grp: Project level.
scriptcase: Scriptcase level.
sys: Public level.
usr: User level.

Going back to <nome do projeto>/_lib/, this is the structure:

menuicons: Menu icons.
oauth: Google Calendar key.
profile_api.conf.php: Project APIs.

backup/
Stores all exports that were imported into Scriptcase, from projects to general backup. In this directory we find backup/scriptcase that serves to create copies of the Scriptcase database. This procedure is only applied for standard installations done in SQLite.

devel/
Stores all files used by Scriptcase for project development . It also consists of storing all assets saved at the Scriptcase, project, user and public level.

The structure of this folder is defined as:

[SCRIPTCASE]
devel/conf/scriptcase/nm_scriptcase.db : Scriptcase's SQLite database when installed by default.
devel/conf/scriptcase/scriptcase.config.php: Scriptcase administrative settings.
devel/conf/scriptcase/fix.php: Fixes executed by Scriptcase.

Note: Fixes are Scriptcase scripts executed after certain updates, in order to update old applications with new features.

devel/conf/scriptcase/api: Profiles of Scriptcase APIs.
devel/conf/scriptcase/chart: Theme profiles for Scriptcase graphics.
devel/conf/scriptcase/css: CSS and Scriptcase Fonts.
devel/conf/scriptcase/googlefonts: Google Fonts from Scriptcase.
devel/conf/scriptcase/hotkeys: Scriptcase shortcut key profiles.
devel/conf/scriptcase/img: Scriptcase images.
img/bg: Scriptcase background images.
img/btn: CSS for Scriptcase buttons.
img/ico: Scriptcase icons.
img/img: General images of Scriptcase.
devel/conf/scriptcase/lib: Scriptcase internal libraries.
devel/conf/scriptcase/libraries: Scriptcase external libraries.
devel/conf/scriptcase/lookup_def: Scriptcase manual lookup profiles.
devel/conf/scriptcase/menu: Scriptcase menu themes.
devel/conf/scriptcase/precodes: Inserts Code of Scriptcase events.
devel/conf/scriptcase/schema: Scriptcase project themes.
devel/conf/scriptcase/schemas: Old Graphics, HTML Editors and Scriptcase Menu Icons.
schemas/charts: Old Scriptcase graphics themes.
schemas/editor_html: Profiles of Scriptcase HTML editors.
schemas/menu: Scriptcase menu icon themes. devel/conf/scriptcase/snippets: Profiles of Scriptcase snippets.
devel/conf/scriptcase/tpl: Scriptcase HTML Templates.
tpl/header: Scriptcase header HTML templates.
tpl/footer: Scriptcase footer HTML templates.
tpl/free: Free format HTML templates from Scriptcase.
tpl/helpcase: Scriptcase Helpcase headers HTML templates.
devel/conf/scriptcase/securitymodule: Scriptcase security module profiles.

[PROJECT]
devel/conf/grp/<nome do projeto>/api : Project API profiles.
devel/conf/grp/<nome do projeto>/chart: Theme profiles for project graphics.
devel/conf/grp/<nome do projeto>/googlefonts: Google Fonts for the project.
devel/conf/grp/<nome do projeto>/hotkeys: Project shortcut key profiles.
devel/conf/grp/<nome do projeto>/img: Project images.
img/bg: Project background images.
img/btn: Project buttons CSS.
img/ico: Project icons.
img/img: General images of the project.
devel/conf/grp/<nome do projeto>/lib: Project internal libraries.
devel/conf/grp/<nome do projeto>/libraries: Project external libraries.
devel/conf/grp/<nome do projeto>/lookup_def: Project manual lookup profiles.
devel/conf/grp/<nome do projeto>/menu: Project menu themes.
devel/conf/grp/<nome do projeto>/schema: Themes of the project's projects.
devel/conf/grp/<nome do projeto>/schemas: Old Graphics, HTML Editors and Project Menu Icons.
schemas/charts: Project old graphics themes.
schemas/editor_html: Profiles of the project's HTML editors.
schemas/menu: Design menu icon themes.
devel/conf/grp/<nome do projeto>/snippets: Project snippet profiles.
devel/conf/grp/<nome do projeto>/tpl: Project HTML templates.
tpl/header: Project header HTML templates.
tpl/footer: Project footer HTML templates.
tpl/free: HTML templates of free project formats.
tpl/helpcase: Project Helpcase header HTML templates.
devel/conf/grp/<nome do projeto>/securitymodule: Project security module profiles.

[PUBLIC]
devel/conf/sys/api : Public API profiles.
devel/conf/sys/chart: Theme profiles for public graphics.
devel/conf/sys/googlefonts: Public Google Fonts.
devel/conf/sys/hotkeys: Public hotkey profiles.
devel/conf/sys/img: Public images.
img/bg: Public background images.
img/btn: CSS for public buttons.
img/ico: Public icons.
img/img: Public general images.
devel/conf/sys/lib: Public internal libraries.
devel/conf/sys/libraries: Public external libraries.
devel/conf/sys/lookup_def: Public manual lookup profiles.
devel/conf/sys/menu: Public menu themes.
devel/conf/sys/schema: Themes of public projects.
devel/conf/sys/schemas: Old Graphics, HTML Editors and Public Menu Icons.
schemas/charts: Public old graphics themes.
schemas/editor_html: Profiles of public HTML publishers.
schemas/menu: Public menu icon themes.
devel/conf/sys/snippets: Public snippet profiles.
devel/conf/sys/tpl: Public HTML templates.
tpl/header: Public header HTML templates.
tpl/footer: Public footer HTML templates.
tpl/free: Public free format HTML templates.
devel/conf/sys/securitymodule: Public security module profiles.

[USER]
devel/conf/usr/<nome do usuário>/api : User API profiles.
devel/conf/usr/<nome do usuário>/chart: Theme profiles for user graphics.
devel/conf/usr/<nome do usuário>/googlefonts: User's Google Fonts.
devel/conf/usr/<nome do usuário>/hotkeys: User hotkey profiles.
devel/conf/usr/<nome do usuário>/img: User images.
img/bg: User background images.
img/btn: CSS for user buttons.
img/ico: User icons.
img/img: General user images.
devel/conf/usr/<nome do usuário>/lib: Internal user libraries.
devel/conf/usr/<nome do usuário>/libraries: External user libraries.
devel/conf/usr/<nome do usuário>/lookup_def: User manual lookup profiles.
devel/conf/usr/<nome do usuário>/menu: User menu themes.
devel/conf/usr/<nome do usuário>/schema: User project themes.
devel/conf/usr/<nome do usuário>/schemas: Old Graphics, HTML Editors and User Menu Icons.
schemas/charts: User old graphics themes.
schemas/editor_html: User HTML editor profiles.
schemas/menu: User menu icon themes.
devel/conf/usr/<nome do usuário>/snippets: User snippet profiles.
devel/conf/usr/<nome do usuário>/tpl: User HTML templates.
tpl/header: User header HTML templates.
tpl/footer: User footer HTML templates.
tpl/free: Free user format HTML templates.
devel/conf/usr/<nome do usuário>/securitymodule: User security module profiles.

doc/
Stores Scriptcase documentation.

examples/
Stores all Scriptcase example projects along with their CREATE TABLE for SQLite and MySQL .

file/
Stores files imported by the Document (File Name) and Image (File Name) fields . This directory is for testing in development only. For advanced publishing, it is recommended that the paths defined for production are applied during publishing.
For typical publishing, the paths are in _lib/file.

log/
Stores the logs generated by Scriptcase. For folder exceptions below, the log is generated in scriptcase/tmp .

The structure of this folder is defined as:
log/iface: User actions in Scriptcase.
log/upd: Automatic updates
log/fix.log: Fixes executed after update.

prod/
Stores production environment. Used to connect what is generated in scriptcase/app and generate a production environment during project publication.

The structure of this folder is defined as:

prod/cep: Files for searching CEP type fields.
Note: Only available in pt_br installation.
prod/third: Third-party libraries used by generated applications.

tmp/
Stores temporary files created during use. Files range from interface errors to data exports in generated applications.

config_.php: Scriptcase database access settings. For standard installations the database is SQLite and is located atscriptcase/devel/conf/scriptcase/nm_scriptcase.db

Note : For security reasons, you need to rename this file to config.phpaccess it through the browser.

diagnosis.php: Diagnosis of the Scriptcase environment containing general server information, from PHP parameters to databases available for connection.

info.php: General PHP information used by diagnostics.

If you found this article helpful, go to the 👏 button and click as many times as you enjoyed reading this post. This will certainly go a long way. Feel free to leave a comment/suggestion. You can also find us on Facebook , Instagram and Youtube . Together for a better Scriptcase!



如何判斷現在FORM是在 insert mode? 還是 update mode?

只要用  if (empty({primary_key})) 就可以知道是否為新增模式了。 如果 {promary_key} 是空白的,那麼就是在新增模式;反之,就是更新模式。 以上。