Файл: concrete5.7.5.6/concrete/blocks/dashboard_app_status/controller.php
Строк: 52
<?php
namespace ConcreteBlockDashboardAppStatus;
use Loader;
use Package;
use ConcreteCoreBlockBlockController;
/**
* The controller for the Dashboard App Status block. It is added to the dashboard news page/overlay and handles display of available updates.
*
* @package Blocks
* @subpackage Dashboard App Status
* @author Andrew Embler <andrew@concrete5.org>
* @copyright Copyright (c) 2003-2012 Concrete5. (http://www.concrete5.org)
* @license http://www.concrete5.org/license/ MIT License
*
*/
class Controller extends BlockController {
protected $btCacheBlockRecord = true;
protected $btCacheBlockOutput = true;
protected $btCacheBlockOutputOnPost = true;
protected $btCacheBlockOutputForRegisteredUsers = true;
protected $btCacheBlockOutputLifetime = 86400; // check every day
protected $btIsInternal = true;
public function getBlockTypeDescription() {
return t("Displays update and welcome back information on your dashboard.");
}
public function getBlockTypeName() {
return t("Dashboard App Status");
}
public function view() {
$this->set('latest_version', ConcreteCoreUpdaterUpdate::getLatestAvailableVersionNumber());
$tp = new TaskPermission();
$updates = 0;
$local = array();
$remote = array();
if ($tp->canInstallPackages()) {
$local = Package::getLocalUpgradeablePackages();
$remote = Package::getRemotelyUpgradeablePackages();
}
// now we strip out any dupes for the total
$updates = 0;
$localHandles = array();
foreach($local as $_pkg) {
$updates++;
$localHandles[] = $_pkg->getPackageHandle();
}
foreach($remote as $_pkg) {
if (!in_array($_pkg->getPackageHandle(), $localHandles)) {
$updates++;
}
}
$this->set('updates', $updates);
}
}