Trying to access array offset on value of type bool
Error Type: E_NOTICE
Source File: /home4/silksto1/public_html/core/vendor/xpdo/xpdo/src/xPDO/Om/xPDOObject.php Line: 251
Line 246: }
Line 247: $rows= & $criteria->stmt;
Line 248: } else {
Line 249: $errorInfo = $xpdo->errorInfo();
Line 250: $xpdo->log(xPDO::LOG_LEVEL_ERROR, "Error preparing statement for query: {$criteria->sql} - " . print_r($errorInfo, true));
Line 251: if (($errorInfo[1] == '1146' || $errorInfo[1] == '1') && $xpdo->getOption(xPDO::OPT_AUTO_CREATE_TABLES)) {
Line 252: if ($xpdo->getManager() && $xpdo->manager->createObjectContainer($className)) {
Line 253: if (!$criteria->prepare()) {
Line 254: $xpdo->log(xPDO::LOG_LEVEL_ERROR, "Error preparing statement for query: {$criteria->sql} - " . print_r($errorInfo, true));
Line 255: } else {
Line 256: $tstart= microtime(true);
Call Stack:
#1 /home4/silksto1/public_html/_qcube4/vendor/qcubed-4/common/src/Error/Manager.php(279): QCubed\Error\Manager::handleError()
#2 (): QCubed\Error\Manager::shutdown()
Variable Dump: Show/Hide
_COOKIEarray (
)_ENVarray (
)_FILESarray (
)_FORMNULL_GETarray (
'q' => 'story-of-chinese-character',
'characterId' => '799',
)_POSTarray (
)_REQUESTarray (
'cultureKey' => 'en',
'q' => 'story-of-chinese-character',
'characterId' => '799',
)_SERVERarray (
'LSPHP_ENABLE_USER_INI' => 'on',
'PATH' => '/usr/local/bin:/usr/bin:/bin',
'TEMP' => '/tmp',
'TMP' => '/tmp',
'TMPDIR' => '/tmp',
'PWD' => '/',
'HTTP_ACCEPT' => '*/*',
'HTTP_ACCEPT_ENCODING' => 'gzip, br, zstd, deflate',
'CONTENT_LENGTH' => '0',
'HTTP_HOST' => 'silkstory.net',
'HTTP_USER_AGENT' => 'Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)',
'HTTP_X_HTTPS' => '1',
'REDIRECT_REDIRECT_UNIQUE_ID' => 'Z5MIGZAD0hj43h_N2eNCtwAA_hI',
'REDIRECT_REDIRECT_QS_ConnectionId' => '173768911359353342231108',
'REDIRECT_REDIRECT_SCRIPT_URL' => '/en/story-of-chinese-character/799',
'REDIRECT_REDIRECT_SCRIPT_URI' => 'https://silkstory.net/en/story-of-chinese-character/799',
'REDIRECT_REDIRECT_HTTPS' => 'on',
'REDIRECT_REDIRECT_SSL_TLS_SNI' => 'silkstory.net',
'REDIRECT_REDIRECT_HTTP2' => 'on',
'REDIRECT_REDIRECT_H2PUSH' => 'off',
'REDIRECT_REDIRECT_H2_PUSH' => 'off',
'REDIRECT_REDIRECT_H2_PUSHED' => '',
'REDIRECT_REDIRECT_H2_PUSHED_ON' => '',
'REDIRECT_REDIRECT_H2_STREAM_ID' => '5',
'REDIRECT_REDIRECT_H2_STREAM_TAG' => '231108-192-5',
'REDIRECT_REDIRECT_STATUS' => '200',
'REDIRECT_UNIQUE_ID' => 'Z5MIGZAD0hj43h_N2eNCtwAA_hI',
'REDIRECT_QS_ConnectionId' => '173768911359353342231108',
'REDIRECT_SCRIPT_URL' => '/en/story-of-chinese-character/799',
'REDIRECT_SCRIPT_URI' => 'https://silkstory.net/en/story-of-chinese-character/799',
'REDIRECT_HTTPS' => 'on',
'REDIRECT_SSL_TLS_SNI' => 'silkstory.net',
'REDIRECT_HTTP2' => 'on',
'REDIRECT_H2PUSH' => 'off',
'REDIRECT_H2_PUSH' => 'off',
'REDIRECT_H2_PUSHED' => '',
'REDIRECT_H2_PUSHED_ON' => '',
'REDIRECT_H2_STREAM_ID' => '5',
'REDIRECT_H2_STREAM_TAG' => '231108-192-5',
'REDIRECT_STATUS' => '200',
'UNIQUE_ID' => 'Z5MIGZAD0hj43h_N2eNCtwAA_hI',
'QS_ConnectionId' => '173768911359353342231108',
'SCRIPT_URL' => '/en/story-of-chinese-character/799',
'SCRIPT_URI' => 'https://silkstory.net/en/story-of-chinese-character/799',
'HTTPS' => 'on',
'SSL_TLS_SNI' => 'silkstory.net',
'HTTP2' => 'on',
'H2PUSH' => 'off',
'H2_PUSH' => 'off',
'H2_PUSHED' => '',
'H2_PUSHED_ON' => '',
'H2_STREAM_ID' => '5',
'H2_STREAM_TAG' => '231108-192-5',
'SERVER_SIGNATURE' => '',
'SERVER_SOFTWARE' => 'Apache',
'SERVER_NAME' => 'silkstory.net',
'SERVER_ADDR' => '162.241.244.139',
'SERVER_PORT' => '443',
'REMOTE_ADDR' => '3.16.203.175',
'DOCUMENT_ROOT' => '/home4/silksto1/public_html',
'REQUEST_SCHEME' => 'https',
'CONTEXT_PREFIX' => '',
'CONTEXT_DOCUMENT_ROOT' => '/home4/silksto1/public_html',
'SERVER_ADMIN' => 'webmaster@silkstory.net',
'SCRIPT_FILENAME' => '/home4/silksto1/public_html/index.php',
'REMOTE_PORT' => '38427',
'REDIRECT_URL' => '/en/story-of-chinese-character',
'REDIRECT_QUERY_STRING' => 'cultureKey=en&q=story-of-chinese-character&characterId=799',
'SERVER_PROTOCOL' => 'HTTP/2.0',
'REQUEST_METHOD' => 'GET',
'QUERY_STRING' => 'cultureKey=en&q=story-of-chinese-character&characterId=799',
'REQUEST_URI' => '/en/story-of-chinese-character/799',
'SCRIPT_NAME' => '/index.php',
'PHP_SELF' => '/index.php',
'REQUEST_TIME_FLOAT' => 1737689113.6370680332183837890625,
'REQUEST_TIME' => 1737689113,
'argv' =>
array (
0 => 'cultureKey=en&q=story-of-chinese-character&characterId=799',
),
'argc' => 1,
'HTTP_REFERER' => NULL,
)__composer_autoload_filesarray (
'0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => true,
'a4a119a56e50fbb293281d9a48007e0e' => true,
'7b11c4dc42b3b3023073cb14e519683c' => true,
'c964ee0ededf28c96ebd9db5099ef910' => true,
'6e3fae29631ef280660b3cdad06f25a8' => true,
'320cde22f66dd4f5d3fd621d3e88b98f' => true,
'8825ede83f2f289127722d4e842cf7e8' => true,
'e69f7f6ee287b969198c3c9d6777bd38' => true,
'37a3dc5111fe8f707ab4c132ef1dbc62' => true,
'b067bc7112e384b61c701452d53a14a8' => true,
'0d59ee240a4cd96ddbb4ff164fccea4d' => true,
'b6b991a57620e2fb6b2f66f03fe9ddc2' => true,
'8a9dc1de0ca7e01f3e08231539562f61' => true,
'532945a4b12d830ff3e086cc36a64375' => true,
'6124b4c8570aa390c21fafd04a26c69f' => true,
'ec07570ca5a812141189b1fa81503674' => true,
)config_optionsarray (
)contextKey'web'database_dsn'mysql:host=localhost;dbname=silksto1_silkstory2;charset=utf8'database_password'!Kx9TV5Gbwyp'database_user'silksto1_silkstory2'driver_optionsarray (
3 => 0,
)modxMODX\Revolution\modX::__set_state(array(
'services' =>
MODX\Revolution\Services\Container::__set_state(array(
'values' =>
array (
'config' =>
array (
'cache_key' => 'default',
'cache_handler' => 'xPDO\\Cache\\xPDOFileCache',
'cache_path' => '/home4/silksto1/public_html/core/cache/',
'table_prefix' => 'modx_',
'hydrate_fields' => true,
'hydrate_related_objects' => true,
'hydrate_adhoc_fields' => true,
'validator_class' => 'MODX\\Revolution\\Validation\\modValidator',
'validate_on_save' => true,
'cache_system_settings' => true,
'cache_system_settings_key' => 'system_settings',
'load_deprecated_global_class_aliases' => true,
'connections' =>
array (
0 =>
array (
'dsn' => 'mysql:host=localhost;dbname=silksto1_silkstory2;charset=utf8',
'username' => 'silksto1_silkstory2',
'password' => '!Kx9TV5Gbwyp',
'options' =>
array (
'connection_mutable' => true,
),
'driverOptions' =>
array (
3 => 0,
),
),
),
),
'errorHandler' =>
MODX\Revolution\Error\modErrorHandler::__set_state(array(
'modx' => NULL,
'stack' =>
array (
),
)),
'Psr\\Http\\Client\\ClientInterface' =>
Closure::__set_state(array(
)),
'Psr\\Http\\Message\\ServerRequestFactoryInterface' =>
Closure::__set_state(array(
)),
'Psr\\Http\\Message\\RequestFactoryInterface' =>
Closure::__set_state(array(
)),
'Psr\\Http\\Message\\StreamFactoryInterface' =>
Closure::__set_state(array(
)),
'lexicon' =>
MODX\Revolution\modLexicon::__set_state(array(
'modx' => NULL,
'_lexicon' =>
array (
'en' =>
array (
'breadcrumb_snippet_from_desc' => 'Resource ID of the first crumb.',
'breadcrumb_snippet_to_desc' => 'Resource ID of the last crumb.',
'breadcrumb_snippet_maxcrumbs_desc' => 'Max crumbs shown in breadcrumb',
'breadcrumb_snippet_showhidden_desc' => 'Show hidden resources in breadcrumb.',
'breadcrumb_snippet_showcontainer_desc' => 'Show container resources in breadcrumb.',
'breadcrumb_snippet_showunpub_desc' => 'Show unpublished resources in breadcrumb.',
'breadcrumb_snippet_showcurrentcrumb_desc' => 'Show current resource as a crumb.',
'breadcrumb_snippet_showbreadcrumbatHome_desc' => 'Show BreadCrumb on the home page.',
'breadcrumb_snippet_showhomecrumb_desc' => 'Show the home page as a crumb.',
'breadcrumb_snippet_useweblinkurl_desc' => 'Use the weblink url instead of the url to the weblink.',
'breadcrumb_snippet_direction_desc' => 'Direction or breadcrumb : Left To Right (ltr) or Right To Left (rtl) for Arabic language for example.',
'breadcrumb_snippet_scheme_desc' => 'URL Generation Scheme.',
'breadcrumb_snippet_containertpl_desc' => 'Container template for BreadCrumb. Can be file (@FILE ), code (@INLINE ) or chunk name.',
'breadcrumb_snippet_homecrumbtpl_desc' => 'Home crumb template for BreadCrumb. Can be file (@FILE ), code (@INLINE ) or chunk name.',
'breadcrumb_snippet_currentcrumbtpl_desc' => 'Current crumb template for BreadCrumb. Can be file (@FILE ), code (@INLINE ) or chunk name.',
'breadcrumb_snippet_linkcrumbtpl_desc' => 'Default crumb template for BreadCrumb. Can be file (@FILE ), code (@INLINE ) or chunk name.',
'breadcrumb_snippet_categorycrumbtpl_desc' => 'Default category crumb template for BreadCrumb. Can be file (@FILE ), code (@INLINE ) or chunk name.',
'breadcrumb_snippet_maxcrumbtpl_desc' => 'Max delimiter crumb template for BreadCrumb. Can be file (@FILE ), code (@INLINE ) or chunk name.',
),
),
'_paths' =>
array (
'core' => '/home4/silksto1/public_html/core/cache/lexicon/',
),
'_loadedTopics' =>
array (
0 => 'en:breadcrumb:properties',
1 => 'breadcrumb:properties',
),
'config' =>
array (
),
)),
'registry' =>
MODX\Revolution\Registry\modRegistry::__set_state(array(
'modx' => NULL,
'_options' =>
array (
),
'_invalidKeys' =>
array (
0 => 'modx',
),
'_registers' =>
array (
),
'_loggingRegister' => NULL,
'_prevLogTarget' => NULL,
'_prevLogLevel' => NULL,
)),
'parser' =>
MODX\Revolution\modParser::__set_state(array(
'modx' => NULL,
'_processingTag' => false,
'_processingElement' => false,
'_processingUncacheable' => false,
'_removingUnprocessed' => false,
'_startedProcessingUncacheable' => true,
)),
),
'factories' =>
SplObjectStorage::__set_state(array(
)),
'protected' =>
SplObjectStorage::__set_state(array(
)),
'frozen' =>
array (
),
'raw' =>
array (
),
'keys' =>
array (
'config' => true,
'errorHandler' => true,
'Psr\\Http\\Client\\ClientInterface' => true,
'Psr\\Http\\Message\\ServerRequestFactoryInterface' => true,
'Psr\\Http\\Message\\RequestFactoryInterface' => true,
'Psr\\Http\\Message\\StreamFactoryInterface' => true,
'lexicon' => true,
'registry' => true,
'parser' => true,
),
)),
'context' =>
MODX\Revolution\mysql\modContext::__set_state(array(
'config' =>
array (
'base_url' => '/en/',
'cultureKey' => 'en',
'site_start' => '2',
'site_url' => 'https://www.silkstory.net/en/',
),
'aliasMap' =>
array (
'home' => 2,
'bushou' => 4,
'ziyuan' => 5,
'manage' => 6,
'story-of-chinese-character' => 7,
'radical-info' => 8,
'all-characters' => 9,
),
'resourceMap' =>
array (
0 =>
array (
0 => 2,
1 => 4,
2 => 5,
3 => 6,
4 => 7,
5 => 8,
6 => 9,
),
),
'webLinkMap' =>
array (
),
'eventMap' =>
array (
'OnContextRemove' =>
array (
1 => '1',
),
'OnDocFormPrerender' =>
array (
1 => '1',
),
'OnDocFormSave' =>
array (
1 => '1',
),
'OnEmptyTrash' =>
array (
1 => '1',
),
'OnHandleRequest' =>
array (
2 => '2',
),
'OnResourceDuplicate' =>
array (
1 => '1',
),
'OnResourceSort' =>
array (
1 => '1',
),
),
'pluginCache' =>
array (
1 =>
array (
'id' => '1',
'source' => '0',
'property_preprocess' => '0',
'name' => 'Babel',
'description' => 'Links and synchronizes multilingual resources.',
'editor_type' => '0',
'category' => '1',
'cache_type' => '0',
'plugincode' => '/**
* Babel
*
* Copyright 2010 by Jakob Class <jakob.class@class-zec.de>
*
* This file is part of Babel.
*
* Babel is free software; you can redistribute it and/or modify it under the
* terms of the GNU General Public License as published by the Free Software
* Foundation; either version 2 of the License, or (at your option) any later
* version.
*
* Babel is distributed in the hope that it will be useful, but WITHOUT ANY
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
* A PARTICULAR PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with
* Babel; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
* Suite 330, Boston, MA 02111-1307 USA
*
* @package babel
*/
/**
* Babel Plugin to link and synchronize multilingual resources
*
* Based on ideas of Sylvain Aerni <enzyms@gmail.com>
*
* Events:
* OnDocFormPrerender,OnDocFormSave,OnEmptyTrash,OnContextRemove,OnResourceDuplicate
*
* @author Jakob Class <jakob.class@class-zec.de>
* goldsky <goldsky@virtudraft.com>
*
* @package babel
*
*/
$babel = $modx->getService(\'babel\', \'Babel\', $modx->getOption(\'babel.core_path\', null, $modx->getOption(\'core_path\').\'components/babel/\').\'model/babel/\');
/* be sure babel TV is loaded */
if (!($babel instanceof Babel) || !$babel->babelTv)
return;
switch ($modx->event->name) {
case \'OnDocFormPrerender\':
$output = \'\';
$errorMessage = \'\';
$resource = & $modx->event->params[\'resource\'];
if (!$resource) {
/* a new resource is being to created
* -> skip rendering the babel box */
break;
}
$linkedResources = $babel->getLinkedResources($resource->get(\'id\'));
if (empty($linkedResources)) {
/* always be sure that the Babel TV is set */
$babel->initBabelTv($resource);
}
/* create babel-box with links to translations */
$outputLanguageItems = \'\';
if (!$modx->lexicon) {
$modx->getService(\'lexicon\', \'modLexicon\');
}
$languagesStore = [];
$contextKeys = $babel->getGroupContextKeys($resource->get(\'context_key\'));
foreach ($contextKeys as $contextKey) {
/* for each (valid/existing) context of the context group a button will be displayed */
$context = $modx->getObject(\'modContext\', [\'key\' => $contextKey]);
if (!$context) {
$modx->log(modX::LOG_LEVEL_ERROR, \'Could not load context: \'.$contextKey);
continue;
}
$context->prepare();
$cultureKey = $context->getOption(\'cultureKey\', $modx->getOption(\'cultureKey\'));
$languagesStore[] = [$modx->lexicon(\'babel.language_\'.$cultureKey)." ($contextKey)", $contextKey];
}
$babel->config[\'context_key\'] = $resource->get(\'context_key\');
$babel->config[\'languagesStore\'] = $languagesStore;
$babel->config[\'menu\'] = $babel->getMenu($resource);
if (empty($babel->config[\'menu\'])) {
$modx->log(modX::LOG_LEVEL_ERROR, \'[Babel] Could not load menu for context key: "\'.$babel->config[\'context_key\'].\'". Try to check "babel.contextKeys" in System Settings. If this is intended, you can ignore this warning.\');
return;
}
$version = str_replace(\' \', \'\', $babel->config[\'version\']);
$isCSSCompressed = $modx->getOption(\'compress_css\');
$withVersion = $isCSSCompressed ? \'\' : \'?v=\'.$version;
$modx->controller->addCss($babel->config[\'cssUrl\'].\'babel.css\'.$withVersion);
$modx->controller->addLexiconTopic(\'babel:default\');
$isJsCompressed = $modx->getOption(\'compress_js\');
$withVersion = $isJsCompressed ? \'\' : \'?v=\'.$version;
$modx->controller->addJavascript($babel->config[\'jsUrl\'].\'babel.class.js\'.$withVersion);
$modx->controller->addHtml(\'
<script type="text/javascript">
Ext.onReady(function () {
var babel = new Babel(\'.json_encode($babel->config).\');
babel.getMenu(babel.config.menu);
});
</script>\');
break;
case \'OnDocFormSave\':
$resource = & $modx->event->params[\'resource\'];
if (!$resource) {
$modx->log(modX::LOG_LEVEL_ERROR, \'No resource provided for OnDocFormSave event\');
break;
}
if ($modx->event->params[\'mode\'] == modSystemEvent::MODE_NEW) {
/* no TV synchronization for new resources, just init Babel TV */
$babel->initBabelTv($resource);
break;
}
$babel->synchronizeTvs($resource->get(\'id\'));
break;
case \'OnEmptyTrash\':
/* remove translation links to non-existing resources */
$deletedResourceIds = & $modx->event->params[\'ids\'];
if (is_array($deletedResourceIds)) {
foreach ($deletedResourceIds as $deletedResourceId) {
$babel->removeLanguageLinksToResource($deletedResourceId);
}
}
break;
case \'OnContextRemove\':
/* remove translation links to non-existing contexts */
$context = & $modx->event->params[\'context\'];
if ($context) {
$babel->removeLanguageLinksToContext($context->get(\'key\'));
}
break;
case \'OnResourceDuplicate\':
/* init Babel TV of duplicated resources */
$resource = & $modx->event->params[\'newResource\'];
$babel->initBabelTvsRecursive($modx, $babel, $resource->get(\'id\'));
break;
case \'OnResourceSort\':
$nodesAffected = & $modx->event->params[\'nodesAffected\'];
foreach ($nodesAffected as $node) {
$linkedResources = $babel->getLinkedResources($node->get(\'id\'));
foreach ($linkedResources as $key => $id) {
if ($id === $node->get(\'id\')) {
unset($linkedResources[$key]);
}
}
$linkedResources[$node->get(\'context_key\')] = $node->get(\'id\');
$babel->updateBabelTv($linkedResources, $linkedResources);
}
break;
case \'OnSiteRefresh\':
$cacheManager = $modx->getCacheManager();
$cacheManager->refresh([
\'babel\' => [],
]);
break;
default:
break;
}
return;',
'locked' => '0',
'properties' => 'a:0:{}',
'disabled' => '0',
'moduleguid' => '',
'static' => '0',
'static_file' => '',
),
2 =>
array (
'id' => '2',
'source' => '1',
'property_preprocess' => '0',
'name' => 'gatewaySwitch',
'description' => '',
'editor_type' => '0',
'category' => '0',
'cache_type' => '0',
'plugincode' => 'if ($modx->context->get(\'key\') != "mgr") {
switch ($_REQUEST[\'cultureKey\']) {
case \'en\':
$modx->switchContext(\'en\');
break;
case \'zh\':
$modx->switchContext(\'zh\');
break;
default:
$modx->switchContext(\'web\');
break;
}
unset($_GET[\'cultureKey\']);
}',
'locked' => '0',
'properties' => 'a:0:{}',
'disabled' => '0',
'moduleguid' => '',
'static' => '0',
'static_file' => '',
),
),
'_cacheKey' => 'en/context',
'_policies' =>
array (
'MODX\\Revolution\\modAccessContext' =>
array (
'en' =>
array (
0 =>
array (
'principal' => 0,
'authority' => 9999,
'policy' =>
array (
'load' => true,
),
),
1 =>
array (
'principal' => 1,
'authority' => 9999,
'policy' =>
array (
'load' => true,
'list' => true,
'view' => true,
'save' => true,
'remove' => true,
'copy' => true,
'view_unpublished' => true,
),
),
),
),
'en' =>
array (
'MODX\\Revolution\\modAccessContext' =>
array (
'en' =>
array (
0 =>
array (
'principal' => 0,
'authority' => 9999,
'policy' =>
array (
'load' => true,
),
),
1 =>
array (
'principal' => 1,
'authority' => 9999,
'policy' =>
array (
'load' => true,
'list' => true,
'view' => true,
'save' => true,
'remove' => true,
'copy' => true,
'view_unpublished' => true,
),
),
),
),
),
),
'xpdo' => NULL,
'container' => 'silksto1_silkstory2',
'fieldNames' => NULL,
'_class' => 'MODX\\Revolution\\modContext',
'_package' => 'MODX\\Revolution\\',
'_alias' => 'MODX\\Revolution\\modContext',
'_pk' => NULL,
'_pktype' => NULL,
'_table' => '`modx_context`',
'_tableMeta' =>
array (
'engine' => 'InnoDB',
),
'_dirty' =>
array (
'key' => 'key',
'name' => 'name',
'description' => 'description',
'rank' => 'rank',
),
'_lazy' =>
array (
),
'_fields' =>
array (
'key' => 'en',
'name' => NULL,
'description' => NULL,
'rank' => 0,
),
'_fieldMeta' =>
array (
'key' =>
array (
'dbtype' => 'varchar',
'precision' => '100',
'phptype' => 'string',
'null' => false,
'index' => 'pk',
),
'name' =>
array (
'dbtype' => 'varchar',
'precision' => '191',
'phptype' => 'string',
'index' => 'index',
),
'description' =>
array (
'dbtype' => 'tinytext',
'phptype' => 'string',
),
'rank' =>
array (
'dbtype' => 'int',
'precision' => '11',
'phptype' => 'integer',
'null' => false,
'default' => 0,
'index' => 'index',
),
),
'_fieldAliases' =>
array (
),
'_aggregates' =>
array (
),
'_composites' =>
array (
'ContextResources' =>
array (
'class' => 'MODX\\Revolution\\modContextResource',
'local' => 'key',
'foreign' => 'context_key',
'cardinality' => 'many',
'owner' => 'local',
),
'ContextSettings' =>
array (
'class' => 'MODX\\Revolution\\modContextSetting',
'local' => 'key',
'foreign' => 'context_key',
'cardinality' => 'many',
'owner' => 'local',
),
'SourceElements' =>
array (
'class' => 'MODX\\Revolution\\Sources\\modMediaSourceElement',
'local' => 'key',
'foreign' => 'context_key',
'cardinality' => 'many',
'owner' => 'local',
),
'Acls' =>
array (
'class' => 'MODX\\Revolution\\modAccessContext',
'local' => 'key',
'foreign' => 'target',
'owner' => 'local',
'cardinality' => 'many',
),
),
'_relatedObjects' =>
array (
'ContextResources' =>
array (
),
'ContextSettings' =>
array (
),
'SourceElements' =>
array (
),
'Acls' =>
array (
),
),
'_validator' =>
MODX\Revolution\Validation\modValidator::__set_state(array(
'object' => NULL,
'results' =>
array (
'key' => true,
),
'messages' =>
array (
),
)),
'_validationRules' =>
array (
'key' =>
array (
'key' =>
array (
'type' => 'preg_match',
'rule' => '/^[a-zA-Z\\x7f-\\xff][a-zA-Z0-9\\x2d-\\x2f\\x7f-\\xff]*$/',
'parameters' =>
array (
'message' => 'context_err_ns_key',
),
),
),
),
'_validated' =>
array (
'key' => 'key',
),
'_validationLoaded' => true,
'_new' => true,
'_cacheFlag' => true,
'_options' =>
array (
),
)),
'contexts' =>
array (
'web' =>
MODX\Revolution\mysql\modContext::__set_state(array(
'config' =>
array (
),
'aliasMap' =>
array (
'index' => 1,
),
'resourceMap' =>
array (
0 =>
array (
0 => 1,
),
),
'webLinkMap' =>
array (
),
'eventMap' =>
array (
'OnContextRemove' =>
array (
1 => '1',
),
'OnDocFormPrerender' =>
array (
1 => '1',
),
'OnDocFormSave' =>
array (
1 => '1',
),
'OnEmptyTrash' =>
array (
1 => '1',
),
'OnHandleRequest' =>
array (
2 => '2',
),
'OnResourceDuplicate' =>
array (
1 => '1',
),
'OnResourceSort' =>
array (
1 => '1',
),
),
'pluginCache' =>
array (
1 =>
array (
'id' => '1',
'source' => '0',
'property_preprocess' => '0',
'name' => 'Babel',
'description' => 'Links and synchronizes multilingual resources.',
'editor_type' => '0',
'category' => '1',
'cache_type' => '0',
'plugincode' => '/**
* Babel
*
* Copyright 2010 by Jakob Class <jakob.class@class-zec.de>
*
* This file is part of Babel.
*
* Babel is free software; you can redistribute it and/or modify it under the
* terms of the GNU General Public License as published by the Free Software
* Foundation; either version 2 of the License, or (at your option) any later
* version.
*
* Babel is distributed in the hope that it will be useful, but WITHOUT ANY
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
* A PARTICULAR PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with
* Babel; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
* Suite 330, Boston, MA 02111-1307 USA
*
* @package babel
*/
/**
* Babel Plugin to link and synchronize multilingual resources
*
* Based on ideas of Sylvain Aerni <enzyms@gmail.com>
*
* Events:
* OnDocFormPrerender,OnDocFormSave,OnEmptyTrash,OnContextRemove,OnResourceDuplicate
*
* @author Jakob Class <jakob.class@class-zec.de>
* goldsky <goldsky@virtudraft.com>
*
* @package babel
*
*/
$babel = $modx->getService(\'babel\', \'Babel\', $modx->getOption(\'babel.core_path\', null, $modx->getOption(\'core_path\').\'components/babel/\').\'model/babel/\');
/* be sure babel TV is loaded */
if (!($babel instanceof Babel) || !$babel->babelTv)
return;
switch ($modx->event->name) {
case \'OnDocFormPrerender\':
$output = \'\';
$errorMessage = \'\';
$resource = & $modx->event->params[\'resource\'];
if (!$resource) {
/* a new resource is being to created
* -> skip rendering the babel box */
break;
}
$linkedResources = $babel->getLinkedResources($resource->get(\'id\'));
if (empty($linkedResources)) {
/* always be sure that the Babel TV is set */
$babel->initBabelTv($resource);
}
/* create babel-box with links to translations */
$outputLanguageItems = \'\';
if (!$modx->lexicon) {
$modx->getService(\'lexicon\', \'modLexicon\');
}
$languagesStore = [];
$contextKeys = $babel->getGroupContextKeys($resource->get(\'context_key\'));
foreach ($contextKeys as $contextKey) {
/* for each (valid/existing) context of the context group a button will be displayed */
$context = $modx->getObject(\'modContext\', [\'key\' => $contextKey]);
if (!$context) {
$modx->log(modX::LOG_LEVEL_ERROR, \'Could not load context: \'.$contextKey);
continue;
}
$context->prepare();
$cultureKey = $context->getOption(\'cultureKey\', $modx->getOption(\'cultureKey\'));
$languagesStore[] = [$modx->lexicon(\'babel.language_\'.$cultureKey)." ($contextKey)", $contextKey];
}
$babel->config[\'context_key\'] = $resource->get(\'context_key\');
$babel->config[\'languagesStore\'] = $languagesStore;
$babel->config[\'menu\'] = $babel->getMenu($resource);
if (empty($babel->config[\'menu\'])) {
$modx->log(modX::LOG_LEVEL_ERROR, \'[Babel] Could not load menu for context key: "\'.$babel->config[\'context_key\'].\'". Try to check "babel.contextKeys" in System Settings. If this is intended, you can ignore this warning.\');
return;
}
$version = str_replace(\' \', \'\', $babel->config[\'version\']);
$isCSSCompressed = $modx->getOption(\'compress_css\');
$withVersion = $isCSSCompressed ? \'\' : \'?v=\'.$version;
$modx->controller->addCss($babel->config[\'cssUrl\'].\'babel.css\'.$withVersion);
$modx->controller->addLexiconTopic(\'babel:default\');
$isJsCompressed = $modx->getOption(\'compress_js\');
$withVersion = $isJsCompressed ? \'\' : \'?v=\'.$version;
$modx->controller->addJavascript($babel->config[\'jsUrl\'].\'babel.class.js\'.$withVersion);
$modx->controller->addHtml(\'
<script type="text/javascript">
Ext.onReady(function () {
var babel = new Babel(\'.json_encode($babel->config).\');
babel.getMenu(babel.config.menu);
});
</script>\');
break;
case \'OnDocFormSave\':
$resource = & $modx->event->params[\'resource\'];
if (!$resource) {
$modx->log(modX::LOG_LEVEL_ERROR, \'No resource provided for OnDocFormSave event\');
break;
}
if ($modx->event->params[\'mode\'] == modSystemEvent::MODE_NEW) {
/* no TV synchronization for new resources, just init Babel TV */
$babel->initBabelTv($resource);
break;
}
$babel->synchronizeTvs($resource->get(\'id\'));
break;
case \'OnEmptyTrash\':
/* remove translation links to non-existing resources */
$deletedResourceIds = & $modx->event->params[\'ids\'];
if (is_array($deletedResourceIds)) {
foreach ($deletedResourceIds as $deletedResourceId) {
$babel->removeLanguageLinksToResource($deletedResourceId);
}
}
break;
case \'OnContextRemove\':
/* remove translation links to non-existing contexts */
$context = & $modx->event->params[\'context\'];
if ($context) {
$babel->removeLanguageLinksToContext($context->get(\'key\'));
}
break;
case \'OnResourceDuplicate\':
/* init Babel TV of duplicated resources */
$resource = & $modx->event->params[\'newResource\'];
$babel->initBabelTvsRecursive($modx, $babel, $resource->get(\'id\'));
break;
case \'OnResourceSort\':
$nodesAffected = & $modx->event->params[\'nodesAffected\'];
foreach ($nodesAffected as $node) {
$linkedResources = $babel->getLinkedResources($node->get(\'id\'));
foreach ($linkedResources as $key => $id) {
if ($id === $node->get(\'id\')) {
unset($linkedResources[$key]);
}
}
$linkedResources[$node->get(\'context_key\')] = $node->get(\'id\');
$babel->updateBabelTv($linkedResources, $linkedResources);
}
break;
case \'OnSiteRefresh\':
$cacheManager = $modx->getCacheManager();
$cacheManager->refresh([
\'babel\' => [],
]);
break;
default:
break;
}
return;',
'locked' => '0',
'properties' => 'a:0:{}',
'disabled' => '0',
'moduleguid' => '',
'static' => '0',
'static_file' => '',
),
2 =>
array (
'id' => '2',
'source' => '1',
'property_preprocess' => '0',
'name' => 'gatewaySwitch',
'description' => '',
'editor_type' => '0',
'category' => '0',
'cache_type' => '0',
'plugincode' => 'if ($modx->context->get(\'key\') != "mgr") {
switch ($_REQUEST[\'cultureKey\']) {
case \'en\':
$modx->switchContext(\'en\');
break;
case \'zh\':
$modx->switchContext(\'zh\');
break;
default:
$modx->switchContext(\'web\');
break;
}
unset($_GET[\'cultureKey\']);
}',
'locked' => '0',
'properties' => 'a:0:{}',
'disabled' => '0',
'moduleguid' => '',
'static' => '0',
'static_file' => '',
),
),
'_cacheKey' => 'web/context',
'_policies' =>
array (
'MODX\\Revolution\\modAccessContext' =>
array (
'web' =>
array (
0 =>
array (
'principal' => 0,
'authority' => 9999,
'policy' =>
array (
'load' => true,
),
),
1 =>
array (
'principal' => 1,
'authority' => 0,
'policy' =>
array (
'about' => true,
'access_permissions' => true,
'actions' => true,
'change_password' => true,
'change_profile' => true,
'charsets' => true,
'class_map' => true,
'components' => true,
'content_types' => true,
'countries' => true,
'create' => true,
'credits' => true,
'customize_forms' => true,
'dashboards' => true,
'database' => true,
'database_truncate' => true,
'delete_category' => true,
'delete_chunk' => true,
'delete_context' => true,
'delete_document' => true,
'delete_eventlog' => true,
'delete_plugin' => true,
'delete_propertyset' => true,
'delete_role' => true,
'delete_snippet' => true,
'delete_static_resource' => true,
'delete_symlink' => true,
'delete_template' => true,
'delete_tv' => true,
'delete_user' => true,
'delete_weblink' => true,
'directory_chmod' => true,
'directory_create' => true,
'directory_list' => true,
'directory_remove' => true,
'directory_update' => true,
'edit_category' => true,
'edit_chunk' => true,
'edit_context' => true,
'edit_document' => true,
'edit_locked' => true,
'edit_plugin' => true,
'edit_propertyset' => true,
'edit_role' => true,
'edit_snippet' => true,
'edit_static_resource' => true,
'edit_symlink' => true,
'edit_template' => true,
'edit_tv' => true,
'edit_user' => true,
'edit_weblink' => true,
'element_tree' => true,
'empty_cache' => true,
'error_log_erase' => true,
'error_log_view' => true,
'events' => true,
'export_static' => true,
'file_create' => true,
'file_list' => true,
'file_manager' => true,
'file_remove' => true,
'file_tree' => true,
'file_unpack' => true,
'file_update' => true,
'file_upload' => true,
'file_view' => true,
'flush_sessions' => true,
'frames' => true,
'help' => true,
'home' => true,
'language' => true,
'languages' => true,
'lexicons' => true,
'list' => true,
'load' => true,
'logout' => true,
'mgr_log_view' => true,
'mgr_log_erase' => true,
'menu_reports' => true,
'menu_security' => true,
'menu_site' => true,
'menu_support' => true,
'menu_system' => true,
'menu_tools' => true,
'menu_trash' => true,
'menu_user' => true,
'menus' => true,
'messages' => true,
'namespaces' => true,
'new_category' => true,
'new_chunk' => true,
'new_context' => true,
'new_document' => true,
'new_document_in_root' => true,
'new_plugin' => true,
'new_propertyset' => true,
'new_role' => true,
'new_snippet' => true,
'new_static_resource' => true,
'new_symlink' => true,
'new_template' => true,
'new_tv' => true,
'new_user' => true,
'new_weblink' => true,
'packages' => true,
'policy_delete' => true,
'policy_edit' => true,
'policy_new' => true,
'policy_save' => true,
'policy_template_delete' => true,
'policy_template_edit' => true,
'policy_template_new' => true,
'policy_template_save' => true,
'policy_template_view' => true,
'policy_view' => true,
'property_sets' => true,
'providers' => true,
'publish_document' => true,
'purge_deleted' => true,
'remove' => true,
'remove_locks' => true,
'resource_duplicate' => true,
'resource_quick_create' => true,
'resource_quick_update' => true,
'resource_tree' => true,
'resourcegroup_delete' => true,
'resourcegroup_edit' => true,
'resourcegroup_new' => true,
'resourcegroup_resource_edit' => true,
'resourcegroup_resource_list' => true,
'resourcegroup_save' => true,
'resourcegroup_view' => true,
'save' => true,
'save_category' => true,
'save_chunk' => true,
'save_context' => true,
'save_document' => true,
'save_plugin' => true,
'save_propertyset' => true,
'save_role' => true,
'save_snippet' => true,
'save_template' => true,
'save_tv' => true,
'save_user' => true,
'search' => true,
'set_sudo' => true,
'settings' => true,
'source_delete' => true,
'source_edit' => true,
'source_save' => true,
'source_view' => true,
'sources' => true,
'steal_locks' => true,
'tree_show_element_ids' => true,
'tree_show_resource_ids' => true,
'undelete_document' => true,
'unlock_element_properties' => true,
'unpublish_document' => true,
'usergroup_delete' => true,
'usergroup_edit' => true,
'usergroup_new' => true,
'usergroup_save' => true,
'usergroup_user_edit' => true,
'usergroup_user_list' => true,
'usergroup_view' => true,
'view' => true,
'view_category' => true,
'view_chunk' => true,
'view_context' => true,
'view_document' => true,
'view_element' => true,
'view_eventlog' => true,
'view_offline' => true,
'view_plugin' => true,
'view_propertyset' => true,
'view_role' => true,
'view_snippet' => true,
'view_sysinfo' => true,
'view_template' => true,
'view_tv' => true,
'view_unpublished' => true,
'view_user' => true,
'workspaces' => true,
),
),
),
),
),
'xpdo' => NULL,
'container' => 'silksto1_silkstory2',
'fieldNames' => NULL,
'_class' => 'MODX\\Revolution\\modContext',
'_package' => 'MODX\\Revolution\\',
'_alias' => 'MODX\\Revolution\\modContext',
'_pk' => NULL,
'_pktype' => NULL,
'_table' => '`modx_context`',
'_tableMeta' =>
array (
'engine' => 'InnoDB',
),
'_dirty' =>
array (
'key' => 'key',
'name' => 'name',
'description' => 'description',
'rank' => 'rank',
),
'_lazy' =>
array (
),
'_fields' =>
array (
'key' => 'web',
'name' => NULL,
'description' => NULL,
'rank' => 0,
),
'_fieldMeta' =>
array (
'key' =>
array (
'dbtype' => 'varchar',
'precision' => '100',
'phptype' => 'string',
'null' => false,
'index' => 'pk',
),
'name' =>
array (
'dbtype' => 'varchar',
'precision' => '191',
'phptype' => 'string',
'index' => 'index',
),
'description' =>
array (
'dbtype' => 'tinytext',
'phptype' => 'string',
),
'rank' =>
array (
'dbtype' => 'int',
'precision' => '11',
'phptype' => 'integer',
'null' => false,
'default' => 0,
'index' => 'index',
),
),
'_fieldAliases' =>
array (
),
'_aggregates' =>
array (
),
'_composites' =>
array (
'ContextResources' =>
array (
'class' => 'MODX\\Revolution\\modContextResource',
'local' => 'key',
'foreign' => 'context_key',
'cardinality' => 'many',
'owner' => 'local',
),
'ContextSettings' =>
array (
'class' => 'MODX\\Revolution\\modContextSetting',
'local' => 'key',
'foreign' => 'context_key',
'cardinality' => 'many',
'owner' => 'local',
),
'SourceElements' =>
array (
'class' => 'MODX\\Revolution\\Sources\\modMediaSourceElement',
'local' => 'key',
'foreign' => 'context_key',
'cardinality' => 'many',
'owner' => 'local',
),
'Acls' =>
array (
'class' => 'MODX\\Revolution\\modAccessContext',
'local' => 'key',
'foreign' => 'target',
'owner' => 'local',
'cardinality' => 'many',
),
),
'_relatedObjects' =>
array (
'ContextResources' =>
array (
),
'ContextSettings' =>
array (
),
'SourceElements' =>
array (
),
'Acls' =>
array (
),
),
'_validator' =>
MODX\Revolution\Validation\modValidator::__set_state(array(
'object' => NULL,
'results' =>
array (
'key' => true,
),
'messages' =>
array (
),
)),
'_validationRules' =>
array (
'key' =>
array (
'key' =>
array (
'type' => 'preg_match',
'rule' => '/^[a-zA-Z\\x7f-\\xff][a-zA-Z0-9\\x2d-\\x2f\\x7f-\\xff]*$/',
'parameters' =>
array (
'message' => 'context_err_ns_key',
),
),
),
),
'_validated' =>
array (
'key' => 'key',
),
'_validationLoaded' => true,
'_new' => true,
'_cacheFlag' => true,
'_options' =>
array (
),
)),
'en' =>
MODX\Revolution\mysql\modContext::__set_state(array(
'config' =>
array (
'base_url' => '/en/',
'cultureKey' => 'en',
'site_start' => '2',
'site_url' => 'https://www.silkstory.net/en/',
),
'aliasMap' =>
array (
'home' => 2,
'bushou' => 4,
'ziyuan' => 5,
'manage' => 6,
'story-of-chinese-character' => 7,
'radical-info' => 8,
'all-characters' => 9,
),
'resourceMap' =>
array (
0 =>
array (
0 => 2,
1 => 4,
2 => 5,
3 => 6,
4 => 7,
5 => 8,
6 => 9,
),
),
'webLinkMap' =>
array (
),
'eventMap' =>
array (
'OnContextRemove' =>
array (
1 => '1',
),
'OnDocFormPrerender' =>
array (
1 => '1',
),
'OnDocFormSave' =>
array (
1 => '1',
),
'OnEmptyTrash' =>
array (
1 => '1',
),
'OnHandleRequest' =>
array (
2 => '2',
),
'OnResourceDuplicate' =>
array (
1 => '1',
),
'OnResourceSort' =>
array (
1 => '1',
),
),
'pluginCache' =>
array (
1 =>
array (
'id' => '1',
'source' => '0',
'property_preprocess' => '0',
'name' => 'Babel',
'description' => 'Links and synchronizes multilingual resources.',
'editor_type' => '0',
'category' => '1',
'cache_type' => '0',
'plugincode' => '/**
* Babel
*
* Copyright 2010 by Jakob Class <jakob.class@class-zec.de>
*
* This file is part of Babel.
*
* Babel is free software; you can redistribute it and/or modify it under the
* terms of the GNU General Public License as published by the Free Software
* Foundation; either version 2 of the License, or (at your option) any later
* version.
*
* Babel is distributed in the hope that it will be useful, but WITHOUT ANY
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
* A PARTICULAR PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with
* Babel; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
* Suite 330, Boston, MA 02111-1307 USA
*
* @package babel
*/
/**
* Babel Plugin to link and synchronize multilingual resources
*
* Based on ideas of Sylvain Aerni <enzyms@gmail.com>
*
* Events:
* OnDocFormPrerender,OnDocFormSave,OnEmptyTrash,OnContextRemove,OnResourceDuplicate
*
* @author Jakob Class <jakob.class@class-zec.de>
* goldsky <goldsky@virtudraft.com>
*
* @package babel
*
*/
$babel = $modx->getService(\'babel\', \'Babel\', $modx->getOption(\'babel.core_path\', null, $modx->getOption(\'core_path\').\'components/babel/\').\'model/babel/\');
/* be sure babel TV is loaded */
if (!($babel instanceof Babel) || !$babel->babelTv)
return;
switch ($modx->event->name) {
case \'OnDocFormPrerender\':
$output = \'\';
$errorMessage = \'\';
$resource = & $modx->event->params[\'resource\'];
if (!$resource) {
/* a new resource is being to created
* -> skip rendering the babel box */
break;
}
$linkedResources = $babel->getLinkedResources($resource->get(\'id\'));
if (empty($linkedResources)) {
/* always be sure that the Babel TV is set */
$babel->initBabelTv($resource);
}
/* create babel-box with links to translations */
$outputLanguageItems = \'\';
if (!$modx->lexicon) {
$modx->getService(\'lexicon\', \'modLexicon\');
}
$languagesStore = [];
$contextKeys = $babel->getGroupContextKeys($resource->get(\'context_key\'));
foreach ($contextKeys as $contextKey) {
/* for each (valid/existing) context of the context group a button will be displayed */
$context = $modx->getObject(\'modContext\', [\'key\' => $contextKey]);
if (!$context) {
$modx->log(modX::LOG_LEVEL_ERROR, \'Could not load context: \'.$contextKey);
continue;
}
$context->prepare();
$cultureKey = $context->getOption(\'cultureKey\', $modx->getOption(\'cultureKey\'));
$languagesStore[] = [$modx->lexicon(\'babel.language_\'.$cultureKey)." ($contextKey)", $contextKey];
}
$babel->config[\'context_key\'] = $resource->get(\'context_key\');
$babel->config[\'languagesStore\'] = $languagesStore;
$babel->config[\'menu\'] = $babel->getMenu($resource);
if (empty($babel->config[\'menu\'])) {
$modx->log(modX::LOG_LEVEL_ERROR, \'[Babel] Could not load menu for context key: "\'.$babel->config[\'context_key\'].\'". Try to check "babel.contextKeys" in System Settings. If this is intended, you can ignore this warning.\');
return;
}
$version = str_replace(\' \', \'\', $babel->config[\'version\']);
$isCSSCompressed = $modx->getOption(\'compress_css\');
$withVersion = $isCSSCompressed ? \'\' : \'?v=\'.$version;
$modx->controller->addCss($babel->config[\'cssUrl\'].\'babel.css\'.$withVersion);
$modx->controller->addLexiconTopic(\'babel:default\');
$isJsCompressed = $modx->getOption(\'compress_js\');
$withVersion = $isJsCompressed ? \'\' : \'?v=\'.$version;
$modx->controller->addJavascript($babel->config[\'jsUrl\'].\'babel.class.js\'.$withVersion);
$modx->controller->addHtml(\'
<script type="text/javascript">
Ext.onReady(function () {
var babel = new Babel(\'.json_encode($babel->config).\');
babel.getMenu(babel.config.menu);
});
</script>\');
break;
case \'OnDocFormSave\':
$resource = & $modx->event->params[\'resource\'];
if (!$resource) {
$modx->log(modX::LOG_LEVEL_ERROR, \'No resource provided for OnDocFormSave event\');
break;
}
if ($modx->event->params[\'mode\'] == modSystemEvent::MODE_NEW) {
/* no TV synchronization for new resources, just init Babel TV */
$babel->initBabelTv($resource);
break;
}
$babel->synchronizeTvs($resource->get(\'id\'));
break;
case \'OnEmptyTrash\':
/* remove translation links to non-existing resources */
$deletedResourceIds = & $modx->event->params[\'ids\'];
if (is_array($deletedResourceIds)) {
foreach ($deletedResourceIds as $deletedResourceId) {
$babel->removeLanguageLinksToResource($deletedResourceId);
}
}
break;
case \'OnContextRemove\':
/* remove translation links to non-existing contexts */
$context = & $modx->event->params[\'context\'];
if ($context) {
$babel->removeLanguageLinksToContext($context->get(\'key\'));
}
break;
case \'OnResourceDuplicate\':
/* init Babel TV of duplicated resources */
$resource = & $modx->event->params[\'newResource\'];
$babel->initBabelTvsRecursive($modx, $babel, $resource->get(\'id\'));
break;
case \'OnResourceSort\':
$nodesAffected = & $modx->event->params[\'nodesAffected\'];
foreach ($nodesAffected as $node) {
$linkedResources = $babel->getLinkedResources($node->get(\'id\'));
foreach ($linkedResources as $key => $id) {
if ($id === $node->get(\'id\')) {
unset($linkedResources[$key]);
}
}
$linkedResources[$node->get(\'context_key\')] = $node->get(\'id\');
$babel->updateBabelTv($linkedResources, $linkedResources);
}
break;
case \'OnSiteRefresh\':
$cacheManager = $modx->getCacheManager();
$cacheManager->refresh([
\'babel\' => [],
]);
break;
default:
break;
}
return;',
'locked' => '0',
'properties' => 'a:0:{}',
'disabled' => '0',
'moduleguid' => '',
'static' => '0',
'static_file' => '',
),
2 =>
array (
'id' => '2',
'source' => '1',
'property_preprocess' => '0',
'name' => 'gatewaySwitch',
'description' => '',
'editor_type' => '0',
'category' => '0',
'cache_type' => '0',
'plugincode' => 'if ($modx->context->get(\'key\') != "mgr") {
switch ($_REQUEST[\'cultureKey\']) {
case \'en\':
$modx->switchContext(\'en\');
break;
case \'zh\':
$modx->switchContext(\'zh\');
break;
default:
$modx->switchContext(\'web\');
break;
}
unset($_GET[\'cultureKey\']);
}',
'locked' => '0',
'properties' => 'a:0:{}',
'disabled' => '0',
'moduleguid' => '',
'static' => '0',
'static_file' => '',
),
),
'_cacheKey' => 'en/context',
'_policies' =>
array (
'MODX\\Revolution\\modAccessContext' =>
array (
'en' =>
array (
0 =>
array (
'principal' => 0,
'authority' => 9999,
'policy' =>
array (
'load' => true,
),
),
1 =>
array (
'principal' => 1,
'authority' => 9999,
'policy' =>
array (
'load' => true,
'list' => true,
'view' => true,
'save' => true,
'remove' => true,
'copy' => true,
'view_unpublished' => true,
),
),
),
),
'en' =>
array (
'MODX\\Revolution\\modAccessContext' =>
array (
'en' =>
array (
0 =>
array (
'principal' => 0,
'authority' => 9999,
'policy' =>
array (
'load' => true,
),
),
1 =>
array (
'principal' => 1,
'authority' => 9999,
'policy' =>
array (
'load' => true,
'list' => true,
'view' => true,
'save' => true,
'remove' => true,
'copy' => true,
'view_unpublished' => true,
),
),
),
),
),
),
'xpdo' => NULL,
'container' => 'silksto1_silkstory2',
'fieldNames' => NULL,
'_class' => 'MODX\\Revolution\\modContext',
'_package' => 'MODX\\Revolution\\',
'_alias' => 'MODX\\Revolution\\modContext',
'_pk' => NULL,
'_pktype' => NULL,
'_table' => '`modx_context`',
'_tableMeta' =>
array (
'engine' => 'InnoDB',
),
'_dirty' =>
array (
'key' => 'key',
'name' => 'name',
'description' => 'description',
'rank' => 'rank',
),
'_lazy' =>
array (
),
'_fields' =>
array (
'key' => 'en',
'name' => NULL,
'description' => NULL,
'rank' => 0,
),
'_fieldMeta' =>
array (
'key' =>
array (
'dbtype' => 'varchar',
'precision' => '100',
'phptype' => 'string',
'null' => false,
'index' => 'pk',
),
'name' =>
array (
'dbtype' => 'varchar',
'precision' => '191',
'phptype' => 'string',
'index' => 'index',
),
'description' =>
array (
'dbtype' => 'tinytext',
'phptype' => 'string',
),
'rank' =>
array (
'dbtype' => 'int',
'precision' => '11',
'phptype' => 'integer',
'null' => false,
'default' => 0,
'index' => 'index',
),
),
'_fieldAliases' =>
array (
),
'_aggregates' =>
array (
),
'_composites' =>
array (
'ContextResources' =>
array (
'class' => 'MODX\\Revolution\\modContextResource',
'local' => 'key',
'foreign' => 'context_key',
'cardinality' => 'many',
'owner' => 'local',
),
'ContextSettings' =>
array (
'class' => 'MODX\\Revolution\\modContextSetting',
'local' => 'key',
'foreign' => 'context_key',
'cardinality' => 'many',
'owner' => 'local',
),
'SourceElements' =>
array (
'class' => 'MODX\\Revolution\\Sources\\modMediaSourceElement',
'local' => 'key',
'foreign' => 'context_key',
'cardinality' => 'many',
'owner' => 'local',
),
'Acls' =>
array (
'class' => 'MODX\\Revolution\\modAccessContext',
'local' => 'key',
'foreign' => 'target',
'owner' => 'local',
'cardinality' => 'many',
),
),
'_relatedObjects' =>
array (
'ContextResources' =>
array (
),
'ContextSettings' =>
array (
),
'SourceElements' =>
array (
),
'Acls' =>
array (
),
),
'_validator' =>
MODX\Revolution\Validation\modValidator::__set_state(array(
'object' => NULL,
'results' =>
array (
'key' => true,
),
'messages' =>
array (
),
)),
'_validationRules' =>
array (
'key' =>
array (
'key' =>
array (
'type' => 'preg_match',
'rule' => '/^[a-zA-Z\\x7f-\\xff][a-zA-Z0-9\\x2d-\\x2f\\x7f-\\xff]*$/',
'parameters' =>
array (
'message' => 'context_err_ns_key',
),
),
),
),
'_validated' =>
array (
'key' => 'key',
),
'_validationLoaded' => true,
'_new' => true,
'_cacheFlag' => true,
'_options' =>
array (
),
)),
),
'request' =>
MODX\Revolution\modRequest::__set_state(array(
'modx' => NULL,
'method' => NULL,
'parameters' =>
array (
'GET' =>
array (
'q' => 'story-of-chinese-character',
'characterId' => '799',
),
'POST' =>
array (
),
'COOKIE' =>
array (
),
'REQUEST' =>
array (
'cultureKey' => 'en',
'q' => 'story-of-chinese-character',
'characterId' => '799',
),
),
'headers' => NULL,
)),
'response' =>
MODX\Revolution\modResponse::__set_state(array(
'modx' => NULL,
'header' => NULL,
'body' => NULL,
'contentType' =>
MODX\Revolution\mysql\modContentType::__set_state(array(
'xpdo' => NULL,
'container' => 'silksto1_silkstory2',
'fieldNames' => NULL,
'_class' => 'MODX\\Revolution\\modContentType',
'_package' => 'MODX\\Revolution\\',
'_alias' => 'ContentType',
'_pk' => NULL,
'_pktype' => NULL,
'_table' => '`modx_content_type`',
'_tableMeta' =>
array (
'engine' => 'InnoDB',
),
'_dirty' =>
array (
'id' => 'id',
'name' => 'name',
'description' => 'description',
'mime_type' => 'mime_type',
'file_extensions' => 'file_extensions',
'icon' => 'icon',
'headers' => 'headers',
'binary' => 'binary',
),
'_lazy' =>
array (
),
'_fields' =>
array (
'id' => 1,
'name' => 'HTML',
'description' => 'HTML content',
'mime_type' => 'text/html',
'file_extensions' => '',
'icon' => '',
'headers' => NULL,
'binary' => 0,
),
'_fieldMeta' =>
array (
'id' =>
array (
'dbtype' => 'INTEGER',
'phptype' => 'integer',
'null' => false,
'index' => 'pk',
'generated' => 'native',
'attributes' => 'unsigned',
),
'name' =>
array (
'dbtype' => 'varchar',
'precision' => '191',
'phptype' => 'string',
'null' => false,
'index' => 'unique',
),
'description' =>
array (
'dbtype' => 'tinytext',
'phptype' => 'string',
'null' => true,
),
'mime_type' =>
array (
'dbtype' => 'tinytext',
'phptype' => 'string',
),
'file_extensions' =>
array (
'dbtype' => 'tinytext',
'phptype' => 'string',
),
'icon' =>
array (
'dbtype' => 'tinytext',
'phptype' => 'string',
'null' => true,
),
'headers' =>
array (
'dbtype' => 'mediumtext',
'phptype' => 'array',
),
'binary' =>
array (
'dbtype' => 'tinyint',
'precision' => '1',
'attributes' => 'unsigned',
'phptype' => 'boolean',
'null' => false,
'default' => 0,
),
),
'_fieldAliases' =>
array (
),
'_aggregates' =>
array (
'Resources' =>
array (
'class' => 'MODX\\Revolution\\modResource',
'local' => 'id',
'foreign' => 'content_type',
'owner' => 'local',
'cardinality' => 'many',
),
),
'_composites' =>
array (
),
'_relatedObjects' =>
array (
'Resources' =>
array (
),
),
'_validator' => NULL,
'_validationRules' =>
array (
),
'_validated' =>
array (
),
'_validationLoaded' => false,
'_new' => true,
'_cacheFlag' => true,
'_options' =>
array (
),
)),
)),
'parser' =>
MODX\Revolution\modParser::__set_state(array(
'modx' => NULL,
'_processingTag' => false,
'_processingElement' => false,
'_processingUncacheable' => false,
'_removingUnprocessed' => false,
'_startedProcessingUncacheable' => true,
)),
'resourceListing' => NULL,
'resourceMap' =>
array (
0 =>
array (
0 => 2,
1 => 4,
2 => 5,
3 => 6,
4 => 7,
5 => 8,
6 => 9,
),
),
'aliasMap' =>
array (
'home' => 2,
'bushou' => 4,
'ziyuan' => 5,
'manage' => 6,
'story-of-chinese-character' => 7,
'radical-info' => 8,
'all-characters' => 9,
),
'event' =>
MODX\Revolution\modSystemEvent::__set_state(array(
'name' => 'OnHandleRequest',
'activePlugin' => '',
'plugin' => NULL,
'propertySet' => '',
'_propagate' => true,
'_output' => '',
'activated' => true,
'returnedValues' => NULL,
)),
'eventMap' =>
array (
'OnContextRemove' =>
array (
1 => '1',
),
'OnDocFormPrerender' =>
array (
1 => '1',
),
'OnDocFormSave' =>
array (
1 => '1',
),
'OnEmptyTrash' =>
array (
1 => '1',
),
'OnHandleRequest' =>
array (
2 => '2',
),
'OnResourceDuplicate' =>
array (
1 => '1',
),
'OnResourceSort' =>
array (
1 => '1',
),
),
'elementCache' =>
array (
'[[$googleAnalytics]]' => '<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-79W9MR2WZM"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag(\'js\', new Date());
gtag(\'config\', \'G-79W9MR2WZM\');
</script>',
'[[*longtitle]]' => 'The Story of Chinese Character',
'[[*bodyId]]' => '',
'[[*bodyClass]]' => '',
'[[$shareThis]]' => '<script type=\'text/javascript\' src=\'https://platform-api.sharethis.com/js/sharethis.js#property=5e805c309f548d001a3832ba&product=sop\' async=\'async\'></script>',
'[[Wayfinder? &startId=`0`&level=`1`&outerTpl=`menuOuterTpl`&rowTpl=`menuRowTpl`]]' => '<ul class="nav navbar-nav "><li class="nav-item"><a class="nav-link first" href="https://www.silkstory.net/en/">Home</a></li>
<li class="nav-item"><a class="nav-link " href="bushou">Bushou</a></li>
<li class="nav-item"><a class="nav-link " href="ziyuan">Ziyuan</a></li>
<li class="nav-item"><a class="nav-link last" href="all-characters">All Characters</a></li>
<li class="nav-item"><a class="nav-link search" href="#" data-bs-target="#search" data-bs-toggle="modal"><i class="bi bi-search search"></i></a></li></ul>',
'[[*showBreadcrumbs]]' => '1',
'[[$breadcrumbs]]' => '<div class="container">
<div class="row">
<div class="col-md-12 pt-3">[[!BreadCrumb? &containerTpl=`BreadCrumbContainerTpl` &homeCrumbTpl=`myLinkCrumbTpl` &linkCrumbTpl=`myLinkCrumbTpl` ¤tCrumbTpl=`myCurrentCrumbTpl` &showHidden=`1` &showHomeCrumb=`1`]]</div>
</div>
</div>',
'[[$top]]' => '<!DOCTYPE html>
<html lang="[[!GetCurrentLanguage]]">
<head><!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-79W9MR2WZM"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag(\'js\', new Date());
gtag(\'config\', \'G-79W9MR2WZM\');
</script>[[!GetOgTags]]
<base href="https://www.silkstory.net/en/" />
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no">
<title>SilkStory - The Story of Chinese Character</title>
<link rel="stylesheet" href="/assets/bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="/assets/css/styles.css">
<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8212661150885235"
crossorigin="anonymous"></script>
</head>
<body id="" class=""><script type=\'text/javascript\' src=\'https://platform-api.sharethis.com/js/sharethis.js#property=5e805c309f548d001a3832ba&product=sop\' async=\'async\'></script>
<header>
<section class="navbar2">
<div class="container d-xxl-flex justify-content-xxl-end">
<div class="d-flex d-sm-flex d-md-flex justify-content-end sec-nav">[[!LanguageSwitcher]]</div>
</div>
</section>
<nav class="navbar navbar-light navbar-expand-md">
<div class="container"><a class="navbar-brand" href="/[[!GetCurrentLanguage]]"><span class="en">SilkStory</span><span class="zh">漢字故事
</span></a><button data-bs-toggle="collapse" class="navbar-toggler" data-bs-target="#navcol-1"><span class="visually-hidden">Toggle
navigation</span><span class="navbar-toggler-icon"></span></button>
<div class="collapse navbar-collapse d-md-flex d-xxl-flex justify-content-md-end" id="navcol-1"><ul class="nav navbar-nav "><li class="nav-item"><a class="nav-link first" href="https://www.silkstory.net/en/">Home</a></li>
<li class="nav-item"><a class="nav-link " href="bushou">Bushou</a></li>
<li class="nav-item"><a class="nav-link " href="ziyuan">Ziyuan</a></li>
<li class="nav-item"><a class="nav-link last" href="all-characters">All Characters</a></li>
<li class="nav-item"><a class="nav-link search" href="#" data-bs-target="#search" data-bs-toggle="modal"><i class="bi bi-search search"></i></a></li></ul></div>
</div>
</nav>
</header>
<main>
[[!If? &subject=`1` &operator=`EQ` &operand=`1` &then=`<div class="container">
<div class="row">
<div class="col-md-12 pt-3">[[!BreadCrumb? &containerTpl=`BreadCrumbContainerTpl` &homeCrumbTpl=`myLinkCrumbTpl` &linkCrumbTpl=`myLinkCrumbTpl` ¤tCrumbTpl=`myCurrentCrumbTpl` &showHidden=`1` &showHomeCrumb=`1`]]</div>
</div>
</div>`]]',
'[[$bottom]]' => '</main>[[!searchBox]]
<footer class="text-center py-4">
<div class="container">
<div class="row">
<div class="col d-xxl-flex justify-content-xxl-start">
<p class="text-muted my-2">Copyright © 2023 SilkStory</p>
</div>
<div class="col d-flex justify-content-end social-icons">
<ul class="list-inline my-2">
<li class="list-inline-item me-4">Follow Us</li>
<li class="list-inline-item me-4"><a href="https://www.facebook.com/meizai.chou" target="_blank"><i class="bi bi-facebook"></i></a></li>
<li class="list-inline-item me-4"><a href="https://www.youtube.com/user/choumeizai" target="_blank"><i class="bi bi-youtube"></i></li>
<li class="list-inline-item me-4"><a href="mailto:info@smallboy.net" target="_blank"><i class="bi bi-envelope"></i></li>
</ul>
</div>
</div>
</div>
</footer>
<script src=" https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js"></script>',
),
'placeholders' =>
array (
'modx.user.id' => 0,
'modx.user.username' => '(anonymous)',
'+access_category_enabled' => '1',
'+access_context_enabled' => '1',
'+access_resource_group_enabled' => '1',
'+allow_forward_across_contexts' => '',
'+allow_manager_login_forgot_password' => '1',
'+allow_multiple_emails' => '1',
'+allow_tags_in_post' => '',
'+anonymous_sessions' => '1',
'+archive_with' => '',
'+assets_path' => '/home4/silksto1/public_html/assets/',
'+assets_url' => '/assets/',
'+auto_check_pkg_updates' => '1',
'+auto_check_pkg_updates_cache_expire' => '15',
'+auto_isfolder' => '1',
'+auto_menuindex' => '1',
'+automatic_alias' => '1',
'+automatic_template_assignment' => 'sibling',
'+babel.babelTvName' => 'babelLanguageLinks',
'+babel.contextKeys' => 'web,en,zh',
'+babel.syncTvs' => '',
'+base_help_url' => '//docs.modx.com/help/',
'+base_path' => '/home4/silksto1/public_html/',
'+base_url' => '/en/',
'+blocked_minutes' => '60',
'+cache_alias_map' => '1',
'+cache_context_settings' => '1',
'+cache_db' => '',
'+cache_db_expires' => '0',
'+cache_db_session' => '',
'+cache_db_session_lifetime' => '',
'+cache_default' => '1',
'+cache_expires' => '0',
'+cache_format' => '0',
'+cache_handler' => 'xPDO\\Cache\\xPDOFileCache',
'+cache_key' => 'default',
'+cache_lang_js' => '1',
'+cache_lexicon_topics' => '1',
'+cache_noncore_lexicon_topics' => '1',
'+cache_resource' => '1',
'+cache_resource_clear_partial' => '',
'+cache_resource_expires' => '0',
'+cache_scripts' => '1',
'+cache_system_settings' => true,
'+cache_system_settings_key' => 'system_settings',
'+charset' => 'utf8',
'+clear_cache_refresh_trees' => '',
'+compress_css' => '1',
'+compress_js' => '1',
'+confirm_navigation' => '1',
'+connector_url' => '/connectors/index.php',
'+connectors_url' => '/connectors/',
'+container_suffix' => '/',
'+context_tree_sort' => '1',
'+context_tree_sortby' => 'rank',
'+context_tree_sortdir' => 'ASC',
'+core_path' => '/home4/silksto1/public_html/core/',
'+cultureKey' => 'en',
'+date_timezone' => '',
'+dbtype' => 'mysql',
'+debug' => '',
'+default_content_type' => '1',
'+default_context' => 'web',
'+default_duplicate_publish_option' => 'preserve',
'+default_media_source' => '1',
'+default_media_source_type' => 'MODX\\Revolution\\Sources\\modFileMediaSource',
'+default_per_page' => '20',
'+default_template' => '2',
'+default_username' => '(anonymous)',
'+emailsender' => 'sunny.uy@gmail.com',
'+enable_dragdrop' => '1',
'+enable_gravatar' => '',
'+enable_template_picker_in_tree' => '1',
'+error_handler_class' => 'MODX\\Revolution\\Error\\modErrorHandler',
'+error_log_filename' => 'error.log',
'+error_log_filepath' => '',
'+error_page' => '1',
'+failed_login_attempts' => '5',
'+feed_modx_news' => 'https://feeds.feedburner.com/modx-announce',
'+feed_modx_news_enabled' => '1',
'+feed_modx_security' => 'https://forums.modx.com/board.xml?board=294',
'+feed_modx_security_enabled' => '1',
'+form_customization_use_all_groups' => '',
'+forward_merge_excludes' => 'type,published,class_key',
'+friendly_alias_lowercase_only' => '1',
'+friendly_alias_max_length' => '0',
'+friendly_alias_realtime' => '1',
'+friendly_alias_restrict_chars' => 'pattern',
'+friendly_alias_restrict_chars_pattern' => '/[\\0\\x0B\\t\\n\\r\\f\\a&=+%#<>"~:`@\\?\\[\\]\\{\\}\\|\\^\'\\\\]/',
'+friendly_alias_strip_element_tags' => '1',
'+friendly_alias_translit' => 'none',
'+friendly_alias_translit_class' => 'translit.modTransliterate',
'+friendly_alias_trim_chars' => '/.-_',
'+friendly_alias_word_delimiter' => '-',
'+friendly_alias_word_delimiters' => '-_',
'+friendly_urls' => '1',
'+friendly_urls_strict' => '',
'+global_duplicate_uri_check' => '',
'+hidemenu_default' => '',
'+http_host' => 'silkstory.net',
'+https_port' => 443,
'+hydrate_adhoc_fields' => true,
'+hydrate_fields' => true,
'+hydrate_related_objects' => true,
'+inline_help' => '1',
'+link_tag_scheme' => '-1',
'+load_deprecated_global_class_aliases' => true,
'+locale' => '',
'+lock_ttl' => '360',
'+log_deprecated' => '1',
'+log_level' => '1',
'+log_snippet_not_found' => '1',
'+log_target' => 'FILE',
'+login_background_image' => '',
'+login_help_button' => '',
'+login_logo' => '',
'+mail_charset' => 'UTF-8',
'+mail_encoding' => '8bit',
'+mail_smtp_auth' => '',
'+mail_smtp_autotls' => '1',
'+mail_smtp_helo' => '',
'+mail_smtp_hosts' => 'localhost',
'+mail_smtp_keepalive' => '',
'+mail_smtp_port' => '587',
'+mail_smtp_secure' => '',
'+mail_smtp_single_to' => '',
'+mail_smtp_timeout' => '10',
'+mail_use_smtp' => '',
'+main_nav_parent' => 'topnav',
'+manager_date_format' => 'Y-m-d',
'+manager_direction' => 'ltr',
'+manager_favicon_url' => 'favicon.ico',
'+manager_login_url_alternate' => '',
'+manager_logo' => '',
'+manager_theme' => 'default',
'+manager_time_format' => 'H:i',
'+manager_tooltip_delay' => '2300',
'+manager_tooltip_enable' => '1',
'+manager_url' => '/manager/',
'+manager_use_fullname' => '',
'+manager_week_start' => '0',
'+mgr_source_icon' => 'icon-folder-open-o',
'+mgr_tree_icon_context' => 'tree-context',
'+modx_browser_default_sort' => 'name',
'+modx_browser_default_viewmode' => 'grid',
'+modx_browser_tree_hide_files' => '1',
'+modx_browser_tree_hide_tooltips' => '1',
'+modx_charset' => 'UTF-8',
'+parser_recurse_uncacheable' => '1',
'+password_generated_length' => '10',
'+password_min_length' => '8',
'+passwordless_activated' => '',
'+passwordless_expiration' => '3600',
'+phpthumb_allow_src_above_docroot' => '',
'+phpthumb_cache_maxage' => '30',
'+phpthumb_cache_maxfiles' => '10000',
'+phpthumb_cache_maxsize' => '100',
'+phpthumb_cache_source_enabled' => '',
'+phpthumb_document_root' => '',
'+phpthumb_error_bgcolor' => 'CCCCFF',
'+phpthumb_error_fontsize' => '1',
'+phpthumb_error_textcolor' => 'FF0000',
'+phpthumb_far' => 'C',
'+phpthumb_imagemagick_path' => '',
'+phpthumb_nohotlink_enabled' => '1',
'+phpthumb_nohotlink_erase_image' => '1',
'+phpthumb_nohotlink_text_message' => 'Off-server thumbnailing is not allowed',
'+phpthumb_nohotlink_valid_domains' => 'www.silkstory.net',
'+phpthumb_nooffsitelink_enabled' => '',
'+phpthumb_nooffsitelink_erase_image' => '1',
'+phpthumb_nooffsitelink_require_refer' => '',
'+phpthumb_nooffsitelink_text_message' => 'Off-server linking is not allowed',
'+phpthumb_nooffsitelink_valid_domains' => 'www.silkstory.net',
'+phpthumb_nooffsitelink_watermark_src' => '',
'+phpthumb_zoomcrop' => '0',
'+preserve_menuindex' => '',
'+principal_targets' => 'MODX\\Revolution\\modAccessContext,MODX\\Revolution\\modAccessResourceGroup,MODX\\Revolution\\modAccessCategory,MODX\\Revolution\\Sources\\modAccessMediaSource,MODX\\Revolution\\modAccessNamespace',
'+proxy_auth_type' => 'BASIC',
'+proxy_host' => '',
'+proxy_port' => '',
'+publish_default' => '',
'+quick_search_in_content' => '1',
'+quick_search_result_max' => '10',
'+request_controller' => 'index.php',
'+request_method_strict' => '',
'+request_param_alias' => 'q',
'+request_param_id' => 'id',
'+resource_static_allow_absolute' => '0',
'+resource_static_path' => '/home4/silksto1/public_html/assets/',
'+resource_tree_node_name' => 'pagetitle',
'+resource_tree_node_name_fallback' => 'alias',
'+resource_tree_node_tooltip' => '',
'+richtext_default' => '1',
'+search_default' => '1',
'+send_poweredby_header' => '',
'+server_offset_time' => '0',
'+server_port' => '443',
'+session_cookie_domain' => '',
'+session_cookie_httponly' => '1',
'+session_cookie_lifetime' => '604800',
'+session_cookie_path' => '',
'+session_cookie_samesite' => '',
'+session_cookie_secure' => '',
'+session_gc_maxlifetime' => '604800',
'+session_handler_class' => 'MODX\\Revolution\\modSessionHandler',
'+set_header' => '1',
'+settings_distro' => 'traditional',
'+settings_version' => '3.0.3-pl',
'+show_tv_categories_header' => '1',
'+site_name' => 'MODX Revolution',
'+site_start' => '2',
'+site_status' => '1',
'+site_unavailable_message' => '[[%site_unavailable_message]]',
'+site_unavailable_page' => '0',
'+site_url' => 'https://www.silkstory.net/en/',
'+static_elements_automate_chunks' => '',
'+static_elements_automate_plugins' => '',
'+static_elements_automate_snippets' => '',
'+static_elements_automate_templates' => '',
'+static_elements_automate_tvs' => '',
'+static_elements_basepath' => '',
'+static_elements_default_category' => '0',
'+static_elements_default_mediasource' => '0',
'+static_elements_html_extension' => '.tpl',
'+symlink_merge_fields' => '1',
'+syncsite_default' => '1',
'+topmenu_show_descriptions' => '1',
'+tree_default_sort' => 'menuindex',
'+tree_root_id' => '0',
'+tvs_below_content' => '',
'+unauthorized_page' => '1',
'+upload_file_exists' => '1',
'+upload_files' => 'txt,html,htm,xml,js,js.map,css,scss,less,css.map,zip,gz,rar,z,tgz,tar,mp3,mp4,aac,wav,au,wmv,avi,mpg,mpeg,pdf,doc,docx,xls,xlsx,ppt,pptx,jpg,jpeg,png,tiff,svg,svgz,gif,psd,ico,bmp,webp,odt,ods,odp,odb,odg,odf,md,ttf,woff,woff2,eot',
'+upload_images' => 'jpg,jpeg,png,gif,psd,ico,bmp,tiff,svg,svgz,webp',
'+upload_maxsize' => '33554432',
'+upload_media' => 'mp3,wav,au,wmv,avi,mpg,mpeg',
'+upload_translit' => '1',
'+url_scheme' => 'https://',
'+use_alias_path' => '',
'+use_context_resource_table' => '1',
'+use_editor' => '1',
'+use_frozen_parent_uris' => '',
'+use_multibyte' => '1',
'+use_weblink_target' => '',
'+user_nav_parent' => 'usernav',
'+validate_on_save' => true,
'+validator_class' => 'MODX\\Revolution\\Validation\\modValidator',
'+welcome_action' => 'welcome',
'+welcome_namespace' => 'core',
'+welcome_screen' => '',
'+welcome_screen_url' => '//misc.modx.com/revolution/welcome.30.html ',
'+which_editor' => '',
'+which_element_editor' => '',
'+xhtml_urls' => '1',
'+cache_path' => '/home4/silksto1/public_html/core/cache/',
'+connection_mutable' => true,
'+connections0dsn' => 'mysql:host=localhost;dbname=silksto1_silkstory2;charset=utf8',
'+connections0username' => 'silksto1_silkstory2',
'+connections0password' => '!Kx9TV5Gbwyp',
'+connections0optionsconnection_mutable' => true,
'+connections0driverOptions3' => 0,
'+connectors_path' => '/home4/silksto1/public_html/connectors/',
'+driverOptions3' => 0,
'+dsn' => 'mysql:host=localhost;dbname=silksto1_silkstory2;charset=utf8',
'+friendly_alias_translit_class_path' => '/home4/silksto1/public_html/core/components/',
'+mail_smtp_pass' => '',
'+mail_smtp_user' => '',
'+manager_path' => '/home4/silksto1/public_html/manager/',
'+processors_path' => '/home4/silksto1/public_html/core/src/Revolution/Processors/',
'+proxy_password' => '',
'+proxy_username' => '',
'+session_name' => '',
'+table_prefix' => 'modx_',
),
'resource' =>
MODX\Revolution\mysql\modDocument::__set_state(array(
'_content' => '<!DOCTYPE html>
<html lang="[[!GetCurrentLanguage]]">
<head><!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-79W9MR2WZM"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag(\'js\', new Date());
gtag(\'config\', \'G-79W9MR2WZM\');
</script>[[!GetOgTags]]
<base href="https://www.silkstory.net/en/" />
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no">
<title>SilkStory - The Story of Chinese Character</title>
<link rel="stylesheet" href="/assets/bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="/assets/css/styles.css">
<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8212661150885235"
crossorigin="anonymous"></script>
</head>
<body id="" class=""><script type=\'text/javascript\' src=\'https://platform-api.sharethis.com/js/sharethis.js#property=5e805c309f548d001a3832ba&product=sop\' async=\'async\'></script>
<header>
<section class="navbar2">
<div class="container d-xxl-flex justify-content-xxl-end">
<div class="d-flex d-sm-flex d-md-flex justify-content-end sec-nav">[[!LanguageSwitcher]]</div>
</div>
</section>
<nav class="navbar navbar-light navbar-expand-md">
<div class="container"><a class="navbar-brand" href="/[[!GetCurrentLanguage]]"><span class="en">SilkStory</span><span class="zh">漢字故事
</span></a><button data-bs-toggle="collapse" class="navbar-toggler" data-bs-target="#navcol-1"><span class="visually-hidden">Toggle
navigation</span><span class="navbar-toggler-icon"></span></button>
<div class="collapse navbar-collapse d-md-flex d-xxl-flex justify-content-md-end" id="navcol-1"><ul class="nav navbar-nav "><li class="nav-item"><a class="nav-link first" href="https://www.silkstory.net/en/">Home</a></li>
<li class="nav-item"><a class="nav-link " href="bushou">Bushou</a></li>
<li class="nav-item"><a class="nav-link " href="ziyuan">Ziyuan</a></li>
<li class="nav-item"><a class="nav-link last" href="all-characters">All Characters</a></li>
<li class="nav-item"><a class="nav-link search" href="#" data-bs-target="#search" data-bs-toggle="modal"><i class="bi bi-search search"></i></a></li></ul></div>
</div>
</nav>
</header>
<main>
[[!If? &subject=`1` &operator=`EQ` &operand=`1` &then=`<div class="container">
<div class="row">
<div class="col-md-12 pt-3">[[!BreadCrumb? &containerTpl=`BreadCrumbContainerTpl` &homeCrumbTpl=`myLinkCrumbTpl` &linkCrumbTpl=`myLinkCrumbTpl` ¤tCrumbTpl=`myCurrentCrumbTpl` &showHidden=`1` &showHomeCrumb=`1`]]</div>
</div>
</div>`]]<div class="container">
<div class="row">
<div class="col">
<div class="row mb-5">
<div class="col-12 col-xl-9">[[!GetCharacterInfo]]</div>
</div>
</div>
</div>
</div></main>[[!searchBox]]
<footer class="text-center py-4">
<div class="container">
<div class="row">
<div class="col d-xxl-flex justify-content-xxl-start">
<p class="text-muted my-2">Copyright © 2023 SilkStory</p>
</div>
<div class="col d-flex justify-content-end social-icons">
<ul class="list-inline my-2">
<li class="list-inline-item me-4">Follow Us</li>
<li class="list-inline-item me-4"><a href="https://www.facebook.com/meizai.chou" target="_blank"><i class="bi bi-facebook"></i></a></li>
<li class="list-inline-item me-4"><a href="https://www.youtube.com/user/choumeizai" target="_blank"><i class="bi bi-youtube"></i></li>
<li class="list-inline-item me-4"><a href="mailto:info@smallboy.net" target="_blank"><i class="bi bi-envelope"></i></li>
</ul>
</div>
</div>
</div>
</footer>
<script src=" https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js"></script>',
'_output' => '<!DOCTYPE html>
<html lang="en">
<head><!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-79W9MR2WZM"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag(\'js\', new Date());
gtag(\'config\', \'G-79W9MR2WZM\');
</script><meta name="twitter:card" content="summary_large_image" /><meta name="twitter:site" content="@choumeizai" /><meta property="og:title" content="The Story of 發" /><meta property="og:description" content="發 is composed of 癶, 弓(bow) and 殳., 癶 depicts two feet walking outward, while 殳 is the variant of 攴. The archetype of 發 is the picture of a hand plucking the string of a bow, its original meaning is shooting or sending out, then 癶 is added to emphasize the act of moving forward(while someone thinks that it is an phonetic component) ." /><meta property="og:url" content="http://silkstory.net/en/story-of-chinese-character/799" /><meta property="og:video" content="https://www.youtube.com/watch?v=7cx09MmA2FY" /><meta property="og:image" content="https://img.youtube.com/vi/7cx09MmA2FY/0.jpg" />
<base href="https://www.silkstory.net/en/" />
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no">
<title>SilkStory - The Story of Chinese Character</title>
<link rel="stylesheet" href="/assets/bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="/assets/css/styles.css">
<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8212661150885235"
crossorigin="anonymous"></script>
</head>
<body id="" class=""><script type=\'text/javascript\' src=\'https://platform-api.sharethis.com/js/sharethis.js#property=5e805c309f548d001a3832ba&product=sop\' async=\'async\'></script>
<header>
<section class="navbar2">
<div class="container d-xxl-flex justify-content-xxl-end">
<div class="d-flex d-sm-flex d-md-flex justify-content-end sec-nav"><div class="d-flex d-sm-flex d-md-flex justify-content-end sec-nav"><a href="https://silkstory.net/en/story-of-chinese-character/799">Eng</a><a href="https://silkstory.net/zh/story-of-chinese-character/799">中文</a></div></div>
</div>
</section>
<nav class="navbar navbar-light navbar-expand-md">
<div class="container"><a class="navbar-brand" href="/en"><span class="en">SilkStory</span><span class="zh">漢字故事
</span></a><button data-bs-toggle="collapse" class="navbar-toggler" data-bs-target="#navcol-1"><span class="visually-hidden">Toggle
navigation</span><span class="navbar-toggler-icon"></span></button>
<div class="collapse navbar-collapse d-md-flex d-xxl-flex justify-content-md-end" id="navcol-1"><ul class="nav navbar-nav "><li class="nav-item"><a class="nav-link first" href="https://www.silkstory.net/en/">Home</a></li>
<li class="nav-item"><a class="nav-link " href="bushou">Bushou</a></li>
<li class="nav-item"><a class="nav-link " href="ziyuan">Ziyuan</a></li>
<li class="nav-item"><a class="nav-link last" href="all-characters">All Characters</a></li>
<li class="nav-item"><a class="nav-link search" href="#" data-bs-target="#search" data-bs-toggle="modal"><i class="bi bi-search search"></i></a></li></ul></div>
</div>
</nav>
</header>
<main>
<div class="container">
<div class="row">
<div class="col-md-12 pt-3"><nav aria-label="breadcrumb"><ol class="breadcrumb"><li class="breadcrumb-item"><a href="https://www.silkstory.net/en/">Home</a></li><li class="breadcrumb-item active">The Story of Chinese Character</li></ol></nav></div>
</div>
</div><div class="container">
<div class="row">
<div class="col">
<div class="row mb-5">
<div class="col-12 col-xl-9"><div class="d-flex align-items-start mb-3 character-header">
<div class="d-xxl-flex justify-content-xxl-center"><p class="character">發</p></div>
<div><h2>The story of 發</h2><h1>send</h1>
<p class="description">發 is composed of 癶, 弓(bow) and 殳., 癶 depicts two feet walking outward, while 殳 is the variant of 攴. The archetype of 發 is the picture of a hand plucking the string of a bow, its original meaning is shooting or sending out, then 癶 is added to emphasize the act of moving forward(while someone thinks that it is an phonetic component) .</p></div></div><div>
<div class="embed-container"><iframe width="560" height="315" src="https://www.youtube.com/embed/7cx09MmA2FY?rel=0" frameborder="0" allowfullscreen=""></iframe></div>
</div><div class="row mt-4">
<div class="col-6 col-md-7"><h3 class="underlined">Vocabulary of 發</h3><ul class="vocabulary"><li>開發 (to exploit)</li><li> 爆發 (to erupt)</li><li> 發跡 (to make one’s mark)</li></ul></li></ul></div>
<div class="col-6 col-md-5"><h3 class="underlined">Classification</h3><ul class="classification"><li><a href="/en/bushou/105">Bushou 癶</a></li><li><a href="/en/ziyuan/112">Ziyuan 癶</a></li></ul></div>
</div><div class="mt-4"><h2 style="font-size: 1.2rem; margin-bottom:18px;">Related Characters:</h2></div><div class="grid-characters smaller"><a href="/en/story-of-chinese-character/797">癶<span>out</span><span class="strokes">5</span></a><a href="/en/story-of-chinese-character/798">癹<span>waste<br> abandon</span><span class="strokes">9</span></a><a href="/en/story-of-chinese-character/799">發<span>send</span><span class="strokes">12</span></a><a href="/en/story-of-chinese-character/803">登<span>ascend<br> mount</span><span class="strokes">12</span></a></div></div>
</div>
</div>
</div>
</div></main>
<div id="search" class="modal fade" role="dialog" tabindex="-1"><div class="modal-dialog modal-xl" role="document">
<div class="modal-content"><div class="modal-header"><input id="searchKeywords" v-model.trim="searchKeywords" @input="getCharacters" placeholder="Search Characters Here. Ex: dog, insect"><button class="btn-close" type="button" aria-label="Close" data-bs-dismiss="modal"></button></div><div class="modal-body"><div class="grid-characters smaller"><a v-for="character in characters" :href="\'/en/story-of-chinese-character/\'+character.id">{{character.character}}<span><br>{{character.en_meaning}}</span><span class="strokes">{{character.strokes}}</span></a></div></div></div></div></div><script>
let app = {
data() {
return {
characters: [],
searchKeywords: null
}
},
methods: {
getCharacters(event) {
if (event.target.value.trim().length != 0) {
fetch(\'/_qcube4/views/search-query.php?searchKeywords=\' + this.searchKeywords)
.then(response => response.json())
.then(data => (this.characters = data))
.catch(err => console.log(err.message))
} else {
this.characters = null;
}
}
}
}
Vue.createApp(app).mount(\'#search\');
var myModal = document.getElementById(\'search\');
var myInput = document.getElementById(\'searchKeywords\');
myModal.addEventListener(\'shown.bs.modal\', function () {
myInput.focus()
});
</script>
<footer class="text-center py-4">
<div class="container">
<div class="row">
<div class="col d-xxl-flex justify-content-xxl-start">
<p class="text-muted my-2">Copyright © 2023 SilkStory</p>
</div>
<div class="col d-flex justify-content-end social-icons">
<ul class="list-inline my-2">
<li class="list-inline-item me-4">Follow Us</li>
<li class="list-inline-item me-4"><a href="https://www.facebook.com/meizai.chou" target="_blank"><i class="bi bi-facebook"></i></a></li>
<li class="list-inline-item me-4"><a href="https://www.youtube.com/user/choumeizai" target="_blank"><i class="bi bi-youtube"></i></li>
<li class="list-inline-item me-4"><a href="mailto:info@smallboy.net" target="_blank"><i class="bi bi-envelope"></i></li>
</ul>
</div>
</div>
</div>
</footer>
<script src=" https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js"></script>',
'_contextKey' => 'en',
'_processed' => true,
'_cacheKey' => '[contextKey]/resources/[id]',
'_refreshCache' => true,
'_isForward' => false,
'_jscripts' =>
array (
),
'_sjscripts' =>
array (
),
'_loadedjscripts' =>
array (
),
'showInContextMenu' => true,
'allowDrop' => -1,
'allowListingInClassKeyDropdown' => true,
'allowChildrenResources' => true,
'xpdo' => NULL,
'_policies' =>
array (
'en' =>
array (
),
),
'container' => 'silksto1_silkstory2',
'fieldNames' => NULL,
'_class' => 'MODX\\Revolution\\modDocument',
'_package' => 'MODX\\Revolution\\',
'_alias' => 'MODX\\Revolution\\modDocument',
'_pk' => NULL,
'_pktype' => NULL,
'_table' => '`modx_site_content`',
'_tableMeta' =>
array (
'engine' => 'InnoDB',
),
'_dirty' =>
array (
'id' => 'id',
'type' => 'type',
'pagetitle' => 'pagetitle',
'longtitle' => 'longtitle',
'description' => 'description',
'alias' => 'alias',
'link_attributes' => 'link_attributes',
'published' => 'published',
'pub_date' => 'pub_date',
'unpub_date' => 'unpub_date',
'parent' => 'parent',
'isfolder' => 'isfolder',
'introtext' => 'introtext',
'content' => 'content',
'richtext' => 'richtext',
'template' => 'template',
'menuindex' => 'menuindex',
'searchable' => 'searchable',
'cacheable' => 'cacheable',
'createdby' => 'createdby',
'createdon' => 'createdon',
'editedby' => 'editedby',
'editedon' => 'editedon',
'deleted' => 'deleted',
'deletedon' => 'deletedon',
'deletedby' => 'deletedby',
'publishedon' => 'publishedon',
'publishedby' => 'publishedby',
'menutitle' => 'menutitle',
'donthit' => 'donthit',
'privateweb' => 'privateweb',
'privatemgr' => 'privatemgr',
'content_dispo' => 'content_dispo',
'hidemenu' => 'hidemenu',
'class_key' => 'class_key',
'context_key' => 'context_key',
'content_type' => 'content_type',
'uri' => 'uri',
'uri_override' => 'uri_override',
'hide_children_in_tree' => 'hide_children_in_tree',
'show_in_tree' => 'show_in_tree',
'properties' => 'properties',
'alias_visible' => 'alias_visible',
),
'_lazy' =>
array (
),
'_fields' =>
array (
'id' => 7,
'type' => 'document',
'pagetitle' => 'Story of Chinese Character',
'longtitle' => 'The Story of Chinese Character',
'description' => '',
'alias' => 'story-of-chinese-character',
'link_attributes' => '',
'published' => 1,
'pub_date' => 0,
'unpub_date' => 0,
'parent' => 0,
'isfolder' => 0,
'introtext' => '',
'content' => '<div class="container">
<div class="row">
<div class="col">
<div class="row mb-5">
<div class="col-12 col-xl-9">[[!GetCharacterInfo]]</div>
</div>
</div>
</div>
</div>',
'richtext' => 1,
'template' => 2,
'menuindex' => 4,
'searchable' => 1,
'cacheable' => 1,
'createdby' => 1,
'createdon' => 1694229151,
'editedby' => 1,
'editedon' => 1695609842,
'deleted' => 0,
'deletedon' => 0,
'deletedby' => 0,
'publishedon' => 1694229120,
'publishedby' => 1,
'menutitle' => '',
'donthit' => 0,
'privateweb' => 0,
'privatemgr' => 0,
'content_dispo' => 0,
'hidemenu' => 1,
'class_key' => 'MODX\\Revolution\\modDocument',
'context_key' => 'en',
'content_type' => 1,
'uri' => 'story-of-chinese-character',
'uri_override' => 0,
'hide_children_in_tree' => 0,
'show_in_tree' => 1,
'properties' => NULL,
'alias_visible' => 1,
'bodyId' =>
array (
0 => 'bodyId',
1 => '',
2 => 'default',
3 => NULL,
4 => 'text',
),
'bodyClass' =>
array (
0 => 'bodyClass',
1 => '',
2 => 'default',
3 => NULL,
4 => 'text',
),
'showBreadcrumbs' =>
array (
0 => 'showBreadcrumbs',
1 => '1',
2 => 'default',
3 => NULL,
4 => 'checkbox',
),
'_content' => '<!DOCTYPE html>
<html lang="[[!GetCurrentLanguage]]">
<head><!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-79W9MR2WZM"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag(\'js\', new Date());
gtag(\'config\', \'G-79W9MR2WZM\');
</script>[[!GetOgTags]]
<base href="https://www.silkstory.net/en/" />
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no">
<title>SilkStory - The Story of Chinese Character</title>
<link rel="stylesheet" href="/assets/bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="/assets/css/styles.css">
<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8212661150885235"
crossorigin="anonymous"></script>
</head>
<body id="" class=""><script type=\'text/javascript\' src=\'https://platform-api.sharethis.com/js/sharethis.js#property=5e805c309f548d001a3832ba&product=sop\' async=\'async\'></script>
<header>
<section class="navbar2">
<div class="container d-xxl-flex justify-content-xxl-end">
<div class="d-flex d-sm-flex d-md-flex justify-content-end sec-nav">[[!LanguageSwitcher]]</div>
</div>
</section>
<nav class="navbar navbar-light navbar-expand-md">
<div class="container"><a class="navbar-brand" href="/[[!GetCurrentLanguage]]"><span class="en">SilkStory</span><span class="zh">漢字故事
</span></a><button data-bs-toggle="collapse" class="navbar-toggler" data-bs-target="#navcol-1"><span class="visually-hidden">Toggle
navigation</span><span class="navbar-toggler-icon"></span></button>
<div class="collapse navbar-collapse d-md-flex d-xxl-flex justify-content-md-end" id="navcol-1"><ul class="nav navbar-nav "><li class="nav-item"><a class="nav-link first" href="https://www.silkstory.net/en/">Home</a></li>
<li class="nav-item"><a class="nav-link " href="bushou">Bushou</a></li>
<li class="nav-item"><a class="nav-link " href="ziyuan">Ziyuan</a></li>
<li class="nav-item"><a class="nav-link last" href="all-characters">All Characters</a></li>
<li class="nav-item"><a class="nav-link search" href="#" data-bs-target="#search" data-bs-toggle="modal"><i class="bi bi-search search"></i></a></li></ul></div>
</div>
</nav>
</header>
<main>
[[!If? &subject=`1` &operator=`EQ` &operand=`1` &then=`<div class="container">
<div class="row">
<div class="col-md-12 pt-3">[[!BreadCrumb? &containerTpl=`BreadCrumbContainerTpl` &homeCrumbTpl=`myLinkCrumbTpl` &linkCrumbTpl=`myLinkCrumbTpl` ¤tCrumbTpl=`myCurrentCrumbTpl` &showHidden=`1` &showHomeCrumb=`1`]]</div>
</div>
</div>`]]<div class="container">
<div class="row">
<div class="col">
<div class="row mb-5">
<div class="col-12 col-xl-9">[[!GetCharacterInfo]]</div>
</div>
</div>
</div>
</div></main>[[!searchBox]]
<footer class="text-center py-4">
<div class="container">
<div class="row">
<div class="col d-xxl-flex justify-content-xxl-start">
<p class="text-muted my-2">Copyright © 2023 SilkStory</p>
</div>
<div class="col d-flex justify-content-end social-icons">
<ul class="list-inline my-2">
<li class="list-inline-item me-4">Follow Us</li>
<li class="list-inline-item me-4"><a href="https://www.facebook.com/meizai.chou" target="_blank"><i class="bi bi-facebook"></i></a></li>
<li class="list-inline-item me-4"><a href="https://www.youtube.com/user/choumeizai" target="_blank"><i class="bi bi-youtube"></i></li>
<li class="list-inline-item me-4"><a href="mailto:info@smallboy.net" target="_blank"><i class="bi bi-envelope"></i></li>
</ul>
</div>
</div>
</div>
</footer>
<script src=" https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js"></script>',
'_isForward' => false,
),
'_fieldMeta' =>
array (
'id' =>
array (
'dbtype' => 'int',
'precision' => '10',
'attributes' => 'unsigned',
'phptype' => 'integer',
'null' => false,
'index' => 'pk',
'generated' => 'native',
),
'type' =>
array (
'dbtype' => 'varchar',
'precision' => '20',
'phptype' => 'string',
'null' => false,
'default' => 'document',
),
'pagetitle' =>
array (
'dbtype' => 'varchar',
'precision' => '191',
'phptype' => 'string',
'null' => false,
'default' => '',
'index' => 'fulltext',
'indexgrp' => 'content_ft_idx',
),
'longtitle' =>
array (
'dbtype' => 'varchar',
'precision' => '191',
'phptype' => 'string',
'null' => false,
'default' => '',
'index' => 'fulltext',
'indexgrp' => 'content_ft_idx',
),
'description' =>
array (
'dbtype' => 'text',
'phptype' => 'string',
'null' => false,
'default' => '',
'index' => 'fulltext',
'indexgrp' => 'content_ft_idx',
),
'alias' =>
array (
'dbtype' => 'varchar',
'precision' => '191',
'phptype' => 'string',
'null' => true,
'default' => '',
'index' => 'index',
),
'link_attributes' =>
array (
'dbtype' => 'varchar',
'precision' => '255',
'phptype' => 'string',
'null' => false,
'default' => '',
),
'published' =>
array (
'dbtype' => 'tinyint',
'precision' => '1',
'attributes' => 'unsigned',
'phptype' => 'boolean',
'null' => false,
'default' => 0,
'index' => 'index',
),
'pub_date' =>
array (
'dbtype' => 'int',
'precision' => '20',
'phptype' => 'timestamp',
'null' => false,
'default' => 0,
'index' => 'index',
),
'unpub_date' =>
array (
'dbtype' => 'int',
'precision' => '20',
'phptype' => 'timestamp',
'null' => false,
'default' => 0,
'index' => 'index',
),
'parent' =>
array (
'dbtype' => 'int',
'precision' => '10',
'attributes' => 'unsigned',
'phptype' => 'integer',
'null' => false,
'default' => 0,
'index' => 'index',
),
'isfolder' =>
array (
'dbtype' => 'tinyint',
'precision' => '1',
'attributes' => 'unsigned',
'phptype' => 'boolean',
'null' => false,
'default' => 0,
'index' => 'index',
),
'introtext' =>
array (
'dbtype' => 'text',
'phptype' => 'string',
'index' => 'fulltext',
'indexgrp' => 'content_ft_idx',
),
'content' =>
array (
'dbtype' => 'mediumtext',
'phptype' => 'string',
'index' => 'fulltext',
'indexgrp' => 'content_ft_idx',
),
'richtext' =>
array (
'dbtype' => 'tinyint',
'precision' => '1',
'attributes' => 'unsigned',
'phptype' => 'boolean',
'null' => false,
'default' => 1,
),
'template' =>
array (
'dbtype' => 'int',
'precision' => '10',
'phptype' => 'integer',
'null' => false,
'default' => 0,
'index' => 'index',
),
'menuindex' =>
array (
'dbtype' => 'int',
'precision' => '10',
'phptype' => 'integer',
'null' => false,
'default' => 0,
'index' => 'index',
),
'searchable' =>
array (
'dbtype' => 'tinyint',
'precision' => '1',
'attributes' => 'unsigned',
'phptype' => 'boolean',
'null' => false,
'default' => 1,
'index' => 'index',
),
'cacheable' =>
array (
'dbtype' => 'tinyint',
'precision' => '1',
'attributes' => 'unsigned',
'phptype' => 'boolean',
'null' => false,
'default' => 1,
'index' => 'index',
),
'createdby' =>
array (
'dbtype' => 'int',
'precision' => '10',
'phptype' => 'integer',
'null' => false,
'default' => 0,
),
'createdon' =>
array (
'dbtype' => 'int',
'precision' => '20',
'phptype' => 'timestamp',
'null' => false,
'default' => 0,
),
'editedby' =>
array (
'dbtype' => 'int',
'precision' => '10',
'phptype' => 'integer',
'null' => false,
'default' => 0,
),
'editedon' =>
array (
'dbtype' => 'int',
'precision' => '20',
'phptype' => 'timestamp',
'null' => false,
'default' => 0,
),
'deleted' =>
array (
'dbtype' => 'tinyint',
'precision' => '1',
'attributes' => 'unsigned',
'phptype' => 'boolean',
'null' => false,
'default' => 0,
),
'deletedon' =>
array (
'dbtype' => 'int',
'precision' => '20',
'phptype' => 'timestamp',
'null' => false,
'default' => 0,
),
'deletedby' =>
array (
'dbtype' => 'int',
'precision' => '10',
'phptype' => 'integer',
'null' => false,
'default' => 0,
),
'publishedon' =>
array (
'dbtype' => 'int',
'precision' => '20',
'phptype' => 'timestamp',
'null' => false,
'default' => 0,
),
'publishedby' =>
array (
'dbtype' => 'int',
'precision' => '10',
'phptype' => 'integer',
'null' => false,
'default' => 0,
),
'menutitle' =>
array (
'dbtype' => 'varchar',
'precision' => '255',
'phptype' => 'string',
'null' => false,
'default' => '',
),
'donthit' =>
array (
'dbtype' => 'tinyint',
'precision' => '1',
'attributes' => 'unsigned',
'phptype' => 'boolean',
'null' => false,
'default' => 0,
),
'privateweb' =>
array (
'dbtype' => 'tinyint',
'precision' => '1',
'attributes' => 'unsigned',
'phptype' => 'boolean',
'null' => false,
'default' => 0,
),
'privatemgr' =>
array (
'dbtype' => 'tinyint',
'precision' => '1',
'attributes' => 'unsigned',
'phptype' => 'boolean',
'null' => false,
'default' => 0,
),
'content_dispo' =>
array (
'dbtype' => 'tinyint',
'precision' => '1',
'phptype' => 'integer',
'null' => false,
'default' => 0,
),
'hidemenu' =>
array (
'dbtype' => 'tinyint',
'precision' => '1',
'attributes' => 'unsigned',
'phptype' => 'boolean',
'null' => false,
'default' => 0,
'index' => 'index',
),
'class_key' =>
array (
'dbtype' => 'varchar',
'precision' => '100',
'phptype' => 'string',
'null' => false,
'default' => 'MODX\\Revolution\\modDocument',
'index' => 'index',
),
'context_key' =>
array (
'dbtype' => 'varchar',
'precision' => '100',
'phptype' => 'string',
'null' => false,
'default' => 'web',
'index' => 'index',
),
'content_type' =>
array (
'dbtype' => 'int',
'precision' => '11',
'attributes' => 'unsigned',
'phptype' => 'integer',
'null' => false,
'default' => 1,
),
'uri' =>
array (
'dbtype' => 'text',
'phptype' => 'string',
'null' => true,
'index' => 'index',
),
'uri_override' =>
array (
'dbtype' => 'tinyint',
'precision' => '1',
'phptype' => 'integer',
'null' => false,
'default' => 0,
'index' => 'index',
),
'hide_children_in_tree' =>
array (
'dbtype' => 'tinyint',
'precision' => '1',
'phptype' => 'integer',
'null' => false,
'default' => 0,
'index' => 'index',
),
'show_in_tree' =>
array (
'dbtype' => 'tinyint',
'precision' => '1',
'phptype' => 'integer',
'null' => false,
'default' => 1,
'index' => 'index',
),
'properties' =>
array (
'dbtype' => 'mediumtext',
'phptype' => 'json',
'null' => true,
),
'alias_visible' =>
array (
'dbtype' => 'tinyint',
'precision' => '1',
'attributes' => 'unsigned',
'phptype' => 'boolean',
'null' => false,
'default' => 1,
),
),
'_fieldAliases' =>
array (
),
'_aggregates' =>
array (
'Parent' =>
array (
'class' => 'MODX\\Revolution\\modResource',
'local' => 'parent',
'foreign' => 'id',
'cardinality' => 'one',
'owner' => 'foreign',
),
'CreatedBy' =>
array (
'class' => 'MODX\\Revolution\\modUser',
'local' => 'createdby',
'foreign' => 'id',
'cardinality' => 'one',
'owner' => 'foreign',
),
'EditedBy' =>
array (
'class' => 'MODX\\Revolution\\modUser',
'local' => 'editedby',
'foreign' => 'id',
'cardinality' => 'one',
'owner' => 'foreign',
),
'DeletedBy' =>
array (
'class' => 'MODX\\Revolution\\modUser',
'local' => 'deletedby',
'foreign' => 'id',
'cardinality' => 'one',
'owner' => 'foreign',
),
'PublishedBy' =>
array (
'class' => 'MODX\\Revolution\\modUser',
'local' => 'publishedby',
'foreign' => 'id',
'cardinality' => 'one',
'owner' => 'foreign',
),
'Template' =>
array (
'class' => 'MODX\\Revolution\\modTemplate',
'local' => 'template',
'foreign' => 'id',
'cardinality' => 'one',
'owner' => 'foreign',
),
'TemplateVars' =>
array (
'class' => 'MODX\\Revolution\\modTemplateVar',
'local' => 'id:template',
'foreign' => 'contentid:templateid',
'cardinality' => 'many',
'owner' => 'local',
),
'TemplateVarTemplates' =>
array (
'class' => 'MODX\\Revolution\\modTemplateVarTemplate',
'local' => 'template',
'foreign' => 'templateid',
'cardinality' => 'many',
'owner' => 'local',
),
'ContentType' =>
array (
'class' => 'MODX\\Revolution\\modContentType',
'local' => 'content_type',
'foreign' => 'id',
'owner' => 'foreign',
'cardinality' => 'one',
),
'Context' =>
array (
'class' => 'MODX\\Revolution\\modContext',
'local' => 'context_key',
'foreign' => 'key',
'owner' => 'foreign',
'cardinality' => 'one',
),
),
'_composites' =>
array (
'Children' =>
array (
'class' => 'MODX\\Revolution\\modResource',
'local' => 'id',
'foreign' => 'parent',
'cardinality' => 'many',
'owner' => 'local',
),
'TemplateVarResources' =>
array (
'class' => 'MODX\\Revolution\\modTemplateVarResource',
'local' => 'id',
'foreign' => 'contentid',
'cardinality' => 'many',
'owner' => 'local',
),
'ResourceGroupResources' =>
array (
'class' => 'MODX\\Revolution\\modResourceGroupResource',
'local' => 'id',
'foreign' => 'document',
'cardinality' => 'many',
'owner' => 'local',
),
'Acls' =>
array (
'class' => 'MODX\\Revolution\\modAccessResource',
'local' => 'id',
'foreign' => 'target',
'owner' => 'local',
'cardinality' => 'many',
),
'ContextResources' =>
array (
'class' => 'MODX\\Revolution\\modContextResource',
'local' => 'id',
'foreign' => 'resource',
'cardinality' => 'many',
'owner' => 'local',
),
),
'_relatedObjects' =>
array (
'Parent' => NULL,
'CreatedBy' => NULL,
'EditedBy' => NULL,
'DeletedBy' => NULL,
'PublishedBy' => NULL,
'Template' => NULL,
'TemplateVars' =>
array (
),
'TemplateVarTemplates' =>
array (
),
'ContentType' =>
MODX\Revolution\mysql\modContentType::__set_state(array(
'xpdo' => NULL,
'container' => 'silksto1_silkstory2',
'fieldNames' => NULL,
'_class' => 'MODX\\Revolution\\modContentType',
'_package' => 'MODX\\Revolution\\',
'_alias' => 'ContentType',
'_pk' => NULL,
'_pktype' => NULL,
'_table' => '`modx_content_type`',
'_tableMeta' =>
array (
'engine' => 'InnoDB',
),
'_dirty' =>
array (
'id' => 'id',
'name' => 'name',
'description' => 'description',
'mime_type' => 'mime_type',
'file_extensions' => 'file_extensions',
'icon' => 'icon',
'headers' => 'headers',
'binary' => 'binary',
),
'_lazy' =>
array (
),
'_fields' =>
array (
'id' => 1,
'name' => 'HTML',
'description' => 'HTML content',
'mime_type' => 'text/html',
'file_extensions' => '',
'icon' => '',
'headers' => NULL,
'binary' => 0,
),
'_fieldMeta' =>
array (
'id' =>
array (
'dbtype' => 'INTEGER',
'phptype' => 'integer',
'null' => false,
'index' => 'pk',
'generated' => 'native',
'attributes' => 'unsigned',
),
'name' =>
array (
'dbtype' => 'varchar',
'precision' => '191',
'phptype' => 'string',
'null' => false,
'index' => 'unique',
),
'description' =>
array (
'dbtype' => 'tinytext',
'phptype' => 'string',
'null' => true,
),
'mime_type' =>
array (
'dbtype' => 'tinytext',
'phptype' => 'string',
),
'file_extensions' =>
array (
'dbtype' => 'tinytext',
'phptype' => 'string',
),
'icon' =>
array (
'dbtype' => 'tinytext',
'phptype' => 'string',
'null' => true,
),
'headers' =>
array (
'dbtype' => 'mediumtext',
'phptype' => 'array',
),
'binary' =>
array (
'dbtype' => 'tinyint',
'precision' => '1',
'attributes' => 'unsigned',
'phptype' => 'boolean',
'null' => false,
'default' => 0,
),
),
'_fieldAliases' =>
array (
),
'_aggregates' =>
array (
'Resources' =>
array (
'class' => 'MODX\\Revolution\\modResource',
'local' => 'id',
'foreign' => 'content_type',
'owner' => 'local',
'cardinality' => 'many',
),
),
'_composites' =>
array (
),
'_relatedObjects' =>
array (
'Resources' =>
array (
),
),
'_validator' => NULL,
'_validationRules' =>
array (
),
'_validated' =>
array (
),
'_validationLoaded' => false,
'_new' => true,
'_cacheFlag' => true,
'_options' =>
array (
),
)),
'Context' => NULL,
'Children' =>
array (
),
'TemplateVarResources' =>
array (
),
'ResourceGroupResources' =>
array (
),
'Acls' =>
array (
),
'ContextResources' =>
array (
),
),
'_validator' => NULL,
'_validationRules' =>
array (
),
'_validated' =>
array (
),
'_validationLoaded' => false,
'_new' => true,
'_cacheFlag' => true,
'_options' =>
array (
),
)),
'cultureKey' => 'en',
'lexicon' =>
MODX\Revolution\modLexicon::__set_state(array(
'modx' => NULL,
'_lexicon' =>
array (
'en' =>
array (
'breadcrumb_snippet_from_desc' => 'Resource ID of the first crumb.',
'breadcrumb_snippet_to_desc' => 'Resource ID of the last crumb.',
'breadcrumb_snippet_maxcrumbs_desc' => 'Max crumbs shown in breadcrumb',
'breadcrumb_snippet_showhidden_desc' => 'Show hidden resources in breadcrumb.',
'breadcrumb_snippet_showcontainer_desc' => 'Show container resources in breadcrumb.',
'breadcrumb_snippet_showunpub_desc' => 'Show unpublished resources in breadcrumb.',
'breadcrumb_snippet_showcurrentcrumb_desc' => 'Show current resource as a crumb.',
'breadcrumb_snippet_showbreadcrumbatHome_desc' => 'Show BreadCrumb on the home page.',
'breadcrumb_snippet_showhomecrumb_desc' => 'Show the home page as a crumb.',
'breadcrumb_snippet_useweblinkurl_desc' => 'Use the weblink url instead of the url to the weblink.',
'breadcrumb_snippet_direction_desc' => 'Direction or breadcrumb : Left To Right (ltr) or Right To Left (rtl) for Arabic language for example.',
'breadcrumb_snippet_scheme_desc' => 'URL Generation Scheme.',
'breadcrumb_snippet_containertpl_desc' => 'Container template for BreadCrumb. Can be file (@FILE ), code (@INLINE ) or chunk name.',
'breadcrumb_snippet_homecrumbtpl_desc' => 'Home crumb template for BreadCrumb. Can be file (@FILE ), code (@INLINE ) or chunk name.',
'breadcrumb_snippet_currentcrumbtpl_desc' => 'Current crumb template for BreadCrumb. Can be file (@FILE ), code (@INLINE ) or chunk name.',
'breadcrumb_snippet_linkcrumbtpl_desc' => 'Default crumb template for BreadCrumb. Can be file (@FILE ), code (@INLINE ) or chunk name.',
'breadcrumb_snippet_categorycrumbtpl_desc' => 'Default category crumb template for BreadCrumb. Can be file (@FILE ), code (@INLINE ) or chunk name.',
'breadcrumb_snippet_maxcrumbtpl_desc' => 'Max delimiter crumb template for BreadCrumb. Can be file (@FILE ), code (@INLINE ) or chunk name.',
),
),
'_paths' =>
array (
'core' => '/home4/silksto1/public_html/core/cache/lexicon/',
),
'_loadedTopics' =>
array (
0 => 'en:breadcrumb:properties',
1 => 'breadcrumb:properties',
),
'config' =>
array (
),
)),
'user' =>
MODX\Revolution\mysql\modUser::__set_state(array(
'sessionContexts' =>
array (
),
'xpdo' => NULL,
'_attributes' =>
array (
),
'container' => 'silksto1_silkstory2',
'fieldNames' => NULL,
'_class' => 'MODX\\Revolution\\modUser',
'_package' => 'MODX\\Revolution\\',
'_alias' => 'MODX\\Revolution\\modUser',
'_pk' => NULL,
'_pktype' => NULL,
'_table' => '`modx_users`',
'_tableMeta' =>
array (
'engine' => 'InnoDB',
),
'_dirty' =>
array (
'id' => 'id',
'username' => 'username',
'password' => 'password',
'cachepwd' => 'cachepwd',
'class_key' => 'class_key',
'active' => 'active',
'remote_key' => 'remote_key',
'remote_data' => 'remote_data',
'hash_class' => 'hash_class',
'salt' => 'salt',
'primary_group' => 'primary_group',
'session_stale' => 'session_stale',
'sudo' => 'sudo',
'createdon' => 'createdon',
),
'_lazy' =>
array (
),
'_fields' =>
array (
'id' => 0,
'username' => '(anonymous)',
'password' => '',
'cachepwd' => '',
'class_key' => 'MODX\\Revolution\\modUser',
'active' => 1,
'remote_key' => NULL,
'remote_data' => NULL,
'hash_class' => 'MODX\\Revolution\\Hashing\\modNative',
'salt' => '',
'primary_group' => 0,
'session_stale' => NULL,
'sudo' => 0,
'createdon' => 0,
),
'_fieldMeta' =>
array (
'id' =>
array (
'dbtype' => 'INTEGER',
'phptype' => 'integer',
'null' => false,
'index' => 'pk',
'generated' => 'native',
'attributes' => 'unsigned',
),
'username' =>
array (
'dbtype' => 'varchar',
'precision' => '100',
'phptype' => 'string',
'null' => false,
'default' => '',
'index' => 'unique',
),
'password' =>
array (
'dbtype' => 'varchar',
'precision' => '255',
'phptype' => 'string',
'null' => false,
'default' => '',
),
'cachepwd' =>
array (
'dbtype' => 'varchar',
'precision' => '255',
'phptype' => 'string',
'null' => false,
'default' => '',
),
'class_key' =>
array (
'dbtype' => 'varchar',
'precision' => '100',
'phptype' => 'string',
'null' => false,
'default' => 'MODX\\Revolution\\modUser',
'index' => 'index',
),
'active' =>
array (
'dbtype' => 'tinyint',
'precision' => '1',
'phptype' => 'boolean',
'attributes' => 'unsigned',
'null' => false,
'default' => 1,
),
'remote_key' =>
array (
'dbtype' => 'varchar',
'precision' => '191',
'phptype' => 'string',
'null' => true,
'index' => 'index',
),
'remote_data' =>
array (
'dbtype' => 'text',
'phptype' => 'json',
'null' => true,
),
'hash_class' =>
array (
'dbtype' => 'varchar',
'precision' => '100',
'phptype' => 'string',
'null' => false,
'default' => 'MODX\\Revolution\\Hashing\\modNative',
),
'salt' =>
array (
'dbtype' => 'varchar',
'precision' => '100',
'phptype' => 'string',
'null' => false,
'default' => '',
),
'primary_group' =>
array (
'dbtype' => 'int',
'precision' => '10',
'phptype' => 'integer',
'attributes' => 'unsigned',
'null' => false,
'default' => 0,
'index' => 'index',
),
'session_stale' =>
array (
'dbtype' => 'text',
'phptype' => 'array',
'null' => true,
),
'sudo' =>
array (
'dbtype' => 'tinyint',
'precision' => '1',
'phptype' => 'boolean',
'attributes' => 'unsigned',
'null' => false,
'default' => 0,
),
'createdon' =>
array (
'dbtype' => 'int',
'precision' => '20',
'phptype' => 'timestamp',
'null' => false,
'default' => 0,
),
),
'_fieldAliases' =>
array (
),
'_aggregates' =>
array (
'CreatedResources' =>
array (
'class' => 'MODX\\Revolution\\modResource',
'local' => 'id',
'foreign' => 'createdby',
'cardinality' => 'many',
'owner' => 'local',
),
'EditedResources' =>
array (
'class' => 'MODX\\Revolution\\modResource',
'local' => 'id',
'foreign' => 'editedby',
'cardinality' => 'many',
'owner' => 'local',
),
'DeletedResources' =>
array (
'class' => 'MODX\\Revolution\\modResource',
'local' => 'id',
'foreign' => 'deletedby',
'cardinality' => 'many',
'owner' => 'local',
),
'PublishedResources' =>
array (
'class' => 'MODX\\Revolution\\modResource',
'local' => 'id',
'foreign' => 'publishedby',
'cardinality' => 'many',
'owner' => 'local',
),
'SentMessages' =>
array (
'class' => 'MODX\\Revolution\\modUserMessage',
'local' => 'id',
'foreign' => 'sender',
'cardinality' => 'many',
'owner' => 'local',
),
'ReceivedMessages' =>
array (
'class' => 'MODX\\Revolution\\modUserMessage',
'local' => 'id',
'foreign' => 'recipient',
'cardinality' => 'many',
'owner' => 'local',
),
'PrimaryGroup' =>
array (
'class' => 'MODX\\Revolution\\modUserGroup',
'local' => 'primary_group',
'foreign' => 'id',
'cardinality' => 'one',
'owner' => 'foreign',
),
),
'_composites' =>
array (
'Acls' =>
array (
'class' => 'modAccess',
'local' => 'id',
'foreign' => 'principal',
'cardinality' => 'many',
'owner' => 'local',
),
'Profile' =>
array (
'class' => 'MODX\\Revolution\\modUserProfile',
'local' => 'id',
'foreign' => 'internalKey',
'cardinality' => 'one',
'owner' => 'local',
),
'UserSettings' =>
array (
'class' => 'MODX\\Revolution\\modUserSetting',
'local' => 'id',
'foreign' => 'user',
'cardinality' => 'many',
'owner' => 'local',
),
'UserGroupMembers' =>
array (
'class' => 'MODX\\Revolution\\modUserGroupMember',
'local' => 'id',
'foreign' => 'member',
'cardinality' => 'many',
'owner' => 'local',
),
'ActiveUsers' =>
array (
'class' => 'MODX\\Revolution\\modActiveUser',
'local' => 'id',
'foreign' => 'internalKey',
'cardinality' => 'many',
'owner' => 'local',
),
'DashboardWidgets' =>
array (
'class' => 'MODX\\Revolution\\modDashboardWidgetPlacement',
'local' => 'id',
'foreign' => 'user',
'cardinality' => 'many',
'owner' => 'local',
),
),
'_relatedObjects' =>
array (
'CreatedResources' =>
array (
),
'EditedResources' =>
array (
),
'DeletedResources' =>
array (
),
'PublishedResources' =>
array (
),
'SentMessages' =>
array (
),
'ReceivedMessages' =>
array (
),
'PrimaryGroup' => NULL,
'Acls' =>
array (
),
'Profile' => NULL,
'UserSettings' =>
array (
),
'UserGroupMembers' =>
array (
),
'ActiveUsers' =>
array (
),
'DashboardWidgets' =>
array (
),
),
'_validator' => NULL,
'_validationRules' =>
array (
),
'_validated' =>
array (
),
'_validationLoaded' => false,
'_new' => true,
'_cacheFlag' => true,
'_options' =>
array (
),
)),
'contentTypes' => NULL,
'resourceIdentifier' => 7,
'resourceMethod' => 'id',
'resourceGenerated' => false,
'version' => NULL,
'site_id' => 'modx64fb42d8ec9494.56883131',
'uuid' => 'def0bf55-2838-4224-b4e5-1bbc410290fb',
'_initialized' => true,
'sjscripts' =>
array (
),
'jscripts' =>
array (
),
'loadedjscripts' =>
array (
),
'virtualDir' => NULL,
'errorHandler' =>
MODX\Revolution\Error\modErrorHandler::__set_state(array(
'modx' => NULL,
'stack' =>
array (
),
)),
'error' =>
MODX\Revolution\Error\modError::__set_state(array(
'errors' =>
array (
),
'message' => '',
'modx' => NULL,
'total' => 0,
'status' => false,
'_objects' =>
array (
),
)),
'controller' => NULL,
'registry' =>
MODX\Revolution\Registry\modRegistry::__set_state(array(
'modx' => NULL,
'_options' =>
array (
),
'_invalidKeys' =>
array (
0 => 'modx',
),
'_registers' =>
array (
),
'_loggingRegister' => NULL,
'_prevLogTarget' => NULL,
'_prevLogLevel' => NULL,
)),
'mail' => NULL,
'smarty' => NULL,
'processors' =>
array (
),
'sanitizePatterns' =>
array (
'scripts' => '@<script[^>]*?>.*?</script>@si',
'entities' => '@&#(\\d+);@',
'tags1' => '@\\[\\[(?:(?!(\\[\\[|\\]\\])).)*\\]\\]@si',
'tags2' => '@(\\[\\[|\\]\\])@si',
),
'_sessionState' => 1,
'_config' =>
array (
'cache_key' => 'default',
'cache_handler' => 'xPDO\\Cache\\xPDOFileCache',
'cache_path' => '/home4/silksto1/public_html/core/cache/',
'table_prefix' => 'modx_',
'hydrate_fields' => true,
'hydrate_related_objects' => true,
'hydrate_adhoc_fields' => true,
'validator_class' => 'MODX\\Revolution\\Validation\\modValidator',
'validate_on_save' => true,
'cache_system_settings' => true,
'cache_system_settings_key' => 'system_settings',
'load_deprecated_global_class_aliases' => true,
'connections' =>
array (
0 =>
array (
'dsn' => 'mysql:host=localhost;dbname=silksto1_silkstory2;charset=utf8',
'username' => 'silksto1_silkstory2',
'password' => '!Kx9TV5Gbwyp',
'options' =>
array (
'connection_mutable' => true,
),
'driverOptions' =>
array (
3 => 0,
),
),
),
'connection_mutable' => true,
'dbtype' => 'mysql',
'host' => 'localhost',
'dbname' => 'silksto1_silkstory2',
'charset' => 'utf8',
'dsn' => 'mysql:host=localhost;dbname=silksto1_silkstory2;charset=utf8',
'username' => 'silksto1_silkstory2',
'password' => '!Kx9TV5Gbwyp',
'driverOptions' =>
array (
3 => 0,
),
'base_url' => '/',
'base_path' => '/home4/silksto1/public_html/',
'core_path' => '/home4/silksto1/public_html/core/',
'url_scheme' => 'https://',
'http_host' => 'silkstory.net',
'site_url' => 'https://silkstory.net/',
'manager_path' => '/home4/silksto1/public_html/manager/',
'manager_url' => '/manager/',
'assets_path' => '/home4/silksto1/public_html/assets/',
'assets_url' => '/assets/',
'connectors_path' => '/home4/silksto1/public_html/connectors/',
'connectors_url' => '/connectors/',
'connector_url' => '/connectors/index.php',
'processors_path' => '/home4/silksto1/public_html/core/src/Revolution/Processors/',
'request_param_id' => 'id',
'request_param_alias' => 'q',
'https_port' => 443,
'error_handler_class' => 'MODX\\Revolution\\Error\\modErrorHandler',
'server_port' => '443',
),
'_systemConfig' =>
array (
'cache_key' => 'default',
'cache_handler' => 'xPDO\\Cache\\xPDOFileCache',
'cache_path' => '/home4/silksto1/public_html/core/cache/',
'table_prefix' => 'modx_',
'hydrate_fields' => true,
'hydrate_related_objects' => true,
'hydrate_adhoc_fields' => true,
'validator_class' => 'MODX\\Revolution\\Validation\\modValidator',
'validate_on_save' => true,
'cache_system_settings' => true,
'cache_system_settings_key' => 'system_settings',
'load_deprecated_global_class_aliases' => true,
'connections' =>
array (
0 =>
array (
'dsn' => 'mysql:host=localhost;dbname=silksto1_silkstory2;charset=utf8',
'username' => 'silksto1_silkstory2',
'password' => '!Kx9TV5Gbwyp',
'options' =>
array (
'connection_mutable' => true,
),
'driverOptions' =>
array (
3 => 0,
),
),
),
'connection_mutable' => true,
'dbtype' => 'mysql',
'host' => 'localhost',
'dbname' => 'silksto1_silkstory2',
'charset' => 'utf8',
'dsn' => 'mysql:host=localhost;dbname=silksto1_silkstory2;charset=utf8',
'username' => 'silksto1_silkstory2',
'password' => '!Kx9TV5Gbwyp',
'driverOptions' =>
array (
3 => 0,
),
'base_url' => '/',
'base_path' => '/home4/silksto1/public_html/',
'core_path' => '/home4/silksto1/public_html/core/',
'url_scheme' => 'https://',
'http_host' => 'silkstory.net',
'site_url' => 'https://silkstory.net/',
'manager_path' => '/home4/silksto1/public_html/manager/',
'manager_url' => '/manager/',
'assets_path' => '/home4/silksto1/public_html/assets/',
'assets_url' => '/assets/',
'connectors_path' => '/home4/silksto1/public_html/connectors/',
'connectors_url' => '/connectors/',
'connector_url' => '/connectors/index.php',
'processors_path' => '/home4/silksto1/public_html/core/src/Revolution/Processors/',
'request_param_id' => 'id',
'request_param_alias' => 'q',
'https_port' => 443,
'error_handler_class' => 'MODX\\Revolution\\Error\\modErrorHandler',
'server_port' => '443',
'access_category_enabled' => '1',
'access_context_enabled' => '1',
'access_resource_group_enabled' => '1',
'allow_forward_across_contexts' => '',
'allow_manager_login_forgot_password' => '1',
'allow_multiple_emails' => '1',
'allow_tags_in_post' => '',
'anonymous_sessions' => '1',
'archive_with' => '',
'automatic_alias' => '1',
'automatic_template_assignment' => 'sibling',
'auto_check_pkg_updates' => '1',
'auto_check_pkg_updates_cache_expire' => '15',
'auto_isfolder' => '1',
'auto_menuindex' => '1',
'babel.babelTvName' => 'babelLanguageLinks',
'babel.contextKeys' => 'web,en,zh',
'babel.syncTvs' => '',
'base_help_url' => '//docs.modx.com/help/',
'blocked_minutes' => '60',
'cache_alias_map' => '1',
'cache_context_settings' => '1',
'cache_db' => '',
'cache_db_expires' => '0',
'cache_db_session' => '',
'cache_db_session_lifetime' => '',
'cache_default' => '1',
'cache_expires' => '0',
'cache_format' => '0',
'cache_lang_js' => '1',
'cache_lexicon_topics' => '1',
'cache_noncore_lexicon_topics' => '1',
'cache_resource' => '1',
'cache_resource_clear_partial' => '',
'cache_resource_expires' => '0',
'cache_scripts' => '1',
'clear_cache_refresh_trees' => '',
'compress_css' => '1',
'compress_js' => '1',
'confirm_navigation' => '1',
'container_suffix' => '/',
'context_tree_sort' => '1',
'context_tree_sortby' => 'rank',
'context_tree_sortdir' => 'ASC',
'cultureKey' => 'en',
'date_timezone' => '',
'debug' => '',
'default_content_type' => '1',
'default_context' => 'web',
'default_duplicate_publish_option' => 'preserve',
'default_media_source' => '1',
'default_media_source_type' => 'MODX\\Revolution\\Sources\\modFileMediaSource',
'default_per_page' => '20',
'default_template' => '2',
'default_username' => '(anonymous)',
'emailsender' => 'sunny.uy@gmail.com',
'enable_dragdrop' => '1',
'enable_gravatar' => '',
'enable_template_picker_in_tree' => '1',
'error_log_filename' => 'error.log',
'error_log_filepath' => '',
'error_page' => '1',
'failed_login_attempts' => '5',
'feed_modx_news' => 'https://feeds.feedburner.com/modx-announce',
'feed_modx_news_enabled' => '1',
'feed_modx_security' => 'https://forums.modx.com/board.xml?board=294',
'feed_modx_security_enabled' => '1',
'form_customization_use_all_groups' => '',
'forward_merge_excludes' => 'type,published,class_key',
'friendly_alias_lowercase_only' => '1',
'friendly_alias_max_length' => '0',
'friendly_alias_realtime' => '1',
'friendly_alias_restrict_chars' => 'pattern',
'friendly_alias_restrict_chars_pattern' => '/[\\0\\x0B\\t\\n\\r\\f\\a&=+%#<>"~:`@\\?\\[\\]\\{\\}\\|\\^\'\\\\]/',
'friendly_alias_strip_element_tags' => '1',
'friendly_alias_translit' => 'none',
'friendly_alias_translit_class' => 'translit.modTransliterate',
'friendly_alias_translit_class_path' => '/home4/silksto1/public_html/core/components/',
'friendly_alias_trim_chars' => '/.-_',
'friendly_alias_word_delimiter' => '-',
'friendly_alias_word_delimiters' => '-_',
'friendly_urls' => '1',
'friendly_urls_strict' => '',
'global_duplicate_uri_check' => '',
'hidemenu_default' => '',
'inline_help' => '1',
'link_tag_scheme' => '-1',
'locale' => '',
'lock_ttl' => '360',
'login_background_image' => '',
'login_help_button' => '',
'login_logo' => '',
'log_deprecated' => '1',
'log_level' => '1',
'log_snippet_not_found' => '1',
'log_target' => 'FILE',
'mail_charset' => 'UTF-8',
'mail_encoding' => '8bit',
'mail_smtp_auth' => '',
'mail_smtp_autotls' => '1',
'mail_smtp_helo' => '',
'mail_smtp_hosts' => 'localhost',
'mail_smtp_keepalive' => '',
'mail_smtp_pass' => '',
'mail_smtp_port' => '587',
'mail_smtp_secure' => '',
'mail_smtp_single_to' => '',
'mail_smtp_timeout' => '10',
'mail_smtp_user' => '',
'mail_use_smtp' => '',
'main_nav_parent' => 'topnav',
'manager_date_format' => 'Y-m-d',
'manager_direction' => 'ltr',
'manager_favicon_url' => 'favicon.ico',
'manager_login_url_alternate' => '',
'manager_logo' => '',
'manager_theme' => 'default',
'manager_time_format' => 'H:i',
'manager_tooltip_delay' => '2300',
'manager_tooltip_enable' => '1',
'manager_use_fullname' => '',
'manager_week_start' => '0',
'mgr_source_icon' => 'icon-folder-open-o',
'mgr_tree_icon_context' => 'tree-context',
'modx_browser_default_sort' => 'name',
'modx_browser_default_viewmode' => 'grid',
'modx_browser_tree_hide_files' => '1',
'modx_browser_tree_hide_tooltips' => '1',
'modx_charset' => 'UTF-8',
'parser_recurse_uncacheable' => '1',
'passwordless_activated' => '',
'passwordless_expiration' => '3600',
'password_generated_length' => '10',
'password_min_length' => '8',
'phpthumb_allow_src_above_docroot' => '',
'phpthumb_cache_maxage' => '30',
'phpthumb_cache_maxfiles' => '10000',
'phpthumb_cache_maxsize' => '100',
'phpthumb_cache_source_enabled' => '',
'phpthumb_document_root' => '',
'phpthumb_error_bgcolor' => 'CCCCFF',
'phpthumb_error_fontsize' => '1',
'phpthumb_error_textcolor' => 'FF0000',
'phpthumb_far' => 'C',
'phpthumb_imagemagick_path' => '',
'phpthumb_nohotlink_enabled' => '1',
'phpthumb_nohotlink_erase_image' => '1',
'phpthumb_nohotlink_text_message' => 'Off-server thumbnailing is not allowed',
'phpthumb_nohotlink_valid_domains' => 'www.silkstory.net',
'phpthumb_nooffsitelink_enabled' => '',
'phpthumb_nooffsitelink_erase_image' => '1',
'phpthumb_nooffsitelink_require_refer' => '',
'phpthumb_nooffsitelink_text_message' => 'Off-server linking is not allowed',
'phpthumb_nooffsitelink_valid_domains' => 'www.silkstory.net',
'phpthumb_nooffsitelink_watermark_src' => '',
'phpthumb_zoomcrop' => '0',
'preserve_menuindex' => '',
'principal_targets' => 'MODX\\Revolution\\modAccessContext,MODX\\Revolution\\modAccessResourceGroup,MODX\\Revolution\\modAccessCategory,MODX\\Revolution\\Sources\\modAccessMediaSource,MODX\\Revolution\\modAccessNamespace',
'proxy_auth_type' => 'BASIC',
'proxy_host' => '',
'proxy_password' => '',
'proxy_port' => '',
'proxy_username' => '',
'publish_default' => '',
'quick_search_in_content' => '1',
'quick_search_result_max' => '10',
'request_controller' => 'index.php',
'request_method_strict' => '',
'resource_static_allow_absolute' => '0',
'resource_static_path' => '/home4/silksto1/public_html/assets/',
'resource_tree_node_name' => 'pagetitle',
'resource_tree_node_name_fallback' => 'alias',
'resource_tree_node_tooltip' => '',
'richtext_default' => '1',
'search_default' => '1',
'send_poweredby_header' => '',
'server_offset_time' => '0',
'session_cookie_domain' => '',
'session_cookie_httponly' => '1',
'session_cookie_lifetime' => '604800',
'session_cookie_path' => '',
'session_cookie_samesite' => '',
'session_cookie_secure' => '',
'session_gc_maxlifetime' => '604800',
'session_handler_class' => 'MODX\\Revolution\\modSessionHandler',
'session_name' => '',
'settings_distro' => 'traditional',
'settings_version' => '3.0.3-pl',
'set_header' => '1',
'show_tv_categories_header' => '1',
'site_name' => 'MODX Revolution',
'site_start' => '1',
'site_status' => '1',
'site_unavailable_message' => '[[%site_unavailable_message]]',
'site_unavailable_page' => '0',
'static_elements_automate_chunks' => '',
'static_elements_automate_plugins' => '',
'static_elements_automate_snippets' => '',
'static_elements_automate_templates' => '',
'static_elements_automate_tvs' => '',
'static_elements_basepath' => '',
'static_elements_default_category' => '0',
'static_elements_default_mediasource' => '0',
'static_elements_html_extension' => '.tpl',
'symlink_merge_fields' => '1',
'syncsite_default' => '1',
'topmenu_show_descriptions' => '1',
'tree_default_sort' => 'menuindex',
'tree_root_id' => '0',
'tvs_below_content' => '',
'unauthorized_page' => '1',
'upload_files' => 'txt,html,htm,xml,js,js.map,css,scss,less,css.map,zip,gz,rar,z,tgz,tar,mp3,mp4,aac,wav,au,wmv,avi,mpg,mpeg,pdf,doc,docx,xls,xlsx,ppt,pptx,jpg,jpeg,png,tiff,svg,svgz,gif,psd,ico,bmp,webp,odt,ods,odp,odb,odg,odf,md,ttf,woff,woff2,eot',
'upload_file_exists' => '1',
'upload_images' => 'jpg,jpeg,png,gif,psd,ico,bmp,tiff,svg,svgz,webp',
'upload_maxsize' => '33554432',
'upload_media' => 'mp3,wav,au,wmv,avi,mpg,mpeg',
'upload_translit' => '1',
'user_nav_parent' => 'usernav',
'use_alias_path' => '',
'use_context_resource_table' => '1',
'use_editor' => '1',
'use_frozen_parent_uris' => '',
'use_multibyte' => '1',
'use_weblink_target' => '',
'welcome_action' => 'welcome',
'welcome_namespace' => 'core',
'welcome_screen' => '',
'welcome_screen_url' => '//misc.modx.com/revolution/welcome.30.html ',
'which_editor' => '',
'which_element_editor' => '',
'xhtml_urls' => '1',
),
'_userConfig' =>
array (
),
'_logSequence' => 0,
'pluginCache' =>
array (
1 =>
array (
'id' => '1',
'source' => '0',
'property_preprocess' => '0',
'name' => 'Babel',
'description' => 'Links and synchronizes multilingual resources.',
'editor_type' => '0',
'category' => '1',
'cache_type' => '0',
'plugincode' => '/**
* Babel
*
* Copyright 2010 by Jakob Class <jakob.class@class-zec.de>
*
* This file is part of Babel.
*
* Babel is free software; you can redistribute it and/or modify it under the
* terms of the GNU General Public License as published by the Free Software
* Foundation; either version 2 of the License, or (at your option) any later
* version.
*
* Babel is distributed in the hope that it will be useful, but WITHOUT ANY
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
* A PARTICULAR PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with
* Babel; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
* Suite 330, Boston, MA 02111-1307 USA
*
* @package babel
*/
/**
* Babel Plugin to link and synchronize multilingual resources
*
* Based on ideas of Sylvain Aerni <enzyms@gmail.com>
*
* Events:
* OnDocFormPrerender,OnDocFormSave,OnEmptyTrash,OnContextRemove,OnResourceDuplicate
*
* @author Jakob Class <jakob.class@class-zec.de>
* goldsky <goldsky@virtudraft.com>
*
* @package babel
*
*/
$babel = $modx->getService(\'babel\', \'Babel\', $modx->getOption(\'babel.core_path\', null, $modx->getOption(\'core_path\').\'components/babel/\').\'model/babel/\');
/* be sure babel TV is loaded */
if (!($babel instanceof Babel) || !$babel->babelTv)
return;
switch ($modx->event->name) {
case \'OnDocFormPrerender\':
$output = \'\';
$errorMessage = \'\';
$resource = & $modx->event->params[\'resource\'];
if (!$resource) {
/* a new resource is being to created
* -> skip rendering the babel box */
break;
}
$linkedResources = $babel->getLinkedResources($resource->get(\'id\'));
if (empty($linkedResources)) {
/* always be sure that the Babel TV is set */
$babel->initBabelTv($resource);
}
/* create babel-box with links to translations */
$outputLanguageItems = \'\';
if (!$modx->lexicon) {
$modx->getService(\'lexicon\', \'modLexicon\');
}
$languagesStore = [];
$contextKeys = $babel->getGroupContextKeys($resource->get(\'context_key\'));
foreach ($contextKeys as $contextKey) {
/* for each (valid/existing) context of the context group a button will be displayed */
$context = $modx->getObject(\'modContext\', [\'key\' => $contextKey]);
if (!$context) {
$modx->log(modX::LOG_LEVEL_ERROR, \'Could not load context: \'.$contextKey);
continue;
}
$context->prepare();
$cultureKey = $context->getOption(\'cultureKey\', $modx->getOption(\'cultureKey\'));
$languagesStore[] = [$modx->lexicon(\'babel.language_\'.$cultureKey)." ($contextKey)", $contextKey];
}
$babel->config[\'context_key\'] = $resource->get(\'context_key\');
$babel->config[\'languagesStore\'] = $languagesStore;
$babel->config[\'menu\'] = $babel->getMenu($resource);
if (empty($babel->config[\'menu\'])) {
$modx->log(modX::LOG_LEVEL_ERROR, \'[Babel] Could not load menu for context key: "\'.$babel->config[\'context_key\'].\'". Try to check "babel.contextKeys" in System Settings. If this is intended, you can ignore this warning.\');
return;
}
$version = str_replace(\' \', \'\', $babel->config[\'version\']);
$isCSSCompressed = $modx->getOption(\'compress_css\');
$withVersion = $isCSSCompressed ? \'\' : \'?v=\'.$version;
$modx->controller->addCss($babel->config[\'cssUrl\'].\'babel.css\'.$withVersion);
$modx->controller->addLexiconTopic(\'babel:default\');
$isJsCompressed = $modx->getOption(\'compress_js\');
$withVersion = $isJsCompressed ? \'\' : \'?v=\'.$version;
$modx->controller->addJavascript($babel->config[\'jsUrl\'].\'babel.class.js\'.$withVersion);
$modx->controller->addHtml(\'
<script type="text/javascript">
Ext.onReady(function () {
var babel = new Babel(\'.json_encode($babel->config).\');
babel.getMenu(babel.config.menu);
});
</script>\');
break;
case \'OnDocFormSave\':
$resource = & $modx->event->params[\'resource\'];
if (!$resource) {
$modx->log(modX::LOG_LEVEL_ERROR, \'No resource provided for OnDocFormSave event\');
break;
}
if ($modx->event->params[\'mode\'] == modSystemEvent::MODE_NEW) {
/* no TV synchronization for new resources, just init Babel TV */
$babel->initBabelTv($resource);
break;
}
$babel->synchronizeTvs($resource->get(\'id\'));
break;
case \'OnEmptyTrash\':
/* remove translation links to non-existing resources */
$deletedResourceIds = & $modx->event->params[\'ids\'];
if (is_array($deletedResourceIds)) {
foreach ($deletedResourceIds as $deletedResourceId) {
$babel->removeLanguageLinksToResource($deletedResourceId);
}
}
break;
case \'OnContextRemove\':
/* remove translation links to non-existing contexts */
$context = & $modx->event->params[\'context\'];
if ($context) {
$babel->removeLanguageLinksToContext($context->get(\'key\'));
}
break;
case \'OnResourceDuplicate\':
/* init Babel TV of duplicated resources */
$resource = & $modx->event->params[\'newResource\'];
$babel->initBabelTvsRecursive($modx, $babel, $resource->get(\'id\'));
break;
case \'OnResourceSort\':
$nodesAffected = & $modx->event->params[\'nodesAffected\'];
foreach ($nodesAffected as $node) {
$linkedResources = $babel->getLinkedResources($node->get(\'id\'));
foreach ($linkedResources as $key => $id) {
if ($id === $node->get(\'id\')) {
unset($linkedResources[$key]);
}
}
$linkedResources[$node->get(\'context_key\')] = $node->get(\'id\');
$babel->updateBabelTv($linkedResources, $linkedResources);
}
break;
case \'OnSiteRefresh\':
$cacheManager = $modx->getCacheManager();
$cacheManager->refresh([
\'babel\' => [],
]);
break;
default:
break;
}
return;',
'locked' => '0',
'properties' => 'a:0:{}',
'disabled' => '0',
'moduleguid' => '',
'static' => '0',
'static_file' => '',
),
2 =>
array (
'id' => '2',
'source' => '1',
'property_preprocess' => '0',
'name' => 'gatewaySwitch',
'description' => '',
'editor_type' => '0',
'category' => '0',
'cache_type' => '0',
'plugincode' => 'if ($modx->context->get(\'key\') != "mgr") {
switch ($_REQUEST[\'cultureKey\']) {
case \'en\':
$modx->switchContext(\'en\');
break;
case \'zh\':
$modx->switchContext(\'zh\');
break;
default:
$modx->switchContext(\'web\');
break;
}
unset($_GET[\'cultureKey\']);
}',
'locked' => '0',
'properties' => 'a:0:{}',
'disabled' => '0',
'moduleguid' => '',
'static' => '0',
'static_file' => '',
),
),
'sourceCache' =>
array (
'MODX\\Revolution\\modChunk' =>
array (
'top' =>
array (
'fields' =>
array (
'id' => 2,
'source' => 1,
'property_preprocess' => false,
'name' => 'top',
'description' => '',
'editor_type' => 0,
'category' => 0,
'cache_type' => 0,
'snippet' => '<!DOCTYPE html>
<html lang="[[!GetCurrentLanguage]]">
<head>[[$googleAnalytics]][[!GetOgTags]]
<base href="[[++site_url]]" />
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no">
<title>SilkStory - [[*longtitle]]</title>
<link rel="stylesheet" href="/assets/bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="/assets/css/styles.css">
<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8212661150885235"
crossorigin="anonymous"></script>
</head>
<body id="[[*bodyId]]" class="[[*bodyClass]]">[[$shareThis]]
<header>
<section class="navbar2">
<div class="container d-xxl-flex justify-content-xxl-end">
<div class="d-flex d-sm-flex d-md-flex justify-content-end sec-nav">[[!LanguageSwitcher]]</div>
</div>
</section>
<nav class="navbar navbar-light navbar-expand-md">
<div class="container"><a class="navbar-brand" href="/[[!GetCurrentLanguage]]"><span class="en">SilkStory</span><span class="zh">漢字故事
</span></a><button data-bs-toggle="collapse" class="navbar-toggler" data-bs-target="#navcol-1"><span class="visually-hidden">Toggle
navigation</span><span class="navbar-toggler-icon"></span></button>
<div class="collapse navbar-collapse d-md-flex d-xxl-flex justify-content-md-end" id="navcol-1">[[Wayfinder? &startId=`0`&level=`1`&outerTpl=`menuOuterTpl`&rowTpl=`menuRowTpl`]]</div>
</div>
</nav>
</header>
<main>
[[!If? &subject=`[[*showBreadcrumbs]]` &operator=`EQ` &operand=`1` &then=`[[$breadcrumbs]]`]]',
'locked' => false,
'properties' =>
array (
),
'static' => false,
'static_file' => '',
'content' => '<!DOCTYPE html>
<html lang="[[!GetCurrentLanguage]]">
<head>[[$googleAnalytics]][[!GetOgTags]]
<base href="[[++site_url]]" />
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no">
<title>SilkStory - [[*longtitle]]</title>
<link rel="stylesheet" href="/assets/bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="/assets/css/styles.css">
<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8212661150885235"
crossorigin="anonymous"></script>
</head>
<body id="[[*bodyId]]" class="[[*bodyClass]]">[[$shareThis]]
<header>
<section class="navbar2">
<div class="container d-xxl-flex justify-content-xxl-end">
<div class="d-flex d-sm-flex d-md-flex justify-content-end sec-nav">[[!LanguageSwitcher]]</div>
</div>
</section>
<nav class="navbar navbar-light navbar-expand-md">
<div class="container"><a class="navbar-brand" href="/[[!GetCurrentLanguage]]"><span class="en">SilkStory</span><span class="zh">漢字故事
</span></a><button data-bs-toggle="collapse" class="navbar-toggler" data-bs-target="#navcol-1"><span class="visually-hidden">Toggle
navigation</span><span class="navbar-toggler-icon"></span></button>
<div class="collapse navbar-collapse d-md-flex d-xxl-flex justify-content-md-end" id="navcol-1">[[Wayfinder? &startId=`0`&level=`1`&outerTpl=`menuOuterTpl`&rowTpl=`menuRowTpl`]]</div>
</div>
</nav>
</header>
<main>
[[!If? &subject=`[[*showBreadcrumbs]]` &operator=`EQ` &operand=`1` &then=`[[$breadcrumbs]]`]]',
),
'policies' =>
array (
'en' =>
array (
),
),
'source' =>
array (
'id' => 1,
'name' => 'Filesystem',
'description' => '',
'class_key' => 'MODX\\Revolution\\Sources\\modFileMediaSource',
'properties' =>
array (
),
'is_stream' => true,
),
),
'googleAnalytics' =>
array (
'fields' =>
array (
'id' => 5,
'source' => 1,
'property_preprocess' => false,
'name' => 'googleAnalytics',
'description' => '',
'editor_type' => 0,
'category' => 0,
'cache_type' => 0,
'snippet' => '<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-79W9MR2WZM"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag(\'js\', new Date());
gtag(\'config\', \'G-79W9MR2WZM\');
</script>',
'locked' => false,
'properties' =>
array (
),
'static' => false,
'static_file' => '',
'content' => '<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-79W9MR2WZM"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag(\'js\', new Date());
gtag(\'config\', \'G-79W9MR2WZM\');
</script>',
),
'policies' =>
array (
'en' =>
array (
),
),
'source' =>
array (
'id' => 1,
'name' => 'Filesystem',
'description' => '',
'class_key' => 'MODX\\Revolution\\Sources\\modFileMediaSource',
'properties' =>
array (
),
'is_stream' => true,
),
),
'shareThis' =>
array (
'fields' =>
array (
'id' => 4,
'source' => 1,
'property_preprocess' => false,
'name' => 'shareThis',
'description' => '',
'editor_type' => 0,
'category' => 0,
'cache_type' => 0,
'snippet' => '<script type=\'text/javascript\' src=\'https://platform-api.sharethis.com/js/sharethis.js#property=5e805c309f548d001a3832ba&product=sop\' async=\'async\'></script>',
'locked' => false,
'properties' =>
array (
),
'static' => false,
'static_file' => '',
'content' => '<script type=\'text/javascript\' src=\'https://platform-api.sharethis.com/js/sharethis.js#property=5e805c309f548d001a3832ba&product=sop\' async=\'async\'></script>',
),
'policies' =>
array (
'en' =>
array (
),
),
'source' =>
array (
'id' => 1,
'name' => 'Filesystem',
'description' => '',
'class_key' => 'MODX\\Revolution\\Sources\\modFileMediaSource',
'properties' =>
array (
),
'is_stream' => true,
),
),
'breadcrumbs' =>
array (
'fields' =>
array (
'id' => 3,
'source' => 1,
'property_preprocess' => false,
'name' => 'breadcrumbs',
'description' => '',
'editor_type' => 0,
'category' => 0,
'cache_type' => 0,
'snippet' => '<div class="container">
<div class="row">
<div class="col-md-12 pt-3">[[!BreadCrumb? &containerTpl=`BreadCrumbContainerTpl` &homeCrumbTpl=`myLinkCrumbTpl` &linkCrumbTpl=`myLinkCrumbTpl` ¤tCrumbTpl=`myCurrentCrumbTpl` &showHidden=`1` &showHomeCrumb=`1`]]</div>
</div>
</div>',
'locked' => false,
'properties' =>
array (
),
'static' => false,
'static_file' => '',
'content' => '<div class="container">
<div class="row">
<div class="col-md-12 pt-3">[[!BreadCrumb? &containerTpl=`BreadCrumbContainerTpl` &homeCrumbTpl=`myLinkCrumbTpl` &linkCrumbTpl=`myLinkCrumbTpl` ¤tCrumbTpl=`myCurrentCrumbTpl` &showHidden=`1` &showHomeCrumb=`1`]]</div>
</div>
</div>',
),
'policies' =>
array (
'en' =>
array (
),
),
'source' =>
array (
'id' => 1,
'name' => 'Filesystem',
'description' => '',
'class_key' => 'MODX\\Revolution\\Sources\\modFileMediaSource',
'properties' =>
array (
),
'is_stream' => true,
),
),
'bottom' =>
array (
'fields' =>
array (
'id' => 1,
'source' => 1,
'property_preprocess' => false,
'name' => 'bottom',
'description' => '',
'editor_type' => 0,
'category' => 0,
'cache_type' => 0,
'snippet' => '</main>[[!searchBox]]
<footer class="text-center py-4">
<div class="container">
<div class="row">
<div class="col d-xxl-flex justify-content-xxl-start">
<p class="text-muted my-2">Copyright © 2023 SilkStory</p>
</div>
<div class="col d-flex justify-content-end social-icons">
<ul class="list-inline my-2">
<li class="list-inline-item me-4">Follow Us</li>
<li class="list-inline-item me-4"><a href="https://www.facebook.com/meizai.chou" target="_blank"><i class="bi bi-facebook"></i></a></li>
<li class="list-inline-item me-4"><a href="https://www.youtube.com/user/choumeizai" target="_blank"><i class="bi bi-youtube"></i></li>
<li class="list-inline-item me-4"><a href="mailto:info@smallboy.net" target="_blank"><i class="bi bi-envelope"></i></li>
</ul>
</div>
</div>
</div>
</footer>
<script src=" https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js"></script>',
'locked' => false,
'properties' =>
array (
),
'static' => false,
'static_file' => '',
'content' => '</main>[[!searchBox]]
<footer class="text-center py-4">
<div class="container">
<div class="row">
<div class="col d-xxl-flex justify-content-xxl-start">
<p class="text-muted my-2">Copyright © 2023 SilkStory</p>
</div>
<div class="col d-flex justify-content-end social-icons">
<ul class="list-inline my-2">
<li class="list-inline-item me-4">Follow Us</li>
<li class="list-inline-item me-4"><a href="https://www.facebook.com/meizai.chou" target="_blank"><i class="bi bi-facebook"></i></a></li>
<li class="list-inline-item me-4"><a href="https://www.youtube.com/user/choumeizai" target="_blank"><i class="bi bi-youtube"></i></li>
<li class="list-inline-item me-4"><a href="mailto:info@smallboy.net" target="_blank"><i class="bi bi-envelope"></i></li>
</ul>
</div>
</div>
</div>
</footer>
<script src=" https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js"></script>',
),
'policies' =>
array (
'en' =>
array (
),
),
'source' =>
array (
'id' => 1,
'name' => 'Filesystem',
'description' => '',
'class_key' => 'MODX\\Revolution\\Sources\\modFileMediaSource',
'properties' =>
array (
),
'is_stream' => true,
),
),
),
'MODX\\Revolution\\modSnippet' =>
array (
'Wayfinder' =>
array (
'fields' =>
array (
'id' => 5,
'source' => 0,
'property_preprocess' => false,
'name' => 'Wayfinder',
'description' => 'Wayfinder for MODx Revolution 2.0.0-beta-5 and later.',
'editor_type' => 0,
'category' => 0,
'cache_type' => 0,
'snippet' => '/**
* Wayfinder Snippet to build site navigation menus
*
* Totally refactored from original DropMenu nav builder to make it easier to
* create custom navigation by using chunks as output templates. By using
* templates, many of the paramaters are no longer needed for flexible output
* including tables, unordered- or ordered-lists (ULs or OLs), definition lists
* (DLs) or in any other format you desire.
*
* @version 2.1.1-beta5
* @author Garry Nutting (collabpad.com)
* @author Kyle Jaebker (muddydogpaws.com)
* @author Ryan Thrash (modx.com)
* @author Shaun McCormick (modx.com)
* @author Jason Coward (modx.com)
*
* @example [[Wayfinder? &startId=`0`]]
*
* @var modX $modx
* @var array $scriptProperties
*
* @package wayfinder
*/
$wayfinder_base = $modx->getOption(\'wayfinder.core_path\',$scriptProperties,$modx->getOption(\'core_path\').\'components/wayfinder/\');
/* include a custom config file if specified */
if (isset($scriptProperties[\'config\'])) {
$scriptProperties[\'config\'] = str_replace(\'../\',\'\',$scriptProperties[\'config\']);
$scriptProperties[\'config\'] = $wayfinder_base.\'configs/\'.$scriptProperties[\'config\'].\'.config.php\';
} else {
$scriptProperties[\'config\'] = $wayfinder_base.\'configs/default.config.php\';
}
if (file_exists($scriptProperties[\'config\'])) {
include $scriptProperties[\'config\'];
}
/* include wayfinder class */
include_once $wayfinder_base.\'wayfinder.class.php\';
if (!$modx->loadClass(\'Wayfinder\',$wayfinder_base,true,true)) {
return \'error: Wayfinder class not found\';
}
$wf = new Wayfinder($modx,$scriptProperties);
/* get user class definitions
* TODO: eventually move these into config parameters */
$wf->_css = array(
\'first\' => isset($firstClass) ? $firstClass : \'\',
\'last\' => isset($lastClass) ? $lastClass : \'last\',
\'here\' => isset($hereClass) ? $hereClass : \'active\',
\'parent\' => isset($parentClass) ? $parentClass : \'\',
\'row\' => isset($rowClass) ? $rowClass : \'\',
\'outer\' => isset($outerClass) ? $outerClass : \'\',
\'inner\' => isset($innerClass) ? $innerClass : \'\',
\'level\' => isset($levelClass) ? $levelClass: \'\',
\'self\' => isset($selfClass) ? $selfClass : \'\',
\'weblink\' => isset($webLinkClass) ? $webLinkClass : \'\'
);
/* get user templates
* TODO: eventually move these into config parameters */
$wf->_templates = array(
\'outerTpl\' => isset($outerTpl) ? $outerTpl : \'\',
\'rowTpl\' => isset($rowTpl) ? $rowTpl : \'\',
\'parentRowTpl\' => isset($parentRowTpl) ? $parentRowTpl : \'\',
\'parentRowHereTpl\' => isset($parentRowHereTpl) ? $parentRowHereTpl : \'\',
\'hereTpl\' => isset($hereTpl) ? $hereTpl : \'\',
\'innerTpl\' => isset($innerTpl) ? $innerTpl : \'\',
\'innerRowTpl\' => isset($innerRowTpl) ? $innerRowTpl : \'\',
\'innerHereTpl\' => isset($innerHereTpl) ? $innerHereTpl : \'\',
\'activeParentRowTpl\' => isset($activeParentRowTpl) ? $activeParentRowTpl : \'\',
\'categoryFoldersTpl\' => isset($categoryFoldersTpl) ? $categoryFoldersTpl : \'\',
\'startItemTpl\' => isset($startItemTpl) ? $startItemTpl : \'\'
);
/* process Wayfinder */
$output = $wf->run();
if ($wf->_config[\'debug\']) {
$output .= $wf->renderDebugOutput();
}
/* output results */
if ($wf->_config[\'ph\']) {
$modx->setPlaceholder($wf->_config[\'ph\'],$output);
} else {
return $output;
}',
'locked' => false,
'properties' =>
array (
'level' =>
array (
'name' => 'level',
'desc' => 'prop_wayfinder.level_desc',
'type' => 'textfield',
'options' => '',
'value' => '0',
'lexicon' => 'wayfinder:properties',
'desc_trans' => 'Depth (number of levels) to build the menu from. 0 goes through all levels.',
'area' => '',
'area_trans' => '',
),
'includeDocs' =>
array (
'name' => 'includeDocs',
'desc' => 'prop_wayfinder.includeDocs_desc',
'type' => 'textfield',
'options' => '',
'value' => '0',
'lexicon' => 'wayfinder:properties',
'desc_trans' => 'Acts as a filter and will limit the output to only the documents specified in this parameter. The startId is still required.',
'area' => '',
'area_trans' => '',
),
'excludeDocs' =>
array (
'name' => 'excludeDocs',
'desc' => 'prop_wayfinder.excludeDocs_desc',
'type' => 'textfield',
'options' => '',
'value' => '0',
'lexicon' => 'wayfinder:properties',
'desc_trans' => 'Acts as a filter and will remove the documents specified in this parameter from the output. The startId is still required.',
'area' => '',
'area_trans' => '',
),
'contexts' =>
array (
'name' => 'contexts',
'desc' => 'prop_wayfinder.contexts_desc',
'type' => 'textfield',
'options' => '',
'value' => '',
'lexicon' => 'wayfinder:properties',
'desc_trans' => 'Specify the contexts for the Resources that will be loaded in this menu. Useful when used with startId at 0 to show all first-level items. Note: This will increase load times a bit, but if you set cacheResults to 1, that will offset the load time.',
'area' => '',
'area_trans' => '',
),
'cacheResults' =>
array (
'name' => 'cacheResults',
'desc' => 'prop_wayfinder.cacheResults_desc',
'type' => 'combo-boolean',
'options' => '',
'value' => true,
'lexicon' => 'wayfinder:properties',
'desc_trans' => 'Cache the generated menu to the MODX Resource cache. Setting this to 1 will speed up the loading of your menus.',
'area' => '',
'area_trans' => '',
),
'cacheTime' =>
array (
'name' => 'cacheTime',
'desc' => 'prop_wayfinder.cacheTime_desc',
'type' => 'textfield',
'options' => '',
'value' => 3600,
'lexicon' => 'wayfinder:properties',
'desc_trans' => 'The number of seconds to store the cached menu, if cacheResults is 1. Set to 0 to store indefinitely until cache is manually cleared.',
'area' => '',
'area_trans' => '',
),
'ph' =>
array (
'name' => 'ph',
'desc' => 'prop_wayfinder.ph_desc',
'type' => 'combo-boolean',
'options' => '',
'value' => false,
'lexicon' => 'wayfinder:properties',
'desc_trans' => 'To display send the output of Wayfinder to a placeholder set the ph parameter equal to the name of the desired placeholder. All output including the debugging (if on) will be sent to the placeholder specified.',
'area' => '',
'area_trans' => '',
),
'debug' =>
array (
'name' => 'debug',
'desc' => 'prop_wayfinder.debug_desc',
'type' => 'combo-boolean',
'options' => '',
'value' => false,
'lexicon' => 'wayfinder:properties',
'desc_trans' => 'With the debug parameter set to 1, Wayfinder will output information on how each Resource was processed.',
'area' => '',
'area_trans' => '',
),
'ignoreHidden' =>
array (
'name' => 'ignoreHidden',
'desc' => 'prop_wayfinder.ignoreHidden_desc',
'type' => 'combo-boolean',
'options' => '',
'value' => false,
'lexicon' => 'wayfinder:properties',
'desc_trans' => 'The ignoreHidden parameter allows Wayfinder to ignore the display in menu flag that can be set for each document. With this parameter set to 1, all Resources will be displayed regardless of the Display in Menu flag.',
'area' => '',
'area_trans' => '',
),
'hideSubMenus' =>
array (
'name' => 'hideSubMenus',
'desc' => 'prop_wayfinder.hideSubMenus_desc',
'type' => 'combo-boolean',
'options' => '',
'value' => false,
'lexicon' => 'wayfinder:properties',
'desc_trans' => 'The hideSubMenus parameter will remove all non-active submenus from the Wayfinder output if set to 1. This parameter only works if multiple levels are being displayed.',
'area' => '',
'area_trans' => '',
),
'useWeblinkUrl' =>
array (
'name' => 'useWeblinkUrl',
'desc' => 'prop_wayfinder.useWeblinkUrl_desc',
'type' => 'combo-boolean',
'options' => '',
'value' => true,
'lexicon' => 'wayfinder:properties',
'desc_trans' => ' If WebLinks are used in the output, Wayfinder will output the link specified in the WebLink instead of the normal MODx link. To use the standard display of WebLinks (like any other Resource) set this to 0.',
'area' => '',
'area_trans' => '',
),
'fullLink' =>
array (
'name' => 'fullLink',
'desc' => 'prop_wayfinder.fullLink_desc',
'type' => 'combo-boolean',
'options' => '',
'value' => false,
'lexicon' => 'wayfinder:properties',
'desc_trans' => 'If set to 1, will display the entire, absolute URL in the link. (It is recommended to use scheme instead.)',
'area' => '',
'area_trans' => '',
),
'scheme' =>
array (
'name' => 'scheme',
'desc' => 'prop_wayfinder.scheme_desc',
'type' => 'list',
'options' =>
array (
0 =>
array (
'text' => 'prop_wayfinder.relative',
'value' => '',
'name' => 'Relative',
),
1 =>
array (
'text' => 'prop_wayfinder.absolute',
'value' => 'abs',
'name' => 'Absolute',
),
2 =>
array (
'text' => 'prop_wayfinder.full',
'value' => 'full',
'name' => 'Full',
),
),
'value' => '',
'lexicon' => 'wayfinder:properties',
'desc_trans' => 'Determines how URLs are generated for each link. Set to "abs" to show the absolute URL, "full" to show the full URL, and blank to use the relative URL. Defaults to relative.',
'area' => '',
'area_trans' => '',
),
'sortOrder' =>
array (
'name' => 'sortOrder',
'desc' => 'prop_wayfinder.sortOrder_desc',
'type' => 'list',
'options' =>
array (
0 =>
array (
'text' => 'prop_wayfinder.ascending',
'value' => 'ASC',
'name' => 'Ascending',
),
1 =>
array (
'text' => 'prop_wayfinder.descending',
'value' => 'DESC',
'name' => 'Descending',
),
),
'value' => 'ASC',
'lexicon' => 'wayfinder:properties',
'desc_trans' => 'Allows the menu to be sorted in either ascending or descending order.',
'area' => '',
'area_trans' => '',
),
'sortBy' =>
array (
'name' => 'sortBy',
'desc' => 'prop_wayfinder.sortBy_desc',
'type' => 'textfield',
'options' => '',
'value' => 'menuindex',
'lexicon' => 'wayfinder:properties',
'desc_trans' => 'Sorts the output by any of the Resource fields on a level by level basis. This means that each submenu will be sorted independently of all other submenus at the same level. Random will sort the output differently every time the page is loaded if the snippet is called uncached.',
'area' => '',
'area_trans' => '',
),
'limit' =>
array (
'name' => 'limit',
'desc' => 'prop_wayfinder.limit_desc',
'type' => 'textfield',
'options' => '',
'value' => '0',
'lexicon' => 'wayfinder:properties',
'desc_trans' => 'Causes Wayfinder to only process the number of items specified per level.',
'area' => '',
'area_trans' => '',
),
'cssTpl' =>
array (
'name' => 'cssTpl',
'desc' => 'prop_wayfinder.cssTpl_desc',
'type' => 'textfield',
'options' => '',
'value' => false,
'lexicon' => 'wayfinder:properties',
'desc_trans' => 'This parameter allows for a chunk containing a link to a style sheet or style information to be inserted into the head section of the generated page.',
'area' => '',
'area_trans' => '',
),
'jsTpl' =>
array (
'name' => 'jsTpl',
'desc' => 'prop_wayfinder.jsTpl_desc',
'type' => 'textfield',
'options' => '',
'value' => false,
'lexicon' => 'wayfinder:properties',
'desc_trans' => 'This parameter allows for a chunk containing some Javascript to be inserted into the head section of the generated page.',
'area' => '',
'area_trans' => '',
),
'rowIdPrefix' =>
array (
'name' => 'rowIdPrefix',
'desc' => 'prop_wayfinder.rowIdPrefix_desc',
'type' => 'textfield',
'options' => '',
'value' => false,
'lexicon' => 'wayfinder:properties',
'desc_trans' => 'If set, Wayfinder will replace the id placeholder with a unique id consisting of the specified prefix plus the Resource id.',
'area' => '',
'area_trans' => '',
),
'textOfLinks' =>
array (
'name' => 'textOfLinks',
'desc' => 'prop_wayfinder.textOfLinks_desc',
'type' => 'textfield',
'options' => '',
'value' => 'menutitle',
'lexicon' => 'wayfinder:properties',
'desc_trans' => 'This field will be inserted into the linktext placeholder.',
'area' => '',
'area_trans' => '',
),
'titleOfLinks' =>
array (
'name' => 'titleOfLinks',
'desc' => 'prop_wayfinder.titleOfLinks_desc',
'type' => 'textfield',
'options' => '',
'value' => 'pagetitle',
'lexicon' => 'wayfinder:properties',
'desc_trans' => 'This field will be inserted into the linktitle placeholder.',
'area' => '',
'area_trans' => '',
),
'displayStart' =>
array (
'name' => 'displayStart',
'desc' => 'prop_wayfinder.displayStart_desc',
'type' => 'combo-boolean',
'options' => '',
'value' => false,
'lexicon' => 'wayfinder:properties',
'desc_trans' => 'Show the document as referenced by startId in the menu.',
'area' => '',
'area_trans' => '',
),
'firstClass' =>
array (
'name' => 'firstClass',
'desc' => 'prop_wayfinder.firstClass_desc',
'type' => 'textfield',
'options' => '',
'value' => 'first',
'lexicon' => 'wayfinder:properties',
'desc_trans' => 'CSS class for the first item at a given menu level.',
'area' => '',
'area_trans' => '',
),
'lastClass' =>
array (
'name' => 'lastClass',
'desc' => 'prop_wayfinder.lastClass_desc',
'type' => 'textfield',
'options' => '',
'value' => 'last',
'lexicon' => 'wayfinder:properties',
'desc_trans' => 'CSS class for the last item at a given menu level.',
'area' => '',
'area_trans' => '',
),
'hereClass' =>
array (
'name' => 'hereClass',
'desc' => 'prop_wayfinder.hereClass_desc',
'type' => 'textfield',
'options' => '',
'value' => 'active',
'lexicon' => 'wayfinder:properties',
'desc_trans' => 'CSS class for the items showing where you are, all the way up the chain.',
'area' => '',
'area_trans' => '',
),
'parentClass' =>
array (
'name' => 'parentClass',
'desc' => 'prop_wayfinder.parentClass_desc',
'type' => 'textfield',
'options' => '',
'value' => '',
'lexicon' => 'wayfinder:properties',
'desc_trans' => 'CSS class for menu items that are a container and have children.',
'area' => '',
'area_trans' => '',
),
'rowClass' =>
array (
'name' => 'rowClass',
'desc' => 'prop_wayfinder.rowClass_desc',
'type' => 'textfield',
'options' => '',
'value' => '',
'lexicon' => 'wayfinder:properties',
'desc_trans' => 'CSS class denoting each output row.',
'area' => '',
'area_trans' => '',
),
'outerClass' =>
array (
'name' => 'outerClass',
'desc' => 'prop_wayfinder.outerClass_desc',
'type' => 'textfield',
'options' => '',
'value' => '',
'lexicon' => 'wayfinder:properties',
'desc_trans' => 'CSS class for the outer template.',
'area' => '',
'area_trans' => '',
),
'innerClass' =>
array (
'name' => 'innerClass',
'desc' => 'prop_wayfinder.innerClass_desc',
'type' => 'textfield',
'options' => '',
'value' => '',
'lexicon' => 'wayfinder:properties',
'desc_trans' => 'CSS class for the inner template.',
'area' => '',
'area_trans' => '',
),
'levelClass' =>
array (
'name' => 'levelClass',
'desc' => 'prop_wayfinder.levelClass_desc',
'type' => 'textfield',
'options' => '',
'value' => '',
'lexicon' => 'wayfinder:properties',
'desc_trans' => 'CSS class denoting every output row level. The level number will be added to the specified class (level1, level2, level3 etc if you specified "level").',
'area' => '',
'area_trans' => '',
),
'selfClass' =>
array (
'name' => 'selfClass',
'desc' => 'prop_wayfinder.selfClass_desc',
'type' => 'textfield',
'options' => '',
'value' => '',
'lexicon' => 'wayfinder:properties',
'desc_trans' => 'CSS class for the current item.',
'area' => '',
'area_trans' => '',
),
'webLinkClass' =>
array (
'name' => 'webLinkClass',
'desc' => 'prop_wayfinder.webLinkClass_desc',
'type' => 'textfield',
'options' => '',
'value' => '',
'lexicon' => 'wayfinder:properties',
'desc_trans' => 'CSS class for weblink items.',
'area' => '',
'area_trans' => '',
),
'outerTpl' =>
array (
'name' => 'outerTpl',
'desc' => 'prop_wayfinder.outerTpl_desc',
'type' => 'textfield',
'options' => '',
'value' => '',
'lexicon' => 'wayfinder:properties',
'desc_trans' => 'Name of the chunk containing the template for the outer most container; if not included, a string including "<ul>[[+wf.wrapper]]</ul>" is assumed.',
'area' => '',
'area_trans' => '',
),
'rowTpl' =>
array (
'name' => 'rowTpl',
'desc' => 'prop_wayfinder.rowTpl_desc',
'type' => 'textfield',
'options' => '',
'value' => '',
'lexicon' => 'wayfinder:properties',
'desc_trans' => 'Name of the chunk containing the template for the regular row items.',
'area' => '',
'area_trans' => '',
),
'parentRowTpl' =>
array (
'name' => 'parentRowTpl',
'desc' => 'prop_wayfinder.parentRowTpl_desc',
'type' => 'textfield',
'options' => '',
'value' => '',
'lexicon' => 'wayfinder:properties',
'desc_trans' => 'Name of the chunk containing the template for any Resource that is a container and has children. Remember the [wf.wrapper] placeholder to output the children documents.',
'area' => '',
'area_trans' => '',
),
'parentRowHereTpl' =>
array (
'name' => 'parentRowHereTpl',
'desc' => 'prop_wayfinder.parentRowHereTpl_desc',
'type' => 'textfield',
'options' => '',
'value' => '',
'lexicon' => 'wayfinder:properties',
'desc_trans' => 'Name of the chunk containing the template for the current Resource if it is a container and has children. Remember the [wf.wrapper] placeholder to output the children documents.',
'area' => '',
'area_trans' => '',
),
'hereTpl' =>
array (
'name' => 'hereTpl',
'desc' => 'prop_wayfinder.hereTpl_desc',
'type' => 'textfield',
'options' => '',
'value' => '',
'lexicon' => 'wayfinder:properties',
'desc_trans' => 'Name of the chunk containing the template for the current Resource.',
'area' => '',
'area_trans' => '',
),
'innerTpl' =>
array (
'name' => 'innerTpl',
'desc' => 'prop_wayfinder.innerTpl_desc',
'type' => 'textfield',
'options' => '',
'value' => '',
'lexicon' => 'wayfinder:properties',
'desc_trans' => 'Name of the chunk containing the template for each submenu. If no innerTpl is specified the outerTpl is used in its place.',
'area' => '',
'area_trans' => '',
),
'innerRowTpl' =>
array (
'name' => 'innerRowTpl',
'desc' => 'prop_wayfinder.innerRowTpl_desc',
'type' => 'textfield',
'options' => '',
'value' => '',
'lexicon' => 'wayfinder:properties',
'desc_trans' => 'Name of the chunk containing the template for the row items in a subfolder.',
'area' => '',
'area_trans' => '',
),
'innerHereTpl' =>
array (
'name' => 'innerHereTpl',
'desc' => 'prop_wayfinder.innerHereTpl_desc',
'type' => 'textfield',
'options' => '',
'value' => '',
'lexicon' => 'wayfinder:properties',
'desc_trans' => 'Name of the chunk containing the template for the current Resource if it is in a subfolder.',
'area' => '',
'area_trans' => '',
),
'activeParentRowTpl' =>
array (
'name' => 'activeParentRowTpl',
'desc' => 'prop_wayfinder.activeParentRowTpl_desc',
'type' => 'textfield',
'options' => '',
'value' => '',
'lexicon' => 'wayfinder:properties',
'desc_trans' => 'Name of the chunk containing the template for items that are containers, have children and are currently active in the tree.',
'area' => '',
'area_trans' => '',
),
'categoryFoldersTpl' =>
array (
'name' => 'categoryFoldersTpl',
'desc' => 'prop_wayfinder.categoryFoldersTpl_desc',
'type' => 'textfield',
'options' => '',
'value' => '',
'lexicon' => 'wayfinder:properties',
'desc_trans' => 'Name of the chunk containing the template for category folders. Category folders are determined by setting the template to blank or by setting the link attributes field to rel="category".',
'area' => '',
'area_trans' => '',
),
'startItemTpl' =>
array (
'name' => 'startItemTpl',
'desc' => 'prop_wayfinder.startItemTpl_desc',
'type' => 'textfield',
'options' => '',
'value' => '',
'lexicon' => 'wayfinder:properties',
'desc_trans' => 'Name of the chunk containing the template for the start item, if enabled via the &displayStart parameter. Note: the default template shows the start item but does not link it. If you do not need a link, a class can be applied to the default template using the parameter &firstClass=`className`.',
'area' => '',
'area_trans' => '',
),
'permissions' =>
array (
'name' => 'permissions',
'desc' => 'prop_wayfinder.permissions_desc',
'type' => 'textfield',
'options' => '',
'value' => 'list',
'lexicon' => 'wayfinder:properties',
'desc_trans' => 'Will check for a permission on the Resource. Defaults to "list" - set to blank to skip normal permissions checks.',
'area' => '',
'area_trans' => '',
),
'hereId' =>
array (
'name' => 'hereId',
'desc' => 'prop_wayfinder.hereId_desc',
'type' => 'textfield',
'options' => '',
'value' => '',
'lexicon' => 'wayfinder:properties',
'desc_trans' => 'Optional. If set, will change the "here" Resource to this ID. Defaults to the currently active Resource.',
'area' => '',
'area_trans' => '',
),
'where' =>
array (
'name' => 'where',
'desc' => 'prop_wayfinder.where_desc',
'type' => 'textfield',
'options' => '',
'value' => '',
'lexicon' => 'wayfinder:properties',
'desc_trans' => 'Optional. A JSON object for where conditions for all items selected in the menu.',
'area' => '',
'area_trans' => '',
),
'templates' =>
array (
'name' => 'templates',
'desc' => 'prop_wayfinder.templates_desc',
'type' => 'textfield',
'options' => '',
'value' => '',
'lexicon' => 'wayfinder:properties',
'desc_trans' => 'Optional. A comma-separated list of Template IDs to restrict selected Resources to.',
'area' => '',
'area_trans' => '',
),
'previewUnpublished' =>
array (
'name' => 'previewUnpublished',
'desc' => 'prop_wayfinder.previewunpublished_desc',
'type' => 'textfield',
'options' => '',
'value' => '',
'lexicon' => 'wayfinder:properties',
'desc_trans' => 'Optional. If set to Yes, if you are logged into the mgr and have the view_unpublished permission, it will allow previewing of unpublished resources in your menus in the front-end.',
'area' => '',
'area_trans' => '',
),
),
'moduleguid' => '',
'static' => false,
'static_file' => '',
'content' => '/**
* Wayfinder Snippet to build site navigation menus
*
* Totally refactored from original DropMenu nav builder to make it easier to
* create custom navigation by using chunks as output templates. By using
* templates, many of the paramaters are no longer needed for flexible output
* including tables, unordered- or ordered-lists (ULs or OLs), definition lists
* (DLs) or in any other format you desire.
*
* @version 2.1.1-beta5
* @author Garry Nutting (collabpad.com)
* @author Kyle Jaebker (muddydogpaws.com)
* @author Ryan Thrash (modx.com)
* @author Shaun McCormick (modx.com)
* @author Jason Coward (modx.com)
*
* @example [[Wayfinder? &startId=`0`]]
*
* @var modX $modx
* @var array $scriptProperties
*
* @package wayfinder
*/
$wayfinder_base = $modx->getOption(\'wayfinder.core_path\',$scriptProperties,$modx->getOption(\'core_path\').\'components/wayfinder/\');
/* include a custom config file if specified */
if (isset($scriptProperties[\'config\'])) {
$scriptProperties[\'config\'] = str_replace(\'../\',\'\',$scriptProperties[\'config\']);
$scriptProperties[\'config\'] = $wayfinder_base.\'configs/\'.$scriptProperties[\'config\'].\'.config.php\';
} else {
$scriptProperties[\'config\'] = $wayfinder_base.\'configs/default.config.php\';
}
if (file_exists($scriptProperties[\'config\'])) {
include $scriptProperties[\'config\'];
}
/* include wayfinder class */
include_once $wayfinder_base.\'wayfinder.class.php\';
if (!$modx->loadClass(\'Wayfinder\',$wayfinder_base,true,true)) {
return \'error: Wayfinder class not found\';
}
$wf = new Wayfinder($modx,$scriptProperties);
/* get user class definitions
* TODO: eventually move these into config parameters */
$wf->_css = array(
\'first\' => isset($firstClass) ? $firstClass : \'\',
\'last\' => isset($lastClass) ? $lastClass : \'last\',
\'here\' => isset($hereClass) ? $hereClass : \'active\',
\'parent\' => isset($parentClass) ? $parentClass : \'\',
\'row\' => isset($rowClass) ? $rowClass : \'\',
\'outer\' => isset($outerClass) ? $outerClass : \'\',
\'inner\' => isset($innerClass) ? $innerClass : \'\',
\'level\' => isset($levelClass) ? $levelClass: \'\',
\'self\' => isset($selfClass) ? $selfClass : \'\',
\'weblink\' => isset($webLinkClass) ? $webLinkClass : \'\'
);
/* get user templates
* TODO: eventually move these into config parameters */
$wf->_templates = array(
\'outerTpl\' => isset($outerTpl) ? $outerTpl : \'\',
\'rowTpl\' => isset($rowTpl) ? $rowTpl : \'\',
\'parentRowTpl\' => isset($parentRowTpl) ? $parentRowTpl : \'\',
\'parentRowHereTpl\' => isset($parentRowHereTpl) ? $parentRowHereTpl : \'\',
\'hereTpl\' => isset($hereTpl) ? $hereTpl : \'\',
\'innerTpl\' => isset($innerTpl) ? $innerTpl : \'\',
\'innerRowTpl\' => isset($innerRowTpl) ? $innerRowTpl : \'\',
\'innerHereTpl\' => isset($innerHereTpl) ? $innerHereTpl : \'\',
\'activeParentRowTpl\' => isset($activeParentRowTpl) ? $activeParentRowTpl : \'\',
\'categoryFoldersTpl\' => isset($categoryFoldersTpl) ? $categoryFoldersTpl : \'\',
\'startItemTpl\' => isset($startItemTpl) ? $startItemTpl : \'\'
);
/* process Wayfinder */
$output = $wf->run();
if ($wf->_config[\'debug\']) {
$output .= $wf->renderDebugOutput();
}
/* output results */
if ($wf->_config[\'ph\']) {
$modx->setPlaceholder($wf->_config[\'ph\'],$output);
} else {
return $output;
}',
),
'policies' =>
array (
'en' =>
array (
),
),
'source' =>
array (
),
),
'GetCurrentLanguage' =>
array (
'fields' =>
array (
'id' => 8,
'source' => 1,
'property_preprocess' => false,
'name' => 'GetCurrentLanguage',
'description' => '',
'editor_type' => 0,
'category' => 0,
'cache_type' => 0,
'snippet' => 'return $_REQUEST[\'cultureKey\'];',
'locked' => false,
'properties' =>
array (
),
'moduleguid' => '',
'static' => false,
'static_file' => '',
'content' => 'return $_REQUEST[\'cultureKey\'];',
),
'policies' =>
array (
'en' =>
array (
),
),
'source' =>
array (
'id' => 1,
'name' => 'Filesystem',
'description' => '',
'class_key' => 'MODX\\Revolution\\Sources\\modFileMediaSource',
'properties' =>
array (
),
'is_stream' => true,
),
),
'GetOgTags' =>
array (
'fields' =>
array (
'id' => 16,
'source' => 1,
'property_preprocess' => false,
'name' => 'GetOgTags',
'description' => '',
'editor_type' => 0,
'category' => 0,
'cache_type' => 0,
'snippet' => 'use QCubed\\Query\\QQ;
require_once($_SERVER[\'DOCUMENT_ROOT\'] . \'/_qcube4/qcubed.inc.php\');
//variables
$strHTML = \'\';
$strCultureKey = $_REQUEST[\'cultureKey\'];
if (isset($_GET[\'characterId\'])) {
//Load Character Object
$objCharacter = SilkCharacters::loadById($_GET[\'characterId\']);
if ($objCharacter) {
$strCharacter = $objCharacter->getCharacter();
if ($strCultureKey == "en") {
$strHTML .= \'<meta name="twitter:card" content="summary_large_image" /><meta name="twitter:site" content="@choumeizai" />\';
$strHTML .= \'<meta property="og:title" content="The Story of \' . $objCharacter->getCharacter() . \'" />\';
$strHTML .= \'<meta property="og:description" content="\' . $objCharacter->getEnInterpretation() . \'" />\';
$strHTML .= \'<meta property="og:url" content="http://\' . $_SERVER[\'HTTP_HOST\'] . $_SERVER[\'REQUEST_URI\'] . \'" />\';
$strHTML .= \'<meta property="og:video" content="https://www.youtube.com/watch?v=\' . $objCharacter->EnYoutube . \'" />\';
$strHTML .= \'<meta property="og:image" content="https://img.youtube.com/vi/\' . $objCharacter->EnYoutube . \'/0.jpg" />\';
} else {
$strHTML .= \'<meta name="twitter:card" content="summary_large_image" /><meta name="twitter:site" content="@choumeizai" />\';
$strHTML .= \'<meta property="og:title" content="的故事「\' . $objCharacter->getCharacter() . \'」" />\';
$strHTML .= \'<meta property="og:description" content="\' . $objCharacter->getCnInterpretation() . \'" />\';
$strHTML .= \'<meta property="og:url" content="http://\' . $_SERVER[\'HTTP_HOST\'] . $_SERVER[\'REQUEST_URI\'] . \'" />\';
$strHTML .= \'<meta property="og:video" content="https://www.youtube.com/watch?v=\' . $objCharacter->CnYoutube . \'" />\';
$strHTML .= \'<meta property="og:image" content="https://img.youtube.com/vi/\' . $objCharacter->CnYoutube . \'/0.jpg" />\';
}
}
echo $strHTML;
}',
'locked' => false,
'properties' =>
array (
),
'moduleguid' => '',
'static' => false,
'static_file' => '',
'content' => 'use QCubed\\Query\\QQ;
require_once($_SERVER[\'DOCUMENT_ROOT\'] . \'/_qcube4/qcubed.inc.php\');
//variables
$strHTML = \'\';
$strCultureKey = $_REQUEST[\'cultureKey\'];
if (isset($_GET[\'characterId\'])) {
//Load Character Object
$objCharacter = SilkCharacters::loadById($_GET[\'characterId\']);
if ($objCharacter) {
$strCharacter = $objCharacter->getCharacter();
if ($strCultureKey == "en") {
$strHTML .= \'<meta name="twitter:card" content="summary_large_image" /><meta name="twitter:site" content="@choumeizai" />\';
$strHTML .= \'<meta property="og:title" content="The Story of \' . $objCharacter->getCharacter() . \'" />\';
$strHTML .= \'<meta property="og:description" content="\' . $objCharacter->getEnInterpretation() . \'" />\';
$strHTML .= \'<meta property="og:url" content="http://\' . $_SERVER[\'HTTP_HOST\'] . $_SERVER[\'REQUEST_URI\'] . \'" />\';
$strHTML .= \'<meta property="og:video" content="https://www.youtube.com/watch?v=\' . $objCharacter->EnYoutube . \'" />\';
$strHTML .= \'<meta property="og:image" content="https://img.youtube.com/vi/\' . $objCharacter->EnYoutube . \'/0.jpg" />\';
} else {
$strHTML .= \'<meta name="twitter:card" content="summary_large_image" /><meta name="twitter:site" content="@choumeizai" />\';
$strHTML .= \'<meta property="og:title" content="的故事「\' . $objCharacter->getCharacter() . \'」" />\';
$strHTML .= \'<meta property="og:description" content="\' . $objCharacter->getCnInterpretation() . \'" />\';
$strHTML .= \'<meta property="og:url" content="http://\' . $_SERVER[\'HTTP_HOST\'] . $_SERVER[\'REQUEST_URI\'] . \'" />\';
$strHTML .= \'<meta property="og:video" content="https://www.youtube.com/watch?v=\' . $objCharacter->CnYoutube . \'" />\';
$strHTML .= \'<meta property="og:image" content="https://img.youtube.com/vi/\' . $objCharacter->CnYoutube . \'/0.jpg" />\';
}
}
echo $strHTML;
}',
),
'policies' =>
array (
'en' =>
array (
),
),
'source' =>
array (
'id' => 1,
'name' => 'Filesystem',
'description' => '',
'class_key' => 'MODX\\Revolution\\Sources\\modFileMediaSource',
'properties' =>
array (
),
'is_stream' => true,
),
),
'LanguageSwitcher' =>
array (
'fields' =>
array (
'id' => 12,
'source' => 1,
'property_preprocess' => false,
'name' => 'LanguageSwitcher',
'description' => '',
'editor_type' => 0,
'category' => 0,
'cache_type' => 0,
'snippet' => '$actual_link = (empty($_SERVER[\'HTTPS\']) ? \'http\' : \'https\') . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
$strEnUrl = str_replace(\'/zh/\', \'/en/\', $actual_link);
$strZhhUrl = str_replace(\'/en/\', \'/zh/\', $actual_link);
echo \'<div class="d-flex d-sm-flex d-md-flex justify-content-end sec-nav"><a href="\' . $strEnUrl . \'">Eng</a><a href="\' . $strZhhUrl . \'">中文</a></div>\';',
'locked' => false,
'properties' =>
array (
),
'moduleguid' => '',
'static' => false,
'static_file' => '',
'content' => '$actual_link = (empty($_SERVER[\'HTTPS\']) ? \'http\' : \'https\') . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
$strEnUrl = str_replace(\'/zh/\', \'/en/\', $actual_link);
$strZhhUrl = str_replace(\'/en/\', \'/zh/\', $actual_link);
echo \'<div class="d-flex d-sm-flex d-md-flex justify-content-end sec-nav"><a href="\' . $strEnUrl . \'">Eng</a><a href="\' . $strZhhUrl . \'">中文</a></div>\';',
),
'policies' =>
array (
'en' =>
array (
),
),
'source' =>
array (
'id' => 1,
'name' => 'Filesystem',
'description' => '',
'class_key' => 'MODX\\Revolution\\Sources\\modFileMediaSource',
'properties' =>
array (
),
'is_stream' => true,
),
),
'BreadCrumb' =>
array (
'fields' =>
array (
'id' => 3,
'source' => 0,
'property_preprocess' => false,
'name' => 'BreadCrumb',
'description' => 'This snippet will create a breadcrumb navigation for the current resource or a specific resource.',
'editor_type' => 0,
'category' => 2,
'cache_type' => 0,
'snippet' => '/**
* BreadCrumb
* Copyright 2011 Benjamin Vauchel <contact@omycode.fr>
*
* BreadCrumb is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation; either version 2 of the License, or (at your option) any
* later version.
*
* BreadCrumb is distributed in the hope that it will be useful, but WITHOUT ANY
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
* A PARTICULAR PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with
* BreadCrumb; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
* Suite 330, Boston, MA 02111-1307 USA
*
* @package breadcrumb
* @author Benjamin Vauchel <contact@omycode.fr>
*
* @version Version 1.4.3 pl
* 07/03/15
*
* Breadcrumb is a snippet for MODx Revolution, inspired by the Jared\'s BreadCrumbs snippet.
* It will create a breadcrumb navigation for the current resource or a specific resource.
*
* Optional properties:
*
* @property from - (int) Resource ID of the first crumb; [Default value : 0].
* @property to - (int) Resource ID of the last crumb; [Default value : current resource id].
* @property exclude - (string) Comma separated list of resources IDs not shown in breadcrumb. [Default value : []]
* @property maxCrumbs - (int) Max crumbs shown in breadcrumb. Max delimiter template can be customize with property maxCrumbTpl ; [Default value : 100].
* @property showHidden - (bool) Show hidden resources in breadcrumb; [Default value : true].
* @property showContainer - (bool) Show container resources in breadcrumb; [Default value : true].
* @property showUnPub - (bool) Show unpublished resources in breadcrumb; [Default value : true].
* @property showCurrentCrumb - (bool) Show current resource as a crumb; [Default value : true].
* @property showBreadCrumbAtHome - (bool) Show BreadCrumb on the home page; [Default value : true].
* @property showHomeCrumb - (bool) Add the home page crumb at the start of the breadcrumb; [Default value : true].
* @property useWebLinkUrl - (bool) Use the weblink url instead of the url to the weblink; [Default value : true].
* @property direction - (string) Direction or breadcrumb : Left To Right (ltr) or Right To Left (rtl) for Arabic language for example; [Default value : ltr].
* @property scheme - (string) URL Generation Scheme; [Default value : -1].
*
* Templates :
*
* @property containerTpl - (string) Container template for BreadCrumb; [Default value : BreadCrumbContainerTpl].
* @property currentCrumbTpl - (string) Current crumb template for BreadCrumb; [Default value : BreadCrumbCurrentCrumbTpl].
* @property linkCrumbTpl - (string) Default crumb template for BreadCrumb; [Default value : BreadCrumbLinkCrumbTpl].
* @property categoryCrumbTpl - (string) Default category crumb template for BreadCrumb; [Default value : BreadCrumbCategoryCrumbTpl].
* @property maxCrumbTpl - (string) Max delimiter crumb template for BreadCrumb; [Default value : BreadCrumbMaxCrumbTpl].
*/
// Script Properties
$from = !empty($from) ? $from : $modx->getOption(\'from\', $scriptProperties, 0, true, true);
$to = $currentResourceId = !empty($to) ? $to : $modx->getOption(\'to\', $scriptProperties, $modx->resource->get(\'id\'), true);
$exclude = !empty($exclude) ? explode(\',\', $exclude) : array();
$maxCrumbs = !empty($maxCrumbs) ? abs(intval($maxCrumbs)) : $modx->getOption(\'maxCrumbs\', $scriptProperties, 100, true);
$showHidden = isset($showHidden) ? (bool)$showHidden : (bool)$modx->getOption(\'showHidden\', $scriptProperties, true, true);
$showContainer = isset($showContainer) ? (bool)$showContainer : (bool)$modx->getOption(\'showContainer\', $scriptProperties, true, true);
$showUnPub = isset($showUnPub) ? (bool)$showUnPub : (bool)$modx->getOption(\'showUnPub\', $scriptProperties, true, true);
$showCurrentCrumb = isset($showCurrentCrumb) ? (bool)$showCurrentCrumb : (bool)$modx->getOption(\'showCurrentCrumb\', $scriptProperties, true, true);
$showBreadCrumbAtHome = isset($showBreadCrumbAtHome) ? (bool)$showBreadCrumbAtHome : (bool)$modx->getOption(\'showBreadCrumbAtHome\', $scriptProperties, true, true);
$showHomeCrumb = isset($showHomeCrumb) ? (bool)$showHomeCrumb : (bool)$modx->getOption(\'showHomeCrumb\', $scriptProperties, true, true);
$useWebLinkUrl = isset($useWebLinkUrl) ? (bool)$useWebLinkUrl : (bool)$modx->getOption(\'useWebLinkUrl\', $scriptProperties, true, true);
$direction = !empty($direction) ? $direction : $modx->getOption(\'direction\', $scriptProperties, \'ltr\', true);
$scheme = !empty($scheme) ? $scheme : $modx->getOption(\'scheme\', $scriptProperties, $modx->getOption(\'link_tag_scheme\'), true);
$containerTpl = !empty($containerTpl) ? $containerTpl : $modx->getOption(\'containerTpl\', $scriptProperties, \'@INLINE <ul id="breadcrumb" itemprop="breadcrumb">[[+crumbs]]</ul>\');
$homeCrumbTpl = !empty($homeCrumbTpl) ? $homeCrumbTpl : $modx->getOption(\'homeCrumbTpl\', $scriptProperties, \'@INLINE <li><a href="[[+link]]">[[+pagetitle]]</a></li>\');
$currentCrumbTpl = !empty($currentCrumbTpl) ? $currentCrumbTpl : $modx->getOption(\'currentCrumbTpl\', $scriptProperties, \'@INLINE <li>[[+pagetitle]]</li>\');
$linkCrumbTpl = !empty($linkCrumbTpl) ? $linkCrumbTpl : $modx->getOption(\'linkCrumbTpl\', $scriptProperties, \'@INLINE <li><a href="[[+link]]">[[+pagetitle]]</a></li>\');
$categoryCrumbTpl = !empty($categoryCrumbTpl) ? $categoryCrumbTpl : $modx->getOption(\'categoryCrumbTpl\', $scriptProperties, \'@INLINE <li><a href="[[+link]]">[[+pagetitle]]</a></li>\');
$maxCrumbTpl = !empty($maxCrumbTpl) ? $maxCrumbTpl : $modx->getOption(\'maxCrumbTpl\', $scriptProperties, \'@INLINE <li>...</li>\');
// include parseTpl
include_once $modx->getOption(\'breadcrumb.core_path\',null,$modx->getOption(\'core_path\').\'components/breadcrumb/includes/\').\'include.parsetpl.php\';
// Output variable
$output = \'\';
// We check if current resource is the homepage and if breadcrumb is shown for the homepage
if (!$showBreadCrumbAtHome && $modx->resource->get(\'id\') == $modx->getOption(\'site_start\')) {
return \'\';
}
// We get all the other crumbs
$crumbs = array();
$crumbsCount = 0;
$resourceId = $to;
while ($resourceId != $from && $crumbsCount < $maxCrumbs)
{
if (!$resource = $modx->getObject(\'modResource\', $resourceId)) {
break;
}
// We check the conditions to show crumb
if (
$resourceId != $modx->getOption(\'site_start\') // ShowHomeCrumb
&& (($resource->get(\'hidemenu\') && $showHidden) || !$resource->get(\'hidemenu\')) // ShowHidden
&& (($resource->get(\'isfolder\') && $showContainer) || !$resource->get(\'isfolder\')) // ShowContainer
&& ((!$resource->get(\'published\') && $showUnPub) || $resource->get(\'published\')) // UnPub
&& (($resourceId == $currentResourceId && $showCurrentCrumb) || $resourceId != $currentResourceId) // ShowCurrent
&& !in_array($resourceId, $exclude) // Excluded resources
) {
// If is LTR direction, we push resource at the beginning of the array
if ($direction == \'ltr\') {
array_unshift($crumbs, $resource);
}
// Else we push it at the end
else {
$crumbs[] = $resource;
}
$crumbsCount++;
}
$resourceId = $resource->get(\'parent\');
}
// Add home crumb
if ($showHomeCrumb && $resource = $modx->getObject(\'modResource\', $modx->getOption(\'site_start\'))) {
if ($direction == \'ltr\') {
array_unshift($crumbs, $resource);
} else {
$crumbs[] = $resource;
}
}
// We build the output of crumbs
$position = 0;
foreach($crumbs as $key => $resource)
{
// Home crumb tpl ?
if ($resource->get(\'id\') == $modx->getOption(\'site_start\'))
{
$tpl = $homeCrumbTpl;
}
// Current crumb tpl ?
elseif ($showCurrentCrumb && ($resource->get(\'id\') == $currentResourceId))
{
$tpl = $currentCrumbTpl;
}
// resource is a container only, calculated in a similar manner to Wayfinder
elseif ($resource->get(\'isfolder\')
&& ( $resource->get(\'template\') == 0
|| strpos($resource->get(\'link_attributes\'), \'rel="category"\') !== false
)
) {
$tpl = $categoryCrumbTpl;
}
// or default crumb tpl ?
else {
$tpl = $linkCrumbTpl;
}
// Placeholders
$placeholders = $resource->toArray();
if ($resource->get(\'class_key\') == \'modWebLink\' && $useWebLinkUrl) {
if (is_numeric($resource->get(\'content\'))) {
$link = $modx->makeUrl($resource->get(\'content\'), \'\', \'\', $scheme);
} else {
$link = $resource->get(\'content\');
}
} else {
$link = $modx->makeUrl($resource->get(\'id\'), \'\', \'\', $scheme);
}
$placeholders = array_merge($resource->toArray(), array(\'link\' => $link, \'position\' => ++$position));
// Output
$output .= parseTpl($tpl, $placeholders);
}
// We add the max delimiter to the crumbs output, if the max limit was reached
if ($crumbsCount == $maxCrumbs) {
// If is LTR direction, we push the max delimiter at the beginning of the crumbs
if ($direction == \'ltr\') {
$output = parseTpl($maxCrumbTpl).$output;
}
// Else we push it at the end
else {
$output .= parseTpl($maxCrumbTpl);
}
}
// We build the breadcrumb output
$output = parseTpl($containerTpl, array(
\'crumbs\' => $output,
));
return $output;',
'locked' => false,
'properties' =>
array (
'from' =>
array (
'name' => 'from',
'desc' => 'breadcrumb_snippet_from_desc',
'type' => 'textfield',
'options' => '',
'value' => '0',
'lexicon' => 'breadcrumb:properties',
'area' => '',
'desc_trans' => 'Resource ID of the first crumb.',
'area_trans' => '',
),
'to' =>
array (
'name' => 'to',
'desc' => 'breadcrumb_snippet_to_desc',
'type' => 'textfield',
'options' => '',
'value' => '',
'lexicon' => 'breadcrumb:properties',
'area' => '',
'desc_trans' => 'Resource ID of the last crumb.',
'area_trans' => '',
),
'maxCrumbs' =>
array (
'name' => 'maxCrumbs',
'desc' => 'breadcrumb_snippet_maxcrumbs_desc',
'type' => 'textfield',
'options' => '',
'value' => '100',
'lexicon' => 'breadcrumb:properties',
'area' => '',
'desc_trans' => 'Max crumbs shown in breadcrumb',
'area_trans' => '',
),
'showHidden' =>
array (
'name' => 'showHidden',
'desc' => 'breadcrumb_snippet_showhidden_desc',
'type' => 'combo-boolean',
'options' => '',
'value' => true,
'lexicon' => 'breadcrumb:properties',
'area' => '',
'desc_trans' => 'Show hidden resources in breadcrumb.',
'area_trans' => '',
),
'showContainer' =>
array (
'name' => 'showContainer',
'desc' => 'breadcrumb_snippet_showcontainer_desc',
'type' => 'combo-boolean',
'options' => '',
'value' => true,
'lexicon' => 'breadcrumb:properties',
'area' => '',
'desc_trans' => 'Show container resources in breadcrumb.',
'area_trans' => '',
),
'showUnPub' =>
array (
'name' => 'showUnPub',
'desc' => 'breadcrumb_snippet_showunpub_desc',
'type' => 'combo-boolean',
'options' => '',
'value' => true,
'lexicon' => 'breadcrumb:properties',
'area' => '',
'desc_trans' => 'Show unpublished resources in breadcrumb.',
'area_trans' => '',
),
'showCurrentCrumb' =>
array (
'name' => 'showCurrentCrumb',
'desc' => 'breadcrumb_snippet_showcurrentcrumb_desc',
'type' => 'combo-boolean',
'options' => '',
'value' => true,
'lexicon' => 'breadcrumb:properties',
'area' => '',
'desc_trans' => 'Show current resource as a crumb.',
'area_trans' => '',
),
'showBreadCrumbAtHome' =>
array (
'name' => 'showBreadCrumbAtHome',
'desc' => 'breadcrumb_snippet_showbreadcrumbatHome_desc',
'type' => 'combo-boolean',
'options' => '',
'value' => true,
'lexicon' => 'breadcrumb:properties',
'area' => '',
'desc_trans' => 'Show BreadCrumb on the home page.',
'area_trans' => '',
),
'showHomeCrumb' =>
array (
'name' => 'showHomeCrumb',
'desc' => 'breadcrumb_snippet_showhomecrumb_desc',
'type' => 'combo-boolean',
'options' => '',
'value' => true,
'lexicon' => 'breadcrumb:properties',
'area' => '',
'desc_trans' => 'Show the home page as a crumb.',
'area_trans' => '',
),
'useWebLinkUrl' =>
array (
'name' => 'useWebLinkUrl',
'desc' => 'breadcrumb_snippet_useweblinkurl_desc',
'type' => 'combo-boolean',
'options' => '',
'value' => true,
'lexicon' => 'breadcrumb:properties',
'area' => '',
'desc_trans' => 'Use the weblink url instead of the url to the weblink.',
'area_trans' => '',
),
'direction' =>
array (
'name' => 'direction',
'desc' => 'breadcrumb_snippet_direction_desc',
'type' => 'list',
'options' =>
array (
0 =>
array (
'value' => 'ltr',
'text' => 'Left To Right (ltr)',
'name' => 'Left To Right (ltr)',
),
1 =>
array (
'value' => 'rtl',
'text' => ' Right To Left (rtl)',
'name' => ' Right To Left (rtl)',
),
),
'value' => 'ltr',
'lexicon' => 'breadcrumb:properties',
'area' => '',
'desc_trans' => 'Direction or breadcrumb : Left To Right (ltr) or Right To Left (rtl) for Arabic language for example.',
'area_trans' => '',
),
'scheme' =>
array (
'name' => 'scheme',
'desc' => 'breadcrumb_snippet_scheme_desc',
'type' => 'textfield',
'options' => '',
'value' => '',
'lexicon' => 'breadcrumb:properties',
'area' => '',
'desc_trans' => 'URL Generation Scheme.',
'area_trans' => '',
),
'containerTpl' =>
array (
'name' => 'containerTpl',
'desc' => 'breadcrumb_snippet_containertpl_desc',
'type' => 'textfield',
'options' => '',
'value' => '@INLINE <ul id="breadcrumb" itemprop="breadcrumb">[[+crumbs]]</ul>',
'lexicon' => 'breadcrumb:properties',
'area' => '',
'desc_trans' => 'Container template for BreadCrumb. Can be file (@FILE ), code (@INLINE ) or chunk name.',
'area_trans' => '',
),
'homeCrumbTpl' =>
array (
'name' => 'homeCrumbTpl',
'desc' => 'breadcrumb_snippet_homecrumbtpl_desc',
'type' => 'textfield',
'options' => '',
'value' => '@INLINE <li><a href="[[+link]]">[[+pagetitle]]</a></li>',
'lexicon' => 'breadcrumb:properties',
'area' => '',
'desc_trans' => 'Home crumb template for BreadCrumb. Can be file (@FILE ), code (@INLINE ) or chunk name.',
'area_trans' => '',
),
'currentCrumbTpl' =>
array (
'name' => 'currentCrumbTpl',
'desc' => 'breadcrumb_snippet_currentcrumbtpl_desc',
'type' => 'textfield',
'options' => '',
'value' => '@INLINE <li>[[+pagetitle]]</li>',
'lexicon' => 'breadcrumb:properties',
'area' => '',
'desc_trans' => 'Current crumb template for BreadCrumb. Can be file (@FILE ), code (@INLINE ) or chunk name.',
'area_trans' => '',
),
'linkCrumbTpl' =>
array (
'name' => 'linkCrumbTpl',
'desc' => 'breadcrumb_snippet_linkcrumbtpl_desc',
'type' => 'textfield',
'options' => '',
'value' => '@INLINE <li><a href="[[+link]]">[[+pagetitle]]</a></li>',
'lexicon' => 'breadcrumb:properties',
'area' => '',
'desc_trans' => 'Default crumb template for BreadCrumb. Can be file (@FILE ), code (@INLINE ) or chunk name.',
'area_trans' => '',
),
'categoryCrumbTpl' =>
array (
'name' => 'categoryCrumbTpl',
'desc' => 'breadcrumb_snippet_categorycrumbtpl_desc',
'type' => 'textfield',
'options' => '',
'value' => '@INLINE <li><a href="[[+link]]">[[+pagetitle]]</a></li>',
'lexicon' => 'breadcrumb:properties',
'area' => '',
'desc_trans' => 'Default category crumb template for BreadCrumb. Can be file (@FILE ), code (@INLINE ) or chunk name.',
'area_trans' => '',
),
'maxCrumbTpl' =>
array (
'name' => 'maxCrumbTpl',
'desc' => 'breadcrumb_snippet_maxcrumbtpl_desc',
'type' => 'textfield',
'options' => '',
'value' => '@INLINE <li>...</li>',
'lexicon' => 'breadcrumb:properties',
'area' => '',
'desc_trans' => 'Max delimiter crumb template for BreadCrumb. Can be file (@FILE ), code (@INLINE ) or chunk name.',
'area_trans' => '',
),
),
'moduleguid' => '',
'static' => false,
'static_file' => '',
'content' => '/**
* BreadCrumb
* Copyright 2011 Benjamin Vauchel <contact@omycode.fr>
*
* BreadCrumb is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation; either version 2 of the License, or (at your option) any
* later version.
*
* BreadCrumb is distributed in the hope that it will be useful, but WITHOUT ANY
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
* A PARTICULAR PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with
* BreadCrumb; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
* Suite 330, Boston, MA 02111-1307 USA
*
* @package breadcrumb
* @author Benjamin Vauchel <contact@omycode.fr>
*
* @version Version 1.4.3 pl
* 07/03/15
*
* Breadcrumb is a snippet for MODx Revolution, inspired by the Jared\'s BreadCrumbs snippet.
* It will create a breadcrumb navigation for the current resource or a specific resource.
*
* Optional properties:
*
* @property from - (int) Resource ID of the first crumb; [Default value : 0].
* @property to - (int) Resource ID of the last crumb; [Default value : current resource id].
* @property exclude - (string) Comma separated list of resources IDs not shown in breadcrumb. [Default value : []]
* @property maxCrumbs - (int) Max crumbs shown in breadcrumb. Max delimiter template can be customize with property maxCrumbTpl ; [Default value : 100].
* @property showHidden - (bool) Show hidden resources in breadcrumb; [Default value : true].
* @property showContainer - (bool) Show container resources in breadcrumb; [Default value : true].
* @property showUnPub - (bool) Show unpublished resources in breadcrumb; [Default value : true].
* @property showCurrentCrumb - (bool) Show current resource as a crumb; [Default value : true].
* @property showBreadCrumbAtHome - (bool) Show BreadCrumb on the home page; [Default value : true].
* @property showHomeCrumb - (bool) Add the home page crumb at the start of the breadcrumb; [Default value : true].
* @property useWebLinkUrl - (bool) Use the weblink url instead of the url to the weblink; [Default value : true].
* @property direction - (string) Direction or breadcrumb : Left To Right (ltr) or Right To Left (rtl) for Arabic language for example; [Default value : ltr].
* @property scheme - (string) URL Generation Scheme; [Default value : -1].
*
* Templates :
*
* @property containerTpl - (string) Container template for BreadCrumb; [Default value : BreadCrumbContainerTpl].
* @property currentCrumbTpl - (string) Current crumb template for BreadCrumb; [Default value : BreadCrumbCurrentCrumbTpl].
* @property linkCrumbTpl - (string) Default crumb template for BreadCrumb; [Default value : BreadCrumbLinkCrumbTpl].
* @property categoryCrumbTpl - (string) Default category crumb template for BreadCrumb; [Default value : BreadCrumbCategoryCrumbTpl].
* @property maxCrumbTpl - (string) Max delimiter crumb template for BreadCrumb; [Default value : BreadCrumbMaxCrumbTpl].
*/
// Script Properties
$from = !empty($from) ? $from : $modx->getOption(\'from\', $scriptProperties, 0, true, true);
$to = $currentResourceId = !empty($to) ? $to : $modx->getOption(\'to\', $scriptProperties, $modx->resource->get(\'id\'), true);
$exclude = !empty($exclude) ? explode(\',\', $exclude) : array();
$maxCrumbs = !empty($maxCrumbs) ? abs(intval($maxCrumbs)) : $modx->getOption(\'maxCrumbs\', $scriptProperties, 100, true);
$showHidden = isset($showHidden) ? (bool)$showHidden : (bool)$modx->getOption(\'showHidden\', $scriptProperties, true, true);
$showContainer = isset($showContainer) ? (bool)$showContainer : (bool)$modx->getOption(\'showContainer\', $scriptProperties, true, true);
$showUnPub = isset($showUnPub) ? (bool)$showUnPub : (bool)$modx->getOption(\'showUnPub\', $scriptProperties, true, true);
$showCurrentCrumb = isset($showCurrentCrumb) ? (bool)$showCurrentCrumb : (bool)$modx->getOption(\'showCurrentCrumb\', $scriptProperties, true, true);
$showBreadCrumbAtHome = isset($showBreadCrumbAtHome) ? (bool)$showBreadCrumbAtHome : (bool)$modx->getOption(\'showBreadCrumbAtHome\', $scriptProperties, true, true);
$showHomeCrumb = isset($showHomeCrumb) ? (bool)$showHomeCrumb : (bool)$modx->getOption(\'showHomeCrumb\', $scriptProperties, true, true);
$useWebLinkUrl = isset($useWebLinkUrl) ? (bool)$useWebLinkUrl : (bool)$modx->getOption(\'useWebLinkUrl\', $scriptProperties, true, true);
$direction = !empty($direction) ? $direction : $modx->getOption(\'direction\', $scriptProperties, \'ltr\', true);
$scheme = !empty($scheme) ? $scheme : $modx->getOption(\'scheme\', $scriptProperties, $modx->getOption(\'link_tag_scheme\'), true);
$containerTpl = !empty($containerTpl) ? $containerTpl : $modx->getOption(\'containerTpl\', $scriptProperties, \'@INLINE <ul id="breadcrumb" itemprop="breadcrumb">[[+crumbs]]</ul>\');
$homeCrumbTpl = !empty($homeCrumbTpl) ? $homeCrumbTpl : $modx->getOption(\'homeCrumbTpl\', $scriptProperties, \'@INLINE <li><a href="[[+link]]">[[+pagetitle]]</a></li>\');
$currentCrumbTpl = !empty($currentCrumbTpl) ? $currentCrumbTpl : $modx->getOption(\'currentCrumbTpl\', $scriptProperties, \'@INLINE <li>[[+pagetitle]]</li>\');
$linkCrumbTpl = !empty($linkCrumbTpl) ? $linkCrumbTpl : $modx->getOption(\'linkCrumbTpl\', $scriptProperties, \'@INLINE <li><a href="[[+link]]">[[+pagetitle]]</a></li>\');
$categoryCrumbTpl = !empty($categoryCrumbTpl) ? $categoryCrumbTpl : $modx->getOption(\'categoryCrumbTpl\', $scriptProperties, \'@INLINE <li><a href="[[+link]]">[[+pagetitle]]</a></li>\');
$maxCrumbTpl = !empty($maxCrumbTpl) ? $maxCrumbTpl : $modx->getOption(\'maxCrumbTpl\', $scriptProperties, \'@INLINE <li>...</li>\');
// include parseTpl
include_once $modx->getOption(\'breadcrumb.core_path\',null,$modx->getOption(\'core_path\').\'components/breadcrumb/includes/\').\'include.parsetpl.php\';
// Output variable
$output = \'\';
// We check if current resource is the homepage and if breadcrumb is shown for the homepage
if (!$showBreadCrumbAtHome && $modx->resource->get(\'id\') == $modx->getOption(\'site_start\')) {
return \'\';
}
// We get all the other crumbs
$crumbs = array();
$crumbsCount = 0;
$resourceId = $to;
while ($resourceId != $from && $crumbsCount < $maxCrumbs)
{
if (!$resource = $modx->getObject(\'modResource\', $resourceId)) {
break;
}
// We check the conditions to show crumb
if (
$resourceId != $modx->getOption(\'site_start\') // ShowHomeCrumb
&& (($resource->get(\'hidemenu\') && $showHidden) || !$resource->get(\'hidemenu\')) // ShowHidden
&& (($resource->get(\'isfolder\') && $showContainer) || !$resource->get(\'isfolder\')) // ShowContainer
&& ((!$resource->get(\'published\') && $showUnPub) || $resource->get(\'published\')) // UnPub
&& (($resourceId == $currentResourceId && $showCurrentCrumb) || $resourceId != $currentResourceId) // ShowCurrent
&& !in_array($resourceId, $exclude) // Excluded resources
) {
// If is LTR direction, we push resource at the beginning of the array
if ($direction == \'ltr\') {
array_unshift($crumbs, $resource);
}
// Else we push it at the end
else {
$crumbs[] = $resource;
}
$crumbsCount++;
}
$resourceId = $resource->get(\'parent\');
}
// Add home crumb
if ($showHomeCrumb && $resource = $modx->getObject(\'modResource\', $modx->getOption(\'site_start\'))) {
if ($direction == \'ltr\') {
array_unshift($crumbs, $resource);
} else {
$crumbs[] = $resource;
}
}
// We build the output of crumbs
$position = 0;
foreach($crumbs as $key => $resource)
{
// Home crumb tpl ?
if ($resource->get(\'id\') == $modx->getOption(\'site_start\'))
{
$tpl = $homeCrumbTpl;
}
// Current crumb tpl ?
elseif ($showCurrentCrumb && ($resource->get(\'id\') == $currentResourceId))
{
$tpl = $currentCrumbTpl;
}
// resource is a container only, calculated in a similar manner to Wayfinder
elseif ($resource->get(\'isfolder\')
&& ( $resource->get(\'template\') == 0
|| strpos($resource->get(\'link_attributes\'), \'rel="category"\') !== false
)
) {
$tpl = $categoryCrumbTpl;
}
// or default crumb tpl ?
else {
$tpl = $linkCrumbTpl;
}
// Placeholders
$placeholders = $resource->toArray();
if ($resource->get(\'class_key\') == \'modWebLink\' && $useWebLinkUrl) {
if (is_numeric($resource->get(\'content\'))) {
$link = $modx->makeUrl($resource->get(\'content\'), \'\', \'\', $scheme);
} else {
$link = $resource->get(\'content\');
}
} else {
$link = $modx->makeUrl($resource->get(\'id\'), \'\', \'\', $scheme);
}
$placeholders = array_merge($resource->toArray(), array(\'link\' => $link, \'position\' => ++$position));
// Output
$output .= parseTpl($tpl, $placeholders);
}
// We add the max delimiter to the crumbs output, if the max limit was reached
if ($crumbsCount == $maxCrumbs) {
// If is LTR direction, we push the max delimiter at the beginning of the crumbs
if ($direction == \'ltr\') {
$output = parseTpl($maxCrumbTpl).$output;
}
// Else we push it at the end
else {
$output .= parseTpl($maxCrumbTpl);
}
}
// We build the breadcrumb output
$output = parseTpl($containerTpl, array(
\'crumbs\' => $output,
));
return $output;',
),
'policies' =>
array (
'en' =>
array (
),
),
'source' =>
array (
),
),
'If' =>
array (
'fields' =>
array (
'id' => 4,
'source' => 0,
'property_preprocess' => false,
'name' => 'If',
'description' => 'Simple if (conditional) snippet',
'editor_type' => 0,
'category' => 0,
'cache_type' => 0,
'snippet' => '/**
* If
*
* Copyright 2009-2010 by Jason Coward <jason@modx.com> and Shaun McCormick
* <shaun@modx.com>
*
* If is free software; you can redistribute it and/or modify it under the terms
* of the GNU General Public License as published by the Free Software
* Foundation; either version 2 of the License, or (at your option) any later
* version.
*
* If is distributed in the hope that it will be useful, but WITHOUT ANY
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
* A PARTICULAR PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with
* If; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
* Suite 330, Boston, MA 02111-1307 USA
*
* @package if
*/
/**
* Simple if (conditional) snippet
*
* @package if
*/
if (!empty($debug)) {
print_r($scriptProperties);
if (!empty($die)) die();
}
$modx->parser->processElementTags(\'\',$subject,true,true);
$output = \'\';
$operator = !empty($operator) ? $operator : \'\';
$operand = !isset($operand) ? \'\' : $operand;
if (isset($subject)) {
if (!empty($operator)) {
$operator = strtolower($operator);
switch ($operator) {
case \'!=\':
case \'neq\':
case \'not\':
case \'isnot\':
case \'isnt\':
case \'unequal\':
case \'notequal\':
$output = (($subject != $operand) ? $then : (isset($else) ? $else : \'\'));
break;
case \'<\':
case \'lt\':
case \'less\':
case \'lessthan\':
$output = (($subject < $operand) ? $then : (isset($else) ? $else : \'\'));
break;
case \'>\':
case \'gt\':
case \'greater\':
case \'greaterthan\':
$output = (($subject > $operand) ? $then : (isset($else) ? $else : \'\'));
break;
case \'<=\':
case \'lte\':
case \'lessthanequals\':
case \'lessthanorequalto\':
$output = (($subject <= $operand) ? $then : (isset($else) ? $else : \'\'));
break;
case \'>=\':
case \'gte\':
case \'greaterthanequals\':
case \'greaterthanequalto\':
$output = (($subject >= $operand) ? $then : (isset($else) ? $else : \'\'));
break;
case \'isempty\':
case \'empty\':
$output = empty($subject) ? $then : (isset($else) ? $else : \'\');
break;
case \'!empty\':
case \'notempty\':
case \'isnotempty\':
$output = !empty($subject) && $subject != \'\' ? $then : (isset($else) ? $else : \'\');
break;
case \'isnull\':
case \'null\':
$output = $subject == null || strtolower($subject) == \'null\' ? $then : (isset($else) ? $else : \'\');
break;
case \'inarray\':
case \'in_array\':
case \'ia\':
$operand = explode(\',\',$operand);
$output = in_array($subject,$operand) ? $then : (isset($else) ? $else : \'\');
break;
case \'==\':
case \'=\':
case \'eq\':
case \'is\':
case \'equal\':
case \'equals\':
case \'equalto\':
default:
$output = (($subject == $operand) ? $then : (isset($else) ? $else : \'\'));
break;
}
}
}
if (!empty($debug)) { var_dump($output); }
unset($subject);
return $output;',
'locked' => false,
'properties' =>
array (
'subject' =>
array (
'name' => 'subject',
'desc' => 'The data being affected.',
'type' => 'textfield',
'options' => '',
'value' => '',
'lexicon' => NULL,
'area' => '',
'desc_trans' => 'The data being affected.',
'area_trans' => '',
),
'operator' =>
array (
'name' => 'operator',
'desc' => 'The type of conditional.',
'type' => 'list',
'options' =>
array (
0 =>
array (
'value' => 'EQ',
'text' => 'EQ',
'name' => 'EQ',
),
1 =>
array (
'value' => 'NEQ',
'text' => 'NEQ',
'name' => 'NEQ',
),
2 =>
array (
'value' => 'LT',
'text' => 'LT',
'name' => 'LT',
),
3 =>
array (
'value' => 'GT',
'text' => 'GT',
'name' => 'GT',
),
4 =>
array (
'value' => 'LTE',
'text' => 'LTE',
'name' => 'LTE',
),
5 =>
array (
'value' => 'GT',
'text' => 'GTE',
'name' => 'GTE',
),
6 =>
array (
'value' => 'EMPTY',
'text' => 'EMPTY',
'name' => 'EMPTY',
),
7 =>
array (
'value' => 'NOTEMPTY',
'text' => 'NOTEMPTY',
'name' => 'NOTEMPTY',
),
8 =>
array (
'value' => 'ISNULL',
'text' => 'ISNULL',
'name' => 'ISNULL',
),
9 =>
array (
'value' => 'inarray',
'text' => 'INARRAY',
'name' => 'INARRAY',
),
),
'value' => 'EQ',
'lexicon' => NULL,
'area' => '',
'desc_trans' => 'The type of conditional.',
'area_trans' => '',
),
'operand' =>
array (
'name' => 'operand',
'desc' => 'When comparing to the subject, this is the data to compare to.',
'type' => 'textfield',
'options' => '',
'value' => '',
'lexicon' => NULL,
'area' => '',
'desc_trans' => 'When comparing to the subject, this is the data to compare to.',
'area_trans' => '',
),
'then' =>
array (
'name' => 'then',
'desc' => 'If conditional was successful, output this.',
'type' => 'textfield',
'options' => '',
'value' => '',
'lexicon' => NULL,
'area' => '',
'desc_trans' => 'If conditional was successful, output this.',
'area_trans' => '',
),
'else' =>
array (
'name' => 'else',
'desc' => 'If conditional was unsuccessful, output this.',
'type' => 'textfield',
'options' => '',
'value' => '',
'lexicon' => NULL,
'area' => '',
'desc_trans' => 'If conditional was unsuccessful, output this.',
'area_trans' => '',
),
'debug' =>
array (
'name' => 'debug',
'desc' => 'Will output the parameters passed in, as well as the end output. Leave off when not testing.',
'type' => 'combo-boolean',
'options' => '',
'value' => false,
'lexicon' => NULL,
'area' => '',
'desc_trans' => 'Will output the parameters passed in, as well as the end output. Leave off when not testing.',
'area_trans' => '',
),
),
'moduleguid' => '',
'static' => false,
'static_file' => '',
'content' => '/**
* If
*
* Copyright 2009-2010 by Jason Coward <jason@modx.com> and Shaun McCormick
* <shaun@modx.com>
*
* If is free software; you can redistribute it and/or modify it under the terms
* of the GNU General Public License as published by the Free Software
* Foundation; either version 2 of the License, or (at your option) any later
* version.
*
* If is distributed in the hope that it will be useful, but WITHOUT ANY
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
* A PARTICULAR PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with
* If; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
* Suite 330, Boston, MA 02111-1307 USA
*
* @package if
*/
/**
* Simple if (conditional) snippet
*
* @package if
*/
if (!empty($debug)) {
print_r($scriptProperties);
if (!empty($die)) die();
}
$modx->parser->processElementTags(\'\',$subject,true,true);
$output = \'\';
$operator = !empty($operator) ? $operator : \'\';
$operand = !isset($operand) ? \'\' : $operand;
if (isset($subject)) {
if (!empty($operator)) {
$operator = strtolower($operator);
switch ($operator) {
case \'!=\':
case \'neq\':
case \'not\':
case \'isnot\':
case \'isnt\':
case \'unequal\':
case \'notequal\':
$output = (($subject != $operand) ? $then : (isset($else) ? $else : \'\'));
break;
case \'<\':
case \'lt\':
case \'less\':
case \'lessthan\':
$output = (($subject < $operand) ? $then : (isset($else) ? $else : \'\'));
break;
case \'>\':
case \'gt\':
case \'greater\':
case \'greaterthan\':
$output = (($subject > $operand) ? $then : (isset($else) ? $else : \'\'));
break;
case \'<=\':
case \'lte\':
case \'lessthanequals\':
case \'lessthanorequalto\':
$output = (($subject <= $operand) ? $then : (isset($else) ? $else : \'\'));
break;
case \'>=\':
case \'gte\':
case \'greaterthanequals\':
case \'greaterthanequalto\':
$output = (($subject >= $operand) ? $then : (isset($else) ? $else : \'\'));
break;
case \'isempty\':
case \'empty\':
$output = empty($subject) ? $then : (isset($else) ? $else : \'\');
break;
case \'!empty\':
case \'notempty\':
case \'isnotempty\':
$output = !empty($subject) && $subject != \'\' ? $then : (isset($else) ? $else : \'\');
break;
case \'isnull\':
case \'null\':
$output = $subject == null || strtolower($subject) == \'null\' ? $then : (isset($else) ? $else : \'\');
break;
case \'inarray\':
case \'in_array\':
case \'ia\':
$operand = explode(\',\',$operand);
$output = in_array($subject,$operand) ? $then : (isset($else) ? $else : \'\');
break;
case \'==\':
case \'=\':
case \'eq\':
case \'is\':
case \'equal\':
case \'equals\':
case \'equalto\':
default:
$output = (($subject == $operand) ? $then : (isset($else) ? $else : \'\'));
break;
}
}
}
if (!empty($debug)) { var_dump($output); }
unset($subject);
return $output;',
),
'policies' =>
array (
'en' =>
array (
),
),
'source' =>
array (
),
),
'GetCharacterInfo' =>
array (
'fields' =>
array (
'id' => 14,
'source' => 1,
'property_preprocess' => false,
'name' => 'GetCharacterInfo',
'description' => '',
'editor_type' => 0,
'category' => 0,
'cache_type' => 0,
'snippet' => 'use QCubed\\Query\\QQ;
require_once($_SERVER[\'DOCUMENT_ROOT\'] . \'/_qcube4/qcubed.inc.php\');
//variables
$strHtml = \'\';
$strCultureKey = $_REQUEST[\'cultureKey\'];
if (isset($_GET[\'characterId\'])) {
//Load Character Object
$objCharacter = SilkCharacters::loadById($_GET[\'characterId\']);
$arrBushouRelatedCharacters = $objCharacter->getCategoryBushouObject()->getSilkCharactersAsCategoryBushouArray(QQ::orderBy(QQN::silkCharacters()->Strokes));
if ($objCharacter) {
$strCharacter = $objCharacter->getCharacter();
if ($strCultureKey == "en") {
$strDescription = $objCharacter->getEnInterpretation();
$strMeaning = $objCharacter->getEnMeaning();
$strYouTube = $objCharacter->getEnYoutube();
$strHeaderTheStory = \'The story of \' . $objCharacter->getCharacter();
$strHeaderVocabulary = \'Vocabulary of \' . $objCharacter->getCharacter();
$strHeaderRelated = \'Related Characters:\';
} else {
$strDescription = $objCharacter->getCnInterpretation();
$strMeaning = $objCharacter->getCnMeaning();
$strYouTube = $objCharacter->getCnYoutube();
$strHeaderTheStory = \'漢字的故事 : \' . $objCharacter->getCharacter();
$strHeaderVocabulary = \'「\' . $objCharacter->getCharacter() . \'」字詞語\';
$strHeaderRelated = \'相關人物:\';
}
$strHtml .= <<< END
<div class="d-flex align-items-start mb-3 character-header">
<div class="d-xxl-flex justify-content-xxl-center"><p class="character">{$strCharacter}</p></div>
<div><h2>{$strHeaderTheStory}</h2><h1>{$strMeaning}</h1>
<p class="description">{$strDescription}</p></div></div><div>
<div class="embed-container"><iframe width="560" height="315" src="https://www.youtube.com/embed/{$strYouTube}?rel=0" frameborder="0" allowfullscreen=""></iframe></div>
</div>
END;
$strHtml .= <<< END
<div class="row mt-4">
<div class="col-6 col-md-7"><h3 class="underlined">{$strHeaderVocabulary}</h3>{$objCharacter->ListVocabulary()}</li></ul></div>
<div class="col-6 col-md-5"><h3 class="underlined">Classification</h3><ul class="classification"><li><a href="/{$strCultureKey}/bushou/{$objCharacter->CategoryBushouObject->getId()}">Bushou {$objCharacter->CategoryBushouObject->getRadicals()}</a></li><li><a href="/{$strCultureKey}/ziyuan/{$objCharacter->CategoryZiyuanObject->getId()}">Ziyuan {$objCharacter->CategoryZiyuanObject->getRadicals()}</a></li></ul></div>
</div>
END;
$strHtml .= \'<div class="mt-4"><h2 style="font-size: 1.2rem; margin-bottom:18px;">\' . $strHeaderRelated . \'</h2></div>\';
$strHtml .= \'<div class="grid-characters smaller">\';
foreach ($arrBushouRelatedCharacters as $item) {
$strHtml .= $item->GetCharacterBoxInformation($strCultureKey);
}
$strHtml .= \'</div>\';
}
}
echo $strHtml;',
'locked' => false,
'properties' =>
array (
),
'moduleguid' => '',
'static' => false,
'static_file' => '',
'content' => 'use QCubed\\Query\\QQ;
require_once($_SERVER[\'DOCUMENT_ROOT\'] . \'/_qcube4/qcubed.inc.php\');
//variables
$strHtml = \'\';
$strCultureKey = $_REQUEST[\'cultureKey\'];
if (isset($_GET[\'characterId\'])) {
//Load Character Object
$objCharacter = SilkCharacters::loadById($_GET[\'characterId\']);
$arrBushouRelatedCharacters = $objCharacter->getCategoryBushouObject()->getSilkCharactersAsCategoryBushouArray(QQ::orderBy(QQN::silkCharacters()->Strokes));
if ($objCharacter) {
$strCharacter = $objCharacter->getCharacter();
if ($strCultureKey == "en") {
$strDescription = $objCharacter->getEnInterpretation();
$strMeaning = $objCharacter->getEnMeaning();
$strYouTube = $objCharacter->getEnYoutube();
$strHeaderTheStory = \'The story of \' . $objCharacter->getCharacter();
$strHeaderVocabulary = \'Vocabulary of \' . $objCharacter->getCharacter();
$strHeaderRelated = \'Related Characters:\';
} else {
$strDescription = $objCharacter->getCnInterpretation();
$strMeaning = $objCharacter->getCnMeaning();
$strYouTube = $objCharacter->getCnYoutube();
$strHeaderTheStory = \'漢字的故事 : \' . $objCharacter->getCharacter();
$strHeaderVocabulary = \'「\' . $objCharacter->getCharacter() . \'」字詞語\';
$strHeaderRelated = \'相關人物:\';
}
$strHtml .= <<< END
<div class="d-flex align-items-start mb-3 character-header">
<div class="d-xxl-flex justify-content-xxl-center"><p class="character">{$strCharacter}</p></div>
<div><h2>{$strHeaderTheStory}</h2><h1>{$strMeaning}</h1>
<p class="description">{$strDescription}</p></div></div><div>
<div class="embed-container"><iframe width="560" height="315" src="https://www.youtube.com/embed/{$strYouTube}?rel=0" frameborder="0" allowfullscreen=""></iframe></div>
</div>
END;
$strHtml .= <<< END
<div class="row mt-4">
<div class="col-6 col-md-7"><h3 class="underlined">{$strHeaderVocabulary}</h3>{$objCharacter->ListVocabulary()}</li></ul></div>
<div class="col-6 col-md-5"><h3 class="underlined">Classification</h3><ul class="classification"><li><a href="/{$strCultureKey}/bushou/{$objCharacter->CategoryBushouObject->getId()}">Bushou {$objCharacter->CategoryBushouObject->getRadicals()}</a></li><li><a href="/{$strCultureKey}/ziyuan/{$objCharacter->CategoryZiyuanObject->getId()}">Ziyuan {$objCharacter->CategoryZiyuanObject->getRadicals()}</a></li></ul></div>
</div>
END;
$strHtml .= \'<div class="mt-4"><h2 style="font-size: 1.2rem; margin-bottom:18px;">\' . $strHeaderRelated . \'</h2></div>\';
$strHtml .= \'<div class="grid-characters smaller">\';
foreach ($arrBushouRelatedCharacters as $item) {
$strHtml .= $item->GetCharacterBoxInformation($strCultureKey);
}
$strHtml .= \'</div>\';
}
}
echo $strHtml;',
),
'policies' =>
array (
'en' =>
array (
),
),
'source' =>
array (
'id' => 1,
'name' => 'Filesystem',
'description' => '',
'class_key' => 'MODX\\Revolution\\Sources\\modFileMediaSource',
'properties' =>
array (
),
'is_stream' => true,
),
),
'searchBox' =>
array (
'fields' =>
array (
'id' => 21,
'source' => 1,
'property_preprocess' => false,
'name' => 'searchBox',
'description' => '',
'editor_type' => 0,
'category' => 0,
'cache_type' => 0,
'snippet' => '$strHtmlEn = \'
<div id="search" class="modal fade" role="dialog" tabindex="-1"><div class="modal-dialog modal-xl" role="document">
<div class="modal-content"><div class="modal-header"><input id="searchKeywords" v-model.trim="searchKeywords" @input="getCharacters" placeholder="Search Characters Here. Ex: dog, insect"><button class="btn-close" type="button" aria-label="Close" data-bs-dismiss="modal"></button></div><div class="modal-body"><div class="grid-characters smaller"><a v-for="character in characters" :href="\\\'/en/story-of-chinese-character/\\\'+character.id">{{character.character}}<span><br>{{character.en_meaning}}</span><span class="strokes">{{character.strokes}}</span></a></div></div></div></div></div>\';
$strHtmlZh = \'
<div id="search" class="modal fade" role="dialog" tabindex="-1"><div class="modal-dialog modal-xl" role="document">
<div class="modal-content"><div class="modal-header"><input id="searchKeywords" v-model.trim="searchKeywords" @input="getCharacters" placeholder="在這裡搜索角色。"><button class="btn-close" type="button" aria-label="Close" data-bs-dismiss="modal"></button></div><div class="modal-body"><div class="grid-characters smaller"><a v-for="character in characters" :href="\\\'/zh/story-of-chinese-character/\\\'+character.id">{{character.character}}<span><br>{{character.cn_meaning}}</span><span class="strokes">{{character.strokes}}</span></a></div></div></div></div></div>\';
if ($_REQUEST[\'cultureKey\'] == \'en\') {
echo $strHtmlEn;
} else {
echo $strHtmlZh;
}
echo <<< END
<script>
let app = {
data() {
return {
characters: [],
searchKeywords: null
}
},
methods: {
getCharacters(event) {
if (event.target.value.trim().length != 0) {
fetch(\'/_qcube4/views/search-query.php?searchKeywords=\' + this.searchKeywords)
.then(response => response.json())
.then(data => (this.characters = data))
.catch(err => console.log(err.message))
} else {
this.characters = null;
}
}
}
}
Vue.createApp(app).mount(\'#search\');
var myModal = document.getElementById(\'search\');
var myInput = document.getElementById(\'searchKeywords\');
myModal.addEventListener(\'shown.bs.modal\', function () {
myInput.focus()
});
</script>
END;',
'locked' => false,
'properties' =>
array (
),
'moduleguid' => '',
'static' => false,
'static_file' => '',
'content' => '$strHtmlEn = \'
<div id="search" class="modal fade" role="dialog" tabindex="-1"><div class="modal-dialog modal-xl" role="document">
<div class="modal-content"><div class="modal-header"><input id="searchKeywords" v-model.trim="searchKeywords" @input="getCharacters" placeholder="Search Characters Here. Ex: dog, insect"><button class="btn-close" type="button" aria-label="Close" data-bs-dismiss="modal"></button></div><div class="modal-body"><div class="grid-characters smaller"><a v-for="character in characters" :href="\\\'/en/story-of-chinese-character/\\\'+character.id">{{character.character}}<span><br>{{character.en_meaning}}</span><span class="strokes">{{character.strokes}}</span></a></div></div></div></div></div>\';
$strHtmlZh = \'
<div id="search" class="modal fade" role="dialog" tabindex="-1"><div class="modal-dialog modal-xl" role="document">
<div class="modal-content"><div class="modal-header"><input id="searchKeywords" v-model.trim="searchKeywords" @input="getCharacters" placeholder="在這裡搜索角色。"><button class="btn-close" type="button" aria-label="Close" data-bs-dismiss="modal"></button></div><div class="modal-body"><div class="grid-characters smaller"><a v-for="character in characters" :href="\\\'/zh/story-of-chinese-character/\\\'+character.id">{{character.character}}<span><br>{{character.cn_meaning}}</span><span class="strokes">{{character.strokes}}</span></a></div></div></div></div></div>\';
if ($_REQUEST[\'cultureKey\'] == \'en\') {
echo $strHtmlEn;
} else {
echo $strHtmlZh;
}
echo <<< END
<script>
let app = {
data() {
return {
characters: [],
searchKeywords: null
}
},
methods: {
getCharacters(event) {
if (event.target.value.trim().length != 0) {
fetch(\'/_qcube4/views/search-query.php?searchKeywords=\' + this.searchKeywords)
.then(response => response.json())
.then(data => (this.characters = data))
.catch(err => console.log(err.message))
} else {
this.characters = null;
}
}
}
}
Vue.createApp(app).mount(\'#search\');
var myModal = document.getElementById(\'search\');
var myInput = document.getElementById(\'searchKeywords\');
myModal.addEventListener(\'shown.bs.modal\', function () {
myInput.focus()
});
</script>
END;',
),
'policies' =>
array (
'en' =>
array (
),
),
'source' =>
array (
'id' => 1,
'name' => 'Filesystem',
'description' => '',
'class_key' => 'MODX\\Revolution\\Sources\\modFileMediaSource',
'properties' =>
array (
),
'is_stream' => true,
),
),
),
'MODX\\Revolution\\modTemplateVar' =>
array (
'bodyId' =>
array (
'fields' =>
array (
'id' => 2,
'source' => 1,
'property_preprocess' => false,
'type' => 'text',
'name' => 'bodyId',
'caption' => 'Body ID',
'description' => '',
'editor_type' => 0,
'category' => 0,
'locked' => false,
'elements' => NULL,
'rank' => 0,
'display' => 'default',
'default_text' => '',
'properties' =>
array (
),
'input_properties' =>
array (
'allowBlank' => 'true',
'minLength' => '',
'maxLength' => '',
'regex' => '',
'regexText' => '',
),
'output_properties' =>
array (
),
'static' => false,
'static_file' => '',
'content' => '',
),
'policies' =>
array (
'en' =>
array (
),
),
'source' =>
array (
'id' => 1,
'name' => 'Filesystem',
'description' => '',
'class_key' => 'MODX\\Revolution\\Sources\\modFileMediaSource',
'properties' =>
array (
),
'is_stream' => true,
),
),
'bodyClass' =>
array (
'fields' =>
array (
'id' => 3,
'source' => 1,
'property_preprocess' => false,
'type' => 'text',
'name' => 'bodyClass',
'caption' => 'Body Class',
'description' => '',
'editor_type' => 0,
'category' => 0,
'locked' => false,
'elements' => NULL,
'rank' => 0,
'display' => 'default',
'default_text' => '',
'properties' =>
array (
),
'input_properties' =>
array (
'allowBlank' => 'true',
'minLength' => '',
'maxLength' => '',
'regex' => '',
'regexText' => '',
),
'output_properties' =>
array (
),
'static' => false,
'static_file' => '',
'content' => '',
),
'policies' =>
array (
'en' =>
array (
),
),
'source' =>
array (
'id' => 1,
'name' => 'Filesystem',
'description' => '',
'class_key' => 'MODX\\Revolution\\Sources\\modFileMediaSource',
'properties' =>
array (
),
'is_stream' => true,
),
),
'showBreadcrumbs' =>
array (
'fields' =>
array (
'id' => 4,
'source' => 1,
'property_preprocess' => false,
'type' => 'checkbox',
'name' => 'showBreadcrumbs',
'caption' => 'Show Breadcrumbs',
'description' => '',
'editor_type' => 0,
'category' => 0,
'locked' => false,
'elements' => 'Yes==1',
'rank' => 0,
'display' => 'default',
'default_text' => '1',
'properties' =>
array (
),
'input_properties' =>
array (
'allowBlank' => 'true',
'columns' => '1',
),
'output_properties' =>
array (
),
'static' => false,
'static_file' => '',
'content' => '1',
),
'policies' =>
array (
'en' =>
array (
),
),
'source' =>
array (
'id' => 1,
'name' => 'Filesystem',
'description' => '',
'class_key' => 'MODX\\Revolution\\Sources\\modFileMediaSource',
'properties' =>
array (
),
'is_stream' => true,
),
),
),
),
'cacheManager' =>
MODX\Revolution\modCacheManager::__set_state(array(
'modx' => NULL,
'xpdo' => NULL,
'caches' =>
array (
'system_settings' =>
xPDO\Cache\xPDOFileCache::__set_state(array(
'xpdo' => NULL,
'options' =>
array (
'cache_key' => 'system_settings',
'cache_handler' => 'xPDO\\Cache\\xPDOFileCache',
'cache_format' => 0,
),
'key' => 'system_settings',
'initialized' => true,
)),
'namespaces' =>
xPDO\Cache\xPDOFileCache::__set_state(array(
'xpdo' => NULL,
'options' =>
array (
'cache_key' => 'namespaces',
'cache_handler' => 'xPDO\\Cache\\xPDOFileCache',
'cache_format' => 0,
),
'key' => 'namespaces',
'initialized' => true,
)),
'context_settings' =>
xPDO\Cache\xPDOFileCache::__set_state(array(
'xpdo' => NULL,
'options' =>
array (
'cache_key' => 'context_settings',
'cache_handler' => 'xPDO\\Cache\\xPDOFileCache',
'cache_format' => 0,
),
'key' => 'context_settings',
'initialized' => true,
)),
'auto_publish' =>
xPDO\Cache\xPDOFileCache::__set_state(array(
'xpdo' => NULL,
'options' =>
array (
'cache_key' => 'auto_publish',
'cache_handler' => 'xPDO\\Cache\\xPDOFileCache',
),
'key' => 'auto_publish',
'initialized' => true,
)),
'resource' =>
xPDO\Cache\xPDOFileCache::__set_state(array(
'xpdo' => NULL,
'options' =>
array (
'cache_key' => 'resource',
'cache_handler' => 'xPDO\\Cache\\xPDOFileCache',
'cache_format' => 0,
),
'key' => 'resource',
'initialized' => true,
)),
'lexicon_topics' =>
xPDO\Cache\xPDOFileCache::__set_state(array(
'xpdo' => NULL,
'options' =>
array (
'cache_key' => 'lexicon_topics',
'cache_handler' => 'xPDO\\Cache\\xPDOFileCache',
'cache_format' => 0,
),
'key' => 'lexicon_topics',
'initialized' => true,
)),
),
'options' =>
array (
),
'_umask' => 18,
)),
'Event' =>
MODX\Revolution\modSystemEvent::__set_state(array(
'name' => '',
'activePlugin' => '',
'plugin' => NULL,
'propertySet' => '',
'_propagate' => true,
'_output' => NULL,
'activated' => NULL,
'returnedValues' => NULL,
'params' => NULL,
)),
'_deprecations' =>
array (
'modResource' =>
MODX\Revolution\mysql\modDeprecatedMethod::__set_state(array(
'callers' =>
array (
'xPDO\\xPDO::getPKType::/home4/silksto1/public_html/core/vendor/xpdo/xpdo/src/xPDO/xPDO.php::1659' =>
MODX\Revolution\mysql\modDeprecatedCall::__set_state(array(
'xpdo' => NULL,
'container' => 'silksto1_silkstory2',
'fieldNames' => NULL,
'_class' => 'MODX\\Revolution\\modDeprecatedCall',
'_package' => 'MODX\\Revolution\\',
'_alias' => 'Callers',
'_pk' => 'id',
'_pktype' => NULL,
'_table' => '`modx_deprecated_call`',
'_tableMeta' =>
array (
'engine' => 'InnoDB',
),
'_dirty' =>
array (
'call_count' => 'call_count',
),
'_lazy' =>
array (
),
'_fields' =>
array (
'id' => 62,
'method' => 17,
'call_count' => 2108986,
'caller' => 'xPDO\\xPDO::getPKType',
'caller_file' => '/home4/silksto1/public_html/core/vendor/xpdo/xpdo/src/xPDO/xPDO.php',
'caller_line' => 1659,
),
'_fieldMeta' =>
array (
'id' =>
array (
'dbtype' => 'INTEGER',
'phptype' => 'integer',
'null' => false,
'index' => 'pk',
'generated' => 'native',
'attributes' => 'unsigned',
),
'method' =>
array (
'dbtype' => 'int',
'precision' => '11',
'attributes' => 'unsigned',
'phptype' => 'integer',
'null' => false,
'default' => 0,
),
'call_count' =>
array (
'dbtype' => 'int',
'precision' => '11',
'attributes' => 'unsigned',
'phptype' => 'integer',
'null' => false,
'default' => 0,
),
'caller' =>
array (
'dbtype' => 'varchar',
'precision' => '191',
'phptype' => 'string',
'null' => false,
'default' => '',
),
'caller_file' =>
array (
'dbtype' => 'varchar',
'precision' => '191',
'phptype' => 'string',
'null' => false,
'default' => '',
),
'caller_line' =>
array (
'dbtype' => 'int',
'precision' => '11',
'attributes' => 'unsigned',
'phptype' => 'integer',
'null' => false,
'default' => 0,
),
),
'_fieldAliases' =>
array (
),
'_aggregates' =>
array (
'Method' =>
array (
'class' => 'MODX\\Revolution\\modDeprecatedMethod',
'local' => 'method',
'foreign' => 'id',
'cardinality' => 'one',
'owner' => 'foreign',
),
),
'_composites' =>
array (
),
'_relatedObjects' =>
array (
'Method' => NULL,
),
'_validator' => NULL,
'_validationRules' =>
array (
),
'_validated' =>
array (
),
'_validationLoaded' => false,
'_new' => false,
'_cacheFlag' => true,
'_options' =>
array (
),
)),
'xPDO\\xPDO::getPK::/home4/silksto1/public_html/core/vendor/xpdo/xpdo/src/xPDO/xPDO.php::1597' =>
MODX\Revolution\mysql\modDeprecatedCall::__set_state(array(
'xpdo' => NULL,
'container' => 'silksto1_silkstory2',
'fieldNames' => NULL,
'_class' => 'MODX\\Revolution\\modDeprecatedCall',
'_package' => 'MODX\\Revolution\\',
'_alias' => 'Callers',
'_pk' => 'id',
'_pktype' => NULL,
'_table' => '`modx_deprecated_call`',
'_tableMeta' =>
array (
'engine' => 'InnoDB',
),
'_dirty' =>
array (
'call_count' => 'call_count',
),
'_lazy' =>
array (
),
'_fields' =>
array (
'id' => 63,
'method' => 17,
'call_count' => 2109392,
'caller' => 'xPDO\\xPDO::getPK',
'caller_file' => '/home4/silksto1/public_html/core/vendor/xpdo/xpdo/src/xPDO/xPDO.php',
'caller_line' => 1597,
),
'_fieldMeta' =>
array (
'id' =>
array (
'dbtype' => 'INTEGER',
'phptype' => 'integer',
'null' => false,
'index' => 'pk',
'generated' => 'native',
'attributes' => 'unsigned',
),
'method' =>
array (
'dbtype' => 'int',
'precision' => '11',
'attributes' => 'unsigned',
'phptype' => 'integer',
'null' => false,
'default' => 0,
),
'call_count' =>
array (
'dbtype' => 'int',
'precision' => '11',
'attributes' => 'unsigned',
'phptype' => 'integer',
'null' => false,
'default' => 0,
),
'caller' =>
array (
'dbtype' => 'varchar',
'precision' => '191',
'phptype' => 'string',
'null' => false,
'default' => '',
),
'caller_file' =>
array (
'dbtype' => 'varchar',
'precision' => '191',
'phptype' => 'string',
'null' => false,
'default' => '',
),
'caller_line' =>
array (
'dbtype' => 'int',
'precision' => '11',
'attributes' => 'unsigned',
'phptype' => 'integer',
'null' => false,
'default' => 0,
),
),
'_fieldAliases' =>
array (
),
'_aggregates' =>
array (
'Method' =>
array (
'class' => 'MODX\\Revolution\\modDeprecatedMethod',
'local' => 'method',
'foreign' => 'id',
'cardinality' => 'one',
'owner' => 'foreign',
),
),
'_composites' =>
array (
),
'_relatedObjects' =>
array (
'Method' => NULL,
),
'_validator' => NULL,
'_validationRules' =>
array (
),
'_validated' =>
array (
),
'_validationLoaded' => false,
'_new' => false,
'_cacheFlag' => true,
'_options' =>
array (
),
)),
'xPDO\\xPDO::call::/home4/silksto1/public_html/core/vendor/xpdo/xpdo/src/xPDO/xPDO.php::773' =>
MODX\Revolution\mysql\modDeprecatedCall::__set_state(array(
'xpdo' => NULL,
'container' => 'silksto1_silkstory2',
'fieldNames' => NULL,
'_class' => 'MODX\\Revolution\\modDeprecatedCall',
'_package' => 'MODX\\Revolution\\',
'_alias' => 'Callers',
'_pk' => 'id',
'_pktype' => NULL,
'_table' => '`modx_deprecated_call`',
'_tableMeta' =>
array (
'engine' => 'InnoDB',
),
'_dirty' =>
array (
'call_count' => 'call_count',
),
'_lazy' =>
array (
),
'_fields' =>
array (
'id' => 53,
'method' => 17,
'call_count' => 2110084,
'caller' => 'xPDO\\xPDO::call',
'caller_file' => '/home4/silksto1/public_html/core/vendor/xpdo/xpdo/src/xPDO/xPDO.php',
'caller_line' => 773,
),
'_fieldMeta' =>
array (
'id' =>
array (
'dbtype' => 'INTEGER',
'phptype' => 'integer',
'null' => false,
'index' => 'pk',
'generated' => 'native',
'attributes' => 'unsigned',
),
'method' =>
array (
'dbtype' => 'int',
'precision' => '11',
'attributes' => 'unsigned',
'phptype' => 'integer',
'null' => false,
'default' => 0,
),
'call_count' =>
array (
'dbtype' => 'int',
'precision' => '11',
'attributes' => 'unsigned',
'phptype' => 'integer',
'null' => false,
'default' => 0,
),
'caller' =>
array (
'dbtype' => 'varchar',
'precision' => '191',
'phptype' => 'string',
'null' => false,
'default' => '',
),
'caller_file' =>
array (
'dbtype' => 'varchar',
'precision' => '191',
'phptype' => 'string',
'null' => false,
'default' => '',
),
'caller_line' =>
array (
'dbtype' => 'int',
'precision' => '11',
'attributes' => 'unsigned',
'phptype' => 'integer',
'null' => false,
'default' => 0,
),
),
'_fieldAliases' =>
array (
),
'_aggregates' =>
array (
'Method' =>
array (
'class' => 'MODX\\Revolution\\modDeprecatedMethod',
'local' => 'method',
'foreign' => 'id',
'cardinality' => 'one',
'owner' => 'foreign',
),
),
'_composites' =>
array (
),
'_relatedObjects' =>
array (
'Method' => NULL,
),
'_validator' => NULL,
'_validationRules' =>
array (
),
'_validated' =>
array (
),
'_validationLoaded' => false,
'_new' => false,
'_cacheFlag' => true,
'_options' =>
array (
),
)),
'MODX\\Revolution\\modAccessibleObject::load::/home4/silksto1/public_html/core/src/Revolution/modAccessibleObject.php::106' =>
MODX\Revolution\mysql\modDeprecatedCall::__set_state(array(
'xpdo' => NULL,
'container' => 'silksto1_silkstory2',
'fieldNames' => NULL,
'_class' => 'MODX\\Revolution\\modDeprecatedCall',
'_package' => 'MODX\\Revolution\\',
'_alias' => 'Callers',
'_pk' => 'id',
'_pktype' => NULL,
'_table' => '`modx_deprecated_call`',
'_tableMeta' =>
array (
'engine' => 'InnoDB',
),
'_dirty' =>
array (
'call_count' => 'call_count',
),
'_lazy' =>
array (
),
'_fields' =>
array (
'id' => 64,
'method' => 17,
'call_count' => 2110028,
'caller' => 'MODX\\Revolution\\modAccessibleObject::load',
'caller_file' => '/home4/silksto1/public_html/core/src/Revolution/modAccessibleObject.php',
'caller_line' => 106,
),
'_fieldMeta' =>
array (
'id' =>
array (
'dbtype' => 'INTEGER',
'phptype' => 'integer',
'null' => false,
'index' => 'pk',
'generated' => 'native',
'attributes' => 'unsigned',
),
'method' =>
array (
'dbtype' => 'int',
'precision' => '11',
'attributes' => 'unsigned',
'phptype' => 'integer',
'null' => false,
'default' => 0,
),
'call_count' =>
array (
'dbtype' => 'int',
'precision' => '11',
'attributes' => 'unsigned',
'phptype' => 'integer',
'null' => false,
'default' => 0,
),
'caller' =>
array (
'dbtype' => 'varchar',
'precision' => '191',
'phptype' => 'string',
'null' => false,
'default' => '',
),
'caller_file' =>
array (
'dbtype' => 'varchar',
'precision' => '191',
'phptype' => 'string',
'null' => false,
'default' => '',
),
'caller_line' =>
array (
'dbtype' => 'int',
'precision' => '11',
'attributes' => 'unsigned',
'phptype' => 'integer',
'null' => false,
'default' => 0,
),
),
'_fieldAliases' =>
array (
),
'_aggregates' =>
array (
'Method' =>
array (
'class' => 'MODX\\Revolution\\modDeprecatedMethod',
'local' => 'method',
'foreign' => 'id',
'cardinality' => 'one',
'owner' => 'foreign',
),
),
'_composites' =>
array (
),
'_relatedObjects' =>
array (
'Method' => NULL,
),
'_validator' => NULL,
'_validationRules' =>
array (
),
'_validated' =>
array (
),
'_validationLoaded' => false,
'_new' => false,
'_cacheFlag' => true,
'_options' =>
array (
),
)),
),
'xpdo' => NULL,
'container' => 'silksto1_silkstory2',
'fieldNames' => NULL,
'_class' => 'MODX\\Revolution\\modDeprecatedMethod',
'_package' => 'MODX\\Revolution\\',
'_alias' => 'MODX\\Revolution\\modDeprecatedMethod',
'_pk' => NULL,
'_pktype' => NULL,
'_table' => '`modx_deprecated_method`',
'_tableMeta' =>
array (
'engine' => 'InnoDB',
),
'_dirty' =>
array (
),
'_lazy' =>
array (
),
'_fields' =>
array (
'id' => 17,
'definition' => 'modResource',
'since' => '3.0',
'recommendation' => 'Replace references to class modResource with MODX\\Revolution\\modResource to take advantage of PSR-4 autoloading.',
),
'_fieldMeta' =>
array (
'id' =>
array (
'dbtype' => 'INTEGER',
'phptype' => 'integer',
'null' => false,
'index' => 'pk',
'generated' => 'native',
'attributes' => 'unsigned',
),
'definition' =>
array (
'dbtype' => 'varchar',
'precision' => '191',
'phptype' => 'string',
'null' => false,
'default' => '',
),
'since' =>
array (
'dbtype' => 'varchar',
'precision' => '191',
'phptype' => 'string',
'null' => false,
'default' => '',
),
'recommendation' =>
array (
'dbtype' => 'varchar',
'precision' => '1024',
'phptype' => 'string',
'null' => false,
'default' => '',
),
),
'_fieldAliases' =>
array (
),
'_aggregates' =>
array (
),
'_composites' =>
array (
'Callers' =>
array (
'class' => 'MODX\\Revolution\\modDeprecatedCall',
'local' => 'id',
'foreign' => 'method',
'cardinality' => 'many',
'owner' => 'local',
),
),
'_relatedObjects' =>
array (
'Callers' =>
array (
62 =>
MODX\Revolution\mysql\modDeprecatedCall::__set_state(array(
'xpdo' => NULL,
'container' => 'silksto1_silkstory2',
'fieldNames' => NULL,
'_class' => 'MODX\\Revolution\\modDeprecatedCall',
'_package' => 'MODX\\Revolution\\',
'_alias' => 'Callers',
'_pk' => 'id',
'_pktype' => NULL,
'_table' => '`modx_deprecated_call`',
'_tableMeta' =>
array (
'engine' => 'InnoDB',
),
'_dirty' =>
array (
'call_count' => 'call_count',
),
'_lazy' =>
array (
),
'_fields' =>
array (
'id' => 62,
'method' => 17,
'call_count' => 2108986,
'caller' => 'xPDO\\xPDO::getPKType',
'caller_file' => '/home4/silksto1/public_html/core/vendor/xpdo/xpdo/src/xPDO/xPDO.php',
'caller_line' => 1659,
),
'_fieldMeta' =>
array (
'id' =>
array (
'dbtype' => 'INTEGER',
'phptype' => 'integer',
'null' => false,
'index' => 'pk',
'generated' => 'native',
'attributes' => 'unsigned',
),
'method' =>
array (
'dbtype' => 'int',
'precision' => '11',
'attributes' => 'unsigned',
'phptype' => 'integer',
'null' => false,
'default' => 0,
),
'call_count' =>
array (
'dbtype' => 'int',
'precision' => '11',
'attributes' => 'unsigned',
'phptype' => 'integer',
'null' => false,
'default' => 0,
),
'caller' =>
array (
'dbtype' => 'varchar',
'precision' => '191',
'phptype' => 'string',
'null' => false,
'default' => '',
),
'caller_file' =>
array (
'dbtype' => 'varchar',
'precision' => '191',
'phptype' => 'string',
'null' => false,
'default' => '',
),
'caller_line' =>
array (
'dbtype' => 'int',
'precision' => '11',
'attributes' => 'unsigned',
'phptype' => 'integer',
'null' => false,
'default' => 0,
),
),
'_fieldAliases' =>
array (
),
'_aggregates' =>
array (
'Method' =>
array (
'class' => 'MODX\\Revolution\\modDeprecatedMethod',
'local' => 'method',
'foreign' => 'id',
'cardinality' => 'one',
'owner' => 'foreign',
),
),
'_composites' =>
array (
),
'_relatedObjects' =>
array (
'Method' => NULL,
),
'_validator' => NULL,
'_validationRules' =>
array (
),
'_validated' =>
array (
),
'_validationLoaded' => false,
'_new' => false,
'_cacheFlag' => true,
'_options' =>
array (
),
)),
63 =>
MODX\Revolution\mysql\modDeprecatedCall::__set_state(array(
'xpdo' => NULL,
'container' => 'silksto1_silkstory2',
'fieldNames' => NULL,
'_class' => 'MODX\\Revolution\\modDeprecatedCall',
'_package' => 'MODX\\Revolution\\',
'_alias' => 'Callers',
'_pk' => 'id',
'_pktype' => NULL,
'_table' => '`modx_deprecated_call`',
'_tableMeta' =>
array (
'engine' => 'InnoDB',
),
'_dirty' =>
array (
'call_count' => 'call_count',
),
'_lazy' =>
array (
),
'_fields' =>
array (
'id' => 63,
'method' => 17,
'call_count' => 2109392,
'caller' => 'xPDO\\xPDO::getPK',
'caller_file' => '/home4/silksto1/public_html/core/vendor/xpdo/xpdo/src/xPDO/xPDO.php',
'caller_line' => 1597,
),
'_fieldMeta' =>
array (
'id' =>
array (
'dbtype' => 'INTEGER',
'phptype' => 'integer',
'null' => false,
'index' => 'pk',
'generated' => 'native',
'attributes' => 'unsigned',
),
'method' =>
array (
'dbtype' => 'int',
'precision' => '11',
'attributes' => 'unsigned',
'phptype' => 'integer',
'null' => false,
'default' => 0,
),
'call_count' =>
array (
'dbtype' => 'int',
'precision' => '11',
'attributes' => 'unsigned',
'phptype' => 'integer',
'null' => false,
'default' => 0,
),
'caller' =>
array (
'dbtype' => 'varchar',
'precision' => '191',
'phptype' => 'string',
'null' => false,
'default' => '',
),
'caller_file' =>
array (
'dbtype' => 'varchar',
'precision' => '191',
'phptype' => 'string',
'null' => false,
'default' => '',
),
'caller_line' =>
array (
'dbtype' => 'int',
'precision' => '11',
'attributes' => 'unsigned',
'phptype' => 'integer',
'null' => false,
'default' => 0,
),
),
'_fieldAliases' =>
array (
),
'_aggregates' =>
array (
'Method' =>
array (
'class' => 'MODX\\Revolution\\modDeprecatedMethod',
'local' => 'method',
'foreign' => 'id',
'cardinality' => 'one',
'owner' => 'foreign',
),
),
'_composites' =>
array (
),
'_relatedObjects' =>
array (
'Method' => NULL,
),
'_validator' => NULL,
'_validationRules' =>
array (
),
'_validated' =>
array (
),
'_validationLoaded' => false,
'_new' => false,
'_cacheFlag' => true,
'_options' =>
array (
),
)),
53 =>
MODX\Revolution\mysql\modDeprecatedCall::__set_state(array(
'xpdo' => NULL,
'container' => 'silksto1_silkstory2',
'fieldNames' => NULL,
'_class' => 'MODX\\Revolution\\modDeprecatedCall',
'_package' => 'MODX\\Revolution\\',
'_alias' => 'Callers',
'_pk' => 'id',
'_pktype' => NULL,
'_table' => '`modx_deprecated_call`',
'_tableMeta' =>
array (
'engine' => 'InnoDB',
),
'_dirty' =>
array (
'call_count' => 'call_count',
),
'_lazy' =>
array (
),
'_fields' =>
array (
'id' => 53,
'method' => 17,
'call_count' => 2110084,
'caller' => 'xPDO\\xPDO::call',
'caller_file' => '/home4/silksto1/public_html/core/vendor/xpdo/xpdo/src/xPDO/xPDO.php',
'caller_line' => 773,
),
'_fieldMeta' =>
array (
'id' =>
array (
'dbtype' => 'INTEGER',
'phptype' => 'integer',
'null' => false,
'index' => 'pk',
'generated' => 'native',
'attributes' => 'unsigned',
),
'method' =>
array (
'dbtype' => 'int',
'precision' => '11',
'attributes' => 'unsigned',
'phptype' => 'integer',
'null' => false,
'default' => 0,
),
'call_count' =>
array (
'dbtype' => 'int',
'precision' => '11',
'attributes' => 'unsigned',
'phptype' => 'integer',
'null' => false,
'default' => 0,
),
'caller' =>
array (
'dbtype' => 'varchar',
'precision' => '191',
'phptype' => 'string',
'null' => false,
'default' => '',
),
'caller_file' =>
array (
'dbtype' => 'varchar',
'precision' => '191',
'phptype' => 'string',
'null' => false,
'default' => '',
),
'caller_line' =>
array (
'dbtype' => 'int',
'precision' => '11',
'attributes' => 'unsigned',
'phptype' => 'integer',
'null' => false,
'default' => 0,
),
),
'_fieldAliases' =>
array (
),
'_aggregates' =>
array (
'Method' =>
array (
'class' => 'MODX\\Revolution\\modDeprecatedMethod',
'local' => 'method',
'foreign' => 'id',
'cardinality' => 'one',
'owner' => 'foreign',
),
),
'_composites' =>
array (
),
'_relatedObjects' =>
array (
'Method' => NULL,
),
'_validator' => NULL,
'_validationRules' =>
array (
),
'_validated' =>
array (
),
'_validationLoaded' => false,
'_new' => false,
'_cacheFlag' => true,
'_options' =>
array (
),
)),
64 =>
MODX\Revolution\mysql\modDeprecatedCall::__set_state(array(
'xpdo' => NULL,
'container' => 'silksto1_silkstory2',
'fieldNames' => NULL,
'_class' => 'MODX\\Revolution\\modDeprecatedCall',
'_package' => 'MODX\\Revolution\\',
'_alias' => 'Callers',
'_pk' => 'id',
'_pktype' => NULL,
'_table' => '`modx_deprecated_call`',
'_tableMeta' =>
array (
'engine' => 'InnoDB',
),
'_dirty' =>
array (
'call_count' => 'call_count',
),
'_lazy' =>
array (
),
'_fields' =>
array (
'id' => 64,
'method' => 17,
'call_count' => 2110028,
'caller' => 'MODX\\Revolution\\modAccessibleObject::load',
'caller_file' => '/home4/silksto1/public_html/core/src/Revolution/modAccessibleObject.php',
'caller_line' => 106,
),
'_fieldMeta' =>
array (
'id' =>
array (
'dbtype' => 'INTEGER',
'phptype' => 'integer',
'null' => false,
'index' => 'pk',
'generated' => 'native',
'attributes' => 'unsigned',
),
'method' =>
array (
'dbtype' => 'int',
'precision' => '11',
'attributes' => 'unsigned',
'phptype' => 'integer',
'null' => false,
'default' => 0,
),
'call_count' =>
array (
'dbtype' => 'int',
'precision' => '11',
'attributes' => 'unsigned',
'phptype' => 'integer',
'null' => false,
'default' => 0,
),
'caller' =>
array (
'dbtype' => 'varchar',
'precision' => '191',
'phptype' => 'string',
'null' => false,
'default' => '',
),
'caller_file' =>
array (
'dbtype' => 'varchar',
'precision' => '191',
'phptype' => 'string',
'null' => false,
'default' => '',
),
'caller_line' =>
array (
'dbtype' => 'int',
'precision' => '11',
'attributes' => 'unsigned',
'phptype' => 'integer',
'null' => false,
'default' => 0,
),
),
'_fieldAliases' =>
array (
),
'_aggregates' =>
array (
'Method' =>
array (
'class' => 'MODX\\Revolution\\modDeprecatedMethod',
'local' => 'method',
'foreign' => 'id',
'cardinality' => 'one',
'owner' => 'foreign',
),
),
'_composites' =>
array (
),
'_relatedObjects' =>
array (
'Method' => NULL,
),
'_validator' => NULL,
'_validationRules' =>
array (
),
'_validated' =>
array (
),
'_validationLoaded' => false,
'_new' => false,
'_cacheFlag' => true,
'_options' =>
array (
),
)),
),
),
'_validator' => NULL,
'_validationRules' =>
array (
),
'_validated' =>
array (
),
'_validationLoaded' => false,
'_new' => false,
'_cacheFlag' => true,
'_options' =>
array (
),
)),
'modChunk' =>
MODX\Revolution\mysql\modDeprecatedMethod::__set_state(array(
'callers' =>
array (
'xPDO\\xPDO::call::/home4/silksto1/public_html/core/vendor/xpdo/xpdo/src/xPDO/xPDO.php::773' =>
MODX\Revolution\mysql\modDeprecatedCall::__set_state(array(
'xpdo' => NULL,
'container' => 'silksto1_silkstory2',
'fieldNames' => NULL,
'_class' => 'MODX\\Revolution\\modDeprecatedCall',
'_package' => 'MODX\\Revolution\\',
'_alias' => 'Callers',
'_pk' => 'id',
'_pktype' => NULL,
'_table' => '`modx_deprecated_call`',
'_tableMeta' =>
array (
'engine' => 'InnoDB',
),
'_dirty' =>
array (
'call_count' => 'call_count',
),
'_lazy' =>
array (
),
'_fields' =>
array (
'id' => 49,
'method' => 19,
'call_count' => 2776313,
'caller' => 'xPDO\\xPDO::call',
'caller_file' => '/home4/silksto1/public_html/core/vendor/xpdo/xpdo/src/xPDO/xPDO.php',
'caller_line' => 773,
),
'_fieldMeta' =>
array (
'id' =>
array (
'dbtype' => 'INTEGER',
'phptype' => 'integer',
'null' => false,
'index' => 'pk',
'generated' => 'native',
'attributes' => 'unsigned',
),
'method' =>
array (
'dbtype' => 'int',
'precision' => '11',
'attributes' => 'unsigned',
'phptype' => 'integer',
'null' => false,
'default' => 0,
),
'call_count' =>
array (
'dbtype' => 'int',
'precision' => '11',
'attributes' => 'unsigned',
'phptype' => 'integer',
'null' => false,
'default' => 0,
),
'caller' =>
array (
'dbtype' => 'varchar',
'precision' => '191',
'phptype' => 'string',
'null' => false,
'default' => '',
),
'caller_file' =>
array (
'dbtype' => 'varchar',
'precision' => '191',
'phptype' => 'string',
'null' => false,
'default' => '',
),
'caller_line' =>
array (
'dbtype' => 'int',
'precision' => '11',
'attributes' => 'unsigned',
'phptype' => 'integer',
'null' => false,
'default' => 0,
),
),
'_fieldAliases' =>
array (
),
'_aggregates' =>
array (
'Method' =>
array (
'class' => 'MODX\\Revolution\\modDeprecatedMethod',
'local' => 'method',
'foreign' => 'id',
'cardinality' => 'one',
'owner' => 'foreign',
),
),
'_composites' =>
array (
),
'_relatedObjects' =>
array (
'Method' => NULL,
),
'_validator' => NULL,
'_validationRules' =>
array (
),
'_validated' =>
array (
),
'_validationLoaded' => false,
'_new' => false,
'_cacheFlag' => true,
'_options' =>
array (
),
)),
'MODX\\Revolution\\modAccessibleObject::load::/home4/silksto1/public_html/core/src/Revolution/modAccessibleObject.php::106' =>
MODX\Revolution\mysql\modDeprecatedCall::__set_state(array(
'xpdo' => NULL,
'container' => 'silksto1_silkstory2',
'fieldNames' => NULL,
'_class' => 'MODX\\Revolution\\modDeprecatedCall',
'_package' => 'MODX\\Revolution\\',
'_alias' => 'Callers',
'_pk' => 'id',
'_pktype' => NULL,
'_table' => '`modx_deprecated_call`',
'_tableMeta' =>
array (
'engine' => 'InnoDB',
),
'_dirty' =>
array (
'call_count' => 'call_count',
),
'_lazy' =>
array (
),
'_fields' =>
array (
'id' => 50,
'method' => 19,
'call_count' => 2777137,
'caller' => 'MODX\\Revolution\\modAccessibleObject::load',
'caller_file' => '/home4/silksto1/public_html/core/src/Revolution/modAccessibleObject.php',
'caller_line' => 106,
),
'_fieldMeta' =>
array (
'id' =>
array (
'dbtype' => 'INTEGER',
'phptype' => 'integer',
'null' => false,
'index' => 'pk',
'generated' => 'native',
'attributes' => 'unsigned',
),
'method' =>
array (
'dbtype' => 'int',
'precision' => '11',
'attributes' => 'unsigned',
'phptype' => 'integer',
'null' => false,
'default' => 0,
),
'call_count' =>
array (
'dbtype' => 'int',
'precision' => '11',
'attributes' => 'unsigned',
'phptype' => 'integer',
'null' => false,
'default' => 0,
),
'caller' =>
array (
'dbtype' => 'varchar',
'precision' => '191',
'phptype' => 'string',
'null' => false,
'default' => '',
),
'caller_file' =>
array (
'dbtype' => 'varchar',
'precision' => '191',
'phptype' => 'string',
'null' => false,
'default' => '',
),
'caller_line' =>
array (
'dbtype' => 'int',
'precision' => '11',
'attributes' => 'unsigned',
'phptype' => 'integer',
'null' => false,
'default' => 0,
),
),
'_fieldAliases' =>
array (
),
'_aggregates' =>
array (
'Method' =>
array (
'class' => 'MODX\\Revolution\\modDeprecatedMethod',
'local' => 'method',
'foreign' => 'id',
'cardinality' => 'one',
'owner' => 'foreign',
),
),
'_composites' =>
array (
),
'_relatedObjects' =>
array (
'Method' => NULL,
),
'_validator' => NULL,
'_validationRules' =>
array (
),
'_validated' =>
array (
),
'_validationLoaded' => false,
'_new' => false,
'_cacheFlag' => true,
'_options' =>
array (
),
)),
),
'xpdo' => NULL,
'container' => 'silksto1_silkstory2',
'fieldNames' => NULL,
'_class' => 'MODX\\Revolution\\modDeprecatedMethod',
'_package' => 'MODX\\Revolution\\',
'_alias' => 'MODX\\Revolution\\modDeprecatedMethod',
'_pk' => NULL,
'_pktype' => NULL,
'_table' => '`modx_deprecated_method`',
'_tableMeta' =>
array (
'engine' => 'InnoDB',
),
'_dirty' =>
array (
),
'_lazy' =>
array (
),
'_fields' =>
array (
'id' => 19,
'definition' => 'modChunk',
'since' => '3.0',
'recommendation' => 'Replace references to class modChunk with MODX\\Revolution\\modChunk to take advantage of PSR-4 autoloading.',
),
'_fieldMeta' =>
array (
'id' =>
array (
'dbtype' => 'INTEGER',
'phptype' => 'integer',
'null' => false,
'index' => 'pk',
'generated' => 'native',
'attributes' => 'unsigned',
),
'definition' =>
array (
'dbtype' => 'varchar',
'precision' => '191',
'phptype' => 'string',
'null' => false,
'default' => '',
),
'since' =>
array (
'dbtype' => 'varchar',
'precision' => '191',
'phptype' => 'string',
'null' => false,
'default' => '',
),
'recommendation' =>
array (
'dbtype' => 'varchar',
'precision' => '1024',
'phptype' => 'string',
'null' => false,
'default' => '',
),
),
'_fieldAliases' =>
array (
),
'_aggregates' =>
array (
),
'_composites' =>
array (
'Callers' =>
array (
'class' => 'MODX\\Revolution\\modDeprecatedCall',
'local' => 'id',
'foreign' => 'method',
'cardinality' => 'many',
'owner' => 'local',
),
),
'_relatedObjects' =>
array (
'Callers' =>
array (
49 =>
MODX\Revolution\mysql\modDeprecatedCall::__set_state(array(
'xpdo' => NULL,
'container' => 'silksto1_silkstory2',
'fieldNames' => NULL,
'_class' => 'MODX\\Revolution\\modDeprecatedCall',
'_package' => 'MODX\\Revolution\\',
'_alias' => 'Callers',
'_pk' => 'id',
'_pktype' => NULL,
'_table' => '`modx_deprecated_call`',
'_tableMeta' =>
array (
'engine' => 'InnoDB',
),
'_dirty' =>
array (
'call_count' => 'call_count',
),
'_lazy' =>
array (
),
'_fields' =>
array (
'id' => 49,
'method' => 19,
'call_count' => 2776313,
'caller' => 'xPDO\\xPDO::call',
'caller_file' => '/home4/silksto1/public_html/core/vendor/xpdo/xpdo/src/xPDO/xPDO.php',
'caller_line' => 773,
),
'_fieldMeta' =>
array (
'id' =>
array (
'dbtype' => 'INTEGER',
'phptype' => 'integer',
'null' => false,
'index' => 'pk',
'generated' => 'native',
'attributes' => 'unsigned',
),
'method' =>
array (
'dbtype' => 'int',
'precision' => '11',
'attributes' => 'unsigned',
'phptype' => 'integer',
'null' => false,
'default' => 0,
),
'call_count' =>
array (
'dbtype' => 'int',
'precision' => '11',
'attributes' => 'unsigned',
'phptype' => 'integer',
'null' => false,
'default' => 0,
),
'caller' =>
array (
'dbtype' => 'varchar',
'precision' => '191',
'phptype' => 'string',
'null' => false,
'default' => '',
),
'caller_file' =>
array (
'dbtype' => 'varchar',
'precision' => '191',
'phptype' => 'string',
'null' => false,
'default' => '',
),
'caller_line' =>
array (
'dbtype' => 'int',
'precision' => '11',
'attributes' => 'unsigned',
'phptype' => 'integer',
'null' => false,
'default' => 0,
),
),
'_fieldAliases' =>
array (
),
'_aggregates' =>
array (
'Method' =>
array (
'class' => 'MODX\\Revolution\\modDeprecatedMethod',
'local' => 'method',
'foreign' => 'id',
'cardinality' => 'one',
'owner' => 'foreign',
),
),
'_composites' =>
array (
),
'_relatedObjects' =>
array (
'Method' => NULL,
),
'_validator' => NULL,
'_validationRules' =>
array (
),
'_validated' =>
array (
),
'_validationLoaded' => false,
'_new' => false,
'_cacheFlag' => true,
'_options' =>
array (
),
)),
50 =>
MODX\Revolution\mysql\modDeprecatedCall::__set_state(array(
'xpdo' => NULL,
'container' => 'silksto1_silkstory2',
'fieldNames' => NULL,
'_class' => 'MODX\\Revolution\\modDeprecatedCall',
'_package' => 'MODX\\Revolution\\',
'_alias' => 'Callers',
'_pk' => 'id',
'_pktype' => NULL,
'_table' => '`modx_deprecated_call`',
'_tableMeta' =>
array (
'engine' => 'InnoDB',
),
'_dirty' =>
array (
'call_count' => 'call_count',
),
'_lazy' =>
array (
),
'_fields' =>
array (
'id' => 50,
'method' => 19,
'call_count' => 2777137,
'caller' => 'MODX\\Revolution\\modAccessibleObject::load',
'caller_file' => '/home4/silksto1/public_html/core/src/Revolution/modAccessibleObject.php',
'caller_line' => 106,
),
'_fieldMeta' =>
array (
'id' =>
array (
'dbtype' => 'INTEGER',
'phptype' => 'integer',
'null' => false,
'index' => 'pk',
'generated' => 'native',
'attributes' => 'unsigned',
),
'method' =>
array (
'dbtype' => 'int',
'precision' => '11',
'attributes' => 'unsigned',
'phptype' => 'integer',
'null' => false,
'default' => 0,
),
'call_count' =>
array (
'dbtype' => 'int',
'precision' => '11',
'attributes' => 'unsigned',
'phptype' => 'integer',
'null' => false,
'default' => 0,
),
'caller' =>
array (
'dbtype' => 'varchar',
'precision' => '191',
'phptype' => 'string',
'null' => false,
'default' => '',
),
'caller_file' =>
array (
'dbtype' => 'varchar',
'precision' => '191',
'phptype' => 'string',
'null' => false,
'default' => '',
),
'caller_line' =>
array (
'dbtype' => 'int',
'precision' => '11',
'attributes' => 'unsigned',
'phptype' => 'integer',
'null' => false,
'default' => 0,
),
),
'_fieldAliases' =>
array (
),
'_aggregates' =>
array (
'Method' =>
array (
'class' => 'MODX\\Revolution\\modDeprecatedMethod',
'local' => 'method',
'foreign' => 'id',
'cardinality' => 'one',
'owner' => 'foreign',
),
),
'_composites' =>
array (
),
'_relatedObjects' =>
array (
'Method' => NULL,
),
'_validator' => NULL,
'_validationRules' =>
array (
),
'_validated' =>
array (
),
'_validationLoaded' => false,
'_new' => false,
'_cacheFlag' => true,
'_options' =>
array (
),
)),
),
),
'_validator' => NULL,
'_validationRules' =>
array (
),
'_validated' =>
array (
),
'_validationLoaded' => false,
'_new' => false,
'_cacheFlag' => true,
'_options' =>
array (
),
)),
),
'pdo' =>
PDO::__set_state(array(
)),
'config' =>
array (
'access_category_enabled' => '1',
'access_context_enabled' => '1',
'access_resource_group_enabled' => '1',
'allow_forward_across_contexts' => '',
'allow_manager_login_forgot_password' => '1',
'allow_multiple_emails' => '1',
'allow_tags_in_post' => '',
'anonymous_sessions' => '1',
'archive_with' => '',
'assets_path' => '/home4/silksto1/public_html/assets/',
'assets_url' => '/assets/',
'auto_check_pkg_updates' => '1',
'auto_check_pkg_updates_cache_expire' => '15',
'auto_isfolder' => '1',
'auto_menuindex' => '1',
'automatic_alias' => '1',
'automatic_template_assignment' => 'sibling',
'babel.babelTvName' => 'babelLanguageLinks',
'babel.contextKeys' => 'web,en,zh',
'babel.syncTvs' => '',
'base_help_url' => '//docs.modx.com/help/',
'base_path' => '/home4/silksto1/public_html/',
'base_url' => '/en/',
'blocked_minutes' => '60',
'cache_alias_map' => '1',
'cache_context_settings' => '1',
'cache_db' => '',
'cache_db_expires' => '0',
'cache_db_session' => '',
'cache_db_session_lifetime' => '',
'cache_default' => '1',
'cache_expires' => '0',
'cache_format' => '0',
'cache_handler' => 'xPDO\\Cache\\xPDOFileCache',
'cache_key' => 'default',
'cache_lang_js' => '1',
'cache_lexicon_topics' => '1',
'cache_noncore_lexicon_topics' => '1',
'cache_path' => '/home4/silksto1/public_html/core/cache/',
'cache_resource' => '1',
'cache_resource_clear_partial' => '',
'cache_resource_expires' => '0',
'cache_scripts' => '1',
'cache_system_settings' => true,
'cache_system_settings_key' => 'system_settings',
'charset' => 'utf8',
'clear_cache_refresh_trees' => '',
'compress_css' => '1',
'compress_js' => '1',
'confirm_navigation' => '1',
'connection_mutable' => true,
'connections' =>
array (
0 =>
array (
'dsn' => 'mysql:host=localhost;dbname=silksto1_silkstory2;charset=utf8',
'username' => 'silksto1_silkstory2',
'password' => '!Kx9TV5Gbwyp',
'options' =>
array (
'connection_mutable' => true,
),
'driverOptions' =>
array (
3 => 0,
),
),
),
'connector_url' => '/connectors/index.php',
'connectors_path' => '/home4/silksto1/public_html/connectors/',
'connectors_url' => '/connectors/',
'container_suffix' => '/',
'context_tree_sort' => '1',
'context_tree_sortby' => 'rank',
'context_tree_sortdir' => 'ASC',
'core_path' => '/home4/silksto1/public_html/core/',
'cultureKey' => 'en',
'date_timezone' => '',
'dbname' => 'silksto1_silkstory2',
'dbtype' => 'mysql',
'debug' => '',
'default_content_type' => '1',
'default_context' => 'web',
'default_duplicate_publish_option' => 'preserve',
'default_media_source' => '1',
'default_media_source_type' => 'MODX\\Revolution\\Sources\\modFileMediaSource',
'default_per_page' => '20',
'default_template' => '2',
'default_username' => '(anonymous)',
'driverOptions' =>
array (
3 => 0,
),
'dsn' => 'mysql:host=localhost;dbname=silksto1_silkstory2;charset=utf8',
'emailsender' => 'sunny.uy@gmail.com',
'enable_dragdrop' => '1',
'enable_gravatar' => '',
'enable_template_picker_in_tree' => '1',
'error_handler_class' => 'MODX\\Revolution\\Error\\modErrorHandler',
'error_log_filename' => 'error.log',
'error_log_filepath' => '',
'error_page' => '1',
'failed_login_attempts' => '5',
'feed_modx_news' => 'https://feeds.feedburner.com/modx-announce',
'feed_modx_news_enabled' => '1',
'feed_modx_security' => 'https://forums.modx.com/board.xml?board=294',
'feed_modx_security_enabled' => '1',
'form_customization_use_all_groups' => '',
'forward_merge_excludes' => 'type,published,class_key',
'friendly_alias_lowercase_only' => '1',
'friendly_alias_max_length' => '0',
'friendly_alias_realtime' => '1',
'friendly_alias_restrict_chars' => 'pattern',
'friendly_alias_restrict_chars_pattern' => '/[\\0\\x0B\\t\\n\\r\\f\\a&=+%#<>"~:`@\\?\\[\\]\\{\\}\\|\\^\'\\\\]/',
'friendly_alias_strip_element_tags' => '1',
'friendly_alias_translit' => 'none',
'friendly_alias_translit_class' => 'translit.modTransliterate',
'friendly_alias_translit_class_path' => '/home4/silksto1/public_html/core/components/',
'friendly_alias_trim_chars' => '/.-_',
'friendly_alias_word_delimiter' => '-',
'friendly_alias_word_delimiters' => '-_',
'friendly_urls' => '1',
'friendly_urls_strict' => '',
'global_duplicate_uri_check' => '',
'hidemenu_default' => '',
'host' => 'localhost',
'http_host' => 'silkstory.net',
'https_port' => 443,
'hydrate_adhoc_fields' => true,
'hydrate_fields' => true,
'hydrate_related_objects' => true,
'inline_help' => '1',
'link_tag_scheme' => '-1',
'load_deprecated_global_class_aliases' => true,
'locale' => '',
'lock_ttl' => '360',
'log_deprecated' => '1',
'log_level' => '1',
'log_snippet_not_found' => '1',
'log_target' => 'FILE',
'login_background_image' => '',
'login_help_button' => '',
'login_logo' => '',
'mail_charset' => 'UTF-8',
'mail_encoding' => '8bit',
'mail_smtp_auth' => '',
'mail_smtp_autotls' => '1',
'mail_smtp_helo' => '',
'mail_smtp_hosts' => 'localhost',
'mail_smtp_keepalive' => '',
'mail_smtp_pass' => '',
'mail_smtp_port' => '587',
'mail_smtp_secure' => '',
'mail_smtp_single_to' => '',
'mail_smtp_timeout' => '10',
'mail_smtp_user' => '',
'mail_use_smtp' => '',
'main_nav_parent' => 'topnav',
'manager_date_format' => 'Y-m-d',
'manager_direction' => 'ltr',
'manager_favicon_url' => 'favicon.ico',
'manager_login_url_alternate' => '',
'manager_logo' => '',
'manager_path' => '/home4/silksto1/public_html/manager/',
'manager_theme' => 'default',
'manager_time_format' => 'H:i',
'manager_tooltip_delay' => '2300',
'manager_tooltip_enable' => '1',
'manager_url' => '/manager/',
'manager_use_fullname' => '',
'manager_week_start' => '0',
'mgr_source_icon' => 'icon-folder-open-o',
'mgr_tree_icon_context' => 'tree-context',
'modx_browser_default_sort' => 'name',
'modx_browser_default_viewmode' => 'grid',
'modx_browser_tree_hide_files' => '1',
'modx_browser_tree_hide_tooltips' => '1',
'modx_charset' => 'UTF-8',
'parser_recurse_uncacheable' => '1',
'password' => '!Kx9TV5Gbwyp',
'password_generated_length' => '10',
'password_min_length' => '8',
'passwordless_activated' => '',
'passwordless_expiration' => '3600',
'phpthumb_allow_src_above_docroot' => '',
'phpthumb_cache_maxage' => '30',
'phpthumb_cache_maxfiles' => '10000',
'phpthumb_cache_maxsize' => '100',
'phpthumb_cache_source_enabled' => '',
'phpthumb_document_root' => '',
'phpthumb_error_bgcolor' => 'CCCCFF',
'phpthumb_error_fontsize' => '1',
'phpthumb_error_textcolor' => 'FF0000',
'phpthumb_far' => 'C',
'phpthumb_imagemagick_path' => '',
'phpthumb_nohotlink_enabled' => '1',
'phpthumb_nohotlink_erase_image' => '1',
'phpthumb_nohotlink_text_message' => 'Off-server thumbnailing is not allowed',
'phpthumb_nohotlink_valid_domains' => 'www.silkstory.net',
'phpthumb_nooffsitelink_enabled' => '',
'phpthumb_nooffsitelink_erase_image' => '1',
'phpthumb_nooffsitelink_require_refer' => '',
'phpthumb_nooffsitelink_text_message' => 'Off-server linking is not allowed',
'phpthumb_nooffsitelink_valid_domains' => 'www.silkstory.net',
'phpthumb_nooffsitelink_watermark_src' => '',
'phpthumb_zoomcrop' => '0',
'preserve_menuindex' => '',
'principal_targets' => 'MODX\\Revolution\\modAccessContext,MODX\\Revolution\\modAccessResourceGroup,MODX\\Revolution\\modAccessCategory,MODX\\Revolution\\Sources\\modAccessMediaSource,MODX\\Revolution\\modAccessNamespace',
'processors_path' => '/home4/silksto1/public_html/core/src/Revolution/Processors/',
'proxy_auth_type' => 'BASIC',
'proxy_host' => '',
'proxy_password' => '',
'proxy_port' => '',
'proxy_username' => '',
'publish_default' => '',
'quick_search_in_content' => '1',
'quick_search_result_max' => '10',
'request_controller' => 'index.php',
'request_method_strict' => '',
'request_param_alias' => 'q',
'request_param_id' => 'id',
'resource_static_allow_absolute' => '0',
'resource_static_path' => '/home4/silksto1/public_html/assets/',
'resource_tree_node_name' => 'pagetitle',
'resource_tree_node_name_fallback' => 'alias',
'resource_tree_node_tooltip' => '',
'richtext_default' => '1',
'search_default' => '1',
'send_poweredby_header' => '',
'server_offset_time' => '0',
'server_port' => '443',
'session_cookie_domain' => '',
'session_cookie_httponly' => '1',
'session_cookie_lifetime' => '604800',
'session_cookie_path' => '',
'session_cookie_samesite' => '',
'session_cookie_secure' => '',
'session_gc_maxlifetime' => '604800',
'session_handler_class' => 'MODX\\Revolution\\modSessionHandler',
'session_name' => '',
'set_header' => '1',
'settings_distro' => 'traditional',
'settings_version' => '3.0.3-pl',
'show_tv_categories_header' => '1',
'site_name' => 'MODX Revolution',
'site_start' => '2',
'site_status' => '1',
'site_unavailable_message' => '[[%site_unavailable_message]]',
'site_unavailable_page' => '0',
'site_url' => 'https://www.silkstory.net/en/',
'static_elements_automate_chunks' => '',
'static_elements_automate_plugins' => '',
'static_elements_automate_snippets' => '',
'static_elements_automate_templates' => '',
'static_elements_automate_tvs' => '',
'static_elements_basepath' => '',
'static_elements_default_category' => '0',
'static_elements_default_mediasource' => '0',
'static_elements_html_extension' => '.tpl',
'symlink_merge_fields' => '1',
'syncsite_default' => '1',
'table_prefix' => 'modx_',
'topmenu_show_descriptions' => '1',
'tree_default_sort' => 'menuindex',
'tree_root_id' => '0',
'tvs_below_content' => '',
'unauthorized_page' => '1',
'upload_file_exists' => '1',
'upload_files' => 'txt,html,htm,xml,js,js.map,css,scss,less,css.map,zip,gz,rar,z,tgz,tar,mp3,mp4,aac,wav,au,wmv,avi,mpg,mpeg,pdf,doc,docx,xls,xlsx,ppt,pptx,jpg,jpeg,png,tiff,svg,svgz,gif,psd,ico,bmp,webp,odt,ods,odp,odb,odg,odf,md,ttf,woff,woff2,eot',
'upload_images' => 'jpg,jpeg,png,gif,psd,ico,bmp,tiff,svg,svgz,webp',
'upload_maxsize' => '33554432',
'upload_media' => 'mp3,wav,au,wmv,avi,mpg,mpeg',
'upload_translit' => '1',
'url_scheme' => 'https://',
'use_alias_path' => '',
'use_context_resource_table' => '1',
'use_editor' => '1',
'use_frozen_parent_uris' => '',
'use_multibyte' => '1',
'use_weblink_target' => '',
'user_nav_parent' => 'usernav',
'username' => 'silksto1_silkstory2',
'validate_on_save' => true,
'validator_class' => 'MODX\\Revolution\\Validation\\modValidator',
'welcome_action' => 'welcome',
'welcome_namespace' => 'core',
'welcome_screen' => '',
'welcome_screen_url' => '//misc.modx.com/revolution/welcome.30.html ',
'which_editor' => '',
'which_element_editor' => '',
'xhtml_urls' => '1',
),
'driver' =>
xPDO\Om\mysql\xPDODriver::__set_state(array(
'quoteChar' => '\'',
'escapeOpenChar' => '`',
'escapeCloseChar' => '`',
'_currentTimestamps' =>
array (
0 => 'CURRENT_TIMESTAMP',
1 => 'CURRENT_TIMESTAMP()',
2 => 'NOW()',
3 => 'LOCALTIME',
4 => 'LOCALTIME()',
5 => 'LOCALTIMESTAMP',
6 => 'LOCALTIMESTAMP()',
7 => 'SYSDATE()',
),
'_currentDates' =>
array (
0 => 'CURDATE()',
1 => 'CURRENT_DATE',
2 => 'CURRENT_DATE()',
),
'_currentTimes' =>
array (
0 => 'CURTIME()',
1 => 'CURRENT_TIME',
2 => 'CURRENT_TIME()',
),
'xpdo' => NULL,
'dbtypes' =>
array (
'integer' =>
array (
0 => '/INT/i',
),
'boolean' =>
array (
0 => '/^BOOL/i',
),
'float' =>
array (
0 => '/^DEC/i',
1 => '/^NUMERIC$/i',
2 => '/^FLOAT$/i',
3 => '/^DOUBLE/i',
4 => '/^REAL/i',
),
'string' =>
array (
0 => '/CHAR/i',
1 => '/TEXT/i',
2 => '/^ENUM$/i',
3 => '/^SET$/i',
4 => '/^TIME$/i',
5 => '/^YEAR$/i',
),
'timestamp' =>
array (
0 => '/^TIMESTAMP$/i',
),
'datetime' =>
array (
0 => '/^DATETIME$/i',
),
'date' =>
array (
0 => '/^DATE$/i',
),
'binary' =>
array (
0 => '/BINARY/i',
1 => '/BLOB/i',
),
'bit' =>
array (
0 => '/^BIT$/i',
),
),
)),
'map' =>
xPDO\xPDOMap::__set_state(array(
'map' =>
array (
'MODX\\Revolution\\modContext' =>
array (
'package' => 'MODX\\Revolution\\',
'version' => '3.0',
'table' => 'context',
'extends' => 'MODX\\Revolution\\modAccessibleObject',
'tableMeta' =>
array (
'engine' => 'InnoDB',
),
'fields' =>
array (
'key' => NULL,
'name' => NULL,
'description' => NULL,
'rank' => 0,
),
'fieldMeta' =>
array (
'key' =>
array (
'dbtype' => 'varchar',
'precision' => '100',
'phptype' => 'string',
'null' => false,
'index' => 'pk',
),
'name' =>
array (
'dbtype' => 'varchar',
'precision' => '191',
'phptype' => 'string',
'index' => 'index',
),
'description' =>
array (
'dbtype' => 'tinytext',
'phptype' => 'string',
),
'rank' =>
array (
'dbtype' => 'int',
'precision' => '11',
'phptype' => 'integer',
'null' => false,
'default' => 0,
'index' => 'index',
),
),
'indexes' =>
array (
'PRIMARY' =>
array (
'alias' => 'PRIMARY',
'primary' => true,
'unique' => true,
'type' => 'BTREE',
'columns' =>
array (
'key' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
'name' =>
array (
'alias' => 'name',
'primary' => false,
'unique' => false,
'type' => 'BTREE',
'columns' =>
array (
'name' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
'rank' =>
array (
'alias' => 'rank',
'primary' => false,
'unique' => false,
'type' => 'BTREE',
'columns' =>
array (
'rank' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
),
'composites' =>
array (
'ContextResources' =>
array (
'class' => 'MODX\\Revolution\\modContextResource',
'local' => 'key',
'foreign' => 'context_key',
'cardinality' => 'many',
'owner' => 'local',
),
'ContextSettings' =>
array (
'class' => 'MODX\\Revolution\\modContextSetting',
'local' => 'key',
'foreign' => 'context_key',
'cardinality' => 'many',
'owner' => 'local',
),
'SourceElements' =>
array (
'class' => 'MODX\\Revolution\\Sources\\modMediaSourceElement',
'local' => 'key',
'foreign' => 'context_key',
'cardinality' => 'many',
'owner' => 'local',
),
'Acls' =>
array (
'class' => 'MODX\\Revolution\\modAccessContext',
'local' => 'key',
'foreign' => 'target',
'owner' => 'local',
'cardinality' => 'many',
),
),
'validation' =>
array (
'rules' =>
array (
'key' =>
array (
'key' =>
array (
'type' => 'preg_match',
'rule' => '/^[a-zA-Z\\x7f-\\xff][a-zA-Z0-9\\x2d-\\x2f\\x7f-\\xff]*$/',
'message' => 'context_err_ns_key',
),
),
),
),
),
'xPDO\\Om\\xPDOObject' =>
array (
'table' => NULL,
'tableMeta' =>
array (
'engine' => 'InnoDB',
),
),
'MODX\\Revolution\\modAccessibleObject' =>
array (
'package' => 'MODX\\Revolution\\',
'version' => '3.0',
'extends' => 'xPDO\\Om\\xPDOObject',
'tableMeta' =>
array (
'engine' => 'InnoDB',
),
'fields' =>
array (
),
'fieldMeta' =>
array (
),
),
'MODX\\Revolution\\modExtensionPackage' =>
array (
'package' => 'MODX\\Revolution\\',
'version' => '3.0',
'table' => 'extension_packages',
'extends' => 'xPDO\\Om\\xPDOSimpleObject',
'tableMeta' =>
array (
'engine' => 'InnoDB',
),
'fields' =>
array (
'namespace' => 'core',
'name' => 'core',
'path' => NULL,
'table_prefix' => '',
'service_class' => '',
'service_name' => '',
'created_at' => NULL,
'updated_at' => NULL,
),
'fieldMeta' =>
array (
'namespace' =>
array (
'dbtype' => 'varchar',
'precision' => '40',
'phptype' => 'string',
'null' => false,
'default' => 'core',
'index' => 'index',
),
'name' =>
array (
'dbtype' => 'varchar',
'precision' => '100',
'phptype' => 'string',
'null' => false,
'default' => 'core',
'index' => 'index',
),
'path' =>
array (
'dbtype' => 'text',
'phptype' => 'string',
'null' => true,
),
'table_prefix' =>
array (
'dbtype' => 'varchar',
'precision' => '255',
'phptype' => 'string',
'null' => false,
'default' => '',
),
'service_class' =>
array (
'dbtype' => 'varchar',
'precision' => '255',
'phptype' => 'string',
'null' => false,
'default' => '',
),
'service_name' =>
array (
'dbtype' => 'varchar',
'precision' => '255',
'phptype' => 'string',
'null' => false,
'default' => '',
),
'created_at' =>
array (
'dbtype' => 'datetime',
'phptype' => 'datetime',
'null' => true,
),
'updated_at' =>
array (
'dbtype' => 'datetime',
'phptype' => 'datetime',
'null' => true,
),
),
'indexes' =>
array (
'namespace' =>
array (
'alias' => 'namespace',
'primary' => false,
'unique' => false,
'type' => 'BTREE',
'columns' =>
array (
'namespace' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
'name' =>
array (
'alias' => 'name',
'primary' => false,
'unique' => false,
'type' => 'BTREE',
'columns' =>
array (
'name' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
),
'aggregates' =>
array (
'Namespace' =>
array (
'class' => 'MODX\\Revolution\\modNamespace',
'local' => 'namespace',
'foreign' => 'name',
'cardinality' => 'one',
'owner' => 'foreign',
),
),
),
'MODX\\Revolution\\modNamespace' =>
array (
'package' => 'MODX\\Revolution\\',
'version' => '3.0',
'table' => 'namespaces',
'extends' => 'MODX\\Revolution\\modAccessibleObject',
'tableMeta' =>
array (
'engine' => 'InnoDB',
),
'fields' =>
array (
'name' => '',
'path' => '',
'assets_path' => '',
),
'fieldMeta' =>
array (
'name' =>
array (
'dbtype' => 'varchar',
'precision' => '40',
'phptype' => 'string',
'null' => false,
'default' => '',
'index' => 'pk',
),
'path' =>
array (
'dbtype' => 'text',
'phptype' => 'string',
'default' => '',
),
'assets_path' =>
array (
'dbtype' => 'text',
'phptype' => 'string',
'default' => '',
),
),
'indexes' =>
array (
'PRIMARY' =>
array (
'alias' => 'PRIMARY',
'primary' => true,
'unique' => true,
'type' => 'BTREE',
'columns' =>
array (
'name' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
),
'composites' =>
array (
'LexiconEntries' =>
array (
'class' => 'MODX\\Revolution\\modLexiconEntry',
'local' => 'name',
'foreign' => 'namespace',
'cardinality' => 'many',
'owner' => 'local',
),
'SystemSettings' =>
array (
'class' => 'MODX\\Revolution\\modSystemSetting',
'local' => 'name',
'foreign' => 'namespace',
'cardinality' => 'many',
'owner' => 'local',
),
'ContextSettings' =>
array (
'class' => 'MODX\\Revolution\\modContextSetting',
'local' => 'name',
'foreign' => 'namespace',
'cardinality' => 'many',
'owner' => 'local',
),
'UserSettings' =>
array (
'class' => 'MODX\\Revolution\\modUserSetting',
'local' => 'name',
'foreign' => 'namespace',
'cardinality' => 'many',
'owner' => 'local',
),
'ExtensionPackages' =>
array (
'class' => 'MODX\\Revolution\\modExtensionPackage',
'local' => 'name',
'foreign' => 'namespace',
'cardinality' => 'many',
'owner' => 'local',
),
'Acls' =>
array (
'class' => 'MODX\\Revolution\\modAccessNamespace',
'local' => 'name',
'foreign' => 'target',
'owner' => 'local',
'cardinality' => 'many',
),
),
),
'xPDO\\Om\\xPDOSimpleObject' =>
array (
'table' => NULL,
'fields' =>
array (
'id' => NULL,
),
'fieldMeta' =>
array (
'id' =>
array (
'dbtype' => 'INTEGER',
'phptype' => 'integer',
'null' => false,
'index' => 'pk',
'generated' => 'native',
'attributes' => 'unsigned',
),
),
'indexes' =>
array (
'PRIMARY' =>
array (
'alias' => 'PRIMARY',
'primary' => true,
'unique' => true,
'type' => 'BTREE',
'columns' =>
array (
'id' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
),
),
'MODX\\Revolution\\modSession' =>
array (
'package' => 'MODX\\Revolution\\',
'version' => '3.0',
'table' => 'session',
'extends' => 'xPDO\\Om\\xPDOObject',
'tableMeta' =>
array (
'engine' => 'InnoDB',
),
'fields' =>
array (
'id' => '',
'access' => NULL,
'data' => NULL,
),
'fieldMeta' =>
array (
'id' =>
array (
'dbtype' => 'varchar',
'precision' => '191',
'phptype' => 'string',
'null' => false,
'index' => 'pk',
'default' => '',
),
'access' =>
array (
'dbtype' => 'int',
'precision' => '20',
'phptype' => 'timestamp',
'null' => false,
'attributes' => 'unsigned',
),
'data' =>
array (
'dbtype' => 'mediumtext',
'phptype' => 'string',
),
),
'indexes' =>
array (
'PRIMARY' =>
array (
'alias' => 'PRIMARY',
'primary' => true,
'unique' => true,
'type' => 'BTREE',
'columns' =>
array (
'id' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
'access' =>
array (
'alias' => 'access',
'primary' => false,
'unique' => false,
'type' => 'BTREE',
'columns' =>
array (
'access' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
),
'validation' =>
array (
'rules' =>
array (
'id' =>
array (
'invalid' =>
array (
'type' => 'preg_match',
'rule' => '/^[0-9a-zA-Z,-]{22,191}$/',
'message' => 'session_err_invalid_id',
),
),
),
),
),
'MODX\\Revolution\\modUser' =>
array (
'package' => 'MODX\\Revolution\\',
'version' => '3.0',
'table' => 'users',
'extends' => 'MODX\\Revolution\\modPrincipal',
'tableMeta' =>
array (
'engine' => 'InnoDB',
),
'fields' =>
array (
'username' => '',
'password' => '',
'cachepwd' => '',
'class_key' => 'MODX\\Revolution\\modUser',
'active' => 1,
'remote_key' => NULL,
'remote_data' => NULL,
'hash_class' => 'MODX\\Revolution\\Hashing\\modNative',
'salt' => '',
'primary_group' => 0,
'session_stale' => NULL,
'sudo' => 0,
'createdon' => 0,
),
'fieldMeta' =>
array (
'username' =>
array (
'dbtype' => 'varchar',
'precision' => '100',
'phptype' => 'string',
'null' => false,
'default' => '',
'index' => 'unique',
),
'password' =>
array (
'dbtype' => 'varchar',
'precision' => '255',
'phptype' => 'string',
'null' => false,
'default' => '',
),
'cachepwd' =>
array (
'dbtype' => 'varchar',
'precision' => '255',
'phptype' => 'string',
'null' => false,
'default' => '',
),
'class_key' =>
array (
'dbtype' => 'varchar',
'precision' => '100',
'phptype' => 'string',
'null' => false,
'default' => 'MODX\\Revolution\\modUser',
'index' => 'index',
),
'active' =>
array (
'dbtype' => 'tinyint',
'precision' => '1',
'phptype' => 'boolean',
'attributes' => 'unsigned',
'null' => false,
'default' => 1,
),
'remote_key' =>
array (
'dbtype' => 'varchar',
'precision' => '191',
'phptype' => 'string',
'null' => true,
'index' => 'index',
),
'remote_data' =>
array (
'dbtype' => 'text',
'phptype' => 'json',
'null' => true,
),
'hash_class' =>
array (
'dbtype' => 'varchar',
'precision' => '100',
'phptype' => 'string',
'null' => false,
'default' => 'MODX\\Revolution\\Hashing\\modNative',
),
'salt' =>
array (
'dbtype' => 'varchar',
'precision' => '100',
'phptype' => 'string',
'null' => false,
'default' => '',
),
'primary_group' =>
array (
'dbtype' => 'int',
'precision' => '10',
'phptype' => 'integer',
'attributes' => 'unsigned',
'null' => false,
'default' => 0,
'index' => 'index',
),
'session_stale' =>
array (
'dbtype' => 'text',
'phptype' => 'array',
'null' => true,
),
'sudo' =>
array (
'dbtype' => 'tinyint',
'precision' => '1',
'phptype' => 'boolean',
'attributes' => 'unsigned',
'null' => false,
'default' => 0,
),
'createdon' =>
array (
'dbtype' => 'int',
'precision' => '20',
'phptype' => 'timestamp',
'null' => false,
'default' => 0,
),
),
'indexes' =>
array (
'username' =>
array (
'alias' => 'username',
'primary' => false,
'unique' => true,
'type' => 'BTREE',
'columns' =>
array (
'username' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
'class_key' =>
array (
'alias' => 'class_key',
'primary' => false,
'unique' => false,
'type' => 'BTREE',
'columns' =>
array (
'class_key' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
'remote_key' =>
array (
'alias' => 'remote_key',
'primary' => false,
'unique' => false,
'type' => 'BTREE',
'columns' =>
array (
'remote_key' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
'primary_group' =>
array (
'alias' => 'primary_group',
'primary' => false,
'unique' => false,
'type' => 'BTREE',
'columns' =>
array (
'primary_group' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
),
'composites' =>
array (
'Profile' =>
array (
'class' => 'MODX\\Revolution\\modUserProfile',
'local' => 'id',
'foreign' => 'internalKey',
'cardinality' => 'one',
'owner' => 'local',
),
'UserSettings' =>
array (
'class' => 'MODX\\Revolution\\modUserSetting',
'local' => 'id',
'foreign' => 'user',
'cardinality' => 'many',
'owner' => 'local',
),
'UserGroupMembers' =>
array (
'class' => 'MODX\\Revolution\\modUserGroupMember',
'local' => 'id',
'foreign' => 'member',
'cardinality' => 'many',
'owner' => 'local',
),
'ActiveUsers' =>
array (
'class' => 'MODX\\Revolution\\modActiveUser',
'local' => 'id',
'foreign' => 'internalKey',
'cardinality' => 'many',
'owner' => 'local',
),
'DashboardWidgets' =>
array (
'class' => 'MODX\\Revolution\\modDashboardWidgetPlacement',
'local' => 'id',
'foreign' => 'user',
'cardinality' => 'many',
'owner' => 'local',
),
),
'aggregates' =>
array (
'CreatedResources' =>
array (
'class' => 'MODX\\Revolution\\modResource',
'local' => 'id',
'foreign' => 'createdby',
'cardinality' => 'many',
'owner' => 'local',
),
'EditedResources' =>
array (
'class' => 'MODX\\Revolution\\modResource',
'local' => 'id',
'foreign' => 'editedby',
'cardinality' => 'many',
'owner' => 'local',
),
'DeletedResources' =>
array (
'class' => 'MODX\\Revolution\\modResource',
'local' => 'id',
'foreign' => 'deletedby',
'cardinality' => 'many',
'owner' => 'local',
),
'PublishedResources' =>
array (
'class' => 'MODX\\Revolution\\modResource',
'local' => 'id',
'foreign' => 'publishedby',
'cardinality' => 'many',
'owner' => 'local',
),
'SentMessages' =>
array (
'class' => 'MODX\\Revolution\\modUserMessage',
'local' => 'id',
'foreign' => 'sender',
'cardinality' => 'many',
'owner' => 'local',
),
'ReceivedMessages' =>
array (
'class' => 'MODX\\Revolution\\modUserMessage',
'local' => 'id',
'foreign' => 'recipient',
'cardinality' => 'many',
'owner' => 'local',
),
'PrimaryGroup' =>
array (
'class' => 'MODX\\Revolution\\modUserGroup',
'local' => 'primary_group',
'foreign' => 'id',
'cardinality' => 'one',
'owner' => 'foreign',
),
),
),
'MODX\\Revolution\\modPrincipal' =>
array (
'package' => 'MODX\\Revolution\\',
'version' => '3.0',
'extends' => 'xPDO\\Om\\xPDOSimpleObject',
'tableMeta' =>
array (
'engine' => 'InnoDB',
),
'fields' =>
array (
),
'fieldMeta' =>
array (
),
'composites' =>
array (
'Acls' =>
array (
'class' => 'modAccess',
'local' => 'id',
'foreign' => 'principal',
'cardinality' => 'many',
'owner' => 'local',
),
),
),
'MODX\\Revolution\\modPlugin' =>
array (
'package' => 'MODX\\Revolution\\',
'version' => '3.0',
'table' => 'site_plugins',
'extends' => 'MODX\\Revolution\\modScript',
'tableMeta' =>
array (
'engine' => 'InnoDB',
),
'fields' =>
array (
'cache_type' => 0,
'plugincode' => '',
'locked' => 0,
'properties' => NULL,
'disabled' => 0,
'moduleguid' => '',
'static' => 0,
'static_file' => '',
),
'fieldMeta' =>
array (
'cache_type' =>
array (
'dbtype' => 'tinyint',
'precision' => '1',
'phptype' => 'integer',
'null' => false,
'default' => 0,
),
'plugincode' =>
array (
'dbtype' => 'mediumtext',
'phptype' => 'string',
'null' => false,
'default' => '',
),
'locked' =>
array (
'dbtype' => 'tinyint',
'precision' => '1',
'attributes' => 'unsigned',
'phptype' => 'boolean',
'null' => false,
'default' => 0,
'index' => 'index',
),
'properties' =>
array (
'dbtype' => 'text',
'phptype' => 'array',
'null' => true,
),
'disabled' =>
array (
'dbtype' => 'tinyint',
'precision' => '1',
'attributes' => 'unsigned',
'phptype' => 'boolean',
'null' => false,
'default' => 0,
'index' => 'index',
),
'moduleguid' =>
array (
'dbtype' => 'varchar',
'precision' => '32',
'phptype' => 'string',
'null' => false,
'default' => '',
'index' => 'fk',
),
'static' =>
array (
'dbtype' => 'tinyint',
'precision' => '1',
'attributes' => 'unsigned',
'phptype' => 'boolean',
'null' => false,
'default' => 0,
'index' => 'index',
),
'static_file' =>
array (
'dbtype' => 'varchar',
'precision' => '255',
'phptype' => 'string',
'null' => false,
'default' => '',
),
),
'fieldAliases' =>
array (
'content' => 'plugincode',
),
'indexes' =>
array (
'locked' =>
array (
'alias' => 'locked',
'primary' => false,
'unique' => false,
'type' => 'BTREE',
'columns' =>
array (
'locked' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
'disabled' =>
array (
'alias' => 'disabled',
'primary' => false,
'unique' => false,
'type' => 'BTREE',
'columns' =>
array (
'disabled' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
'static' =>
array (
'alias' => 'static',
'primary' => false,
'unique' => false,
'type' => 'BTREE',
'columns' =>
array (
'static' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
),
'composites' =>
array (
'PropertySets' =>
array (
'class' => 'MODX\\Revolution\\modElementPropertySet',
'local' => 'id',
'foreign' => 'element',
'owner' => 'local',
'cardinality' => 'many',
'criteria' =>
array (
'foreign' =>
array (
'element_class' => 'MODX\\Revolution\\modPlugin',
),
),
),
'PluginEvents' =>
array (
'class' => 'MODX\\Revolution\\modPluginEvent',
'local' => 'id',
'foreign' => 'pluginid',
'cardinality' => 'many',
'owner' => 'local',
),
),
'validation' =>
array (
'rules' =>
array (
'name' =>
array (
'invalid' =>
array (
'type' => 'preg_match',
'rule' => '/^(?!\\s)[a-zA-Z0-9\\x23-\\x2f\\x3a\\x5b-\\x5d\\x7f-\\xff-_\\s]+(?<!\\s)$/',
'message' => 'plugin_err_invalid_name',
),
),
),
),
),
'MODX\\Revolution\\modAccessibleSimpleObject' =>
array (
'package' => 'MODX\\Revolution\\',
'version' => '3.0',
'extends' => 'MODX\\Revolution\\modAccessibleObject',
'tableMeta' =>
array (
'engine' => 'InnoDB',
),
'fields' =>
array (
'id' => NULL,
),
'fieldMeta' =>
array (
'id' =>
array (
'dbtype' => 'int',
'precision' => '10',
'attributes' => 'unsigned',
'phptype' => 'integer',
'null' => false,
'index' => 'pk',
'generated' => 'native',
),
),
'indexes' =>
array (
'PRIMARY' =>
array (
'alias' => 'PRIMARY',
'primary' => true,
'unique' => true,
'type' => 'BTREE',
'columns' =>
array (
'id' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
),
),
'MODX\\Revolution\\modElement' =>
array (
'package' => 'MODX\\Revolution\\',
'version' => '3.0',
'table' => 'site_element',
'extends' => 'MODX\\Revolution\\modAccessibleSimpleObject',
'tableMeta' =>
array (
'engine' => 'InnoDB',
),
'fields' =>
array (
'source' => 0,
'property_preprocess' => 0,
),
'fieldMeta' =>
array (
'source' =>
array (
'dbtype' => 'int',
'attributes' => 'unsigned',
'phptype' => 'integer',
'null' => false,
'default' => 0,
'index' => 'fk',
),
'property_preprocess' =>
array (
'dbtype' => 'tinyint',
'precision' => '1',
'attributes' => 'unsigned',
'phptype' => 'boolean',
'null' => false,
'default' => 0,
),
),
'composites' =>
array (
'Acls' =>
array (
'class' => 'MODX\\Revolution\\modAccessElement',
'local' => 'id',
'foreign' => 'target',
'owner' => 'local',
'cardinality' => 'many',
),
),
'aggregates' =>
array (
'CategoryAcls' =>
array (
'class' => 'MODX\\Revolution\\modAccessCategory',
'local' => 'category',
'foreign' => 'target',
'owner' => 'local',
'cardinality' => 'many',
),
'Source' =>
array (
'class' => 'MODX\\Revolution\\Sources\\modMediaSource',
'local' => 'source',
'foreign' => 'id',
'owner' => 'foreign',
'cardinality' => 'one',
),
),
),
'MODX\\Revolution\\modScript' =>
array (
'package' => 'MODX\\Revolution\\',
'version' => '3.0',
'table' => 'site_script',
'extends' => 'MODX\\Revolution\\modElement',
'tableMeta' =>
array (
'engine' => 'InnoDB',
),
'fields' =>
array (
'name' => '',
'description' => '',
'editor_type' => 0,
'category' => 0,
),
'fieldMeta' =>
array (
'name' =>
array (
'dbtype' => 'varchar',
'precision' => '50',
'phptype' => 'string',
'null' => false,
'default' => '',
'index' => 'unique',
),
'description' =>
array (
'dbtype' => 'varchar',
'precision' => '255',
'phptype' => 'string',
'null' => false,
'default' => '',
),
'editor_type' =>
array (
'dbtype' => 'int',
'precision' => '11',
'phptype' => 'integer',
'null' => false,
'default' => 0,
),
'category' =>
array (
'dbtype' => 'int',
'precision' => '11',
'phptype' => 'integer',
'null' => false,
'default' => 0,
'index' => 'fk',
),
),
'indexes' =>
array (
'name' =>
array (
'alias' => 'name',
'primary' => false,
'unique' => true,
'type' => 'BTREE',
'columns' =>
array (
'name' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
'category' =>
array (
'alias' => 'category',
'primary' => false,
'unique' => false,
'type' => 'BTREE',
'columns' =>
array (
'category' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
),
'aggregates' =>
array (
'Category' =>
array (
'class' => 'MODX\\Revolution\\modCategory',
'key' => 'id',
'local' => 'category',
'foreign' => 'id',
'cardinality' => 'one',
'owner' => 'foreign',
),
),
),
'MODX\\Revolution\\modAccessContext' =>
array (
'package' => 'MODX\\Revolution\\',
'version' => '3.0',
'table' => 'access_context',
'extends' => 'MODX\\Revolution\\modAccess',
'tableMeta' =>
array (
'engine' => 'InnoDB',
),
'fields' =>
array (
),
'fieldMeta' =>
array (
),
'aggregates' =>
array (
'Target' =>
array (
'class' => 'MODX\\Revolution\\modContext',
'local' => 'target',
'foreign' => 'key',
'owner' => 'foreign',
'cardinality' => 'one',
),
),
),
'MODX\\Revolution\\modAccessPolicy' =>
array (
'package' => 'MODX\\Revolution\\',
'version' => '3.0',
'table' => 'access_policies',
'extends' => 'xPDO\\Om\\xPDOSimpleObject',
'tableMeta' =>
array (
'engine' => 'InnoDB',
),
'fields' =>
array (
'name' => NULL,
'description' => NULL,
'parent' => 0,
'template' => 0,
'class' => '',
'data' => '{}',
'lexicon' => 'permissions',
),
'fieldMeta' =>
array (
'name' =>
array (
'dbtype' => 'varchar',
'precision' => '191',
'phptype' => 'string',
'null' => false,
'index' => 'unique',
),
'description' =>
array (
'dbtype' => 'mediumtext',
'phptype' => 'string',
),
'parent' =>
array (
'dbtype' => 'int',
'precision' => '10',
'attributes' => 'unsigned',
'phptype' => 'integer',
'null' => false,
'default' => 0,
'index' => 'index',
),
'template' =>
array (
'dbtype' => 'int',
'precision' => '10',
'attributes' => 'unsigned',
'phptype' => 'integer',
'null' => false,
'default' => 0,
'index' => 'index',
),
'class' =>
array (
'dbtype' => 'varchar',
'precision' => '191',
'phptype' => 'string',
'null' => false,
'default' => '',
'index' => 'index',
),
'data' =>
array (
'dbtype' => 'text',
'phptype' => 'json',
'default' => '{}',
),
'lexicon' =>
array (
'dbtype' => 'varchar',
'precision' => '255',
'phptype' => 'string',
'null' => false,
'default' => 'permissions',
),
),
'indexes' =>
array (
'name' =>
array (
'alias' => 'name',
'primary' => false,
'unique' => true,
'type' => 'BTREE',
'columns' =>
array (
'name' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
'parent' =>
array (
'alias' => 'parent',
'primary' => false,
'unique' => false,
'type' => 'BTREE',
'columns' =>
array (
'parent' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
'class' =>
array (
'alias' => 'class',
'primary' => false,
'unique' => false,
'type' => 'BTREE',
'columns' =>
array (
'class' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
'template' =>
array (
'alias' => 'template',
'primary' => false,
'unique' => false,
'type' => 'BTREE',
'columns' =>
array (
'template' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
),
'composites' =>
array (
'Children' =>
array (
'class' => 'MODX\\Revolution\\modAccessPolicy',
'local' => 'id',
'foreign' => 'parent',
'owner' => 'local',
'cardinality' => 'many',
),
),
'aggregates' =>
array (
'Parent' =>
array (
'class' => 'MODX\\Revolution\\modAccessPolicy',
'local' => 'parent',
'foreign' => 'id',
'owner' => 'foreign',
'cardinality' => 'one',
),
'Template' =>
array (
'class' => 'MODX\\Revolution\\modAccessPolicyTemplate',
'local' => 'template',
'foreign' => 'id',
'owner' => 'foreign',
'cardinality' => 'one',
),
),
),
'MODX\\Revolution\\modAccess' =>
array (
'package' => 'MODX\\Revolution\\',
'version' => '3.0',
'extends' => 'xPDO\\Om\\xPDOSimpleObject',
'tableMeta' =>
array (
'engine' => 'InnoDB',
),
'fields' =>
array (
'target' => '',
'principal_class' => 'MODX\\Revolution\\modPrincipal',
'principal' => 0,
'authority' => 9999,
'policy' => 0,
),
'fieldMeta' =>
array (
'target' =>
array (
'dbtype' => 'varchar',
'precision' => '100',
'phptype' => 'string',
'null' => false,
'default' => '',
'index' => 'fk',
),
'principal_class' =>
array (
'dbtype' => 'varchar',
'precision' => '100',
'phptype' => 'string',
'null' => false,
'default' => 'MODX\\Revolution\\modPrincipal',
'index' => 'index',
),
'principal' =>
array (
'dbtype' => 'int',
'precision' => '10',
'attributes' => 'unsigned',
'phptype' => 'integer',
'null' => false,
'default' => 0,
'index' => 'fk',
),
'authority' =>
array (
'dbtype' => 'int',
'precision' => '10',
'attributes' => 'unsigned',
'phptype' => 'integer',
'null' => false,
'default' => 9999,
'index' => 'index',
),
'policy' =>
array (
'dbtype' => 'int',
'precision' => '10',
'attributes' => 'unsigned',
'phptype' => 'integer',
'null' => false,
'default' => 0,
'index' => 'fk',
),
),
'indexes' =>
array (
'target' =>
array (
'alias' => 'target',
'primary' => false,
'unique' => false,
'type' => 'BTREE',
'columns' =>
array (
'target' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
'principal_class' =>
array (
'alias' => 'principal_class',
'primary' => false,
'unique' => false,
'type' => 'BTREE',
'columns' =>
array (
'principal_class' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
'principal' =>
array (
'alias' => 'principal',
'primary' => false,
'unique' => false,
'type' => 'BTREE',
'columns' =>
array (
'principal' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
'authority' =>
array (
'alias' => 'authority',
'primary' => false,
'unique' => false,
'type' => 'BTREE',
'columns' =>
array (
'authority' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
'policy' =>
array (
'alias' => 'policy',
'primary' => false,
'unique' => false,
'type' => 'BTREE',
'columns' =>
array (
'policy' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
),
'aggregates' =>
array (
'Policy' =>
array (
'class' => 'MODX\\Revolution\\modAccessPolicy',
'local' => 'policy',
'foreign' => 'id',
'owner' => 'foreign',
'cardinality' => 'one',
),
'Principal' =>
array (
'class' => 'MODX\\Revolution\\modPrincipal',
'local' => 'principal',
'foreign' => 'id',
'owner' => 'foreign',
'cardinality' => 'one',
),
'GroupPrincipal' =>
array (
'class' => 'MODX\\Revolution\\modUserGroup',
'local' => 'principal',
'foreign' => 'id',
'owner' => 'foreign',
'cardinality' => 'one',
'criteria' =>
array (
'local' =>
array (
'principal_class' => 'MODX\\Revolution\\modUserGroup',
),
),
),
'UserPrincipal' =>
array (
'class' => 'MODX\\Revolution\\modUserGroup',
'local' => 'principal',
'foreign' => 'id',
'owner' => 'foreign',
'cardinality' => 'one',
'criteria' =>
array (
'local' =>
array (
'principal_class' => 'MODX\\Revolution\\modUser',
),
),
),
'MinimumRole' =>
array (
'class' => 'MODX\\Revolution\\modUserGroupRole',
'local' => 'authority',
'foreign' => 'authority',
'owner' => 'local',
'cardinality' => 'one',
),
),
),
'MODX\\Revolution\\modUserGroupMember' =>
array (
'package' => 'MODX\\Revolution\\',
'version' => '3.0',
'table' => 'member_groups',
'extends' => 'xPDO\\Om\\xPDOSimpleObject',
'tableMeta' =>
array (
'engine' => 'InnoDB',
),
'fields' =>
array (
'user_group' => 0,
'member' => 0,
'role' => 1,
'rank' => 0,
),
'fieldMeta' =>
array (
'user_group' =>
array (
'dbtype' => 'int',
'precision' => '10',
'attributes' => 'unsigned',
'phptype' => 'integer',
'null' => false,
'default' => 0,
),
'member' =>
array (
'dbtype' => 'int',
'precision' => '10',
'attributes' => 'unsigned',
'phptype' => 'integer',
'null' => false,
'default' => 0,
),
'role' =>
array (
'dbtype' => 'int',
'precision' => '10',
'attributes' => 'unsigned',
'phptype' => 'integer',
'null' => false,
'default' => 1,
'index' => 'index',
),
'rank' =>
array (
'dbtype' => 'int',
'precision' => '10',
'attributes' => 'unsigned',
'phptype' => 'integer',
'null' => false,
'default' => 0,
'index' => 'index',
),
),
'indexes' =>
array (
'role' =>
array (
'alias' => 'role',
'primary' => false,
'unique' => false,
'type' => 'BTREE',
'columns' =>
array (
'role' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
'rank' =>
array (
'alias' => 'rank',
'primary' => false,
'unique' => false,
'type' => 'BTREE',
'columns' =>
array (
'rank' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
),
'aggregates' =>
array (
'UserGroupRole' =>
array (
'class' => 'MODX\\Revolution\\modUserGroupRole',
'local' => 'role',
'foreign' => 'id',
'cardinality' => 'one',
'owner' => 'foreign',
),
'UserGroup' =>
array (
'class' => 'MODX\\Revolution\\modUserGroup',
'local' => 'user_group',
'foreign' => 'id',
'cardinality' => 'one',
'owner' => 'foreign',
),
'User' =>
array (
'class' => 'MODX\\Revolution\\modUser',
'local' => 'member',
'foreign' => 'id',
'cardinality' => 'one',
'owner' => 'foreign',
),
),
),
'MODX\\Revolution\\modUserGroupRole' =>
array (
'package' => 'MODX\\Revolution\\',
'version' => '3.0',
'table' => 'user_group_roles',
'extends' => 'xPDO\\Om\\xPDOSimpleObject',
'tableMeta' =>
array (
'engine' => 'InnoDB',
),
'fields' =>
array (
'name' => NULL,
'description' => NULL,
'authority' => 9999,
),
'fieldMeta' =>
array (
'name' =>
array (
'dbtype' => 'varchar',
'precision' => '191',
'phptype' => 'string',
'null' => false,
'index' => 'unique',
),
'description' =>
array (
'dbtype' => 'mediumtext',
'phptype' => 'string',
),
'authority' =>
array (
'dbtype' => 'int',
'precision' => '10',
'attributes' => 'unsigned',
'phptype' => 'integer',
'null' => false,
'default' => 9999,
'index' => 'index',
),
),
'indexes' =>
array (
'name' =>
array (
'alias' => 'name',
'primary' => false,
'unique' => true,
'type' => 'BTREE',
'columns' =>
array (
'name' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
'authority' =>
array (
'alias' => 'authority',
'primary' => false,
'unique' => false,
'type' => 'BTREE',
'columns' =>
array (
'authority' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
),
'aggregates' =>
array (
'UserGroupMembers' =>
array (
'class' => 'MODX\\Revolution\\modUserGroupMember',
'local' => 'id',
'foreign' => 'role',
'cardinality' => 'many',
'owner' => 'local',
),
),
),
'MODX\\Revolution\\modAccessResourceGroup' =>
array (
'package' => 'MODX\\Revolution\\',
'version' => '3.0',
'table' => 'access_resource_groups',
'extends' => 'MODX\\Revolution\\modAccess',
'tableMeta' =>
array (
'engine' => 'InnoDB',
),
'fields' =>
array (
'context_key' => '',
),
'fieldMeta' =>
array (
'context_key' =>
array (
'dbtype' => 'varchar',
'precision' => '100',
'phptype' => 'string',
'null' => false,
'default' => '',
'index' => 'fk',
),
),
'indexes' =>
array (
'context_key' =>
array (
'alias' => 'context_key',
'primary' => false,
'unique' => false,
'type' => 'BTREE',
'columns' =>
array (
'context_key' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
'principal_class' =>
array (
'alias' => 'principal_class',
'primary' => false,
'unique' => false,
'type' => 'BTREE',
'columns' =>
array (
'principal_class' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
'target' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
'principal' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
'authority' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
),
'aggregates' =>
array (
'Target' =>
array (
'class' => 'MODX\\Revolution\\modResourceGroup',
'local' => 'target',
'foreign' => 'id',
'owner' => 'foreign',
'cardinality' => 'one',
),
'Context' =>
array (
'class' => 'MODX\\Revolution\\modContext',
'local' => 'context_key',
'foreign' => 'key',
'cardinality' => 'one',
'owner' => 'foreign',
),
),
),
'MODX\\Revolution\\modAccessCategory' =>
array (
'package' => 'MODX\\Revolution\\',
'version' => '3.0',
'table' => 'access_category',
'extends' => 'MODX\\Revolution\\modAccess',
'tableMeta' =>
array (
'engine' => 'InnoDB',
),
'fields' =>
array (
'context_key' => '',
),
'fieldMeta' =>
array (
'context_key' =>
array (
'dbtype' => 'varchar',
'precision' => '100',
'phptype' => 'string',
'null' => false,
'default' => '',
'index' => 'fk',
),
),
'indexes' =>
array (
'context_key' =>
array (
'alias' => 'context_key',
'primary' => false,
'unique' => false,
'type' => 'BTREE',
'columns' =>
array (
'context_key' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
),
'aggregates' =>
array (
'Target' =>
array (
'class' => 'MODX\\Revolution\\modCategory',
'local' => 'target',
'foreign' => 'id',
'owner' => 'foreign',
'cardinality' => 'one',
),
'Context' =>
array (
'class' => 'MODX\\Revolution\\modContext',
'local' => 'context_key',
'foreign' => 'key',
'cardinality' => 'one',
'owner' => 'foreign',
),
),
),
'MODX\\Revolution\\Sources\\modAccessMediaSource' =>
array (
'package' => 'MODX\\Revolution\\Sources',
'version' => '3.0',
'table' => 'access_media_source',
'extends' => 'MODX\\Revolution\\modAccess',
'tableMeta' =>
array (
'engine' => 'InnoDB',
),
'fields' =>
array (
'context_key' => '',
),
'fieldMeta' =>
array (
'context_key' =>
array (
'dbtype' => 'varchar',
'precision' => '100',
'phptype' => 'string',
'null' => false,
'default' => '',
'index' => 'fk',
),
),
'indexes' =>
array (
'context_key' =>
array (
'alias' => 'context_key',
'primary' => false,
'unique' => false,
'type' => 'BTREE',
'columns' =>
array (
'context_key' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
),
'aggregates' =>
array (
'Target' =>
array (
'class' => 'MODX\\Revolution\\Sources\\modMediaSource',
'local' => 'target',
'foreign' => 'id',
'owner' => 'foreign',
'cardinality' => 'one',
),
'Context' =>
array (
'class' => 'MODX\\Revolution\\modContext',
'local' => 'context_key',
'foreign' => 'key',
'cardinality' => 'one',
'owner' => 'foreign',
),
),
),
'MODX\\Revolution\\modAccessNamespace' =>
array (
'package' => 'MODX\\Revolution\\',
'version' => '3.0',
'table' => 'access_namespace',
'extends' => 'MODX\\Revolution\\modAccess',
'tableMeta' =>
array (
'engine' => 'InnoDB',
),
'fields' =>
array (
'context_key' => '',
),
'fieldMeta' =>
array (
'context_key' =>
array (
'dbtype' => 'varchar',
'precision' => '100',
'phptype' => 'string',
'null' => false,
'default' => '',
'index' => 'fk',
),
),
'indexes' =>
array (
'context_key' =>
array (
'alias' => 'context_key',
'primary' => false,
'unique' => false,
'type' => 'BTREE',
'columns' =>
array (
'context_key' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
),
'aggregates' =>
array (
'Target' =>
array (
'class' => 'MODX\\Revolution\\modNamespace',
'local' => 'target',
'foreign' => 'name',
'owner' => 'foreign',
'cardinality' => 'one',
),
'Context' =>
array (
'class' => 'MODX\\Revolution\\modContext',
'local' => 'context_key',
'foreign' => 'key',
'cardinality' => 'one',
'owner' => 'foreign',
),
),
),
'MODX\\Revolution\\modDocument' =>
array (
'package' => 'MODX\\Revolution\\',
'version' => '3.0',
'extends' => 'MODX\\Revolution\\modResource',
'tableMeta' =>
array (
'engine' => 'InnoDB',
),
'fields' =>
array (
),
'fieldMeta' =>
array (
),
),
'MODX\\Revolution\\modResource' =>
array (
'package' => 'MODX\\Revolution\\',
'version' => '3.0',
'table' => 'site_content',
'extends' => 'MODX\\Revolution\\modAccessibleSimpleObject',
'inherit' => 'single',
'tableMeta' =>
array (
'engine' => 'InnoDB',
),
'fields' =>
array (
'type' => 'document',
'pagetitle' => '',
'longtitle' => '',
'description' => '',
'alias' => '',
'link_attributes' => '',
'published' => 0,
'pub_date' => 0,
'unpub_date' => 0,
'parent' => 0,
'isfolder' => 0,
'introtext' => NULL,
'content' => NULL,
'richtext' => 1,
'template' => 0,
'menuindex' => 0,
'searchable' => 1,
'cacheable' => 1,
'createdby' => 0,
'createdon' => 0,
'editedby' => 0,
'editedon' => 0,
'deleted' => 0,
'deletedon' => 0,
'deletedby' => 0,
'publishedon' => 0,
'publishedby' => 0,
'menutitle' => '',
'donthit' => 0,
'privateweb' => 0,
'privatemgr' => 0,
'content_dispo' => 0,
'hidemenu' => 0,
'class_key' => 'MODX\\Revolution\\modDocument',
'context_key' => 'web',
'content_type' => 1,
'uri' => NULL,
'uri_override' => 0,
'hide_children_in_tree' => 0,
'show_in_tree' => 1,
'properties' => NULL,
'alias_visible' => 1,
),
'fieldMeta' =>
array (
'type' =>
array (
'dbtype' => 'varchar',
'precision' => '20',
'phptype' => 'string',
'null' => false,
'default' => 'document',
),
'pagetitle' =>
array (
'dbtype' => 'varchar',
'precision' => '191',
'phptype' => 'string',
'null' => false,
'default' => '',
'index' => 'fulltext',
'indexgrp' => 'content_ft_idx',
),
'longtitle' =>
array (
'dbtype' => 'varchar',
'precision' => '191',
'phptype' => 'string',
'null' => false,
'default' => '',
'index' => 'fulltext',
'indexgrp' => 'content_ft_idx',
),
'description' =>
array (
'dbtype' => 'text',
'phptype' => 'string',
'null' => false,
'default' => '',
'index' => 'fulltext',
'indexgrp' => 'content_ft_idx',
),
'alias' =>
array (
'dbtype' => 'varchar',
'precision' => '191',
'phptype' => 'string',
'null' => true,
'default' => '',
'index' => 'index',
),
'link_attributes' =>
array (
'dbtype' => 'varchar',
'precision' => '255',
'phptype' => 'string',
'null' => false,
'default' => '',
),
'published' =>
array (
'dbtype' => 'tinyint',
'precision' => '1',
'attributes' => 'unsigned',
'phptype' => 'boolean',
'null' => false,
'default' => 0,
'index' => 'index',
),
'pub_date' =>
array (
'dbtype' => 'int',
'precision' => '20',
'phptype' => 'timestamp',
'null' => false,
'default' => 0,
'index' => 'index',
),
'unpub_date' =>
array (
'dbtype' => 'int',
'precision' => '20',
'phptype' => 'timestamp',
'null' => false,
'default' => 0,
'index' => 'index',
),
'parent' =>
array (
'dbtype' => 'int',
'precision' => '10',
'attributes' => 'unsigned',
'phptype' => 'integer',
'null' => false,
'default' => 0,
'index' => 'index',
),
'isfolder' =>
array (
'dbtype' => 'tinyint',
'precision' => '1',
'attributes' => 'unsigned',
'phptype' => 'boolean',
'null' => false,
'default' => 0,
'index' => 'index',
),
'introtext' =>
array (
'dbtype' => 'text',
'phptype' => 'string',
'index' => 'fulltext',
'indexgrp' => 'content_ft_idx',
),
'content' =>
array (
'dbtype' => 'mediumtext',
'phptype' => 'string',
'index' => 'fulltext',
'indexgrp' => 'content_ft_idx',
),
'richtext' =>
array (
'dbtype' => 'tinyint',
'precision' => '1',
'attributes' => 'unsigned',
'phptype' => 'boolean',
'null' => false,
'default' => 1,
),
'template' =>
array (
'dbtype' => 'int',
'precision' => '10',
'phptype' => 'integer',
'null' => false,
'default' => 0,
'index' => 'index',
),
'menuindex' =>
array (
'dbtype' => 'int',
'precision' => '10',
'phptype' => 'integer',
'null' => false,
'default' => 0,
'index' => 'index',
),
'searchable' =>
array (
'dbtype' => 'tinyint',
'precision' => '1',
'attributes' => 'unsigned',
'phptype' => 'boolean',
'null' => false,
'default' => 1,
'index' => 'index',
),
'cacheable' =>
array (
'dbtype' => 'tinyint',
'precision' => '1',
'attributes' => 'unsigned',
'phptype' => 'boolean',
'null' => false,
'default' => 1,
'index' => 'index',
),
'createdby' =>
array (
'dbtype' => 'int',
'precision' => '10',
'phptype' => 'integer',
'null' => false,
'default' => 0,
),
'createdon' =>
array (
'dbtype' => 'int',
'precision' => '20',
'phptype' => 'timestamp',
'null' => false,
'default' => 0,
),
'editedby' =>
array (
'dbtype' => 'int',
'precision' => '10',
'phptype' => 'integer',
'null' => false,
'default' => 0,
),
'editedon' =>
array (
'dbtype' => 'int',
'precision' => '20',
'phptype' => 'timestamp',
'null' => false,
'default' => 0,
),
'deleted' =>
array (
'dbtype' => 'tinyint',
'precision' => '1',
'attributes' => 'unsigned',
'phptype' => 'boolean',
'null' => false,
'default' => 0,
),
'deletedon' =>
array (
'dbtype' => 'int',
'precision' => '20',
'phptype' => 'timestamp',
'null' => false,
'default' => 0,
),
'deletedby' =>
array (
'dbtype' => 'int',
'precision' => '10',
'phptype' => 'integer',
'null' => false,
'default' => 0,
),
'publishedon' =>
array (
'dbtype' => 'int',
'precision' => '20',
'phptype' => 'timestamp',
'null' => false,
'default' => 0,
),
'publishedby' =>
array (
'dbtype' => 'int',
'precision' => '10',
'phptype' => 'integer',
'null' => false,
'default' => 0,
),
'menutitle' =>
array (
'dbtype' => 'varchar',
'precision' => '255',
'phptype' => 'string',
'null' => false,
'default' => '',
),
'donthit' =>
array (
'dbtype' => 'tinyint',
'precision' => '1',
'attributes' => 'unsigned',
'phptype' => 'boolean',
'null' => false,
'default' => 0,
),
'privateweb' =>
array (
'dbtype' => 'tinyint',
'precision' => '1',
'attributes' => 'unsigned',
'phptype' => 'boolean',
'null' => false,
'default' => 0,
),
'privatemgr' =>
array (
'dbtype' => 'tinyint',
'precision' => '1',
'attributes' => 'unsigned',
'phptype' => 'boolean',
'null' => false,
'default' => 0,
),
'content_dispo' =>
array (
'dbtype' => 'tinyint',
'precision' => '1',
'phptype' => 'integer',
'null' => false,
'default' => 0,
),
'hidemenu' =>
array (
'dbtype' => 'tinyint',
'precision' => '1',
'attributes' => 'unsigned',
'phptype' => 'boolean',
'null' => false,
'default' => 0,
'index' => 'index',
),
'class_key' =>
array (
'dbtype' => 'varchar',
'precision' => '100',
'phptype' => 'string',
'null' => false,
'default' => 'MODX\\Revolution\\modDocument',
'index' => 'index',
),
'context_key' =>
array (
'dbtype' => 'varchar',
'precision' => '100',
'phptype' => 'string',
'null' => false,
'default' => 'web',
'index' => 'index',
),
'content_type' =>
array (
'dbtype' => 'int',
'precision' => '11',
'attributes' => 'unsigned',
'phptype' => 'integer',
'null' => false,
'default' => 1,
),
'uri' =>
array (
'dbtype' => 'text',
'phptype' => 'string',
'null' => true,
'index' => 'index',
),
'uri_override' =>
array (
'dbtype' => 'tinyint',
'precision' => '1',
'phptype' => 'integer',
'null' => false,
'default' => 0,
'index' => 'index',
),
'hide_children_in_tree' =>
array (
'dbtype' => 'tinyint',
'precision' => '1',
'phptype' => 'integer',
'null' => false,
'default' => 0,
'index' => 'index',
),
'show_in_tree' =>
array (
'dbtype' => 'tinyint',
'precision' => '1',
'phptype' => 'integer',
'null' => false,
'default' => 1,
'index' => 'index',
),
'properties' =>
array (
'dbtype' => 'mediumtext',
'phptype' => 'json',
'null' => true,
),
'alias_visible' =>
array (
'dbtype' => 'tinyint',
'precision' => '1',
'attributes' => 'unsigned',
'phptype' => 'boolean',
'null' => false,
'default' => 1,
),
),
'indexes' =>
array (
'alias' =>
array (
'alias' => 'alias',
'primary' => false,
'unique' => false,
'type' => 'BTREE',
'columns' =>
array (
'alias' =>
array (
'length' => '',
'collation' => 'A',
'null' => true,
),
),
),
'published' =>
array (
'alias' => 'published',
'primary' => false,
'unique' => false,
'type' => 'BTREE',
'columns' =>
array (
'published' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
'pub_date' =>
array (
'alias' => 'pub_date',
'primary' => false,
'unique' => false,
'type' => 'BTREE',
'columns' =>
array (
'pub_date' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
'unpub_date' =>
array (
'alias' => 'unpub_date',
'primary' => false,
'unique' => false,
'type' => 'BTREE',
'columns' =>
array (
'unpub_date' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
'parent' =>
array (
'alias' => 'parent',
'primary' => false,
'unique' => false,
'type' => 'BTREE',
'columns' =>
array (
'parent' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
'isfolder' =>
array (
'alias' => 'isfolder',
'primary' => false,
'unique' => false,
'type' => 'BTREE',
'columns' =>
array (
'isfolder' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
'template' =>
array (
'alias' => 'template',
'primary' => false,
'unique' => false,
'type' => 'BTREE',
'columns' =>
array (
'template' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
'menuindex' =>
array (
'alias' => 'menuindex',
'primary' => false,
'unique' => false,
'type' => 'BTREE',
'columns' =>
array (
'menuindex' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
'searchable' =>
array (
'alias' => 'searchable',
'primary' => false,
'unique' => false,
'type' => 'BTREE',
'columns' =>
array (
'searchable' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
'cacheable' =>
array (
'alias' => 'cacheable',
'primary' => false,
'unique' => false,
'type' => 'BTREE',
'columns' =>
array (
'cacheable' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
'hidemenu' =>
array (
'alias' => 'hidemenu',
'primary' => false,
'unique' => false,
'type' => 'BTREE',
'columns' =>
array (
'hidemenu' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
'class_key' =>
array (
'alias' => 'class_key',
'primary' => false,
'unique' => false,
'type' => 'BTREE',
'columns' =>
array (
'class_key' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
'context_key' =>
array (
'alias' => 'context_key',
'primary' => false,
'unique' => false,
'type' => 'BTREE',
'columns' =>
array (
'context_key' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
'uri' =>
array (
'alias' => 'uri',
'primary' => false,
'unique' => false,
'type' => 'BTREE',
'columns' =>
array (
'uri' =>
array (
'length' => '191',
'collation' => 'A',
'null' => true,
),
),
),
'uri_override' =>
array (
'alias' => 'uri_override',
'primary' => false,
'unique' => false,
'type' => 'BTREE',
'columns' =>
array (
'uri_override' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
'hide_children_in_tree' =>
array (
'alias' => 'hide_children_in_tree',
'primary' => false,
'unique' => false,
'type' => 'BTREE',
'columns' =>
array (
'hide_children_in_tree' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
'show_in_tree' =>
array (
'alias' => 'show_in_tree',
'primary' => false,
'unique' => false,
'type' => 'BTREE',
'columns' =>
array (
'show_in_tree' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
'content_ft_idx' =>
array (
'alias' => 'content_ft_idx',
'primary' => false,
'unique' => false,
'type' => 'FULLTEXT',
'columns' =>
array (
'pagetitle' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
'longtitle' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
'description' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
'introtext' =>
array (
'length' => '',
'collation' => 'A',
'null' => true,
),
'content' =>
array (
'length' => '',
'collation' => 'A',
'null' => true,
),
),
),
'cache_refresh_idx' =>
array (
'alias' => 'cache_refresh_index',
'primary' => false,
'unique' => false,
'type' => 'BTREE',
'columns' =>
array (
'parent' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
'menuindex' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
'id' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
),
'composites' =>
array (
'Children' =>
array (
'class' => 'MODX\\Revolution\\modResource',
'local' => 'id',
'foreign' => 'parent',
'cardinality' => 'many',
'owner' => 'local',
),
'TemplateVarResources' =>
array (
'class' => 'MODX\\Revolution\\modTemplateVarResource',
'local' => 'id',
'foreign' => 'contentid',
'cardinality' => 'many',
'owner' => 'local',
),
'ResourceGroupResources' =>
array (
'class' => 'MODX\\Revolution\\modResourceGroupResource',
'local' => 'id',
'foreign' => 'document',
'cardinality' => 'many',
'owner' => 'local',
),
'Acls' =>
array (
'class' => 'MODX\\Revolution\\modAccessResource',
'local' => 'id',
'foreign' => 'target',
'owner' => 'local',
'cardinality' => 'many',
),
'ContextResources' =>
array (
'class' => 'MODX\\Revolution\\modContextResource',
'local' => 'id',
'foreign' => 'resource',
'cardinality' => 'many',
'owner' => 'local',
),
),
'aggregates' =>
array (
'Parent' =>
array (
'class' => 'MODX\\Revolution\\modResource',
'local' => 'parent',
'foreign' => 'id',
'cardinality' => 'one',
'owner' => 'foreign',
),
'CreatedBy' =>
array (
'class' => 'MODX\\Revolution\\modUser',
'local' => 'createdby',
'foreign' => 'id',
'cardinality' => 'one',
'owner' => 'foreign',
),
'EditedBy' =>
array (
'class' => 'MODX\\Revolution\\modUser',
'local' => 'editedby',
'foreign' => 'id',
'cardinality' => 'one',
'owner' => 'foreign',
),
'DeletedBy' =>
array (
'class' => 'MODX\\Revolution\\modUser',
'local' => 'deletedby',
'foreign' => 'id',
'cardinality' => 'one',
'owner' => 'foreign',
),
'PublishedBy' =>
array (
'class' => 'MODX\\Revolution\\modUser',
'local' => 'publishedby',
'foreign' => 'id',
'cardinality' => 'one',
'owner' => 'foreign',
),
'Template' =>
array (
'class' => 'MODX\\Revolution\\modTemplate',
'local' => 'template',
'foreign' => 'id',
'cardinality' => 'one',
'owner' => 'foreign',
),
'TemplateVars' =>
array (
'class' => 'MODX\\Revolution\\modTemplateVar',
'local' => 'id:template',
'foreign' => 'contentid:templateid',
'cardinality' => 'many',
'owner' => 'local',
),
'TemplateVarTemplates' =>
array (
'class' => 'MODX\\Revolution\\modTemplateVarTemplate',
'local' => 'template',
'foreign' => 'templateid',
'cardinality' => 'many',
'owner' => 'local',
),
'ContentType' =>
array (
'class' => 'MODX\\Revolution\\modContentType',
'local' => 'content_type',
'foreign' => 'id',
'owner' => 'foreign',
'cardinality' => 'one',
),
'Context' =>
array (
'class' => 'MODX\\Revolution\\modContext',
'local' => 'context_key',
'foreign' => 'key',
'owner' => 'foreign',
'cardinality' => 'one',
),
),
),
'MODX\\Revolution\\modContentType' =>
array (
'package' => 'MODX\\Revolution\\',
'version' => '3.0',
'table' => 'content_type',
'extends' => 'xPDO\\Om\\xPDOSimpleObject',
'tableMeta' =>
array (
'engine' => 'InnoDB',
),
'fields' =>
array (
'name' => NULL,
'description' => NULL,
'mime_type' => NULL,
'file_extensions' => NULL,
'icon' => NULL,
'headers' => NULL,
'binary' => 0,
),
'fieldMeta' =>
array (
'name' =>
array (
'dbtype' => 'varchar',
'precision' => '191',
'phptype' => 'string',
'null' => false,
'index' => 'unique',
),
'description' =>
array (
'dbtype' => 'tinytext',
'phptype' => 'string',
'null' => true,
),
'mime_type' =>
array (
'dbtype' => 'tinytext',
'phptype' => 'string',
),
'file_extensions' =>
array (
'dbtype' => 'tinytext',
'phptype' => 'string',
),
'icon' =>
array (
'dbtype' => 'tinytext',
'phptype' => 'string',
'null' => true,
),
'headers' =>
array (
'dbtype' => 'mediumtext',
'phptype' => 'array',
),
'binary' =>
array (
'dbtype' => 'tinyint',
'precision' => '1',
'attributes' => 'unsigned',
'phptype' => 'boolean',
'null' => false,
'default' => 0,
),
),
'indexes' =>
array (
'name' =>
array (
'alias' => 'name',
'primary' => false,
'unique' => true,
'type' => 'BTREE',
'columns' =>
array (
'name' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
),
'aggregates' =>
array (
'Resources' =>
array (
'class' => 'MODX\\Revolution\\modResource',
'local' => 'id',
'foreign' => 'content_type',
'owner' => 'local',
'cardinality' => 'many',
),
),
'validation' =>
array (
'rules' =>
array (
'name' =>
array (
'name' =>
array (
'type' => 'xPDOValidationRule',
'rule' => 'xPDO\\Validation\\xPDOMinLengthValidationRule',
'value' => '1',
'message' => 'content_type_err_ns_name',
),
),
),
),
),
'MODX\\Revolution\\modSnippet' =>
array (
'package' => 'MODX\\Revolution\\',
'version' => '3.0',
'table' => 'site_snippets',
'extends' => 'MODX\\Revolution\\modScript',
'tableMeta' =>
array (
'engine' => 'InnoDB',
),
'fields' =>
array (
'cache_type' => 0,
'snippet' => NULL,
'locked' => 0,
'properties' => NULL,
'moduleguid' => '',
'static' => 0,
'static_file' => '',
),
'fieldMeta' =>
array (
'cache_type' =>
array (
'dbtype' => 'tinyint',
'precision' => '1',
'phptype' => 'integer',
'null' => false,
'default' => 0,
),
'snippet' =>
array (
'dbtype' => 'mediumtext',
'phptype' => 'string',
),
'locked' =>
array (
'dbtype' => 'tinyint',
'precision' => '1',
'attributes' => 'unsigned',
'phptype' => 'boolean',
'null' => false,
'default' => 0,
'index' => 'index',
),
'properties' =>
array (
'dbtype' => 'text',
'phptype' => 'array',
'null' => true,
),
'moduleguid' =>
array (
'dbtype' => 'varchar',
'precision' => '32',
'phptype' => 'string',
'null' => false,
'default' => '',
'index' => 'fk',
),
'static' =>
array (
'dbtype' => 'tinyint',
'precision' => '1',
'attributes' => 'unsigned',
'phptype' => 'boolean',
'null' => false,
'default' => 0,
'index' => 'index',
),
'static_file' =>
array (
'dbtype' => 'varchar',
'precision' => '255',
'phptype' => 'string',
'null' => false,
'default' => '',
),
),
'fieldAliases' =>
array (
'content' => 'snippet',
),
'indexes' =>
array (
'locked' =>
array (
'alias' => 'locked',
'primary' => false,
'unique' => false,
'type' => 'BTREE',
'columns' =>
array (
'locked' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
'moduleguid' =>
array (
'alias' => 'moduleguid',
'primary' => false,
'unique' => false,
'type' => 'BTREE',
'columns' =>
array (
'moduleguid' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
'static' =>
array (
'alias' => 'static',
'primary' => false,
'unique' => false,
'type' => 'BTREE',
'columns' =>
array (
'static' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
),
'composites' =>
array (
'PropertySets' =>
array (
'class' => 'MODX\\Revolution\\modElementPropertySet',
'local' => 'id',
'foreign' => 'element',
'owner' => 'local',
'cardinality' => 'many',
'criteria' =>
array (
'foreign' =>
array (
'element_class' => 'MODX\\Revolution\\modSnippet',
),
),
),
),
'validation' =>
array (
'rules' =>
array (
'name' =>
array (
'invalid' =>
array (
'type' => 'preg_match',
'rule' => '/^(?!\\s)[a-zA-Z0-9\\x2d-\\x2f\\x7f-\\xff-_\\s]+(?<!\\s)$/',
'message' => 'snippet_err_invalid_name',
),
),
),
),
),
'MODX\\Revolution\\Sources\\modFileMediaSource' =>
array (
'package' => 'MODX\\Revolution\\Sources',
'version' => '3.0',
'extends' => 'MODX\\Revolution\\Sources\\modMediaSource',
'tableMeta' =>
array (
'engine' => 'InnoDB',
),
'fields' =>
array (
),
'fieldMeta' =>
array (
),
),
'MODX\\Revolution\\Sources\\modMediaSource' =>
array (
'package' => 'MODX\\Revolution\\Sources',
'version' => '3.0',
'table' => 'media_sources',
'extends' => 'MODX\\Revolution\\modAccessibleSimpleObject',
'tableMeta' =>
array (
'engine' => 'InnoDB',
),
'fields' =>
array (
'name' => '',
'description' => NULL,
'class_key' => 'MODX\\Revolution\\Sources\\modFileMediaSource',
'properties' => NULL,
'is_stream' => 1,
),
'fieldMeta' =>
array (
'name' =>
array (
'dbtype' => 'varchar',
'precision' => '191',
'phptype' => 'string',
'null' => false,
'default' => '',
'index' => 'index',
),
'description' =>
array (
'dbtype' => 'text',
'phptype' => 'string',
'null' => true,
),
'class_key' =>
array (
'dbtype' => 'varchar',
'precision' => '100',
'phptype' => 'string',
'null' => false,
'default' => 'MODX\\Revolution\\Sources\\modFileMediaSource',
'index' => 'index',
),
'properties' =>
array (
'dbtype' => 'mediumtext',
'phptype' => 'array',
'null' => true,
),
'is_stream' =>
array (
'dbtype' => 'tinyint',
'precision' => '1',
'attributes' => 'unsigned',
'phptype' => 'boolean',
'null' => false,
'default' => 1,
'index' => 'index',
),
),
'indexes' =>
array (
'name' =>
array (
'alias' => 'name',
'primary' => false,
'unique' => false,
'type' => 'BTREE',
'columns' =>
array (
'name' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
'class_key' =>
array (
'alias' => 'class_key',
'primary' => false,
'unique' => false,
'type' => 'BTREE',
'columns' =>
array (
'class_key' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
'is_stream' =>
array (
'alias' => 'is_stream',
'primary' => false,
'unique' => false,
'type' => 'BTREE',
'columns' =>
array (
'is_stream' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
),
'composites' =>
array (
'SourceElement' =>
array (
'class' => 'MODX\\Revolution\\Sources\\modMediaSourceElement',
'local' => 'id',
'foreign' => 'source',
'cardinality' => 'one',
'owner' => 'local',
),
),
'aggregates' =>
array (
'Chunks' =>
array (
'class' => 'MODX\\Revolution\\modChunk',
'local' => 'id',
'foreign' => 'source',
'cardinality' => 'many',
'owner' => 'local',
),
'Plugins' =>
array (
'class' => 'MODX\\Revolution\\modPlugin',
'local' => 'id',
'foreign' => 'source',
'cardinality' => 'many',
'owner' => 'local',
),
'Snippets' =>
array (
'class' => 'MODX\\Revolution\\modSnippet',
'local' => 'id',
'foreign' => 'source',
'cardinality' => 'many',
'owner' => 'local',
),
'Templates' =>
array (
'class' => 'MODX\\Revolution\\modTemplate',
'local' => 'id',
'foreign' => 'source',
'cardinality' => 'many',
'owner' => 'local',
),
'TemplateVars' =>
array (
'class' => 'MODX\\Revolution\\modTemplateVar',
'local' => 'id',
'foreign' => 'source',
'cardinality' => 'many',
'owner' => 'local',
),
),
),
'MODX\\Revolution\\modDeprecatedMethod' =>
array (
'package' => 'MODX\\Revolution\\',
'version' => '3.0',
'table' => 'deprecated_method',
'extends' => 'xPDO\\Om\\xPDOSimpleObject',
'tableMeta' =>
array (
'engine' => 'InnoDB',
),
'fields' =>
array (
'definition' => '',
'since' => '',
'recommendation' => '',
),
'fieldMeta' =>
array (
'definition' =>
array (
'dbtype' => 'varchar',
'precision' => '191',
'phptype' => 'string',
'null' => false,
'default' => '',
),
'since' =>
array (
'dbtype' => 'varchar',
'precision' => '191',
'phptype' => 'string',
'null' => false,
'default' => '',
),
'recommendation' =>
array (
'dbtype' => 'varchar',
'precision' => '1024',
'phptype' => 'string',
'null' => false,
'default' => '',
),
),
'indexes' =>
array (
'definition' =>
array (
'alias' => 'definition',
'primary' => false,
'unique' => false,
'type' => 'BTREE',
'columns' =>
array (
'definition' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
),
'composites' =>
array (
'Callers' =>
array (
'class' => 'MODX\\Revolution\\modDeprecatedCall',
'local' => 'id',
'foreign' => 'method',
'cardinality' => 'many',
'owner' => 'local',
),
),
),
'MODX\\Revolution\\modDeprecatedCall' =>
array (
'package' => 'MODX\\Revolution\\',
'version' => '3.0',
'table' => 'deprecated_call',
'extends' => 'xPDO\\Om\\xPDOSimpleObject',
'tableMeta' =>
array (
'engine' => 'InnoDB',
),
'fields' =>
array (
'method' => 0,
'call_count' => 0,
'caller' => '',
'caller_file' => '',
'caller_line' => 0,
),
'fieldMeta' =>
array (
'method' =>
array (
'dbtype' => 'int',
'precision' => '11',
'attributes' => 'unsigned',
'phptype' => 'integer',
'null' => false,
'default' => 0,
),
'call_count' =>
array (
'dbtype' => 'int',
'precision' => '11',
'attributes' => 'unsigned',
'phptype' => 'integer',
'null' => false,
'default' => 0,
),
'caller' =>
array (
'dbtype' => 'varchar',
'precision' => '191',
'phptype' => 'string',
'null' => false,
'default' => '',
),
'caller_file' =>
array (
'dbtype' => 'varchar',
'precision' => '191',
'phptype' => 'string',
'null' => false,
'default' => '',
),
'caller_line' =>
array (
'dbtype' => 'int',
'precision' => '11',
'attributes' => 'unsigned',
'phptype' => 'integer',
'null' => false,
'default' => 0,
),
),
'indexes' =>
array (
'method' =>
array (
'alias' => 'method',
'primary' => false,
'unique' => false,
'type' => 'BTREE',
'columns' =>
array (
'method' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
'call_count' =>
array (
'alias' => 'call_count',
'primary' => false,
'unique' => false,
'type' => 'BTREE',
'columns' =>
array (
'call_count' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
'caller' =>
array (
'alias' => 'caller',
'primary' => false,
'unique' => false,
'type' => 'BTREE',
'columns' =>
array (
'caller' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
'caller_file' =>
array (
'alias' => 'caller_file',
'primary' => false,
'unique' => false,
'type' => 'BTREE',
'columns' =>
array (
'caller_file' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
'caller_line' =>
array (
'alias' => 'caller_line',
'primary' => false,
'unique' => false,
'type' => 'BTREE',
'columns' =>
array (
'caller_line' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
),
'aggregates' =>
array (
'Method' =>
array (
'class' => 'MODX\\Revolution\\modDeprecatedMethod',
'local' => 'method',
'foreign' => 'id',
'cardinality' => 'one',
'owner' => 'foreign',
),
),
),
'MODX\\Revolution\\modStaticResource' =>
array (
'package' => 'MODX\\Revolution\\',
'version' => '3.0',
'extends' => 'MODX\\Revolution\\modResource',
'tableMeta' =>
array (
'engine' => 'InnoDB',
),
'fields' =>
array (
),
'fieldMeta' =>
array (
),
),
'MODX\\Revolution\\modSymLink' =>
array (
'package' => 'MODX\\Revolution\\',
'version' => '3.0',
'extends' => 'MODX\\Revolution\\modResource',
'tableMeta' =>
array (
'engine' => 'InnoDB',
),
'fields' =>
array (
),
'fieldMeta' =>
array (
),
),
'MODX\\Revolution\\modWebLink' =>
array (
'package' => 'MODX\\Revolution\\',
'version' => '3.0',
'extends' => 'MODX\\Revolution\\modResource',
'tableMeta' =>
array (
'engine' => 'InnoDB',
),
'fields' =>
array (
),
'fieldMeta' =>
array (
),
),
'MODX\\Revolution\\modResourceGroupResource' =>
array (
'package' => 'MODX\\Revolution\\',
'version' => '3.0',
'table' => 'document_groups',
'extends' => 'xPDO\\Om\\xPDOSimpleObject',
'tableMeta' =>
array (
'engine' => 'InnoDB',
),
'fields' =>
array (
'document_group' => 0,
'document' => 0,
),
'fieldMeta' =>
array (
'document_group' =>
array (
'dbtype' => 'int',
'precision' => '10',
'phptype' => 'integer',
'null' => false,
'default' => 0,
'index' => 'index',
),
'document' =>
array (
'dbtype' => 'int',
'precision' => '10',
'phptype' => 'integer',
'null' => false,
'default' => 0,
'index' => 'index',
),
),
'indexes' =>
array (
'document_group' =>
array (
'alias' => 'document_group',
'primary' => false,
'unique' => false,
'type' => 'BTREE',
'columns' =>
array (
'document_group' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
'document' =>
array (
'alias' => 'document',
'primary' => false,
'unique' => false,
'type' => 'BTREE',
'columns' =>
array (
'document' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
),
'aggregates' =>
array (
'ResourceGroup' =>
array (
'class' => 'MODX\\Revolution\\modResourceGroup',
'key' => 'id',
'local' => 'document_group',
'foreign' => 'id',
'cardinality' => 'one',
'owner' => 'foreign',
),
'Resource' =>
array (
'class' => 'MODX\\Revolution\\modResource',
'key' => 'id',
'local' => 'document',
'foreign' => 'id',
'cardinality' => 'one',
'owner' => 'foreign',
),
),
),
'MODX\\Revolution\\modChunk' =>
array (
'package' => 'MODX\\Revolution\\',
'version' => '3.0',
'table' => 'site_htmlsnippets',
'extends' => 'MODX\\Revolution\\modElement',
'tableMeta' =>
array (
'engine' => 'InnoDB',
),
'fields' =>
array (
'name' => '',
'description' => 'Chunk',
'editor_type' => 0,
'category' => 0,
'cache_type' => 0,
'snippet' => NULL,
'locked' => 0,
'properties' => NULL,
'static' => 0,
'static_file' => '',
),
'fieldMeta' =>
array (
'name' =>
array (
'dbtype' => 'varchar',
'precision' => '50',
'phptype' => 'string',
'null' => false,
'default' => '',
'index' => 'unique',
),
'description' =>
array (
'dbtype' => 'varchar',
'precision' => '255',
'phptype' => 'string',
'null' => false,
'default' => 'Chunk',
),
'editor_type' =>
array (
'dbtype' => 'int',
'precision' => '11',
'phptype' => 'integer',
'null' => false,
'default' => 0,
),
'category' =>
array (
'dbtype' => 'int',
'precision' => '11',
'phptype' => 'integer',
'null' => false,
'default' => 0,
'index' => 'fk',
),
'cache_type' =>
array (
'dbtype' => 'tinyint',
'precision' => '1',
'phptype' => 'integer',
'null' => false,
'default' => 0,
),
'snippet' =>
array (
'dbtype' => 'mediumtext',
'phptype' => 'string',
),
'locked' =>
array (
'dbtype' => 'tinyint',
'precision' => '1',
'attributes' => 'unsigned',
'phptype' => 'boolean',
'null' => false,
'default' => 0,
'index' => 'index',
),
'properties' =>
array (
'dbtype' => 'text',
'phptype' => 'array',
'null' => true,
),
'static' =>
array (
'dbtype' => 'tinyint',
'precision' => '1',
'attributes' => 'unsigned',
'phptype' => 'boolean',
'null' => false,
'default' => 0,
'index' => 'index',
),
'static_file' =>
array (
'dbtype' => 'varchar',
'precision' => '255',
'phptype' => 'string',
'null' => false,
'default' => '',
),
),
'fieldAliases' =>
array (
'content' => 'snippet',
),
'indexes' =>
array (
'name' =>
array (
'alias' => 'name',
'primary' => false,
'unique' => true,
'type' => 'BTREE',
'columns' =>
array (
'name' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
'category' =>
array (
'alias' => 'category',
'primary' => false,
'unique' => false,
'type' => 'BTREE',
'columns' =>
array (
'category' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
'locked' =>
array (
'alias' => 'locked',
'primary' => false,
'unique' => false,
'type' => 'BTREE',
'columns' =>
array (
'locked' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
'static' =>
array (
'alias' => 'static',
'primary' => false,
'unique' => false,
'type' => 'BTREE',
'columns' =>
array (
'static' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
),
'composites' =>
array (
'PropertySets' =>
array (
'class' => 'MODX\\Revolution\\modElementPropertySet',
'local' => 'id',
'foreign' => 'element',
'owner' => 'local',
'cardinality' => 'many',
'criteria' =>
array (
'foreign' =>
array (
'element_class' => 'MODX\\Revolution\\modChunk',
),
),
),
),
'aggregates' =>
array (
'Category' =>
array (
'class' => 'MODX\\Revolution\\modCategory',
'key' => 'id',
'local' => 'category',
'foreign' => 'id',
'cardinality' => 'one',
'owner' => 'foreign',
),
),
'validation' =>
array (
'rules' =>
array (
'name' =>
array (
'invalid' =>
array (
'type' => 'preg_match',
'rule' => '/^(?!\\s)[a-zA-Z0-9\\x2d-\\x2f\\x7f-\\xff-_\\s]+(?<!\\s)$/',
'message' => 'chunk_err_invalid_name',
),
),
),
),
),
'MODX\\Revolution\\modCategoryClosure' =>
array (
'package' => 'MODX\\Revolution\\',
'version' => '3.0',
'table' => 'categories_closure',
'extends' => 'xPDO\\Om\\xPDOObject',
'tableMeta' =>
array (
'engine' => 'InnoDB',
),
'fields' =>
array (
'ancestor' => 0,
'descendant' => 0,
'depth' => 0,
),
'fieldMeta' =>
array (
'ancestor' =>
array (
'dbtype' => 'int',
'precision' => '10',
'phptype' => 'integer',
'attributes' => 'unsigned',
'null' => false,
'default' => 0,
'index' => 'pk',
),
'descendant' =>
array (
'dbtype' => 'int',
'precision' => '10',
'phptype' => 'integer',
'attributes' => 'unsigned',
'null' => false,
'default' => 0,
'index' => 'pk',
),
'depth' =>
array (
'dbtype' => 'int',
'precision' => '10',
'phptype' => 'integer',
'attributes' => 'unsigned',
'null' => false,
'default' => 0,
),
),
'indexes' =>
array (
'PRIMARY' =>
array (
'alias' => 'PRIMARY',
'primary' => true,
'unique' => true,
'type' => 'BTREE',
'columns' =>
array (
'ancestor' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
'descendant' =>
array (
'length' => '',
'collation' => 'A',
'null' => false,
),
),
),
),
'aggregates' =>
array (
'Ancestor' =>
array (
'class' => 'MODX\\Revolution\\modCategory',
'local' => 'ancestor',
'foreign' => 'id',
'cardinality' => 'one',
'owner' => 'foreign',
),
'Descendant' =>
array (
'class' => 'MODX\\Revolution\\modCategory',
'local' => 'descendant',
'foreign' => 'id',
'cardinality' => 'one',
'owner' => 'foreign',
),
),
),
),
'xpdo' => NULL,
)),
'package' => 'MODX\\Revolution',
'packages' =>
array (
'Om' =>
array (
'path' => '/home4/silksto1/public_html/core/vendor/xpdo/xpdo/src/xPDO/',
'prefix' => 'modx_',
),
'MODX\\Revolution' =>
array (
'path' => '/home4/silksto1/public_html/core/src/',
'prefix' => 'modx_',
),
'MODX\\Revolution\\Registry\\Db' =>
array (
'path' => '/home4/silksto1/public_html/core/src/',
'prefix' => 'modx_',
),
'MODX\\Revolution\\Sources' =>
array (
'path' => '/home4/silksto1/public_html/core/src/',
'prefix' => 'modx_',
),
'MODX\\Revolution\\Transport' =>
array (
'path' => '/home4/silksto1/public_html/core/src/',
'prefix' => 'modx_',
),
),
'manager' => NULL,
'cachePath' => '/home4/silksto1/public_html/core/cache/',
'startTime' => 1737689113.6604030132293701171875,
'executedQueries' => 17,
'queryTime' => 0.2203147411346435546875,
'classMap' =>
array (
'xPDO\\Om\\xPDOObject' =>
array (
0 => 'xPDO\\Om\\xPDOSimpleObject',
1 => 'MODX\\Revolution\\modAccessibleObject',
2 => 'MODX\\Revolution\\modActiveUser',
3 => 'MODX\\Revolution\\modCategoryClosure',
4 => 'MODX\\Revolution\\modContextSetting',
5 => 'MODX\\Revolution\\modContextResource',
6 => 'MODX\\Revolution\\modDashboardWidgetPlacement',
7 => 'MODX\\Revolution\\modElementPropertySet',
8 => 'MODX\\Revolution\\modEvent',
9 => 'MODX\\Revolution\\modFormCustomizationProfileUserGroup',
10 => 'MODX\\Revolution\\modPluginEvent',
11 => 'MODX\\Revolution\\modSession',
12 => 'MODX\\Revolution\\modSystemSetting',
13 => 'MODX\\Revolution\\modTemplateVarTemplate',
14 => 'MODX\\Revolution\\modUserGroupSetting',
15 => 'MODX\\Revolution\\modUserSetting',
16 => 'MODX\\Revolution\\Registry\\Db\\modDbRegisterMessage',
17 => 'MODX\\Revolution\\Sources\\modMediaSourceContext',
18 => 'MODX\\Revolution\\Sources\\modMediaSourceElement',
19 => 'MODX\\Revolution\\Transport\\modTransportPackage',
),
'xPDO\\Om\\xPDOSimpleObject' =>
array (
0 => 'MODX\\Revolution\\modAccess',
1 => 'MODX\\Revolution\\modAccessPolicy',
2 => 'MODX\\Revolution\\modAccessPolicyTemplate',
3 => 'MODX\\Revolution\\modAccessPolicyTemplateGroup',
4 => 'MODX\\Revolution\\modAccessPermission',
5 => 'MODX\\Revolution\\modActionField',
6 => 'MODX\\Revolution\\modContentType',
7 => 'MODX\\Revolution\\modDashboard',
8 => 'MODX\\Revolution\\modDashboardWidget',
9 => 'MODX\\Revolution\\modFormCustomizationProfile',
10 => 'MODX\\Revolution\\modFormCustomizationSet',
11 => 'MODX\\Revolution\\modLexiconEntry',
12 => 'MODX\\Revolution\\modManagerLog',
13 => 'MODX\\Revolution\\modExtensionPackage',
14 => 'MODX\\Revolution\\modPrincipal',
15 => 'MODX\\Revolution\\modPropertySet',
16 => 'MODX\\Revolution\\modResourceGroupResource',
17 => 'MODX\\Revolution\\modTemplateVarResource',
18 => 'MODX\\Revolution\\modTemplateVarResourceGroup',
19 => 'MODX\\Revolution\\modUserGroupMember',
20 => 'MODX\\Revolution\\modUserGroupRole',
21 => 'MODX\\Revolution\\modUserMessage',
22 => 'MODX\\Revolution\\modUserProfile',
23 => 'MODX\\Revolution\\modWorkspace',
24 => 'MODX\\Revolution\\modDeprecatedMethod',
25 => 'MODX\\Revolution\\modDeprecatedCall',
26 => 'MODX\\Revolution\\Registry\\Db\\modDbRegisterQueue',
27 => 'MODX\\Revolution\\Registry\\Db\\modDbRegisterTopic',
28 => 'MODX\\Revolution\\Transport\\modTransportProvider',
),
'MODX\\Revolution\\modAccess' =>
array (
0 => 'MODX\\Revolution\\modAccessActionDom',
1 => 'MODX\\Revolution\\modAccessCategory',
2 => 'MODX\\Revolution\\modAccessNamespace',
3 => 'MODX\\Revolution\\modAccessContext',
4 => 'MODX\\Revolution\\modAccessElement',
5 => 'MODX\\Revolution\\modAccessMenu',
6 => 'MODX\\Revolution\\modAccessResource',
7 => 'MODX\\Revolution\\modAccessResourceGroup',
8 => 'MODX\\Revolution\\Sources\\modAccessMediaSource',
),
'MODX\\Revolution\\modAccessElement' =>
array (
0 => 'MODX\\Revolution\\modAccessTemplateVar',
),
'MODX\\Revolution\\modAccessibleObject' =>
array (
0 => 'MODX\\Revolution\\modAccessibleSimpleObject',
1 => 'MODX\\Revolution\\modContext',
2 => 'MODX\\Revolution\\modMenu',
3 => 'MODX\\Revolution\\modNamespace',
),
'MODX\\Revolution\\modAccessibleSimpleObject' =>
array (
0 => 'MODX\\Revolution\\modActionDom',
1 => 'MODX\\Revolution\\modCategory',
2 => 'MODX\\Revolution\\modElement',
3 => 'MODX\\Revolution\\modResource',
4 => 'MODX\\Revolution\\modResourceGroup',
5 => 'MODX\\Revolution\\Sources\\modMediaSource',
),
'MODX\\Revolution\\modElement' =>
array (
0 => 'MODX\\Revolution\\modChunk',
1 => 'MODX\\Revolution\\modScript',
2 => 'MODX\\Revolution\\modTemplate',
3 => 'MODX\\Revolution\\modTemplateVar',
),
'MODX\\Revolution\\modResource' =>
array (
0 => 'MODX\\Revolution\\modDocument',
1 => 'MODX\\Revolution\\modStaticResource',
2 => 'MODX\\Revolution\\modSymLink',
3 => 'MODX\\Revolution\\modWebLink',
),
'MODX\\Revolution\\modScript' =>
array (
0 => 'MODX\\Revolution\\modPlugin',
1 => 'MODX\\Revolution\\modSnippet',
),
'MODX\\Revolution\\modPrincipal' =>
array (
0 => 'MODX\\Revolution\\modUser',
1 => 'MODX\\Revolution\\modUserGroup',
),
'MODX\\Revolution\\Sources\\modMediaSource' =>
array (
0 => 'MODX\\Revolution\\Sources\\modFileMediaSource',
1 => 'MODX\\Revolution\\Sources\\modS3MediaSource',
2 => 'MODX\\Revolution\\Sources\\modFTPMediaSource',
),
),
'connection' =>
xPDO\xPDOConnection::__set_state(array(
'xpdo' => NULL,
'config' =>
array (
'cache_key' => 'default',
'cache_handler' => 'xPDO\\Cache\\xPDOFileCache',
'cache_path' => '/home4/silksto1/public_html/core/cache/',
'table_prefix' => 'modx_',
'hydrate_fields' => true,
'hydrate_related_objects' => true,
'hydrate_adhoc_fields' => true,
'validator_class' => 'MODX\\Revolution\\Validation\\modValidator',
'validate_on_save' => true,
'cache_system_settings' => true,
'cache_system_settings_key' => 'system_settings',
'load_deprecated_global_class_aliases' => true,
'connections' =>
array (
0 =>
array (
'dsn' => 'mysql:host=localhost;dbname=silksto1_silkstory2;charset=utf8',
'username' => 'silksto1_silkstory2',
'password' => '!Kx9TV5Gbwyp',
'options' =>
array (
'connection_mutable' => true,
),
'driverOptions' =>
array (
3 => 0,
),
),
),
'connection_mutable' => true,
'dbtype' => 'mysql',
'host' => 'localhost',
'dbname' => 'silksto1_silkstory2',
'charset' => 'utf8',
'dsn' => 'mysql:host=localhost;dbname=silksto1_silkstory2;charset=utf8',
'username' => 'silksto1_silkstory2',
'password' => '!Kx9TV5Gbwyp',
'driverOptions' =>
array (
3 => 0,
),
),
'pdo' =>
PDO::__set_state(array(
)),
'_mutable' => true,
)),
'_connections' =>
array (
0 =>
xPDO\xPDOConnection::__set_state(array(
'xpdo' => NULL,
'config' =>
array (
'cache_key' => 'default',
'cache_handler' => 'xPDO\\Cache\\xPDOFileCache',
'cache_path' => '/home4/silksto1/public_html/core/cache/',
'table_prefix' => 'modx_',
'hydrate_fields' => true,
'hydrate_related_objects' => true,
'hydrate_adhoc_fields' => true,
'validator_class' => 'MODX\\Revolution\\Validation\\modValidator',
'validate_on_save' => true,
'cache_system_settings' => true,
'cache_system_settings_key' => 'system_settings',
'load_deprecated_global_class_aliases' => true,
'connections' =>
array (
0 =>
array (
'dsn' => 'mysql:host=localhost;dbname=silksto1_silkstory2;charset=utf8',
'username' => 'silksto1_silkstory2',
'password' => '!Kx9TV5Gbwyp',
'options' =>
array (
'connection_mutable' => true,
),
'driverOptions' =>
array (
3 => 0,
),
),
),
'connection_mutable' => true,
'dbtype' => 'mysql',
'host' => 'localhost',
'dbname' => 'silksto1_silkstory2',
'charset' => 'utf8',
'dsn' => 'mysql:host=localhost;dbname=silksto1_silkstory2;charset=utf8',
'username' => 'silksto1_silkstory2',
'password' => '!Kx9TV5Gbwyp',
'driverOptions' =>
array (
3 => 0,
),
),
'pdo' =>
PDO::__set_state(array(
)),
'_mutable' => true,
)),
),
'logLevel' => 1,
'logTarget' =>
array (
'target' => 'FILE',
'options' =>
array (
'filename' => 'error.log',
),
),
'_debug' => false,
'_cacheEnabled' => true,
'_escapeCharOpen' => '`',
'_escapeCharClose' => '`',
'_quoteChar' => '\'',
))site_id'modx64fb42d8ec9494.56883131'style'display: none;'table_prefix'modx_'tstart1737689113.6604030132293701171875uuid'def0bf55-2838-4224-b4e5-1bbc410290fb'