System Architechture
1. Modules
Modules are the basic building blocks of UNA CMS.
1.1 Basic Module Concepts
- The fundamental unit is the module (class
BxDolModule) - Create a module object:
$oModule = BxDolModule::getInstance($sModuleName);
1.2 Module Interfaces
Modules can inherit multiple interfaces:
- Profile: Check with
bx_srv('system', 'is_module_profile', $sModuleName) - Context: Check with
bx_srv('system', 'is_module_context', $sModuleName) - Content: Check with
bx_srv('system', 'is_module_content', $sModuleName)
1.3 Base Module Classes
These abstract classes contain common functions for inherited modules:
BxBaseModGeneralModule extends BxDolModuleBxBaseModGroupsModule extends BxBaseModProfileModuleBxBaseModNotificationsModule extends BxBaseModGeneralModuleBxBaseModProfileModule extends BxBaseModGeneralModule implements iBxDolContentInfoService, iBxDolProfileServiceBxBaseModTextModule extends BxBaseModGeneralModule implements iBxDolContentInfoService
1.4 Available Modules
- bx_timeline
- bx_spaces
- bx_posts
- bx_polls
- bx_photos
- bx_persons
- bx_notifications
- bx_organisations
- bx_messenger
- bx_invites
- bx_groups
- bx_files
- bx_events
- bx_channels
Notable Module Fields
- bx_persons:
- id, fullname, last_name, gender, birthday (date), added (timestamp)
- bx_organisations:
- id, org_name, added (timestamp)
2. Accounts and Profiles
2.1 Accounts (BxDolAccount)
- Basic user unit in the system
- Each account is associated with a unique email
- Create an account object:
$oAccount = BxDolAccount::getInstance($mixedAccountId)$mixedAccountIdcan be email (string) or account_id (int)
Key BxDolAccount Methods
getInfo($iAccountId=false): Returns array with account info (id, name, email, email_confirmed, added)id(): Get account IDisConfirmed($iAccountId=false): Check if account is confirmedupdateEmailConfirmed($isConfirmed, $isAutoSendConfrmationEmail=true, $iAccountId=false)updatePassword($sPassword, $iAccountId=false)sendConfirmationEmail($iAccountId=false)getEmail($iAccountId=false)isOnline($iAccountId=false)delete($bDeleteWithContent=false)
2.2 Profiles (BxDolProfile)
- One account can have multiple profiles of different types
- Create a profile object:
$oProfile = BxDolProfile::getInstance($iProfileId); - Get current user's profile ID:
bx_get_logged_profile_id()
Key BxDolProfile Methods
getInfo($iProfileId=0): Returns array with profile info (id, account_id, type, content_id, status)id(): Get profile IDgetAccountId($iProfileId=false)getAccountObject($iProfileId=false)getContentId()isActive($iProfileId=false)getDisplayName($iProfileId=0)getUrl($iProfileId=0)getPicture($iProfileId=0)getAvatar($iProfileId=0)delete($ID=false, $bDeleteWithContent=false, $bForceDelete=false)
3. System Functions
3.1 Sending Emails
function sendMail($mRecipientEmails, $sMailSubject, $sMailBody, $iRecipientID = 0, $aPlus = array(), $iEmailType = BX_EMAIL_NOTIFY, $sEmailFlag = 'html', $isDisableAlert = false, $aCustomHeaders = array(), $bAddToQueue = false)
3.2 Sending Messages in Messenger
bx_srv('bx_messenger', 'send_message', [$iRecipient, $sMessage, $iSenderId]);
3.3 Alerts/Triggers
Alerts are triggers activated by certain events to modify data or call additional functions.
function bx_alert($sUnit, $sAction, $iObjectId, $iSender = false, $aExtras = array())
{
$o = new BxDolAlerts($sUnit, $sAction, $iObjectId, $iSender, $aExtras);
$o->alert();
}
Parameters:
$sUnit: system type$sAction: system action$iObjectId: object id$iSender: sender (action's author) profile id$aExtras: extra parameters