Skip to content

Commit b465b8b

Browse files
authored
Merge pull request #2 from SnowCreative/branch-1
Branch 1
2 parents 5adc03b + 9e9fea6 commit b465b8b

File tree

9 files changed

+920
-0
lines changed

9 files changed

+920
-0
lines changed

_build/build.config.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
<?php
2+
// define the MODX path constants necessary for connecting to your core
3+
//define('MODX_BASE_PATH', dirname(dirname(dirname(dirname(__FILE__)))) . '/modx097/');
4+
define('MODX_CORE_PATH', '/path/to/modx/core/');
5+
define('MODX_CONFIG_KEY', 'config');
6+
?>

_build/build.transport.php

Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
<?php
2+
$tstart = explode(' ', microtime());
3+
$tstart = $tstart[1] + $tstart[0];
4+
set_time_limit(0);
5+
6+
7+
function getSnippetContent($filename) {
8+
$o = file_get_contents($filename);
9+
$o = str_replace('<?php','',$o);
10+
$o = str_replace('?>','',$o);
11+
$o = trim($o);
12+
return $o;
13+
}
14+
15+
16+
/* define package names */
17+
define('PKG_NAME','FixTreeSorting');
18+
define('PKG_NAME_LOWER',strtolower(PKG_NAME));
19+
define('PKG_VERSION','1.0');
20+
define('PKG_RELEASE','pl');
21+
22+
$root = dirname(dirname(__FILE__)).'/';
23+
$sources= array (
24+
'root' => $root,
25+
'build' => $root .'_build/',
26+
'resolvers' => $root . '_build/resolvers/',
27+
'data' => $root . '_build/data/',
28+
'events' => $root . '_build/data/events/',
29+
'elements' => $root.'core/components/'.PKG_NAME_LOWER.'/elements/',
30+
'source_core' => $root.'core/components/fixtreesorting',
31+
'docs' => $root.'core/components/fixtreesorting/docs/',
32+
);
33+
unset($root);
34+
35+
/* override with your own defines here (see build.config.sample.php) */
36+
require_once $sources['build'] . 'build.config.php';
37+
require_once MODX_CORE_PATH . 'model/modx/modx.class.php';
38+
39+
$modx= new modX();
40+
$modx->initialize('mgr');
41+
echo ''; /* used for nice formatting of log messages */
42+
$modx->setLogLevel(modX::LOG_LEVEL_INFO);
43+
$modx->setLogTarget('ECHO');
44+
45+
$modx->loadClass('transport.modPackageBuilder','',false, true);
46+
$builder = new modPackageBuilder($modx);
47+
$builder->createPackage(PKG_NAME_LOWER,PKG_VERSION,PKG_RELEASE);
48+
$builder->registerNamespace(PKG_NAME_LOWER,false,true,'{core_path}components/'.PKG_NAME_LOWER.'/');
49+
50+
$category= $modx->newObject('modCategory');
51+
$category->set('id',1);
52+
$category->set('category',PKG_NAME);
53+
54+
/* create category vehicle */
55+
$attr = array(
56+
xPDOTransport::UNIQUE_KEY => 'category',
57+
xPDOTransport::PRESERVE_KEYS => false,
58+
xPDOTransport::UPDATE_OBJECT => true,
59+
xPDOTransport::RELATED_OBJECTS => true,
60+
xPDOTransport::RELATED_OBJECT_ATTRIBUTES => array (
61+
'Snippets' => array(
62+
xPDOTransport::PRESERVE_KEYS => false,
63+
xPDOTransport::UPDATE_OBJECT => true,
64+
xPDOTransport::UNIQUE_KEY => 'name',
65+
),
66+
),
67+
);
68+
$vehicle = $builder->createVehicle($category,$attr);
69+
$builder->putVehicle($vehicle);
70+
71+
72+
73+
/* add plugins */
74+
$plugins = include $sources['data'].'transport.plugins.php';
75+
if (!is_array($plugins)) { $modx->log(modX::LOG_LEVEL_FATAL,'Adding plugins failed.'); }
76+
$attributes= array(
77+
xPDOTransport::UNIQUE_KEY => 'name',
78+
xPDOTransport::PRESERVE_KEYS => false,
79+
xPDOTransport::UPDATE_OBJECT => true,
80+
xPDOTransport::RELATED_OBJECTS => true,
81+
xPDOTransport::RELATED_OBJECT_ATTRIBUTES => array (
82+
'PluginEvents' => array(
83+
xPDOTransport::PRESERVE_KEYS => true,
84+
xPDOTransport::UPDATE_OBJECT => false,
85+
xPDOTransport::UNIQUE_KEY => array('pluginid','event'),
86+
),
87+
),
88+
);
89+
foreach ($plugins as $plugin) {
90+
$vehicle = $builder->createVehicle($plugin, $attributes);
91+
$builder->putVehicle($vehicle);
92+
}
93+
$modx->log(modX::LOG_LEVEL_INFO,'Packaged in '.count($plugins).' plugins.'); flush();
94+
unset($plugins,$plugin,$attributes);
95+
96+
97+
98+
$modx->log(modX::LOG_LEVEL_INFO,'Adding file resolvers to category...');
99+
$vehicle->resolve('file',array(
100+
'source' => $sources['source_core'],
101+
'target' => "return MODX_CORE_PATH . 'components/';",
102+
));
103+
104+
105+
$modx->log(modX::LOG_LEVEL_INFO,'Adding package attributes and setup options...');
106+
$builder->setPackageAttributes(array(
107+
'license' => file_get_contents($sources['docs'] . 'license.txt'),
108+
'readme' => file_get_contents($sources['docs'] . 'readme.txt'),
109+
'changelog' => file_get_contents($sources['docs'] . 'changelog.txt'),
110+
));
111+
112+
/* zip up package */
113+
$modx->log(modX::LOG_LEVEL_INFO,'Packing up transport package zip...');
114+
$builder->pack();
115+
116+
$tend= explode(" ", microtime());
117+
$tend= $tend[1] + $tend[0];
118+
$totalTime= sprintf("%2.4f s",($tend - $tstart));
119+
$modx->log(modX::LOG_LEVEL_INFO,"\n<br />Package Built.<br />\nExecution time: {$totalTime}\n");
120+
121+
122+
session_write_close();
123+
exit ();
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<?php
2+
3+
$events = array();
4+
5+
$events['OnDocFormSave']= $modx->newObject('modPluginEvent');
6+
$events['OnDocFormSave']->fromArray(array(
7+
'event' => 'OnDocFormSave',
8+
'priority' => 0,
9+
'propertyset' => 0,
10+
),'',true,true);
11+
12+
$events['OnDocFormDelete']= $modx->newObject('modPluginEvent');
13+
$events['OnDocFormDelete']->fromArray(array(
14+
'event' => 'OnDocFormDelete',
15+
'priority' => 0,
16+
'propertyset' => 0,
17+
),'',true,true);
18+
19+
$events['OnResourceSort']= $modx->newObject('modPluginEvent');
20+
$events['OnResourceSort']->fromArray(array(
21+
'event' => 'OnResourceSort',
22+
'priority' => 0,
23+
'propertyset' => 0,
24+
),'',true,true);
25+
26+
return $events;

