Undefined index: cultureKey
Error Type: E_NOTICE
Source File: /home4/silksto1/public_html/core/cache/includes/elements/modx/revolution/modsnippet/21.include.cache.php Line: 10
Line 5:
Line 6: $strHtmlZh = '
Line 7: <div id="search" class="modal fade" role="dialog" tabindex="-1"><div class="modal-dialog modal-xl" role="document">
Line 8: <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>';
Line 9:
Line 10: if ($_REQUEST['cultureKey'] == 'en') {
Line 11: echo $strHtmlEn;
Line 12: } else {
Line 13: echo $strHtmlZh;
Line 14: }
Line 15:
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 (
'id' => '5',
)_POSTarray (
)_REQUESTarray (
'id' => '5',
)_SERVERarray (
'LSPHP_ENABLE_USER_INI' => 'on',
'PATH' => '/usr/local/bin:/usr/bin:/bin',
'TEMP' => '/tmp',
'TMP' => '/tmp',
'TMPDIR' => '/tmp',
'PWD' => '/',
'HTTP_ACCEPT' => '*/*',
'CONTENT_LENGTH' => '0',
'HTTP_HOST' => 'silkstory.net',
'HTTP_REFERER' => 'http://silkstory.net/index.php?id=5',
'HTTP_USER_AGENT' => 'claudebot',
'HTTP_X_HTTPS' => '1',
'UNIQUE_ID' => 'ZgbFzHgYyU89ZNv8vjCCswAAQj0',
'QS_ConnectionId' => '171171988438979157328752',
'SCRIPT_URL' => '/index.php',
'SCRIPT_URI' => 'https://silkstory.net/index.php',
'HTTPS' => 'on',
'SSL_TLS_SNI' => 'silkstory.net',
'HTTP2' => 'on',
'H2PUSH' => 'off',
'H2_PUSH' => 'off',
'H2_PUSHED' => '',
'H2_PUSHED_ON' => '',
'H2_STREAM_ID' => '3',
'H2_STREAM_TAG' => '328752-112-3',
'SERVER_SIGNATURE' => '',
'SERVER_SOFTWARE' => 'Apache',
'SERVER_NAME' => 'silkstory.net',
'SERVER_ADDR' => '162.241.244.139',
'SERVER_PORT' => '443',
'REMOTE_ADDR' => '44.201.59.20',
'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' => '56354',
'SERVER_PROTOCOL' => 'HTTP/2.0',
'REQUEST_METHOD' => 'GET',
'QUERY_STRING' => 'id=5',
'REQUEST_URI' => '/index.php?id=5',
'SCRIPT_NAME' => '/index.php',
'PHP_SELF' => '/index.php',
'REQUEST_TIME_FLOAT' => 1711719884.4008309841156005859375,
'REQUEST_TIME' => 1711719884,
'argv' =>
array (
0 => 'id=5',
),
'argc' => 1,
)__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 (
),
'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,
),
),
),
),
'web' =>
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 (
),
)),
'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,
),
),
),
),
'web' =>
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 (
),
)),
),
'request' =>
MODX\Revolution\modRequest::__set_state(array(
'modx' => NULL,
'method' => NULL,
'parameters' =>
array (
'GET' =>
array (
'id' => '5',
),
'POST' =>
array (
),
'COOKIE' =>
array (
),
'REQUEST' =>
array (
'id' => '5',
),
),
'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 => 1,
),
),
'aliasMap' =>
array (
'index' => 1,
),
'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]]' => 'Congratulations!',
'[[*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 active" href="https://silkstory.net/">Home</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://silkstory.net/" />
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no">
<title>SilkStory - Congratulations!</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 active" href="https://silkstory.net/">Home</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' => '/',
'+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' => '1',
'+site_status' => '1',
'+site_unavailable_message' => '[[%site_unavailable_message]]',
'+site_unavailable_page' => '0',
'+site_url' => 'https://silkstory.net/',
'+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',
),
'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://silkstory.net/" />
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no">
<title>SilkStory - Congratulations!</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 active" href="https://silkstory.net/">Home</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>`]]<p>You have successfully installed MODX Revolution 3.0.3-pl!</p>
<p>Now that MODX is installed you can login to the manager to create your templates, manage content and install third party extras to add functionality to your website. </p>
<h2>New to MODX?</h2>
<p>Pages on a MODX site are called <a href="https://docs.modx.com/3.x/en/building-sites/resources">Resources</a>, and are visible on the left-hand side of the manager in the Resources tab. Resources can be nested under other resources, making it easy to create a tree of resources. There are different types of resources for different use cases.</p>
<p>Building your website is done through a combination of <b>Templates</b>, <b>Template Variables</b>, <b>Chunks</b>, <b>Snippets</b> and <b>Plugins</b>. Collectively these are known as <b>Elements</b>, and can also be found in the left-hand side of the manager, in the Elements tab.</p>
<p><a href="https://docs.modx.com/3.x/en/building-sites/elements/templates">Templates</a> contain the outer markup of any page. Each resource can only be assigned to a single template at a time. By adding <a href="https://docs.modx.com/3.x/en/building-sites/elements/template-variables">Template Variables</a> to a template, you can add custom fields for any resource using that particular template.</p>
<p>With <a href="https://docs.modx.com/3.x/en/building-sites/elements/chunks">Chunks</a> you can share parts of the markup, such as a header, across different templates. <a href="https://docs.modx.com/3.x/en/building-sites/elements/snippets">Snippets</a> are pieces of PHP that return dynamic content, such as summaries of other resources or the current date. With snippets, you will often use Chunks to mark up the pieces of content it returns, instead of mixing the PHP and HTML.</p>
<p>Finally, <a href="https://docs.modx.com/3.x/en/building-sites/elements/plugins">Plugins</a> enable more advanced features by hooking into the extensive events system provided by MODX.</p>
<p>To learn more about MODX, be sure to check out the <a href="https://docs.modx.com/3.x/en/getting-started">Getting Started</a> section in the official documentation.</p>
</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="">
<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>
<base href="https://silkstory.net/" />
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no">
<title>SilkStory - Congratulations!</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/index.php?id=5">Eng</a><a href="https://silkstory.net/index.php?id=5">中文</a></div></div>
</div>
</section>
<nav class="navbar navbar-light navbar-expand-md">
<div class="container"><a class="navbar-brand" href="/"><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 active" href="https://silkstory.net/">Home</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://silkstory.net/">Home</a></li></ol></nav></div>
</div>
</div><p>You have successfully installed MODX Revolution 3.0.3-pl!</p>
<p>Now that MODX is installed you can login to the manager to create your templates, manage content and install third party extras to add functionality to your website. </p>
<h2>New to MODX?</h2>
<p>Pages on a MODX site are called <a href="https://docs.modx.com/3.x/en/building-sites/resources">Resources</a>, and are visible on the left-hand side of the manager in the Resources tab. Resources can be nested under other resources, making it easy to create a tree of resources. There are different types of resources for different use cases.</p>
<p>Building your website is done through a combination of <b>Templates</b>, <b>Template Variables</b>, <b>Chunks</b>, <b>Snippets</b> and <b>Plugins</b>. Collectively these are known as <b>Elements</b>, and can also be found in the left-hand side of the manager, in the Elements tab.</p>
<p><a href="https://docs.modx.com/3.x/en/building-sites/elements/templates">Templates</a> contain the outer markup of any page. Each resource can only be assigned to a single template at a time. By adding <a href="https://docs.modx.com/3.x/en/building-sites/elements/template-variables">Template Variables</a> to a template, you can add custom fields for any resource using that particular template.</p>
<p>With <a href="https://docs.modx.com/3.x/en/building-sites/elements/chunks">Chunks</a> you can share parts of the markup, such as a header, across different templates. <a href="https://docs.modx.com/3.x/en/building-sites/elements/snippets">Snippets</a> are pieces of PHP that return dynamic content, such as summaries of other resources or the current date. With snippets, you will often use Chunks to mark up the pieces of content it returns, instead of mixing the PHP and HTML.</p>
<p>Finally, <a href="https://docs.modx.com/3.x/en/building-sites/elements/plugins">Plugins</a> enable more advanced features by hooking into the extensive events system provided by MODX.</p>
<p>To learn more about MODX, be sure to check out the <a href="https://docs.modx.com/3.x/en/getting-started">Getting Started</a> section in the official documentation.</p>
</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="在這裡搜索角色。"><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><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' => 'web',
'_processed' => true,
'_cacheKey' => '[contextKey]/resources/[id]',
'_refreshCache' => true,
'_isForward' => true,
'_jscripts' =>
array (
),
'_sjscripts' =>
array (
),
'_loadedjscripts' =>
array (
),
'showInContextMenu' => true,
'allowDrop' => -1,
'allowListingInClassKeyDropdown' => true,
'allowChildrenResources' => true,
'xpdo' => NULL,
'_policies' =>
array (
'web' =>
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' => 1,
'type' => 'document',
'pagetitle' => 'Home',
'longtitle' => 'Congratulations!',
'description' => '',
'alias' => 'index',
'link_attributes' => '',
'published' => 1,
'pub_date' => 0,
'unpub_date' => 0,
'parent' => 0,
'isfolder' => 0,
'introtext' => '',
'content' => '<p>You have successfully installed MODX Revolution [[++settings_version]]!</p>
<p>Now that MODX is installed you can login to the manager to create your templates, manage content and install third party extras to add functionality to your website. </p>
<h2>New to MODX?</h2>
<p>Pages on a MODX site are called <a href="https://docs.modx.com/3.x/en/building-sites/resources">Resources</a>, and are visible on the left-hand side of the manager in the Resources tab. Resources can be nested under other resources, making it easy to create a tree of resources. There are different types of resources for different use cases.</p>
<p>Building your website is done through a combination of <b>Templates</b>, <b>Template Variables</b>, <b>Chunks</b>, <b>Snippets</b> and <b>Plugins</b>. Collectively these are known as <b>Elements</b>, and can also be found in the left-hand side of the manager, in the Elements tab.</p>
<p><a href="https://docs.modx.com/3.x/en/building-sites/elements/templates">Templates</a> contain the outer markup of any page. Each resource can only be assigned to a single template at a time. By adding <a href="https://docs.modx.com/3.x/en/building-sites/elements/template-variables">Template Variables</a> to a template, you can add custom fields for any resource using that particular template.</p>
<p>With <a href="https://docs.modx.com/3.x/en/building-sites/elements/chunks">Chunks</a> you can share parts of the markup, such as a header, across different templates. <a href="https://docs.modx.com/3.x/en/building-sites/elements/snippets">Snippets</a> are pieces of PHP that return dynamic content, such as summaries of other resources or the current date. With snippets, you will often use Chunks to mark up the pieces of content it returns, instead of mixing the PHP and HTML.</p>
<p>Finally, <a href="https://docs.modx.com/3.x/en/building-sites/elements/plugins">Plugins</a> enable more advanced features by hooking into the extensive events system provided by MODX.</p>
<p>To learn more about MODX, be sure to check out the <a href="https://docs.modx.com/3.x/en/getting-started">Getting Started</a> section in the official documentation.</p>
',
'richtext' => 1,
'template' => 2,
'menuindex' => 0,
'searchable' => 1,
'cacheable' => 1,
'createdby' => 1,
'createdon' => 1694188253,
'editedby' => 1,
'editedon' => 1694188458,
'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' => 'index',
'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://silkstory.net/" />
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, shrink-to-fit=no">
<title>SilkStory - Congratulations!</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 active" href="https://silkstory.net/">Home</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>`]]<p>You have successfully installed MODX Revolution 3.0.3-pl!</p>
<p>Now that MODX is installed you can login to the manager to create your templates, manage content and install third party extras to add functionality to your website. </p>
<h2>New to MODX?</h2>
<p>Pages on a MODX site are called <a href="https://docs.modx.com/3.x/en/building-sites/resources">Resources</a>, and are visible on the left-hand side of the manager in the Resources tab. Resources can be nested under other resources, making it easy to create a tree of resources. There are different types of resources for different use cases.</p>
<p>Building your website is done through a combination of <b>Templates</b>, <b>Template Variables</b>, <b>Chunks</b>, <b>Snippets</b> and <b>Plugins</b>. Collectively these are known as <b>Elements</b>, and can also be found in the left-hand side of the manager, in the Elements tab.</p>
<p><a href="https://docs.modx.com/3.x/en/building-sites/elements/templates">Templates</a> contain the outer markup of any page. Each resource can only be assigned to a single template at a time. By adding <a href="https://docs.modx.com/3.x/en/building-sites/elements/template-variables">Template Variables</a> to a template, you can add custom fields for any resource using that particular template.</p>
<p>With <a href="https://docs.modx.com/3.x/en/building-sites/elements/chunks">Chunks</a> you can share parts of the markup, such as a header, across different templates. <a href="https://docs.modx.com/3.x/en/building-sites/elements/snippets">Snippets</a> are pieces of PHP that return dynamic content, such as summaries of other resources or the current date. With snippets, you will often use Chunks to mark up the pieces of content it returns, instead of mixing the PHP and HTML.</p>
<p>Finally, <a href="https://docs.modx.com/3.x/en/building-sites/elements/plugins">Plugins</a> enable more advanced features by hooking into the extensive events system provided by MODX.</p>
<p>To learn more about MODX, be sure to check out the <a href="https://docs.modx.com/3.x/en/getting-started">Getting Started</a> section in the official documentation.</p>
</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' => true,
),
'_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 (
'web' =>
array (
'MODX\\Revolution\\modAccessContext' =>
array (
'en' =>
array (
0 =>
array (
'principal' => 0,
'authority' => '0',
'policy' =>
array (
'load' => true,
),
),
),
'web' =>
array (
0 =>
array (
'principal' => 0,
'authority' => '0',
'policy' =>
array (
'load' => true,
),
),
),
'zh' =>
array (
0 =>
array (
'principal' => 0,
'authority' => '0',
'policy' =>
array (
'load' => true,
),
),
),
),
'MODX\\Revolution\\modAccessResourceGroup' =>
array (
),
'MODX\\Revolution\\modAccessCategory' =>
array (
),
'MODX\\Revolution\\Sources\\modAccessMediaSource' =>
array (
),
'MODX\\Revolution\\modAccessNamespace' =>
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' => 1,
'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 (
'web' =>
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 (
'web' =>
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 (
'web' =>
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 (
'web' =>
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 (
'web' =>
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 (
'web' =>
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 (
'web' =>
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 (
'web' =>
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 (
'web' =>
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 (
'web' =>
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 (
'web' =>
array (
),
),
'source' =>
array (
),
),
'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 (
'web' =>
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 (
'web' =>
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 (
'web' =>
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 (
'web' =>
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' => 635477,
'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' => 635593,
'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' => 636063,
'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' => 635725,
'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' => 635477,
'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' => 635593,
'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' => 636063,
'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' => 635725,
'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' => 827933,
'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' => 828132,
'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' => 827933,
'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' => 828132,
'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' => '/',
'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' => '1',
'site_status' => '1',
'site_unavailable_message' => '[[%site_unavailable_message]]',
'site_unavailable_page' => '0',
'site_url' => 'https://silkstory.net/',
'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\\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\\modDocument' =>
array (
'package' => 'MODX\\Revolution\\',
'version' => '3.0',
'extends' => 'MODX\\Revolution\\modResource',
'tableMeta' =>
array (
'engine' => 'InnoDB',
),
'fields' =>
array (
),
'fieldMeta' =>
array (
),
),
'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\\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\\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\\modContextResource' =>
array (
'package' => 'MODX\\Revolution\\',
'version' => '3.0',
'table' => 'context_resource',
'extends' => 'xPDO\\Om\\xPDOObject',
'tableMeta' =>
array (
'engine' => 'InnoDB',
),
'fields' =>
array (
'context_key' => NULL,
'resource' => NULL,
),
'fieldMeta' =>
array (
'context_key' =>
array (
'dbtype' => 'varchar',
'precision' => '191',
'phptype' => 'string',
'null' => false,
'index' => 'pk',
),
'resource' =>
array (
'dbtype' => 'int',
'precision' => '11',
'attributes' => 'unsigned',
'phptype' => 'integer',
'null' => false,
'index' => 'pk',
),
),
'indexes' =>
array (
'PRIMARY' =>
array (
'alias' => 'PRIMARY',
'primary' => true,
'unique' => true,
'columns' =>
array (
'context_key' =>
array (
'collation' => 'A',
'null' => false,
),
'resource' =>
array (
'collation' => 'A',
'null' => false,
),
),
),
),
'aggregates' =>
array (
'Context' =>
array (
'class' => 'MODX\\Revolution\\modContext',
'local' => 'context_key',
'foreign' => 'key',
'cardinality' => 'one',
'owner' => 'foreign',
),
'Resource' =>
array (
'class' => 'MODX\\Revolution\\modResource',
'local' => 'resource',
'foreign' => 'id',
'cardinality' => 'one',
'owner' => 'foreign',
),
),
),
'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\\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' => 1711719884.4016780853271484375,
'executedQueries' => 18,
'queryTime' => 0.006350040435791015625,
'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_'tstart1711719884.4016780853271484375uuid'def0bf55-2838-4224-b4e5-1bbc410290fb'