Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions _bootstrap/index.php
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
<?php
/* Get the core config */
if (!file_exists(dirname(dirname(__FILE__)).'/config.core.php')) {
die('ERROR: missing '.dirname(dirname(__FILE__)).'/config.core.php file defining the MODX core path.');
if (!file_exists(dirname(__FILE__, 2) .'/config.core.php')) {
die('ERROR: missing '. dirname(__FILE__, 2) .'/config.core.php file defining the MODX core path.');
}

echo "<pre>";
/* Boot up MODX */
echo "Loading modX...\n";
require_once dirname(dirname(__FILE__)).'/config.core.php';
require_once dirname(__FILE__, 2) .'/config.core.php';
require_once MODX_CORE_PATH.'model/modx/modx.class.php';
$modx = new modX();
echo "Initializing manager...\n";
$modx->initialize('mgr');
$modx->getService('error','error.modError', '', '');

$componentPath = dirname(dirname(__FILE__));
$componentPath = dirname(__FILE__, 2);

$Scheduler = $modx->getService('scheduler','Scheduler', $componentPath.'/core/components/scheduler/model/scheduler/', array(
'scheduler.core_path' => $componentPath.'/core/components/scheduler/',
Expand Down
65 changes: 65 additions & 0 deletions _build/build.schema.modx3.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
<?php
/**
* Build Schema script for MODX 3
*
* @package scheduler
* @subpackage build
*/
$mtime = microtime();
$mtime = explode(" ", $mtime);
$mtime = $mtime[1] + $mtime[0];
$tstart = $mtime;
set_time_limit(0);

/* define package name */
define('PKG_NAME', 'Scheduler');
define('PKG_NAME_LOWER', strtolower(PKG_NAME));

/* define sources */
$root = dirname(dirname(__FILE__)) . '/';
$sources = [
'root' => $root,
'core' => $root . 'core/components/' . PKG_NAME_LOWER . '/',
'model' => $root . 'core/components/' . PKG_NAME_LOWER . '/model/',
'assets' => $root . 'assets/components/' . PKG_NAME_LOWER . '/',
];

/* load modx 3 and configs */
require_once dirname(dirname(__FILE__)) . '/config.core.php';
require_once MODX_CORE_PATH . 'vendor/autoload.php';

$modx = new \MODX\Revolution\modX();
$modx->initialize('mgr');
$modx->setLogLevel(\MODX\Revolution\modX::LOG_LEVEL_INFO);
$modx->setLogTarget('ECHO');
echo '<pre>'; /* used for nice formatting of log messages */

$manager = $modx->getManager();
$generator = $manager->getGenerator();

$generator->parseSchema($sources['model'] . 'schema/' . PKG_NAME_LOWER . '.mysql.schema.xml', $sources['model']);


/* Create and/or dump data */
$modx->addPackage(PKG_NAME_LOWER, $sources['model']);

$objects = [
'sTask',
'sTaskRun',
];

foreach ($objects as $object) {
if (isset($_REQUEST['dump']) && $_REQUEST['dump'] == 'true') {
$manager->removeObjectContainer($object);
}
$manager->createObjectContainer($object);
}

$mtime = microtime();
$mtime = explode(" ", $mtime);
$mtime = $mtime[1] + $mtime[0];
$tend = $mtime;
$totalTime = ($tend - $tstart);
$totalTime = sprintf("%2.4f s", $totalTime);

echo "\nExecution time: {$totalTime}\n";
185 changes: 185 additions & 0 deletions _build/build.transport.modx3.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,185 @@
<?php
/**
* Scheduler Build Script for MODX 3
*
* @package scheduler
*/

$tstart = explode(' ', microtime());
$tstart = $tstart[1] + $tstart[0];
set_time_limit(0);

if (!defined('MOREPROVIDER_BUILD')) {
/* define version */
define('PKG_NAME', 'Scheduler');
define('PKG_NAME_LOWER', strtolower(PKG_NAME));
define('PKG_VERSION', '1.7.0');
define('PKG_RELEASE', 'pl');

/* load modx 3 */
require_once dirname(dirname(__FILE__)) . '/config.core.php';
require_once MODX_CORE_PATH . 'vendor/autoload.php';

$modx = new \MODX\Revolution\modX();
$modx->initialize('mgr');
$modx->setLogLevel(\MODX\Revolution\modX::LOG_LEVEL_INFO);
$modx->setLogTarget('ECHO');

echo '<pre>';
flush();
$targetDirectory = dirname(dirname(__FILE__)) . '/_packages/';
} else {
$targetDirectory = MOREPROVIDER_BUILD_TARGET;
}

/* define build paths */
$root = dirname(dirname(__FILE__)) . '/';
$sources = [
'root' => $root,
'build' => $root . '_build/',
'data' => $root . '_build/data/',
'validators' => $root . '_build/validators/',
'resolvers' => $root . '_build/resolvers/',
'chunks' => $root . 'core/components/' . PKG_NAME_LOWER . '/elements/chunks/',
'snippets' => $root . 'core/components/' . PKG_NAME_LOWER . '/elements/snippets/',
'plugins' => $root . 'core/components/' . PKG_NAME_LOWER . '/elements/plugins/',
'lexicon' => $root . 'core/components/' . PKG_NAME_LOWER . '/lexicon/',
'docs' => $root . 'core/components/' . PKG_NAME_LOWER . '/docs/',
'elements' => $root . 'core/components/' . PKG_NAME_LOWER . '/elements/',
'source_assets' => $root . 'assets/components/' . PKG_NAME_LOWER . '/',
'source_core' => $root . 'core/components/' . PKG_NAME_LOWER . '/',
];
unset($root);

/* create package builder */
$builder = new \MODX\Revolution\Transport\modPackageBuilder($modx);
$builder->directory = $targetDirectory;
$builder->createPackage(PKG_NAME_LOWER, PKG_VERSION, PKG_RELEASE);
$builder->registerNamespace(
PKG_NAME_LOWER,
false,
true,
'{core_path}components/' . PKG_NAME_LOWER . '/',
'{assets_path}components/' . PKG_NAME_LOWER . '/'
);

/* add core files */
$modx->log(\MODX\Revolution\modX::LOG_LEVEL_INFO, 'Packaging core files...');
$builder->package->put(
[
'source' => $sources['source_core'],
'target' => "return MODX_CORE_PATH . 'components/';",
],
[
'vehicle_class' => \xPDO\Transport\xPDOFileVehicle::class,
'validate' => [
[
'type' => 'php',
'source' => $sources['validators'] . 'requirements.script.php'
]
]
]
);

/* add assets files */
$modx->log(\MODX\Revolution\modX::LOG_LEVEL_INFO, 'Packaging assets files...');
$builder->package->put(
[
'source' => $sources['source_assets'],
'target' => "return MODX_ASSETS_PATH . 'components/';",
],
[
'vehicle_class' => \xPDO\Transport\xPDOFileVehicle::class,
]
);

/* menu action */
$modx->log(\MODX\Revolution\modX::LOG_LEVEL_INFO, 'Packaging in menu...');
$menu = $modx->newObject(\MODX\Revolution\modMenu::class);
$menu->fromArray([
'text' => PKG_NAME_LOWER,
'parent' => 'components',
'description' => PKG_NAME_LOWER . '.menu_desc',
'icon' => '<i class="icon icon-large icon-calendar"></i>',
'menuindex' => 0,
'params' => '',
'handler' => '',
'permissions' => '',
'namespace' => PKG_NAME_LOWER,
'action' => 'index',
], '', true, true);

if (empty($menu)) {
$modx->log(\MODX\Revolution\modX::LOG_LEVEL_ERROR, 'Could not package in menu.');
}

$vehicle = $builder->createVehicle($menu, [
\xPDO\Transport\xPDOTransport::PRESERVE_KEYS => true,
\xPDO\Transport\xPDOTransport::UPDATE_OBJECT => true,
\xPDO\Transport\xPDOTransport::UNIQUE_KEY => 'text',
\xPDO\Transport\xPDOTransport::RELATED_OBJECTS => true,
]);

$modx->log(\MODX\Revolution\modX::LOG_LEVEL_INFO, 'Adding resolvers...');
$vehicle->resolve('php', ['source' => $sources['resolvers'] . 'resolve.tables.php']);
$vehicle->resolve('php', ['source' => $sources['resolvers'] . 'resolve.dbchanges.php']);
$builder->putVehicle($vehicle);
unset($vehicle, $menu);

/* system settings */
$modx->log(\MODX\Revolution\modX::LOG_LEVEL_INFO, 'Adding settings...');
$settingSource = include $sources['data'] . 'settings.php';
$settings = [];

foreach ($settingSource as $key => $options) {
$val = $options['value'];

if (isset($options['xtype'])) {
$xtype = $options['xtype'];
} elseif (is_int($val)) {
$xtype = 'numberfield';
} elseif (is_bool($val)) {
$xtype = 'modx-combo-boolean';
} else {
$xtype = 'textfield';
}

$setting = $modx->newObject(\MODX\Revolution\modSystemSetting::class);
$setting->fromArray([
'key' => 'scheduler.' . $key,
'xtype' => $xtype,
'value' => $options['value'],
'namespace' => PKG_NAME_LOWER,
'area' => $options['area'],
'editedon' => time(),
], '', true, true);

$vehicle = $builder->createVehicle($setting, [
\xPDO\Transport\xPDOTransport::UNIQUE_KEY => 'key',
\xPDO\Transport\xPDOTransport::PRESERVE_KEYS => true,
\xPDO\Transport\xPDOTransport::UPDATE_OBJECT => false,
]);
$builder->putVehicle($vehicle);
$settings[] = $setting;
}
$modx->log(\MODX\Revolution\modX::LOG_LEVEL_INFO, 'Packaged in ' . count($settings) . ' system settings.');
flush();

/* zip up package */
$modx->log(\MODX\Revolution\modX::LOG_LEVEL_INFO, 'Adding package attributes...');
$builder->setPackageAttributes([
'license' => file_get_contents($sources['docs'] . 'license.txt'),
'readme' => file_get_contents($sources['docs'] . 'readme.txt'),
'changelog' => file_get_contents($sources['docs'] . 'changelog.txt'),
]);

$modx->log(\MODX\Revolution\modX::LOG_LEVEL_INFO, 'Packing up transport package zip...');
$builder->pack();

$tend = explode(" ", microtime());
$tend = $tend[1] + $tend[0];
$totalTime = sprintf("%2.4f s", ($tend - $tstart));

$modx->log(\MODX\Revolution\modX::LOG_LEVEL_INFO, "Package Built. Execution time: {$totalTime}\n");
$modx->log(\MODX\Revolution\modX::LOG_LEVEL_INFO, "\n-----------------------------\n" . PKG_NAME . " " . PKG_VERSION . "-" . PKG_RELEASE . " built\n-----------------------------");
flush();
2 changes: 1 addition & 1 deletion _build/build.transport.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
/* define version */
define('PKG_NAME','Scheduler');
define('PKG_NAME_LOWER',strtolower(PKG_NAME));
define('PKG_VERSION','1.5.0');
define('PKG_VERSION','1.7.0');
define('PKG_RELEASE','pl');

/* load modx */
Expand Down
15 changes: 15 additions & 0 deletions _build/data/settings.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,23 @@
'value' => '',
],

'email_failure_tpl' => [
'area' => 'general',
'value' => '',
],

'email_failure_subject' => [
'area' => 'general',
'value' => '',
],

'delete_tasks_after' => [
'area' => 'general',
'value' => '',
],

'tasks_per_run' => [
'area' => 'general',
'value' => '1',
],
];
11 changes: 6 additions & 5 deletions _build/data/transport.menu.php
Original file line number Diff line number Diff line change
@@ -1,17 +1,18 @@
<?php

/** @var modX $modx */
$menu = $modx->newObject('modMenu');
$menu->fromArray(array(
$menu->fromArray([
'text' => PKG_NAME_LOWER,
'parent' => 'components',
'description' => PKG_NAME_LOWER.'.menu_desc',
'icon' => 'images/icons/plugin.gif',
'description' => PKG_NAME_LOWER . '.menu_desc',
'icon' => '<i class="icon icon-large icon-calendar"></i>',
'menuindex' => 0,
'params' => '',
'handler' => '',
'permissions' => '',
'namespace' => 'scheduler',
'action' => 'index',
), '', true, true);
], '', true, true);

return $menu;
return $menu;
Loading