Elentra Platform Technical Documentation
  • Introduction
  • Reporting Issues
    • Security Notices
  • Administrators
    • Server Requirements
    • Application Server
      • Shibboleth Single Sign-on
      • Installing Supervisor
      • Branded API Setup
      • Installing Mailhog
    • Database Server
  • Developers
    • Getting Started
    • Overview
    • Contributions
      • Request for Change
      • Jira and GitHub Details
      • Coding Standards
      • Quickstart Guide
      • Code Review
    • Database
    • Dataviews for Analytics
    • Global Namespace
    • Elentra ACL
    • Authentication Methods
    • Compatibility Matrix
    • Elentra ME Versions
    • Elentra Settings
    • Elentra Deployment
    • Elentra API
    • Elentra JS
    • Feature Configuration
      • Event Resource Integration
      • Microsoft Teams Integration
    • Troubleshooting & Guides
      • New developer features in Elentra ME 1.22
      • Testing With Codeception
        • Unit Testing
          • Unit Testing Best Practises
          • Writing Unit Testable Code
          • PHPUnit Testing for API
          • PHPUnit Json String Compare Function
        • Functional Testing
          • Functional Testing Best Practices
        • Integration Testing
          • Integration Testing Best Practices
      • Upgrading elentra-developer Docker
      • VS Code Setup
      • Using XDebug in VSCode
      • Upgrading PHP
      • Switching Databases
      • Creating a new virtual host
      • Logging In
      • Composer
      • Curriculum Tag Selector
      • Performance Issues
      • Docker
      • Seed Data Generation
      • Fail Fast Programming
      • Advanced Custom Exception Classes
    • Support
  • Upgrade Guides
    • Upgrading to ME v28.0
    • Upgrading to ME 1.27
    • Upgrading to ME 1.26
    • Upgrading to ME 1.25
    • Upgrading to ME 1.24
    • Upgrading to ME 1.23
    • Upgrading to ME 1.22
    • Upgrading to ME 1.21
    • Upgrading to ME 1.20
    • Upgrading to ME 1.19
    • Upgrading to ME 1.18
    • Upgrading to ME 1.17
    • Upgrading to ME 1.16
    • Upgrading to ME 1.15
Powered by GitBook
On this page
  • Elentra ME
  • Elentra CPD
  • Communities
  1. Developers

Global Namespace

PreviousDataviews for AnalyticsNextElentra ACL

Last updated 6 years ago

Elentra ME

Elentra has many moving parts, and understanding what's available to you as a developer will go a long way to learning Elentra.

Objects

Arrays

Variables

$db (Object)

Available: All Elentra versions

While it is possible to use SQL directly in your code, it is currently considered best practice to access the database through the appropriate model (e.g. Model_Events::get($id)).

Example Usage (Select):

$query = "SELECT * FROM `events` WHERE `event_id` = ?";
$event = $db->GetRow($query, array($event_id));
if ($event) {
  echo "<h1>" . $event["event_title"] . "</h1>";
}

Example Usage (Insert):

$processed = array(
  "event_title" = clean_input($_POST["event_title"], array("nohtml"));
);

if ($db->AutoExecute("events", $processed, "INSERT")) {
  // Event inserted.
}

Example Usage (Update):

$processed = array(
  "course_active" = 0;
);

if ($db->AutoExecute("courses", $processed, "UPDATE", "course_id = " . (int) $id)) {
  // Course updated.
}

$ENTRADA_ACL (Object)

Available: Elentra 1.2+

The $ENTRADA_ACL object allows you to check whether or not a user has access to do something. The [Elentra ACL] is fairly complex, so time should be taken to properly understand how it works.

Example Usage:

if ($ENTRADA_ACL->amIAllowed("event", "create", false)) {
  echo "<a href=\"".ENTRADA_RELATIVE."/admin/events?section=add"\" class=\"btn\">Add Event</a>";
}

Entrada 1.6.1: www-root/core/library/Entrada/authentication/entrada_acl.inc.php

Entrada 1.7.0: www-root/core/library/Entrada/Acl.php

$ENTRADA_CACHE (Object)

Available: Elentra 1.2+

Example Usage:

if (!$ENTRADA_CACHE->test("my-cache-key")) {
  $cached_data = "Please cache and use this.";

  $ENTRADA_CACHE->save($cached_data, "my-cache-key");
} else {
  $cached_data = $ENTRADA_CACHE->load("my-cache-key");
}

echo $cached_data;

$ENTRADA_ROUTER (Object)

$ENTRADA_ROUTER

$ENTRADA_SETTINGS (Object)

$ENTRADA_SETTINGS

$ENTRADA_TEMPLATE (Object)

$ENTRADA_TEMPLATE

$ENTRADA_USER (Object)

Available: Unknown

The $ENTRADA_USER object provides details for the currently logged in user.

Example Usage:

/* Create the $ENTRADA_USER object based on the proxy_id of a user who has successfully logged in. */
$ENTRADA_USER = User::get($proxy_id);

