Skip to content

Commit

Permalink
Added global StartupAPI class with a bunch of static functions
Browse files Browse the repository at this point in the history
Replaced navbox include with StartupAPI::power_strip call
Added StartupAPI::head() function to be called by pages within <head> tag
  • Loading branch information
Sergey Chernyshev committed Sep 12, 2012
1 parent 89e2f3e commit eaf5a3b
Show file tree
Hide file tree
Showing 26 changed files with 142 additions and 104 deletions.
2 changes: 1 addition & 1 deletion Invitation.php
Expand Up @@ -2,7 +2,7 @@
/* /*
* Invitation class * Invitation class
*/ */
require_once(dirname(__FILE__).'/config.php'); require_once(dirname(__FILE__).'/global.php');
require_once(dirname(__FILE__).'/User.php'); require_once(dirname(__FILE__).'/User.php');


class Invitation class Invitation
Expand Down
114 changes: 114 additions & 0 deletions StartupAPI.php
@@ -0,0 +1,114 @@
<?php
require_once(dirname(__FILE__).'/User.php');

/**
* StartupAPI class contains some global static functions and entry points for API
*/
class StartupAPI {
// just a proxy to static methods in User class
static function getUser() {
return User::get();
}

// just a proxy to static methods in User class
static function requireLogin() {
return User::requireLogin();
}

/**
* This finction should be called within the head of HTML to insert
* styles, scripts and potentially meta-tags into the head of the pages on the site
*/
static function head() {
?><link rel="style/css" href="<?php echo UserConfig::$USERSROOTURL ?>/startupapi.css"><?php
}

/**
* This finction renders the power strip (navigation bar at the top right corner)
*/
static function power_strip()
{
$current_user = User::get();
$current_account = null;

$accounts = array();
if (UserConfig::$useAccounts && !is_null($current_user)) {
$accounts = Account::getUserAccounts($current_user);

$current_account = Account::getCurrentAccount($current_user);
}
?>
<div id="userbase-navbox">
<?php if (!is_null($current_user))
{
if ($current_user->isImpersonated()) {
?><b id="userbase-navbox-impersonating"><a href="<?php echo UserConfig::$USERSROOTURL ?>/admin/stopimpersonation.php" title="Impersonated by <?php echo UserTools::escape($current_user->getImpersonator()->getName())?>">Stop Impersonation</a></b> | <?php
}

if ($current_user->isAdmin()) {
?><b id="userbase-navbox-admin"><a href="<?php echo UserConfig::$USERSROOTURL ?>/admin/">Admin</a></b> | <?php
}

if (count($accounts) > 1)
{
$destination = "'+encodeURIComponent(document.location)+'";
if (!is_null(UserConfig::$accountSwitchDestination)) {
$destination = UserConfig::$accountSwitchDestination;
}

?><select id="userbase-navbox-account-picker" name="account" onchange="document.location.href='<?php echo UserConfig::$USERSROOTURL ?>/change_account.php?return=<?php echo $destination ?>&account='+this.value"><?php

foreach ($accounts as $account)
{
?><option value="<?php echo $account->getID()?>"<?php if ($current_account->isTheSameAs($account)) { echo ' selected'; } ?>><?php echo UserTools::escape($account->getName())?></option><?php
}
?></select>
<?php
}

if (!is_null(UserConfig::$onLoginStripLinks)) {
$links = call_user_func_array(
UserConfig::$onLoginStripLinks,
array($current_user, $current_account)
);

foreach ($links as $link) {
?><span<?php
if (array_key_exists('id', $link)) {
?> id="<?php echo $link['id'] ?>"<?php
}
?>><a href="<?php echo $link['url'] ?>"<?php
if (array_key_exists('title', $link)) {
?> title="<?php echo $link['title'] ?>"<?php
}
if (array_key_exists('target', $link)) {
?> target="<?php echo $link['target'] ?>"<?php
}
?>><?php echo $link['text'] ?></a></span> | <?php
}
}
?>

<span id="userbase-navbox-username"><a href="<?php echo UserConfig::$USERSROOTURL ?>/edit.php" title="<?php echo UserTools::escape($current_user->getName())?>'s user information"><?php echo UserTools::escape($current_user->getName()) ?></a></span> |
<span id="userbase-navbox-logout"><a href="<?php echo UserConfig::$USERSROOTURL ?>/logout.php">logout</a></span>
<?php
}
else
{
?>
<span id="userbase-navbox-signup"><a href="<?php echo UserConfig::$USERSROOTURL ?>/register.php">Sign Up Now!</a></span> |
<span id="userbase-navbox-login"><a href="<?php echo UserConfig::$USERSROOTURL ?>/login.php">log in</a></span>
<?php
}
?>
</div>
<?php
}

/**
* This function should be called after all configuration is loaded to initialize the system.
*/
static function _init() {
//currently empty
}
}
2 changes: 1 addition & 1 deletion User.php
Expand Up @@ -2,7 +2,7 @@
/* /*
* User class * User class
*/ */
require_once(dirname(__FILE__).'/config.php'); require_once(dirname(__FILE__).'/global.php');
require_once(dirname(__FILE__).'/Account.php'); require_once(dirname(__FILE__).'/Account.php');
require_once(dirname(__FILE__).'/CookieStorage.php'); require_once(dirname(__FILE__).'/CookieStorage.php');
require_once(dirname(__FILE__).'/CampaignTracker.php'); require_once(dirname(__FILE__).'/CampaignTracker.php');
Expand Down
2 changes: 1 addition & 1 deletion admin/header.php
@@ -1,5 +1,5 @@
<?php <?php
require_once(dirname(dirname(__FILE__)).'/config.php'); require_once(dirname(dirname(__FILE__)).'/global.php');
require_once(dirname(dirname(__FILE__)).'/User.php'); require_once(dirname(dirname(__FILE__)).'/User.php');


