Skip to content

Commit

Permalink
allow to manage data version of API in Backoffice / Advanced / API
Browse files Browse the repository at this point in the history
  • Loading branch information
norbertlaposa committed Mar 9, 2015
1 parent bae72de commit 1b3eed2
Show file tree
Hide file tree
Showing 6 changed files with 124 additions and 5 deletions.
1 change: 1 addition & 0 deletions conf/uri_map.php
Expand Up @@ -55,6 +55,7 @@
'^/backoffice/advanced/database/export$' => '/index.php?request=sys/html5.bo/backoffice_wrapper.bo/backoffice.bo/pages/advanced.bo/pages/database_export',
'^/backoffice/advanced/database/import$' => '/index.php?request=sys/html5.bo/backoffice_wrapper.bo/backoffice.bo/pages/advanced.bo/pages/database_import',
'^/backoffice/advanced/tools$' => '/index.php?request=sys/html5.bo/backoffice_wrapper.bo/backoffice.bo/pages/advanced.bo/pages/tools',
'^/backoffice/advanced/api$' => '/index.php?request=sys/html5.bo/backoffice_wrapper.bo/backoffice.bo/pages/advanced.bo/pages/api',
'^/backoffice/advanced/search_index$' => '/index.php?request=sys/html5.bo/backoffice_wrapper.bo/backoffice.bo/pages/advanced.bo/component/search_index',
'^/backoffice/advanced/scheduler$' => '/index.php?request=sys/html5.bo/backoffice_wrapper.bo/backoffice.bo/pages/advanced.bo/component/scheduler',
'^/backoffice/advanced/seo_manager$' => '/index.php?request=sys/html5.bo/backoffice_wrapper.bo/backoffice.bo/pages/advanced.bo/component/seo_manager',
Expand Down
56 changes: 51 additions & 5 deletions controllers/api/v1_0/resources.php
Expand Up @@ -31,9 +31,6 @@ public function getData() {
$base_api_url = "$protocol://{$_SERVER['HTTP_HOST']}/api/v{$version_string}/";
$standard_params = "?format={$format}&api_key={$api_key}";

$Revision = new common_revision();
$last_revision_id = $Revision->count(); // this should be max(id), but count will do

$data = array();
$data['recipe_list'] = "{$base_api_url}recipe_list{$standard_params}";
$data['recipe_category_list'] = "{$base_api_url}recipe_category_list{$standard_params}";
Expand All @@ -44,8 +41,8 @@ public function getData() {
$data['iphone_download_url'] = "http://itunes.apple.com/";
$data['android_download_url'] = "https://play.google.com/";
$data['landing_page'] = "$protocol://{$_SERVER['HTTP_HOST']}/";
$data['theme_version'] = 1;
$data['data_version'] = $last_revision_id;
$data['theme_version'] = $this->getThemeVersion();
$data['data_version'] = $this->getDataVersion();;
$data['background_images'] = "$protocol://{$_SERVER['HTTP_HOST']}/images/recipe_app/backgrounds/";
$data['background_main'] = "$protocol://{$_SERVER['HTTP_HOST']}/images/recipe_app/backgrounds/main.png";
$data['background_invisible_header'] = "$protocol://{$_SERVER['HTTP_HOST']}/images/recipe_app/backgrounds/invisible_header.png";
Expand All @@ -63,4 +60,53 @@ public function getData() {

}

/**
* getDataVersion
*/

public function getDataVersion() {

if (is_numeric($GLOBALS['onxshop_conf']['common_configuration']['api_data_version'])) {

/**
* read from config
*/

$data_version = $GLOBALS['onxshop_conf']['common_configuration']['api_data_version'];

} else {

/**
* return latest revision ID
*/

$Revision = new common_revision();
$data_version = $Revision->count(); // this should be max(id), but count will do

}

return $data_version;

}

/**
* getThemeVersion
*/

public function getThemeVersion() {

if (is_numeric($GLOBALS['onxshop_conf']['common_configuration']['api_theme_version'])) {

$theme_version = $GLOBALS['onxshop_conf']['common_configuration']['api_theme_version'];

} else {

$theme_version = 1;

}

return $theme_version;

}

}
1 change: 1 addition & 0 deletions controllers/bo/backoffice_menu_advanced.php
Expand Up @@ -42,6 +42,7 @@ public function mainAction() {
if ($auth->hasAnyPermission('scheduler')) $this->tpl->parse('content.scheduler');
if ($auth->hasAnyPermission('currency')) $this->tpl->parse('content.currency');
if ($auth->hasAnyPermission('search_index')) $this->tpl->parse('content.search_index');
if ($auth->hasAnyPermission('api')) $this->tpl->parse('content.api');
if ($auth->hasAnyPermission('tools')) $this->tpl->parse('content.tools');
if ($auth->hasAnyPermission('logs')) $this->tpl->parse('content.logs');
if ($auth->hasAnyPermission('configuration')) $this->tpl->parse('content.configuration');
Expand Down
24 changes: 24 additions & 0 deletions controllers/bo/component/tools.php
Expand Up @@ -20,27 +20,51 @@ public function mainAction() {
$tool = $this->GET['tool'];

switch ($tool) {

case 'uri':
require_once('models/common/common_uri_mapping.php');
$CommonURIMapping = new common_uri_mapping();
$CommonURIMapping->generateAndSaveURITable();
msg("Nice URLs has been completely generated");
break;

case 'flush_thumb':
if ($File->rm(ONXSHOP_PROJECT_DIR . "var/thumbnails/*")) msg("All image thumbnails have been deleted");
else ("Flushing thumbnails failed");
break;

case 'flush_tmp':
if ($File->rm(ONXSHOP_PROJECT_DIR . "var/tmp/*")) msg("Temp directory has been cleaned");
else ("Flushing temp dir failed");
break;

case 'flush_cache':

if (onxshop_flush_cache()) msg("Cache has been refreshed");
else msg("Flushing cache failed");

break;

case 'flush_api_cache':

if (is_numeric($GLOBALS['onxshop_conf']['common_configuration']['api_data_version'])) $current_api_data_version = $GLOBALS['onxshop_conf']['common_configuration']['api_data_version'];
else $current_api_data_version = 1;
//msg($current_api_data_version);
$api_data_version = $current_api_data_version + 1;

$Configuration = new common_configuration();

if ($Configuration->saveConfig('common_configuration', 'api_data_version', $api_data_version)) {

msg("Data version of API has increased to $api_data_version");

if (onxshop_flush_cache()) msg("Cache has been refreshed");
else msg("Flushing cache failed");

}

break;

case 'find_hard_links':
require_once('models/common/common_node.php');
$Node = new common_node();
Expand Down
1 change: 1 addition & 0 deletions templates/bo/backoffice_menu_advanced.html
Expand Up @@ -9,6 +9,7 @@
<!-- BEGIN: scheduler --><li class="scheduler {ACTIVE_scheduler}"><a href="/backoffice/advanced/scheduler"><span>Scheduler</span></a></li><!-- END: scheduler -->
<!-- BEGIN: currency --><li class="currency {ACTIVE_currency}"><a href="/backoffice/advanced/currency"><span>Currency</span></a></li><!-- END: currency -->
<!-- BEGIN: search_index --><li class="search_index {ACTIVE_search_index}"><a href="/backoffice/advanced/search_index"><span>Search Index</span></a></li><!-- END: search_index -->
<!-- BEGIN: api --><li class="api {ACTIVE_api}"><a href="/backoffice/advanced/api"><span>API</span></a></li><!-- END: api -->
<!-- BEGIN: tools --><li class="tools {ACTIVE_tools}"><a href="/backoffice/advanced/tools"><span>Tools</span></a></li><!-- END: tools -->
<!-- BEGIN: logs --><li class="logs {ACTIVE_logs}"><a href="/backoffice/advanced/logs"><span>Logs</span></a></li><!-- END: logs -->
<!-- BEGIN: configuration --><li class="configuration {ACTIVE_configuration} last" ><a href="/backoffice/advanced/configuration"><span>Configuration</span></a></li><!-- END: configuration -->
Expand Down
46 changes: 46 additions & 0 deletions templates/bo/pages/api.html
@@ -0,0 +1,46 @@
<!-- BEGIN: title -->API<!-- END: title -->
<!-- BEGIN: content -->
<!-- BEGIN: messages --><div class="onxshop_messages">{MESSAGES}</div><!-- END: messages -->

<div class="api">

<div class="twoColumnPage page sidebar">
<div class="top"><span></span></div>
<div class="content">
<div class="pageWrapper">

<div class="pageHeader">
<div class="pageHeaderWrapper">
<h1 class="pageTitle"><span>API</span></h1>
</div>
</div>

<div class="pageContent">
<div class="pageContentWrapper">
<div class="rowTop">
<div class="rowWrapper">
<div class="columnWrapper">
<h3>Available documenation</h3>
<p>The links can be shared with developer, they are outside of backoffice.</p>
<ul>
<li><a href="/api/v1.0/documentation">v1.0</a></li>
<li><a href="/api/v1.1/documentation">v1.1</a></li>
<li><a href="/api/v1.2/documentation">v1.2</a></li>
<li><a href="/api/v1.3/documentation">v1.3</a></li>
</ul>

<p><a class="button" href="#flush_api_cache" onclick="makeAjaxRequest('#dialog', '/request/bo/component/tools?tool=flush_api_cache'); return false;"><span>Refresh API Cache (Force User to Download new Dataset)</span></a></p>
</div>
</div>
</div>

</div>
</div>
</div>
</div>
<div class="bottom"><span></span></div>
</div>

</div>

<!-- END: content -->

0 comments on commit 1b3eed2

Please sign in to comment.