_build/data/transport.plugins.php

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<?php
2+
$plugins = array();
3+
4+
/* create the plugin object */
5+
$plugins[0] = $modx->newObject('modPlugin');
6+
$plugins[0]->set('id',1);
7+
$plugins[0]->set('name','FixTreeSorting');
8+
$plugins[0]->set('description','Cleans up threads when a Resource is removed.');
9+
$plugins[0]->set('plugincode', getSnippetContent($sources['elements'] . 'plugins/fixtreesorting.plugin.php'));
10+
$plugins[0]->set('category', 0);
11+
12+
13+
$events = include $sources['events'].'events.fixtreesorting.php';
14+
if (is_array($events) && !empty($events)) {
15+
$plugins[0]->addMany($events);
16+
$modx->log(xPDO::LOG_LEVEL_INFO,'Packaged in '.count($events).' Plugin Events for FixTreeSorting.'); flush();
17+
} else {
18+
$modx->log(xPDO::LOG_LEVEL_ERROR,'Could not find plugin events for FixTreeSorting!');
19+
}
20+
unset($events);
21+
22+
return $plugins;
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
FIX TREE SORTING
2+
3+
4+
FixTreeSorting 1.0-pl
5+
==============================
6+
- Initial commit

0 commit comments

Comments
 (0)