/* Get the logged in user's proxy_id. */
$ENTRADA_USER->getID();

/* Get the logged in user's active proxy id (useful in situations where you expect user masking to occur) but will return the actual proxy_id of the user if masking is not being used. */
$ENTRADA_USER->getActiveId();

/* Get the logged in user's active organisation id */
$ENTRADA_USER->getActiveOrganisation();

Entrada 1.6.1: www-root/core/library/Models/users/User.class.php

$translate (Object)

Available: Elentra 1.3+

Whenever you need to output text on a page you should do so like $translate->_("Your String");. Elentra uses Zend_Translate to support multiple front-end languages, and when you wrap your language strings with the magic _() method your text can be replaced with the correct language.

Example Usage:

<div class="control-group">
  <label class="control-label"><?php echo $translate->_("Course Name"); ?></label>
  ...
</div>

$ONLOAD (Array)

Available: All Elentra versions

The $ONLOAD array allows you to record JavaScript that you would like to run after the DOM load is complete. The elements added to this array during run-time are dynamically added to the bottom of your HTML document within a jQuery(document).ready(function() { ... }); block.

Example Usage:

$ONLOAD[] = "jQuery('#username').focus()";

$JQUERY (Array)

Available: All Elentra versions

The $JQUERY array allows you to manually include additional jQuery libraries in the correct location (i.e. after the main jQuery library, but before other dependencies) between the current page's <head></head> tags. The elements added to this array during run-time replace the %JQUERY% placeholder from the active template's header.tpl.php file.

Example Usage:

$JQUERY[] = "<script src=\"".ENTRADA_RELATIVE."/javascript/jquery/jquery.moment.min.js?release=".html_encode(APPLICATION_VERSION)."\"></script>\n";

$HEAD (Array)

Available: All Elentra versions

The $HEAD array allows you to include additional content between the current page's <head></head> tags. The elements added to this array during run-time replace the %HEAD% placeholder from the active template's header.tpl.php file.

Example Usage:

$HEAD[] = "<script src=\"" . ENTRADA_URL . "/javascript/AutoCompleteList.js?release=" . html_encode(APPLICATION_VERSION) . "\"></script>";

$BREADCRUMB (Array)

Available: All Elentra versions

The $BREADCRUMB array is a multidimensional array that is used to automatically generate a page's breadcrumb trail. You simply add arrays to the $BREADCRUMB array that contain a url and titlekey.

Example Usage:

$BREADCRUMB[] = array("url" => ENTRADA_RELATIVE . "/admin/example", "title" => $translate->_("Example Title"));
$BREADCRUMB[] = array("url" => ENTRADA_RELATIVE . "/admin/example/add", "title" => $translate->_("Add"));

Result:

/ [Example Title](/admin/example) / [Add](/admin/example/add)

$AGENT_CONTACTS (Array)

$AGENT_CONTACTS

$MODULES (Array)

$MODULES

$ADMINISTRATION (Array)

$ADMINISTRATION

$SECTION (Variable)

$SECTION

$ACTION (Variable)

$ACTION

$MODULE (Variable)

$MODULE

Elentra CPD

@todo

Communities

Elentra has many moving parts, and understanding what's available to you as a developer will go a long way to learning Elentra. This page covers the global namespace for the Community system.

Variables

$COMMUNITY_ID (Variable)

Available: All Entrada versions

The $COMMUNITY_ID variable will return the communities.community_id of the community that is currently being accessed by the user.

Example Usage:

echo "You are visiting community ID " . $COMMUNITY_ID . "!";

$COMMUNITY_URL (Variable)

Available: All Entrada versions

The $COMMUNITY_URL variable will return the full URL of this community.

$COMMUNITY_TEMPLATE (Variable)

Available: All Entrada versions

$COMMUNITY_THEME (Variable)

Available: All Entrada versions

$LOGGED_IN (Variable)

Available: All Entrada versions

$COMMUNITY_MEMBER_SINCE (Variable)

Available: All Entrada versions

$COMMUNITY_MEMBER (Variable)

Available: All Entrada versions

$COMMUNITY_ADMIN (Variable)

Available: All Entrada versions

The $db object allows you to access the active Elentra database connection. Elentra uses the library to accomplish this.

Using $ENTRADA_CACHE allows you to easily save and load contents from cache. It extends .

ADOdb
Zend_Cache
$COMMUNITY_ID
$COMMUNITY_URL
$COMMUNITY_TEMPLATE
$COMMUNITY_THEME
$LOGGED_IN
$COMMUNITY_MEMBER_SINCE
$COMMUNITY_MEMBER
$COMMUNITY_ADMIN
$db
$ENTRADA_ACL
$ENTRADA_CACHE
$ENTRADA_ROUTER
$ENTRADA_SETTINGS
$ENTRADA_TEMPLATE
$ENTRADA_USER
$translate
$ONLOAD
$JQUERY
$HEAD
$BREADCRUMB
$AGENT_CONTACTS
$MODULES
$ADMINISTRATION
$SECTION
$ACTION
$MODULE