mirror of
https://github.com/gantry/gantry5.git
synced 2026-08-18 17:04:53 -05:00
Make CSS compiler to use theme settings , make admin to compile all files at once
This commit is contained in:
+6
-10
@@ -3,22 +3,21 @@
|
||||
ehthumbs.db
|
||||
Thumbs.db
|
||||
|
||||
# Composer
|
||||
composer.lock
|
||||
vendor/**
|
||||
|
||||
# PhpStorm
|
||||
.idea
|
||||
|
||||
# Composer
|
||||
src/composer.lock
|
||||
src/vendor/**
|
||||
|
||||
# Symbolic links in admin
|
||||
platforms/joomla/com_gantry5/*/common
|
||||
platforms/*/*/common
|
||||
platforms/*/*/src
|
||||
platforms/*/*/vendor
|
||||
|
||||
# Symbolic links in themes
|
||||
themes/*/*/common
|
||||
themes/*/*/src
|
||||
themes/*/*/vendor
|
||||
themes/*/*/cache
|
||||
themes/*/*/custom
|
||||
themes/*/magento/design/default/gantry/common
|
||||
@@ -26,11 +25,8 @@ themes/*/magento/design/default/gantry/src
|
||||
themes/*/magento/design/default/gantry/vendor
|
||||
themes/*/magento/skin/default/common
|
||||
|
||||
!**/scss/vendor
|
||||
|
||||
# Compiled
|
||||
.sass-cache/*
|
||||
**/.sass-cache
|
||||
node_modules/*
|
||||
platforms/wordpress/gantryadmin/cache
|
||||
platforms/common/node_modules
|
||||
.sass-cache
|
||||
|
||||
+43
-18
@@ -5,32 +5,57 @@ OPT_DELETE=0
|
||||
|
||||
if [ -f $GIT_TARGET/configuration.php ]; then
|
||||
PLATFORM=Joomla
|
||||
mkdir "$GIT_TARGET/media/gantry"
|
||||
mkdir "$GIT_TARGET/libraries/gantry5"
|
||||
mkdir "$GIT_TARGET/media/gantry5"
|
||||
sources=(
|
||||
'platforms/joomla/com_gantryadmin'
|
||||
# Manifest files
|
||||
'platforms/joomla/pkg_gantry5.xml'
|
||||
'platforms/joomla/lib_gantry5/gantry5.xml'
|
||||
'platforms/joomla/gantry5_media/gantry5_media.xml'
|
||||
# Component
|
||||
'platforms/joomla/com_gantry5/admin'
|
||||
'platforms/common'
|
||||
'src'
|
||||
'vendor'
|
||||
'platforms/joomla/plg_system_gantryadmin'
|
||||
# Library
|
||||
'src/classes'
|
||||
'platforms/joomla/lib_gantry5/language'
|
||||
'src/vendor'
|
||||
'src/Loader.php'
|
||||
# Plugins
|
||||
'platforms/joomla/plg_system_gantry5'
|
||||
'platforms/joomla/plg_quickicon_gantry5'
|
||||
# Media
|
||||
'assets'
|
||||
'engines'
|
||||
# Templates
|
||||
'themes/hydrogen/joomla'
|
||||
'themes/hydrogen/common'
|
||||
'themes/hydrogen-demo/joomla'
|
||||
'themes/hydrogen-demo/common'
|
||||
# 'themes/hydrogen-demo/joomla'
|
||||
# 'themes/hydrogen-demo/common'
|
||||
)
|
||||
targets=(
|
||||
'administrator/components/com_gantryadmin'
|
||||
'administrator/components/com_gantryadmin/common'
|
||||
'administrator/components/com_gantryadmin/src'
|
||||
'administrator/components/com_gantryadmin/vendor'
|
||||
'plugins/system/gantryadmin'
|
||||
'media/gantry/assets'
|
||||
'media/gantry/engines'
|
||||
'templates/hydrogen'
|
||||
'templates/hydrogen/common'
|
||||
'templates/hydrogen-demo'
|
||||
'templates/hydrogen-demo/common'
|
||||
# Manifest files
|
||||
'administrator/manifests/packages/pkg_gantry5.xml'
|
||||
'administrator/manifests/libraries/gantry5.xml'
|
||||
'administrator/manifests/files/gantry5_media.xml'
|
||||
# Component
|
||||
'administrator/components/com_gantry5'
|
||||
'administrator/components/com_gantry5/common'
|
||||
# Library
|
||||
'libraries/gantry5/classes'
|
||||
'libraries/gantry5/language'
|
||||
'libraries/gantry5/vendor'
|
||||
'libraries/gantry5/Loader.php'
|
||||
# Plugins
|
||||
'plugins/system/gantry5'
|
||||
'plugins/quickicon/gantry5'
|
||||
# Media
|
||||
'media/gantry5/assets'
|
||||
'media/gantry5/engines'
|
||||
# Templates
|
||||
'templates/g5_hydrogen'
|
||||
'templates/g5_hydrogen/common'
|
||||
# 'templates/g5_hydrogen-demo'
|
||||
# 'templates/g5_hydrogen-demo/common'
|
||||
)
|
||||
elif [ -f $GIT_TARGET/wp-config.php ]; then
|
||||
PLATFORM=WordPress
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<!DOCTYPE access>
|
||||
<access component="com_gantryadmin">
|
||||
<access component="com_gantry5">
|
||||
<section name="component">
|
||||
<action name="core.admin" title="JACTION_ADMIN" description="JACTION_ADMIN_COMPONENT_DESC" />
|
||||
<action name="core.manage" title="JACTION_MANAGE" description="JACTION_MANAGE_COMPONENT_DESC" />
|
||||
+1
-1
@@ -2,6 +2,6 @@
|
||||
<!DOCTYPE config>
|
||||
<config>
|
||||
<fieldset name="permissions" label="JCONFIG_PERMISSIONS_LABEL" description="JCONFIG_PERMISSIONS_DESC">
|
||||
<field name="rules" type="rules" label="JCONFIG_PERMISSIONS_LABEL" class="inputbox" filter="rules" validate="rules" component="com_gantryadmin" section="component" />
|
||||
<field name="rules" type="rules" label="JCONFIG_PERMISSIONS_LABEL" class="inputbox" filter="rules" validate="rules" component="com_gantry5" section="component" />
|
||||
</fieldset>
|
||||
</config>
|
||||
+24
-24
@@ -1,19 +1,19 @@
|
||||
body.com_gantryadmin {
|
||||
body.com_gantry5 {
|
||||
color: #ddd;
|
||||
background-color: #404040 !important; }
|
||||
body.com_gantryadmin a {
|
||||
body.com_gantry5 a {
|
||||
text-decoration: none; }
|
||||
body.com_gantryadmin .subhead-collapse.collapse, body.com_gantryadmin .header {
|
||||
body.com_gantry5 .subhead-collapse.collapse, body.com_gantry5 .header {
|
||||
display: none; }
|
||||
body.com_gantryadmin .container-main {
|
||||
body.com_gantry5 .container-main {
|
||||
padding: 0; }
|
||||
body.com_gantryadmin #status {
|
||||
body.com_gantry5 #status {
|
||||
box-shadow: none !important; }
|
||||
body.com_gantryadmin #footer a {
|
||||
body.com_gantry5 #footer a {
|
||||
color: #3180C2; }
|
||||
body.com_gantryadmin #g5-container .inner-container {
|
||||
body.com_gantry5 #g5-container .inner-container {
|
||||
margin: 0 0 1.5rem 0; }
|
||||
body.com_gantryadmin #g5-container li {
|
||||
body.com_gantry5 #g5-container li {
|
||||
line-height: inherit; }
|
||||
|
||||
#g5-container .button-primary {
|
||||
@@ -23,43 +23,43 @@ body.com_gantryadmin {
|
||||
background: #2b70aa;
|
||||
color: #fff; }
|
||||
|
||||
body.com_gantryadmin #g5-container [data-mode-indicator="production"] {
|
||||
body.com_gantry5 #g5-container [data-mode-indicator="production"] {
|
||||
background-color: #3180C2; }
|
||||
body.com_gantryadmin #g5-container #main-header .g-content {
|
||||
body.com_gantry5 #g5-container #main-header .g-content {
|
||||
padding: 0 1.563rem; }
|
||||
body.com_gantryadmin #g5-container #main-header .dev-mode-toggle {
|
||||
body.com_gantry5 #g5-container #main-header .dev-mode-toggle {
|
||||
background: #276599; }
|
||||
body.com_gantryadmin #g5-container #main-header .dev-mode-toggle a {
|
||||
body.com_gantry5 #g5-container #main-header .dev-mode-toggle a {
|
||||
background: #67a5d9; }
|
||||
body.com_gantryadmin #g5-container #main-header .button-save {
|
||||
body.com_gantry5 #g5-container #main-header .button-save {
|
||||
background: #67a5d9;
|
||||
color: #fff; }
|
||||
body.com_gantryadmin #g5-container #main-header .button-save:hover {
|
||||
body.com_gantry5 #g5-container #main-header .button-save:hover {
|
||||
background: #4e96d2;
|
||||
color: #fff; }
|
||||
body.com_gantryadmin #g5-container #main-header ul li:hover a {
|
||||
body.com_gantry5 #g5-container #main-header ul li:hover a {
|
||||
background: #2c73ae; }
|
||||
body.com_gantryadmin #g5-container #main-header ul li.active a {
|
||||
body.com_gantry5 #g5-container #main-header ul li.active a {
|
||||
background: #225885; }
|
||||
body.com_gantryadmin #g5-container #navbar {
|
||||
body.com_gantry5 #g5-container #navbar {
|
||||
padding: 0 0.625rem; }
|
||||
body.com_gantryadmin #g5-container .navbar-block .gantry-logo {
|
||||
body.com_gantry5 #g5-container .navbar-block .gantry-logo {
|
||||
right: 1.563rem; }
|
||||
body.com_gantryadmin #g5-container .inner-header {
|
||||
body.com_gantry5 #g5-container .inner-header {
|
||||
background-color: #222;
|
||||
color: #3180C2; }
|
||||
body.com_gantryadmin #g5-container .inner-header .gantry-logo {
|
||||
body.com_gantry5 #g5-container .inner-header .gantry-logo {
|
||||
background-image: url(../images/gantrylogo.png); }
|
||||
body.com_gantryadmin #g5-container .settings-state {
|
||||
body.com_gantry5 #g5-container .settings-state {
|
||||
background: #3180C2;
|
||||
color: #fff; }
|
||||
body.com_gantryadmin #g5-container .button.button-update {
|
||||
body.com_gantry5 #g5-container .button.button-update {
|
||||
background: #633679;
|
||||
color: #fff; }
|
||||
body.com_gantryadmin #g5-container .button.button-update:hover {
|
||||
body.com_gantry5 #g5-container .button.button-update:hover {
|
||||
background: #522c64;
|
||||
color: #fff; }
|
||||
body.com_gantryadmin #g5-container .tooltip {
|
||||
body.com_gantry5 #g5-container .tooltip {
|
||||
position: static;
|
||||
opacity: 1;
|
||||
line-height: inherit;
|
||||
+7
-9
@@ -4,27 +4,25 @@ defined('_JEXEC') or die;
|
||||
$user = JFactory::getUser();
|
||||
|
||||
// ACL for hardening the access to the template manager.
|
||||
if (!$user->authorise('core.manage', 'com_templates')
|
||||
if ((!$user->authorise('core.manage', 'com_templates') || !$user->authorise('core.manage', 'com_gantry5'))
|
||||
|| !$user->authorise('core.edit', 'com_templates')
|
||||
|| !$user->authorise('core.create', 'com_templates')
|
||||
|| !$user->authorise('core.admin', 'com_templates'))
|
||||
{
|
||||
|| !$user->authorise('core.admin', 'com_templates')) {
|
||||
$app = JFactory::getApplication();
|
||||
$app->enqueueMessage(JText::_('JERROR_ALERTNOAUTHOR'), 'error');
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!defined('GANTRYADMIN_PATH'))
|
||||
{
|
||||
if (!defined('GANTRYADMIN_PATH')) {
|
||||
define('GANTRYADMIN_PATH', JPATH_COMPONENT_ADMINISTRATOR);
|
||||
}
|
||||
|
||||
// Bootstrap Gantry framework or fail gracefully (inside included file).
|
||||
$gantry = include __DIR__ . '/includes/gantry.php';
|
||||
// Setup Gantry Framework or throw exception.
|
||||
Gantry5\Loader::setup();
|
||||
|
||||
$gantry['router'] = function ($c)
|
||||
{
|
||||
$gantry = Gantry\Framework\Gantry::instance();
|
||||
$gantry['router'] = function ($c) {
|
||||
return new \Gantry\Admin\Router($c);
|
||||
};
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<extension version="3.4" type="component" method="upgrade">
|
||||
<name>COM_GANTRY5</name>
|
||||
<version>@version@</version>
|
||||
<creationDate>@versiondate@</creationDate>
|
||||
<author>RocketTheme, LLC</author>
|
||||
<authorEmail>support@rockettheme.com</authorEmail>
|
||||
<authorUrl>http://www.rockettheme.com</authorUrl>
|
||||
<copyright>(C) 2005 - 2015 RocketTheme, LLC. All rights reserved.</copyright>
|
||||
<license>http://www.gnu.org/copyleft/gpl.html GNU/GPL</license>
|
||||
<description>COM_GANTRY5_DESCRIPTION</description>
|
||||
|
||||
<administration>
|
||||
<files folder="admin">
|
||||
<filename>access.xml</filename>
|
||||
<filename>config.xml</filename>
|
||||
<filename>gantry5.php</filename>
|
||||
<folder>application</folder>
|
||||
<folder>blueprints</folder>
|
||||
<folder>css-compiled</folder>
|
||||
<folder>fonts</folder>
|
||||
<folder>images</folder>
|
||||
<folder>js</folder>
|
||||
<folder>language</folder>
|
||||
<folder>node_modules</folder>
|
||||
<folder>scss</folder>
|
||||
<folder>templates</folder>
|
||||
</files>
|
||||
<menu>COM_GANTRY5</menu>
|
||||
</administration>
|
||||
|
||||
</extension>
|
||||
@@ -0,0 +1,3 @@
|
||||
COM_GANTRY5="Gantry5 Templates"
|
||||
COM_GANTRY5_DESC="Gantry5 templates administration."
|
||||
COM_GANTRY5_CONFIGURATION="Gantry5 Configuration"
|
||||
@@ -0,0 +1,2 @@
|
||||
COM_GANTRY5="Gantry5 Templates"
|
||||
COM_GANTRY5_DESC="Gantry5 templates administration."
|
||||
+3
-3
@@ -1,5 +1,5 @@
|
||||
body.com_gantryadmin {
|
||||
color: $light-gray;
|
||||
body.com_gantry5 {
|
||||
color: $light-gray;
|
||||
background-color: $body-bg !important;
|
||||
|
||||
a {
|
||||
@@ -34,4 +34,4 @@ body.com_gantryadmin {
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
+2
-2
@@ -1,4 +1,4 @@
|
||||
body.com_gantryadmin {
|
||||
body.com_gantry5 {
|
||||
#g5-container {
|
||||
|
||||
[data-mode-indicator="production"] {
|
||||
@@ -77,4 +77,4 @@ body.com_gantryadmin {
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,32 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<extension method="upgrade" type="component" version="3.3">
|
||||
<name>COM_GANTRYADMIN</name>
|
||||
<author>RocketTheme, LLC</author>
|
||||
<creationDate>September 4th, 2014</creationDate>
|
||||
<copyright>(C) 2005 - 2014 RocketTheme, LLC. All rights reserved.</copyright>
|
||||
<license>http://www.gnu.org/copyleft/gpl.html GNU/GPL</license>
|
||||
<authorEmail>support@rockettheme.com</authorEmail>
|
||||
<authorUrl>http://www.rockettheme.com</authorUrl>
|
||||
<version>5.0.0-DEV</version>
|
||||
<description>Gantry Administration</description>
|
||||
|
||||
<administration>
|
||||
<files>
|
||||
<filename>controller.php</filename>
|
||||
<filename>gantryadmin.php</filename>
|
||||
<folder>assets</folder>
|
||||
<folder>classes</folder>
|
||||
<folder>language</folder>
|
||||
<folder>views</folder>
|
||||
</files>
|
||||
|
||||
<languages folder="language">
|
||||
<language tag="en-GB">en-GB/en-GB.com_gantryadmin.ini</language>
|
||||
<language tag="en-GB">en-GB/en-GB.com_gantryadmin.sys.ini</language>
|
||||
</languages>
|
||||
</administration>
|
||||
|
||||
<updateservers>
|
||||
<server type="extension" priority="1" name="Gantry5">http://updates.gantry-framework.org/5.0/joomla/com_gantryadmin.xml</server>
|
||||
</updateservers>
|
||||
</extension>
|
||||
@@ -1,47 +0,0 @@
|
||||
<?php
|
||||
defined('_JEXEC') or die;
|
||||
|
||||
use Gantry\Framework\Gantry;
|
||||
|
||||
try
|
||||
{
|
||||
// Attempt to locate Gantry Framework if it hasn't already been loaded.
|
||||
if (!class_exists('Gantry'))
|
||||
{
|
||||
$gantryPaths = array(
|
||||
GANTRYADMIN_PATH . '/src/bootstrap.php', // Look if Gantry has been included to the admin.
|
||||
);
|
||||
|
||||
foreach ($gantryPaths as $gantryPath)
|
||||
{
|
||||
if ($gantryPath && is_file($gantryPath))
|
||||
{
|
||||
$gantryBootstrap = $gantryPath;
|
||||
}
|
||||
}
|
||||
|
||||
if (!isset($gantryBootstrap))
|
||||
{
|
||||
throw new LogicException('Gantry Framework not found!');
|
||||
}
|
||||
|
||||
require_once $gantryBootstrap;
|
||||
|
||||
unset($gantryPaths, $gantryPath, $gantryBootstrap);
|
||||
}
|
||||
|
||||
// Get Gantry instance and return it.
|
||||
return Gantry::instance();
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
// Oops, something went wrong!
|
||||
|
||||
if (class_exists( '\Tracy\Debugger' ) && \Tracy\Debugger::isEnabled() && !\Tracy\Debugger::$productionMode ) {
|
||||
// We have Tracy enabled; will display and/or log error with it.
|
||||
throw $e;
|
||||
}
|
||||
|
||||
// In frontend we want to prevent template from loading.
|
||||
JError::raiseError(500, 'Failed to load admin: ' . $e->getMessage());
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
COM_GANTRYADMIN="Gantry Templates"
|
||||
@@ -1 +0,0 @@
|
||||
COM_GANTRYADMIN="Gantry Templates"
|
||||
@@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<extension version="3.4" type="file" method="upgrade">
|
||||
<name>Gantry5 Media Files</name>
|
||||
<version>@version@</version>
|
||||
<creationDate>@versiondate@</creationDate>
|
||||
<author>RocketTheme, LLC</author>
|
||||
<authorEmail>support@rockettheme.com</authorEmail>
|
||||
<authorUrl>http://www.rockettheme.com</authorUrl>
|
||||
<copyright>(C) 2005 - 2015 RocketTheme, LLC. All rights reserved.</copyright>
|
||||
<license>http://www.gnu.org/copyleft/gpl.html GNU/GPL</license>
|
||||
<description>Gantry5 media files</description>
|
||||
|
||||
<fileset>
|
||||
<files target="media/gantry5">
|
||||
<folder>css</folder>
|
||||
<folder>fonts</folder>
|
||||
<folder>js</folder>
|
||||
</files>
|
||||
</fileset>
|
||||
</extension>
|
||||
@@ -0,0 +1,148 @@
|
||||
<?php
|
||||
defined('_JEXEC') or die;
|
||||
|
||||
/**
|
||||
* Gantry5 package installer script.
|
||||
*/
|
||||
class Pkg_Gantry5InstallerScript {
|
||||
/**
|
||||
* List of supported versions. Newest version first!
|
||||
* @var array
|
||||
*/
|
||||
protected $versions = array(
|
||||
'PHP' => array (
|
||||
'5.4' => '5.4.0',
|
||||
'0' => '5.5.9' // Preferred version
|
||||
),
|
||||
'Joomla!' => array (
|
||||
'3.4' => '3.4.0',
|
||||
'0' => '3.4.0' // Preferred version
|
||||
)
|
||||
);
|
||||
/**
|
||||
* List of required PHP extensions.
|
||||
* @var array
|
||||
*/
|
||||
protected $extensions = array ('json', 'pcre');
|
||||
|
||||
public function install($parent)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public function discover_install($parent)
|
||||
{
|
||||
return self::install($parent);
|
||||
}
|
||||
|
||||
public function update($parent)
|
||||
{
|
||||
return self::install($parent);
|
||||
}
|
||||
|
||||
public function uninstall($parent)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public function preflight($type, $parent)
|
||||
{
|
||||
/** @var JInstallerComponent $parent */
|
||||
$manifest = $parent->getParent()->getManifest();
|
||||
|
||||
// Prevent installation if requirements are not met.
|
||||
if (!$this->checkRequirements($manifest->version)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Remove old log file before installation.
|
||||
$logFile = JFactory::getConfig()->get('log_path') . '/gantry5-install.php';
|
||||
|
||||
if (is_file($logFile)) {
|
||||
@unlink($logFile);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public function postflight($type, $parent)
|
||||
{
|
||||
// Clear Joomla system cache.
|
||||
/** @var JCache|JCacheController $cache */
|
||||
$cache = JFactory::getCache();
|
||||
$cache->clean('_system');
|
||||
|
||||
// Remove all compiled files from APC cache.
|
||||
if (function_exists('apc_clear_cache')) {
|
||||
@apc_clear_cache();
|
||||
}
|
||||
|
||||
if ($type == 'uninstall') return true;
|
||||
|
||||
$this->enablePlugin('system', 'gantry5');
|
||||
$this->enablePlugin('quickicon', 'gantry5');
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
// Internal functions
|
||||
|
||||
protected function enablePlugin($group, $element)
|
||||
{
|
||||
$plugin = JTable::getInstance('extension');
|
||||
|
||||
if (!$plugin->load(array('type' => 'plugin', 'folder' => $group, 'element' => $element))) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$plugin->enabled = 1;
|
||||
|
||||
return $plugin->store();
|
||||
}
|
||||
|
||||
protected function checkRequirements($version)
|
||||
{
|
||||
$pass = $this->checkVersion('PHP', phpversion());
|
||||
$pass &= $this->checkVersion('Joomla!', JVERSION);
|
||||
$pass &= $this->checkExtensions($this->extensions);
|
||||
|
||||
return $pass;
|
||||
}
|
||||
|
||||
protected function checkVersion($name, $version)
|
||||
{
|
||||
$app = JFactory::getApplication();
|
||||
|
||||
$major = $minor = 0;
|
||||
|
||||
foreach ($this->versions[$name] as $major=>$minor) {
|
||||
if (!$major || version_compare($version, $major, '<')) continue;
|
||||
if (version_compare($version, $minor, '>=')) return true;
|
||||
break;
|
||||
}
|
||||
|
||||
if (!$major) {
|
||||
$minor = reset($this->versions[$name]);
|
||||
}
|
||||
|
||||
$recommended = end($this->versions[$name]);
|
||||
$app->enqueueMessage(sprintf("%s %s is not supported. Minimum required version is %s %s, but it is highly recommended to use %s %s or later.", $name, $version, $name, $minor, $name, $recommended), 'notice');
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
protected function checkExtensions($extensions)
|
||||
{
|
||||
$app = JFactory::getApplication();
|
||||
|
||||
$pass = 1;
|
||||
foreach ($extensions as $name) {
|
||||
if (!extension_loaded($name)) {
|
||||
$pass = 0;
|
||||
$app->enqueueMessage(sprintf("Required PHP extension '%s' is missing. Please install it into your system.", $name), 'notice');
|
||||
}
|
||||
}
|
||||
return $pass;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<extension version="3.4" type="library" method="upgrade">
|
||||
<name>LIB_GANTRY5</name>
|
||||
<libraryname>gantry5</libraryname>
|
||||
<version>@version@</version>
|
||||
<creationDate>@versiondate@</creationDate>
|
||||
<author>RocketTheme, LLC</author>
|
||||
<authorEmail>support@rockettheme.com</authorEmail>
|
||||
<authorUrl>http://www.rockettheme.com</authorUrl>
|
||||
<copyright>(C) 2005 - 2015 RocketTheme, LLC. All rights reserved.</copyright>
|
||||
<license>http://www.gnu.org/copyleft/gpl.html GNU/GPL</license>
|
||||
<description>LIB_GANTRY5_DESCRIPTION</description>
|
||||
|
||||
<files>
|
||||
<filename>bootstrap.php</filename>
|
||||
<filename>Loader.php</filename>
|
||||
<folder>classes</folder>
|
||||
<folder>language</folder>
|
||||
<folder>vendor</folder>
|
||||
</files>
|
||||
</extension>
|
||||
@@ -0,0 +1,2 @@
|
||||
LIB_GANTRY5="Gantry5 Framework"
|
||||
LIB_GANTRY5_DESC="Gantry5 Framework"
|
||||
@@ -0,0 +1,2 @@
|
||||
LIB_GANTRY5="Gantry5 Framework"
|
||||
LIB_GANTRY5_DESC="Gantry5 Framework"
|
||||
@@ -0,0 +1,35 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<extension version="3.4" type="package" method="upgrade">
|
||||
<name>Gantry5 Package</name>
|
||||
<packagename>gantry5</packagename>
|
||||
<version>5.0.0-DEV</version>
|
||||
<creationDate>@versiondate@</creationDate>
|
||||
<author>RocketTheme, LLC</author>
|
||||
<authorEmail>support@rockettheme.com</authorEmail>
|
||||
<authorUrl>http://www.rockettheme.com</authorUrl>
|
||||
<copyright>(C) 2005 - 2015 RocketTheme, LLC. All rights reserved.</copyright>
|
||||
<license>http://www.gnu.org/copyleft/gpl.html GNU/GPL</license>
|
||||
<description>Gantry5 Framework Package</description>
|
||||
|
||||
<scriptfile>install.php</scriptfile>
|
||||
|
||||
<files folder="packages">
|
||||
<!-- Mandatory system plugin -->
|
||||
<filename type="plugin" group="system" id="gantry5" >plg_system_gantry5_v@version@.zip</filename>
|
||||
<!-- Quick icons -->
|
||||
<filename type="plugin" group="quickicon" id="gantry5" >plg_quickicon_gantry5_v@version@.zip</filename>
|
||||
<!-- Gantry framework library -->
|
||||
<filename type="library" id="gantry5" >lib_gantry5_v@version@.zip</filename>
|
||||
<!-- Common media files -->
|
||||
<filename type="file" id="media_gantry5">media_gantry5_v@version@.zip</filename>
|
||||
<!-- Administration component -->
|
||||
<filename type="component" id="com_gantry5" >com_gantry5_v@version@.zip</filename>
|
||||
<!-- Administration component -->
|
||||
<filename type="template" id="g5_hydrogen" >tpl_g5_hydrogen_v@version@.zip</filename>
|
||||
</files>
|
||||
|
||||
<updateservers>
|
||||
<server type="extension" priority="1" name="Gantry5">http://updates.gantry-framework.org/5.0/joomla/pkg_gantry5.xml</server>
|
||||
<server type="collection" priority="2" name="Gantry5">http://updates.gantry-framework.org/5.0/joomla/list.xml</server>
|
||||
</updateservers>
|
||||
</extension>
|
||||
@@ -0,0 +1,84 @@
|
||||
<?php
|
||||
defined('_JEXEC') or die;
|
||||
|
||||
class plgQuickiconGantry5 extends JPlugin
|
||||
{
|
||||
public function __construct(&$subject, $config)
|
||||
{
|
||||
// Do not load if Gantry libraries are not installed or initialised.
|
||||
if (!class_exists('Gantry5\Loader')) return;
|
||||
|
||||
parent::__construct($subject, $config);
|
||||
|
||||
// Always load language.
|
||||
$lang = JFactory::getLanguage();
|
||||
$lang->load('com_gantry5.sys') || $lang->load('com_gantry5.sys', JPATH_ADMINISTRATOR . '/components/com_gantry5');
|
||||
$this->loadLanguage('plg_quickicon_gantry5.sys');
|
||||
}
|
||||
|
||||
/**
|
||||
* Display Gantry5 backend icon
|
||||
*
|
||||
* @param string $context
|
||||
* @return array|null
|
||||
*/
|
||||
public function onGetIcons($context)
|
||||
{
|
||||
$user = JFactory::getUser();
|
||||
|
||||
if ($context != $this->params->get('context', 'mod_quickicon')
|
||||
|| !$user->authorise('core.manage', 'com_gantry5')) {
|
||||
return null;
|
||||
}
|
||||
|
||||
try {
|
||||
$updates = null;
|
||||
if ($user->authorise('core.manage', 'com_installer'))
|
||||
{
|
||||
// Initialise Gantry.
|
||||
Gantry5\Loader::setup();
|
||||
$gantry = Gantry\Framework\Gantry::instance();
|
||||
$gantry['streams'];
|
||||
|
||||
/** @var Gantry\Framework\Platform $platform */
|
||||
$platform = $gantry['platform'];
|
||||
$updates = $platform->updates();
|
||||
}
|
||||
} catch (Exception $e) {
|
||||
$app = JFactory::getApplication();
|
||||
$app->enqueueMessage($e->getMessage(), 'warning');
|
||||
$updates = false;
|
||||
}
|
||||
|
||||
$quickicons = array(
|
||||
array(
|
||||
'link' => JRoute::_('index.php?option=com_gantry5'),
|
||||
'image' => 'eye',
|
||||
'text' => JText::_('COM_GANTRY5'),
|
||||
'group' => 'MOD_QUICKICON_EXTENSIONS',
|
||||
'access' => array('core.manage', 'com_gantry5')
|
||||
)
|
||||
);
|
||||
|
||||
if ($updates === false) {
|
||||
// Disabled
|
||||
$quickicons[] = array(
|
||||
'link' => JRoute::_('index.php?option=com_gantry5'),
|
||||
'image' => 'eye',
|
||||
'text' => JText::_('PLG_QUICKICON_GANTRY5_UPDATES_DISABLED'),
|
||||
'group' => 'MOD_QUICKICON_MAINTENANCE'
|
||||
);
|
||||
|
||||
} elseif (!empty($updates)) {
|
||||
// Has updates
|
||||
$quickicons[] = array(
|
||||
'link' => JRoute::_('index.php?option=com_installer&view=update&filter_search=gantry5'),
|
||||
'image' => 'download',
|
||||
'text' => JText::_('PLG_QUICKICON_GANTRY5_UPDATE_NOW'),
|
||||
'group' => 'MOD_QUICKICON_MAINTENANCE'
|
||||
);
|
||||
}
|
||||
|
||||
return $quickicons;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<extension version="3.4" type="plugin" group="quickicon" method="upgrade">
|
||||
<name>plg_quickicon_gantry5</name>
|
||||
<version>@version@</version>
|
||||
<creationDate>@versiondate@</creationDate>
|
||||
<author>RocketTheme, LLC</author>
|
||||
<authorEmail>support@rockettheme.com</authorEmail>
|
||||
<authorUrl>http://www.rockettheme.com</authorUrl>
|
||||
<copyright>(C) 2005 - 2015 RocketTheme, LLC. All rights reserved.</copyright>
|
||||
<license>http://www.gnu.org/copyleft/gpl.html GNU/GPL</license>
|
||||
<description>Gantry5 Quick Icon</description>
|
||||
|
||||
<files>
|
||||
<filename plugin="gantry5">gantry5.php</filename>
|
||||
<folder>language</folder>
|
||||
</files>
|
||||
|
||||
<config>
|
||||
<fields name="params">
|
||||
<fieldset name="basic">
|
||||
<field name="context"
|
||||
type="text"
|
||||
default="mod_quickicon"
|
||||
description="PLG_QUICKICON_GANTRY5_GROUP_DESC"
|
||||
label="PLG_QUICKICON_GANTRY5_GROUP_LABEL"
|
||||
/>
|
||||
</fieldset>
|
||||
</fields>
|
||||
</config></extension>
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
PLG_QUICKICON_GANTRY5="Quick Icon - Gantry5"
|
||||
PLG_QUICKICON_GANTRY5_DESC="Links to Gantry5 and displays if there are updates when you visit the Control Panel page."
|
||||
|
||||
PLG_QUICKICON_GANTRY5_UPDATE_NOW="Gantry5 - Update now!"
|
||||
PLG_QUICKICON_GANTRY5_UPDATES_DISABLED="Gantry5 Updates disabled"
|
||||
|
||||
PLG_QUICKICON_GANTRY5_GROUP_DESC="The group of this plugin (this value is compared with the group value used in 'Quick Icons' modules to inject icons)"
|
||||
PLG_QUICKICON_GANTRY5_GROUP_LABEL="Group"
|
||||
+68
-57
@@ -1,10 +1,11 @@
|
||||
<?php
|
||||
defined('_JEXEC') or die;
|
||||
|
||||
jimport('joomla.plugin.plugin');
|
||||
|
||||
class plgSystemGantryadmin extends JPlugin
|
||||
class plgSystemGantry5 extends JPlugin
|
||||
{
|
||||
/**
|
||||
* @var JApplicationCms
|
||||
*/
|
||||
protected $app;
|
||||
protected $styles;
|
||||
|
||||
@@ -12,6 +13,20 @@ class plgSystemGantryadmin extends JPlugin
|
||||
{
|
||||
$this->app = JFactory::getApplication();
|
||||
|
||||
JLoader::register('Gantry5\Loader', JPATH_LIBRARIES . '/gantry5/Loader.php');
|
||||
|
||||
// Detect Gantry Framework or fail gracefully.
|
||||
if (!class_exists('Gantry5\Loader')) {
|
||||
if ($this->app->isAdmin()) {
|
||||
$this->loadLanguage('plg_system_gantry5.sys');
|
||||
$this->app->enqueueMessage(
|
||||
JText::sprintf('PLG_SYSTEM_GANTRY5_LIBRARY_MISSING', JText::_('PLG_SYSTEM_GANTRY5')),
|
||||
'warning'
|
||||
);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
parent::__construct($subject, $config);
|
||||
}
|
||||
|
||||
@@ -20,12 +35,10 @@ class plgSystemGantryadmin extends JPlugin
|
||||
*/
|
||||
public function onAfterRoute()
|
||||
{
|
||||
if ($this->app->isSite())
|
||||
{
|
||||
if ($this->app->isSite()) {
|
||||
$this->onAfterRouteSite();
|
||||
}
|
||||
elseif ($this->app->isAdmin())
|
||||
{
|
||||
|
||||
} elseif ($this->app->isAdmin()) {
|
||||
$this->onAfterRouteAdmin();
|
||||
}
|
||||
}
|
||||
@@ -46,8 +59,7 @@ class plgSystemGantryadmin extends JPlugin
|
||||
$view = $this->app->input->getString('view', 'styles');
|
||||
$task = $this->app->input->getString('task');
|
||||
|
||||
if ($option == 'com_templates' && $view == 'styles' && !$task && $type == 'html')
|
||||
{
|
||||
if ($option == 'com_templates' && $view == 'styles' && !$task && $type == 'html') {
|
||||
$this->styles = $this->getStyles();
|
||||
|
||||
$body = preg_replace_callback('/(<a\s[^>]*href=")([^"]*)("[^>]*>)(.*)(<\/a>)/siU', [$this, 'appendHtml'], $this->app->getBody());
|
||||
@@ -62,14 +74,40 @@ class plgSystemGantryadmin extends JPlugin
|
||||
private function onAfterRouteSite()
|
||||
{
|
||||
$template = $this->app->getTemplate(true);
|
||||
$path = JPATH_THEMES . '/' . $template->template;
|
||||
|
||||
if (!file_exists("{$path}/includes/gantry.php"))
|
||||
{
|
||||
if (!file_exists(JPATH_THEMES . "/{$template->template}/gantry/theme.yaml")) {
|
||||
return;
|
||||
}
|
||||
|
||||
include "{$path}/includes/gantry.php";
|
||||
$path = JPATH_THEMES . "/{$template->template}/includes/gantry.php";
|
||||
|
||||
if (is_file($path)) {
|
||||
// Manually setup Gantry5 Framework from the template.
|
||||
include $path;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
// Setup Gantry5 Framework or throw exception.
|
||||
Gantry5\Loader::setup();
|
||||
|
||||
// Get Gantry instance.
|
||||
$gantry = Gantry\Framework\Gantry::instance();
|
||||
|
||||
// Get information from the current template.
|
||||
$app = JFactory::getApplication();
|
||||
$template = $app->getTemplate(true);
|
||||
|
||||
// Initialize the template.
|
||||
$gantry['theme.id'] = $template->id;
|
||||
$gantry['theme.path'] = JPATH_THEMES . "/{$template->template}";
|
||||
$gantry['theme.name'] = $template->template;
|
||||
$gantry['theme.params'] = $template->params->toArray();
|
||||
|
||||
$themePath = $gantry['theme.path'] . '/includes/theme.php';
|
||||
|
||||
//if (is_file($themePath)) {
|
||||
include_once $themePath;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -82,53 +120,31 @@ class plgSystemGantryadmin extends JPlugin
|
||||
$option = $input->getCmd('option');
|
||||
$task = $input->getCmd('task');
|
||||
|
||||
if ($option == 'com_templates' && $task && strpos($task, 'style') === 0)
|
||||
{
|
||||
if ($option == 'com_templates' && $task && strpos($task, 'style') === 0) {
|
||||
// Get all ids.
|
||||
$cid = $input->post->get('cid', (array) $input->getInt('id'), 'array');
|
||||
|
||||
if ($cid)
|
||||
{
|
||||
if ($cid) {
|
||||
$styles = $this->getStyles();
|
||||
$selected = array_intersect(array_keys($styles), $cid);
|
||||
|
||||
// If no Gantry templates were selected, just let com_templates deal with the request.
|
||||
if (!$selected)
|
||||
{
|
||||
if (!$selected) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Special handling for tasks coming from com_template.
|
||||
switch ($task) {
|
||||
case 'style.edit':
|
||||
$id = (int) array_shift($cid);
|
||||
if (isset($styles[$id])) {
|
||||
$this->app->redirect('index.php?option=com_gantryadmin&view=about&style=' . $id);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
// $this->setRequestOption('option', 'com_gantryadmin');
|
||||
break;
|
||||
if ($task == 'style.edit') {
|
||||
$id = (int) array_shift($cid);
|
||||
|
||||
if (isset($styles[$id])) {
|
||||
$this->app->redirect("index.php?option=com_gantry5&view=about&style={$id}");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $key
|
||||
* @param string $value
|
||||
*/
|
||||
private function setRequestOption($key, $value)
|
||||
{
|
||||
$this->app->input->set($key, $value);
|
||||
$this->app->input->get->set($key, $value);
|
||||
|
||||
if (class_exists('JRequest'))
|
||||
{
|
||||
JRequest::setVar($key, $value, 'GET');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array $matches
|
||||
* @return string
|
||||
@@ -137,15 +153,13 @@ class plgSystemGantryadmin extends JPlugin
|
||||
{
|
||||
$html = $matches[0];
|
||||
|
||||
if (strpos($matches[2], 'task=style.edit'))
|
||||
{
|
||||
if (strpos($matches[2], 'task=style.edit')) {
|
||||
$uri = new JUri($matches[2]);
|
||||
$id = (int) $uri->getVar('id');
|
||||
|
||||
if ($id && $uri->getVar('option') == 'com_templates' && isset($this->styles[$id]))
|
||||
{
|
||||
if ($id && $uri->getVar('option') == 'com_templates' && isset($this->styles[$id])) {
|
||||
$html = $matches[1] . $uri . $matches[3] . $matches[4] . $matches[5];
|
||||
$html .= '<span style="white-space:nowrap;margin:0 10px;background:#439a86;color:#fff;padding:2px 4px;font-family:Helvetica,Arial,sans-serif;border-radius:3px;">Gantry</span>';
|
||||
$html .= ' <span class="label" style="background:#439a86;color:#fff;">Gantry5</span>';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -160,8 +174,7 @@ class plgSystemGantryadmin extends JPlugin
|
||||
$cache = JFactory::getCache('com_templates', '');
|
||||
$list = $cache->get('gantry-templates');
|
||||
|
||||
if ($list === false)
|
||||
{
|
||||
if ($list === false) {
|
||||
// Load styles
|
||||
$db = JFactory::getDbo();
|
||||
$query = $db
|
||||
@@ -177,11 +190,9 @@ class plgSystemGantryadmin extends JPlugin
|
||||
|
||||
$list = array();
|
||||
|
||||
foreach ($templates as $template)
|
||||
{
|
||||
if (file_exists(JPATH_SITE . '/templates/' . $template->template . '/includes/gantry.php'))
|
||||
{
|
||||
$params = new JRegistry;
|
||||
foreach ($templates as $template) {
|
||||
if (file_exists(JPATH_SITE . "/templates/{$template->template}/gantry/theme.yaml")) {
|
||||
$params = new \Joomla\Registry\Registry;
|
||||
$params->loadString($template->params);
|
||||
|
||||
$list[$template->id] = ($params->get('master') == 'true');
|
||||
@@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<extension version="3.4" type="plugin" group="system" method="upgrade">
|
||||
<name>PLG_SYSTEM_GANTRY5</name>
|
||||
<version>@version@</version>
|
||||
<creationDate>@versiondate@</creationDate>
|
||||
<author>RocketTheme, LLC</author>
|
||||
<authorEmail>support@rockettheme.com</authorEmail>
|
||||
<authorUrl>http://www.rockettheme.com</authorUrl>
|
||||
<copyright>(C) 2005 - 2015 RocketTheme, LLC. All rights reserved.</copyright>
|
||||
<license>http://www.gnu.org/copyleft/gpl.html GNU/GPL</license>
|
||||
<description>PLG_SYSTEM_GANTRY5_DESCRIPTION</description>
|
||||
|
||||
<files>
|
||||
<filename plugin="gantry5">gantry5.php</filename>
|
||||
<folder>language</folder>
|
||||
</files>
|
||||
|
||||
<config>
|
||||
<fields name="params">
|
||||
</fields>
|
||||
</config>
|
||||
</extension>
|
||||
@@ -0,0 +1,3 @@
|
||||
PLG_SYSTEM_GANTRY5="System - Gantry5 Framework"
|
||||
PLG_SYSTEM_GANTRY5_DESC="Gantry5 Framework"
|
||||
PLG_SYSTEM_GANTRY5_LIBRARY_MISSING="%s: Gantry5 Library is missing!"
|
||||
@@ -1,20 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<extension version="3.3" type="plugin" group="system" method="upgrade">
|
||||
<name>PLG_SYSTEM_GANTRYADMIN</name>
|
||||
<author>${author}</author>
|
||||
<creationDate>${build_date}</creationDate>
|
||||
<copyright>${copyright}</copyright>
|
||||
<license>${license}</license>
|
||||
<authorEmail>${authorEmail}</authorEmail>
|
||||
<authorUrl>${authorUrl}</authorUrl>
|
||||
<version>${project.version}</version>
|
||||
<description>${project.description}</description>
|
||||
<files>
|
||||
<filename plugin="gantryadmin">gantryadmin.php</filename>
|
||||
<folder>language</folder>
|
||||
</files>
|
||||
<config>
|
||||
<fields name="params">
|
||||
</fields>
|
||||
</config>
|
||||
</extension>
|
||||
-1
@@ -1 +0,0 @@
|
||||
PLG_SYSTEM_GANTRYADMIN="System - Gantry Administration"
|
||||
@@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<!DOCTYPE extensionset>
|
||||
<extensionset name="Gantry5" description="Gantry Updates">
|
||||
<extension name="Gantry5" description="Gantry Templates" element="com_gantryadmin" type="component" client="admin" version="5.0.0-DEV" detailsurl="http://update.gantry-framework.org/5.0/com_gantryadmin.xml"/>
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<extensionset name="Gantry5" description="Gantry5 Updates">
|
||||
<extension name="Gantry5" description="Gantry5 Framework" element="pkg_gantry5" type="package" client="site" version="5.0.0-DEV" detailsurl="http://update.gantry-framework.org/5.0/pkg_gantry5.xml"/>
|
||||
<extension name="Hydrogen" description="Hydrogen Template" element="tmpl_hydrogen" type="template" client="site" version="1.0.0-DEV" detailsurl="http://update.gantry-framework.org/5.0/tmpl_hydrogen.xml"/>
|
||||
</extensionset>
|
||||
|
||||
+8
-8
@@ -1,14 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<updates>
|
||||
<update>
|
||||
<name>com_gantryadmin</name>
|
||||
<description>Gantry Templates</description>
|
||||
<element>com_gantryadmin</element>
|
||||
<type>component</type>
|
||||
<name>pkg_gantry5</name>
|
||||
<description>Gantry Framework</description>
|
||||
<element>pkg_gantry5</element>
|
||||
<type>package</type>
|
||||
<version>5.0.0-DEV</version>
|
||||
<infourl title="Gantry 5.0.0-DEV">http://gantry-framework.org</infourl>
|
||||
<downloads>
|
||||
<downloadurl type="full" format="zip">http://update.gantry-framework.org/download/com_gantry-5.0.0-DEV.zip</downloadurl>
|
||||
<downloadurl type="full" format="zip">http://update.gantry-framework.org/download/pkg_gantry-5.0.0-DEV.zip</downloadurl>
|
||||
</downloads>
|
||||
<tags>
|
||||
<tag>dev</tag>
|
||||
@@ -16,7 +16,7 @@
|
||||
<maintainer>RocketTheme, LLC</maintainer>
|
||||
<maintainerurl>http://gantry-framework.org</maintainerurl>
|
||||
<section>Updates</section>
|
||||
<targetplatform name="joomla" version="3.[34]"/>
|
||||
<client>administrator</client>
|
||||
<targetplatform name="joomla" version="3.4"/>
|
||||
<client>site</client>
|
||||
</update>
|
||||
</updates>
|
||||
+5
-5
@@ -1,14 +1,14 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<updates>
|
||||
<update>
|
||||
<name>hydrogen</name>
|
||||
<name>g5_hydrogen</name>
|
||||
<description>Hydrogen Template</description>
|
||||
<element>hydrogen</element>
|
||||
<element>g5_hydrogen</element>
|
||||
<type>template</type>
|
||||
<version>1.0.0-DEV</version>
|
||||
<infourl title="Hydrogen 1.0.0-DEV">http://gantry-framework.org</infourl>
|
||||
<downloads>
|
||||
<downloadurl type="full" format="zip">http://update.gantry-framework.org/download/tmpl_hydrogen-1.0.0-DEV.zip</downloadurl>
|
||||
<downloadurl type="full" format="zip">http://update.gantry-framework.org/download/tpl_g5_hydrogen-1.0.0-DEV.zip</downloadurl>
|
||||
</downloads>
|
||||
<tags>
|
||||
<tag>dev</tag>
|
||||
@@ -16,7 +16,7 @@
|
||||
<maintainer>RocketTheme, LLC</maintainer>
|
||||
<maintainerurl>http://gantry-framework.org</maintainerurl>
|
||||
<section>Updates</section>
|
||||
<targetplatform name="joomla" version="3.[34]"/>
|
||||
<targetplatform name="joomla" version="3.4"/>
|
||||
<client>site</client>
|
||||
</update>
|
||||
</updates>
|
||||
@@ -0,0 +1,84 @@
|
||||
<?php
|
||||
namespace Gantry5;
|
||||
|
||||
class Loader
|
||||
{
|
||||
public $loader;
|
||||
|
||||
public static function setup()
|
||||
{
|
||||
self::get();
|
||||
}
|
||||
|
||||
public static function get()
|
||||
{
|
||||
static $instance;
|
||||
|
||||
if (!$instance) {
|
||||
$instance = new Loader;
|
||||
}
|
||||
|
||||
return $instance->loader;
|
||||
}
|
||||
|
||||
protected function __construct()
|
||||
{
|
||||
$errorMessage = 'You are running PHP %s, but Gantry5 Framework needs at least PHP %s to run.';
|
||||
|
||||
// Fail safe version check for PHP <5.4.0.
|
||||
if (version_compare($phpVersion = PHP_VERSION, '5.4.0', '<')) {
|
||||
throw new \RuntimeException(sprintf($errorMessage, $phpVersion, '5.4.0'));
|
||||
}
|
||||
|
||||
/**
|
||||
* @name GANTRY_VERSION
|
||||
*/
|
||||
define('GANTRY5_VERSION', '5.0.0-DEV');
|
||||
|
||||
if (!defined('DS')) {
|
||||
define('DS', DIRECTORY_SEPARATOR);
|
||||
}
|
||||
|
||||
if (!defined('GANTRY5_DEBUG')) {
|
||||
define('GANTRY5_DEBUG', false);
|
||||
}
|
||||
|
||||
$this->loader = $this->autoload();
|
||||
}
|
||||
|
||||
protected function autoload()
|
||||
{
|
||||
$base = __DIR__;
|
||||
|
||||
// Initialize auto-loading.
|
||||
if (!file_exists($base . '/vendor/autoload.php')) {
|
||||
throw new \LogicException('Please run composer in Gantry5 Library!');
|
||||
}
|
||||
|
||||
/** @var \Composer\Autoload\ClassLoader $loader */
|
||||
$loader = require_once $base . '/vendor/autoload.php';
|
||||
|
||||
// Register platform specific overrides.
|
||||
if (defined('JVERSION')) {
|
||||
define('GANTRY5_ROOT', JPATH_ROOT);
|
||||
$loader->addPsr4('Gantry\\', $base . '/classes/Gantry/Platform/Joomla', true);
|
||||
} elseif (defined('WP_DEBUG')) {
|
||||
define('GANTRY5_ROOT', ABSPATH);
|
||||
$loader->addPsr4('Gantry\\', $base . '/classes/Gantry/Platform/WordPress', true);
|
||||
} elseif (defined('GRAV_VERSION')) {
|
||||
define('GANTRY5_ROOT', rtrim(ROOT_DIR, '/'));
|
||||
$loader->addPsr4('Gantry\\', $base . '/classes/Gantry/Platform/Grav', true);
|
||||
} elseif (defined('MAGENTO_ROOT')) {
|
||||
define('GANTRY5_ROOT', MAGENTO_ROOT);
|
||||
$loader->addPsr4('Gantry\\', $base . '/classes/Gantry/Platform/Magento', true);
|
||||
} elseif (defined('IN_PHPBB')) {
|
||||
global $phpbb_root_path;
|
||||
define('GANTRY5_ROOT', $phpbb_root_path);
|
||||
} elseif (defined('PRIME_ROOT')) {
|
||||
define('GANTRY5_ROOT', PRIME_ROOT);
|
||||
$loader->addPsr4('Gantry\\', $base . '/classes/Gantry/Platform/Prime', true);
|
||||
}
|
||||
|
||||
return $loader;
|
||||
}
|
||||
}
|
||||
+2
-30
@@ -1,33 +1,5 @@
|
||||
<?php
|
||||
namespace Gantry;
|
||||
|
||||
use \Tracy\Debugger;
|
||||
include __DIR__ . '/Loader.php';
|
||||
|
||||
function bootstrap()
|
||||
{
|
||||
$errorMessage = 'You are running PHP %s, but Gantry Framework needs at least PHP %s to run.';
|
||||
|
||||
// Fail safe version check for PHP <5.4.0, which do not support Bootstrap.
|
||||
if (version_compare($phpVersion = PHP_VERSION, '5.4.0', '<')) {
|
||||
throw new \RuntimeException(sprintf($errorMessage, $phpVersion, GANTRY5_MIN_PHP));
|
||||
}
|
||||
|
||||
require_once __DIR__ . '/includes/defines.php';
|
||||
require_once __DIR__ . '/includes/autoload.php';
|
||||
|
||||
$loader = autoload();
|
||||
|
||||
// If debug mode is enabled, enable tracy in development mode.
|
||||
if (GANTRY_DEBUG && !Debugger::isEnabled()) {
|
||||
Debugger::enable(Debugger::DEVELOPMENT);
|
||||
}
|
||||
|
||||
// Allow nice debug messages by using tracy.
|
||||
if (version_compare($phpVersion, GANTRY5_MIN_PHP, '<')) {
|
||||
throw new \RuntimeException(sprintf($errorMessage, $phpVersion, GANTRY5_MIN_PHP));
|
||||
}
|
||||
|
||||
return $loader;
|
||||
}
|
||||
|
||||
return bootstrap();
|
||||
return \Gantry5\Loader::get();
|
||||
|
||||
@@ -41,7 +41,7 @@ class JsonResponse extends Response
|
||||
// Empty output buffer to make sure that the response is clean and valid.
|
||||
while (($output = ob_get_clean()) !== false) {
|
||||
// In debug mode send also output buffers (debug dumps, PHP notices and warnings).
|
||||
if ($output && defined(GANTRY_DEBUG)) {
|
||||
if ($output && defined(GANTRY5_DEBUG)) {
|
||||
$this->messages['php'][] = $output;
|
||||
}
|
||||
}
|
||||
@@ -99,7 +99,7 @@ class JsonResponse extends Response
|
||||
'message' => $e->getMessage()
|
||||
];
|
||||
|
||||
if (GANTRY_DEBUG) {
|
||||
if (GANTRY5_DEBUG) {
|
||||
$exception += [
|
||||
'type' => get_class($e),
|
||||
'file' => $e->getFile(),
|
||||
@@ -110,7 +110,7 @@ class JsonResponse extends Response
|
||||
$exceptions[] = $exception;
|
||||
$e = $e->getPrevious();
|
||||
}
|
||||
while (GANTRY_DEBUG && $e);
|
||||
while (GANTRY5_DEBUG && $e);
|
||||
|
||||
return $exceptions;
|
||||
}
|
||||
|
||||
@@ -50,7 +50,7 @@ class Router extends BaseRouter
|
||||
$this->container['theme.params'] = (new Registry($table->params))->toArray();
|
||||
}
|
||||
|
||||
$this->container['base_url'] = \JUri::base(true) . '/index.php?option=com_gantryadmin';
|
||||
$this->container['base_url'] = \JUri::base(true) . '/index.php?option=com_gantry5';
|
||||
|
||||
$this->container['ajax_suffix'] = '&format=json';
|
||||
|
||||
|
||||
@@ -74,7 +74,7 @@ class ThemeList
|
||||
$details['title'] = $template->title;
|
||||
$details['thumbnail'] = 'template_thumbnail.png';
|
||||
$details['preview_url'] = \JUri::root(false) . 'index.php?templateStyle=' . $template->id;
|
||||
$details['admin_url'] = \JRoute::_('index.php?option=com_gantryadmin&view=about&style=' . $template->id, false);
|
||||
$details['admin_url'] = \JRoute::_('index.php?option=com_gantry5&view=about&style=' . $template->id, false);
|
||||
$details['params'] = $params->toArray();
|
||||
|
||||
$list[$template->id] = $details;
|
||||
|
||||
@@ -26,12 +26,12 @@ class Platform extends BasePlatform
|
||||
|
||||
public function getMediaPaths()
|
||||
{
|
||||
return ['' => ['gantry-theme://images', 'media/gantry']];
|
||||
return ['' => ['gantry-theme://images', 'media/gantry5']];
|
||||
}
|
||||
|
||||
public function getEnginesPaths()
|
||||
{
|
||||
return ['' => ['media/gantry/engines']];
|
||||
return ['' => ['media/gantry5/engines']];
|
||||
}
|
||||
|
||||
public function getEnginePaths()
|
||||
@@ -41,7 +41,7 @@ class Platform extends BasePlatform
|
||||
|
||||
public function getAssetsPaths()
|
||||
{
|
||||
return ['' => ['gantry-theme://', 'media/gantry/assets']];
|
||||
return ['' => ['gantry-theme://', 'media/gantry5/assets']];
|
||||
}
|
||||
|
||||
public function getModules($position)
|
||||
@@ -52,7 +52,7 @@ class Platform extends BasePlatform
|
||||
|
||||
public function settings()
|
||||
{
|
||||
return \JRoute::_('index.php?option=com_config&view=component&component=com_gantryadmin', false);
|
||||
return \JRoute::_('index.php?option=com_config&view=component&component=com_gantry5', false);
|
||||
}
|
||||
|
||||
public function update()
|
||||
@@ -76,7 +76,7 @@ class Platform extends BasePlatform
|
||||
$query
|
||||
->select('*')
|
||||
->from('#__updates')
|
||||
->where("element='com_gantryadmin' OR extension_id IN ($extension_ids)");
|
||||
->where("element='com_gantry5' OR extension_id IN ($extension_ids)");
|
||||
|
||||
$db->setQuery($query);
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "gantry",
|
||||
"version":"5.0.0@dev",
|
||||
"description": "Gantry Library",
|
||||
"description": "Gantry Framework Library",
|
||||
"license": "GPLv2",
|
||||
"minimum-stability": "dev",
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Gantry\\": "src/classes/Gantry"
|
||||
"Gantry\\": "classes/Gantry"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,38 +0,0 @@
|
||||
<?php
|
||||
namespace Gantry;
|
||||
|
||||
function autoload()
|
||||
{
|
||||
$base = dirname(__DIR__);
|
||||
|
||||
// Initialize auto-loading.
|
||||
if (file_exists($base . '/../vendor/autoload.php')) {
|
||||
/** @var \Composer\Autoload\ClassLoader $loader */
|
||||
$loader = require_once $base . '/../vendor/autoload.php';
|
||||
} else {
|
||||
throw new \LogicException('Please run composer in Gantry Library!');
|
||||
}
|
||||
|
||||
// Register platform specific overrides.
|
||||
if (defined('JVERSION')) {
|
||||
define('GANTRY5_ROOT', JPATH_ROOT);
|
||||
$loader->addPsr4('Gantry\\', $base . '/classes/Gantry/Platform/Joomla', true);
|
||||
} elseif (defined('WP_DEBUG')) {
|
||||
define('GANTRY5_ROOT', ABSPATH);
|
||||
$loader->addPsr4('Gantry\\', $base . '/classes/Gantry/Platform/WordPress', true);
|
||||
} elseif (defined('GRAV_VERSION')) {
|
||||
define('GANTRY5_ROOT', rtrim(ROOT_DIR, '/'));
|
||||
$loader->addPsr4('Gantry\\', $base . '/classes/Gantry/Platform/Grav', true);
|
||||
} elseif (defined('MAGENTO_ROOT')) {
|
||||
define('GANTRY5_ROOT', MAGENTO_ROOT);
|
||||
$loader->addPsr4('Gantry\\', $base . '/classes/Gantry/Platform/Magento', true);
|
||||
} elseif (defined('IN_PHPBB')) {
|
||||
global $phpbb_root_path;
|
||||
define('GANTRY5_ROOT', $phpbb_root_path);
|
||||
} elseif (defined('PRIME_ROOT')) {
|
||||
define('GANTRY5_ROOT', PRIME_ROOT);
|
||||
$loader->addPsr4('Gantry\\', $base . '/classes/Gantry/Platform/Prime', true);
|
||||
}
|
||||
|
||||
return $loader;
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @name GANTRY_VERSION
|
||||
*/
|
||||
define('GANTRY5_VERSION', '${project.version}');
|
||||
define('GANTRY5_MIN_PHP', '5.4.0');
|
||||
|
||||
|
||||
if (!defined('DS')) {
|
||||
define('DS', DIRECTORY_SEPARATOR);
|
||||
}
|
||||
|
||||
if (!defined('GANTRY_DEBUG')) {
|
||||
define('GANTRY_DEBUG', false);
|
||||
}
|
||||
@@ -5,52 +5,30 @@ use Gantry\Framework\Gantry;
|
||||
|
||||
try
|
||||
{
|
||||
// Attempt to locate Gantry Framework if it hasn't already been loaded.
|
||||
if (!class_exists('Gantry'))
|
||||
{
|
||||
$gantryPaths = array(
|
||||
__DIR__ . '/../src/bootstrap.php', // Look if Gantry has been included to the template.
|
||||
JPATH_ROOT . '/administrator/components/com_gantryadmin/src/bootstrap.php', // Look for the admin.
|
||||
if (!class_exists('Gantry5\Loader')) {
|
||||
$this->loadLanguage('plg_system_gantry5.sys');
|
||||
$this->app->enqueueMessage(
|
||||
JText::sprintf('PLG_SYSTEM_GANTRY5_LIBRARY_MISSING', JText::_('PLG_SYSTEM_GANTRY5')),
|
||||
'warning'
|
||||
);
|
||||
|
||||
foreach ($gantryPaths as $gantryPath)
|
||||
{
|
||||
if ($gantryPath && is_file($gantryPath))
|
||||
{
|
||||
$gantryBootstrap = $gantryPath;
|
||||
}
|
||||
}
|
||||
|
||||
if (!isset($gantryBootstrap))
|
||||
{
|
||||
throw new LogicException('Gantry Framework not found!');
|
||||
}
|
||||
|
||||
require_once $gantryBootstrap;
|
||||
|
||||
unset($gantryPaths, $gantryPath, $gantryBootstrap);
|
||||
return;
|
||||
}
|
||||
|
||||
// Setup Gantry5 Framework or throw exception.
|
||||
Gantry5\Loader::setup();
|
||||
|
||||
// Get Gantry instance and return it.
|
||||
$gantry = Gantry::instance();
|
||||
|
||||
// Initialize the template if not done already.
|
||||
if (!isset($gantry['theme.id']))
|
||||
{
|
||||
$app = JFactory::getApplication();
|
||||
if ($app->isSite())
|
||||
{
|
||||
$template = $app->getTemplate(true);
|
||||
$template = $app->getTemplate(true);
|
||||
|
||||
$gantry['theme.id'] = $template->id;
|
||||
$gantry['theme.path'] = dirname(__DIR__);
|
||||
$gantry['theme.name'] = $template->template;
|
||||
$gantry['theme.params'] = $template->params->toArray();
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new RuntimeException('Template was loaded in administration without properly initializing Gantry!');
|
||||
}
|
||||
$gantry['theme.id'] = $template->id;
|
||||
$gantry['theme.path'] = dirname(__DIR__);
|
||||
$gantry['theme.name'] = $template->template;
|
||||
$gantry['theme.params'] = $template->params->toArray();
|
||||
}
|
||||
|
||||
// Only a single template can be loaded at any time.
|
||||
@@ -64,7 +42,5 @@ try
|
||||
catch (Exception $e)
|
||||
{
|
||||
// Oops, something went wrong!
|
||||
|
||||
// In frontend we want to prevent template from loading.
|
||||
JError::raiseError(500, 'Failed to load template: ' . $e->getMessage());
|
||||
}
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
TPL_G5_HYDROGEN="Hydrogen"
|
||||
TPL_G5_HYDROGEN_DESC="Hydrogen template for Gantry5"
|
||||
@@ -0,0 +1,2 @@
|
||||
TPL_G5_HYDROGEN="Hydrogen"
|
||||
TPL_G5_HYDROGEN_DESC="Hydrogen template for Gantry5"
|
||||
@@ -1,46 +1,43 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE install PUBLIC "-//Joomla! 2.5//DTD template 1.0//EN" "http://www.joomla.org/xml/dtd/2.5/template-install.dtd">
|
||||
<extension version="3.3" type="template" client="site">
|
||||
<name>hydrogen</name>
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<extension version="3.4" type="template" client="site" method="upgrade">
|
||||
<name>TPL_G5_HYDROGEN</name>
|
||||
<version>1.0</version>
|
||||
<creationDate>February 17, 2014</creationDate>
|
||||
<creationDate>@versiondate@</creationDate>
|
||||
<author>RocketTheme, LLC</author>
|
||||
<authorEmail>support@rockettheme.com</authorEmail>
|
||||
<authorUrl>http://www.rockettheme.com</authorUrl>
|
||||
<copyright>(C) 2005 - 2015 RocketTheme, LLC. All rights reserved.</copyright>
|
||||
<description>Default Gantry Template</description>
|
||||
<license>http://www.gnu.org/copyleft/gpl.html GNU/GPL</license>
|
||||
<description>TPL_G5_HYDROGEN_DESC</description>
|
||||
|
||||
<files>
|
||||
<folder>admin</folder>
|
||||
<folder>blueprints</folder>
|
||||
<folder>config</folder>
|
||||
<folder>css</folder>
|
||||
<folder>css-compiled</folder>
|
||||
<folder>fonts</folder>
|
||||
<folder>custom</folder>
|
||||
<folder>gantry</folder>
|
||||
<folder>includes</folder>
|
||||
<folder>language</folder>
|
||||
<folder>layouts</folder>
|
||||
<folder>particles</folder>
|
||||
<folder>scss</folder>
|
||||
<folder>twig</folder>
|
||||
<file>comingsoon.php</file>
|
||||
<file>component.php</file>
|
||||
<file>error.php</file>
|
||||
<file>index.php</file>
|
||||
<file>offline.php</file>
|
||||
<file>template_preview.png</file>
|
||||
<file>template_thumbnail.png</file>
|
||||
<file>unsupported.php</file>
|
||||
</files>
|
||||
|
||||
<positions>
|
||||
<position id="header" name="Header" max_positions="6">Header</position>
|
||||
<position id="drawer" name="Drawer" max_positions="1">Drawer</position>
|
||||
<position id="top" name="Top" max_positions="6">Top</position>
|
||||
<position id="utility" name="Utility" max_positions="6">Utility</position>
|
||||
<position id="showcase" name="Showcase" max_positions="6">Showcase</position>
|
||||
<position id="slideshow" name="Slideshow" max_positions="1">Slideshow</position>
|
||||
<position id="breadcrumb" name="Breadcrumbs" max_positions="1">Breadcrumbs</position>
|
||||
<position id="feature" name="Feature" max_positions="6">Feature</position>
|
||||
<position id="maintop" name="Main Top" max_positions="6">Main Top</position>
|
||||
<position id="expandedtop" name="Expanded Top" max_positions="6">Expanded Top</position>
|
||||
<position id="sidebar" name="Sidebar" max_positions="3">Sidebar</position>
|
||||
<position id="content-top" name="Content Top" max_positions="3">Content Top</position>
|
||||
<position id="content-bottom" name="Content Bottom" max_positions="3">Content Bottom</position>
|
||||
<position id="expandedbottom" name="Expanded Bottom" max_positions="6">Expanded Bottom</position>
|
||||
<position id="mainbottom" name="Main Bottom" max_positions="6">Main Bottom</position>
|
||||
<position id="extension" name="Extension" max_positions="6">Extension</position>
|
||||
<position id="fullwidth" name="Full Width" max_positions="1">Full Width</position>
|
||||
<position id="bottom" name="Bottom" max_positions="6">Bottom</position>
|
||||
<position id="footer" name="Footer" max_positions="6">Footer</position>
|
||||
<position id="copyright" name="Copyright" max_positions="6">Copyright</position>
|
||||
<position id="debug" name="Debug" max_positions="1">Debug</position>
|
||||
<position id="analytics" name="Analytics" max_positions="1">Analytics</position>
|
||||
<position id="login" name="Login" max_positions="1">Login</position>
|
||||
<position id="popup" name="Popup" max_positions="1">Popup</position>
|
||||
</positions>
|
||||
<languages folder="language">
|
||||
<language tag="en-GB">en-GB/en-GB.tpl_hydrogen.ini</language>
|
||||
<language tag="en-GB">en-GB/en-GB.tpl_hydrogen.sys.ini</language>
|
||||
</languages>
|
||||
|
||||
<config>
|
||||
<fields name="params">
|
||||
<fieldset name="advanced">
|
||||
@@ -48,7 +45,8 @@
|
||||
</fieldset>
|
||||
</fields>
|
||||
</config>
|
||||
|
||||
<updateservers>
|
||||
<server type="extension" priority="1" name="Hydrogen Template">http://updates.gantry-framework.org/5.0/joomla/tmpl_hydrogen.xml</server>
|
||||
<server type="extension" priority="1" name="Hydrogen Template">http://updates.gantry-framework.org/5.0/joomla/tpl_g5_hydrogen.xml</server>
|
||||
</updateservers>
|
||||
</extension>
|
||||
|
||||
Reference in New Issue
Block a user