$current_user = User::require_login(false); $current_user = User::require_login(false);
Expand Down
2 changes: 1 addition & 1 deletion aggregatepoints.php
@@ -1,6 +1,6 @@
<?php <?php
// This script // This script
require_once(dirname(__FILE__).'/config.php'); require_once(dirname(__FILE__).'/global.php');


function aggregatePoints() { function aggregatePoints() {
$db = UserConfig::getDB(); $db = UserConfig::getDB();
Expand Down
2 changes: 1 addition & 1 deletion change_account.php
@@ -1,5 +1,5 @@
<?php <?php
require_once(dirname(__FILE__).'/config.php'); require_once(dirname(__FILE__).'/global.php');
require_once(dirname(__FILE__).'/User.php'); require_once(dirname(__FILE__).'/User.php');
require_once(dirname(__FILE__).'/Account.php'); require_once(dirname(__FILE__).'/Account.php');


Expand Down
2 changes: 1 addition & 1 deletion dbupgrade.php
Expand Up @@ -6,7 +6,7 @@
* Note: this script should be versioned in your code repository so it always reflects current code's * Note: this script should be versioned in your code repository so it always reflects current code's
* requirements for the database structure. * requirements for the database structure.
*/ */
require_once(dirname(__FILE__).'/config.php'); require_once(dirname(__FILE__).'/global.php');
require_once(dirname(__FILE__).'/dbupgrade/lib.php'); require_once(dirname(__FILE__).'/dbupgrade/lib.php');


$versions = array(); $versions = array();
Expand Down
2 changes: 1 addition & 1 deletion edit.php
@@ -1,5 +1,5 @@
<?php <?php
require_once(dirname(__FILE__).'/config.php'); require_once(dirname(__FILE__).'/global.php');


require_once(dirname(__FILE__).'/User.php'); require_once(dirname(__FILE__).'/User.php');


Expand Down
4 changes: 4 additions & 0 deletions config.php → global.php
Expand Up @@ -3,5 +3,9 @@
mb_internal_encoding('UTF-8'); mb_internal_encoding('UTF-8');
header('Content-type: text/html; charset=utf-8'); header('Content-type: text/html; charset=utf-8');


require_once(dirname(__FILE__).'/StartupAPI.php');

require_once(dirname(__FILE__).'/default_config.php'); require_once(dirname(__FILE__).'/default_config.php');
require_once(dirname(dirname(__FILE__)).'/users_config.php'); require_once(dirname(dirname(__FILE__)).'/users_config.php');

StartupAPI::_init();
3 changes: 2 additions & 1 deletion header.php
Expand Up @@ -3,6 +3,7 @@
<head> <head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"> <meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>Users</title> <title>Users</title>
<?php StartupAPI::head() ?>
<style> <style>
#userbase_body { #userbase_body {
color: #666666; color: #666666;
Expand Down Expand Up @@ -90,7 +91,7 @@
<body id="userbase_body"> <body id="userbase_body">
<div id="userbase_header"> <div id="userbase_header">
<div id="userbase_navbox"> <div id="userbase_navbox">
<?php include(dirname(__FILE__).'/navbox.php') ?> <?php StartupAPI::power_strip() ?>
</div> </div>
<a href="<?php echo UserConfig::$SITEROOTURL ?>"><img src="<?php echo UserConfig::$USERSROOTURL ?>/images/header_icon.png" id="userbase_header_icon" title="Powered by Startup API"/></a> <a href="<?php echo UserConfig::$SITEROOTURL ?>"><img src="<?php echo UserConfig::$USERSROOTURL ?>/images/header_icon.png" id="userbase_header_icon" title="Powered by Startup API"/></a>
</div> </div>
Expand Down
2 changes: 1 addition & 1 deletion login.php
@@ -1,5 +1,5 @@
<?php <?php
require_once(dirname(__FILE__).'/config.php'); require_once(dirname(__FILE__).'/global.php');


require_once(dirname(__FILE__).'/User.php'); require_once(dirname(__FILE__).'/User.php');


Expand Down
2 changes: 1 addition & 1 deletion logout.php
@@ -1,5 +1,5 @@
<?php <?php
require_once(dirname(__FILE__).'/config.php'); require_once(dirname(__FILE__).'/global.php');


require_once(dirname(__FILE__).'/User.php'); require_once(dirname(__FILE__).'/User.php');


Expand Down
2 changes: 1 addition & 1 deletion maintenance.php
@@ -1,5 +1,5 @@
<?php <?php
require_once(dirname(__FILE__).'/config.php'); require_once(dirname(__FILE__).'/global.php');
require_once(dirname(__FILE__).'/User.php'); require_once(dirname(__FILE__).'/User.php');


/** /**
Expand Down
2 changes: 1 addition & 1 deletion manage_account.php
@@ -1,5 +1,5 @@
<?php <?php
require_once(dirname(__FILE__).'/config.php'); require_once(dirname(__FILE__).'/global.php');


require_once(dirname(__FILE__).'/User.php'); require_once(dirname(__FILE__).'/User.php');


Expand Down
2 changes: 1 addition & 1 deletion modules.php
Expand Up @@ -2,7 +2,7 @@
/** /**
* @package StartupAPI * @package StartupAPI
*/ */
require_once(dirname(__FILE__).'/config.php'); require_once(dirname(__FILE__).'/global.php');


interface IUserBaseModule interface IUserBaseModule
{ {
Expand Down
2 changes: 1 addition & 1 deletion modules/email/login.php
@@ -1,5 +1,5 @@
<?php <?php
require_once(dirname(dirname(dirname(__FILE__))).'/config.php'); require_once(dirname(dirname(dirname(__FILE__))).'/global.php');


require_once(dirname(dirname(dirname(__FILE__))).'/User.php'); require_once(dirname(dirname(dirname(__FILE__))).'/User.php');


Expand Down
2 changes: 1 addition & 1 deletion modules/facebook/facebook.php
Expand Up @@ -17,7 +17,7 @@


require_once dirname(__FILE__)."/php-sdk/src/base_facebook.php"; require_once dirname(__FILE__)."/php-sdk/src/base_facebook.php";


require_once(dirname(dirname(dirname(__FILE__))).'/config.php'); require_once(dirname(dirname(dirname(__FILE__))).'/global.php');


/** /**
* Extends the BaseFacebook class with the intent of using * Extends the BaseFacebook class with the intent of using
Expand Down
2 changes: 1 addition & 1 deletion modules/facebook/logout.php
@@ -1,5 +1,5 @@
<?php <?php
require_once(dirname(dirname(dirname(__FILE__))).'/config.php'); require_once(dirname(dirname(dirname(__FILE__))).'/global.php');


require_once(dirname(dirname(dirname(__FILE__))).'/User.php'); require_once(dirname(dirname(dirname(__FILE__))).'/User.php');


Expand Down
2 changes: 1 addition & 1 deletion modules/usernamepass/forgotpassword.php
@@ -1,5 +1,5 @@
<?php <?php
require_once(dirname(dirname(dirname(__FILE__))).'/config.php'); require_once(dirname(dirname(dirname(__FILE__))).'/global.php');


require_once(dirname(dirname(dirname(__FILE__))).'/User.php'); require_once(dirname(dirname(dirname(__FILE__))).'/User.php');


Expand Down
2 changes: 1 addition & 1 deletion modules/usernamepass/passwordreset.php
@@ -1,5 +1,5 @@
<?php <?php
require_once(dirname(dirname(dirname(__FILE__))).'/config.php'); require_once(dirname(dirname(dirname(__FILE__))).'/global.php');


require_once(dirname(dirname(dirname(__FILE__))).'/User.php'); require_once(dirname(dirname(dirname(__FILE__))).'/User.php');


Expand Down
83 changes: 1 addition & 82 deletions navbox.php
@@ -1,82 +1 @@
<?php <?php StartupAPI::power_strip();

function _USERBASE_render_navbox()
{
$current_user = User::get();
$current_account = null;

$accounts = array();
if (UserConfig::$useAccounts && !is_null($current_user)) {
$accounts = Account::getUserAccounts($current_user);

$current_account = Account::getCurrentAccount($current_user);
}
?>
<div id="userbase-navbox">
<?php if (!is_null($current_user))
{
if ($current_user->isImpersonated()) {
?><b id="userbase-navbox-impersonating"><a href="<?php echo UserConfig::$USERSROOTURL ?>/admin/stopimpersonation.php" title="Impersonated by <?php echo UserTools::escape($current_user->getImpersonator()->getName())?>">Stop Impersonation</a></b> | <?php
}

if ($current_user->isAdmin()) {
?><b id="userbase-navbox-admin"><a href="<?php echo UserConfig::$USERSROOTURL ?>/admin/">Admin</a></b> | <?php
}

if (count($accounts) > 1)
{
$destination = "'+encodeURIComponent(document.location)+'";
if (!is_null(UserConfig::$accountSwitchDestination)) {
$destination = UserConfig::$accountSwitchDestination;
}

?><select id="userbase-navbox-account-picker" name="account" onchange="document.location.href='<?php echo UserConfig::$USERSROOTURL ?>/change_account.php?return=<?php echo $destination ?>&account='+this.value"><?php

foreach ($accounts as $account)
{
?><option value="<?php echo $account->getID()?>"<?php if ($current_account->isTheSameAs($account)) { echo ' selected'; } ?>><?php echo UserTools::escape($account->getName())?></option><?php
}
?></select>
<?php
}

if (!is_null(UserConfig::$onLoginStripLinks)) {
$links = call_user_func_array(
UserConfig::$onLoginStripLinks,
array($current_user, $current_account)
);

foreach ($links as $link) {
?><span<?php
if (array_key_exists('id', $link)) {
?> id="<?php echo $link['id'] ?>"<?php
}
?>><a href="<?php echo $link['url'] ?>"<?php
if (array_key_exists('title', $link)) {
?> title="<?php echo $link['title'] ?>"<?php
}
if (array_key_exists('target', $link)) {
?> target="<?php echo $link['target'] ?>"<?php
}
?>><?php echo $link['text'] ?></a></span> | <?php
}
}
?>

<span id="userbase-navbox-username"><a href="<?php echo UserConfig::$USERSROOTURL ?>/edit.php" title="<?php echo UserTools::escape($current_user->getName())?>'s user information"><?php echo UserTools::escape($current_user->getName()) ?></a></span> |
<span id="userbase-navbox-logout"><a href="<?php echo UserConfig::$USERSROOTURL ?>/logout.php">logout</a></span>
<?php
}
else
{
?>
<span id="userbase-navbox-signup"><a href="<?php echo UserConfig::$USERSROOTURL ?>/register.php">Sign Up Now!</a></span> |
<span id="userbase-navbox-login"><a href="<?php echo UserConfig::$USERSROOTURL ?>/login.php">log in</a></span>
<?php
}
?>
</div>
<?php
}

_USERBASE_render_navbox();
2 changes: 1 addition & 1 deletion oauth_callback.php
@@ -1,5 +1,5 @@
<?php <?php
require_once(dirname(__FILE__).'/config.php'); require_once(dirname(__FILE__).'/global.php');
require_once(dirname(__FILE__).'/User.php'); require_once(dirname(__FILE__).'/User.php');


$current_user = User::get(); $current_user = User::get();
Expand Down
2 changes: 1 addition & 1 deletion register.php
@@ -1,5 +1,5 @@
<?php <?php
require_once(dirname(__FILE__).'/config.php'); require_once(dirname(__FILE__).'/global.php');


require_once(dirname(__FILE__).'/User.php'); require_once(dirname(__FILE__).'/User.php');
require_once(dirname(__FILE__).'/Invitation.php'); require_once(dirname(__FILE__).'/Invitation.php');
Expand Down
2 changes: 1 addition & 1 deletion sample.php
Expand Up @@ -17,7 +17,7 @@
<html> <html>
<head><title>Sample page</title></head> <head><title>Sample page</title></head>
<body> <body>
<div style="float: right"><?php include(dirname(__FILE__).'/users/navbox.php'); ?></div> <div style="float: right"><?php StartupAPI::power_strip() ?></div>
<?php <?php


if (!is_null($user)) { if (!is_null($user)) {
Expand Down
Empty file added themes/classic/style.css
Empty file.
2 changes: 1 addition & 1 deletion users.php
Expand Up @@ -4,7 +4,7 @@
* *
* This is a main file to be included into pap pages * This is a main file to be included into pap pages
*/ */
require_once(dirname(__FILE__).'/config.php'); require_once(dirname(__FILE__).'/global.php');


require_once(dirname(__FILE__).'/User.php'); require_once(dirname(__FILE__).'/User.php');
require_once(dirname(__FILE__).'/Plan.php'); require_once(dirname(__FILE__).'/Plan.php');
Expand Down

0 comments on commit eaf5a3b

Please sign in to comment.