Skip to content
Products
Docs
Pricing
Blog
Log In
Sign Up
Docs
Docs
CODE
On this page

How to Add an App

File-based steps to add a PHP module (app) in UNA 15, covering folder layout, install SQL, forms, pages, nav, Polyglot, alerts, and hooks.
Android
iOS
Web
Core
~15.0
Source
Copy Page
Note
Important
'type' => BX_DOL_MODULE_TYPE_MODULE,
'name' => 'bx_quoteofday',
'title' => 'Quote of the Day',
'version' => '15.0.1.DEV',
'home_dir' => 'boonex/quoteofday/',
'home_uri' => 'quoteofday',
'db_prefix' => 'bx_quoteofday_',
'class_prefix' => 'BxQuoteOfDay',
'language_category' => 'Quote Of Day',
INSERT INTO `sys_std_pages`(`index`, `name`, `header`, `caption`, `icon`) VALUES
(3, @sName, '_bx_quoteofday', '_bx_quoteofday', 'bx_quoteofday@modules/boonex/quoteofday/|std-icon.svg');

SET @iPageId = LAST_INSERT_ID();

INSERT INTO `sys_std_widgets` (`page_id`, `module`, `type`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`, `featured`)
VALUES(@iPageId, @sName, 'content', '{url_studio}module.php?name=bx_quoteofday', '', 'bx_quoteofday@modules/boonex/quoteofday/|std-icon.svg', '_bx_quoteofday', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}', 0);
bx_alert('bx_posts', 'add', $iPostId, $iProfileId, [
	'content' => $sContent,
	'title' => $sTitle,
	'module' => $this->_oConfig->getName(),
]);
INSERT INTO `sys_alerts_handlers` (`name`, `class`, `file`, `service_call`) VALUES
(@sName, 'BxQuoteOfDayAlertsResponse', 'modules/boonex/quoteofday/classes/BxQuoteOfDayAlertsResponse.php', '');
SET @iHandler := LAST_INSERT_ID();

INSERT INTO `sys_alerts` (`unit`, `action`, `handler_id`) VALUES
('system', 'save_setting', @iHandler);
'relations' => array(
	'bx_timeline',
	'bx_notifications'
),
7w
On this page
Before you startFolder layoutNaming in install/config.phpClassesInstall SQLInstall vs enable vs ActiveFormsPagesNavigationPolyglotAlertsHooks, services, and relationsPermissionsWorked example checklist (Quote of the Day)After Install: Studio buildersRelated
Auto
Introduction
Getting Started
Configuration
Apps
CODE
Developer Architecture
Code Convention
Code Quality
Directory Structure
How to Add an App
Storage System
Common Mistakes
Payment Provider Integration
Module API
iOS Client
NEO Developer
Android Client
Web Client
Contributing
REST API
Analytics Developer
Auth
Connect
'type' => BX_DOL_MODULE_TYPE_MODULE,
'name' => 'bx_quoteofday',
'title' => 'Quote of the Day',
'version' => '15.0.1.DEV',
'home_dir' => 'boonex/quoteofday/',
'home_uri' => 'quoteofday',
'db_prefix' => 'bx_quoteofday_',
'class_prefix' => 'BxQuoteOfDay',
'language_category' => 'Quote Of Day',
INSERT INTO `sys_std_pages`(`index`, `name`, `header`, `caption`, `icon`) VALUES
(3, @sName, '_bx_quoteofday', '_bx_quoteofday', 'bx_quoteofday@modules/boonex/quoteofday/|std-icon.svg');

SET @iPageId = LAST_INSERT_ID();

INSERT INTO `sys_std_widgets` (`page_id`, `module`, `type`, `url`, `click`, `icon`, `caption`, `cnt_notices`, `cnt_actions`, `featured`)
VALUES(@iPageId, @sName, 'content', '{url_studio}module.php?name=bx_quoteofday', '', 'bx_quoteofday@modules/boonex/quoteofday/|std-icon.svg', '_bx_quoteofday', '', 'a:4:{s:6:"module";s:6:"system";s:6:"method";s:11:"get_actions";s:6:"params";a:0:{}s:5:"class";s:18:"TemplStudioModules";}', 0);
INSERT INTO `sys_alerts_handlers` (`name`, `class`, `file`, `service_call`) VALUES
(@sName, 'BxQuoteOfDayAlertsResponse', 'modules/boonex/quoteofday/classes/BxQuoteOfDayAlertsResponse.php', '');
SET @iHandler := LAST_INSERT_ID();

INSERT INTO `sys_alerts` (`unit`, `action`, `handler_id`) VALUES
('system', 'save_setting', @iHandler);