-- Table structure for table `modx_site_htmlsnippets`
--

CREATE TABLE `modx_site_htmlsnippets` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `source` int(10) unsigned NOT NULL DEFAULT '0',
  `property_preprocess` tinyint(1) unsigned NOT NULL DEFAULT '0',
  `name` varchar(50) NOT NULL DEFAULT '',
  `description` varchar(255) NOT NULL DEFAULT 'Chunk',
  `editor_type` int(11) NOT NULL DEFAULT '0',
  `category` int(11) NOT NULL DEFAULT '0',
  `cache_type` tinyint(1) NOT NULL DEFAULT '0',
  `snippet` mediumtext,
  `locked` tinyint(1) unsigned NOT NULL DEFAULT '0',
  `properties` text,
  `static` tinyint(1) unsigned NOT NULL DEFAULT '0',
  `static_file` varchar(255) NOT NULL DEFAULT '',
  PRIMARY KEY (`id`),
  UNIQUE KEY `name` (`name`),
  KEY `category` (`category`),
  KEY `locked` (`locked`),
  KEY `static` (`static`)
) ENGINE=MyISAM AUTO_INCREMENT=17 DEFAULT CHARSET=utf8;

--
-- Dumping data for table `modx_site_htmlsnippets`
--

INSERT INTO `modx_site_htmlsnippets` VALUES (1,1,0,'_head','',0,0,0,'<link rel=\"stylesheet\" href=\"[[++site_url]]tmpl/css/styles.css\"> \n<script type=\"text/javascript\" src=\"[[++site_url]]tmpl/js/jquery-1.10.1.min.js\"></script>\n<!--[if IE]>\n<script type=\"text/javascript\" src=\"[[++site_url]]tmpl/js/mootools-core-1.4.5.js\"></script>\n<script type=\"text/javascript\" src=\"[[++site_url]]tmpl/js/selectivizr-min.js\"></script>\n<script type=\"text/javascript\" src=\"[[++site_url]]tmpl/js/ie.js\"></script>\n<link type=\"text/css\" rel=\"stylesheet\" media=\"screen\" href=\"[[++site_url]]tmpl/css/ie.css\">\n<![endif]-->',0,'a:0:{}',0,''),(3,1,0,'slider','',0,0,0,'<li style=\"background-image:url([[+image]])\" title=\"[[+title]]\"></li>',0,'a:0:{}',0,''),(8,1,0,'_menu','',0,0,0,'[[!Wayfinder? &startId=`0` &level=`1` &excludeDocs=`10,31,35,39` &outerClass=`` &firstClass=`` &lastClass=``]]',0,'a:0:{}',0,''),(4,1,0,'_training','',0,0,0,'http://nails.ua/school/',0,'a:0:{}',0,''),(5,1,0,'_onlineshop','',0,0,0,'http://www.nails.ua/',0,'a:0:{}',0,''),(6,1,0,'gallery','',0,0,0,'<li>\n	<a href=\"[[+image:phpthumbof=`w=800&h=800&z=1`]]\" data-lightbox=\"gallery\" title=\"[[+title]]\"><img src=\"[[+image:phpthumbof=`w=200&h=300&zc=1`]]\" alt=\"[[+title]]\"></a>[[+description]]\n</li>',0,'a:0:{}',0,''),(7,1,0,'design','',0,0,0,'<li>\n	<a href=\"[[+image:phpthumbof=`w=800&h=800&z=1`]]\" data-lightbox=\"design\" title=\"[[+title]]\"><img src=\"[[+image:phpthumbof=`w=300&h=225&zc=1`]]\" alt=\"[[+title]]\"></a>[[+description]]\n</li>',0,'a:0:{}',0,''),(10,1,0,'button','',0,0,0,'<li><a href=\"[[+wf.link]]\" title=\"[[+wf.title]]\" class=\"button\">[[+wf.linktext]]</a></li>',0,'a:0:{}',0,''),(9,1,0,'article','',0,0,0,'<li>\n	<h2><a href=\"[[~[[+id]]]]\">[[+pagetitle]]</a></h2>\n	[[+tv.image:is=``:then=``:else=`<a href=\"[[~[[+id]]]]\"><img src=\"[[+tv.image:phpthumbof=`w=220&h=150&zc=1`]]\" alt=\"[[+pagetitle]]\" align=\"left\"></a>`]]\n	<p>[[+content:strip_tags:ellipsis=`400`]]<a href=\"[[~[[+id]]]]\">подробнее...</a></p>\n	<div class=\"clr\"></div>\n</li>',0,'a:0:{}',0,''),(11,1,0,'button1','',0,0,0,'<li><a href=\"[[+wf.link]]\" title=\"[[+wf.title]]\" class=\"button1\">[[+wf.linktext]]</a></li>',0,'a:0:{}',0,''),(12,1,0,'master','',0,0,0,'<li>\n	<a href=\"[[+image:phpthumbof=`w=800&h=800&z=1`]]\" data-lightbox=\"master\" title=\"[[+title]]\"><img src=\"[[+image:phpthumbof=`w=167&h=250&zc=1`]]\" alt=\"[[+title]]\"></a>[[+description]]\n</li>',0,'a:0:{}',0,''),(13,1,0,'notul','',0,0,0,'[[+wf.wrapper]]',0,'a:0:{}',0,''),(14,1,0,'point','',0,0,0,'[\'\"[[+pagetitle]]\". [[+tv.address:strip_tags]]\', [[+tv.lat]], [[+tv.lng]]],',0,'a:0:{}',0,''),(15,1,0,'contact','',0,0,0,'<a href=\"[[~[[+id]]]]\">\n	<h3>[[+pagetitle]]</h3>\n	[[+tv.address]]\n</a>',0,'a:0:{}',0,''),(16,1,0,'slider1','',0,0,0,'<li title=\"[[+title]]\"><img src=\"[[+image:phpthumbof=`w=808&h=460&zc=1`]]\" alt=\"[[*pagetitle]]\"></li>',0,'a:0:{}',0,'');

--
-- Table structure for table `modx_site_plugin_events`
--

CREATE TABLE `modx_site_plugin_events` (
  `pluginid` int(10) NOT NULL DEFAULT '0',
  `event` varchar(255) NOT NULL DEFAULT '',
  `priority` int(10) NOT NULL DEFAULT '0',
  `propertyset` int(10) unsigned NOT NULL DEFAULT '0',
  PRIMARY KEY (`pluginid`,`event`),
  KEY `priority` (`priority`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

--
-- Dumping data for table `modx_site_plugin_events`
--

INSERT INTO `modx_site_plugin_events` VALUES (1,'OnChunkFormPrerender',0,0),(1,'OnPluginFormPrerender',0,0),(1,'OnSnipFormPrerender',0,0),(1,'OnTempFormPrerender',0,0),(1,'OnFileEditFormPrerender',0,0),(1,'OnDocFormPrerender',0,0),(1,'OnRichTextEditorRegister',0,0),(2,'OnRichTextBrowserInit',0,0),(2,'OnRichTextEditorRegister',0,0),(2,'OnRichTextEditorInit',0,0),(3,'OnSiteRefresh',0,0),(4,'OnDocFormPrerender',0,0),(4,'OnTVInputPropertiesList',0,0),(4,'OnTVInputRenderList',0,0),(5,'OnDocFormPrerender',0,0);

--
-- Table structure for table `modx_site_plugins`
--

CREATE TABLE `modx_site_plugins` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `source` int(10) unsigned NOT NULL DEFAULT '0',
  `property_preprocess` tinyint(1) unsigned NOT NULL DEFAULT '0',
  `name` varchar(50) NOT NULL DEFAULT '',
  `description` varchar(255) NOT NULL DEFAULT '',
  `editor_type` int(11) NOT NULL DEFAULT '0',
  `category` int(11) NOT NULL DEFAULT '0',
  `cache_type` tinyint(1) NOT NULL DEFAULT '0',
  `plugincode` mediumtext NOT NULL,
  `locked` tinyint(1) unsigned NOT NULL DEFAULT '0',
  `properties` text,
  `disabled` tinyint(1) unsigned NOT NULL DEFAULT '0',
  `moduleguid` varchar(32) NOT NULL DEFAULT '',
  `static` tinyint(1) unsigned NOT NULL DEFAULT '0',
  `static_file` varchar(255) NOT NULL DEFAULT '',
  PRIMARY KEY (`id`),
  UNIQUE KEY `name` (`name`),
  KEY `category` (`category`),
  KEY `locked` (`locked`),
  KEY `disabled` (`disabled`),
  KEY `static` (`static`)
) ENGINE=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;

--
-- Dumping data for table `modx_site_plugins`
--

INSERT INTO `modx_site_plugins` VALUES (1,0,0,'CodeMirror','CodeMirror 2.2.1-pl plugin for MODx Revolution',0,0,0,'/**\n * @var modX $modx\n * @var array $scriptProperties\n *\n * @package codemirror\n */\nif ($modx->event->name == \'OnRichTextEditorRegister\') {\n    $modx->event->output(\'CodeMirror\');\n    return;\n}\n\n$eventArray = array(\n    \'element\'=>array(\n		\'OnSnipFormPrerender\',\n		\'OnTempFormPrerender\',\n		\'OnChunkFormPrerender\',\n		\'OnPluginFormPrerender\',\n		/*\'OnTVFormPrerender\'*/\n		\'OnFileEditFormPrerender\',\n		\'OnFileEditFormPrerender\',\n		),\n	\'other\'=>array(\n		\'OnDocFormPrerender\',\n		\'OnRichTextEditorInit\',\n		\'OnRichTextBrowserInit\'\n	)\n);\nif ((in_array($modx->event->name,$eventArray[\'element\']) && $modx->getOption(\'which_element_editor\',null,\'CodeMirror\') != \'CodeMirror\') || (in_array($modx->event->name,$eventArray[\'other\']) && $modx->getOption(\'which_editor\',null,\'CodeMirror\') != \'CodeMirror\')) return;\n\nif (!$modx->getOption(\'use_editor\',null,true)) return;\nif (!$modx->getOption(\'codemirror.enable\',null,true)) return;\n\n/** @var CodeMirror $codeMirror */\n$codeMirror = $modx->getService(\'codemirror\',\'CodeMirror\',$modx->getOption(\'codemirror.core_path\',null,$modx->getOption(\'core_path\').\'components/codemirror/\').\'model/codemirror/\');\nif (!($codeMirror instanceof CodeMirror)) return \'\';\n\n$options = array(\n    \'modx_path\' => $codeMirror->config[\'assetsUrl\'],\n    \'theme\' => $modx->getOption(\'theme\',$scriptProperties,\'default\'),\n\n    \'indentUnit\' => (int)$modx->getOption(\'indentUnit\',$scriptProperties,$modx->getOption(\'indent_unit\',$scriptProperties,2)),\n    \'smartIndent\' => (boolean)$modx->getOption(\'smartIndent\',$scriptProperties,false),\n    \'tabSize\' => (int)$modx->getOption(\'tabSize\',$scriptProperties,4),\n    \'indentWithTabs\' => (boolean)$modx->getOption(\'indentWithTabs\',$scriptProperties,true),\n    \'electricChars\' => (boolean)$modx->getOption(\'electricChars\',$scriptProperties,true),\n    \'autoClearEmptyLines\' => (boolean)$modx->getOption(\'electricChars\',$scriptProperties,false),\n\n    \'lineWrapping\' => (boolean)$modx->getOption(\'lineWrapping\',$scriptProperties,true),\n    \'lineNumbers\' => (boolean)$modx->getOption(\'lineNumbers\',$scriptProperties,$modx->getOption(\'line_numbers\',$scriptProperties,true)),\n    \'firstLineNumber\' => (int)$modx->getOption(\'firstLineNumber\',$scriptProperties,1),\n    \'highlightLine\' => (boolean)$modx->getOption(\'highlightLine\',$scriptProperties,true),\n    \'matchBrackets\' => (boolean)$modx->getOption(\'matchBrackets\',$scriptProperties,true),\n    \'showSearchForm\' => (boolean)$modx->getOption(\'showSearchForm\',$scriptProperties,true),\n    \'undoDepth\' => $modx->getOption(\'undoDepth\',$scriptProperties,40),\n);\n\n$load = false;\nswitch ($modx->event->name) {\n    case \'OnSnipFormPrerender\':\n        $options[\'modx_loader\'] = \'onSnippet\';\n        $options[\'mode\'] = \'php\';\n        $load = true;\n        break;\n    case \'OnTempFormPrerender\':\n        $options[\'modx_loader\'] = \'onTemplate\';\n        $options[\'mode\'] = \'htmlmixed\';\n        $load = true;\n        break;\n    case \'OnChunkFormPrerender\':\n        $options[\'modx_loader\'] = \'onChunk\';\n        $options[\'mode\'] = \'htmlmixed\';\n        $load = true;\n        break;\n    case \'OnPluginFormPrerender\':\n        $options[\'modx_loader\'] = \'onPlugin\';\n        $options[\'mode\'] = \'php\';\n        $load = true;\n        break;\n    /* disabling TVs for now, since it causes problems with newlines\n    case \'OnTVFormPrerender\':\n        $options[\'modx_loader\'] = \'onTV\';\n        $options[\'height\'] = \'250px\';\n        $load = true;\n        break;*/\n    case \'OnFileEditFormPrerender\':\n        $options[\'modx_loader\'] = \'onFile\';\n        $options[\'mode\'] = \'php\';\n        $load = true;\n        break;\n    case \'OnDocFormPrerender\':\n    	$options[\'modx_loader\'] = \'onResource\';\n        $options[\'mode\'] = \'htmlmixed\';\n        $load = true;\n    	break;\n    /* debated whether or not to use */\n    case \'OnRichTextEditorInit\':\n        break;\n    case \'OnRichTextBrowserInit\':\n        break;\n}\n\nif ($load) {\n    $options[\'searchTpl\'] = $codeMirror->getChunk(\'codemirror.search\');\n\n    $modx->regClientStartupHTMLBlock(\'<script type=\"text/javascript\">MODx.codem = \'.$modx->toJSON($options).\';</script>\');\n    $modx->regClientCSS($codeMirror->config[\'assetsUrl\'].\'css/codemirror-compressed.css\');\n    $modx->regClientCSS($codeMirror->config[\'assetsUrl\'].\'css/cm.css\');\n    if ($options[\'theme\'] != \'default\') {\n        $modx->regClientCSS($codeMirror->config[\'assetsUrl\'].\'cm/theme/\'.$options[\'theme\'].\'.css\');\n    }\n    $modx->regClientStartupScript($codeMirror->config[\'assetsUrl\'].\'js/codemirror-compressed.js\');\n    $modx->regClientStartupScript($codeMirror->config[\'assetsUrl\'].\'js/cm.js\');\n}\n\nreturn;',0,'a:14:{s:5:\"theme\";a:7:{s:4:\"name\";s:5:\"theme\";s:4:\"desc\";s:18:\"prop_cm.theme_desc\";s:4:\"type\";s:4:\"list\";s:7:\"options\";a:14:{i:0;a:2:{s:4:\"text\";s:7:\"default\";s:5:\"value\";s:7:\"default\";}i:1;a:2:{s:4:\"text\";s:8:\"ambiance\";s:5:\"value\";s:8:\"ambiance\";}i:2;a:2:{s:4:\"text\";s:10:\"blackboard\";s:5:\"value\";s:10:\"blackboard\";}i:3;a:2:{s:4:\"text\";s:6:\"cobalt\";s:5:\"value\";s:6:\"cobalt\";}i:4;a:2:{s:4:\"text\";s:7:\"eclipse\";s:5:\"value\";s:7:\"eclipse\";}i:5;a:2:{s:4:\"text\";s:7:\"elegant\";s:5:\"value\";s:7:\"elegant\";}i:6;a:2:{s:4:\"text\";s:11:\"erlang-dark\";s:5:\"value\";s:11:\"erlang-dark\";}i:7;a:2:{s:4:\"text\";s:11:\"lesser-dark\";s:5:\"value\";s:11:\"lesser-dark\";}i:8;a:2:{s:4:\"text\";s:7:\"monokai\";s:5:\"value\";s:7:\"monokai\";}i:9;a:2:{s:4:\"text\";s:4:\"neat\";s:5:\"value\";s:4:\"near\";}i:10;a:2:{s:4:\"text\";s:5:\"night\";s:5:\"value\";s:5:\"night\";}i:11;a:2:{s:4:\"text\";s:8:\"rubyblue\";s:5:\"value\";s:8:\"rubyblue\";}i:12;a:2:{s:4:\"text\";s:11:\"vibrant-ink\";s:5:\"value\";s:11:\"vibrant-ink\";}i:13;a:2:{s:4:\"text\";s:7:\"xq-dark\";s:5:\"value\";s:7:\"xq-dark\";}}s:5:\"value\";s:7:\"default\";s:7:\"lexicon\";s:21:\"codemirror:properties\";s:4:\"area\";s:0:\"\";}s:10:\"indentUnit\";a:7:{s:4:\"name\";s:10:\"indentUnit\";s:4:\"desc\";s:23:\"prop_cm.indentUnit_desc\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";i:2;s:7:\"lexicon\";s:21:\"codemirror:properties\";s:4:\"area\";s:0:\"\";}s:11:\"smartIndent\";a:7:{s:4:\"name\";s:11:\"smartIndent\";s:4:\"desc\";s:24:\"prop_cm.smartIndent_desc\";s:4:\"type\";s:13:\"combo-boolean\";s:7:\"options\";s:0:\"\";s:5:\"value\";b:0;s:7:\"lexicon\";s:21:\"codemirror:properties\";s:4:\"area\";s:0:\"\";}s:7:\"tabSize\";a:7:{s:4:\"name\";s:7:\"tabSize\";s:4:\"desc\";s:20:\"prop_cm.tabSize_desc\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";i:4;s:7:\"lexicon\";s:21:\"codemirror:properties\";s:4:\"area\";s:0:\"\";}s:14:\"indentWithTabs\";a:7:{s:4:\"name\";s:14:\"indentWithTabs\";s:4:\"desc\";s:27:\"prop_cm.indentWithTabs_desc\";s:4:\"type\";s:13:\"combo-boolean\";s:7:\"options\";s:0:\"\";s:5:\"value\";b:1;s:7:\"lexicon\";s:21:\"codemirror:properties\";s:4:\"area\";s:0:\"\";}s:13:\"electricChars\";a:7:{s:4:\"name\";s:13:\"electricChars\";s:4:\"desc\";s:26:\"prop_cm.electricChars_desc\";s:4:\"type\";s:13:\"combo-boolean\";s:7:\"options\";s:0:\"\";s:5:\"value\";b:1;s:7:\"lexicon\";s:21:\"codemirror:properties\";s:4:\"area\";s:0:\"\";}s:19:\"autoClearEmptyLines\";a:7:{s:4:\"name\";s:19:\"autoClearEmptyLines\";s:4:\"desc\";s:32:\"prop_cm.autoClearEmptyLines_desc\";s:4:\"type\";s:13:\"combo-boolean\";s:7:\"options\";s:0:\"\";s:5:\"value\";b:0;s:7:\"lexicon\";s:21:\"codemirror:properties\";s:4:\"area\";s:0:\"\";}s:12:\"lineWrapping\";a:7:{s:4:\"name\";s:12:\"lineWrapping\";s:4:\"desc\";s:25:\"prop_cm.lineWrapping_desc\";s:4:\"type\";s:13:\"combo-boolean\";s:7:\"options\";s:0:\"\";s:5:\"value\";b:1;s:7:\"lexicon\";s:21:\"codemirror:properties\";s:4:\"area\";s:0:\"\";}s:11:\"lineNumbers\";a:7:{s:4:\"name\";s:11:\"lineNumbers\";s:4:\"desc\";s:24:\"prop_cm.lineNumbers_desc\";s:4:\"type\";s:13:\"combo-boolean\";s:7:\"options\";s:0:\"\";s:5:\"value\";b:1;s:7:\"lexicon\";s:21:\"codemirror:properties\";s:4:\"area\";s:0:\"\";}s:15:\"firstLineNumber\";a:7:{s:4:\"name\";s:15:\"firstLineNumber\";s:4:\"desc\";s:28:\"prop_cm.firstLineNumber_desc\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";i:1;s:7:\"lexicon\";s:21:\"codemirror:properties\";s:4:\"area\";s:0:\"\";}s:13:\"highlightLine\";a:7:{s:4:\"name\";s:13:\"highlightLine\";s:4:\"desc\";s:26:\"prop_cm.highlightLine_desc\";s:4:\"type\";s:13:\"combo-boolean\";s:7:\"options\";s:0:\"\";s:5:\"value\";b:1;s:7:\"lexicon\";s:21:\"codemirror:properties\";s:4:\"area\";s:0:\"\";}s:13:\"matchBrackets\";a:7:{s:4:\"name\";s:13:\"matchBrackets\";s:4:\"desc\";s:26:\"prop_cm.matchBrackets_desc\";s:4:\"type\";s:13:\"combo-boolean\";s:7:\"options\";s:0:\"\";s:5:\"value\";b:1;s:7:\"lexicon\";s:21:\"codemirror:properties\";s:4:\"area\";s:0:\"\";}s:14:\"showSearchForm\";a:7:{s:4:\"name\";s:14:\"showSearchForm\";s:4:\"desc\";s:27:\"prop_cm.showSearchForm_desc\";s:4:\"type\";s:13:\"combo-boolean\";s:7:\"options\";s:0:\"\";s:5:\"value\";b:1;s:7:\"lexicon\";s:21:\"codemirror:properties\";s:4:\"area\";s:0:\"\";}s:9:\"undoDepth\";a:7:{s:4:\"name\";s:9:\"undoDepth\";s:4:\"desc\";s:22:\"prop_cm.undoDepth_desc\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";i:40;s:7:\"lexicon\";s:21:\"codemirror:properties\";s:4:\"area\";s:0:\"\";}}',0,'',0,''),(2,0,0,'TinyMCE','TinyMCE 4.3.3-pl plugin for MODx Revolution',0,0,0,'/**\n * TinyMCE RichText Editor Plugin\n *\n * Events: OnRichTextEditorInit, OnRichTextEditorRegister,\n * OnBeforeManagerPageInit, OnRichTextBrowserInit\n *\n * @author Jeff Whitfield <jeff@collabpad.com>\n * @author Shaun McCormick <shaun@collabpad.com>\n *\n * @var modX $modx\n * @var array $scriptProperties\n *\n * @package tinymce\n * @subpackage build\n */\nif ($modx->event->name == \'OnRichTextEditorRegister\') {\n    $modx->event->output(\'TinyMCE\');\n    return;\n}\nrequire_once $modx->getOption(\'tiny.core_path\',null,$modx->getOption(\'core_path\').\'components/tinymce/\').\'tinymce.class.php\';\n$tiny = new TinyMCE($modx,$scriptProperties);\n\n$useEditor = $tiny->context->getOption(\'use_editor\',false);\n$whichEditor = $tiny->context->getOption(\'which_editor\',\'\');\n\n/* Handle event */\nswitch ($modx->event->name) {\n    case \'OnRichTextEditorInit\':\n        if ($useEditor && $whichEditor == \'TinyMCE\') {\n            unset($scriptProperties[\'chunk\']);\n            if (isset($forfrontend) || $modx->context->get(\'key\') != \'mgr\') {\n                $def = $tiny->context->getOption(\'cultureKey\',$tiny->context->getOption(\'manager_language\',\'en\'));\n                $tiny->properties[\'language\'] = $modx->getOption(\'fe_editor_lang\',array(),$def);\n                $tiny->properties[\'frontend\'] = true;\n                unset($def);\n            }\n            /* commenting these out as it causes problems with richtext tvs */\n            //if (isset($scriptProperties[\'resource\']) && !$resource->get(\'richtext\')) return;\n            //if (!isset($scriptProperties[\'resource\']) && !$modx->getOption(\'richtext_default\',null,false)) return;\n            $tiny->setProperties($scriptProperties);\n            $html = $tiny->initialize();\n            $modx->event->output($html);\n            unset($html);\n        }\n        break;\n    case \'OnRichTextBrowserInit\':\n        if ($useEditor && $whichEditor == \'TinyMCE\') {\n            $inRevo20 = (boolean)version_compare($modx->version[\'full_version\'],\'2.1.0-rc1\',\'<\');\n            $modx->getVersionData();\n            $source = $tiny->context->getOption(\'default_media_source\',null,1);\n            \n            $modx->controller->addHtml(\'<script type=\"text/javascript\">var inRevo20 = \'.($inRevo20 ? 1 : 0).\';MODx.source = \"\'.$source.\'\";</script>\');\n            \n            $modx->controller->addJavascript($tiny->config[\'assetsUrl\'].\'jscripts/tiny_mce/tiny_mce_popup.js\');\n            if (file_exists($tiny->config[\'assetsPath\'].\'jscripts/tiny_mce/langs/\'.$tiny->properties[\'language\'].\'.js\')) {\n                $modx->controller->addJavascript($tiny->config[\'assetsUrl\'].\'jscripts/tiny_mce/langs/\'.$tiny->properties[\'language\'].\'.js\');\n            } else {\n                $modx->controller->addJavascript($tiny->config[\'assetsUrl\'].\'jscripts/tiny_mce/langs/en.js\');\n            }\n            $modx->controller->addJavascript($tiny->config[\'assetsUrl\'].\'tiny.browser.js\');\n            $modx->event->output(\'Tiny.browserCallback\');\n        }\n        return \'\';\n        break;\n\n   default: break;\n}\nreturn;',0,'a:39:{s:22:\"accessibility_warnings\";a:7:{s:4:\"name\";s:22:\"accessibility_warnings\";s:4:\"desc\";s:315:\"If this option is set to true some accessibility warnings will be presented to the user if they miss specifying that information. This option is set to true by default, since we should all try to make this world a better place for disabled people. But if you are annoyed with the warnings, set this option to false.\";s:4:\"type\";s:13:\"combo-boolean\";s:7:\"options\";s:0:\"\";s:5:\"value\";b:1;s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:23:\"apply_source_formatting\";a:7:{s:4:\"name\";s:23:\"apply_source_formatting\";s:4:\"desc\";s:229:\"This option enables you to tell TinyMCE to apply some source formatting to the output HTML code. With source formatting, the output HTML code is indented and formatted. Without source formatting, the output HTML is more compact. \";s:4:\"type\";s:13:\"combo-boolean\";s:7:\"options\";s:0:\"\";s:5:\"value\";b:1;s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:15:\"button_tile_map\";a:7:{s:4:\"name\";s:15:\"button_tile_map\";s:4:\"desc\";s:338:\"If this option is set to true TinyMCE will use tiled images instead of individual images for most of the editor controls. This produces faster loading time since only one GIF image needs to be loaded instead of a GIF for each individual button. This option is set to false by default since it doesn\'t work with some DOCTYPE declarations. \";s:4:\"type\";s:13:\"combo-boolean\";s:7:\"options\";s:0:\"\";s:5:\"value\";b:0;s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:7:\"cleanup\";a:7:{s:4:\"name\";s:7:\"cleanup\";s:4:\"desc\";s:331:\"This option enables or disables the built-in clean up functionality. TinyMCE is equipped with powerful clean up functionality that enables you to specify what elements and attributes are allowed and how HTML contents should be generated. This option is set to true by default, but if you want to disable it you may set it to false.\";s:4:\"type\";s:13:\"combo-boolean\";s:7:\"options\";s:0:\"\";s:5:\"value\";b:1;s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:18:\"cleanup_on_startup\";a:7:{s:4:\"name\";s:18:\"cleanup_on_startup\";s:4:\"desc\";s:135:\"If you set this option to true, TinyMCE will perform a HTML cleanup call when the editor loads. This option is set to false by default.\";s:4:\"type\";s:13:\"combo-boolean\";s:7:\"options\";s:0:\"\";s:5:\"value\";b:0;s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:22:\"convert_fonts_to_spans\";a:7:{s:4:\"name\";s:22:\"convert_fonts_to_spans\";s:4:\"desc\";s:348:\"If you set this option to true, TinyMCE will convert all font elements to span elements and generate span elements instead of font elements. This option should be used in order to get more W3C compatible code, since font elements are deprecated. How sizes get converted can be controlled by the font_size_classes and font_size_style_values options.\";s:4:\"type\";s:13:\"combo-boolean\";s:7:\"options\";s:0:\"\";s:5:\"value\";b:1;s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:23:\"convert_newlines_to_brs\";a:7:{s:4:\"name\";s:23:\"convert_newlines_to_brs\";s:4:\"desc\";s:128:\"If you set this option to true, newline characters codes get converted into br elements. This option is set to false by default.\";s:4:\"type\";s:13:\"combo-boolean\";s:7:\"options\";s:0:\"\";s:5:\"value\";b:0;s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:12:\"convert_urls\";a:7:{s:4:\"name\";s:12:\"convert_urls\";s:4:\"desc\";s:495:\"This option enables you to control whether TinyMCE is to be clever and restore URLs to their original values. URLs are automatically converted (messed up) by default because the built-in browser logic works this way. There is no way to get the real URL unless you store it away. If you set this option to false it will try to keep these URLs intact. This option is set to true by default, which means URLs will be forced to be either absolute or relative depending on the state of relative_urls.\";s:4:\"type\";s:13:\"combo-boolean\";s:7:\"options\";s:0:\"\";s:5:\"value\";b:1;s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:11:\"dialog_type\";a:7:{s:4:\"name\";s:11:\"dialog_type\";s:4:\"desc\";s:246:\"This option enables you to specify how dialogs/popups should be opened. Possible values are \"window\" and \"modal\", where the window option opens a normal window and the dialog option opens a modal dialog. This option is set to \"window\" by default.\";s:4:\"type\";s:4:\"list\";s:7:\"options\";a:2:{i:0;a:2:{i:0;s:6:\"window\";s:4:\"text\";s:6:\"Window\";}i:1;a:2:{i:0;s:5:\"modal\";s:4:\"text\";s:5:\"Modal\";}}s:5:\"value\";s:6:\"window\";s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:14:\"directionality\";a:7:{s:4:\"name\";s:14:\"directionality\";s:4:\"desc\";s:261:\"This option specifies the default writing direction. Some languages (Like Hebrew, Arabic, Urdu...) write from right to left instead of left to right. The default value of this option is \"ltr\" but if you want to use from right to left mode specify \"rtl\" instead.\";s:4:\"type\";s:4:\"list\";s:7:\"options\";a:2:{i:0;a:2:{s:5:\"value\";s:3:\"ltr\";s:4:\"text\";s:13:\"Left to Right\";}i:1;a:2:{s:5:\"value\";s:3:\"rtl\";s:4:\"text\";s:13:\"Right to Left\";}}s:5:\"value\";s:3:\"ltr\";s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:14:\"element_format\";a:7:{s:4:\"name\";s:14:\"element_format\";s:4:\"desc\";s:210:\"This option enables control if elements should be in html or xhtml mode. xhtml is the default state for this option. This means that for example &lt;br /&gt; will be &lt;br&gt; if you set this option to \"html\".\";s:4:\"type\";s:4:\"list\";s:7:\"options\";a:2:{i:0;a:2:{s:5:\"value\";s:5:\"xhtml\";s:4:\"text\";s:5:\"XHTML\";}i:1;a:2:{s:5:\"value\";s:4:\"html\";s:4:\"text\";s:4:\"HTML\";}}s:5:\"value\";s:5:\"xhtml\";s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:15:\"entity_encoding\";a:7:{s:4:\"name\";s:15:\"entity_encoding\";s:4:\"desc\";s:70:\"This option controls how entities/characters get processed by TinyMCE.\";s:4:\"type\";s:4:\"list\";s:7:\"options\";a:4:{i:0;a:2:{s:5:\"value\";s:0:\"\";s:4:\"text\";s:4:\"None\";}i:1;a:2:{s:5:\"value\";s:5:\"named\";s:4:\"text\";s:5:\"Named\";}i:2;a:2:{s:5:\"value\";s:7:\"numeric\";s:4:\"text\";s:7:\"Numeric\";}i:3;a:2:{s:5:\"value\";s:3:\"raw\";s:4:\"text\";s:3:\"Raw\";}}s:5:\"value\";s:0:\"\";s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:16:\"force_p_newlines\";a:7:{s:4:\"name\";s:16:\"force_p_newlines\";s:4:\"desc\";s:147:\"This option enables you to disable/enable the creation of paragraphs on return/enter in Mozilla/Firefox. The default value of this option is true. \";s:4:\"type\";s:13:\"combo-boolean\";s:7:\"options\";s:0:\"\";s:5:\"value\";b:1;s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:22:\"force_hex_style_colors\";a:7:{s:4:\"name\";s:22:\"force_hex_style_colors\";s:4:\"desc\";s:277:\"This option enables you to control TinyMCE to force the color format to use hexadecimal instead of rgb strings. It converts for example \"color: rgb(255, 255, 0)\" to \"#FFFF00\". This option is set to true by default since otherwice MSIE and Firefox would differ in this behavior.\";s:4:\"type\";s:13:\"combo-boolean\";s:7:\"options\";s:0:\"\";s:5:\"value\";b:1;s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:6:\"height\";a:7:{s:4:\"name\";s:6:\"height\";s:4:\"desc\";s:38:\"Sets the height of the TinyMCE editor.\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:5:\"400px\";s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:11:\"indentation\";a:7:{s:4:\"name\";s:11:\"indentation\";s:4:\"desc\";s:139:\"This option allows specification of the indentation level for indent/outdent buttons in the UI. This defaults to 30px but can be any value.\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:4:\"30px\";s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:16:\"invalid_elements\";a:7:{s:4:\"name\";s:16:\"invalid_elements\";s:4:\"desc\";s:163:\"This option should contain a comma separated list of element names to exclude from the content. Elements in this list will removed when TinyMCE executes a cleanup.\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:0:\"\";s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:6:\"nowrap\";a:7:{s:4:\"name\";s:6:\"nowrap\";s:4:\"desc\";s:212:\"This nowrap option enables you to control how whitespace is to be wordwrapped within the editor. This option is set to false by default, but if you enable it by setting it to true editor contents will never wrap.\";s:4:\"type\";s:13:\"combo-boolean\";s:7:\"options\";s:0:\"\";s:5:\"value\";b:0;s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:15:\"object_resizing\";a:7:{s:4:\"name\";s:15:\"object_resizing\";s:4:\"desc\";s:148:\"This option gives you the ability to turn on/off the inline resizing controls of tables and images in Firefox/Mozilla. These are enabled by default.\";s:4:\"type\";s:13:\"combo-boolean\";s:7:\"options\";s:0:\"\";s:5:\"value\";b:1;s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:12:\"path_options\";a:7:{s:4:\"name\";s:12:\"path_options\";s:4:\"desc\";s:119:\"Sets a group of options. Note: This will override the relative_urls, document_base_url and remove_script_host settings.\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";a:3:{i:0;a:2:{s:5:\"value\";s:11:\"docrelative\";s:4:\"text\";s:17:\"Document Relative\";}i:1;a:2:{s:5:\"value\";s:12:\"rootrelative\";s:4:\"text\";s:13:\"Root Relative\";}i:2;a:2:{s:5:\"value\";s:11:\"fullpathurl\";s:4:\"text\";s:13:\"Full Path URL\";}}s:5:\"value\";s:11:\"docrelative\";s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:28:\"plugin_insertdate_dateFormat\";a:7:{s:4:\"name\";s:28:\"plugin_insertdate_dateFormat\";s:4:\"desc\";s:53:\"Formatting of dates when using the InsertDate plugin.\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:8:\"%Y-%m-%d\";s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:28:\"plugin_insertdate_timeFormat\";a:7:{s:4:\"name\";s:28:\"plugin_insertdate_timeFormat\";s:4:\"desc\";s:53:\"Formatting of times when using the InsertDate plugin.\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:8:\"%H:%M:%S\";s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:12:\"preformatted\";a:7:{s:4:\"name\";s:12:\"preformatted\";s:4:\"desc\";s:231:\"If you enable this feature, whitespace such as tabs and spaces will be preserved. Much like the behavior of a &lt;pre&gt; element. This can be handy when integrating TinyMCE with webmail clients. This option is disabled by default.\";s:4:\"type\";s:13:\"combo-boolean\";s:7:\"options\";s:0:\"\";s:5:\"value\";b:1;s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:13:\"relative_urls\";a:7:{s:4:\"name\";s:13:\"relative_urls\";s:4:\"desc\";s:231:\"If this option is set to true, all URLs returned from the file manager will be relative from the specified document_base_url. If it is set to false all URLs will be converted to absolute URLs. This option is set to true by default.\";s:4:\"type\";s:13:\"combo-boolean\";s:7:\"options\";s:0:\"\";s:5:\"value\";b:1;s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:17:\"remove_linebreaks\";a:7:{s:4:\"name\";s:17:\"remove_linebreaks\";s:4:\"desc\";s:531:\"This option controls whether line break characters should be removed from output HTML. This option is enabled by default because there are differences between browser implementations regarding what to do with white space in the DOM. Gecko and Safari place white space in text nodes in the DOM. IE and Opera remove them from the DOM and therefore the line breaks will automatically be removed in those. This option will normalize this behavior when enabled (true) and all browsers will have a white-space-stripped DOM serialization.\";s:4:\"type\";s:13:\"combo-boolean\";s:7:\"options\";s:0:\"\";s:5:\"value\";b:0;s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:18:\"remove_script_host\";a:7:{s:4:\"name\";s:18:\"remove_script_host\";s:4:\"desc\";s:221:\"If this option is enabled the protocol and host part of the URLs returned from the file manager will be removed. This option is only used if the relative_urls option is set to false. This option is set to true by default.\";s:4:\"type\";s:13:\"combo-boolean\";s:7:\"options\";s:0:\"\";s:5:\"value\";b:1;s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:20:\"remove_trailing_nbsp\";a:7:{s:4:\"name\";s:20:\"remove_trailing_nbsp\";s:4:\"desc\";s:392:\"This option enables you to specify that TinyMCE should remove any traling &nbsp; characters in block elements if you start to write inside them. Paragraphs are default padded with a &nbsp; and if you write text into such paragraphs the space will remain. Setting this option to true will remove the space. This option is set to false by default since the cursor jumps a bit in Gecko browsers.\";s:4:\"type\";s:13:\"combo-boolean\";s:7:\"options\";s:0:\"\";s:5:\"value\";b:0;s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:4:\"skin\";a:7:{s:4:\"name\";s:4:\"skin\";s:4:\"desc\";s:330:\"This option enables you to specify what skin you want to use with your theme. A skin is basically a CSS file that gets loaded from the skins directory inside the theme. The advanced theme that TinyMCE comes with has two skins, these are called \"default\" and \"o2k7\". We added another skin named \"cirkuit\" that is chosen by default.\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:7:\"cirkuit\";s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:12:\"skin_variant\";a:7:{s:4:\"name\";s:12:\"skin_variant\";s:4:\"desc\";s:403:\"This option enables you to specify a variant for the skin, for example \"silver\" or \"black\". \"default\" skin does not offer any variant, whereas \"o2k7\" default offers \"silver\" or \"black\" variants to the default one. For the \"cirkuit\" skin there\'s one variant named \"silver\". When creating a skin, additional variants may also be created, by adding ui_[variant_name].css files alongside the default ui.css.\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:0:\"\";s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:20:\"table_inline_editing\";a:7:{s:4:\"name\";s:20:\"table_inline_editing\";s:4:\"desc\";s:231:\"This option gives you the ability to turn on/off the inline table editing controls in Firefox/Mozilla. According to the TinyMCE documentation, these controls are somewhat buggy and not redesignable, so they are disabled by default.\";s:4:\"type\";s:13:\"combo-boolean\";s:7:\"options\";s:0:\"\";s:5:\"value\";b:1;s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:22:\"theme_advanced_disable\";a:7:{s:4:\"name\";s:22:\"theme_advanced_disable\";s:4:\"desc\";s:111:\"This option should contain a comma separated list of controls to disable from any toolbar row/panel in TinyMCE.\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:0:\"\";s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:19:\"theme_advanced_path\";a:7:{s:4:\"name\";s:19:\"theme_advanced_path\";s:4:\"desc\";s:331:\"This option gives you the ability to enable/disable the element path. This option is only useful if the theme_advanced_statusbar_location option is set to \"top\" or \"bottom\". This option is set to \"true\" by default. Setting this option to \"false\" will effectively hide the path tool, though it still takes up room in the Status Bar.\";s:4:\"type\";s:13:\"combo-boolean\";s:7:\"options\";s:0:\"\";s:5:\"value\";b:1;s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:32:\"theme_advanced_resize_horizontal\";a:7:{s:4:\"name\";s:32:\"theme_advanced_resize_horizontal\";s:4:\"desc\";s:319:\"This option gives you the ability to enable/disable the horizontal resizing. This option is only useful if the theme_advanced_statusbar_location option is set to \"top\" or \"bottom\" and when the theme_advanced_resizing is set to true. This option is set to true by default, allowing both resizing horizontal and vertical.\";s:4:\"type\";s:13:\"combo-boolean\";s:7:\"options\";s:0:\"\";s:5:\"value\";b:1;s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:23:\"theme_advanced_resizing\";a:7:{s:4:\"name\";s:23:\"theme_advanced_resizing\";s:4:\"desc\";s:216:\"This option gives you the ability to enable/disable the resizing button. This option is only useful if the theme_advanced_statusbar_location option is set to \"top\" or \"bottom\". This option is set to false by default.\";s:4:\"type\";s:13:\"combo-boolean\";s:7:\"options\";s:0:\"\";s:5:\"value\";b:1;s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:33:\"theme_advanced_statusbar_location\";a:7:{s:4:\"name\";s:33:\"theme_advanced_statusbar_location\";s:4:\"desc\";s:257:\"This option enables you to specify where the element statusbar with the path and resize tool should be located. This option can be set to \"top\" or \"bottom\". The default value is set to \"top\". This option can only be used when the theme is set to \"advanced\".\";s:4:\"type\";s:4:\"list\";s:7:\"options\";a:2:{i:0;a:2:{s:5:\"value\";s:3:\"top\";s:4:\"text\";s:3:\"Top\";}i:1;a:2:{s:5:\"value\";s:6:\"bottom\";s:4:\"text\";s:6:\"Bottom\";}}s:5:\"value\";s:6:\"bottom\";s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:28:\"theme_advanced_toolbar_align\";a:7:{s:4:\"name\";s:28:\"theme_advanced_toolbar_align\";s:4:\"desc\";s:187:\"This option enables you to specify the alignment of the toolbar, this value can be \"left\", \"right\" or \"center\" (the default). This option can only be used when theme is set to \"advanced\".\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";a:3:{i:0;a:2:{s:5:\"value\";s:6:\"center\";s:4:\"text\";s:6:\"Center\";}i:1;a:2:{s:5:\"value\";s:4:\"left\";s:4:\"text\";s:4:\"Left\";}i:2;a:2:{s:5:\"value\";s:5:\"right\";s:4:\"text\";s:5:\"Right\";}}s:5:\"value\";s:4:\"left\";s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:31:\"theme_advanced_toolbar_location\";a:7:{s:4:\"name\";s:31:\"theme_advanced_toolbar_location\";s:4:\"desc\";s:191:\"\nThis option enables you to specify where the toolbar should be located. This option can be set to \"top\" or \"bottom\" (the defualt). This option can only be used when theme is set to advanced.\";s:4:\"type\";s:4:\"list\";s:7:\"options\";a:2:{i:0;a:2:{s:5:\"value\";s:3:\"top\";s:4:\"text\";s:3:\"Top\";}i:1;a:2:{s:5:\"value\";s:6:\"bottom\";s:4:\"text\";s:6:\"Bottom\";}}s:5:\"value\";s:3:\"top\";s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:5:\"width\";a:7:{s:4:\"name\";s:5:\"width\";s:4:\"desc\";s:32:\"The width of the TinyMCE editor.\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:3:\"95%\";s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:33:\"template_selected_content_classes\";a:7:{s:4:\"name\";s:33:\"template_selected_content_classes\";s:4:\"desc\";s:234:\"Specify a list of CSS class names for the template plugin. They must be separated by spaces. Any template element with one of the specified CSS classes will have its content replaced by the selected editor content when first inserted.\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:0:\"\";s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}}',0,'',0,''),(3,0,0,'phpThumbOfCacheManager','Handles cache cleaning when clearing the Site Cache.',0,0,0,'/**\n * phpThumbOf\n *\n * Copyright 2009-2012 by Shaun McCormick <shaun@modx.com>\n *\n * phpThumbOf is free software; you can redistribute it and/or modify it\n * under the terms of the GNU General Public License as published by the Free\n * Software Foundation; either version 2 of the License, or (at your option) any\n * later version.\n *\n * phpThumbOf is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along with\n * phpThumbOf; if not, write to the Free Software Foundation, Inc., 59 Temple\n * Place, Suite 330, Boston, MA 02111-1307 USA\n *\n * @package phpthumbof\n */\n/**\n * Handles cache management for phpthumbof filter\n *\n * @var \\modX $modx\n * @var array $scriptProperties\n *\n * @package phpthumbof\n */\nif (empty($results)) $results = array();\n\nswitch ($modx->event->name) {\n    case \'OnSiteRefresh\':\n        if (!$modx->loadClass(\'modPhpThumb\',$modx->getOption(\'core_path\').\'model/phpthumb/\',true,true)) {\n            $modx->log(modX::LOG_LEVEL_ERROR,\'[phpThumbOf] Could not load modPhpThumb class in plugin.\');\n            return;\n        }\n        $assetsPath = $modx->getOption(\'phpthumbof.assets_path\',$scriptProperties,$modx->getOption(\'assets_path\').\'components/phpthumbof/\');\n        $phpThumb = new modPhpThumb($modx);\n        $cacheDir = $assetsPath.\'cache/\';\n\n        /* clear local cache */\n        if (!empty($cacheDir)) {\n            /** @var DirectoryIterator $file */\n            foreach (new DirectoryIterator($cacheDir) as $file) {\n                if (!$file->isFile()) continue;\n                @unlink($file->getPathname());\n            }\n        }\n\n        /* if using amazon s3, clear our cache there */\n        $useS3 = $modx->getOption(\'phpthumbof.use_s3\',$scriptProperties,false);\n        if ($useS3) {\n            $modelPath = $modx->getOption(\'phpthumbof.core_path\',null,$modx->getOption(\'core_path\').\'components/phpthumbof/\').\'model/\';\n            /** @var modAws $modaws */\n            $modaws = $modx->getService(\'modaws\',\'modAws\',$modelPath.\'aws/\',$scriptProperties);\n            $s3path = $modx->getOption(\'phpthumbof.s3_path\',null,\'phpthumbof/\');\n            \n            $list = $modaws->getObjectList($s3path);\n            if (!empty($list) && is_array($list)) {\n                foreach ($list as $obj) {\n                    if (empty($obj->Key)) continue;\n\n                    $results[] = $modaws->deleteObject($obj->Key);\n                }\n            }\n        }\n\n        break;\n}\nreturn;',0,NULL,0,'',0,''),(4,0,0,'MIGX','',0,1,0,'$corePath = $modx->getOption(\'migx.core_path\',null,$modx->getOption(\'core_path\').\'components/migx/\');\n$assetsUrl = $modx->getOption(\'migx.assets_url\', null, $modx->getOption(\'assets_url\') . \'components/migx/\');\nswitch ($modx->event->name) {\n    case \'OnTVInputRenderList\':\n        $modx->event->output($corePath.\'elements/tv/input/\');\n        break;\n    case \'OnTVInputPropertiesList\':\n        $modx->event->output($corePath.\'elements/tv/inputoptions/\');\n        break;\n\n        case \'OnDocFormPrerender\':\n        $modx->controller->addCss($assetsUrl.\'css/mgr.css\');\n        break; \n \n    /*          \n    case \'OnTVOutputRenderList\':\n        $modx->event->output($corePath.\'elements/tv/output/\');\n        break;\n    case \'OnTVOutputRenderPropertiesList\':\n        $modx->event->output($corePath.\'elements/tv/properties/\');\n        break;\n    \n    case \'OnDocFormPrerender\':\n        $assetsUrl = $modx->getOption(\'colorpicker.assets_url\',null,$modx->getOption(\'assets_url\').\'components/colorpicker/\'); \n        $modx->regClientStartupHTMLBlock(\'<script type=\"text/javascript\">\n        Ext.onReady(function() {\n            \n        });\n        </script>\');\n        $modx->regClientStartupScript($assetsUrl.\'sources/ColorPicker.js\');\n        $modx->regClientStartupScript($assetsUrl.\'sources/ColorMenu.js\');\n        $modx->regClientStartupScript($assetsUrl.\'sources/ColorPickerField.js\');		\n        $modx->regClientCSS($assetsUrl.\'resources/css/colorpicker.css\');\n        break;\n     */\n}\nreturn;',0,'a:0:{}',0,'',0,''),(5,0,0,'MIGXquip','',0,1,0,'$quipCorePath = $modx->getOption(\'quip.core_path\', null, $modx->getOption(\'core_path\') . \'components/quip/\');\n//$assetsUrl = $modx->getOption(\'migx.assets_url\', null, $modx->getOption(\'assets_url\') . \'components/migx/\');\nswitch ($modx->event->name)\n{\n\n    case \'OnDocFormPrerender\':\n\n        \n        require_once $quipCorePath . \'model/quip/quip.class.php\';\n        $modx->quip = new Quip($modx);\n\n        $modx->lexicon->load(\'quip:default\');\n        $quipconfig = $modx->toJson($modx->quip->config);\n        \n        $js = \"\n        Quip.config = Ext.util.JSON.decode(\'{$quipconfig}\');\n        console.log(Quip);\";\n\n        //$modx->controller->addCss($assetsUrl . \'css/mgr.css\');\n        $modx->controller->addJavascript($modx->quip->config[\'jsUrl\'].\'quip.js\');\n        $modx->controller->addHtml(\'<script type=\"text/javascript\">\' . $js . \'</script>\');\n        break;\n\n}\nreturn;',0,'a:0:{}',1,'',0,'');

--
-- Table structure for table `modx_site_snippets`
--

CREATE TABLE `modx_site_snippets` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `source` int(10) unsigned NOT NULL DEFAULT '0',
  `property_preprocess` tinyint(1) unsigned NOT NULL DEFAULT '0',
  `name` varchar(50) NOT NULL DEFAULT '',
  `description` varchar(255) NOT NULL DEFAULT '',
  `editor_type` int(11) NOT NULL DEFAULT '0',
  `category` int(11) NOT NULL DEFAULT '0',
  `cache_type` tinyint(1) NOT NULL DEFAULT '0',
  `snippet` mediumtext,
  `locked` tinyint(1) unsigned NOT NULL DEFAULT '0',
  `properties` text,
  `moduleguid` varchar(32) NOT NULL DEFAULT '',
  `static` tinyint(1) unsigned NOT NULL DEFAULT '0',
  `static_file` varchar(255) NOT NULL DEFAULT '',
  PRIMARY KEY (`id`),
  UNIQUE KEY `name` (`name`),
  KEY `category` (`category`),
  KEY `locked` (`locked`),
  KEY `moduleguid` (`moduleguid`),
  KEY `static` (`static`)
) ENGINE=MyISAM AUTO_INCREMENT=26 DEFAULT CHARSET=utf8;

--
-- Dumping data for table `modx_site_snippets`
--

INSERT INTO `modx_site_snippets` VALUES (1,0,0,'Wayfinder','Wayfinder for MODx Revolution 2.0.0-beta-5 and later.',0,0,0,'/**\n * Wayfinder Snippet to build site navigation menus\n *\n * Totally refactored from original DropMenu nav builder to make it easier to\n * create custom navigation by using chunks as output templates. By using\n * templates, many of the paramaters are no longer needed for flexible output\n * including tables, unordered- or ordered-lists (ULs or OLs), definition lists\n * (DLs) or in any other format you desire.\n *\n * @version 2.1.1-beta5\n * @author Garry Nutting (collabpad.com)\n * @author Kyle Jaebker (muddydogpaws.com)\n * @author Ryan Thrash (modx.com)\n * @author Shaun McCormick (modx.com)\n * @author Jason Coward (modx.com)\n *\n * @example [[Wayfinder? &startId=`0`]]\n *\n * @var modX $modx\n * @var array $scriptProperties\n * \n * @package wayfinder\n */\n$wayfinder_base = $modx->getOption(\'wayfinder.core_path\',$scriptProperties,$modx->getOption(\'core_path\').\'components/wayfinder/\');\n\n/* include a custom config file if specified */\nif (isset($scriptProperties[\'config\'])) {\n    $scriptProperties[\'config\'] = str_replace(\'../\',\'\',$scriptProperties[\'config\']);\n    $scriptProperties[\'config\'] = $wayfinder_base.\'configs/\'.$scriptProperties[\'config\'].\'.config.php\';\n} else {\n    $scriptProperties[\'config\'] = $wayfinder_base.\'configs/default.config.php\';\n}\nif (file_exists($scriptProperties[\'config\'])) {\n    include $scriptProperties[\'config\'];\n}\n\n/* include wayfinder class */\ninclude_once $wayfinder_base.\'wayfinder.class.php\';\nif (!$modx->loadClass(\'Wayfinder\',$wayfinder_base,true,true)) {\n    return \'error: Wayfinder class not found\';\n}\n$wf = new Wayfinder($modx,$scriptProperties);\n\n/* get user class definitions\n * TODO: eventually move these into config parameters */\n$wf->_css = array(\n    \'first\' => isset($firstClass) ? $firstClass : \'\',\n    \'last\' => isset($lastClass) ? $lastClass : \'last\',\n    \'here\' => isset($hereClass) ? $hereClass : \'active\',\n    \'parent\' => isset($parentClass) ? $parentClass : \'\',\n    \'row\' => isset($rowClass) ? $rowClass : \'\',\n    \'outer\' => isset($outerClass) ? $outerClass : \'\',\n    \'inner\' => isset($innerClass) ? $innerClass : \'\',\n    \'level\' => isset($levelClass) ? $levelClass: \'\',\n    \'self\' => isset($selfClass) ? $selfClass : \'\',\n    \'weblink\' => isset($webLinkClass) ? $webLinkClass : \'\'\n);\n\n/* get user templates\n * TODO: eventually move these into config parameters */\n$wf->_templates = array(\n    \'outerTpl\' => isset($outerTpl) ? $outerTpl : \'\',\n    \'rowTpl\' => isset($rowTpl) ? $rowTpl : \'\',\n    \'parentRowTpl\' => isset($parentRowTpl) ? $parentRowTpl : \'\',\n    \'parentRowHereTpl\' => isset($parentRowHereTpl) ? $parentRowHereTpl : \'\',\n    \'hereTpl\' => isset($hereTpl) ? $hereTpl : \'\',\n    \'innerTpl\' => isset($innerTpl) ? $innerTpl : \'\',\n    \'innerRowTpl\' => isset($innerRowTpl) ? $innerRowTpl : \'\',\n    \'innerHereTpl\' => isset($innerHereTpl) ? $innerHereTpl : \'\',\n    \'activeParentRowTpl\' => isset($activeParentRowTpl) ? $activeParentRowTpl : \'\',\n    \'categoryFoldersTpl\' => isset($categoryFoldersTpl) ? $categoryFoldersTpl : \'\',\n    \'startItemTpl\' => isset($startItemTpl) ? $startItemTpl : \'\'\n);\n\n/* process Wayfinder */\n$output = $wf->run();\nif ($wf->_config[\'debug\']) {\n    $output .= $wf->renderDebugOutput();\n}\n\n/* output results */\nif ($wf->_config[\'ph\']) {\n    $modx->setPlaceholder($wf->_config[\'ph\'],$output);\n} else {\n    return $output;\n}',0,'a:48:{s:5:\"level\";a:6:{s:4:\"name\";s:5:\"level\";s:4:\"desc\";s:25:\"prop_wayfinder.level_desc\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:1:\"0\";s:7:\"lexicon\";s:20:\"wayfinder:properties\";}s:11:\"includeDocs\";a:6:{s:4:\"name\";s:11:\"includeDocs\";s:4:\"desc\";s:31:\"prop_wayfinder.includeDocs_desc\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:1:\"0\";s:7:\"lexicon\";s:20:\"wayfinder:properties\";}s:11:\"excludeDocs\";a:6:{s:4:\"name\";s:11:\"excludeDocs\";s:4:\"desc\";s:31:\"prop_wayfinder.excludeDocs_desc\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:1:\"0\";s:7:\"lexicon\";s:20:\"wayfinder:properties\";}s:8:\"contexts\";a:6:{s:4:\"name\";s:8:\"contexts\";s:4:\"desc\";s:28:\"prop_wayfinder.contexts_desc\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:0:\"\";s:7:\"lexicon\";s:20:\"wayfinder:properties\";}s:12:\"cacheResults\";a:6:{s:4:\"name\";s:12:\"cacheResults\";s:4:\"desc\";s:32:\"prop_wayfinder.cacheResults_desc\";s:4:\"type\";s:13:\"combo-boolean\";s:7:\"options\";s:0:\"\";s:5:\"value\";b:1;s:7:\"lexicon\";s:20:\"wayfinder:properties\";}s:9:\"cacheTime\";a:6:{s:4:\"name\";s:9:\"cacheTime\";s:4:\"desc\";s:29:\"prop_wayfinder.cacheTime_desc\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";i:3600;s:7:\"lexicon\";s:20:\"wayfinder:properties\";}s:2:\"ph\";a:6:{s:4:\"name\";s:2:\"ph\";s:4:\"desc\";s:22:\"prop_wayfinder.ph_desc\";s:4:\"type\";s:13:\"combo-boolean\";s:7:\"options\";s:0:\"\";s:5:\"value\";b:0;s:7:\"lexicon\";s:20:\"wayfinder:properties\";}s:5:\"debug\";a:6:{s:4:\"name\";s:5:\"debug\";s:4:\"desc\";s:25:\"prop_wayfinder.debug_desc\";s:4:\"type\";s:13:\"combo-boolean\";s:7:\"options\";s:0:\"\";s:5:\"value\";b:0;s:7:\"lexicon\";s:20:\"wayfinder:properties\";}s:12:\"ignoreHidden\";a:6:{s:4:\"name\";s:12:\"ignoreHidden\";s:4:\"desc\";s:32:\"prop_wayfinder.ignoreHidden_desc\";s:4:\"type\";s:13:\"combo-boolean\";s:7:\"options\";s:0:\"\";s:5:\"value\";b:0;s:7:\"lexicon\";s:20:\"wayfinder:properties\";}s:12:\"hideSubMenus\";a:6:{s:4:\"name\";s:12:\"hideSubMenus\";s:4:\"desc\";s:32:\"prop_wayfinder.hideSubMenus_desc\";s:4:\"type\";s:13:\"combo-boolean\";s:7:\"options\";s:0:\"\";s:5:\"value\";b:0;s:7:\"lexicon\";s:20:\"wayfinder:properties\";}s:13:\"useWeblinkUrl\";a:6:{s:4:\"name\";s:13:\"useWeblinkUrl\";s:4:\"desc\";s:33:\"prop_wayfinder.useWeblinkUrl_desc\";s:4:\"type\";s:13:\"combo-boolean\";s:7:\"options\";s:0:\"\";s:5:\"value\";b:1;s:7:\"lexicon\";s:20:\"wayfinder:properties\";}s:8:\"fullLink\";a:6:{s:4:\"name\";s:8:\"fullLink\";s:4:\"desc\";s:28:\"prop_wayfinder.fullLink_desc\";s:4:\"type\";s:13:\"combo-boolean\";s:7:\"options\";s:0:\"\";s:5:\"value\";b:0;s:7:\"lexicon\";s:20:\"wayfinder:properties\";}s:6:\"scheme\";a:6:{s:4:\"name\";s:6:\"scheme\";s:4:\"desc\";s:26:\"prop_wayfinder.scheme_desc\";s:4:\"type\";s:4:\"list\";s:7:\"options\";a:3:{i:0;a:2:{s:4:\"text\";s:23:\"prop_wayfinder.relative\";s:5:\"value\";s:0:\"\";}i:1;a:2:{s:4:\"text\";s:23:\"prop_wayfinder.absolute\";s:5:\"value\";s:3:\"abs\";}i:2;a:2:{s:4:\"text\";s:19:\"prop_wayfinder.full\";s:5:\"value\";s:4:\"full\";}}s:5:\"value\";s:0:\"\";s:7:\"lexicon\";s:20:\"wayfinder:properties\";}s:9:\"sortOrder\";a:6:{s:4:\"name\";s:9:\"sortOrder\";s:4:\"desc\";s:29:\"prop_wayfinder.sortOrder_desc\";s:4:\"type\";s:4:\"list\";s:7:\"options\";a:2:{i:0;a:2:{s:4:\"text\";s:24:\"prop_wayfinder.ascending\";s:5:\"value\";s:3:\"ASC\";}i:1;a:2:{s:4:\"text\";s:25:\"prop_wayfinder.descending\";s:5:\"value\";s:4:\"DESC\";}}s:5:\"value\";s:3:\"ASC\";s:7:\"lexicon\";s:20:\"wayfinder:properties\";}s:6:\"sortBy\";a:6:{s:4:\"name\";s:6:\"sortBy\";s:4:\"desc\";s:26:\"prop_wayfinder.sortBy_desc\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:9:\"menuindex\";s:7:\"lexicon\";s:20:\"wayfinder:properties\";}s:5:\"limit\";a:6:{s:4:\"name\";s:5:\"limit\";s:4:\"desc\";s:25:\"prop_wayfinder.limit_desc\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:1:\"0\";s:7:\"lexicon\";s:20:\"wayfinder:properties\";}s:6:\"cssTpl\";a:6:{s:4:\"name\";s:6:\"cssTpl\";s:4:\"desc\";s:26:\"prop_wayfinder.cssTpl_desc\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";b:0;s:7:\"lexicon\";s:20:\"wayfinder:properties\";}s:5:\"jsTpl\";a:6:{s:4:\"name\";s:5:\"jsTpl\";s:4:\"desc\";s:25:\"prop_wayfinder.jsTpl_desc\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";b:0;s:7:\"lexicon\";s:20:\"wayfinder:properties\";}s:11:\"rowIdPrefix\";a:6:{s:4:\"name\";s:11:\"rowIdPrefix\";s:4:\"desc\";s:31:\"prop_wayfinder.rowIdPrefix_desc\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";b:0;s:7:\"lexicon\";s:20:\"wayfinder:properties\";}s:11:\"textOfLinks\";a:6:{s:4:\"name\";s:11:\"textOfLinks\";s:4:\"desc\";s:31:\"prop_wayfinder.textOfLinks_desc\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:9:\"menutitle\";s:7:\"lexicon\";s:20:\"wayfinder:properties\";}s:12:\"titleOfLinks\";a:6:{s:4:\"name\";s:12:\"titleOfLinks\";s:4:\"desc\";s:32:\"prop_wayfinder.titleOfLinks_desc\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:9:\"pagetitle\";s:7:\"lexicon\";s:20:\"wayfinder:properties\";}s:12:\"displayStart\";a:6:{s:4:\"name\";s:12:\"displayStart\";s:4:\"desc\";s:32:\"prop_wayfinder.displayStart_desc\";s:4:\"type\";s:13:\"combo-boolean\";s:7:\"options\";s:0:\"\";s:5:\"value\";b:0;s:7:\"lexicon\";s:20:\"wayfinder:properties\";}s:10:\"firstClass\";a:6:{s:4:\"name\";s:10:\"firstClass\";s:4:\"desc\";s:30:\"prop_wayfinder.firstClass_desc\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:5:\"first\";s:7:\"lexicon\";s:20:\"wayfinder:properties\";}s:9:\"lastClass\";a:6:{s:4:\"name\";s:9:\"lastClass\";s:4:\"desc\";s:29:\"prop_wayfinder.lastClass_desc\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:4:\"last\";s:7:\"lexicon\";s:20:\"wayfinder:properties\";}s:9:\"hereClass\";a:6:{s:4:\"name\";s:9:\"hereClass\";s:4:\"desc\";s:29:\"prop_wayfinder.hereClass_desc\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:6:\"active\";s:7:\"lexicon\";s:20:\"wayfinder:properties\";}s:11:\"parentClass\";a:6:{s:4:\"name\";s:11:\"parentClass\";s:4:\"desc\";s:31:\"prop_wayfinder.parentClass_desc\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:0:\"\";s:7:\"lexicon\";s:20:\"wayfinder:properties\";}s:8:\"rowClass\";a:6:{s:4:\"name\";s:8:\"rowClass\";s:4:\"desc\";s:28:\"prop_wayfinder.rowClass_desc\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:0:\"\";s:7:\"lexicon\";s:20:\"wayfinder:properties\";}s:10:\"outerClass\";a:6:{s:4:\"name\";s:10:\"outerClass\";s:4:\"desc\";s:30:\"prop_wayfinder.outerClass_desc\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:0:\"\";s:7:\"lexicon\";s:20:\"wayfinder:properties\";}s:10:\"innerClass\";a:6:{s:4:\"name\";s:10:\"innerClass\";s:4:\"desc\";s:30:\"prop_wayfinder.innerClass_desc\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:0:\"\";s:7:\"lexicon\";s:20:\"wayfinder:properties\";}s:10:\"levelClass\";a:6:{s:4:\"name\";s:10:\"levelClass\";s:4:\"desc\";s:30:\"prop_wayfinder.levelClass_desc\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:0:\"\";s:7:\"lexicon\";s:20:\"wayfinder:properties\";}s:9:\"selfClass\";a:6:{s:4:\"name\";s:9:\"selfClass\";s:4:\"desc\";s:29:\"prop_wayfinder.selfClass_desc\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:0:\"\";s:7:\"lexicon\";s:20:\"wayfinder:properties\";}s:12:\"webLinkClass\";a:6:{s:4:\"name\";s:12:\"webLinkClass\";s:4:\"desc\";s:32:\"prop_wayfinder.webLinkClass_desc\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:0:\"\";s:7:\"lexicon\";s:20:\"wayfinder:properties\";}s:8:\"outerTpl\";a:6:{s:4:\"name\";s:8:\"outerTpl\";s:4:\"desc\";s:28:\"prop_wayfinder.outerTpl_desc\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:0:\"\";s:7:\"lexicon\";s:20:\"wayfinder:properties\";}s:6:\"rowTpl\";a:6:{s:4:\"name\";s:6:\"rowTpl\";s:4:\"desc\";s:26:\"prop_wayfinder.rowTpl_desc\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:0:\"\";s:7:\"lexicon\";s:20:\"wayfinder:properties\";}s:12:\"parentRowTpl\";a:6:{s:4:\"name\";s:12:\"parentRowTpl\";s:4:\"desc\";s:32:\"prop_wayfinder.parentRowTpl_desc\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:0:\"\";s:7:\"lexicon\";s:20:\"wayfinder:properties\";}s:16:\"parentRowHereTpl\";a:6:{s:4:\"name\";s:16:\"parentRowHereTpl\";s:4:\"desc\";s:36:\"prop_wayfinder.parentRowHereTpl_desc\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:0:\"\";s:7:\"lexicon\";s:20:\"wayfinder:properties\";}s:7:\"hereTpl\";a:6:{s:4:\"name\";s:7:\"hereTpl\";s:4:\"desc\";s:27:\"prop_wayfinder.hereTpl_desc\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:0:\"\";s:7:\"lexicon\";s:20:\"wayfinder:properties\";}s:8:\"innerTpl\";a:6:{s:4:\"name\";s:8:\"innerTpl\";s:4:\"desc\";s:28:\"prop_wayfinder.innerTpl_desc\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:0:\"\";s:7:\"lexicon\";s:20:\"wayfinder:properties\";}s:11:\"innerRowTpl\";a:6:{s:4:\"name\";s:11:\"innerRowTpl\";s:4:\"desc\";s:31:\"prop_wayfinder.innerRowTpl_desc\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:0:\"\";s:7:\"lexicon\";s:20:\"wayfinder:properties\";}s:12:\"innerHereTpl\";a:6:{s:4:\"name\";s:12:\"innerHereTpl\";s:4:\"desc\";s:32:\"prop_wayfinder.innerHereTpl_desc\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:0:\"\";s:7:\"lexicon\";s:20:\"wayfinder:properties\";}s:18:\"activeParentRowTpl\";a:6:{s:4:\"name\";s:18:\"activeParentRowTpl\";s:4:\"desc\";s:38:\"prop_wayfinder.activeParentRowTpl_desc\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:0:\"\";s:7:\"lexicon\";s:20:\"wayfinder:properties\";}s:18:\"categoryFoldersTpl\";a:6:{s:4:\"name\";s:18:\"categoryFoldersTpl\";s:4:\"desc\";s:38:\"prop_wayfinder.categoryFoldersTpl_desc\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:0:\"\";s:7:\"lexicon\";s:20:\"wayfinder:properties\";}s:12:\"startItemTpl\";a:6:{s:4:\"name\";s:12:\"startItemTpl\";s:4:\"desc\";s:32:\"prop_wayfinder.startItemTpl_desc\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:0:\"\";s:7:\"lexicon\";s:20:\"wayfinder:properties\";}s:11:\"permissions\";a:6:{s:4:\"name\";s:11:\"permissions\";s:4:\"desc\";s:31:\"prop_wayfinder.permissions_desc\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:4:\"list\";s:7:\"lexicon\";s:20:\"wayfinder:properties\";}s:6:\"hereId\";a:6:{s:4:\"name\";s:6:\"hereId\";s:4:\"desc\";s:26:\"prop_wayfinder.hereId_desc\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:0:\"\";s:7:\"lexicon\";s:20:\"wayfinder:properties\";}s:5:\"where\";a:6:{s:4:\"name\";s:5:\"where\";s:4:\"desc\";s:25:\"prop_wayfinder.where_desc\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:0:\"\";s:7:\"lexicon\";s:20:\"wayfinder:properties\";}s:9:\"templates\";a:6:{s:4:\"name\";s:9:\"templates\";s:4:\"desc\";s:29:\"prop_wayfinder.templates_desc\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:0:\"\";s:7:\"lexicon\";s:20:\"wayfinder:properties\";}s:18:\"previewUnpublished\";a:6:{s:4:\"name\";s:18:\"previewUnpublished\";s:4:\"desc\";s:38:\"prop_wayfinder.previewunpublished_desc\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:0:\"\";s:7:\"lexicon\";s:20:\"wayfinder:properties\";}}','',0,''),(2,0,0,'phpthumbof','A custom output filter that generates thumbnails securely with phpThumb.',0,0,0,'/**\n * phpThumbOf\n *\n * Copyright 2009-2012 by Shaun McCormick <shaun@modx.com>\n *\n * phpThumbOf is free software; you can redistribute it and/or modify it\n * under the terms of the GNU General Public License as published by the Free\n * Software Foundation; either version 2 of the License, or (at your option) any\n * later version.\n *\n * phpThumbOf is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along with\n * phpThumbOf; if not, write to the Free Software Foundation, Inc., 59 Temple\n * Place, Suite 330, Boston, MA 02111-1307 USA\n *\n * @package phpthumbof\n */\n/**\n * A custom output filter for phpThumb\n *\n * @var modX $modx\n * @var array $scriptProperties\n * @var phpThumbOf $phpThumbOf\n * @var string $input\n * @var string|array $options\n *\n * @package phpthumbof\n */\nif (empty($modx)) return \'\';\nif (!$modx->loadClass(\'modPhpThumb\',$modx->getOption(\'core_path\').\'model/phpthumb/\',true,true)) {\n    $modx->log(modX::LOG_LEVEL_ERROR,\'[phpThumbOf] Could not load modPhpThumb class.\');\n    return \'\';\n}\nif (empty($input)) {\n    $modx->log(modX::LOG_LEVEL_DEBUG,\'[phpThumbOf] Empty image path passed, aborting.\');\n    return \'\';\n}\n$modelPath = $modx->getOption(\'phpthumbof.core_path\',null,$modx->getOption(\'core_path\').\'components/phpthumbof/\').\'model/\';\nrequire_once $modelPath.\'phpthumbof/phpthumbof.class.php\';\n$phpThumbOf = new phpThumbOf($modx,$scriptProperties);\n\n$phpThumbOf->getCacheDirectory();\n$phpThumbOf->ensureCacheDirectoryIsWritable();\n\n$thumbnail = $phpThumbOf->createThumbnailObject();\n$thumbnail->setInput($input);\n$thumbnail->setOptions($options);\n$thumbnail->initializeService();\nreturn $thumbnail->render();',0,NULL,'',0,''),(3,0,0,'getResources','<strong>1.6.1-pl</strong> A general purpose Resource listing and summarization snippet for MODX Revolution',0,0,0,'/**\n * getResources\n *\n * A general purpose Resource listing and summarization snippet for MODX 2.x.\n *\n * @author Jason Coward\n * @copyright Copyright 2010-2013, Jason Coward\n *\n * TEMPLATES\n *\n * tpl - Name of a chunk serving as a resource template\n * [NOTE: if not provided, properties are dumped to output for each resource]\n *\n * tplOdd - (Opt) Name of a chunk serving as resource template for resources with an odd idx value\n * (see idx property)\n * tplFirst - (Opt) Name of a chunk serving as resource template for the first resource (see first\n * property)\n * tplLast - (Opt) Name of a chunk serving as resource template for the last resource (see last\n * property)\n * tpl_{n} - (Opt) Name of a chunk serving as resource template for the nth resource\n *\n * tplCondition - (Opt) Defines a field of the resource to evaluate against keys defined in the\n * conditionalTpls property. Must be a resource field; does not work with Template Variables.\n * conditionalTpls - (Opt) A JSON object defining a map of field values and the associated tpl to\n * use when the field defined by tplCondition matches the value. [NOTE: tplOdd, tplFirst, tplLast,\n * and tpl_{n} will take precedence over any defined conditionalTpls]\n *\n * tplWrapper - (Opt) Name of a chunk serving as a wrapper template for the output\n * [NOTE: Does not work with toSeparatePlaceholders]\n *\n * SELECTION\n *\n * parents - Comma-delimited list of ids serving as parents\n *\n * context - (Opt) Comma-delimited list of context keys to limit results by; if empty, contexts for all specified\n * parents will be used (all contexts if 0 is specified) [default=]\n *\n * depth - (Opt) Integer value indicating depth to search for resources from each parent [default=10]\n *\n * tvFilters - (Opt) Delimited-list of TemplateVar values to filter resources by. Supports two\n * delimiters and two value search formats. The first delimiter || represents a logical OR and the\n * primary grouping mechanism.  Within each group you can provide a comma-delimited list of values.\n * These values can be either tied to a specific TemplateVar by name, e.g. myTV==value, or just the\n * value, indicating you are searching for the value in any TemplateVar tied to the Resource. An\n * example would be &tvFilters=`filter2==one,filter1==bar%||filter1==foo`\n * [NOTE: filtering by values uses a LIKE query and % is considered a wildcard.]\n * [NOTE: this only looks at the raw value set for specific Resource, i. e. there must be a value\n * specifically set for the Resource and it is not evaluated.]\n *\n * tvFiltersAndDelimiter - (Opt) Custom delimiter for logical AND, default \',\', in case you want to\n * match a literal comma in the tvFilters. E.g. &tvFiltersAndDelimiter=`&&`\n * &tvFilters=`filter1==foo,bar&&filter2==baz` [default=,]\n *\n * tvFiltersOrDelimiter - (Opt) Custom delimiter for logical OR, default \'||\', in case you want to\n * match a literal \'||\' in the tvFilters. E.g. &tvFiltersOrDelimiter=`|OR|`\n * &tvFilters=`filter1==foo||bar|OR|filter2==baz` [default=||]\n *\n * where - (Opt) A JSON expression of criteria to build any additional where clauses from. An example would be\n * &where=`{{\"alias:LIKE\":\"foo%\", \"OR:alias:LIKE\":\"%bar\"},{\"OR:pagetitle:=\":\"foobar\", \"AND:description:=\":\"raboof\"}}`\n *\n * sortby - (Opt) Field to sort by or a JSON array, e.g. {\"publishedon\":\"ASC\",\"createdon\":\"DESC\"} [default=publishedon]\n * sortbyTV - (opt) A Template Variable name to sort by (if supplied, this precedes the sortby value) [default=]\n * sortbyTVType - (Opt) A data type to CAST a TV Value to in order to sort on it properly [default=string]\n * sortbyAlias - (Opt) Query alias for sortby field [default=]\n * sortbyEscaped - (Opt) Escapes the field name(s) specified in sortby [default=0]\n * sortdir - (Opt) Order which to sort by [default=DESC]\n * sortdirTV - (Opt) Order which to sort by a TV [default=DESC]\n * limit - (Opt) Limits the number of resources returned [default=5]\n * offset - (Opt) An offset of resources returned by the criteria to skip [default=0]\n * dbCacheFlag - (Opt) Controls caching of db queries; 0|false = do not cache result set; 1 = cache result set\n * according to cache settings, any other integer value = number of seconds to cache result set [default=0]\n *\n * OPTIONS\n *\n * includeContent - (Opt) Indicates if the content of each resource should be returned in the\n * results [default=0]\n * includeTVs - (Opt) Indicates if TemplateVar values should be included in the properties available\n * to each resource template [default=0]\n * includeTVList - (Opt) Limits the TemplateVars that are included if includeTVs is true to those specified\n * by name in a comma-delimited list [default=]\n * prepareTVs - (Opt) Prepares media-source dependent TemplateVar values [default=1]\n * prepareTVList - (Opt) Limits the TVs that are prepared to those specified by name in a comma-delimited\n * list [default=]\n * processTVs - (Opt) Indicates if TemplateVar values should be rendered as they would on the\n * resource being summarized [default=0]\n * processTVList - (opt) Limits the TemplateVars that are processed if included to those specified\n * by name in a comma-delimited list [default=]\n * tvPrefix - (Opt) The prefix for TemplateVar properties [default=tv.]\n * idx - (Opt) You can define the starting idx of the resources, which is an property that is\n * incremented as each resource is rendered [default=1]\n * first - (Opt) Define the idx which represents the first resource (see tplFirst) [default=1]\n * last - (Opt) Define the idx which represents the last resource (see tplLast) [default=# of\n * resources being summarized + first - 1]\n * outputSeparator - (Opt) An optional string to separate each tpl instance [default=\"\\n\"]\n * wrapIfEmpty - (Opt) Indicates if the tplWrapper should be applied if the output is empty [default=0]\n *\n */\n$output = array();\n$outputSeparator = isset($outputSeparator) ? $outputSeparator : \"\\n\";\n\n/* set default properties */\n$tpl = !empty($tpl) ? $tpl : \'\';\n$includeContent = !empty($includeContent) ? true : false;\n$includeTVs = !empty($includeTVs) ? true : false;\n$includeTVList = !empty($includeTVList) ? explode(\',\', $includeTVList) : array();\n$processTVs = !empty($processTVs) ? true : false;\n$processTVList = !empty($processTVList) ? explode(\',\', $processTVList) : array();\n$prepareTVs = !empty($prepareTVs) ? true : false;\n$prepareTVList = !empty($prepareTVList) ? explode(\',\', $prepareTVList) : array();\n$tvPrefix = isset($tvPrefix) ? $tvPrefix : \'tv.\';\n$parents = (!empty($parents) || $parents === \'0\') ? explode(\',\', $parents) : array($modx->resource->get(\'id\'));\narray_walk($parents, \'trim\');\n$parents = array_unique($parents);\n$depth = isset($depth) ? (integer) $depth : 10;\n\n$tvFiltersOrDelimiter = isset($tvFiltersOrDelimiter) ? $tvFiltersOrDelimiter : \'||\';\n$tvFiltersAndDelimiter = isset($tvFiltersAndDelimiter) ? $tvFiltersAndDelimiter : \',\';\n$tvFilters = !empty($tvFilters) ? explode($tvFiltersOrDelimiter, $tvFilters) : array();\n\n$where = !empty($where) ? $modx->fromJSON($where) : array();\n$showUnpublished = !empty($showUnpublished) ? true : false;\n$showDeleted = !empty($showDeleted) ? true : false;\n\n$sortby = isset($sortby) ? $sortby : \'publishedon\';\n$sortbyTV = isset($sortbyTV) ? $sortbyTV : \'\';\n$sortbyAlias = isset($sortbyAlias) ? $sortbyAlias : \'modResource\';\n$sortbyEscaped = !empty($sortbyEscaped) ? true : false;\n$sortdir = isset($sortdir) ? $sortdir : \'DESC\';\n$sortdirTV = isset($sortdirTV) ? $sortdirTV : \'DESC\';\n$limit = isset($limit) ? (integer) $limit : 5;\n$offset = isset($offset) ? (integer) $offset : 0;\n$totalVar = !empty($totalVar) ? $totalVar : \'total\';\n\n$dbCacheFlag = !isset($dbCacheFlag) ? false : $dbCacheFlag;\nif (is_string($dbCacheFlag) || is_numeric($dbCacheFlag)) {\n    if ($dbCacheFlag == \'0\') {\n        $dbCacheFlag = false;\n    } elseif ($dbCacheFlag == \'1\') {\n        $dbCacheFlag = true;\n    } else {\n        $dbCacheFlag = (integer) $dbCacheFlag;\n    }\n}\n\n/* multiple context support */\n$contextArray = array();\n$contextSpecified = false;\nif (!empty($context)) {\n    $contextArray = explode(\',\',$context);\n    array_walk($contextArray, \'trim\');\n    $contexts = array();\n    foreach ($contextArray as $ctx) {\n        $contexts[] = $modx->quote($ctx);\n    }\n    $context = implode(\',\',$contexts);\n    $contextSpecified = true;\n    unset($contexts,$ctx);\n} else {\n    $context = $modx->quote($modx->context->get(\'key\'));\n}\n\n$pcMap = array();\n$pcQuery = $modx->newQuery(\'modResource\', array(\'id:IN\' => $parents), $dbCacheFlag);\n$pcQuery->select(array(\'id\', \'context_key\'));\nif ($pcQuery->prepare() && $pcQuery->stmt->execute()) {\n    foreach ($pcQuery->stmt->fetchAll(PDO::FETCH_ASSOC) as $pcRow) {\n        $pcMap[(integer) $pcRow[\'id\']] = $pcRow[\'context_key\'];\n    }\n}\n\n$children = array();\n$parentArray = array();\nforeach ($parents as $parent) {\n    $parent = (integer) $parent;\n    if ($parent === 0) {\n        $pchildren = array();\n        if ($contextSpecified) {\n            foreach ($contextArray as $pCtx) {\n                if (!in_array($pCtx, $contextArray)) {\n                    continue;\n                }\n                $options = $pCtx !== $modx->context->get(\'key\') ? array(\'context\' => $pCtx) : array();\n                $pcchildren = $modx->getChildIds($parent, $depth, $options);\n                if (!empty($pcchildren)) $pchildren = array_merge($pchildren, $pcchildren);\n            }\n        } else {\n            $cQuery = $modx->newQuery(\'modContext\', array(\'key:!=\' => \'mgr\'));\n            $cQuery->select(array(\'key\'));\n            if ($cQuery->prepare() && $cQuery->stmt->execute()) {\n                foreach ($cQuery->stmt->fetchAll(PDO::FETCH_COLUMN) as $pCtx) {\n                    $options = $pCtx !== $modx->context->get(\'key\') ? array(\'context\' => $pCtx) : array();\n                    $pcchildren = $modx->getChildIds($parent, $depth, $options);\n                    if (!empty($pcchildren)) $pchildren = array_merge($pchildren, $pcchildren);\n                }\n            }\n        }\n        $parentArray[] = $parent;\n    } else {\n        $pContext = array_key_exists($parent, $pcMap) ? $pcMap[$parent] : false;\n        if ($debug) $modx->log(modX::LOG_LEVEL_ERROR, \"context for {$parent} is {$pContext}\");\n        if ($pContext && $contextSpecified && !in_array($pContext, $contextArray, true)) {\n            $parent = next($parents);\n            continue;\n        }\n        $parentArray[] = $parent;\n        $options = !empty($pContext) && $pContext !== $modx->context->get(\'key\') ? array(\'context\' => $pContext) : array();\n        $pchildren = $modx->getChildIds($parent, $depth, $options);\n    }\n    if (!empty($pchildren)) $children = array_merge($children, $pchildren);\n    $parent = next($parents);\n}\n$parents = array_merge($parentArray, $children);\n\n/* build query */\n$criteria = array(\"modResource.parent IN (\" . implode(\',\', $parents) . \")\");\nif ($contextSpecified) {\n    $contextResourceTbl = $modx->getTableName(\'modContextResource\');\n    $criteria[] = \"(modResource.context_key IN ({$context}) OR EXISTS(SELECT 1 FROM {$contextResourceTbl} ctx WHERE ctx.resource = modResource.id AND ctx.context_key IN ({$context})))\";\n}\nif (empty($showDeleted)) {\n    $criteria[\'deleted\'] = \'0\';\n}\nif (empty($showUnpublished)) {\n    $criteria[\'published\'] = \'1\';\n}\nif (empty($showHidden)) {\n    $criteria[\'hidemenu\'] = \'0\';\n}\nif (!empty($hideContainers)) {\n    $criteria[\'isfolder\'] = \'0\';\n}\n$criteria = $modx->newQuery(\'modResource\', $criteria);\nif (!empty($tvFilters)) {\n    $tmplVarTbl = $modx->getTableName(\'modTemplateVar\');\n    $tmplVarResourceTbl = $modx->getTableName(\'modTemplateVarResource\');\n    $conditions = array();\n    $operators = array(\n        \'<=>\' => \'<=>\',\n        \'===\' => \'=\',\n        \'!==\' => \'!=\',\n        \'<>\' => \'<>\',\n        \'==\' => \'LIKE\',\n        \'!=\' => \'NOT LIKE\',\n        \'<<\' => \'<\',\n        \'<=\' => \'<=\',\n        \'=<\' => \'=<\',\n        \'>>\' => \'>\',\n        \'>=\' => \'>=\',\n        \'=>\' => \'=>\'\n    );\n    foreach ($tvFilters as $fGroup => $tvFilter) {\n        $filterGroup = array();\n        $filters = explode($tvFiltersAndDelimiter, $tvFilter);\n        $multiple = count($filters) > 0;\n        foreach ($filters as $filter) {\n            $operator = \'==\';\n            $sqlOperator = \'LIKE\';\n            foreach ($operators as $op => $opSymbol) {\n                if (strpos($filter, $op, 1) !== false) {\n                    $operator = $op;\n                    $sqlOperator = $opSymbol;\n                    break;\n                }\n            }\n            $tvValueField = \'tvr.value\';\n            $tvDefaultField = \'tv.default_text\';\n            $f = explode($operator, $filter);\n            if (count($f) >= 2) {\n                if (count($f) > 2) {\n                    $k = array_shift($f);\n                    $b = join($operator, $f);\n                    $f = array($k, $b);\n                }\n                $tvName = $modx->quote($f[0]);\n                if (is_numeric($f[1]) && !in_array($sqlOperator, array(\'LIKE\', \'NOT LIKE\'))) {\n                    $tvValue = $f[1];\n                    if ($f[1] == (integer)$f[1]) {\n                        $tvValueField = \"CAST({$tvValueField} AS SIGNED INTEGER)\";\n                        $tvDefaultField = \"CAST({$tvDefaultField} AS SIGNED INTEGER)\";\n                    } else {\n                        $tvValueField = \"CAST({$tvValueField} AS DECIMAL)\";\n                        $tvDefaultField = \"CAST({$tvDefaultField} AS DECIMAL)\";\n                    }\n                } else {\n                    $tvValue = $modx->quote($f[1]);\n                }\n                if ($multiple) {\n                    $filterGroup[] =\n                        \"(EXISTS (SELECT 1 FROM {$tmplVarResourceTbl} tvr JOIN {$tmplVarTbl} tv ON {$tvValueField} {$sqlOperator} {$tvValue} AND tv.name = {$tvName} AND tv.id = tvr.tmplvarid WHERE tvr.contentid = modResource.id) \" .\n                        \"OR EXISTS (SELECT 1 FROM {$tmplVarTbl} tv WHERE tv.name = {$tvName} AND {$tvDefaultField} {$sqlOperator} {$tvValue} AND tv.id NOT IN (SELECT tmplvarid FROM {$tmplVarResourceTbl} WHERE contentid = modResource.id)) \" .\n                        \")\";\n                } else {\n                    $filterGroup =\n                        \"(EXISTS (SELECT 1 FROM {$tmplVarResourceTbl} tvr JOIN {$tmplVarTbl} tv ON {$tvValueField} {$sqlOperator} {$tvValue} AND tv.name = {$tvName} AND tv.id = tvr.tmplvarid WHERE tvr.contentid = modResource.id) \" .\n                        \"OR EXISTS (SELECT 1 FROM {$tmplVarTbl} tv WHERE tv.name = {$tvName} AND {$tvDefaultField} {$sqlOperator} {$tvValue} AND tv.id NOT IN (SELECT tmplvarid FROM {$tmplVarResourceTbl} WHERE contentid = modResource.id)) \" .\n                        \")\";\n                }\n            } elseif (count($f) == 1) {\n                $tvValue = $modx->quote($f[0]);\n                if ($multiple) {\n                    $filterGroup[] = \"EXISTS (SELECT 1 FROM {$tmplVarResourceTbl} tvr JOIN {$tmplVarTbl} tv ON {$tvValueField} {$sqlOperator} {$tvValue} AND tv.id = tvr.tmplvarid WHERE tvr.contentid = modResource.id)\";\n                } else {\n                    $filterGroup = \"EXISTS (SELECT 1 FROM {$tmplVarResourceTbl} tvr JOIN {$tmplVarTbl} tv ON {$tvValueField} {$sqlOperator} {$tvValue} AND tv.id = tvr.tmplvarid WHERE tvr.contentid = modResource.id)\";\n                }\n            }\n        }\n        $conditions[] = $filterGroup;\n    }\n    if (!empty($conditions)) {\n        $firstGroup = true;\n        foreach ($conditions as $cGroup => $c) {\n            if (is_array($c)) {\n                $first = true;\n                foreach ($c as $cond) {\n                    if ($first && !$firstGroup) {\n                        $criteria->condition($criteria->query[\'where\'][0][1], $cond, xPDOQuery::SQL_OR, null, $cGroup);\n                    } else {\n                        $criteria->condition($criteria->query[\'where\'][0][1], $cond, xPDOQuery::SQL_AND, null, $cGroup);\n                    }\n                    $first = false;\n                }\n            } else {\n                $criteria->condition($criteria->query[\'where\'][0][1], $c, $firstGroup ? xPDOQuery::SQL_AND : xPDOQuery::SQL_OR, null, $cGroup);\n            }\n            $firstGroup = false;\n        }\n    }\n}\n/* include/exclude resources, via &resources=`123,-456` prop */\nif (!empty($resources)) {\n    $resourceConditions = array();\n    $resources = explode(\',\',$resources);\n    $include = array();\n    $exclude = array();\n    foreach ($resources as $resource) {\n        $resource = (int)$resource;\n        if ($resource == 0) continue;\n        if ($resource < 0) {\n            $exclude[] = abs($resource);\n        } else {\n            $include[] = $resource;\n        }\n    }\n    if (!empty($include)) {\n        $criteria->where(array(\'OR:modResource.id:IN\' => $include), xPDOQuery::SQL_OR);\n    }\n    if (!empty($exclude)) {\n        $criteria->where(array(\'modResource.id:NOT IN\' => $exclude), xPDOQuery::SQL_AND, null, 1);\n    }\n}\nif (!empty($where)) {\n    $criteria->where($where);\n}\n\n$total = $modx->getCount(\'modResource\', $criteria);\n$modx->setPlaceholder($totalVar, $total);\n\n$fields = array_keys($modx->getFields(\'modResource\'));\nif (empty($includeContent)) {\n    $fields = array_diff($fields, array(\'content\'));\n}\n$columns = $includeContent ? $modx->getSelectColumns(\'modResource\', \'modResource\') : $modx->getSelectColumns(\'modResource\', \'modResource\', \'\', array(\'content\'), true);\n$criteria->select($columns);\nif (!empty($sortbyTV)) {\n    $criteria->leftJoin(\'modTemplateVar\', \'tvDefault\', array(\n        \"tvDefault.name\" => $sortbyTV\n    ));\n    $criteria->leftJoin(\'modTemplateVarResource\', \'tvSort\', array(\n        \"tvSort.contentid = modResource.id\",\n        \"tvSort.tmplvarid = tvDefault.id\"\n    ));\n    if (empty($sortbyTVType)) $sortbyTVType = \'string\';\n    if ($modx->getOption(\'dbtype\') === \'mysql\') {\n        switch ($sortbyTVType) {\n            case \'integer\':\n                $criteria->select(\"CAST(IFNULL(tvSort.value, tvDefault.default_text) AS SIGNED INTEGER) AS sortTV\");\n                break;\n            case \'decimal\':\n                $criteria->select(\"CAST(IFNULL(tvSort.value, tvDefault.default_text) AS DECIMAL) AS sortTV\");\n                break;\n            case \'datetime\':\n                $criteria->select(\"CAST(IFNULL(tvSort.value, tvDefault.default_text) AS DATETIME) AS sortTV\");\n                break;\n            case \'string\':\n            default:\n                $criteria->select(\"IFNULL(tvSort.value, tvDefault.default_text) AS sortTV\");\n                break;\n        }\n    } elseif ($modx->getOption(\'dbtype\') === \'sqlsrv\') {\n        switch ($sortbyTVType) {\n            case \'integer\':\n                $criteria->select(\"CAST(ISNULL(tvSort.value, tvDefault.default_text) AS BIGINT) AS sortTV\");\n                break;\n            case \'decimal\':\n                $criteria->select(\"CAST(ISNULL(tvSort.value, tvDefault.default_text) AS DECIMAL) AS sortTV\");\n                break;\n            case \'datetime\':\n                $criteria->select(\"CAST(ISNULL(tvSort.value, tvDefault.default_text) AS DATETIME) AS sortTV\");\n                break;\n            case \'string\':\n            default:\n                $criteria->select(\"ISNULL(tvSort.value, tvDefault.default_text) AS sortTV\");\n                break;\n        }\n    }\n    $criteria->sortby(\"sortTV\", $sortdirTV);\n}\nif (!empty($sortby)) {\n    if (strpos($sortby, \'{\') === 0) {\n        $sorts = $modx->fromJSON($sortby);\n    } else {\n        $sorts = array($sortby => $sortdir);\n    }\n    if (is_array($sorts)) {\n        while (list($sort, $dir) = each($sorts)) {\n            if ($sortbyEscaped) $sort = $modx->escape($sort);\n            if (!empty($sortbyAlias)) $sort = $modx->escape($sortbyAlias) . \".{$sort}\";\n            $criteria->sortby($sort, $dir);\n        }\n    }\n}\nif (!empty($limit)) $criteria->limit($limit, $offset);\n\nif (!empty($debug)) {\n    $criteria->prepare();\n    $modx->log(modX::LOG_LEVEL_ERROR, $criteria->toSQL());\n}\n$collection = $modx->getCollection(\'modResource\', $criteria, $dbCacheFlag);\n\n$idx = !empty($idx) || $idx === \'0\' ? (integer) $idx : 1;\n$first = empty($first) && $first !== \'0\' ? 1 : (integer) $first;\n$last = empty($last) ? (count($collection) + $idx - 1) : (integer) $last;\n\n/* include parseTpl */\ninclude_once $modx->getOption(\'getresources.core_path\',null,$modx->getOption(\'core_path\').\'components/getresources/\').\'include.parsetpl.php\';\n\n$templateVars = array();\nif (!empty($includeTVs) && !empty($includeTVList)) {\n    $templateVars = $modx->getCollection(\'modTemplateVar\', array(\'name:IN\' => $includeTVList));\n}\n/** @var modResource $resource */\nforeach ($collection as $resourceId => $resource) {\n    $tvs = array();\n    if (!empty($includeTVs)) {\n        if (empty($includeTVList)) {\n            $templateVars = $resource->getMany(\'TemplateVars\');\n        }\n        /** @var modTemplateVar $templateVar */\n        foreach ($templateVars as $tvId => $templateVar) {\n            if (!empty($includeTVList) && !in_array($templateVar->get(\'name\'), $includeTVList)) continue;\n            if ($processTVs && (empty($processTVList) || in_array($templateVar->get(\'name\'), $processTVList))) {\n                $tvs[$tvPrefix . $templateVar->get(\'name\')] = $templateVar->renderOutput($resource->get(\'id\'));\n            } else {\n                $value = $templateVar->getValue($resource->get(\'id\'));\n                if ($prepareTVs && method_exists($templateVar, \'prepareOutput\') && (empty($prepareTVList) || in_array($templateVar->get(\'name\'), $prepareTVList))) {\n                    $value = $templateVar->prepareOutput($value);\n                }\n                $tvs[$tvPrefix . $templateVar->get(\'name\')] = $value;\n            }\n        }\n    }\n    $odd = ($idx & 1);\n    $properties = array_merge(\n        $scriptProperties\n        ,array(\n            \'idx\' => $idx\n            ,\'first\' => $first\n            ,\'last\' => $last\n            ,\'odd\' => $odd\n        )\n        ,$includeContent ? $resource->toArray() : $resource->get($fields)\n        ,$tvs\n    );\n    $resourceTpl = false;\n    if ($idx == $first && !empty($tplFirst)) {\n        $resourceTpl = parseTpl($tplFirst, $properties);\n    }\n    if ($idx == $last && empty($resourceTpl) && !empty($tplLast)) {\n        $resourceTpl = parseTpl($tplLast, $properties);\n    }\n    $tplidx = \'tpl_\' . $idx;\n    if (empty($resourceTpl) && !empty($$tplidx)) {\n        $resourceTpl = parseTpl($$tplidx, $properties);\n    }\n    if ($idx > 1 && empty($resourceTpl)) {\n        $divisors = getDivisors($idx);\n        if (!empty($divisors)) {\n            foreach ($divisors as $divisor) {\n                $tplnth = \'tpl_n\' . $divisor;\n                if (!empty($$tplnth)) {\n                    $resourceTpl = parseTpl($$tplnth, $properties);\n                    if (!empty($resourceTpl)) {\n                        break;\n                    }\n                }\n            }\n        }\n    }\n    if ($odd && empty($resourceTpl) && !empty($tplOdd)) {\n        $resourceTpl = parseTpl($tplOdd, $properties);\n    }\n    if (!empty($tplCondition) && !empty($conditionalTpls) && empty($resourceTpl)) {\n        $conTpls = $modx->fromJSON($conditionalTpls);\n        $subject = $properties[$tplCondition];\n        $tplOperator = !empty($tplOperator) ? $tplOperator : \'=\';\n        $tplOperator = strtolower($tplOperator);\n        $tplCon = \'\';\n        foreach ($conTpls as $operand => $conditionalTpl) {\n            switch ($tplOperator) {\n                case \'!=\':\n                case \'neq\':\n                case \'not\':\n                case \'isnot\':\n                case \'isnt\':\n                case \'unequal\':\n                case \'notequal\':\n                    $tplCon = (($subject != $operand) ? $conditionalTpl : $tplCon);\n                    break;\n                case \'<\':\n                case \'lt\':\n                case \'less\':\n                case \'lessthan\':\n                    $tplCon = (($subject < $operand) ? $conditionalTpl : $tplCon);\n                    break;\n                case \'>\':\n                case \'gt\':\n                case \'greater\':\n                case \'greaterthan\':\n                    $tplCon = (($subject > $operand) ? $conditionalTpl : $tplCon);\n                    break;\n                case \'<=\':\n                case \'lte\':\n                case \'lessthanequals\':\n                case \'lessthanorequalto\':\n                    $tplCon = (($subject <= $operand) ? $conditionalTpl : $tplCon);\n                    break;\n                case \'>=\':\n                case \'gte\':\n                case \'greaterthanequals\':\n                case \'greaterthanequalto\':\n                    $tplCon = (($subject >= $operand) ? $conditionalTpl : $tplCon);\n                    break;\n                case \'isempty\':\n                case \'empty\':\n                    $tplCon = empty($subject) ? $conditionalTpl : $tplCon;\n                    break;\n                case \'!empty\':\n                case \'notempty\':\n                case \'isnotempty\':\n                    $tplCon = !empty($subject) && $subject != \'\' ? $conditionalTpl : $tplCon;\n                    break;\n                case \'isnull\':\n                case \'null\':\n                    $tplCon = $subject == null || strtolower($subject) == \'null\' ? $conditionalTpl : $tplCon;\n                    break;\n                case \'inarray\':\n                case \'in_array\':\n                case \'ia\':\n                    $operand = explode(\',\', $operand);\n                    $tplCon = in_array($subject, $operand) ? $conditionalTpl : $tplCon;\n                    break;\n                case \'between\':\n                case \'range\':\n                case \'>=<\':\n                case \'><\':\n                    $operand = explode(\',\', $operand);\n                    $tplCon = ($subject >= min($operand) && $subject <= max($operand)) ? $conditionalTpl : $tplCon;\n                    break;\n                case \'==\':\n                case \'=\':\n                case \'eq\':\n                case \'is\':\n                case \'equal\':\n                case \'equals\':\n                case \'equalto\':\n                default:\n                    $tplCon = (($subject == $operand) ? $conditionalTpl : $tplCon);\n                    break;\n            }\n        }\n        if (!empty($tplCon)) {\n            $resourceTpl = parseTpl($tplCon, $properties);\n        }\n    }\n    if (!empty($tpl) && empty($resourceTpl)) {\n        $resourceTpl = parseTpl($tpl, $properties);\n    }\n    if ($resourceTpl === false && !empty($debug)) {\n        $chunk = $modx->newObject(\'modChunk\');\n        $chunk->setCacheable(false);\n        $output[]= $chunk->process(array(), \'<pre>\' . print_r($properties, true) .\'</pre>\');\n    } else {\n        $output[]= $resourceTpl;\n    }\n    $idx++;\n}\n\n/* output */\n$toSeparatePlaceholders = $modx->getOption(\'toSeparatePlaceholders\', $scriptProperties, false);\nif (!empty($toSeparatePlaceholders)) {\n    $modx->setPlaceholders($output, $toSeparatePlaceholders);\n    return \'\';\n}\n\n$output = implode($outputSeparator, $output);\n\n$tplWrapper = $modx->getOption(\'tplWrapper\', $scriptProperties, false);\n$wrapIfEmpty = $modx->getOption(\'wrapIfEmpty\', $scriptProperties, false);\nif (!empty($tplWrapper) && ($wrapIfEmpty || !empty($output))) {\n    $output = parseTpl($tplWrapper, array_merge($scriptProperties, array(\'output\' => $output)));\n}\n\n$toPlaceholder = $modx->getOption(\'toPlaceholder\', $scriptProperties, false);\nif (!empty($toPlaceholder)) {\n    $modx->setPlaceholder($toPlaceholder, $output);\n    return \'\';\n}\nreturn $output;',0,'a:44:{s:3:\"tpl\";a:7:{s:4:\"name\";s:3:\"tpl\";s:4:\"desc\";s:121:\"Name of a chunk serving as a resource template. NOTE: if not provided, properties are dumped to output for each resource.\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:0:\"\";s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:6:\"tplOdd\";a:7:{s:4:\"name\";s:6:\"tplOdd\";s:4:\"desc\";s:100:\"Name of a chunk serving as resource template for resources with an odd idx value (see idx property).\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:0:\"\";s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:8:\"tplFirst\";a:7:{s:4:\"name\";s:8:\"tplFirst\";s:4:\"desc\";s:89:\"Name of a chunk serving as resource template for the first resource (see first property).\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:0:\"\";s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:7:\"tplLast\";a:7:{s:4:\"name\";s:7:\"tplLast\";s:4:\"desc\";s:87:\"Name of a chunk serving as resource template for the last resource (see last property).\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:0:\"\";s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:10:\"tplWrapper\";a:7:{s:4:\"name\";s:10:\"tplWrapper\";s:4:\"desc\";s:115:\"Name of a chunk serving as wrapper template for the Snippet output. This does not work with toSeparatePlaceholders.\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:0:\"\";s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:11:\"wrapIfEmpty\";a:7:{s:4:\"name\";s:11:\"wrapIfEmpty\";s:4:\"desc\";s:95:\"Indicates if empty output should be wrapped by the tplWrapper, if specified. Defaults to false.\";s:4:\"type\";s:13:\"combo-boolean\";s:7:\"options\";s:0:\"\";s:5:\"value\";b:0;s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:6:\"sortby\";a:7:{s:4:\"name\";s:6:\"sortby\";s:4:\"desc\";s:153:\"A field name to sort by or JSON object of field names and sortdir for each field, e.g. {\"publishedon\":\"ASC\",\"createdon\":\"DESC\"}. Defaults to publishedon.\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:11:\"publishedon\";s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:8:\"sortbyTV\";a:7:{s:4:\"name\";s:8:\"sortbyTV\";s:4:\"desc\";s:65:\"Name of a Template Variable to sort by. Defaults to empty string.\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:0:\"\";s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:12:\"sortbyTVType\";a:7:{s:4:\"name\";s:12:\"sortbyTVType\";s:4:\"desc\";s:72:\"An optional type to indicate how to sort on the Template Variable value.\";s:4:\"type\";s:4:\"list\";s:7:\"options\";a:4:{i:0;a:2:{s:4:\"text\";s:6:\"string\";s:5:\"value\";s:6:\"string\";}i:1;a:2:{s:4:\"text\";s:7:\"integer\";s:5:\"value\";s:7:\"integer\";}i:2;a:2:{s:4:\"text\";s:7:\"decimal\";s:5:\"value\";s:7:\"decimal\";}i:3;a:2:{s:4:\"text\";s:8:\"datetime\";s:5:\"value\";s:8:\"datetime\";}}s:5:\"value\";s:6:\"string\";s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:11:\"sortbyAlias\";a:7:{s:4:\"name\";s:11:\"sortbyAlias\";s:4:\"desc\";s:58:\"Query alias for sortby field. Defaults to an empty string.\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:0:\"\";s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:13:\"sortbyEscaped\";a:7:{s:4:\"name\";s:13:\"sortbyEscaped\";s:4:\"desc\";s:82:\"Determines if the field name specified in sortby should be escaped. Defaults to 0.\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:1:\"0\";s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:7:\"sortdir\";a:7:{s:4:\"name\";s:7:\"sortdir\";s:4:\"desc\";s:41:\"Order which to sort by. Defaults to DESC.\";s:4:\"type\";s:4:\"list\";s:7:\"options\";a:2:{i:0;a:2:{s:4:\"text\";s:3:\"ASC\";s:5:\"value\";s:3:\"ASC\";}i:1;a:2:{s:4:\"text\";s:4:\"DESC\";s:5:\"value\";s:4:\"DESC\";}}s:5:\"value\";s:4:\"DESC\";s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:9:\"sortdirTV\";a:7:{s:4:\"name\";s:9:\"sortdirTV\";s:4:\"desc\";s:61:\"Order which to sort a Template Variable by. Defaults to DESC.\";s:4:\"type\";s:4:\"list\";s:7:\"options\";a:2:{i:0;a:2:{s:4:\"text\";s:3:\"ASC\";s:5:\"value\";s:3:\"ASC\";}i:1;a:2:{s:4:\"text\";s:4:\"DESC\";s:5:\"value\";s:4:\"DESC\";}}s:5:\"value\";s:4:\"DESC\";s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:5:\"limit\";a:7:{s:4:\"name\";s:5:\"limit\";s:4:\"desc\";s:55:\"Limits the number of resources returned. Defaults to 5.\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:1:\"5\";s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:6:\"offset\";a:7:{s:4:\"name\";s:6:\"offset\";s:4:\"desc\";s:56:\"An offset of resources returned by the criteria to skip.\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:1:\"0\";s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:9:\"tvFilters\";a:7:{s:4:\"name\";s:9:\"tvFilters\";s:4:\"desc\";s:778:\"Delimited-list of TemplateVar values to filter resources by. Supports two delimiters and two value search formats. THe first delimiter || represents a logical OR and the primary grouping mechanism.  Within each group you can provide a comma-delimited list of values. These values can be either tied to a specific TemplateVar by name, e.g. myTV==value, or just the value, indicating you are searching for the value in any TemplateVar tied to the Resource. An example would be &tvFilters=`filter2==one,filter1==bar%||filter1==foo`. <br />NOTE: filtering by values uses a LIKE query and % is considered a wildcard. <br />ANOTHER NOTE: This only looks at the raw value set for specific Resource, i. e. there must be a value specifically set for the Resource and it is not evaluated.\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:0:\"\";s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:21:\"tvFiltersAndDelimiter\";a:7:{s:4:\"name\";s:21:\"tvFiltersAndDelimiter\";s:4:\"desc\";s:83:\"The delimiter to use to separate logical AND expressions in tvFilters. Default is ,\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:1:\",\";s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:20:\"tvFiltersOrDelimiter\";a:7:{s:4:\"name\";s:20:\"tvFiltersOrDelimiter\";s:4:\"desc\";s:83:\"The delimiter to use to separate logical OR expressions in tvFilters. Default is ||\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:2:\"||\";s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:5:\"depth\";a:7:{s:4:\"name\";s:5:\"depth\";s:4:\"desc\";s:88:\"Integer value indicating depth to search for resources from each parent. Defaults to 10.\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:2:\"10\";s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:7:\"parents\";a:7:{s:4:\"name\";s:7:\"parents\";s:4:\"desc\";s:57:\"Optional. Comma-delimited list of ids serving as parents.\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:0:\"\";s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:14:\"includeContent\";a:7:{s:4:\"name\";s:14:\"includeContent\";s:4:\"desc\";s:95:\"Indicates if the content of each resource should be returned in the results. Defaults to false.\";s:4:\"type\";s:13:\"combo-boolean\";s:7:\"options\";s:0:\"\";s:5:\"value\";b:0;s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:10:\"includeTVs\";a:7:{s:4:\"name\";s:10:\"includeTVs\";s:4:\"desc\";s:124:\"Indicates if TemplateVar values should be included in the properties available to each resource template. Defaults to false.\";s:4:\"type\";s:13:\"combo-boolean\";s:7:\"options\";s:0:\"\";s:5:\"value\";b:0;s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:13:\"includeTVList\";a:7:{s:4:\"name\";s:13:\"includeTVList\";s:4:\"desc\";s:96:\"Limits included TVs to those specified as a comma-delimited list of TV names. Defaults to empty.\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:0:\"\";s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:10:\"showHidden\";a:7:{s:4:\"name\";s:10:\"showHidden\";s:4:\"desc\";s:85:\"Indicates if Resources that are hidden from menus should be shown. Defaults to false.\";s:4:\"type\";s:13:\"combo-boolean\";s:7:\"options\";s:0:\"\";s:5:\"value\";b:0;s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:15:\"showUnpublished\";a:7:{s:4:\"name\";s:15:\"showUnpublished\";s:4:\"desc\";s:79:\"Indicates if Resources that are unpublished should be shown. Defaults to false.\";s:4:\"type\";s:13:\"combo-boolean\";s:7:\"options\";s:0:\"\";s:5:\"value\";b:0;s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:11:\"showDeleted\";a:7:{s:4:\"name\";s:11:\"showDeleted\";s:4:\"desc\";s:75:\"Indicates if Resources that are deleted should be shown. Defaults to false.\";s:4:\"type\";s:13:\"combo-boolean\";s:7:\"options\";s:0:\"\";s:5:\"value\";b:0;s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:9:\"resources\";a:7:{s:4:\"name\";s:9:\"resources\";s:4:\"desc\";s:177:\"A comma-separated list of resource IDs to exclude or include. IDs with a - in front mean to exclude. Ex: 123,-456 means to include Resource 123, but always exclude Resource 456.\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:0:\"\";s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:10:\"processTVs\";a:7:{s:4:\"name\";s:10:\"processTVs\";s:4:\"desc\";s:117:\"Indicates if TemplateVar values should be rendered as they would on the resource being summarized. Defaults to false.\";s:4:\"type\";s:13:\"combo-boolean\";s:7:\"options\";s:0:\"\";s:5:\"value\";b:0;s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:13:\"processTVList\";a:7:{s:4:\"name\";s:13:\"processTVList\";s:4:\"desc\";s:166:\"Limits processed TVs to those specified as a comma-delimited list of TV names; note only includedTVs will be available for processing if specified. Defaults to empty.\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:0:\"\";s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:10:\"prepareTVs\";a:7:{s:4:\"name\";s:10:\"prepareTVs\";s:4:\"desc\";s:120:\"Indicates if TemplateVar values that are not processed fully should be prepared before being returned. Defaults to true.\";s:4:\"type\";s:13:\"combo-boolean\";s:7:\"options\";s:0:\"\";s:5:\"value\";b:1;s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:13:\"prepareTVList\";a:7:{s:4:\"name\";s:13:\"prepareTVList\";s:4:\"desc\";s:164:\"Limits prepared TVs to those specified as a comma-delimited list of TV names; note only includedTVs will be available for preparing if specified. Defaults to empty.\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:0:\"\";s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:8:\"tvPrefix\";a:7:{s:4:\"name\";s:8:\"tvPrefix\";s:4:\"desc\";s:55:\"The prefix for TemplateVar properties. Defaults to: tv.\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:3:\"tv.\";s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:3:\"idx\";a:7:{s:4:\"name\";s:3:\"idx\";s:4:\"desc\";s:120:\"You can define the starting idx of the resources, which is an property that is incremented as each resource is rendered.\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:0:\"\";s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:5:\"first\";a:7:{s:4:\"name\";s:5:\"first\";s:4:\"desc\";s:81:\"Define the idx which represents the first resource (see tplFirst). Defaults to 1.\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:0:\"\";s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:4:\"last\";a:7:{s:4:\"name\";s:4:\"last\";s:4:\"desc\";s:129:\"Define the idx which represents the last resource (see tplLast). Defaults to the number of resources being summarized + first - 1\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:0:\"\";s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:13:\"toPlaceholder\";a:7:{s:4:\"name\";s:13:\"toPlaceholder\";s:4:\"desc\";s:85:\"If set, will assign the result to this placeholder instead of outputting it directly.\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:0:\"\";s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:22:\"toSeparatePlaceholders\";a:7:{s:4:\"name\";s:22:\"toSeparatePlaceholders\";s:4:\"desc\";s:130:\"If set, will assign EACH result to a separate placeholder named by this param suffixed with a sequential number (starting from 0).\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:0:\"\";s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:5:\"debug\";a:7:{s:4:\"name\";s:5:\"debug\";s:4:\"desc\";s:68:\"If true, will send the SQL query to the MODX log. Defaults to false.\";s:4:\"type\";s:13:\"combo-boolean\";s:7:\"options\";s:0:\"\";s:5:\"value\";b:0;s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:5:\"where\";a:7:{s:4:\"name\";s:5:\"where\";s:4:\"desc\";s:193:\"A JSON expression of criteria to build any additional where clauses from, e.g. &where=`{{\"alias:LIKE\":\"foo%\", \"OR:alias:LIKE\":\"%bar\"},{\"OR:pagetitle:=\":\"foobar\", \"AND:description:=\":\"raboof\"}}`\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:0:\"\";s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:11:\"dbCacheFlag\";a:7:{s:4:\"name\";s:11:\"dbCacheFlag\";s:4:\"desc\";s:218:\"Determines how result sets are cached if cache_db is enabled in MODX. 0|false = do not cache result set; 1 = cache result set according to cache settings, any other integer value = number of seconds to cache result set\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:1:\"0\";s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:7:\"context\";a:7:{s:4:\"name\";s:7:\"context\";s:4:\"desc\";s:116:\"A comma-delimited list of context keys for limiting results. Default is empty, i.e. do not limit results by context.\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:0:\"\";s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:12:\"tplCondition\";a:7:{s:4:\"name\";s:12:\"tplCondition\";s:4:\"desc\";s:129:\"A condition to compare against the conditionalTpls property to map Resources to different tpls based on custom conditional logic.\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:0:\"\";s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:11:\"tplOperator\";a:7:{s:4:\"name\";s:11:\"tplOperator\";s:4:\"desc\";s:125:\"An optional operator to use for the tplCondition when comparing against the conditionalTpls operands. Default is == (equals).\";s:4:\"type\";s:4:\"list\";s:7:\"options\";a:10:{i:0;a:2:{s:4:\"text\";s:11:\"is equal to\";s:5:\"value\";s:2:\"==\";}i:1;a:2:{s:4:\"text\";s:15:\"is not equal to\";s:5:\"value\";s:2:\"!=\";}i:2;a:2:{s:4:\"text\";s:9:\"less than\";s:5:\"value\";s:1:\"<\";}i:3;a:2:{s:4:\"text\";s:21:\"less than or equal to\";s:5:\"value\";s:2:\"<=\";}i:4;a:2:{s:4:\"text\";s:24:\"greater than or equal to\";s:5:\"value\";s:2:\">=\";}i:5;a:2:{s:4:\"text\";s:8:\"is empty\";s:5:\"value\";s:5:\"empty\";}i:6;a:2:{s:4:\"text\";s:12:\"is not empty\";s:5:\"value\";s:6:\"!empty\";}i:7;a:2:{s:4:\"text\";s:7:\"is null\";s:5:\"value\";s:4:\"null\";}i:8;a:2:{s:4:\"text\";s:11:\"is in array\";s:5:\"value\";s:7:\"inarray\";}i:9;a:2:{s:4:\"text\";s:10:\"is between\";s:5:\"value\";s:7:\"between\";}}s:5:\"value\";s:2:\"==\";s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:15:\"conditionalTpls\";a:7:{s:4:\"name\";s:15:\"conditionalTpls\";s:4:\"desc\";s:121:\"A JSON map of conditional operands and tpls to compare against the tplCondition property using the specified tplOperator.\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:0:\"\";s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}}','',0,''),(4,0,0,'getImageList','',0,1,0,'/**\n * getImageList\n *\n * Copyright 2009-2014 by Bruno Perner <b.perner@gmx.de>\n *\n * getImageList is free software; you can redistribute it and/or modify it\n * under the terms of the GNU General Public License as published by the Free\n * Software Foundation; either version 2 of the License, or (at your option) any\n * later version.\n *\n * getImageList is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along with\n * getImageList; if not, write to the Free Software Foundation, Inc., 59 Temple Place,\n * Suite 330, Boston, MA 02111-1307 USA\n *\n * @package migx\n */\n/**\n * getImageList\n *\n * display Items from outputvalue of TV with custom-TV-input-type MIGX or from other JSON-string for MODx Revolution \n *\n * @version 1.4\n * @author Bruno Perner <b.perner@gmx.de>\n * @copyright Copyright &copy; 2009-2014\n * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU General Public License\n * version 2 or (at your option) any later version.\n * @package migx\n */\n\n/*example: <ul>[[!getImageList? &tvname=`myTV`&tpl=`@CODE:<li>[[+idx]]<img src=\"[[+imageURL]]\"/><p>[[+imageAlt]]</p></li>`]]</ul>*/\n/* get default properties */\n\n\n$tvname = $modx->getOption(\'tvname\', $scriptProperties, \'\');\n$tpl = $modx->getOption(\'tpl\', $scriptProperties, \'\');\n$wrapperTpl = $modx->getOption(\'wrapperTpl\', $scriptProperties, \'\');\n$limit = $modx->getOption(\'limit\', $scriptProperties, \'0\');\n$offset = $modx->getOption(\'offset\', $scriptProperties, 0);\n$totalVar = $modx->getOption(\'totalVar\', $scriptProperties, \'total\');\n$randomize = $modx->getOption(\'randomize\', $scriptProperties, false);\n$preselectLimit = $modx->getOption(\'preselectLimit\', $scriptProperties, 0); // when random preselect important images\n$where = $modx->getOption(\'where\', $scriptProperties, \'\');\n$where = !empty($where) ? $modx->fromJSON($where) : array();\n$sort = $modx->getOption(\'sort\', $scriptProperties, \'\');\n$sort = !empty($sort) ? $modx->fromJSON($sort) : array();\n$toSeparatePlaceholders = $modx->getOption(\'toSeparatePlaceholders\', $scriptProperties, false);\n$toPlaceholder = $modx->getOption(\'toPlaceholder\', $scriptProperties, false);\n$outputSeparator = $modx->getOption(\'outputSeparator\', $scriptProperties, \'\');\n$splitSeparator = $modx->getOption(\'splitSeparator\', $scriptProperties, \'\');\n$placeholdersKeyField = $modx->getOption(\'placeholdersKeyField\', $scriptProperties, \'MIGX_id\');\n$toJsonPlaceholder = $modx->getOption(\'toJsonPlaceholder\', $scriptProperties, false);\n$jsonVarKey = $modx->getOption(\'jsonVarKey\', $scriptProperties, \'migx_outputvalue\');\n$outputvalue = $modx->getOption(\'value\', $scriptProperties, \'\');\n$outputvalue = isset($_REQUEST[$jsonVarKey]) ? $_REQUEST[$jsonVarKey] : $outputvalue;\n$docidVarKey = $modx->getOption(\'docidVarKey\', $scriptProperties, \'migx_docid\');\n$docid = $modx->getOption(\'docid\', $scriptProperties, (isset($modx->resource) ? $modx->resource->get(\'id\') : 1));\n$docid = isset($_REQUEST[$docidVarKey]) ? $_REQUEST[$docidVarKey] : $docid;\n$processTVs = $modx->getOption(\'processTVs\', $scriptProperties, \'1\');\n$reverse = $modx->getOption(\'reverse\', $scriptProperties, \'0\');\n$sumFields = $modx->getOption(\'sumFields\', $scriptProperties, \'\');\n$sumPrefix = $modx->getOption(\'sumPrefix\', $scriptProperties, \'summary_\');\n$addfields = $modx->getOption(\'addfields\', $scriptProperties, \'\');\n$addfields = !empty($addfields) ? explode(\',\', $addfields) : null;\n//split json into parts\n$splits = $modx->fromJson($modx->getOption(\'splits\', $scriptProperties, 0));\n$splitTpl = $modx->getOption(\'splitTpl\', $scriptProperties, \'\');\n$splitSeparator = $modx->getOption(\'splitSeparator\', $scriptProperties, \'\');\n$inheritFrom = $modx->getOption(\'inheritFrom\', $scriptProperties, \'\'); //commaseparated list of resource-ids or/and the keyword \'parents\' where to inherit from\n$inheritFrom = !empty($inheritFrom) ? explode(\',\',$inheritFrom) : \'\';\n\n$modx->setPlaceholder(\'docid\', $docid);\n\n$base_path = $modx->getOption(\'base_path\', null, MODX_BASE_PATH);\n$base_url = $modx->getOption(\'base_url\', null, MODX_BASE_URL);\n\n$migx = $modx->getService(\'migx\', \'Migx\', $modx->getOption(\'migx.core_path\', null, $modx->getOption(\'core_path\') . \'components/migx/\') . \'model/migx/\', $scriptProperties);\nif (!($migx instanceof Migx))\n    return \'\';\n$migx->working_context = isset($modx->resource) ? $modx->resource->get(\'context_key\') : \'web\';\n\nif (!empty($tvname)) {\n    if ($tv = $modx->getObject(\'modTemplateVar\', array(\'name\' => $tvname))) {\n\n        /*\n        *   get inputProperties\n        */\n\n\n        $properties = $tv->get(\'input_properties\');\n        $properties = isset($properties[\'formtabs\']) ? $properties : $tv->getProperties();\n\n        $migx->config[\'configs\'] = $modx->getOption(\'configs\', $properties, \'\');\n        if (!empty($migx->config[\'configs\'])) {\n            $migx->loadConfigs();\n            // get tabs from file or migx-config-table\n            $formtabs = $migx->getTabs();\n        }\n        if (empty($formtabs) && isset($properties[\'formtabs\'])) {\n            //try to get formtabs and its fields from properties\n            $formtabs = $modx->fromJSON($properties[\'formtabs\']);\n        }\n\n        if (!empty($properties[\'basePath\'])) {\n            if ($properties[\'autoResourceFolders\'] == \'true\') {\n                $scriptProperties[\'base_path\'] = $base_path . $properties[\'basePath\'] . $docid . \'/\';\n                $scriptProperties[\'base_url\'] = $base_url . $properties[\'basePath\'] . $docid . \'/\';\n            } else {\n                $scriptProperties[\'base_path\'] = $base_path . $properties[\'base_path\'];\n                $scriptProperties[\'base_url\'] = $base_url . $properties[\'basePath\'];\n            }\n        }\n        if ($jsonVarKey == \'migx_outputvalue\' && !empty($properties[\'jsonvarkey\'])) {\n            $jsonVarKey = $properties[\'jsonvarkey\'];\n            $outputvalue = isset($_REQUEST[$jsonVarKey]) ? $_REQUEST[$jsonVarKey] : $outputvalue;\n        }\n        \n        if (empty($outputvalue)){\n            $outputvalue = $tv->renderOutput($docid);\n            if (empty($outputvalue) && !empty($inheritFrom)){\n                foreach ($inheritFrom as $from){\n                    if ($from == \'parents\'){\n                        $outputvalue = $tv->processInheritBinding(\'\',$docid);\n                    }else{\n                        $outputvalue = $tv->renderOutput($from);\n                    }\n                    if (!empty($outputvalue)){\n                        break;\n                    }                    \n                }\n            }\n        }\n\n       \n        /*\n        *   get inputTvs \n        */\n        $inputTvs = array();\n        if (is_array($formtabs)) {\n\n            //multiple different Forms\n            // Note: use same field-names and inputTVs in all forms\n            $inputTvs = $migx->extractInputTvs($formtabs);\n        }\n        if ($migx->source = $tv->getSource($migx->working_context, false)){\n            $migx->source->initialize();\n        }\n        \n    }\n\n\n}\n\nif (empty($outputvalue)) {\n    return \'\';\n}\n\n//echo $outputvalue.\'<br/><br/>\';\n\n$items = $modx->fromJSON($outputvalue);\n\n// where filter\nif (is_array($where) && count($where) > 0) {\n    $items = $migx->filterItems($where, $items);\n}\n$modx->setPlaceholder($totalVar, count($items));\n\nif (!empty($reverse)) {\n    $items = array_reverse($items);\n}\n\n// sort items\nif (is_array($sort) && count($sort) > 0) {\n    $items = $migx->sortDbResult($items, $sort);\n}\n\n$summaries = array();\n$output = \'\';\n$items = $offset > 0 ? array_slice($items, $offset) : $items;\n$count = count($items);\n\nif ($count > 0) {\n    $limit = $limit == 0 || $limit > $count ? $count : $limit;\n    $preselectLimit = $preselectLimit > $count ? $count : $preselectLimit;\n    //preselect important items\n    $preitems = array();\n    if ($randomize && $preselectLimit > 0) {\n        for ($i = 0; $i < $preselectLimit; $i++) {\n            $preitems[] = $items[$i];\n            unset($items[$i]);\n        }\n        $limit = $limit - count($preitems);\n    }\n\n    //shuffle items\n    if ($randomize) {\n        shuffle($items);\n    }\n\n    //limit items\n    $count = count($items);\n    $tempitems = array();\n\n    for ($i = 0; $i < $limit; $i++) {\n        if ($i >= $count) {\n            break;\n        }\n        $tempitems[] = $items[$i];\n    }\n    $items = $tempitems;\n\n    //add preselected items and schuffle again\n    if ($randomize && $preselectLimit > 0) {\n        $items = array_merge($preitems, $items);\n        shuffle($items);\n    }\n\n    $properties = array();\n    foreach ($scriptProperties as $property => $value) {\n        $properties[\'property.\' . $property] = $value;\n    }\n\n    $idx = 0;\n    $output = array();\n    $template = array();\n    $count = count($items);\n\n    foreach ($items as $key => $item) {\n        $formname = isset($item[\'MIGX_formname\']) ? $item[\'MIGX_formname\'] . \'_\' : \'\';\n        $fields = array();\n        foreach ($item as $field => $value) {\n            if (is_array($value)) {\n                if (is_array($value[0])) {\n                    //nested array - convert to json\n                    $value = $modx->toJson($value);\n                } else {\n                    $value = implode(\'||\', $value); //handle arrays (checkboxes, multiselects)\n                }\n            }\n\n\n            $inputTVkey = $formname . $field;\n\n            if ($processTVs && isset($inputTvs[$inputTVkey])) {\n                if (isset($inputTvs[$inputTVkey][\'inputTV\']) && $tv = $modx->getObject(\'modTemplateVar\', array(\'name\' => $inputTvs[$inputTVkey][\'inputTV\']))) {\n\n                } else {\n                    $tv = $modx->newObject(\'modTemplateVar\');\n                    $tv->set(\'type\', $inputTvs[$inputTVkey][\'inputTVtype\']);\n                }\n                $inputTV = $inputTvs[$inputTVkey];\n\n                $mTypes = $modx->getOption(\'manipulatable_url_tv_output_types\', null, \'image,file\');\n                //don\'t manipulate any urls here\n                $modx->setOption(\'manipulatable_url_tv_output_types\', \'\');\n                $tv->set(\'default_text\', $value);\n                $value = $tv->renderOutput($docid);\n                //set option back\n                $modx->setOption(\'manipulatable_url_tv_output_types\', $mTypes);\n                //now manipulate urls\n                if ($mediasource = $migx->getFieldSource($inputTV, $tv)) {\n                    $mTypes = explode(\',\', $mTypes);\n                    if (!empty($value) && in_array($tv->get(\'type\'), $mTypes)) {\n                        //$value = $mediasource->prepareOutputUrl($value);\n                        $value = str_replace(\'/./\', \'/\', $mediasource->prepareOutputUrl($value));\n                    }\n                }\n\n            }\n            $fields[$field] = $value;\n\n        }\n\n        if (!empty($addfields)) {\n            foreach ($addfields as $addfield) {\n                $addfield = explode(\':\', $addfield);\n                $addname = $addfield[0];\n                $adddefault = isset($addfield[1]) ? $addfield[1] : \'\';\n                $fields[$addname] = $adddefault;\n            }\n        }\n\n        if (!empty($sumFields)) {\n            $sumFields = is_array($sumFields) ? $sumFields : explode(\',\', $sumFields);\n            foreach ($sumFields as $sumField) {\n                if (isset($fields[$sumField])) {\n                    $summaries[$sumPrefix . $sumField] = $summaries[$sumPrefix . $sumField] + $fields[$sumField];\n                    $fields[$sumPrefix . $sumField] = $summaries[$sumPrefix . $sumField];\n                }\n            }\n        }\n\n\n        if ($toJsonPlaceholder) {\n            $output[] = $fields;\n        } else {\n            $fields[\'_alt\'] = $idx % 2;\n            $idx++;\n            $fields[\'_first\'] = $idx == 1 ? true : \'\';\n            $fields[\'_last\'] = $idx == $limit ? true : \'\';\n            $fields[\'idx\'] = $idx;\n            $rowtpl = \'\';\n            //get changing tpls from field\n            if (substr($tpl, 0, 7) == \"@FIELD:\") {\n                $tplField = substr($tpl, 7);\n                $rowtpl = $fields[$tplField];\n            }\n\n            if ($fields[\'_first\'] && !empty($tplFirst)) {\n                $rowtpl = $tplFirst;\n            }\n            if ($fields[\'_last\'] && empty($rowtpl) && !empty($tplLast)) {\n                $rowtpl = $tplLast;\n            }\n            $tplidx = \'tpl_\' . $idx;\n            if (empty($rowtpl) && !empty($$tplidx)) {\n                $rowtpl = $$tplidx;\n            }\n            if ($idx > 1 && empty($rowtpl)) {\n                $divisors = $migx->getDivisors($idx);\n                if (!empty($divisors)) {\n                    foreach ($divisors as $divisor) {\n                        $tplnth = \'tpl_n\' . $divisor;\n                        if (!empty($$tplnth)) {\n                            $rowtpl = $$tplnth;\n                            if (!empty($rowtpl)) {\n                                break;\n                            }\n                        }\n                    }\n                }\n            }\n\n            if ($count == 1 && isset($tpl_oneresult)) {\n                $rowtpl = $tpl_oneresult;\n            }\n\n            $fields = array_merge($fields, $properties);\n\n            if (!empty($rowtpl)) {\n                $template = $migx->getTemplate($tpl, $template);\n                $fields[\'_tpl\'] = $template[$tpl];\n            } else {\n                $rowtpl = $tpl;\n\n            }\n            $template = $migx->getTemplate($rowtpl, $template);\n\n\n            if ($template[$rowtpl]) {\n                $chunk = $modx->newObject(\'modChunk\');\n                $chunk->setCacheable(false);\n                $chunk->setContent($template[$rowtpl]);\n\n\n                if (!empty($placeholdersKeyField) && isset($fields[$placeholdersKeyField])) {\n                    $output[$fields[$placeholdersKeyField]] = $chunk->process($fields);\n                } else {\n                    $output[] = $chunk->process($fields);\n                }\n            } else {\n                if (!empty($placeholdersKeyField)) {\n                    $output[$fields[$placeholdersKeyField]] = \'<pre>\' . print_r($fields, 1) . \'</pre>\';\n                } else {\n                    $output[] = \'<pre>\' . print_r($fields, 1) . \'</pre>\';\n                }\n            }\n        }\n\n\n    }\n}\n\nif (count($summaries) > 0) {\n    $modx->toPlaceholders($summaries);\n}\n\n\nif ($toJsonPlaceholder) {\n    $modx->setPlaceholder($toJsonPlaceholder, $modx->toJson($output));\n    return \'\';\n}\n\nif (!empty($toSeparatePlaceholders)) {\n    $modx->toPlaceholders($output, $toSeparatePlaceholders);\n    return \'\';\n}\n/*\nif (!empty($outerTpl))\n$o = parseTpl($outerTpl, array(\'output\'=>implode($outputSeparator, $output)));\nelse \n*/\n\nif ($count > 0 && $splits > 0) {\n    $size = ceil($count / $splits);\n    $chunks = array_chunk($output, $size);\n    $output = array();\n    foreach ($chunks as $chunk) {\n        $o = implode($outputSeparator, $chunk);\n        $output[] = $modx->getChunk($splitTpl, array(\'output\' => $o));\n    }\n    $outputSeparator = $splitSeparator;\n}\n\nif (is_array($output)) {\n    $o = implode($outputSeparator, $output);\n} else {\n    $o = $output;\n}\n\nif (!empty($o) && !empty($wrapperTpl)) {\n    $template = $migx->getTemplate($wrapperTpl);\n    if ($template[$wrapperTpl]) {\n        $chunk = $modx->newObject(\'modChunk\');\n        $chunk->setCacheable(false);\n        $chunk->setContent($template[$wrapperTpl]);\n        $properties[\'output\'] = $o;\n        $o = $chunk->process($properties);\n    }\n}\n\nif (!empty($toPlaceholder)) {\n    $modx->setPlaceholder($toPlaceholder, $o);\n    return \'\';\n}\n\nreturn $o;',0,'a:0:{}','',0,''),(5,0,0,'migxGetRelations','',0,1,0,'$id = $modx->getOption(\'id\', $scriptProperties, $modx->resource->get(\'id\'));\n$toPlaceholder = $modx->getOption(\'toPlaceholder\', $scriptProperties, \'\');\n$element = $modx->getOption(\'element\', $scriptProperties, \'getResources\');\n$outputSeparator = $modx->getOption(\'outputSeparator\', $scriptProperties, \',\');\n$sourceWhere = $modx->getOption(\'sourceWhere\', $scriptProperties, \'\');\n$ignoreRelationIfEmpty = $modx->getOption(\'ignoreRelationIfEmpty\', $scriptProperties, false);\n$inheritFromParents = $modx->getOption(\'inheritFromParents\', $scriptProperties, false);\n$parentIDs = $inheritFromParents ? array_merge(array($id), $modx->getParentIds($id)) : array($id);\n\n$packageName = \'resourcerelations\';\n\n$packagepath = $modx->getOption(\'core_path\') . \'components/\' . $packageName . \'/\';\n$modelpath = $packagepath . \'model/\';\n\n$modx->addPackage($packageName, $modelpath, $prefix);\n$classname = \'rrResourceRelation\';\n$output = \'\';\n\nforeach ($parentIDs as $id) {\n    if (!empty($id)) {\n        $output = \'\';\n                \n        $c = $modx->newQuery($classname, array(\'target_id\' => $id, \'published\' => \'1\'));\n        $c->select($modx->getSelectColumns($classname, $classname));\n\n        if (!empty($sourceWhere)) {\n            $sourceWhere_ar = $modx->fromJson($sourceWhere);\n            if (is_array($sourceWhere_ar)) {\n                $where = array();\n                foreach ($sourceWhere_ar as $key => $value) {\n                    $where[\'Source.\' . $key] = $value;\n                }\n                $joinclass = \'modResource\';\n                $joinalias = \'Source\';\n                $selectfields = \'id\';\n                $selectfields = !empty($selectfields) ? explode(\',\', $selectfields) : null;\n                $c->leftjoin($joinclass, $joinalias);\n                $c->select($modx->getSelectColumns($joinclass, $joinalias, $joinalias . \'_\', $selectfields));\n                $c->where($where);\n            }\n        }\n\n        //$c->prepare(); echo $c->toSql();\n        if ($c->prepare() && $c->stmt->execute()) {\n            $collection = $c->stmt->fetchAll(PDO::FETCH_ASSOC);\n        }\n        \n        foreach ($collection as $row) {\n            $ids[] = $row[\'source_id\'];\n        }\n        $output = implode($outputSeparator, $ids);\n    }\n    if (!empty($output)){\n        break;\n    }\n}\n\n\nif (!empty($element)) {\n    if (empty($output) && $ignoreRelationIfEmpty) {\n        return $modx->runSnippet($element, $scriptProperties);\n    } else {\n        $scriptProperties[\'resources\'] = $output;\n        $scriptProperties[\'parents\'] = \'9999999\';\n        return $modx->runSnippet($element, $scriptProperties);\n    }\n\n\n}\n\nif (!empty($toPlaceholder)) {\n    $modx->setPlaceholder($toPlaceholder, $output);\n    return \'\';\n}\n\nreturn $output;',0,NULL,'',0,''),(6,0,0,'migx','',0,1,0,'$tvname = $modx->getOption(\'tvname\', $scriptProperties, \'\');\n$tpl = $modx->getOption(\'tpl\', $scriptProperties, \'\');\n$limit = $modx->getOption(\'limit\', $scriptProperties, \'0\');\n$offset = $modx->getOption(\'offset\', $scriptProperties, 0);\n$totalVar = $modx->getOption(\'totalVar\', $scriptProperties, \'total\');\n$randomize = $modx->getOption(\'randomize\', $scriptProperties, false);\n$preselectLimit = $modx->getOption(\'preselectLimit\', $scriptProperties, 0); // when random preselect important images\n$where = $modx->getOption(\'where\', $scriptProperties, \'\');\n$where = !empty($where) ? $modx->fromJSON($where) : array();\n$sortConfig = $modx->getOption(\'sortConfig\', $scriptProperties, \'\');\n$sortConfig = !empty($sortConfig) ? $modx->fromJSON($sortConfig) : array();\n$configs = $modx->getOption(\'configs\', $scriptProperties, \'\');\n$configs = !empty($configs) ? explode(\',\',$configs):array();\n$toSeparatePlaceholders = $modx->getOption(\'toSeparatePlaceholders\', $scriptProperties, false);\n$toPlaceholder = $modx->getOption(\'toPlaceholder\', $scriptProperties, false);\n$outputSeparator = $modx->getOption(\'outputSeparator\', $scriptProperties, \'\');\n//$placeholdersKeyField = $modx->getOption(\'placeholdersKeyField\', $scriptProperties, \'MIGX_id\');\n$placeholdersKeyField = $modx->getOption(\'placeholdersKeyField\', $scriptProperties, \'id\');\n$toJsonPlaceholder = $modx->getOption(\'toJsonPlaceholder\', $scriptProperties, false);\n$jsonVarKey = $modx->getOption(\'jsonVarKey\', $scriptProperties, \'migx_outputvalue\');\n$outputvalue = $modx->getOption(\'value\', $scriptProperties, \'\');\n$outputvalue = isset($_REQUEST[$jsonVarKey]) ? $_REQUEST[$jsonVarKey] : $outputvalue;\n$docidVarKey = $modx->getOption(\'docidVarKey\', $scriptProperties, \'migx_docid\');\n$docid = $modx->getOption(\'docid\', $scriptProperties, (isset($modx->resource) ? $modx->resource->get(\'id\') : 1));\n$docid = isset($_REQUEST[$docidVarKey]) ? $_REQUEST[$docidVarKey] : $docid;\n$processTVs = $modx->getOption(\'processTVs\', $scriptProperties, \'1\');\n\n$base_path = $modx->getOption(\'base_path\', null, MODX_BASE_PATH);\n$base_url = $modx->getOption(\'base_url\', null, MODX_BASE_URL);\n\n$migx = $modx->getService(\'migx\', \'Migx\', $modx->getOption(\'migx.core_path\', null, $modx->getOption(\'core_path\') . \'components/migx/\') . \'model/migx/\', $scriptProperties);\nif (!($migx instanceof Migx))\n    return \'\';\n//$modx->migx = &$migx;\n$defaultcontext = \'web\';\n$migx->working_context = isset($modx->resource) ? $modx->resource->get(\'context_key\') : $defaultcontext;\n\nif (!empty($tvname))\n{\n    if ($tv = $modx->getObject(\'modTemplateVar\', array(\'name\' => $tvname)))\n    {\n\n        /*\n        *   get inputProperties\n        */\n\n\n        $properties = $tv->get(\'input_properties\');\n        $properties = isset($properties[\'configs\']) ? $properties : $tv->getProperties();\n        $cfgs = $modx->getOption(\'configs\',$properties,\'\');\n        if (!empty($cfgs)){\n            $cfgs = explode(\',\',$cfgs);\n            $configs = array_merge($configs,$cfgs);\n           \n        }\n        \n    }\n}\n\n\n\n//$migx->config[\'configs\'] = implode(\',\',$configs);\n$migx->loadConfigs(false,true,array(\'configs\'=>implode(\',\',$configs)));\n$migx->customconfigs = array_merge($migx->customconfigs,$scriptProperties);\n\n\n\n// get tabs from file or migx-config-table\n$formtabs = $migx->getTabs();\nif (empty($formtabs))\n{\n    //try to get formtabs and its fields from properties\n    $formtabs = $modx->fromJSON($properties[\'formtabs\']);\n}\n\nif ($jsonVarKey == \'migx_outputvalue\' && !empty($properties[\'jsonvarkey\']))\n{\n    $jsonVarKey = $properties[\'jsonvarkey\'];\n    $outputvalue = isset($_REQUEST[$jsonVarKey]) ? $_REQUEST[$jsonVarKey] : $outputvalue;\n}\n\n$outputvalue = $tv && empty($outputvalue) ? $tv->renderOutput($docid) : $outputvalue;\n/*\n*   get inputTvs \n*/\n$inputTvs = array();\nif (is_array($formtabs))\n{\n\n    //multiple different Forms\n    // Note: use same field-names and inputTVs in all forms\n    $inputTvs = $migx->extractInputTvs($formtabs);\n}\n\nif ($tv)\n{\n    $migx->source = $tv->getSource($migx->working_context, false);\n}\n\n//$task = $modx->migx->getTask();\n$filename = \'getlist.php\';\n$processorspath = $migx->config[\'processorsPath\'] . \'mgr/\';\n$filenames = array();\n$scriptProperties[\'start\'] = $modx->getOption(\'offset\', $scriptProperties, 0);\nif ($processor_file = $migx->findProcessor($processorspath, $filename, $filenames))\n{\n    include ($processor_file);\n    //todo: add getlist-processor for default-MIGX-TV\n}\n\n$items = isset($rows) && is_array($rows) ? $rows : array();\n$modx->setPlaceholder($totalVar, isset($count) ? $count : 0);\n\n$properties = array();\nforeach ($scriptProperties as $property => $value)\n{\n    $properties[\'property.\' . $property] = $value;\n}\n\n$idx = 0;\n$output = array();\nforeach ($items as $key => $item)\n{\n\n    $fields = array();\n    foreach ($item as $field => $value)\n    {\n        $value = is_array($value) ? implode(\'||\', $value) : $value; //handle arrays (checkboxes, multiselects)\n        if ($processTVs && isset($inputTvs[$field]))\n        {\n            if ($tv = $modx->getObject(\'modTemplateVar\', array(\'name\' => $inputTvs[$field][\'inputTV\'])))\n            {\n\n            } else\n            {\n                $tv = $modx->newObject(\'modTemplateVar\');\n                $tv->set(\'type\', $inputTvs[$field][\'inputTVtype\']);\n            }\n            $inputTV = $inputTvs[$field];\n\n            $mTypes = $modx->getOption(\'manipulatable_url_tv_output_types\', null, \'image,file\');\n            //don\'t manipulate any urls here\n            $modx->setOption(\'manipulatable_url_tv_output_types\', \'\');\n            $tv->set(\'default_text\', $value);\n            $value = $tv->renderOutput($docid);\n            //set option back\n            $modx->setOption(\'manipulatable_url_tv_output_types\', $mTypes);\n            //now manipulate urls\n            if ($mediasource = $migx->getFieldSource($inputTV, $tv))\n            {\n                $mTypes = explode(\',\', $mTypes);\n                if (!empty($value) && in_array($tv->get(\'type\'), $mTypes))\n                {\n                    //$value = $mediasource->prepareOutputUrl($value);\n                    $value = str_replace(\'/./\', \'/\', $mediasource->prepareOutputUrl($value));\n                }\n            }\n\n        }\n        $fields[$field] = $value;\n\n    }\n    if ($toJsonPlaceholder)\n    {\n        $output[] = $fields;\n    } else\n    {\n        $fields[\'_alt\'] = $idx % 2;\n        $idx++;\n        $fields[\'_first\'] = $idx == 1 ? true : \'\';\n        $fields[\'_last\'] = $idx == $limit ? true : \'\';\n        $fields[\'idx\'] = $idx;\n        $rowtpl = $tpl;\n        //get changing tpls from field\n        if (substr($tpl, 0, 7) == \"@FIELD:\")\n        {\n            $tplField = substr($tpl, 7);\n            $rowtpl = $fields[$tplField];\n        }\n\n        if (!isset($template[$rowtpl]))\n        {\n            if (substr($rowtpl, 0, 6) == \"@FILE:\")\n            {\n                $template[$rowtpl] = file_get_contents($modx->config[\'base_path\'] . substr($rowtpl, 6));\n            } elseif (substr($rowtpl, 0, 6) == \"@CODE:\")\n            {\n                $template[$rowtpl] = substr($tpl, 6);\n            } elseif ($chunk = $modx->getObject(\'modChunk\', array(\'name\' => $rowtpl), true))\n            {\n                $template[$rowtpl] = $chunk->getContent();\n            } else\n            {\n                $template[$rowtpl] = false;\n            }\n        }\n\n        $fields = array_merge($fields, $properties);\n\n        if ($template[$rowtpl])\n        {\n            $chunk = $modx->newObject(\'modChunk\');\n            $chunk->setCacheable(false);\n            $chunk->setContent($template[$rowtpl]);\n            if (!empty($placeholdersKeyField) && isset($fields[$placeholdersKeyField]))\n            {\n                $output[$fields[$placeholdersKeyField]] = $chunk->process($fields);\n            } else\n            {\n                $output[] = $chunk->process($fields);\n            }\n        } else\n        {\n            if (!empty($placeholdersKeyField))\n            {\n                $output[$fields[$placeholdersKeyField]] = \'<pre>\' . print_r($fields, 1) . \'</pre>\';\n            } else\n            {\n                $output[] = \'<pre>\' . print_r($fields, 1) . \'</pre>\';\n            }\n        }\n    }\n\n\n}\n\n\nif ($toJsonPlaceholder)\n{\n    $modx->setPlaceholder($toJsonPlaceholder, $modx->toJson($output));\n    return \'\';\n}\n\nif (!empty($toSeparatePlaceholders))\n{\n    $modx->toPlaceholders($output, $toSeparatePlaceholders);\n    return \'\';\n}\n/*\nif (!empty($outerTpl))\n$o = parseTpl($outerTpl, array(\'output\'=>implode($outputSeparator, $output)));\nelse \n*/\nif (is_array($output))\n{\n    $o = implode($outputSeparator, $output);\n} else\n{\n    $o = $output;\n}\n\nif (!empty($toPlaceholder))\n{\n    $modx->setPlaceholder($toPlaceholder, $o);\n    return \'\';\n}\n\nreturn $o;',0,NULL,'',0,''),(7,0,0,'migxLoopCollection','',0,1,0,'/*\ngetXpdoInstanceAndAddPackage - properties\n\n$prefix\n$usecustomprefix\n$packageName\n\n\nprepareQuery - properties:\n\n$limit\n$offset\n$totalVar\n$where\n$queries\n$sortConfig\n$groupby\n$joins\n$selectfields\n$classname\n$debug\n\nrenderOutput - properties:\n\n$tpl\n$wrapperTpl\n$toSeparatePlaceholders\n$toPlaceholder\n$outputSeparator\n$placeholdersKeyField\n$toJsonPlaceholder\n$jsonVarKey\n$addfields\n\n*/\n\n\n$migx = $modx->getService(\'migx\', \'Migx\', $modx->getOption(\'migx.core_path\', null, $modx->getOption(\'core_path\') . \'components/migx/\') . \'model/migx/\', $scriptProperties);\nif (!($migx instanceof Migx))\n    return \'\';\n//$modx->migx = &$migx;\n\n$xpdo = $migx->getXpdoInstanceAndAddPackage($scriptProperties);\n\n$defaultcontext = \'web\';\n$migx->working_context = isset($modx->resource) ? $modx->resource->get(\'context_key\') : $defaultcontext;\n\n$c = $migx->prepareQuery($xpdo,$scriptProperties);\n$rows = $migx->getCollection($c);\n\n$output = $migx->renderOutput($rows,$scriptProperties);\n\nreturn $output;',0,NULL,'',0,''),(8,0,0,'migxResourceMediaPath','',0,1,0,'/**\n * @name migxResourceMediaPath\n * @description Dynamically calculates the upload path for a given resource\n * \n * This Snippet is meant to dynamically calculate your baseBath attribute\n * for custom Media Sources.  This is useful if you wish to shepard uploaded\n * images to a folder dedicated to a given resource.  E.g. page 123 would \n * have its own images that page 456 could not reference.\n *\n * USAGE:\n * [[migxResourceMediaPath? &pathTpl=`assets/businesses/{id}/`]]\n * [[migxResourceMediaPath? &pathTpl=`assets/test/{breadcrumb}`]]\n * [[migxResourceMediaPath? &pathTpl=`assets/test/{breadcrumb}` &breadcrumbdepth=`2`]]\n *\n * PARAMETERS\n * &pathTpl string formatting string specifying the file path. \n *		Relative to MODX base_path\n *		Available placeholders: {id}, {pagetitle}, {parent}\n * &docid (optional) integer page id\n * &createFolder (optional) boolean whether or not to create\n */\n$pathTpl = $modx->getOption(\'pathTpl\', $scriptProperties, \'\');\n$docid = $modx->getOption(\'docid\', $scriptProperties, \'\');\n$createfolder = $modx->getOption(\'createFolder\', $scriptProperties, false);\n$path = \'\';\n$createpath = false;\n\nif (empty($pathTpl)) {\n    $modx->log(MODX_LOG_LEVEL_ERROR, \'[migxResourceMediaPath]: pathTpl not specified.\');\n    return;\n}\n\nif (empty($docid) && $modx->getPlaceholder(\'docid\')) {\n    // placeholder was set by some script\n    // warning: the parser may not render placeholders, e.g. &docid=`[[*parent]]` may fail\n    $docid = $modx->getPlaceholder(\'docid\');\n}\nif (empty($docid)) {\n\n    //on frontend\n    if (is_object($modx->resource)) {\n        $docid = $modx->resource->get(\'id\');\n    }\n    //on backend\n    else {\n        $createpath = $createfolder;\n        // We do this to read the &id param from an Ajax request\n        $parsedUrl = parse_url($_SERVER[\'HTTP_REFERER\']);\n        parse_str($parsedUrl[\'query\'], $parsedQuery);\n\n        if (isset($parsedQuery[\'amp;id\'])) {\n            $docid = (int)$parsedQuery[\'amp;id\'];\n        } elseif (isset($parsedQuery[\'id\'])) {\n            $docid = (int)$parsedQuery[\'id\'];\n        }\n    }\n}\n\nif (empty($docid)) {\n    $modx->log(MODX_LOG_LEVEL_ERROR, \'[migxResourceMediaPath]: docid could not be determined.\');\n    return;\n}\n\nif ($resource = $modx->getObject(\'modResource\', $docid)) {\n    $path = $pathTpl;\n    $ultimateParent = \'\';\n    if (strstr($path, \'{breadcrumb}\') || strstr($path, \'{ultimateparent}\')) {\n        $parentids = $modx->getParentIds($docid);\n        $breadcrumbdepth = $modx->getOption(\'breadcrumbdepth\', $scriptProperties, count($parentids));\n        $breadcrumbdepth = $breadcrumbdepth > count($parentids) ? count($parentids) : $breadcrumbdepth;\n        if (count($parentids) > 1) {\n            $parentids = array_reverse($parentids);\n            $parentids[] = $docid;\n            $ultimateParent = $parentids[1];\n        } else {\n            $ultimateParent = $docid;\n            $parentids = array();\n            $parentids[] = $docid;\n        }\n    }\n\n    if (strstr($path, \'{breadcrumb}\')) {\n        $breadcrumbpath = \'\';\n        for ($i = 1; $i <= $breadcrumbdepth; $i++) {\n            $breadcrumbpath .= $parentids[$i] . \'/\';\n        }\n        $path = str_replace(\'{breadcrumb}\', $breadcrumbpath, $path);\n\n    } else {\n        $path = str_replace(\'{id}\', $docid, $path);\n        $path = str_replace(\'{pagetitle}\', $resource->get(\'pagetitle\'), $path);\n        $path = str_replace(\'{alias}\', $resource->get(\'alias\'), $path);\n        $path = str_replace(\'{parent}\', $resource->get(\'parent\'), $path);\n        $path = str_replace(\'{context_key}\', $resource->get(\'context_key\'), $path);\n        $path = str_replace(\'{ultimateparent}\', $ultimateParent, $path);\n        if ($template = $resource->getOne(\'Template\')) {\n            $path = str_replace(\'{templatename}\', $template->get(\'templatename\'), $path);\n        }\n        if ($user = $modx->user) {\n            $path = str_replace(\'{username}\', $modx->user->get(\'username\'), $path);\n        }\n    }\n\n    $fullpath = $modx->getOption(\'base_path\') . $path;\n    \n    if ($createpath && !file_exists($fullpath)) {\n        \n        $permissions = octdec(\'0\' . (int)($modx->getOption(\'new_folder_permissions\', null, \'755\', true)));\n        if (!@mkdir($fullpath, $permissions, true)) {\n            $modx->log(MODX_LOG_LEVEL_ERROR, sprintf(\'[migxResourceMediaPath]: could not create directory %s).\', $fullpath));\n        }\n        else{\n            chmod($fullpath, $permissions); \n        }\n    }\n\n    return $path;\n} else {\n    $modx->log(MODX_LOG_LEVEL_ERROR, sprintf(\'[migxResourceMediaPath]: resource not found (page id %s).\', $docid));\n    return;\n}',0,NULL,'',0,''),(9,0,0,'migxImageUpload','',0,1,0,'return include $modx->getOption(\'core_path\').\'components/migx/model/imageupload/imageupload.php\';',0,NULL,'',0,''),(10,0,0,'migxChunklistToJson','',0,1,0,'$category = $modx->getOption(\'category\', $scriptProperties, \'\');\n$format = $modx->getOption(\'format\', $scriptProperties, \'json\');\n\n$classname = \'modChunk\';\n$rows = array();\n$output = \'\';\n\n$c = $modx->newQuery($classname);\n$c->select($modx->getSelectColumns($classname, $classname, \'\', array(\'id\', \'name\')));\n$c->sortby(\'name\');\n\nif (!empty($category)) {\n    $c->where(array(\'category\' => $category));\n}\n//$c->prepare();echo $c->toSql();\nif ($collection = $modx->getCollection($classname, $c)) {\n    $i = 0;\n\n    switch ($format) {\n        case \'json\':\n            foreach ($collection as $object) {\n                $row[\'MIGX_id\'] = (string )$i;\n                $row[\'name\'] = $object->get(\'name\');\n                $row[\'selected\'] = \'0\';\n                $rows[] = $row;\n                $i++;\n            }\n            $output = $modx->toJson($rows);\n            break;\n        \n        case \'optionlist\':\n            foreach ($collection as $object) {\n                $rows[] = $object->get(\'name\');\n                $i++;\n            }\n            $output = implode(\'||\',$rows);      \n        break;\n            \n    }\n\n\n}\n\nreturn $output;',0,NULL,'',0,''),(11,0,0,'migxSwitchDetailChunk','',0,1,0,'//[[migxSwitchDetailChunk? &detailChunk=`detailChunk` &listingChunk=`listingChunk`]]\n\n\n$properties[\'migx_id\'] = $modx->getOption(\'migx_id\',$_GET,\'\');\n\nif (!empty($properties[\'migx_id\'])){\n    $output = $modx->getChunk($detailChunk,$properties);\n}\nelse{\n    $output = $modx->getChunk($listingChunk);\n}\n\nreturn $output;',0,NULL,'',0,''),(12,0,0,'getSwitchColumnCol','',0,1,0,'$scriptProperties = $_REQUEST;\n$col = \'\';\n// special actions, for example the showSelector - action\n$tempParams = $modx->getOption(\'tempParams\', $scriptProperties, \'\');\n\nif (!empty($tempParams)) {\n    $tempParams = $modx->fromJson($tempParams);\n    $col = $modx->getOption(\'col\', $tempParams, \'\');\n}\n\nreturn $col;',0,NULL,'',0,''),(13,0,0,'getDayliMIGXrecord','',0,1,0,'/**\n * getDayliMIGXrecord\n *\n * Copyright 2009-2011 by Bruno Perner <b.perner@gmx.de>\n *\n * getDayliMIGXrecord is free software; you can redistribute it and/or modify it\n * under the terms of the GNU General Public License as published by the Free\n * Software Foundation; either version 2 of the License, or (at your option) any\n * later version.\n *\n * getDayliMIGXrecord is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along with\n * getDayliMIGXrecord; if not, write to the Free Software Foundation, Inc., 59 Temple Place,\n * Suite 330, Boston, MA 02111-1307 USA\n *\n * @package migx\n */\n/**\n * getDayliMIGXrecord\n *\n * display Items from outputvalue of TV with custom-TV-input-type MIGX or from other JSON-string for MODx Revolution \n *\n * @version 1.0\n * @author Bruno Perner <b.perner@gmx.de>\n * @copyright Copyright &copy; 2012\n * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU General Public License\n * version 2 or (at your option) any later version.\n * @package migx\n */\n\n/*example: [[!getDayliMIGXrecord? &tvname=`myTV`&tpl=`@CODE:<img src=\"[[+image]]\"/>` &randomize=`1`]]*/\n/* get default properties */\n\n\n$tvname = $modx->getOption(\'tvname\', $scriptProperties, \'\');\n$tpl = $modx->getOption(\'tpl\', $scriptProperties, \'\');\n$randomize = $modx->getOption(\'randomize\', $scriptProperties, false);\n$where = $modx->getOption(\'where\', $scriptProperties, \'\');\n$where = !empty($where) ? $modx->fromJSON($where) : array();\n$sort = $modx->getOption(\'sort\', $scriptProperties, \'\');\n$sort = !empty($sort) ? $modx->fromJSON($sort) : array();\n$toPlaceholder = $modx->getOption(\'toPlaceholder\', $scriptProperties, false);\n$docid = $modx->getOption(\'docid\', $scriptProperties, (isset($modx->resource) ? $modx->resource->get(\'id\') : 1));\n$processTVs = $modx->getOption(\'processTVs\', $scriptProperties, \'1\');\n\n$migx = $modx->getService(\'migx\', \'Migx\', $modx->getOption(\'migx.core_path\', null, $modx->getOption(\'core_path\') . \'components/migx/\') . \'model/migx/\', $scriptProperties);\nif (!($migx instanceof Migx))\n    return \'\';\n$migx->working_context = $modx->resource->get(\'context_key\');\n\nif (!empty($tvname)) {\n    if ($tv = $modx->getObject(\'modTemplateVar\', array(\'name\' => $tvname))) {\n\n        /*\n        *   get inputProperties\n        */\n\n\n        $properties = $tv->get(\'input_properties\');\n        $properties = isset($properties[\'formtabs\']) ? $properties : $tv->getProperties();\n\n        $migx->config[\'configs\'] = $properties[\'configs\'];\n        $migx->loadConfigs();\n        // get tabs from file or migx-config-table\n        $formtabs = $migx->getTabs();\n        if (empty($formtabs)) {\n            //try to get formtabs and its fields from properties\n            $formtabs = $modx->fromJSON($properties[\'formtabs\']);\n        }\n\n        //$tv->setCacheable(false);\n        //$outputvalue = $tv->renderOutput($docid);\n        \n        $tvresource = $modx->getObject(\'modTemplateVarResource\', array(\n            \'tmplvarid\' => $tv->get(\'id\'),\n            \'contentid\' => $docid,\n            ));\n\n\n        $outputvalue = $tvresource->get(\'value\');\n        \n        /*\n        *   get inputTvs \n        */\n        $inputTvs = array();\n        if (is_array($formtabs)) {\n\n            //multiple different Forms\n            // Note: use same field-names and inputTVs in all forms\n            $inputTvs = $migx->extractInputTvs($formtabs);\n        }\n        $migx->source = $tv->getSource($migx->working_context, false);\n\n        if (empty($outputvalue)) {\n            return \'\';\n        }\n\n        $items = $modx->fromJSON($outputvalue);\n\n\n        //is there an active item for the current date?\n        $activedate = $modx->getOption(\'activedate\', $scriptProperties, strftime(\'%Y/%m/%d\'));\n        //$activedate = $modx->getOption(\'activedate\', $_GET, strftime(\'%Y/%m/%d\'));\n        $activewhere = array();\n        $activewhere[\'activedate\'] = $activedate;\n        $activewhere[\'activated\'] = \'1\';\n        $activeitems = $migx->filterItems($activewhere, $items);\n\n        if (count($activeitems) == 0) {\n\n            $activeitems = array();\n            // where filter\n            if (is_array($where) && count($where) > 0) {\n                $items = $migx->filterItems($where, $items);\n            }\n\n            $tempitems = array();\n            $count = count($items);\n            $emptycount = 0;\n            $latestdate = $activedate;\n            $nextdate = strtotime($latestdate);\n            foreach ($items as $item) {\n                //empty all dates and active-states which are older than today\n                if (!empty($item[\'activedate\']) && $item[\'activedate\'] < $activedate) {\n                    $item[\'activated\'] = \'0\';\n                    $item[\'activedate\'] = \'\';\n                }\n                if (empty($item[\'activedate\'])) {\n                    $emptycount++;\n                }\n                if ($item[\'activedate\'] > $latestdate) {\n                    $latestdate = $item[\'activedate\'];\n                    $nextdate = strtotime($latestdate) + (24 * 60 * 60);\n                }\n                if ($item[\'activedate\'] == $activedate) {\n                    $item[\'activated\'] = \'1\';\n                    $activeitems[] = $item;\n                }\n                $tempitems[] = $item;\n            }\n\n            //echo \'<pre>\' . print_r($tempitems, 1) . \'</pre>\';\n\n            $items = $tempitems;\n\n\n            //are there more than half of all items with empty activedates\n\n            if ($emptycount >= $count / 2) {\n\n                // sort items\n                if (is_array($sort) && count($sort) > 0) {\n                    $items = $migx->sortDbResult($items, $sort);\n                }\n                if (count($items) > 0) {\n                    //shuffle items\n                    if ($randomize) {\n                        shuffle($items);\n                    }\n                }\n\n                $tempitems = array();\n                foreach ($items as $item) {\n                    if (empty($item[\'activedate\'])) {\n                        $item[\'activedate\'] = strftime(\'%Y/%m/%d\', $nextdate);\n                        $nextdate = $nextdate + (24 * 60 * 60);\n                        if ($item[\'activedate\'] == $activedate) {\n                            $item[\'activated\'] = \'1\';\n                            $activeitems[] = $item;\n                        }\n                    }\n\n                    $tempitems[] = $item;\n                }\n\n                $items = $tempitems;\n            }\n\n            //$resource = $modx->getObject(\'modResource\', $docid);\n            //echo $modx->toJson($items);\n            $sort = \'[{\"sortby\":\"activedate\"}]\';\n            $items = $migx->sortDbResult($items, $modx->fromJson($sort));\n\n            //echo \'<pre>\' . print_r($items, 1) . \'</pre>\';\n\n            $tv->setValue($docid, $modx->toJson($items));\n            $tv->save();\n\n        }\n    }\n\n}\n\n\n$properties = array();\nforeach ($scriptProperties as $property => $value) {\n    $properties[\'property.\' . $property] = $value;\n}\n\n$output = \'\';\n\nforeach ($activeitems as $key => $item) {\n\n    $fields = array();\n    foreach ($item as $field => $value) {\n        $value = is_array($value) ? implode(\'||\', $value) : $value; //handle arrays (checkboxes, multiselects)\n        if ($processTVs && isset($inputTvs[$field])) {\n            if ($tv = $modx->getObject(\'modTemplateVar\', array(\'name\' => $inputTvs[$field][\'inputTV\']))) {\n\n            } else {\n                $tv = $modx->newObject(\'modTemplateVar\');\n                $tv->set(\'type\', $inputTvs[$field][\'inputTVtype\']);\n            }\n            $inputTV = $inputTvs[$field];\n\n            $mTypes = $modx->getOption(\'manipulatable_url_tv_output_types\', null, \'image,file\');\n            //don\'t manipulate any urls here\n            $modx->setOption(\'manipulatable_url_tv_output_types\', \'\');\n            $tv->set(\'default_text\', $value);\n            $value = $tv->renderOutput($docid);\n            //set option back\n            $modx->setOption(\'manipulatable_url_tv_output_types\', $mTypes);\n            //now manipulate urls\n            if ($mediasource = $migx->getFieldSource($inputTV, $tv)) {\n                $mTypes = explode(\',\', $mTypes);\n                if (!empty($value) && in_array($tv->get(\'type\'), $mTypes)) {\n                    //$value = $mediasource->prepareOutputUrl($value);\n                    $value = str_replace(\'/./\', \'/\', $mediasource->prepareOutputUrl($value));\n                }\n            }\n\n        }\n        $fields[$field] = $value;\n\n    }\n\n    $rowtpl = $tpl;\n    //get changing tpls from field\n    if (substr($tpl, 0, 7) == \"@FIELD:\") {\n        $tplField = substr($tpl, 7);\n        $rowtpl = $fields[$tplField];\n    }\n\n    if (!isset($template[$rowtpl])) {\n        if (substr($rowtpl, 0, 6) == \"@FILE:\") {\n            $template[$rowtpl] = file_get_contents($modx->config[\'base_path\'] . substr($rowtpl, 6));\n        } elseif (substr($rowtpl, 0, 6) == \"@CODE:\") {\n            $template[$rowtpl] = substr($tpl, 6);\n        } elseif ($chunk = $modx->getObject(\'modChunk\', array(\'name\' => $rowtpl), true)) {\n            $template[$rowtpl] = $chunk->getContent();\n        } else {\n            $template[$rowtpl] = false;\n        }\n    }\n\n    $fields = array_merge($fields, $properties);\n\n    if ($template[$rowtpl]) {\n        $chunk = $modx->newObject(\'modChunk\');\n        $chunk->setCacheable(false);\n        $chunk->setContent($template[$rowtpl]);\n        $output .= $chunk->process($fields);\n\n    } else {\n        $output .= \'<pre>\' . print_r($fields, 1) . \'</pre>\';\n\n    }\n\n\n}\n\n\nif (!empty($toPlaceholder)) {\n    $modx->setPlaceholder($toPlaceholder, $output);\n    return \'\';\n}\n\nreturn $output;',0,NULL,'',0,''),(14,0,0,'filterbytag','',0,1,0,'if (!is_array($subject)) {\n    $subject = explode(\',\',str_replace(array(\'||\',\' \'),array(\',\',\'\'),$subject));\n}\n\nreturn (in_array($operand,$subject));',0,NULL,'',0,''),(15,0,0,'migxObjectMediaPath','',0,1,0,'$pathTpl = $modx->getOption(\'pathTpl\', $scriptProperties, \'\');\n$objectid = $modx->getOption(\'objectid\', $scriptProperties, \'\');\n$createfolder = $modx->getOption(\'createFolder\', $scriptProperties, \'1\');\n$path = \'\';\n$createpath = false;\nif (empty($objectid) && $modx->getPlaceholder(\'objectid\')) {\n    // placeholder was set by some script on frontend for example\n    $objectid = $modx->getPlaceholder(\'objectid\');\n}\nif (empty($objectid) && isset($_REQUEST[\'object_id\'])) {\n    $objectid = $_REQUEST[\'object_id\'];\n}\n\n\n\nif (empty($objectid)) {\n\n    //set Session - var in fields.php - processor\n    if (isset($_SESSION[\'migxWorkingObjectid\'])) {\n        $objectid = $_SESSION[\'migxWorkingObjectid\'];\n        $createpath = !empty($createfolder);\n    }\n\n}\n\n\n$path = str_replace(\'{id}\', $objectid, $pathTpl);\n\n$fullpath = $modx->getOption(\'base_path\') . $path;\n\nif ($createpath && !file_exists($fullpath)) {\n        $permissions = octdec(\'0\' . (int)($modx->getOption(\'new_folder_permissions\', null, \'755\', true)));\n        if (!@mkdir($fullpath, $permissions, true)) {\n            $modx->log(MODX_LOG_LEVEL_ERROR, sprintf(\'[migxResourceMediaPath]: could not create directory %s).\', $fullpath));\n        }\n        else{\n            chmod($fullpath, $permissions); \n        }\n}\n\nreturn $path;',0,NULL,'',0,''),(16,0,0,'exportMIGX2db','',0,1,0,'/**\n * exportMIGX2db\n *\n * Copyright 2014 by Bruno Perner <b.perner@gmx.de>\n * \n * Sponsored by Simon Wurster <info@wurster-medien.de>\n *\n * exportMIGX2db is free software; you can redistribute it and/or modify it\n * under the terms of the GNU General Public License as published by the Free\n * Software Foundation; either version 2 of the License, or (at your option) any\n * later version.\n *\n * exportMIGX2db is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along with\n * exportMIGX2db; if not, write to the Free Software Foundation, Inc., 59 Temple Place,\n * Suite 330, Boston, MA 02111-1307 USA\n *\n * @package migx\n */\n/**\n * exportMIGX2db\n *\n * export Items from outputvalue of TV with custom-TV-input-type MIGX or from other JSON-string to db-table \n *\n * @version 1.0\n * @author Bruno Perner <b.perner@gmx.de>\n * @copyright Copyright &copy; 2014\n * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU General Public License\n * version 2 or (at your option) any later version.\n * @package migx\n */\n\n/*\n[[!exportMIGX2db? \n&tvname=`references` \n&resources=`25` \n&packageName=`projekte`\n&classname=`Projekt` \n&migx_id_field=`migx_id` \n&renamed_fields=`{\"Firmen-URL\":\"Firmen_url\",\"Projekt-URL\":\"Projekt_URL\",\"main-image\":\"main_image\"}`\n]]\n*/\n\n\n$tvname = $modx->getOption(\'tvname\', $scriptProperties, \'\');\n$resources = $modx->getOption(\'resources\', $scriptProperties, (isset($modx->resource) ? $modx->resource->get(\'id\') : \'\'));\n$resources = explode(\',\', $resources);\n$prefix = isset($scriptProperties[\'prefix\']) ? $scriptProperties[\'prefix\'] : null;\n$packageName = $modx->getOption(\'packageName\', $scriptProperties, \'\');\n$classname = $modx->getOption(\'classname\', $scriptProperties, \'\');\n$value = $modx->getOption(\'value\', $scriptProperties, \'\');\n$migx_id_field = $modx->getOption(\'migx_id_field\', $scriptProperties, \'\');\n$pos_field = $modx->getOption(\'pos_field\', $scriptProperties, \'\');\n$renamed_fields = $modx->getOption(\'renamed_fields\', $scriptProperties, \'\');\n\n$packagepath = $modx->getOption(\'core_path\') . \'components/\' . $packageName .\n    \'/\';\n$modelpath = $packagepath . \'model/\';\n\n$modx->addPackage($packageName, $modelpath, $prefix);\n$added = 0;\n$modified = 0;\n\nforeach ($resources as $docid) {\n    \n    $outputvalue = \'\';\n    if (count($resources)==1){\n        $outputvalue = $value;    \n    }\n    \n    if (!empty($tvname)) {\n        if ($tv = $modx->getObject(\'modTemplateVar\', array(\'name\' => $tvname))) {\n\n            $outputvalue = empty($outputvalue) ? $tv->renderOutput($docid) : $outputvalue;\n        }\n    }\n\n    if (!empty($outputvalue)) {\n        $renamed = !empty($renamed_fields) ? $modx->fromJson($renamed_fields) : array();\n\n        $items = $modx->fromJSON($outputvalue);\n        $pos = 1;\n        $searchfields = array();\n        if (is_array($items)) {\n            foreach ($items as $fields) {\n                $search = array();\n                if (!empty($migx_id_field)) {\n                    $search[$migx_id_field] = $fields[\'MIGX_id\'];\n                }\n                if (!empty($resource_id_field)) {\n                    $search[$resource_id_field] = $docid;\n                }\n                if (!empty($migx_id_field) && $object = $modx->getObject($classname, $search)) {\n                    $mode = \'mod\';\n                } else {\n                    $object = $modx->newObject($classname);\n                    $object->fromArray($search);\n                    $mode = \'add\';\n                }\n                foreach ($fields as $field => $value) {\n                    $fieldname = array_key_exists($field, $renamed) ? $renamed[$field] : $field;\n                    $object->set($fieldname, $value);\n                }\n                if (!empty($pos_field)) {\n                    $object->set($pos_field,$pos) ;\n                }                \n                if ($object->save()) {\n                    if ($mode == \'add\') {\n                        $added++;\n                    } else {\n                        $modified++;\n                    }\n                }\n                $pos++;\n            }\n            \n        }\n    }\n}\n\n\nreturn $added . \' rows added to db, \' . $modified . \' existing rows actualized\';',0,NULL,'',0,''),(17,0,0,'preparedatewhere','',0,1,0,'$name = $modx->getOption(\'name\', $scriptProperties, \'\');\n$date = $modx->getOption($name . \'_date\', $_REQUEST, \'\');\n$dir = str_replace(\'T\', \' \', $modx->getOption($name . \'_dir\', $_REQUEST, \'\'));\n\nif (!empty($date) && !empty($dir) && $dir != \'all\') {\n    switch ($dir) {\n        case \'=\':\n            $where = array(\n            \'enddate:>=\' => strftime(\'%Y-%m-%d 00:00:00\',strtotime($date)),\n            \'startdate:<=\' => strftime(\'%Y-%m-%d 23:59:59\',strtotime($date))\n            );\n            break;\n        case \'>=\':\n            $where = array(\n            \'enddate:>=\' => strftime(\'%Y-%m-%d 00:00:00\',strtotime($date))\n            );\n            break;\n        case \'<=\':\n            $where = array(\n            \'startdate:<=\' => strftime(\'%Y-%m-%d 23:59:59\',strtotime($date))\n            );            \n            break;\n\n    }\n\n    return $modx->toJson($where);\n}',0,NULL,'',0,''),(18,0,0,'migxJsonToPlaceholders','',0,1,0,'$value = $modx->getOption(\'value\',$scriptProperties,\'\');\n$prefix = $modx->getOption(\'prefix\',$scriptProperties,\'\');\n\n//$modx->setPlaceholders($modx->fromJson($value),$prefix,\'\',true);\n\n$values = $modx->fromJson($value);\nif (is_array($values)){\n    foreach ($values as $key => $value){\n        $value = $value == null ? \'\' : $value;\n        $modx->setPlaceholder($prefix . $key, $value);\n    }\n}',0,NULL,'',0,''),(19,0,0,'migxGetCollectionTree','',0,1,0,'/**\n * migxGetCollectionTree\n *\n * Copyright 2014 by Bruno Perner <b.perner@gmx.de>\n *\n * migxGetCollectionTree is free software; you can redistribute it and/or modify it\n * under the terms of the GNU General Public License as published by the Free\n * Software Foundation; either version 2 of the License, or (at your option) any\n * later version.\n *\n * migxGetCollectionTree is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along with\n * migxGetCollectionTree; if not, write to the Free Software Foundation, Inc., 59 Temple Place,\n * Suite 330, Boston, MA 02111-1307 USA\n *\n * @package migx\n */\n/**\n * migxGetCollectionTree\n *\n *          display nested items from different objects. The tree-schema is defined by a json-property. \n *\n * @version 1.0.0\n * @author Bruno Perner <b.perner@gmx.de>\n * @copyright Copyright &copy; 2014\n * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU General Public License\n * version 2 or (at your option) any later version.\n * @package migx\n */\n\n$treeSchema = $modx->getOption(\'treeSchema\', $scriptProperties, \'\');\n$treeSchema = $modx->fromJson($treeSchema);\n\n$scriptProperties[\'current\'] = $modx->getOption(\'current\', $scriptProperties, \'\');\n$scriptProperties[\'currentClassname\'] = $modx->getOption(\'currentClassname\', $scriptProperties, \'\');\n$scriptProperties[\'currentKeyField\'] = $modx->getOption(\'currentKeyField\', $scriptProperties, \'id\');\n$return = $modx->getOption(\'return\', $scriptProperties, \'parsed\'); //parsed,json,arrayprint\n\n/*\nExamples:\n\nGet Resource-Tree, 4 levels deep\n\n[[!migxGetCollectionTree?\n&current=`57`\n&currentClassname=`modResource`\n&treeSchema=`\n{\n\"classname\": \"modResource\",\n\"debug\": \"1\",\n\"tpl\": \"mgctResourceTree\",\n\"wrapperTpl\": \"@CODE:<ul>[[+output]]</ul>\",\n\"selectfields\": \"id,pagetitle\",\n\"where\": {\n\"parent\": \"0\",\n\"published\": \"1\",\n\"deleted\": \"0\"\n},\n\"_branches\": [{\n\"alias\": \"children\",\n\"classname\": \"modResource\",\n\"local\": \"parent\",\n\"foreign\": \"id\",\n\"tpl\": \"mgctResourceTree\",\n\"debug\": \"1\",\n\"selectfields\": \"id,pagetitle,parent\",\n\"_branches\": [{\n\"alias\": \"children\",\n\"classname\": \"modResource\",\n\"local\": \"parent\",\n\"foreign\": \"id\",\n\"tpl\": \"mgctResourceTree\",\n\"debug\": \"1\",\n\"selectfields\": \"id,pagetitle,parent\",\n\"where\": {\n\"published\": \"1\",\n\"deleted\": \"0\"\n},\n\"_branches\": [{\n\"alias\": \"children\",\n\"classname\": \"modResource\",\n\"local\": \"parent\",\n\"foreign\": \"id\",\n\"tpl\": \"mgctResourceTree\",\n\"debug\": \"1\",\n\"selectfields\": \"id,pagetitle,parent\",\n\"where\": {\n\"published\": \"1\",\n\"deleted\": \"0\"\n}\n}]\n}]\n}]\n}\n`]]\n\nthe chunk mgctResourceTree:\n<li class=\"[[+_activelabel]] [[+_currentlabel]]\" ><a href=\"[[~[[+id]]]]\">[[+pagetitle]]([[+id]])</a></li>\n[[+innercounts.children:gt=`0`:then=`\n<ul>[[+innerrows.children]]</ul>\n`:else=``]]\n\nget all Templates and its Resources:\n\n[[!migxGetCollectionTree?\n&treeSchema=`\n{\n\"classname\": \"modTemplate\",\n\"debug\": \"1\",\n\"tpl\": \"@CODE:<h3>[[+templatename]]</h3><ul>[[+innerrows.resource]]</ul>\",\n\"selectfields\": \"id,templatename\",\n\"_branches\": [{\n\"alias\": \"resource\",\n\"classname\": \"modResource\",\n\"local\": \"template\",\n\"foreign\": \"id\",\n\"tpl\": \"@CODE:<li>[[+pagetitle]]([[+id]])</li>\",\n\"debug\": \"1\",\n\"selectfields\": \"id,pagetitle,template\"\n}]\n}\n`]]\n*/\n\nif (!class_exists(\'MigxGetCollectionTree\')) {\n    class MigxGetCollectionTree\n    {\n        function __construct(modX & $modx, array $config = array())\n        {\n            $this->modx = &$modx;\n            $this->config = $config;\n        }\n\n        function getBranch($branch, $foreigns = array(), $level = 1)\n        {\n\n            $rows = array();\n\n            if (count($foreigns) > 0) {\n                $modx = &$this->modx;\n\n                $local = $modx->getOption(\'local\', $branch, \'\');\n                $where = $modx->getOption(\'where\', $branch, array());\n                $where = !empty($where) && !is_array($where) ? $modx->fromJSON($where) : $where;\n                $where[] = array($local . \':IN\' => $foreigns);\n\n                $branch[\'where\'] = $modx->toJson($where);\n\n                $level++;\n                /*\n                if ($levelFromCurrent > 0){\n                $levelFromCurrent++;    \n                }\n                */\n\n                $rows = $this->getRows($branch, $level);\n            }\n\n            return $rows;\n        }\n\n        function getRows($scriptProperties, $level)\n        {\n            $migx = &$this->migx;\n            $modx = &$this->modx;\n\n            $current = $modx->getOption(\'current\', $this->config, \'\');\n            $currentKeyField = $modx->getOption(\'currentKeyField\', $this->config, \'id\');\n            $currentlabel = $modx->getOption(\'currentlabel\', $this->config, \'current\');\n            $classname = $modx->getOption(\'classname\', $scriptProperties, \'\');\n            $currentClassname = !empty($this->config[\'currentClassname\']) ? $this->config[\'currentClassname\'] : $classname;\n\n            $activelabel = $modx->getOption(\'activelabel\', $this->config, \'active\');\n            $return = $modx->getOption(\'return\', $this->config, \'parsed\');\n\n            $xpdo = $migx->getXpdoInstanceAndAddPackage($scriptProperties);\n            $c = $migx->prepareQuery($xpdo, $scriptProperties);\n            $rows = $migx->getCollection($c);\n\n            $branches = $modx->getOption(\'_branches\', $scriptProperties, array());\n\n            $collectedSubrows = array();\n            foreach ($branches as $branch) {\n                $foreign = $modx->getOption(\'foreign\', $branch, \'\');\n                $local = $modx->getOption(\'local\', $branch, \'\');\n                $alias = $modx->getOption(\'alias\', $branch, \'\');\n                //$activeonly = $modx->getOption(\'activeonly\', $branch, \'\');\n                $foreigns = array();\n                foreach ($rows as $row) {\n                    $foreigns[] = $row[$foreign];\n                }\n\n                $subrows = $this->getBranch($branch, $foreigns, $level);\n                foreach ($subrows as $subrow) {\n\n                    $collectedSubrows[$subrow[$local]][] = $subrow;\n                    $subrow[\'_active\'] = $modx->getOption(\'_active\', $subrow, \'0\');\n                    /*\n                    if (!empty($activeonly) && $subrow[\'_active\'] != \'1\') {\n                    $output = \'\';\n                    } else {\n                    $collectedSubrows[$subrow[$local]][] = $subrow;\n                    }\n                    */\n                    if ($subrow[\'_active\'] == \'1\') {\n                        //echo \'active subrow:<pre>\' . print_r($subrow,1) . \'</pre>\';\n                        $activesubrow[$subrow[$local]] = true;\n                    }\n                    if ($subrow[\'_current\'] == \'1\') {\n                        //echo \'active subrow:<pre>\' . print_r($subrow,1) . \'</pre>\';\n                        $currentsubrow[$subrow[$local]] = true;\n                    }\n\n\n                }\n                //insert subrows\n                $temprows = $rows;\n                $rows = array();\n                foreach ($temprows as $row) {\n                    if (isset($collectedSubrows[$row[$foreign]])) {\n                        $row[\'_active\'] = \'0\';\n                        $row[\'_currentparent\'] = \'0\';\n                        if (isset($activesubrow[$row[$foreign]]) && $activesubrow[$row[$foreign]]) {\n                            $row[\'_active\'] = \'1\';\n                            //echo \'active row:<pre>\' . print_r($row,1) . \'</pre>\';\n                        }\n                        if (isset($currentsubrow[$row[$foreign]]) && $currentsubrow[$row[$foreign]]) {\n                            $row[\'_currentparent\'] = \'1\';\n                            //echo \'active row:<pre>\' . print_r($row,1) . \'</pre>\';\n                        }\n\n                        //render innerrows\n                        //$output = $migx->renderOutput($collectedSubrows[$row[$foreign]],$scriptProperties);\n                        //$output = $collectedSubrows[$row[$foreign]];\n\n                        $row[\'innercounts.\' . $alias] = count($collectedSubrows[$row[$foreign]]);\n                        $row[\'_scriptProperties\'][$alias] = $branch;\n                        /*\n                        switch ($return) {\n                        case \'parsed\':\n                        $output = $migx->renderOutput($collectedSubrows[$row[$foreign]], $branch);\n                        //$subbranches = $modx->getOption(\'_branches\', $branch, array());\n                        //if there are any placeholders left with the same alias from subbranch, remove them\n                        $output = str_replace(\'[[+innerrows.\' . $alias . \']]\', \'\', $output);\n                        break;\n                        case \'json\':\n                        case \'arrayprint\':\n                        $output = $collectedSubrows[$row[$foreign]];\n                        break;\n                        }\n                        */\n                        $output = $collectedSubrows[$row[$foreign]];\n\n                        $row[\'innerrows.\' . $alias] = $output;\n\n                    }\n                    $rows[] = $row;\n                }\n\n            }\n\n            $temprows = $rows;\n            $rows = array();\n            foreach ($temprows as $row) {\n                //add additional placeholders\n                $row[\'_level\'] = $level;\n                $row[\'_active\'] = $modx->getOption(\'_active\', $row, \'0\');\n                if ($currentClassname == $classname && $row[$currentKeyField] == $current) {\n                    $row[\'_current\'] = \'1\';\n                    $row[\'_currentlabel\'] = $currentlabel;\n                    $row[\'_active\'] = \'1\';\n                } else {\n                    $row[\'_current\'] = \'0\';\n                    $row[\'_currentlabel\'] = \'\';\n                }\n                if ($row[\'_active\'] == \'1\') {\n                    $row[\'_activelabel\'] = $activelabel;\n                } else {\n                    $row[\'_activelabel\'] = \'\';\n                }\n                $rows[] = $row;\n            }\n\n            return $rows;\n        }\n\n        function renderRow($row, $levelFromCurrent = 0)\n        {\n            $migx = &$this->migx;\n            $modx = &$this->modx;\n            $return = $modx->getOption(\'return\', $this->config, \'parsed\');\n            $branchProperties = $modx->getOption(\'_scriptProperties\', $row, array());\n            $current = $modx->getOption(\'_current\', $row, \'0\');\n            $currentparent = $modx->getOption(\'_currentparent\', $row, \'0\');\n            $levelFromCurrent = $current == \'1\' ? 1 : $levelFromCurrent;\n            $row[\'_levelFromCurrent\'] = $levelFromCurrent;\n            foreach ($branchProperties as $alias => $properties) {\n                $innerrows = $modx->getOption(\'innerrows.\' . $alias, $row, array());\n                $subrows = $this->renderRows($innerrows, $properties, $levelFromCurrent, $currentparent);\n                if ($return == \'parsed\') {\n                    $subrows = $migx->renderOutput($subrows, $properties);\n                }\n                $row[\'innerrows.\' . $alias] = $subrows;\n            }\n\n            return $row;\n        }\n\n        function renderRows($rows, $scriptProperties, $levelFromCurrent = 0, $siblingOfCurrent = \'0\')\n        {\n\n            $modx = &$this->modx;\n            $temprows = $rows;\n            $rows = array();\n            if ($levelFromCurrent > 0) {\n                $levelFromCurrent++;\n            }\n            foreach ($temprows as $row) {\n                $row[\'_siblingOfCurrent\'] = $siblingOfCurrent;\n                $row = $this->renderRow($row, $levelFromCurrent);\n                $rows[] = $row;\n            }\n            return $rows;\n        }\n    }\n}\n\n$instance = new MigxGetCollectionTree($modx, $scriptProperties);\n\nif (is_array($treeSchema)) {\n    $scriptProperties = $treeSchema;\n\n    $migx = $modx->getService(\'migx\', \'Migx\', $modx->getOption(\'migx.core_path\', null, $modx->getOption(\'core_path\') . \'components/migx/\') . \'model/migx/\', $scriptProperties);\n    if (!($migx instanceof Migx))\n        return \'\';\n\n    $defaultcontext = \'web\';\n    $migx->working_context = isset($modx->resource) ? $modx->resource->get(\'context_key\') : $defaultcontext;\n    $instance->migx = &$migx;\n\n    $level = 1;\n    $scriptProperties[\'alias\'] = \'row\';\n    $rows = $instance->getRows($scriptProperties, $level);\n    $row = array();\n    $row[\'innercounts.row\'] = count($rows);\n    $row[\'innerrows.row\'] = $rows;\n    $row[\'_scriptProperties\'][\'row\'] = $scriptProperties;\n\n    $rows = $instance->renderRow($row);\n\n    $output = \'\';\n    switch ($return) {\n        case \'parsed\':\n            $output = $modx->getOption(\'innerrows.row\', $rows, \'\');\n            break;\n        case \'json\':\n            $output = $modx->toJson($rows);\n            break;\n        case \'arrayprint\':\n            $output = \'<pre>\' . print_r($rows, 1) . \'</pre>\';\n            break;\n    }\n\n    return $output;\n\n}',0,NULL,'',0,''),(20,1,0,'getMigxValues','',0,0,0,'$items = $modx->fromJSON($input);\n\nkrsort($items);\n$items = array_values($items);\n\nif (!count($items) || empty($tpl)) return \'\';\n\n$modx->setPlaceholder(\'total\', count($items));\n\n$limit = isset($limit) ? (integer)$limit : 5;\n$offset = isset($offset) ? (integer)$offset : 0;\n\n$items = $offset > 0 ? array_slice($items, $offset) : $items;\n$count = count($items);\n\n$limit = $limit == 0 || $limit > $count ? $count : $limit;\n\n$output = $tempitems = array();\n\nfor ($i = 0; $i < $limit; $i++) {\n	if ($i >= $count) {\n		break;\n	}\n	$tempitems[] = $items[$i];\n}\n$items = $tempitems;\n\nforeach ($tempitems as $i=>$row) {\n	$output[] = $modx->getChunk($tpl, $row);\n}\n\nreturn implode(\"\\n\", $output);',0,'a:0:{}','',0,''),(21,0,0,'getPage','<b>1.2.4-pl</b> A generic wrapper snippet for returning paged results and navigation from snippets that return limitable collections.',0,0,0,'/**\n * @package getpage\n */\n$output = \'\';\n\n$properties =& $scriptProperties;\n$properties[\'page\'] = (isset($_GET[$properties[\'pageVarKey\']]) && ($page = intval($_GET[$properties[\'pageVarKey\']]))) ? $page : null;\nif ($properties[\'page\'] === null) {\n    $properties[\'page\'] = (isset($_REQUEST[$properties[\'pageVarKey\']]) && ($page = intval($_REQUEST[$properties[\'pageVarKey\']]))) ? $page : 1;\n}\n$properties[\'limit\'] = (isset($_GET[\'limit\'])) ? intval($_GET[\'limit\']) : null;\nif ($properties[\'limit\'] === null) {\n    $properties[\'limit\'] = (isset($_REQUEST[\'limit\'])) ? intval($_REQUEST[\'limit\']) : intval($limit);\n}\n$properties[\'offset\'] = (!empty($properties[\'limit\']) && !empty($properties[\'page\'])) ? ($properties[\'limit\'] * ($properties[\'page\'] - 1)) : 0;\n$properties[\'totalVar\'] = empty($totalVar) ? \"total\" : $totalVar;\n$properties[$properties[\'totalVar\']] = !empty($properties[$properties[\'totalVar\']]) && $total = intval($properties[$properties[\'totalVar\']]) ? $total : 0;\n$properties[\'pageOneLimit\'] = (!empty($pageOneLimit) && $pageOneLimit = intval($pageOneLimit)) ? $pageOneLimit : $properties[\'limit\'];\n$properties[\'actualLimit\'] = $properties[\'limit\'];\n$properties[\'pageLimit\'] = isset($pageLimit) && is_numeric($pageLimit) ? intval($pageLimit) : 5;\n$properties[\'element\'] = empty($element) ? \'\' : $element;\n$properties[\'elementClass\'] = empty($elementClass) ? \'modChunk\' : $elementClass;\n$properties[\'pageNavVar\'] = empty($pageNavVar) ? \'page.nav\' : $pageNavVar;\n$properties[\'pageNavTpl\'] = !isset($pageNavTpl) ? \"<li[[+classes]]><a[[+classes]][[+title]] href=\\\"[[+href]]\\\">[[+pageNo]]</a></li>\" : $pageNavTpl;\n$properties[\'pageNavOuterTpl\'] = !isset($pageNavOuterTpl) ? \"[[+first]][[+prev]][[+pages]][[+next]][[+last]]\" : $pageNavOuterTpl;\n$properties[\'pageActiveTpl\'] = !isset($pageActiveTpl) ? \"<li[[+activeClasses:default=` class=\\\"active\\\"`]]><a[[+activeClasses:default=` class=\\\"active\\\"`]][[+title]] href=\\\"[[+href]]\\\">[[+pageNo]]</a></li>\" : $pageActiveTpl;\n$properties[\'pageFirstTpl\'] = !isset($pageFirstTpl) ? \"<li class=\\\"control\\\"><a[[+title]] href=\\\"[[+href]]\\\">First</a></li>\" : $pageFirstTpl;\n$properties[\'pageLastTpl\'] = !isset($pageLastTpl) ? \"<li class=\\\"control\\\"><a[[+title]] href=\\\"[[+href]]\\\">Last</a></li>\" : $pageLastTpl;\n$properties[\'pagePrevTpl\'] = !isset($pagePrevTpl) ? \"<li class=\\\"control\\\"><a[[+title]] href=\\\"[[+href]]\\\">&lt;&lt;</a></li>\" : $pagePrevTpl;\n$properties[\'pageNextTpl\'] = !isset($pageNextTpl) ? \"<li class=\\\"control\\\"><a[[+title]] href=\\\"[[+href]]\\\">&gt;&gt;</a></li>\" : $pageNextTpl;\n$properties[\'toPlaceholder\'] = !empty($toPlaceholder) ? $toPlaceholder : \'\';\n$properties[\'cache\'] = isset($cache) ? (boolean) $cache : (boolean) $modx->getOption(\'cache_resource\', null, false);\nif (empty($cache_key)) $properties[xPDO::OPT_CACHE_KEY] = $modx->getOption(\'cache_resource_key\', null, \'resource\');\nif (empty($cache_handler)) $properties[xPDO::OPT_CACHE_HANDLER] = $modx->getOption(\'cache_resource_handler\', null, \'xPDOFileCache\');\nif (empty($cache_expires)) $properties[xPDO::OPT_CACHE_EXPIRES] = (integer) $modx->getOption(\'cache_resource_expires\', null, 0);\n\nif ($properties[\'page\'] == 1 && $properties[\'pageOneLimit\'] !== $properties[\'actualLimit\']) {\n    $properties[\'limit\'] = $properties[\'pageOneLimit\'];\n}\n\nif ($properties[\'cache\']) {\n    $properties[\'cachePageKey\'] = $modx->resource->getCacheKey() . \'/\' . $properties[\'page\'] . \'/\' . md5(http_build_query($modx->request->getParameters()) . http_build_query($scriptProperties));\n    $properties[\'cacheOptions\'] = array(\n        xPDO::OPT_CACHE_KEY => $properties[xPDO::OPT_CACHE_KEY],\n        xPDO::OPT_CACHE_HANDLER => $properties[xPDO::OPT_CACHE_HANDLER],\n        xPDO::OPT_CACHE_EXPIRES => $properties[xPDO::OPT_CACHE_EXPIRES],\n    );\n}\n$cached = false;\nif ($properties[\'cache\']) {\n    if ($modx->getCacheManager()) {\n        $cached = $modx->cacheManager->get($properties[\'cachePageKey\'], $properties[\'cacheOptions\']);\n    }\n}\nif (empty($cached) || !isset($cached[\'properties\']) || !isset($cached[\'output\'])) {\n    $elementObj = $modx->getObject($properties[\'elementClass\'], array(\'name\' => $properties[\'element\']));\n    if ($elementObj) {\n        $elementObj->setCacheable(false);\n        if (!empty($properties[\'toPlaceholder\'])) {\n            $elementObj->process($properties);\n            $output = $modx->getPlaceholder($properties[\'toPlaceholder\']);\n        } else {\n            $output = $elementObj->process($properties);\n        }\n    }\n\n    include_once $modx->getOption(\'getpage.core_path\',$properties,$modx->getOption(\'core_path\', $properties, MODX_CORE_PATH) . \'components/getpage/\').\'include.getpage.php\';\n\n    $qs = $modx->request->getParameters();\n    $properties[\'qs\'] =& $qs;\n\n    $totalSet = $modx->getPlaceholder($properties[\'totalVar\']);\n    $properties[$properties[\'totalVar\']] = (($totalSet = intval($totalSet)) ? $totalSet : $properties[$properties[\'totalVar\']]);\n    if (!empty($properties[$properties[\'totalVar\']]) && !empty($properties[\'actualLimit\'])) {\n        if ($properties[\'pageOneLimit\'] !== $properties[\'actualLimit\']) {\n            $adjustedTotal = $properties[$properties[\'totalVar\']] - $properties[\'pageOneLimit\'];\n            $properties[\'pageCount\'] = $adjustedTotal > 0 ? ceil($adjustedTotal / $properties[\'actualLimit\']) + 1 : 1;\n        } else {\n            $properties[\'pageCount\'] = ceil($properties[$properties[\'totalVar\']] / $properties[\'actualLimit\']);\n        }\n    } else {\n        $properties[\'pageCount\'] = 1;\n    }\n    if (empty($properties[$properties[\'totalVar\']]) || empty($properties[\'actualLimit\']) || $properties[$properties[\'totalVar\']] <= $properties[\'actualLimit\'] || ($properties[\'page\'] == 1 && $properties[$properties[\'totalVar\']] <= $properties[\'pageOneLimit\'])) {\n        $properties[\'page\'] = 1;\n    } else {\n        $pageNav = getpage_buildControls($modx, $properties);\n        $properties[$properties[\'pageNavVar\']] = $modx->newObject(\'modChunk\')->process(array_merge($properties, $pageNav), $properties[\'pageNavOuterTpl\']);\n        if ($properties[\'page\'] > 1) {\n            $qs[$properties[\'pageVarKey\']] = $properties[\'page\'];\n        }\n    }\n\n    $properties[\'firstItem\'] = $properties[\'offset\'] + 1;\n    $properties[\'lastItem\'] = ($properties[\'offset\'] + $properties[\'limit\']) < $totalSet ? ($properties[\'offset\'] + $properties[\'limit\']) : $totalSet;\n\n    $properties[\'pageUrl\'] = $modx->makeUrl($modx->resource->get(\'id\'), \'\', $qs);\n    if ($properties[\'cache\'] && $modx->getCacheManager()) {\n        $cached = array(\'properties\' => $properties, \'output\' => $output);\n        $modx->cacheManager->set($properties[\'cachePageKey\'], $cached, $properties[xPDO::OPT_CACHE_EXPIRES], $properties[\'cacheOptions\']);\n    }\n} else {\n    $properties = $cached[\'properties\'];\n    $output = $cached[\'output\'];\n}\n$modx->setPlaceholders($properties, $properties[\'namespace\']);\nif (!empty($properties[\'toPlaceholder\'])) {\n    $modx->setPlaceholder($properties[\'toPlaceholder\'], $output);\n    $output = \'\';\n}\n\nreturn $output;',0,'a:21:{s:9:\"namespace\";a:7:{s:4:\"name\";s:9:\"namespace\";s:4:\"desc\";s:114:\"An execution namespace that serves as a prefix for placeholders set by a specific instance of the getPage snippet.\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:0:\"\";s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:5:\"limit\";a:7:{s:4:\"name\";s:5:\"limit\";s:4:\"desc\";s:62:\"The result limit per page; can be overridden in the $_REQUEST.\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:2:\"10\";s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:6:\"offset\";a:7:{s:4:\"name\";s:6:\"offset\";s:4:\"desc\";s:171:\"The offset, or record position to start at within the collection for rendering results for the current page; should be calculated based on page variable set in pageVarKey.\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:1:\"0\";s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:4:\"page\";a:7:{s:4:\"name\";s:4:\"page\";s:4:\"desc\";s:136:\"The page to display; this is determined based on the value indicated by the page variable set in pageVarKey, typically in the $_REQUEST.\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:1:\"0\";s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:10:\"pageVarKey\";a:7:{s:4:\"name\";s:10:\"pageVarKey\";s:4:\"desc\";s:54:\"The key of a property that indicates the current page.\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:4:\"page\";s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:8:\"totalVar\";a:7:{s:4:\"name\";s:8:\"totalVar\";s:4:\"desc\";s:101:\"The key of a placeholder that must contain the total records in the limitable collection being paged.\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:5:\"total\";s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:9:\"pageLimit\";a:7:{s:4:\"name\";s:9:\"pageLimit\";s:4:\"desc\";s:69:\"The maximum number of pages to display when rendering paging controls\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:1:\"5\";s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:12:\"elementClass\";a:7:{s:4:\"name\";s:12:\"elementClass\";s:4:\"desc\";s:73:\"The class of element that will be called by the getPage snippet instance.\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:10:\"modSnippet\";s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:10:\"pageNavVar\";a:7:{s:4:\"name\";s:10:\"pageNavVar\";s:4:\"desc\";s:71:\"The key of a placeholder to be set with the paging navigation controls.\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:8:\"page.nav\";s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:10:\"pageNavTpl\";a:7:{s:4:\"name\";s:10:\"pageNavTpl\";s:4:\"desc\";s:54:\"Content representing a single page navigation control.\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:78:\"<li[[+classes]]><a[[+classes]][[+title]] href=\"[[+href]]\">[[+pageNo]]</a></li>\";s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:15:\"pageNavOuterTpl\";a:7:{s:4:\"name\";s:15:\"pageNavOuterTpl\";s:4:\"desc\";s:64:\"Content representing the layout of the page navigation controls.\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:47:\"[[+first]][[+prev]][[+pages]][[+next]][[+last]]\";s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:13:\"pageActiveTpl\";a:7:{s:4:\"name\";s:13:\"pageActiveTpl\";s:4:\"desc\";s:57:\"Content representing the current page navigation control.\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:116:\"<li[[+activeClasses]]><a[[+activeClasses:default=` class=\"active\"`]][[+title]] href=\"[[+href]]\">[[+pageNo]]</a></li>\";s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:12:\"pageFirstTpl\";a:7:{s:4:\"name\";s:12:\"pageFirstTpl\";s:4:\"desc\";s:55:\"Content representing the first page navigation control.\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:76:\"<li class=\"control\"><a[[+classes]][[+title]] href=\"[[+href]]\">First</a></li>\";s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:11:\"pageLastTpl\";a:7:{s:4:\"name\";s:11:\"pageLastTpl\";s:4:\"desc\";s:54:\"Content representing the last page navigation control.\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:75:\"<li class=\"control\"><a[[+classes]][[+title]] href=\"[[+href]]\">Last</a></li>\";s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:11:\"pagePrevTpl\";a:7:{s:4:\"name\";s:11:\"pagePrevTpl\";s:4:\"desc\";s:58:\"Content representing the previous page navigation control.\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:79:\"<li class=\"control\"><a[[+classes]][[+title]] href=\"[[+href]]\">&lt;&lt;</a></li>\";s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:11:\"pageNextTpl\";a:7:{s:4:\"name\";s:11:\"pageNextTpl\";s:4:\"desc\";s:54:\"Content representing the next page navigation control.\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:79:\"<li class=\"control\"><a[[+classes]][[+title]] href=\"[[+href]]\">&gt;&gt;</a></li>\";s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:5:\"cache\";a:7:{s:4:\"name\";s:5:\"cache\";s:4:\"desc\";s:84:\"If true, unique page requests will be cached according to addition cache properties.\";s:4:\"type\";s:13:\"combo-boolean\";s:7:\"options\";s:0:\"\";s:5:\"value\";b:0;s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:9:\"cache_key\";a:7:{s:4:\"name\";s:9:\"cache_key\";s:4:\"desc\";s:120:\"The key of the cache provider to use; leave empty to use the cache_resource_key cache partition (default is \"resource\").\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";b:0;s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:13:\"cache_handler\";a:7:{s:4:\"name\";s:13:\"cache_handler\";s:4:\"desc\";s:99:\"The cache provider implementation to use; leave empty unless you are caching to a custom cache_key.\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";b:0;s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:13:\"cache_expires\";a:7:{s:4:\"name\";s:13:\"cache_expires\";s:4:\"desc\";s:141:\"The number of seconds before the cached pages expire and must be regenerated; leave empty to use the cache provider option for cache_expires.\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";b:0;s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}s:13:\"pageNavScheme\";a:7:{s:4:\"name\";s:13:\"pageNavScheme\";s:4:\"desc\";s:145:\"Optionally specify a scheme for use when generating page navigation links; will use link_tag_scheme if empty or not specified (default is empty).\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:0:\"\";s:7:\"lexicon\";N;s:4:\"area\";s:0:\"\";}}','',0,''),(23,0,0,'BreadCrumb','This snippet will create a breadcrumb navigation for the current resource or a specific resource.',0,3,0,'/**\r\n * BreadCrumb\r\n * Copyright 2011 Benjamin Vauchel <contact@omycode.fr>\r\n *\r\n * BreadCrumb is free software; you can redistribute it and/or modify it\r\n * under the terms of the GNU General Public License as published by the Free\r\n * Software Foundation; either version 2 of the License, or (at your option) any\r\n * later version.\r\n *\r\n * BreadCrumb is distributed in the hope that it will be useful, but WITHOUT ANY\r\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\r\n * A PARTICULAR PURPOSE. See the GNU General Public License for more details.\r\n *\r\n * You should have received a copy of the GNU General Public License along with\r\n * BreadCrumb; if not, write to the Free Software Foundation, Inc., 59 Temple Place,\r\n * Suite 330, Boston, MA 02111-1307 USA\r\n *\r\n * @package breadcrumb\r\n * @author Benjamin Vauchel <contact@omycode.fr>\r\n *\r\n * @version Version 1.4.3 pl\r\n * 07/03/15\r\n *\r\n * Breadcrumb is a snippet for MODx Revolution, inspired by the Jared\'s BreadCrumbs snippet.\r\n * It will create a breadcrumb navigation for the current resource or a specific resource.\r\n *\r\n * Optional properties:\r\n *\r\n * @property from - (int) Resource ID of the first crumb; [Default value : 0].\r\n * @property to - (int) Resource ID of the last crumb; [Default value : current resource id].\r\n * @property exclude - (string) Comma separated list of resources IDs not shown in breadcrumb. [Default value : []]\r\n * @property maxCrumbs - (int) Max crumbs shown in breadcrumb. Max delimiter template can be customize with property maxCrumbTpl ; [Default value : 100].\r\n * @property showHidden - (bool) Show hidden resources in breadcrumb; [Default value : true].\r\n * @property showContainer - (bool) Show container resources in breadcrumb; [Default value : true].\r\n * @property showUnPub - (bool) Show unpublished resources in breadcrumb; [Default value : true].\r\n * @property showCurrentCrumb - (bool) Show current resource as a crumb; [Default value : true].\r\n * @property showBreadCrumbAtHome - (bool) Show BreadCrumb on the home page; [Default value : true].\r\n * @property showHomeCrumb - (bool) Add the home page crumb at the start of the breadcrumb; [Default value : true].\r\n * @property useWebLinkUrl - (bool) Use the weblink url instead of the url to the weblink; [Default value : true].\r\n * @property direction - (string) Direction or breadcrumb : Left To Right (ltr) or Right To Left (rtl) for Arabic language for example; [Default value : ltr].\r\n * @property scheme - (string) URL Generation Scheme; [Default value : -1].\r\n *\r\n * Templates :\r\n *\r\n * @property containerTpl - (string) Container template for BreadCrumb; [Default value : BreadCrumbContainerTpl].\r\n * @property currentCrumbTpl - (string) Current crumb template for BreadCrumb; [Default value : BreadCrumbCurrentCrumbTpl].\r\n * @property linkCrumbTpl - (string) Default crumb template for BreadCrumb; [Default value : BreadCrumbLinkCrumbTpl].\r\n * @property categoryCrumbTpl - (string) Default category crumb template for BreadCrumb; [Default value : BreadCrumbCategoryCrumbTpl].\r\n * @property maxCrumbTpl - (string) Max delimiter crumb template for BreadCrumb; [Default value : BreadCrumbMaxCrumbTpl].\r\n */\r\n\r\n// Script Properties\r\n$from                 = !empty($from) ? $from : $modx->getOption(\'from\', $scriptProperties, 0, true, true);\r\n$to                   = $currentResourceId = !empty($to) ? $to : $modx->getOption(\'to\', $scriptProperties, $modx->resource->get(\'id\'), true);\r\n$exclude              = !empty($exclude) ? explode(\',\', $exclude) : array();\r\n$maxCrumbs            = !empty($maxCrumbs) ? abs(intval($maxCrumbs)) : $modx->getOption(\'maxCrumbs\', $scriptProperties, 100, true);\r\n$showHidden           = isset($showHidden) ? (bool)$showHidden : (bool)$modx->getOption(\'showHidden\', $scriptProperties, true, true);\r\n$showContainer        = isset($showContainer) ? (bool)$showContainer : (bool)$modx->getOption(\'showContainer\', $scriptProperties, true, true);\r\n$showUnPub            = isset($showUnPub) ? (bool)$showUnPub : (bool)$modx->getOption(\'showUnPub\', $scriptProperties, true, true);\r\n$showCurrentCrumb     = isset($showCurrentCrumb) ? (bool)$showCurrentCrumb : (bool)$modx->getOption(\'showCurrentCrumb\', $scriptProperties, true, true);\r\n$showBreadCrumbAtHome = isset($showBreadCrumbAtHome) ? (bool)$showBreadCrumbAtHome : (bool)$modx->getOption(\'showBreadCrumbAtHome\', $scriptProperties, true, true);\r\n$showHomeCrumb        = isset($showHomeCrumb) ? (bool)$showHomeCrumb : (bool)$modx->getOption(\'showHomeCrumb\', $scriptProperties, true, true);\r\n$useWebLinkUrl        = isset($useWebLinkUrl) ? (bool)$useWebLinkUrl : (bool)$modx->getOption(\'useWebLinkUrl\', $scriptProperties, true, true);\r\n$direction            = !empty($direction) ? $direction : $modx->getOption(\'direction\', $scriptProperties, \'ltr\', true);\r\n$scheme               = !empty($scheme) ? $scheme : $modx->getOption(\'scheme\', $scriptProperties, $modx->getOption(\'link_tag_scheme\'), true);\r\n$containerTpl         = !empty($containerTpl) ? $containerTpl : $modx->getOption(\'containerTpl\', $scriptProperties, \'@INLINE <ul id=\"breadcrumb\" itemprop=\"breadcrumb\">[[+crumbs]]</ul>\');\r\n$homeCrumbTpl         = !empty($homeCrumbTpl) ? $homeCrumbTpl : $modx->getOption(\'homeCrumbTpl\', $scriptProperties, \'@INLINE <li><a href=\"[[+link]]\">[[+pagetitle]]</a></li>\');\r\n$currentCrumbTpl      = !empty($currentCrumbTpl) ? $currentCrumbTpl : $modx->getOption(\'currentCrumbTpl\', $scriptProperties, \'@INLINE <li>[[+pagetitle]]</li>\');\r\n$linkCrumbTpl         = !empty($linkCrumbTpl) ? $linkCrumbTpl : $modx->getOption(\'linkCrumbTpl\', $scriptProperties, \'@INLINE <li><a href=\"[[+link]]\">[[+pagetitle]]</a></li>\');\r\n$categoryCrumbTpl     = !empty($categoryCrumbTpl) ? $categoryCrumbTpl : $modx->getOption(\'categoryCrumbTpl\', $scriptProperties, \'@INLINE <li><a href=\"[[+link]]\">[[+pagetitle]]</a></li>\');\r\n$maxCrumbTpl          = !empty($maxCrumbTpl) ? $maxCrumbTpl : $modx->getOption(\'maxCrumbTpl\', $scriptProperties, \'@INLINE <li>...</li>\');\r\n\r\n// include parseTpl\r\ninclude_once $modx->getOption(\'breadcrumb.core_path\',null,$modx->getOption(\'core_path\').\'components/breadcrumb/includes/\').\'include.parsetpl.php\';\r\n\r\n// Output variable\r\n$output = \'\';\r\n\r\n// We check if current resource is the homepage and if breadcrumb is shown for the homepage\r\nif (!$showBreadCrumbAtHome && $modx->resource->get(\'id\') == $modx->getOption(\'site_start\')) {\r\n    return \'\';\r\n}\r\n\r\n// We get all the other crumbs\r\n$crumbs = array();\r\n$crumbsCount = 0;\r\n$resourceId = $to;\r\nwhile ($resourceId != $from && $crumbsCount < $maxCrumbs)\r\n{\r\n    if (!$resource = $modx->getObject(\'modResource\', $resourceId)) {\r\n        break;\r\n    }\r\n\r\n    // We check the conditions to show crumb\r\n    if (\r\n        $resourceId != $modx->getOption(\'site_start\')                                                                           // ShowHomeCrumb\r\n        && (($resource->get(\'hidemenu\') && $showHidden) || !$resource->get(\'hidemenu\'))                                         // ShowHidden\r\n        && (($resource->get(\'isfolder\') && $showContainer) || !$resource->get(\'isfolder\'))                                      // ShowContainer\r\n        && ((!$resource->get(\'published\') && $showUnPub) || $resource->get(\'published\'))                                        // UnPub\r\n        && (($resourceId == $currentResourceId && $showCurrentCrumb) || $resourceId != $currentResourceId)                      // ShowCurrent\r\n        && !in_array($resourceId, $exclude)                                                                                     // Excluded resources\r\n    ) {\r\n        // If is LTR direction, we push resource at the beginning of the array\r\n        if ($direction == \'ltr\') {\r\n            array_unshift($crumbs, $resource);\r\n        }\r\n        // Else we push it at the end\r\n        else {\r\n            $crumbs[] = $resource;\r\n        }\r\n\r\n        $crumbsCount++;\r\n    }\r\n    $resourceId = $resource->get(\'parent\');\r\n}\r\n\r\n// Add home crumb\r\nif ($showHomeCrumb && $resource = $modx->getObject(\'modResource\', $modx->getOption(\'site_start\'))) {\r\n    if ($direction == \'ltr\') {\r\n        array_unshift($crumbs, $resource);\r\n    } else {\r\n        $crumbs[] = $resource;\r\n    }\r\n}\r\n\r\n// We build the output of crumbs\r\nforeach($crumbs as $key => $resource)\r\n{\r\n    // Home crumb tpl ?\r\n    if ($resource->get(\'id\') == $modx->getOption(\'site_start\'))\r\n    {\r\n        $tpl = $homeCrumbTpl;\r\n    }\r\n    // Current crumb tpl ?\r\n    elseif ($showCurrentCrumb && ($resource->get(\'id\') == $currentResourceId))\r\n    {\r\n        $tpl = $currentCrumbTpl;\r\n    }\r\n    // resource is a container only, calculated in a similar manner to Wayfinder\r\n    elseif ($resource->get(\'isfolder\')\r\n        && ( $resource->get(\'template\') == 0\r\n            || strpos($resource->get(\'link_attributes\'), \'rel=\"category\"\') !== false\r\n            )\r\n    ) {\r\n        $tpl = $categoryCrumbTpl;\r\n    }\r\n    // or default crumb tpl ?\r\n    else {\r\n        $tpl = $linkCrumbTpl;\r\n    }\r\n\r\n    // Placeholders\r\n    $placeholders = $resource->toArray();\r\n    if ($resource->get(\'class_key\') == \'modWebLink\' && $useWebLinkUrl) {\r\n        if (is_numeric($resource->get(\'content\'))) {\r\n            $link = $modx->makeUrl($resource->get(\'content\'), \'\', \'\', $scheme);\r\n        } else {\r\n            $link = $resource->get(\'content\');\r\n        }\r\n    } else {\r\n        $link = $modx->makeUrl($resource->get(\'id\'), \'\', \'\', $scheme);\r\n    }\r\n    $placeholders = array_merge($resource->toArray(), array(\'link\' => $link));\r\n\r\n    // Output\r\n    $output .= parseTpl($tpl, $placeholders);\r\n}\r\n\r\n// We add the max delimiter to the crumbs output, if the max limit was reached\r\nif ($crumbsCount == $maxCrumbs) {\r\n    // If is LTR direction, we push the max delimiter at the beginning of the crumbs\r\n    if ($direction == \'ltr\') {\r\n        $output = parseTpl($maxCrumbTpl).$output;\r\n    }\r\n    // Else we push it at the end\r\n    else {\r\n        $output .= parseTpl($maxCrumbTpl);\r\n    }\r\n}\r\n\r\n// We build the breadcrumb output\r\n$output = parseTpl($containerTpl, array(\r\n    \'crumbs\' => $output,\r\n));\r\n\r\nreturn $output;',0,'a:18:{s:4:\"from\";a:7:{s:4:\"name\";s:4:\"from\";s:4:\"desc\";s:28:\"breadcrumb_snippet_from_desc\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:1:\"0\";s:7:\"lexicon\";s:21:\"breadcrumb:properties\";s:4:\"area\";s:0:\"\";}s:2:\"to\";a:7:{s:4:\"name\";s:2:\"to\";s:4:\"desc\";s:26:\"breadcrumb_snippet_to_desc\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:0:\"\";s:7:\"lexicon\";s:21:\"breadcrumb:properties\";s:4:\"area\";s:0:\"\";}s:9:\"maxCrumbs\";a:7:{s:4:\"name\";s:9:\"maxCrumbs\";s:4:\"desc\";s:33:\"breadcrumb_snippet_maxcrumbs_desc\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:3:\"100\";s:7:\"lexicon\";s:21:\"breadcrumb:properties\";s:4:\"area\";s:0:\"\";}s:10:\"showHidden\";a:7:{s:4:\"name\";s:10:\"showHidden\";s:4:\"desc\";s:34:\"breadcrumb_snippet_showhidden_desc\";s:4:\"type\";s:13:\"combo-boolean\";s:7:\"options\";s:0:\"\";s:5:\"value\";b:1;s:7:\"lexicon\";s:21:\"breadcrumb:properties\";s:4:\"area\";s:0:\"\";}s:13:\"showContainer\";a:7:{s:4:\"name\";s:13:\"showContainer\";s:4:\"desc\";s:37:\"breadcrumb_snippet_showcontainer_desc\";s:4:\"type\";s:13:\"combo-boolean\";s:7:\"options\";s:0:\"\";s:5:\"value\";b:1;s:7:\"lexicon\";s:21:\"breadcrumb:properties\";s:4:\"area\";s:0:\"\";}s:9:\"showUnPub\";a:7:{s:4:\"name\";s:9:\"showUnPub\";s:4:\"desc\";s:33:\"breadcrumb_snippet_showunpub_desc\";s:4:\"type\";s:13:\"combo-boolean\";s:7:\"options\";s:0:\"\";s:5:\"value\";b:1;s:7:\"lexicon\";s:21:\"breadcrumb:properties\";s:4:\"area\";s:0:\"\";}s:16:\"showCurrentCrumb\";a:7:{s:4:\"name\";s:16:\"showCurrentCrumb\";s:4:\"desc\";s:40:\"breadcrumb_snippet_showcurrentcrumb_desc\";s:4:\"type\";s:13:\"combo-boolean\";s:7:\"options\";s:0:\"\";s:5:\"value\";b:1;s:7:\"lexicon\";s:21:\"breadcrumb:properties\";s:4:\"area\";s:0:\"\";}s:20:\"showBreadCrumbAtHome\";a:7:{s:4:\"name\";s:20:\"showBreadCrumbAtHome\";s:4:\"desc\";s:44:\"breadcrumb_snippet_showbreadcrumbatHome_desc\";s:4:\"type\";s:13:\"combo-boolean\";s:7:\"options\";s:0:\"\";s:5:\"value\";b:1;s:7:\"lexicon\";s:21:\"breadcrumb:properties\";s:4:\"area\";s:0:\"\";}s:13:\"showHomeCrumb\";a:7:{s:4:\"name\";s:13:\"showHomeCrumb\";s:4:\"desc\";s:37:\"breadcrumb_snippet_showhomecrumb_desc\";s:4:\"type\";s:13:\"combo-boolean\";s:7:\"options\";s:0:\"\";s:5:\"value\";b:1;s:7:\"lexicon\";s:21:\"breadcrumb:properties\";s:4:\"area\";s:0:\"\";}s:13:\"useWebLinkUrl\";a:7:{s:4:\"name\";s:13:\"useWebLinkUrl\";s:4:\"desc\";s:37:\"breadcrumb_snippet_useweblinkurl_desc\";s:4:\"type\";s:13:\"combo-boolean\";s:7:\"options\";s:0:\"\";s:5:\"value\";b:1;s:7:\"lexicon\";s:21:\"breadcrumb:properties\";s:4:\"area\";s:0:\"\";}s:9:\"direction\";a:7:{s:4:\"name\";s:9:\"direction\";s:4:\"desc\";s:33:\"breadcrumb_snippet_direction_desc\";s:4:\"type\";s:4:\"list\";s:7:\"options\";a:2:{i:0;a:2:{s:5:\"value\";s:3:\"ltr\";s:4:\"text\";s:19:\"Left To Right (ltr)\";}i:1;a:2:{s:5:\"value\";s:3:\"rtl\";s:4:\"text\";s:20:\" Right To Left (rtl)\";}}s:5:\"value\";s:3:\"ltr\";s:7:\"lexicon\";s:21:\"breadcrumb:properties\";s:4:\"area\";s:0:\"\";}s:6:\"scheme\";a:7:{s:4:\"name\";s:6:\"scheme\";s:4:\"desc\";s:30:\"breadcrumb_snippet_scheme_desc\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:0:\"\";s:7:\"lexicon\";s:21:\"breadcrumb:properties\";s:4:\"area\";s:0:\"\";}s:12:\"containerTpl\";a:7:{s:4:\"name\";s:12:\"containerTpl\";s:4:\"desc\";s:36:\"breadcrumb_snippet_containertpl_desc\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:66:\"@INLINE <ul id=\"breadcrumb\" itemprop=\"breadcrumb\">[[+crumbs]]</ul>\";s:7:\"lexicon\";s:21:\"breadcrumb:properties\";s:4:\"area\";s:0:\"\";}s:12:\"homeCrumbTpl\";a:7:{s:4:\"name\";s:12:\"homeCrumbTpl\";s:4:\"desc\";s:36:\"breadcrumb_snippet_homecrumbtpl_desc\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:55:\"@INLINE <li><a href=\"[[+link]]\">[[+pagetitle]]</a></li>\";s:7:\"lexicon\";s:21:\"breadcrumb:properties\";s:4:\"area\";s:0:\"\";}s:15:\"currentCrumbTpl\";a:7:{s:4:\"name\";s:15:\"currentCrumbTpl\";s:4:\"desc\";s:39:\"breadcrumb_snippet_currentcrumbtpl_desc\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:31:\"@INLINE <li>[[+pagetitle]]</li>\";s:7:\"lexicon\";s:21:\"breadcrumb:properties\";s:4:\"area\";s:0:\"\";}s:12:\"linkCrumbTpl\";a:7:{s:4:\"name\";s:12:\"linkCrumbTpl\";s:4:\"desc\";s:36:\"breadcrumb_snippet_linkcrumbtpl_desc\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:55:\"@INLINE <li><a href=\"[[+link]]\">[[+pagetitle]]</a></li>\";s:7:\"lexicon\";s:21:\"breadcrumb:properties\";s:4:\"area\";s:0:\"\";}s:16:\"categoryCrumbTpl\";a:7:{s:4:\"name\";s:16:\"categoryCrumbTpl\";s:4:\"desc\";s:40:\"breadcrumb_snippet_categorycrumbtpl_desc\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:55:\"@INLINE <li><a href=\"[[+link]]\">[[+pagetitle]]</a></li>\";s:7:\"lexicon\";s:21:\"breadcrumb:properties\";s:4:\"area\";s:0:\"\";}s:11:\"maxCrumbTpl\";a:7:{s:4:\"name\";s:11:\"maxCrumbTpl\";s:4:\"desc\";s:35:\"breadcrumb_snippet_maxcrumbtpl_desc\";s:4:\"type\";s:9:\"textfield\";s:7:\"options\";s:0:\"\";s:5:\"value\";s:20:\"@INLINE <li>...</li>\";s:7:\"lexicon\";s:21:\"breadcrumb:properties\";s:4:\"area\";s:0:\"\";}}','',0,''),(24,0,0,'Breadcrumbs','',0,4,0,'/**\n * BreadCrumbs\n *\n * Copyright 2009-2011 by Shaun McCormick <shaun+bc@modx.com>\n *\n * BreadCrumbs is free software; you can redistribute it and/or modify it\n * under the terms of the GNU General Public License as published by the Free\n * Software Foundation; either version 2 of the License, or (at your option) any\n * later version.\n *\n * BreadCrumbs is distributed in the hope that it will be useful, but WITHOUT ANY\n * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR\n * A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n *\n * You should have received a copy of the GNU General Public License along with\n * BreadCrumbs; if not, write to the Free Software Foundation, Inc., 59 Temple Place,\n * Suite 330, Boston, MA 02111-1307 USA\n *\n * @package breadcrumbs\n */\n/**\n * @name BreadCrumbs\n * @version 0.9f\n * @created 2006-06-12\n * @since 2009-05-11\n * @author Jared <jaredc@honeydewdesign.com>\n * @editor Bill Wilson\n * @editor wendy@djamoer.net\n * @editor grad\n * @editor Shaun McCormick <shaun@collabpad.com>\n * @editor Shawn Wilkerson <shawn@shawnwilkerson.com>\n * @editor Wieger Sloot, Sterc.nl <wieger@sterc.nl>\n * @tester Bob Ray\n * @package breadcrumbs\n *\n * This snippet was designed to show the path through the various levels of site\n * structure back to the root. It is NOT necessarily the path the user took to\n * arrive at a given page.\n *\n * @see breadcrumbs.class.php for config settings\n *\n * Included classes\n * .B_crumbBox Span that surrounds all crumb output\n * .B_hideCrumb Span surrounding the \"...\" if there are more crumbs than will be shown\n * .B_currentCrumb Span or A tag surrounding the current crumb\n * .B_firstCrumb Span that always surrounds the first crumb, whether it is \"home\" or not\n * .B_lastCrumb Span surrounding last crumb, whether it is the current page or not .\n * .B_crumb Class given to each A tag surrounding the intermediate crumbs (not home, or\n * hide)\n * .B_homeCrumb Class given to the home crumb\n */\nrequire_once $modx->getOption(\'breadcrumbs.core_path\',null,$modx->getOption(\'core_path\').\'components/breadcrumbs/\').\'model/breadcrumbs/breadcrumbs.class.php\';\n$bc = new BreadCrumbs($modx,$scriptProperties);\nreturn $bc->run();',0,'','',0,''),(25,0,0,'getResourceField','Grab a value from a resource field or a TV',0,5,0,'/**\n *\n * getResourceField\n *\n * A snippet to grab a value from a resource field or a TV\n *\n * @ author Paul Merchant\n * @ author Shaun McCormick\n * @ copyright 2011 Paul Merchant\n * @ version 1.0.3 - August 8, 2011\n * @ MIT License\n *\n * OPTIONS\n * id - The resource ID\n * field - (Opt) The field or template variable name, defaults to pagetitle\n * isTV - (Opt) Set as true to return a raw template variable\n * processTV - (Opt) Set as true to return a rendered template variable\n * default - (Opt) The value returned if no field is found\n *\n * Exmaple1: [[getResourceField? &id=`123`]]\n * Example2: [[getResourceField? &id=`[[UltimateParent?]]` &field=`myTV` &isTV=`1`]]\n * Example3: [[getResourceField? &id=`[[*parent]]` &field=`myTV` &processTV=`1`]]\n *\n**/\n\n// set defaults\n$id = $modx->getOption(\'id\',$scriptProperties,$modx->resource->get(\'id\'));\n$field = $modx->getOption(\'field\',$scriptProperties,\'pagetitle\');\n$isTV = $modx->getOption(\'isTV\',$scriptProperties,false);\n$processTV = $modx->getOption(\'processTV\',$scriptProperties,false);\n$output = $modx->getOption(\'default\',$scriptProperties,\'\');\n\nif ($isTV || $processTV) {\n    // get the tv object\n    $tv = $modx->getObject(\'modTemplateVar\',array(\'name\'=>$field));\n    if (empty($tv)) return $output;\n    if ($processTV) {\n        // get rendered tv value\n        $tvValue = $tv->renderOutput($id);\n    } else {\n        // get raw tv value\n        $tvValue = $tv->getValue($id);\n    }\n    if ($tvValue !== null) {\n        $output = $tvValue;\n    }\n} else {\n    if ($id == $modx->resource->get(\'id\')) {\n        // use the current resource\n        $resource =& $modx->resource;\n        // current resource can infinite loop if pulling content field into itself\n        if ($field == \'content\') {\n            return $output;\n        }\n    } else {\n        // grab only the columns we need\n        $criteria = $modx->newQuery(\'modResource\');\n        $criteria->select($modx->getSelectColumns(\'modResource\',\'modResource\',\'\',array(\'id\',$field)));\n        $criteria->where(array(\'id\'=>$id,));\n        $resource = $modx->getObject(\'modResource\',$criteria);\n        if (empty($resource)) return $output;\n    }\n    $fieldValue = $resource->get($field);\n    if ($fieldValue !== null) {\n        $output = $fieldValue;\n    }\n}\n\nreturn $output;',0,'a:0:{}','',0,'');

--
-- Table structure for table `modx_site_templates`
--

CREATE TABLE `modx_site_templates` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `source` int(10) unsigned NOT NULL DEFAULT '0',
  `property_preprocess` tinyint(1) unsigned NOT NULL DEFAULT '0',
  `templatename` varchar(50) NOT NULL DEFAULT '',
  `description` varchar(255) NOT NULL DEFAULT 'Template',
  `editor_type` int(11) NOT NULL DEFAULT '0',
  `category` int(11) NOT NULL DEFAULT '0',
  `icon` varchar(255) NOT NULL DEFAULT '',
  `template_type` int(11) NOT NULL DEFAULT '0',
  `content` mediumtext NOT NULL,
  `locked` tinyint(1) unsigned NOT NULL DEFAULT '0',
  `properties` text,
  `static` tinyint(1) unsigned NOT NULL DEFAULT '0',
  `static_file` varchar(255) NOT NULL DEFAULT '',
  PRIMARY KEY (`id`),
  UNIQUE KEY `templatename` (`templatename`),
  KEY `category` (`category`),
  KEY `locked` (`locked`),
  KEY `static` (`static`)
) ENGINE=MyISAM AUTO_INCREMENT=13 DEFAULT CHARSET=utf8;

--
-- Dumping data for table `modx_site_templates`
--

INSERT INTO `modx_site_templates` VALUES (1,0,0,'Zakrevskiy [Главная]','',0,0,'',0,'<!DOCTYPE html>\n<html lang=\"ru\">\n<head>\n    <meta charset=\"utf-8\">\n    <meta name=\"keywords\" content=\"[[*introtext]]\">\n    <meta name=\"description\" content=\"[[*description]]\">\n    <title>[[++site_name]] - [[*longtitle:is=``:then=`[[*pagetitle]]`:else=`[[*longtitle]]`]]</title>\n    <base href=\"[[++site_url]]\">\n    [[$_head]]\n	<script type=\"text/javascript\" src=\"[[++site_url]]tmpl/js/scripts.js\"></script>\n</head>\n<body>\n<header>[[++site_name]]</header>\n<nav class=\"menu\">\n	<div>\n        <a href=\"[[++site_url]]\"></a>\n		[[$_menu]]\n    </div>\n</nav>\n<section class=\"home\">\n	<aside id=\"slider\">\n		<ul>\n			[[!getMigxValues? &tpl=`slider` &input=`[[*slider]]`]]\n		</ul>\n	</aside>\n	<nav>\n		<ul>\n			[[!Wayfinder? &startId=`0` &level=`1` &includeDocs=`10,31,35,39` &outerTpl=`notul` &rowTpl=`button1` &outerClass=`` &firstClass=`` &lastClass=``]]\n			<li>&nbsp;</li>\n			<li>&nbsp;</li>\n			<li><a href=\"[[$_onlineshop]]\" class=\"button2\">интернет-магазин</a></li>\n			<li><a href=\"[[$_training]]\" class=\"button2\">обучение</a></li>\n		</ul>\n	</nav>\n</section>\n<footer></footer>\n</body>\n</html>',0,'a:0:{}',0,''),(2,0,0,'Zakrevskiy [Галерея образов]','',0,0,'',0,'<!DOCTYPE html>\n<html lang=\"ru\">\n<head>\n    <meta charset=\"utf-8\">\n    <meta name=\"keywords\" content=\"[[*introtext]]\">\n    <meta name=\"description\" content=\"[[*description]]\">\n    <title>[[++site_name]] - [[*longtitle:is=``:then=`[[*pagetitle]]`:else=`[[*longtitle]]`]]</title>\n    <base href=\"[[++site_url]]\">\n    [[$_head]]\n	<link rel=\"stylesheet\" href=\"[[++site_url]]tmpl/css/lightbox.css\"> \n	<script type=\"text/javascript\" src=\"[[++site_url]]tmpl/js/lightbox.min.js\"></script>\n	<script type=\"text/javascript\" src=\"[[++site_url]]tmpl/js/scripts.js\"></script>\n</head>\n<body>\n<header>[[++site_name]]</header>\n<nav class=\"menu\">\n	<div>\n        <a href=\"[[++site_url]]\"></a>\n		[[$_menu]]\n    </div>\n</nav>\n<section>\n	<article>\n		[[!BreadCrumbs? &currentAsLink=`0` &homeCrumbTitle=`Главная` \n			&bcTplCrumbCurrent=`<span itemprop=\"title\">[[+text]]</span>`\n			&bcTplCrumbFirst=`<span itemscope=\"itemscope\" itemtype=\"http://data-vocabulary.org/Breadcrumb\">[[+text]]</span>` \n			&bcTplCrumbHome=`<a itemprop=\"url\" href=\"[[~[[++site_start]]]]\"><span itemprop=\"title\">[[+text]]</span></a>` \n			&bcTplCrumbLast=`<span itemscope=\"itemscope\" itemtype=\"http://data-vocabulary.org/Breadcrumb\">[[+text]]</span>` \n			&bcTplCrumbMax=`<span itemscope=\"itemscope\" itemtype=\"http://data-vocabulary.org/Breadcrumb\">[[+text]]</span>`\n			&bcTplCrumbLink=`<a itemprop=\"url\" rel=\"[[+description]]\" href=\"[[+resource]]\"><span itemprop=\"title\">[[+text]]</span></a>` \n			&bcTplCrumbOuter=`<nav class=\"breadcrumb\">[[+text]]</nav>` \n			&bcTplCrumb=`<span itemscope=\"itemscope\" itemtype=\"http://data-vocabulary.org/Breadcrumb\">[[+text]]</span>`\n		]]\n		<h1>[[*longtitle:is=``:then=`[[*pagetitle]]`:else=`[[*longtitle]]`]]</h1>\n    	<ul class=\"gallery\">\n			[[!getPage? &elementClass=`modSnippet` &element=`getMigxValues` &tpl=`gallery` &limit=`8` &pageLimit=`10` &input=`[[*gallery]]` &pageNavOuterTpl=`<nav class=\"pagination\">[[+prev]][[+pages]][[+next]]</nav>` &pageNavVar=`page.nav` &pageNavTpl=`<a href=\"[[+href]]\" title=\"[[+pageNo]]\">[[+pageNo]]</a>` &pageActiveTpl=`<strong>[[+pageNo]]</strong>` &pagePrevTpl=`<a href=\"[[+href]]\">&larr;</a>` &pageNextTpl=`<a href=\"[[+href]]\">&rarr;</a>`]]\n        </ul>\n		<div class=\"clr\"></div>\n		[[!+page.nav]]\n		[[*content]]\n    </article>\n</section>\n<footer></footer>\n</body>\n</html>',0,'a:0:{}',0,''),(5,0,0,'Zakrevskiy [Статьи]','',0,0,'',0,'<!DOCTYPE html>\n<html lang=\"ru\">\n<head>\n    <meta charset=\"utf-8\">\n    <meta name=\"keywords\" content=\"[[*introtext]]\">\n    <meta name=\"description\" content=\"[[*description]]\">\n    <title>[[++site_name]] - [[*longtitle:is=``:then=`[[*pagetitle]]`:else=`[[*longtitle]]`]]</title>\n    <base href=\"[[++site_url]]\">\n    [[$_head]]\n	<script type=\"text/javascript\" src=\"[[++site_url]]tmpl/js/scripts.js\"></script>\n</head>\n<body>\n<header>[[++site_name]]</header>\n<nav class=\"menu\">\n	<div>\n        <a href=\"[[++site_url]]\"></a>\n		[[$_menu]]\n    </div>\n</nav>\n<section>\n	<div class=\"articles\">\n		[[!BreadCrumbs? &currentAsLink=`0` &homeCrumbTitle=`Главная` \n			&bcTplCrumbCurrent=`<span itemprop=\"title\">[[+text]]</span>`\n			&bcTplCrumbFirst=`<span itemscope=\"itemscope\" itemtype=\"http://data-vocabulary.org/Breadcrumb\">[[+text]]</span>` \n			&bcTplCrumbHome=`<a itemprop=\"url\" href=\"[[~[[++site_start]]]]\"><span itemprop=\"title\">[[+text]]</span></a>` \n			&bcTplCrumbLast=`<span itemscope=\"itemscope\" itemtype=\"http://data-vocabulary.org/Breadcrumb\">[[+text]]</span>` \n			&bcTplCrumbMax=`<span itemscope=\"itemscope\" itemtype=\"http://data-vocabulary.org/Breadcrumb\">[[+text]]</span>`\n			&bcTplCrumbLink=`<a itemprop=\"url\" rel=\"[[+description]]\" href=\"[[+resource]]\"><span itemprop=\"title\">[[+text]]</span></a>` \n			&bcTplCrumbOuter=`<nav class=\"breadcrumb\">[[+text]]</nav>` \n			&bcTplCrumb=`<span itemscope=\"itemscope\" itemtype=\"http://data-vocabulary.org/Breadcrumb\">[[+text]]</span>`\n		]]\n		<ul>\n			[[!getPage? &elementClass=`modSnippet` &element=`getResources` &sortby=`{\"publishedon\":\"DESC\"}` &tpl=`article` &limit=`5` &includeContent=`1` &includeTVs=`1` &parents=`[[*id]]` &pageLimit=`10` &pageNavOuterTpl=`<nav class=\"pagination\">[[+prev]][[+pages]][[+next]]</nav>` &pageNavVar=`page.nav` &pageNavTpl=`<a href=\"[[+href]]\" title=\"[[+pageNo]]\">[[+pageNo]]</a>` &pageActiveTpl=`<strong>[[+pageNo]]</strong>` &pagePrevTpl=`<a href=\"[[+href]]\">&larr;</a>` &pageNextTpl=`<a href=\"[[+href]]\">&rarr;</a>`]]\n    	</ul>\n		[[!+page.nav]]\n	</div>\n</section>\n<footer></footer>\n</body>\n</html>',0,'a:0:{}',0,''),(3,0,0,'Zakrevskiy [Дизайн ногтей]','',0,0,'',0,'<!DOCTYPE html>\n<html lang=\"ru\">\n<head>\n    <meta charset=\"utf-8\">\n    <meta name=\"keywords\" content=\"[[*introtext]]\">\n    <meta name=\"description\" content=\"[[*description]]\">\n    <title>[[++site_name]] - [[*longtitle:is=``:then=`[[*pagetitle]]`:else=`[[*longtitle]]`]]</title>\n    <base href=\"[[++site_url]]\">\n    [[$_head]]\n	<link rel=\"stylesheet\" href=\"[[++site_url]]tmpl/css/lightbox.css\"> \n	<script type=\"text/javascript\" src=\"[[++site_url]]tmpl/js/lightbox.min.js\"></script>\n	<script type=\"text/javascript\" src=\"[[++site_url]]tmpl/js/scripts.js\"></script>\n</head>\n<body>\n<header>[[++site_name]]</header>\n<nav class=\"menu\">\n	<div>\n        <a href=\"[[++site_url]]\"></a>\n		[[$_menu]]\n    </div>\n</nav>\n<section>\n	<article>\n		[[!BreadCrumbs? &currentAsLink=`0` &homeCrumbTitle=`Главная` \n			&bcTplCrumbCurrent=`<span itemprop=\"title\">[[+text]]</span>`\n			&bcTplCrumbFirst=`<span itemscope=\"itemscope\" itemtype=\"http://data-vocabulary.org/Breadcrumb\">[[+text]]</span>` \n			&bcTplCrumbHome=`<a itemprop=\"url\" href=\"[[~[[++site_start]]]]\"><span itemprop=\"title\">[[+text]]</span></a>` \n			&bcTplCrumbLast=`<span itemscope=\"itemscope\" itemtype=\"http://data-vocabulary.org/Breadcrumb\">[[+text]]</span>` \n			&bcTplCrumbMax=`<span itemscope=\"itemscope\" itemtype=\"http://data-vocabulary.org/Breadcrumb\">[[+text]]</span>`\n			&bcTplCrumbLink=`<a itemprop=\"url\" rel=\"[[+description]]\" href=\"[[+resource]]\"><span itemprop=\"title\">[[+text]]</span></a>` \n			&bcTplCrumbOuter=`<nav class=\"breadcrumb\">[[+text]]</nav>` \n			&bcTplCrumb=`<span itemscope=\"itemscope\" itemtype=\"http://data-vocabulary.org/Breadcrumb\">[[+text]]</span>`\n		]]\n		<h1>[[*longtitle:is=``:then=`[[*pagetitle]]`:else=`[[*longtitle]]`]]</h1>\n    	<ul class=\"design\">\n			[[!getPage? &elementClass=`modSnippet` &element=`getMigxValues` &tpl=`design` &limit=`6` &pageLimit=`10` &input=`[[*design]]` &pageNavOuterTpl=`<nav class=\"pagination\">[[+prev]][[+pages]][[+next]]</nav>` &pageNavVar=`page.nav` &pageNavTpl=`<a href=\"[[+href]]\" title=\"[[+pageNo]]\">[[+pageNo]]</a>` &pageActiveTpl=`<strong>[[+pageNo]]</strong>` &pagePrevTpl=`<a href=\"[[+href]]\">&larr;</a>` &pageNextTpl=`<a href=\"[[+href]]\">&rarr;</a>`]]\n        </ul>\n		<div class=\"clr\"></div>\n		[[!+page.nav]]\n		[[*content]]\n    </article>\n</section>\n<footer></footer>\n</body>\n</html>',0,'a:0:{}',0,''),(4,0,0,'Zakrevskiy [Текстовая страница]','',0,0,'',0,'<!DOCTYPE html>\n<html lang=\"ru\">\n<head>\n    <meta charset=\"utf-8\">\n    <meta name=\"keywords\" content=\"[[*introtext]]\">\n    <meta name=\"description\" content=\"[[*description]]\">\n    <title>[[++site_name]] - [[*longtitle:is=``:then=`[[*pagetitle]]`:else=`[[*longtitle]]`]]</title>\n    <base href=\"[[++site_url]]\">\n    [[$_head]]\n	<script type=\"text/javascript\" src=\"[[++site_url]]tmpl/js/scripts.js\"></script>\n</head>\n<body>\n<header>[[++site_name]]</header>\n<nav class=\"menu\">\n	<div>\n        <a href=\"[[++site_url]]\"></a>\n		[[$_menu]]\n    </div>\n</nav>\n<section>\n	<article>\n		[[!BreadCrumbs? &currentAsLink=`0` &homeCrumbTitle=`Главная` \n			&bcTplCrumbCurrent=`<span itemprop=\"title\">[[+text]]</span>`\n			&bcTplCrumbFirst=`<span itemscope=\"itemscope\" itemtype=\"http://data-vocabulary.org/Breadcrumb\">[[+text]]</span>` \n			&bcTplCrumbHome=`<a itemprop=\"url\" href=\"[[~[[++site_start]]]]\"><span itemprop=\"title\">[[+text]]</span></a>` \n			&bcTplCrumbLast=`<span itemscope=\"itemscope\" itemtype=\"http://data-vocabulary.org/Breadcrumb\">[[+text]]</span>` \n			&bcTplCrumbMax=`<span itemscope=\"itemscope\" itemtype=\"http://data-vocabulary.org/Breadcrumb\">[[+text]]</span>`\n			&bcTplCrumbLink=`<a itemprop=\"url\" rel=\"[[+description]]\" href=\"[[+resource]]\"><span itemprop=\"title\">[[+text]]</span></a>` \n			&bcTplCrumbOuter=`<nav class=\"breadcrumb\">[[+text]]</nav>` \n			&bcTplCrumb=`<span itemscope=\"itemscope\" itemtype=\"http://data-vocabulary.org/Breadcrumb\">[[+text]]</span>`\n		]]\n		<h1>[[*longtitle:is=``:then=`[[*pagetitle]]`:else=`[[*longtitle]]`]]</h1>\n		[[*image:is=``:then=``:else=`<img src=\"[[*image]]\" alt=\"[[+pagetitle]]\" align=\"left\">`]]\n		[[*content]]\n    </article>\n</section>\n<footer></footer>\n</body>\n</html>',0,'a:0:{}',0,''),(6,0,0,'Zakrevskiy [Салон]','',0,0,'',0,'<!DOCTYPE html>\n<html lang=\"ru\">\n<head>\n    <meta charset=\"utf-8\">\n    <meta name=\"keywords\" content=\"[[*introtext]]\">\n    <meta name=\"description\" content=\"[[*description]]\">\n    <title>[[++site_name]] - [[*longtitle:is=``:then=`[[*pagetitle]]`:else=`[[*longtitle]]`]]</title>\n    <base href=\"[[++site_url]]\">\n    [[$_head]]\n	<script type=\"text/javascript\" src=\"[[++site_url]]tmpl/js/scripts.js\"></script>\n</head>\n<body>\n<header>[[++site_name]]</header>\n<nav class=\"menu\">\n	<div>\n        <a href=\"[[++site_url]]\"></a>\n		[[$_menu]]\n    </div>\n</nav>\n<section>\n	<div class=\"sidebar\">\n    	<nav>\n            <ul>\n				[[!Wayfinder? &startId=`[[*id]]` &level=`1` &excludeDocs=`` &outerTpl=`notul` &rowTpl=`button` &outerClass=`` &firstClass=`` &lastClass=``]]\n                <li>&nbsp;</li>\n                <li>&nbsp;</li>\n                <li><a href=\"[[$_onlineshop]]\" class=\"button2\">интернет-магазин</a></li>\n                <li><a href=\"[[$_training]]\" class=\"button2\">обучение</a></li>\n            </ul>\n        </nav>\n    	<div>\n			[[!BreadCrumbs? &currentAsLink=`0` &homeCrumbTitle=`Главная` \n				&bcTplCrumbCurrent=`<span itemprop=\"title\">[[+text]]</span>`\n				&bcTplCrumbFirst=`<span itemscope=\"itemscope\" itemtype=\"http://data-vocabulary.org/Breadcrumb\">[[+text]]</span>` \n				&bcTplCrumbHome=`<a itemprop=\"url\" href=\"[[~[[++site_start]]]]\"><span itemprop=\"title\">[[+text]]</span></a>` \n				&bcTplCrumbLast=`<span itemscope=\"itemscope\" itemtype=\"http://data-vocabulary.org/Breadcrumb\">[[+text]]</span>` \n				&bcTplCrumbMax=`<span itemscope=\"itemscope\" itemtype=\"http://data-vocabulary.org/Breadcrumb\">[[+text]]</span>`\n				&bcTplCrumbLink=`<a itemprop=\"url\" rel=\"[[+description]]\" href=\"[[+resource]]\"><span itemprop=\"title\">[[+text]]</span></a>` \n				&bcTplCrumbOuter=`<nav class=\"breadcrumb\">[[+text]]</nav>` \n				&bcTplCrumb=`<span itemscope=\"itemscope\" itemtype=\"http://data-vocabulary.org/Breadcrumb\">[[+text]]</span>`\n			]]\n			<h1>[[*longtitle:is=``:then=`[[*pagetitle]]`:else=`[[*longtitle]]`]]</h1>\n        	[[*content]]\n			<aside id=\"slider1\">\n				<ul>\n					[[!getMigxValues? &tpl=`slider1` &input=`[[*slider]]` &limit=`100`]]\n				</ul>\n			</aside>\n        </div>\n        <div class=\"clr\"></div>\n    </div>\n</section>\n<footer></footer>\n</body>\n</html>',0,'a:0:{}',0,''),(7,0,0,'Zakrevskiy [Мастера]','',0,0,'',0,'<!DOCTYPE html>\n<html lang=\"ru\">\n<head>\n    <meta charset=\"utf-8\">\n    <meta name=\"keywords\" content=\"[[*introtext]]\">\n    <meta name=\"description\" content=\"[[*description]]\">\n    <title>[[++site_name]] - [[*longtitle:is=``:then=`[[*pagetitle]]`:else=`[[*longtitle]]`]]</title>\n    <base href=\"[[++site_url]]\">\n    [[$_head]]\n	<link rel=\"stylesheet\" href=\"[[++site_url]]tmpl/css/lightbox.css\"> \n	<script type=\"text/javascript\" src=\"[[++site_url]]tmpl/js/lightbox.min.js\"></script>\n	<script type=\"text/javascript\" src=\"[[++site_url]]tmpl/js/scripts.js\"></script>\n</head>\n<body>\n<header>[[++site_name]]</header>\n<nav class=\"menu\">\n	<div>\n        <a href=\"[[++site_url]]\"></a>\n		[[$_menu]]\n    </div>\n</nav>\n<section class=\"blue\">\n	<article>\n		[[!BreadCrumbs? &currentAsLink=`0` &homeCrumbTitle=`Главная` \n			&bcTplCrumbCurrent=`<span itemprop=\"title\">[[+text]]</span>`\n			&bcTplCrumbFirst=`<span itemscope=\"itemscope\" itemtype=\"http://data-vocabulary.org/Breadcrumb\">[[+text]]</span>` \n			&bcTplCrumbHome=`<a itemprop=\"url\" href=\"[[~[[++site_start]]]]\"><span itemprop=\"title\">[[+text]]</span></a>` \n			&bcTplCrumbLast=`<span itemscope=\"itemscope\" itemtype=\"http://data-vocabulary.org/Breadcrumb\">[[+text]]</span>` \n			&bcTplCrumbMax=`<span itemscope=\"itemscope\" itemtype=\"http://data-vocabulary.org/Breadcrumb\">[[+text]]</span>`\n			&bcTplCrumbLink=`<a itemprop=\"url\" rel=\"[[+description]]\" href=\"[[+resource]]\"><span itemprop=\"title\">[[+text]]</span></a>` \n			&bcTplCrumbOuter=`<nav class=\"breadcrumb\">[[+text]]</nav>` \n			&bcTplCrumb=`<span itemscope=\"itemscope\" itemtype=\"http://data-vocabulary.org/Breadcrumb\">[[+text]]</span>`\n		]]\n		<h1>[[*longtitle:is=``:then=`[[*pagetitle]]`:else=`[[*longtitle]]`]]</h1>\n    	<ul class=\"masters\">\n			[[!getPage? &elementClass=`modSnippet` &element=`getMigxValues` &tpl=`master` &limit=`12` &pageLimit=`10` &input=`[[*masters]]` &pageNavOuterTpl=`<nav class=\"pagination\">[[+prev]][[+pages]][[+next]]</nav>` &pageNavVar=`page.nav` &pageNavTpl=`<a href=\"[[+href]]\" title=\"[[+pageNo]]\">[[+pageNo]]</a>` &pageActiveTpl=`<strong>[[+pageNo]]</strong>` &pagePrevTpl=`<a href=\"[[+href]]\">&larr;</a>` &pageNextTpl=`<a href=\"[[+href]]\">&rarr;</a>`]]\n        </ul>\n		<div class=\"clr\"></div>\n		[[!+page.nav]]\n		[[*content]]\n    </article>\n</section>\n<footer></footer>\n</body>\n</html>',0,'a:0:{}',0,''),(8,0,0,'Zakrevskiy [Список салонов]','',0,0,'',0,'<!DOCTYPE html>\n<html lang=\"ru\">\n<head>\n    <meta charset=\"utf-8\">\n    <meta name=\"keywords\" content=\"[[*introtext]]\">\n    <meta name=\"description\" content=\"[[*description]]\">\n    <title>[[++site_name]] - [[*longtitle:is=``:then=`[[*pagetitle]]`:else=`[[*longtitle]]`]]</title>\n    <base href=\"[[++site_url]]\">\n    [[$_head]]\n	<script type=\"text/javascript\" src=\"http://maps.google.com/maps/api/js?sensor=false\"></script>\n	<script type=\"text/javascript\" src=\"[[++site_url]]tmpl/js/scripts.js\"></script>\n</head>\n<body>\n<header>[[++site_name]]</header>\n<nav class=\"menu\">\n	<div>\n        <a href=\"[[++site_url]]\"></a>\n		[[$_menu]]\n    </div>\n</nav>\n<section class=\"light\">\n	[[!BreadCrumbs? &currentAsLink=`0` &homeCrumbTitle=`Главная` \n		&bcTplCrumbCurrent=`<span itemprop=\"title\">[[+text]]</span>`\n		&bcTplCrumbFirst=`<span itemscope=\"itemscope\" itemtype=\"http://data-vocabulary.org/Breadcrumb\">[[+text]]</span>` \n		&bcTplCrumbHome=`<a itemprop=\"url\" href=\"[[~[[++site_start]]]]\"><span itemprop=\"title\">[[+text]]</span></a>` \n		&bcTplCrumbLast=`<span itemscope=\"itemscope\" itemtype=\"http://data-vocabulary.org/Breadcrumb\">[[+text]]</span>` \n		&bcTplCrumbMax=`<span itemscope=\"itemscope\" itemtype=\"http://data-vocabulary.org/Breadcrumb\">[[+text]]</span>`\n		&bcTplCrumbLink=`<a itemprop=\"url\" rel=\"[[+description]]\" href=\"[[+resource]]\"><span itemprop=\"title\">[[+text]]</span></a>` \n		&bcTplCrumbOuter=`<nav class=\"breadcrumb\">[[+text]]</nav>` \n		&bcTplCrumb=`<span itemscope=\"itemscope\" itemtype=\"http://data-vocabulary.org/Breadcrumb\">[[+text]]</span>`\n	]]\n	<div class=\"sidebar\">\n    	<nav>\n			[[!getResources? &parents=`[[*id]]` &depth=`0` &includeTVs=`1` &tpl=`contact` &sortby=`{\"menuindex\":\"ASC\"}`]]\n        </nav>\n    	<div id=\"map\"></div>\n        <div class=\"clr\"></div>\n		[[*content]]\n    </div>\n    <script type=\"text/javascript\">\n	points = [\n		[[!getResources? &parents=`[[*id]]` &depth=`0` &includeTVs=`1` &tpl=`point`]]\n	];\n	google.maps.event.addDomListener(window, \'load\', gmapInit([[*lat]], [[*lng]], [[*zoom]], points));\n	</script>\n</section>\n<footer></footer>\n</body>\n</html>',0,'a:0:{}',0,''),(9,0,0,'Zakrevskiy [Текстовая с цветами]','',0,0,'',0,'<!DOCTYPE html>\n<html lang=\"ru\">\n<head>\n    <meta charset=\"utf-8\">\n    <meta name=\"keywords\" content=\"[[*introtext]]\">\n    <meta name=\"description\" content=\"[[*description]]\">\n    <title>[[++site_name]] - [[*longtitle:is=``:then=`[[*pagetitle]]`:else=`[[*longtitle]]`]]</title>\n    <base href=\"[[++site_url]]\">\n    [[$_head]]\n	<script type=\"text/javascript\" src=\"[[++site_url]]tmpl/js/scripts.js\"></script>\n</head>\n<body>\n<header>[[++site_name]]</header>\n<nav class=\"menu\">\n	<div>\n        <a href=\"[[++site_url]]\"></a>\n		[[$_menu]]\n    </div>\n</nav>\n<section class=\"blue\">\n	<article>\n		[[!BreadCrumbs? &currentAsLink=`0` &homeCrumbTitle=`Главная` \n			&bcTplCrumbCurrent=`<span itemprop=\"title\">[[+text]]</span>`\n			&bcTplCrumbFirst=`<span itemscope=\"itemscope\" itemtype=\"http://data-vocabulary.org/Breadcrumb\">[[+text]]</span>` \n			&bcTplCrumbHome=`<a itemprop=\"url\" href=\"[[~[[++site_start]]]]\"><span itemprop=\"title\">[[+text]]</span></a>` \n			&bcTplCrumbLast=`<span itemscope=\"itemscope\" itemtype=\"http://data-vocabulary.org/Breadcrumb\">[[+text]]</span>` \n			&bcTplCrumbMax=`<span itemscope=\"itemscope\" itemtype=\"http://data-vocabulary.org/Breadcrumb\">[[+text]]</span>`\n			&bcTplCrumbLink=`<a itemprop=\"url\" rel=\"[[+description]]\" href=\"[[+resource]]\"><span itemprop=\"title\">[[+text]]</span></a>` \n			&bcTplCrumbOuter=`<nav class=\"breadcrumb\">[[+text]]</nav>` \n			&bcTplCrumb=`<span itemscope=\"itemscope\" itemtype=\"http://data-vocabulary.org/Breadcrumb\">[[+text]]</span>`\n		]]\n		<h1>[[*longtitle:is=``:then=`[[*pagetitle]]`:else=`[[*longtitle]]`]]</h1>\n		[[*image:is=``:then=``:else=`<img src=\"[[*image]]\" alt=\"[[+pagetitle]]\" align=\"left\">`]]\n		[[*content]]\n    </article>\n</section>\n<footer></footer>\n</body>\n</html>',0,'a:0:{}',0,''),(10,0,0,'Zakrevskiy [О нас]','',0,0,'',0,'<!DOCTYPE html>\n<html lang=\"ru\">\n<head>\n    <meta charset=\"utf-8\">\n    <meta name=\"keywords\" content=\"[[*introtext]]\">\n    <meta name=\"description\" content=\"[[*description]]\">\n    <title>[[++site_name]] - [[*longtitle:is=``:then=`[[*pagetitle]]`:else=`[[*longtitle]]`]]</title>\n    <base href=\"[[++site_url]]\">\n    [[$_head]]\n	<script type=\"text/javascript\" src=\"[[++site_url]]tmpl/js/scripts.js\"></script>\n</head>\n<body>\n<header>[[++site_name]]</header>\n<nav class=\"menu\">\n	<div>\n        <a href=\"[[++site_url]]\"></a>\n		[[$_menu]]\n    </div>\n</nav>\n<section class=\"about\">\n    [[*content]]\n</section>\n<footer></footer>\n</body>\n</html>',0,'a:0:{}',0,''),(11,0,0,'Zakrevskiy [Контакты]','',0,0,'',0,'<!DOCTYPE html>\n<html lang=\"ru\">\n<head>\n    <meta charset=\"utf-8\">\n    <meta name=\"keywords\" content=\"[[*introtext]]\">\n    <meta name=\"description\" content=\"[[*description]]\">\n    <title>[[++site_name]] - [[*longtitle:is=``:then=`[[*pagetitle]]`:else=`[[*longtitle]]`]]</title>\n    <base href=\"[[++site_url]]\">\n    [[$_head]]\n	<script type=\"text/javascript\" src=\"http://maps.google.com/maps/api/js?sensor=false\"></script>\n	<script type=\"text/javascript\" src=\"[[++site_url]]tmpl/js/scripts.js\"></script>\n</head>\n<body>\n<header>[[++site_name]]</header>\n<nav class=\"menu\">\n	<div>\n        <a href=\"[[++site_url]]\"></a>\n		[[$_menu]]\n    </div>\n</nav>\n<section class=\"blue\">\n	<article>\n		[[!BreadCrumbs? &currentAsLink=`0` &homeCrumbTitle=`Главная` \n			&bcTplCrumbCurrent=`<span itemprop=\"title\">[[+text]]</span>`\n			&bcTplCrumbFirst=`<span itemscope=\"itemscope\" itemtype=\"http://data-vocabulary.org/Breadcrumb\">[[+text]]</span>` \n			&bcTplCrumbHome=`<a itemprop=\"url\" href=\"[[~[[++site_start]]]]\"><span itemprop=\"title\">[[+text]]</span></a>` \n			&bcTplCrumbLast=`<span itemscope=\"itemscope\" itemtype=\"http://data-vocabulary.org/Breadcrumb\">[[+text]]</span>` \n			&bcTplCrumbMax=`<span itemscope=\"itemscope\" itemtype=\"http://data-vocabulary.org/Breadcrumb\">[[+text]]</span>`\n			&bcTplCrumbLink=`<a itemprop=\"url\" rel=\"[[+description]]\" href=\"[[+resource]]\"><span itemprop=\"title\">[[+text]]</span></a>` \n			&bcTplCrumbOuter=`<nav class=\"breadcrumb\">[[+text]]</nav>` \n			&bcTplCrumb=`<span itemscope=\"itemscope\" itemtype=\"http://data-vocabulary.org/Breadcrumb\">[[+text]]</span>`\n		]]\n    	<div id=\"map1\"></div>\n		<h1>[[*longtitle:is=``:then=`[[*pagetitle]]`:else=`[[*longtitle]]`]]</h1>\n		[[*image:is=``:then=``:else=`<img src=\"[[*image]]\" alt=\"[[+pagetitle]]\" align=\"left\">`]]\n		[[*content]]\n		<div class=\"clr\"></div>\n		<script type=\"text/javascript\">\n		google.maps.event.addDomListener(window, \'load\', gmapInit1([[getResourceField? &id=`[[*parent]]` &field=`lat` &processTV=`1`]], [[getResourceField? &id=`[[*parent]]` &field=`lng` &processTV=`1`]], 14, \'[[*longtitle:is=``:then=`[[*pagetitle]]`:else=`[[*longtitle]]`]]\'));\n		</script>\n	</article>\n</section>\n<footer></footer>\n</body>\n</html>',0,'a:0:{}',0,''),(12,0,0,'Текстовая длинная','',0,0,'',0,'<!DOCTYPE html>\n<html lang=\"ru\">\n<head>\n    <meta charset=\"utf-8\">\n    <meta name=\"keywords\" content=\"[[*introtext]]\">\n    <meta name=\"description\" content=\"[[*description]]\">\n    <title>[[++site_name]] - [[*longtitle:is=``:then=`[[*pagetitle]]`:else=`[[*longtitle]]`]]</title>\n    <base href=\"[[++site_url]]\">\n    [[$_head]]\n	<script type=\"text/javascript\" src=\"[[++site_url]]tmpl/js/scripts.js\"></script>\n</head>\n<body>\n<header>[[++site_name]]</header>\n<nav class=\"menu\">\n	<div>\n        <a href=\"[[++site_url]]\"></a>\n		[[$_menu]]\n    </div>\n</nav>\n<section>\n	<article>\n		[[!BreadCrumbs? &currentAsLink=`0` &homeCrumbTitle=`Главная` \n			&bcTplCrumbCurrent=`<span itemprop=\"title\">[[+text]]</span>`\n			&bcTplCrumbFirst=`<span itemscope=\"itemscope\" itemtype=\"http://data-vocabulary.org/Breadcrumb\">[[+text]]</span>` \n			&bcTplCrumbHome=`<a itemprop=\"url\" href=\"[[~[[++site_start]]]]\"><span itemprop=\"title\">[[+text]]</span></a>` \n			&bcTplCrumbLast=`<span itemscope=\"itemscope\" itemtype=\"http://data-vocabulary.org/Breadcrumb\">[[+text]]</span>` \n			&bcTplCrumbMax=`<span itemscope=\"itemscope\" itemtype=\"http://data-vocabulary.org/Breadcrumb\">[[+text]]</span>`\n			&bcTplCrumbLink=`<a itemprop=\"url\" rel=\"[[+description]]\" href=\"[[+resource]]\"><span itemprop=\"title\">[[+text]]</span></a>` \n			&bcTplCrumbOuter=`<nav class=\"breadcrumb\">[[+text]]</nav>` \n			&bcTplCrumb=`<span itemscope=\"itemscope\" itemtype=\"http://data-vocabulary.org/Breadcrumb\">[[+text]]</span>`\n		]]\n		<h1>[[*longtitle:is=``:then=`[[*pagetitle]]`:else=`[[*longtitle]]`]]</h1>\n		[[*image:is=``:then=``:else=`<img src=\"[[*image]]\" alt=\"[[+pagetitle]]\" align=\"left\">`]]\n		[[*content]]\n    </article>\n</section>\n<footer></footer>\n</body>\n</html>',0,'a:0:{}',0,'');

--
-- Table structure for table `modx_site_tmplvar_access`
--

CREATE TABLE `modx_site_tmplvar_access` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `tmplvarid` int(10) NOT NULL DEFAULT '0',
  `documentgroup` int(10) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

--
-- Dumping data for table `modx_site_tmplvar_access`
--


--
-- Table structure for table `modx_site_tmplvar_contentvalues`
--

CREATE TABLE `modx_site_tmplvar_contentvalues` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `tmplvarid` int(10) NOT NULL DEFAULT '0',
  `contentid` int(10) NOT NULL DEFAULT '0',
  `value` mediumtext NOT NULL,
  PRIMARY KEY (`id`),
  KEY `tmplvarid` (`tmplvarid`),
  KEY `contentid` (`contentid`),
  KEY `tv_cnt` (`tmplvarid`,`contentid`)
) ENGINE=MyISAM AUTO_INCREMENT=137 DEFAULT CHARSET=utf8;

--
-- Dumping data for table `modx_site_tmplvar_contentvalues`
--

INSERT INTO `modx_site_tmplvar_contentvalues` VALUES (1,1,1,'[{\"MIGX_id\":\"4\",\"image\":\"images/slide3A.png\",\"title\":\"Изображение 3А\"},{\"MIGX_id\":\"2\",\"image\":\"images/slide2.png\",\"title\":\"Изображение 2\"},{\"MIGX_id\":\"1\",\"image\":\"images/slide1.png\",\"title\":\"Изображение 1\"}]'),(2,2,2,'[{\"MIGX_id\":\"1\",\"image\":\"images/gallerybig.jpg\",\"title\":\"Весна\",\"description\":\"<p>Парикмахер-стилист <br />Марина Кулинич<br />нейл-дизайнер <br />Инна Мищенко</p>\"},{\"MIGX_id\":\"17\",\"image\":\"images/Галерея образов/pricheska4a.jpg\",\"title\":\"Стрижка\",\"description\":\"<p>Парикмахер-стилист</p>\\n<p>Наталья Иванова</p>\"},{\"MIGX_id\":\"18\",\"image\":\"images/Галерея образов/pricheska4.jpg\",\"title\":\"Стрижка\",\"description\":\"<p>Парикмахер-стилист</p>\\n<p>Наталья Иванова</p>\"},{\"MIGX_id\":\"19\",\"image\":\"images/Галерея образов/pricheska3a.jpg\",\"title\":\"Прическа\",\"description\":\"<p>Парикмахер-стилист</p>\\n<p>Наталья Иванова</p>\"},{\"MIGX_id\":\"20\",\"image\":\"images/Галерея образов/pricheska3.jpg\",\"title\":\"Прическа\",\"description\":\"<p>Парикмахер-стилист и визажист</p>\\n<p>Наталья Иванова</p>\\n<p> </p>\"},{\"MIGX_id\":\"21\",\"image\":\"images/Галерея образов/pricheska2b.jpg\",\"title\":\"Стрижка\",\"description\":\"<p>Парикмахер-стилист</p>\\n<p>Наталья Иванова</p>\"},{\"MIGX_id\":\"22\",\"image\":\"images/Галерея образов/pricheska2a.jpg\",\"title\":\"Стрижка\",\"description\":\"<p>Парикмахер-стилист и визажист</p>\\n<p>Наталья Иванова</p>\"},{\"MIGX_id\":\"23\",\"image\":\"images/Галерея образов/pricheska2.jpg\",\"title\":\"Стрижка\",\"description\":\"<p>Парикмахер-стилист и визажист</p>\\n<p>Наталья Иванова</p>\"},{\"MIGX_id\":\"24\",\"image\":\"images/Галерея образов/pricheska1a.jpg\",\"title\":\"Прическа\",\"description\":\"<p>Парикмахер-стилист и визажист</p>\\n<p>Наталья Иванова</p>\"},{\"MIGX_id\":\"25\",\"image\":\"images/Галерея образов/pricheska1.jpg\",\"title\":\"Прическа\",\"description\":\"<p>Парикмахер-стилист и визажист</p>\\n<p>Наталья Иванова</p>\"},{\"MIGX_id\":\"27\",\"image\":\"images/Галерея образов/barbi1.jpg\",\"title\":\"Барби\",\"description\":\"<p>Парикмахер-универсал</p>\\n<p>Александра Филоненко</p>\"},{\"MIGX_id\":\"26\",\"image\":\"images/Галерея образов/barbi2.jpg\",\"title\":\"Барби\",\"description\":\"<p>Парикмахер-универсал</p>\\n<p>Александра Филоненко</p>\"},{\"MIGX_id\":\"28\",\"image\":\"images/Галерея образов/anglstrigka3.jpg\",\"title\":\"Стрижка по английской технологии\",\"description\":\"<p>Парикмахер-стилист</p>\\n<p>Филана Мескева</p>\"},{\"MIGX_id\":\"29\",\"image\":\"images/Галерея образов/anglstrigka2a.jpg\",\"title\":\"Стрижка по английской технологии\",\"description\":\"<p>Парикмахер-стилист</p>\\n<p>Филана Мескева</p>\"},{\"MIGX_id\":\"30\",\"image\":\"images/Галерея образов/anglstrigka2.jpg\",\"title\":\"Стрижка по английской технологии\",\"description\":\"<p>Парикмахер-стилист</p>\\n<p>Филана Мескева</p>\"},{\"MIGX_id\":\"31\",\"image\":\"images/Галерея образов/anglstrigka1a.jpg\",\"title\":\"Стрижка по английской технологии\",\"description\":\"<p>Парикмахер-стилист</p>\\n<p>Филана Мескева</p>\"},{\"MIGX_id\":\"32\",\"image\":\"images/Галерея образов/anglstrigka1b.jpg\",\"title\":\"Стрижка по английской технологии\",\"description\":\"<p>Парикмахер-стилист</p>\\n<p>Филана Мескева</p>\"},{\"MIGX_id\":\"33\",\"image\":\"images/Галерея образов/anglstrigka1.jpg\",\"title\":\"Стрижка по английской технологии\",\"description\":\"<p>Парикмахер-стилист</p>\\n<p>Филана Мескева</p>\\n<p>нейл-дизайнер</p>\\n<p>Елене Шаматиенко</p>\"},{\"MIGX_id\":\"35\",\"image\":\"images/Галерея образов/kazirnayadama1.jpg\",\"title\":\"Козырная дама\",\"description\":\"<p>Парикмахер-стилист и визажист</p>\\n<p>Наталья Иванова</p>\\n<p>нейл-дизайнер</p>\\n<p>Инна Мищенко</p>\"},{\"MIGX_id\":\"34\",\"image\":\"images/Галерея образов/kazirnayadama2.jpg\",\"title\":\"Козырная дама\",\"description\":\"<p>Парикмахер-стилист и визажист</p>\\n<p>Наталья Иванова</p>\\n<p>нейл-дизайнер</p>\\n<p>Инна Мищенко</p>\"},{\"MIGX_id\":\"37\",\"image\":\"images/Галерея образов/karamel1.jpg\",\"title\":\"Карамель\",\"description\":\"<p>Парикмахер-стилист и визажист</p>\\n<p>Наталья Иванова</p>\\n<p>нейл-дизайнер</p>\\n<p>Наталья Иванова</p>\"},{\"MIGX_id\":\"36\",\"image\":\"images/Галерея образов/karamel2.jpg\",\"title\":\"Карамель\",\"description\":\"<p>Парикмахер-стилист и визажист</p>\\n<p>Наталья Иванова</p>\\n<p>нейл-дизайнер</p>\\n<p>Наталья Кислицкая</p>\"},{\"MIGX_id\":\"38\",\"image\":\"images/Галерея образов/novogodniya1.jpg\",\"title\":\"Новогоднее настроение\",\"description\":\"<p>Парикмахер-стилист и визажист</p>\\n<p>Наталья Иванова</p>\\n<p>нейл-дизайнер</p>\\n<p>Анна Пошукайло</p>\"},{\"MIGX_id\":\"39\",\"image\":\"images/Галерея образов/novogodniya2.jpg\",\"title\":\"Новогоднее настроение\",\"description\":\"<p>Парикмахер-стилист и визажист</p>\\n<p>Наталья Иванова</p>\\n<p>нейл-дизайнер</p>\\n<p>Анна Пошукайло</p>\"},{\"MIGX_id\":\"50\",\"image\":\"images/Галерея образов/novogodnii2.jpg\",\"title\":\"Новогоднее настроение\",\"description\":\"<p>Парикмахер-стилист и визажист</p>\\n<p>Наталья Иванова</p>\\n<p>нейл-дизайнер</p>\\n<p>Анна Пошукайло</p>\"},{\"MIGX_id\":\"40\",\"image\":\"images/Галерея образов/babetta1.jpg\",\"title\":\"Бабетта\",\"description\":\"<p>Парикмахер-стилист</p>\\n<p>Наталья Иванова</p>\"},{\"MIGX_id\":\"41\",\"image\":\"images/Галерея образов/babetta2.jpg\",\"title\":\"Бабетта\",\"description\":\"<p>Парикмахер-стилист и визажист</p>\\n<p>Наталья Иванова</p>\\n<p>нейл-дизайнер</p>\\n<p>Юлия Ефремова</p>\"},{\"MIGX_id\":\"48\",\"image\":\"images/Галерея образов/vkrasnom2.jpg\",\"title\":\"Леди в красном\",\"description\":\"<p>Парикмахер-стилист и визажист</p>\\n<p>Наталья Иванова</p>\\n<p>нейл-дизайнер</p>\\n<p>Наталья Кислицкая</p>\"},{\"MIGX_id\":\"49\",\"image\":\"images/Галерея образов/vkrasnom1.jpg\",\"title\":\"Леди в красном\",\"description\":\"<p>Парикмахер-стилист и визажист</p>\\n<p>Наталья Иванова</p>\\n<p>нейл-дизайнер</p>\\n<p>Наталья Кислицкая</p>\"},{\"MIGX_id\":\"51\",\"image\":\"images/Галерея образов/stimpank1.jpg\",\"title\":\"Стимпанк\",\"description\":\"<p>Парикмахер-стилист</p>\\n<p>Филана Мескева</p>\"},{\"MIGX_id\":\"42\",\"image\":\"images/Галерея образов/grechanka3.jpg\",\"title\":\"Римская жрица\",\"description\":\"<p>Парикмахер-стилист и визажист</p>\\n<p>Наталья Иванова</p>\"},{\"MIGX_id\":\"43\",\"image\":\"images/Галерея образов/grechanka2.jpg\",\"title\":\"Римская жрица\",\"description\":\"<p>Парикмахер-стилист и визажист</p>\\n<p>Наталья Иванова</p>\"},{\"MIGX_id\":\"44\",\"image\":\"images/Галерея образов/grechanka.jpg\",\"title\":\"Римская жрица\",\"description\":\"<p>Парикмахер-стилист и визажист</p>\\n<p>Наталья Иванова</p>\"},{\"MIGX_id\":\"52\",\"image\":\"images/Галерея образов/vintaj2.jpg\",\"title\":\"Винтаж\",\"description\":\"<p>Парикмахер-стилист</p>\\n<p>Филана Мескева</p>\"},{\"MIGX_id\":\"53\",\"image\":\"images/Галерея образов/vintaj1.jpg\",\"title\":\"Винтаж\",\"description\":\"<p>Парикмахер-стилист</p>\\n<p>Филана Мескева</p>\"},{\"MIGX_id\":\"45\",\"image\":\"images/Галерея образов/japan2.jpg\",\"title\":\"Японка\",\"description\":\"<p>Парикмахер-стилист и визажист</p>\\n<p>Наталья Иванова</p>\"},{\"MIGX_id\":\"46\",\"image\":\"images/Галерея образов/japan1.jpg\",\"title\":\"Японка\",\"description\":\"<p>Парикмахер-стилист и визажист</p>\\n<p>Наталья Иванова</p>\"},{\"MIGX_id\":\"47\",\"image\":\"images/Галерея образов/japan3.jpg\",\"title\":\"Японка\",\"description\":\"<p>Парикмахер-стилист и визажист</p>\\n<p>Наталья Иванова</p>\"},{\"MIGX_id\":\"54\",\"image\":\"images/Галерея образов/koroleva2.jpg\",\"title\":\"Королевский шик\",\"description\":\"<p>Парикмахер-стилист</p>\\n<p>Филана Мескева</p>\"},{\"MIGX_id\":\"55\",\"image\":\"images/Галерея образов/koroleva1.jpg\",\"title\":\"Королевский шик\",\"description\":\"<p>Парикмахер-стилист</p>\\n<p>Филана Мескева</p>\\n<p>нейл-дизайнер</p>\\n<p>Юлия Ефремова</p>\"},{\"MIGX_id\":\"56\",\"image\":\"images/Галерея образов/retro2.jpg\",\"title\":\"Ретро\",\"description\":\"<p>Парикмахер-стилист</p>\\n<p>Филана Мескева</p>\"},{\"MIGX_id\":\"57\",\"image\":\"images/Галерея образов/retro1.jpg\",\"title\":\"Ретро\",\"description\":\"<p>Парикмахер-стилист</p>\\n<p>Филана Мескева</p>\\n<p>нейл-дизайнер</p>\\n<p>Елена Шаматиенко</p>\"},{\"MIGX_id\":\"58\",\"image\":\"images/Галерея образов/disko3.jpg\",\"title\":\"Диско\",\"description\":\"<p>Парикмахер-стилист</p>\\n<p>Филана Мескева</p>\"},{\"MIGX_id\":\"59\",\"image\":\"images/Галерея образов/disco1.jpg\",\"title\":\"Диско\",\"description\":\"<p>Парикмахер-стилист</p>\\n<p>Филана Мескева</p>\"},{\"MIGX_id\":\"60\",\"image\":\"images/Галерея образов/disko2.jpg\",\"title\":\"Диско\",\"description\":\"<p>Парикмахер-стилист</p>\\n<p>Филана Мескева</p>\\n<p>нейл-дизайнер</p>\\n<p>Инна Мищенко</p>\"}]'),(4,4,7,'images/Статьи/statia2.jpg'),(5,4,8,'images/img.jpg'),(6,4,9,'images/Статьи/pedikur3.jpg'),(31,4,26,'images/interier.jpg'),(11,5,15,'[{\"MIGX_id\":\"25\",\"image\":\"images/МОСТ/yuliamakarova.jpg\",\"title\":\"Юлия Макарова\",\"description\":\"<p>Юлия Макарова</p>\\n<p>Администратор</p>\"},{\"MIGX_id\":\"27\",\"image\":\"images/МОСТ/nadiakuprianova.jpg\",\"title\":\"Надежда Куприянова\",\"description\":\"<p>Надежда Куприянова</p>\\n<p>администратор</p>\"},{\"MIGX_id\":\"15\",\"image\":\"images/МОСТ/Екатерина Надирадзе.jpg\",\"title\":\"Екатерина Надирадзе мастер педикюра\",\"description\":\"<p style=\\\"text-align: center;\\\">Екатерина Надирадзе</p>\\n<p style=\\\"text-align: center;\\\">мастер педикюра</p>\"},{\"MIGX_id\":\"14\",\"image\":\"images/МОСТ/Юлия Бенемянович.jpg\",\"title\":\"Юлия Бенемянович мастер педикюра\",\"description\":\"<p style=\\\"text-align: center;\\\">Юлия Бенемянович</p>\\n<p style=\\\"text-align: center;\\\">мастер педикюра</p>\"},{\"MIGX_id\":\"19\",\"image\":\"images/МОСТ/Филана Мескева.jpg\",\"title\":\"Филана Мескева\",\"description\":\"<p>Филана Мескева</p>\\n<p>парикмахер-стилист</p>\"},{\"MIGX_id\":\"22\",\"image\":\"images/МОСТ/nataivanova.jpg\",\"title\":\"Наталья Иванова\",\"description\":\"<p>Наталья Иванова</p>\\n<p>парикмахер-стилист</p>\"},{\"MIGX_id\":\"9\",\"image\":\"images/МОСТ/Оксана Шаравара_1200.jpg\",\"title\":\"Оксана Шаравара нейл-дизайнер\",\"description\":\"<p style=\\\"text-align: center;\\\">Оксана Шаравара</p>\\n<p style=\\\"text-align: center;\\\">нейл-дизайнер</p>\"},{\"MIGX_id\":\"13\",\"image\":\"images/МОСТ/Елена Шаматиенко.jpg\",\"title\":\"Елена Шаматиенко нейл-дизайнер\",\"description\":\"<p style=\\\"text-align: center;\\\">Елена Шаматиенко</p>\\n<p style=\\\"text-align: center;\\\">нейл-дизайнер</p>\"},{\"MIGX_id\":\"12\",\"image\":\"images/МОСТ/Анастасия Пуздря.jpg\",\"title\":\"Надежда Пуздря нейл-дизайнер\",\"description\":\"<p style=\\\"text-align: center;\\\">Надежда Пуздря</p>\\n<p style=\\\"text-align: center;\\\">нейл-дизайнер</p>\"},{\"MIGX_id\":\"26\",\"image\":\"images/МОСТ/juliamalovitskaya.jpg\",\"title\":\"Юлия Маловицкая\",\"description\":\"<p>Юлия Маловицкая</p>\\n<p>нейл-дизайнер</p>\"}]'),(12,6,16,'48.4622985'),(13,7,16,'35.0003565'),(14,8,16,'12'),(59,5,37,'[{\"MIGX_id\":\"8\",\"image\":\"images/Запорожье/Маргарита Чикаленко.jpg\",\"title\":\"Маргарита Чикаленко мастер педикюра\",\"description\":\"<p>Маргарита Чикаленко</p>\\n<p>мастер педикюра</p>\"},{\"MIGX_id\":\"9\",\"image\":\"images/Запорожье/Алевтина Ефименко.jpg\",\"title\":\"Алевтина Ефименко нейл-дизайнер\",\"description\":\"<p>Алевтина Ефименко</p>\\n<p>нейл-дизайнер</p>\"},{\"MIGX_id\":\"5\",\"image\":\"images/Запорожье/Виктория Пономаренко.jpg\",\"title\":\"Виктория Пономаренко нейл-дизайнер\",\"description\":\"<p>Виктория Пономаренко</p>\\n<p>нейл-дизайнер</p>\"},{\"MIGX_id\":\"4\",\"image\":\"images/Запорожье/Вероника Кулагина.jpg\",\"title\":\"Вероника Кулагина нейл-дизайнер\",\"description\":\"<p>Вероника Кулагина</p>\\n<p>нейл-дизайнер</p>\"}]'),(58,4,35,'images/interier.jpg'),(49,6,31,'48.019838'),(50,7,31,'37.783695'),(51,5,33,'[{\"MIGX_id\":\"4\",\"image\":\"images/Донецк/alevtinaevdoshak.jpg\",\"title\":\"Алевтина Евдощак\",\"description\":\"<p>Алевтина Евдощак</p>\\n<p>мастер педикюра</p>\"},{\"MIGX_id\":\"5\",\"image\":\"images/Донецк/natakrainuk.jpg\",\"title\":\"Наталья Крайнюк\",\"description\":\"<p>Наталья Крайнюк</p>\\n<p>мастер маникюра</p>\"}]'),(48,10,31,'<p><em>г. Донецк</em><br /><em>пр. Панфилова, д. 21, корп. 6</em><br /><em>тел. (050) 366-50-94</em></p>'),(38,10,26,'<p> ул. Глинки, 2<br /> МОСТ Бизнес-центр, оф. № 1107<br />(056) 790 52 32<br />(067) 617 06 47</p>'),(52,6,34,'48.4622985'),(44,6,30,'48.4622985'),(45,7,30,'35.0003565'),(46,8,30,'12'),(47,4,31,'images/interier.jpg'),(39,4,27,'images/interier.jpg'),(40,10,27,'<p>ул. Короленко, 18<br />(0562) 33 74 33<br />(067) 789 82 92</p>'),(84,4,50,'images/interier.jpg'),(41,6,27,'48.461400'),(42,7,27,'35.039274'),(43,5,29,'[{\"MIGX_id\":\"15\",\"image\":\"images/Короленко/ludabelaya.jpg\",\"title\":\"Людмила Белая\",\"description\":\"<p>Людмила Белая</p>\\n<p>администратор</p>\"},{\"MIGX_id\":\"17\",\"image\":\"images/Короленко/krivenkomargo.jpg\",\"title\":\"Маргарита Кривенко\",\"description\":\"<p>Маргарита Кривенко</p>\\n<p>администратор</p>\"},{\"MIGX_id\":\"20\",\"image\":\"images/Короленко/somikmaria.jpg\",\"title\":\"Мария Сомик\",\"description\":\"<p>Мария Сомик</p>\\n<p>мастер педикюра</p>\"},{\"MIGX_id\":\"22\",\"image\":\"images/Короленко/katiakorotkaya.jpg\",\"title\":\"Екатерина Короткая\",\"description\":\"<p>Екатерина Короткая</p>\\n<p>нейл-дизайнер</p>\"},{\"MIGX_id\":\"21\",\"image\":\"images/Короленко/innadomaskina.jpg\",\"title\":\"Инна Домаскина\",\"description\":\"<p>Инна Домаскина</p>\\n<p>нейл-дизайнер</p>\"},{\"MIGX_id\":\"7\",\"image\":\"images/Короленко/Лариса Бут.jpg\",\"title\":\"Лариса Бут нейл-дизайнер\",\"description\":\"<p>Лариса Бут</p>\\n<p>нейл-дизайнер</p>\"},{\"MIGX_id\":\"19\",\"image\":\"images/Короленко/filippskihalena.jpg\",\"title\":\"Алена Филиппских\",\"description\":\"<p>Алена Филиппских</p>\\n<p>нейл-дизайнер</p>\"},{\"MIGX_id\":\"18\",\"image\":\"images/Короленко/kotovaolga.jpg\",\"title\":\"Ольга Котова\",\"description\":\"<p>Ольга Котова</p>\\n<p>нейл-дизайнер</p>\"}]'),(80,4,45,'images/Статьи/statianarashivanie.jpg'),(81,4,46,'images/Статьи/statia_mujmanik.jpg'),(82,4,47,'images/Статьи/dezinsrument.jpg'),(32,6,10,'48.4422995'),(33,7,10,'35.0183565'),(136,8,10,'13'),(35,6,26,'48.466110'),(36,7,26,'35.051810'),(53,7,34,'35.0003565'),(54,8,34,'12'),(55,6,35,'47.838129'),(56,7,35,'35.145673'),(57,10,35,'<p>Салон красоты <br />ул. 40 лет Советской Украины, 92</p>\r\n<p>(061) 289 36 58</p>\r\n<p>(067) 617 06 44</p>'),(60,6,38,'48.4622985'),(61,7,38,'35.0003565'),(62,8,38,'12'),(63,4,39,'images/interier.jpg'),(64,6,39,'50.402359'),(65,7,39,'30.624665'),(66,10,39,'<p><strong><span>г. Киев</span></strong><br /><strong><span>метро \"Позняки\"</span></strong><br /><strong><span>ул. Княжий Затон, 9</span></strong><br /><strong><span>(044) 223 04 61</span></strong><br /><strong><span>(093) 573 29 73</span></strong></p>'),(67,5,41,'[{\"MIGX_id\":\"15\",\"image\":\"images/Киев/alenamaterinskaya.jpg\",\"title\":\"Алена Материнская\",\"description\":\"<p>Алена Материнская</p>\\n<p>администратор</p>\"},{\"MIGX_id\":\"13\",\"image\":\"images/Киев/irinachernenko.jpg\",\"title\":\"Ирина Черненко\",\"description\":\"<p>Ирина Черненко</p>\\n<p>администратор</p>\"},{\"MIGX_id\":\"14\",\"image\":\"images/Киев/nastiavitort.jpg\",\"title\":\"Анастасия Виторт\",\"description\":\"<p>Анастасия Виторт</p>\\n<p>мастер маникюра и педикюра</p>\"},{\"MIGX_id\":\"12\",\"image\":\"images/Киев/margoderkach.jpg\",\"title\":\"Маргарита Деркач\",\"description\":\"<p>Маргарита Деркач</p>\\n<p>мастер маникюра и педикюра</p>\"}]'),(126,10,66,'<p>ул. Павла Ниринберга, 10<br /> (бывш. ул. Баумана)<br />(056) 794 09 90<br />(067) 280 84 08</p>'),(68,6,42,'48.4622985'),(69,7,42,'35.0003565'),(70,8,42,'12'),(83,4,49,'images/img.jpg'),(85,10,50,'<p> ул. Святослава Хороброго, 25<br />(бывш. ул. Чкалова)<br />(056) 372 70 82<br />(067) 617 06 49</p>'),(86,6,50,'48.460808'),(87,7,50,'35.038499'),(88,5,52,'[{\"MIGX_id\":\"23\",\"image\":\"images/Чкалова/vikatkachenko.jpg\",\"title\":\"Виктория Ткаченко\",\"description\":\"<p>Виктория Ткаченко</p>\\n<p>администратор</p>\"},{\"MIGX_id\":\"10\",\"image\":\"images/Чкалова/Оксана Щербина.jpg\",\"title\":\"Оксана Щербина администратор\",\"description\":\"<p>Оксана Щербина</p>\\n<p>администратор</p>\"},{\"MIGX_id\":\"14\",\"image\":\"images/Чкалова/natavolodina.jpg\",\"title\":\"Наталья Володина\",\"description\":\"<p>Наталья Володина</p>\\n<p>мастер педикюра</p>\"},{\"MIGX_id\":\"15\",\"image\":\"images/Чкалова/nataliamec.jpg\",\"title\":\"Наталья Лямец\",\"description\":\"<p>Наталья Лямец</p>\\n<p>нейл-дизайнер</p>\"},{\"MIGX_id\":\"19\",\"image\":\"images/Короленко/oleinikolesia.jpg\",\"title\":\"Олеся Олейник\",\"description\":\"<p>Олеся Олейник</p>\\n<p>мастер парикмахер</p>\"},{\"MIGX_id\":\"8\",\"image\":\"images/Чкалова/Марина Кулинич.jpg\",\"title\":\"Марина Кулинич мастер парикмахер\",\"description\":\"<p>Марина Кулинич</p>\\n<p>мастер парикмахер</p>\"},{\"MIGX_id\":\"20\",\"image\":\"images/Баумана/dariasemenova.jpg\",\"title\":\"Дарья Семенова\",\"description\":\"<p>Дарья Семенова</p>\\n<p>нейл-дизайнер</p>\"},{\"MIGX_id\":\"18\",\"image\":\"images/Чкалова/maleevamarina.jpg\",\"title\":\"Марина Малеева\",\"description\":\"<p>Марина Малеева</p>\\n<p>нейл-дизайнер</p>\"},{\"MIGX_id\":\"11\",\"image\":\"images/Чкалова/Ирина Галиченко.jpg\",\"title\":\"Ирина Галиченко нейл-дизайнер\",\"description\":\"<p>Ирина Галиченко</p>\\n<p>нейл-дизайнер</p>\"}]'),(89,6,53,'48.4622985'),(90,7,53,'35.0003565'),(91,8,53,'12'),(92,4,55,'images/interier.jpg'),(93,10,55,'<p>пр. Правды, 87<br />(0562) 35 13 35<br />(067) 778 54 96</p>'),(94,6,55,'48.510693'),(95,7,55,'35.076296'),(97,6,58,'48.4622985'),(98,7,58,'35.0003565'),(99,8,58,'12'),(100,4,59,'images/interier.jpg'),(101,10,59,'<p>пр. Гагарина, 171<br />(0562) 365 965<br />(067) 778 57 61</p>'),(102,6,59,'48.4666488'),(103,7,59,'35.0508551'),(104,4,60,'images/interier.jpg'),(105,10,60,'<p>пр. Гагарина, 171<br />(056) 790 32 33<br />(067) 778 57 61</p>'),(106,6,60,'48.424880'),(107,7,60,'35.026687'),(109,6,63,'48.4622985'),(110,7,63,'35.0003565'),(111,8,63,'12'),(112,1,26,'[{\"MIGX_id\":\"16\",\"image\":\"images\\/\\u041c\\u041e\\u0421\\u0422\\/\\u0438\\u043d\\u0442\\u0435\\u0440\\u044c\\u0435\\u0440_13.jpg\",\"title\":\"\\u0418\\u043d\\u0442\\u0435\\u0440\\u044c\\u0435\\u0440_13\"},{\"MIGX_id\":\"15\",\"image\":\"images\\/\\u041c\\u041e\\u0421\\u0422\\/\\u0438\\u043d\\u0442\\u0435\\u0440\\u044c\\u0435\\u0440_12.jpg\",\"title\":\"\\u0418\\u043d\\u0442\\u0435\\u0440\\u044c\\u0435\\u0440_12\"},{\"MIGX_id\":\"14\",\"image\":\"images\\/\\u041c\\u041e\\u0421\\u0422\\/\\u0438\\u043d\\u0442\\u0435\\u0440\\u044c\\u0435\\u0440_11.jpg\",\"title\":\"\\u0418\\u043d\\u0442\\u0435\\u0440\\u044c\\u0435\\u0440_11\"},{\"MIGX_id\":\"13\",\"image\":\"images\\/\\u041c\\u041e\\u0421\\u0422\\/\\u0438\\u043d\\u0442\\u0435\\u0440\\u044c\\u0435\\u0440_10.jpg\",\"title\":\"\\u0418\\u043d\\u0442\\u0435\\u0440\\u044c\\u0435\\u0440_10\"},{\"MIGX_id\":\"12\",\"image\":\"images\\/\\u041c\\u041e\\u0421\\u0422\\/\\u0438\\u043d\\u0442\\u0435\\u0440\\u044c\\u0435\\u0440_9.jpg\",\"title\":\"\\u0418\\u043d\\u0442\\u0435\\u0440\\u044c\\u0435\\u0440_9\"},{\"MIGX_id\":\"11\",\"image\":\"images\\/\\u041c\\u041e\\u0421\\u0422\\/\\u0438\\u043d\\u0442\\u0435\\u0440\\u044c\\u0435\\u0440_8.jpg\",\"title\":\"\\u0418\\u043d\\u0442\\u0435\\u0440\\u044c\\u0435\\u0440_8\"},{\"MIGX_id\":\"10\",\"image\":\"images\\/\\u041c\\u041e\\u0421\\u0422\\/\\u0438\\u043d\\u0442\\u0435\\u0440\\u044c\\u0435\\u0440_7.jpg\",\"title\":\"\\u0418\\u043d\\u0442\\u0435\\u0440\\u044c\\u0435\\u0440_7\"},{\"MIGX_id\":\"9\",\"image\":\"images\\/\\u041c\\u041e\\u0421\\u0422\\/\\u0438\\u043d\\u0442\\u0435\\u0440\\u044c\\u0435\\u0440_6.jpg\",\"title\":\"\\u0418\\u043d\\u0442\\u0435\\u0440\\u044c\\u0435\\u0440_6\"},{\"MIGX_id\":\"8\",\"image\":\"images\\/\\u041c\\u041e\\u0421\\u0422\\/\\u0438\\u043d\\u0442\\u0435\\u0440\\u044c\\u0435\\u0440_5.jpg\",\"title\":\"\\u0418\\u043d\\u0442\\u0435\\u0440\\u044c\\u0435\\u0440_5\"},{\"MIGX_id\":\"7\",\"image\":\"images\\/\\u041c\\u041e\\u0421\\u0422\\/\\u0438\\u043d\\u0442\\u0435\\u0440\\u044c\\u0435\\u0440_4.jpg\",\"title\":\"\\u0418\\u043d\\u0442\\u0435\\u0440\\u044c\\u0435\\u0440_4\"},{\"MIGX_id\":\"6\",\"image\":\"images\\/\\u041c\\u041e\\u0421\\u0422\\/13\\u041c\\u043e\\u0441\\u0442_\\u0438\\u043d\\u0442\\u0435\\u0440\\u044c\\u0435\\u0440.jpg\",\"title\":\"\\u0418\\u043d\\u0442\\u0435\\u0440\\u044c\\u0435\\u0440_3\"},{\"MIGX_id\":\"5\",\"image\":\"images\\/\\u041c\\u041e\\u0421\\u0422\\/14\\u041c\\u043e\\u0441\\u0442_\\u0438\\u043d\\u0442\\u0435\\u0440\\u044c\\u0435\\u0440.jpg\",\"title\":\"\\u0418\\u043d\\u0442\\u0435\\u0440\\u044c\\u0435\\u0440_2\"},{\"MIGX_id\":\"4\",\"image\":\"images\\/\\u041c\\u041e\\u0421\\u0422\\/4\\u041c\\u043e\\u0441\\u0442_\\u0438\\u043d\\u0442\\u0435\\u0440\\u044c\\u0435\\u0440.jpg\",\"title\":\"\\u0418\\u043d\\u0442\\u0435\\u0440\\u044c\\u0435\\u0440_1\"}]'),(120,3,3,'[{\"MIGX_id\":\"17\",\"image\":\"images/Дизайн ногтей/1annaradzievskaya.jpg\",\"title\":\"\",\"description\":\"<p>нейл-дизайнер</p>\\n<p>Анна Радзиевская</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"18\",\"image\":\"images/Дизайн ногтей/2annaradzievskaya.jpg\",\"title\":\"\",\"description\":\"<p>нейл-дизайнер</p>\\n<p>Анна Радзиевская</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"19\",\"image\":\"images/Дизайн ногтей/3annaoleinik.jpg\",\"title\":\"\",\"description\":\"<p>нейл-дизайнер</p>\\n<p>Анна Олейник</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"20\",\"image\":\"images/Дизайн ногтей/4natavoloshko.jpg\",\"title\":\"\",\"description\":\"<p>нейл-дизайнер</p>\\n<p>Наталья Волошко</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"21\",\"image\":\"images/Дизайн ногтей/5lenaprusakova.jpg\",\"title\":\"\",\"description\":\"<p>нейл-дизайнер</p>\\n<p>Елена Прусакова</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"22\",\"image\":\"images/Дизайн ногтей/6natavoloshko.jpg\",\"title\":\"\",\"description\":\"<p>нейл-дизайнер</p>\\n<p>Наталья Волошко</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"23\",\"image\":\"images/Дизайн ногтей/7natavoloshko.jpg\",\"title\":\"\",\"description\":\"<p>нейл-дизайнер</p>\\n<p>Наталья Волошко</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"24\",\"image\":\"images/Дизайн ногтей/8annaoleinik.jpg\",\"title\":\"\",\"description\":\"<p>нейл-дизайнер</p>\\n<p>Анна Олейник</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"25\",\"image\":\"images/Дизайн ногтей/9natakislickaya.jpg\",\"title\":\"\",\"description\":\"<p>инструктор</p>\\n<p>Наталья Кислицкая</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"26\",\"image\":\"images/Дизайн ногтей/10natakislickaya.jpg\",\"title\":\"\",\"description\":\"<p>инструктор</p>\\n<p>Наталья Кислицкая</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"27\",\"image\":\"images/Дизайн ногтей/11natakislickaya.jpg\",\"title\":\"\",\"description\":\"<p>инструктор </p>\\n<p>Наталья Кислицкая</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"28\",\"image\":\"images/Дизайн ногтей/12natakislickaya.jpg\",\"title\":\"\",\"description\":\"<p>инструктор </p>\\n<p>Наталья Кислицкая</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"29\",\"image\":\"images/Дизайн ногтей/13natakislickaya.jpg\",\"title\":\"\",\"description\":\"<p>инструктор </p>\\n<p>Наталья Кислицкая</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"30\",\"image\":\"images/Дизайн ногтей/14natakislickaya.jpg\",\"title\":\"\",\"description\":\"<p>инструктор </p>\\n<p>Наталья Кислицкая</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"31\",\"image\":\"images/Дизайн ногтей/15innamishenko.jpg\",\"title\":\"\",\"description\":\"<p>инструктор </p>\\n<p>Инна Мищенко</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"32\",\"image\":\"images/Дизайн ногтей/16natakislickaya.jpg\",\"title\":\"\",\"description\":\"<p>инструктор </p>\\n<p>Наталья Кислицкая</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"33\",\"image\":\"images/Дизайн ногтей/17natakislickaya.jpg\",\"title\":\"\",\"description\":\"<p>инструктор </p>\\n<p>Наталья Кислицкая</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"34\",\"image\":\"images/Дизайн ногтей/18innamishenko.jpg\",\"title\":\"\",\"description\":\"<p>инструктор </p>\\n<p>Инна Мищенко</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"35\",\"image\":\"images/Дизайн ногтей/19tanyafilonova.jpg\",\"title\":\"\",\"description\":\"<p>нейл-дизайнер</p>\\n<p>Татьяна Филонова</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"36\",\"image\":\"images/Дизайн ногтей/20innamishenko.jpg\",\"title\":\"\",\"description\":\"<p>инструктор</p>\\n<p>Инна Мищенко</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"37\",\"image\":\"images/Дизайн ногтей/21natakislickaya.jpg\",\"title\":\"\",\"description\":\"<p>инструктор </p>\\n<p>Наталья Кислицкая</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"38\",\"image\":\"images/Дизайн ногтей/22natakislickaya.jpg\",\"title\":\"\",\"description\":\"<p>инструктор </p>\\n<p>Наталья Кислицкая</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"39\",\"image\":\"images/Дизайн ногтей/23innamishenko.jpg\",\"title\":\"\",\"description\":\"<p>инструктор </p>\\n<p>Инна Мищенко</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"40\",\"image\":\"images/Дизайн ногтей/24natakislickaya.jpg\",\"title\":\"\",\"description\":\"<p>инструктор </p>\\n<p>Наталья Кислицкая</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"41\",\"image\":\"images/Дизайн ногтей/25natakislickaya.jpg\",\"title\":\"\",\"description\":\"<p>инструктор </p>\\n<p>Наталья Кислицкая</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"42\",\"image\":\"images/Дизайн ногтей/26natakislickaya.jpg\",\"title\":\"\",\"description\":\"<p>инструктор </p>\\n<p>Наталья Кислицкая</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"43\",\"image\":\"images/Дизайн ногтей/27marinakalinevich.jpg\",\"title\":\"\",\"description\":\"<p>нейл-дизайнер</p>\\n<p>Марина Калиневич</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"44\",\"image\":\"images/Дизайн ногтей/28annaposhukailo.jpg\",\"title\":\"\",\"description\":\"<p>нейл-дизайнер</p>\\n<p>Анна Пошукайло</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"45\",\"image\":\"images/Дизайн ногтей/29annaposhukailo.jpg\",\"title\":\"\",\"description\":\"<p>нейл-дизайнер</p>\\n<p>Анна Пошукайло</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"46\",\"image\":\"images/Дизайн ногтей/30annaposhukailo.jpg\",\"title\":\"\",\"description\":\"<p>нейл-дизайнер</p>\\n<p>Анна Пошукайло</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"47\",\"image\":\"images/Дизайн ногтей/31annaposhukailo.jpg\",\"title\":\"\",\"description\":\"<p>нейл-дизайнер</p>\\n<p>Анна Пошукайло</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"48\",\"image\":\"images/Дизайн ногтей/32annaposhukailo.jpg\",\"title\":\"\",\"description\":\"<p>нейл-дизайнер</p>\\n<p>Анна Пошукайло</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"49\",\"image\":\"images/Дизайн ногтей/33ulaefremova.jpg\",\"title\":\"\",\"description\":\"<p>нейл-дизайнер</p>\\n<p>Юлия Ефремова</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"50\",\"image\":\"images/Дизайн ногтей/34annaposhukailo.jpg\",\"title\":\"\",\"description\":\"<p>нейл-дизайнер</p>\\n<p>Анна Пошукайло</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"51\",\"image\":\"images/Дизайн ногтей/35ulaefremova.jpg\",\"title\":\"\",\"description\":\"<p>нейл-дизайнер</p>\\n<p>Юлия Ефремова</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"52\",\"image\":\"images/Дизайн ногтей/36annaposhukailo.jpg\",\"title\":\"\",\"description\":\"<p>нейл-дизайнер</p>\\n<p>Анна Пошукайло</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"53\",\"image\":\"images/Дизайн ногтей/37ulaefremova.jpg\",\"title\":\"\",\"description\":\"<p>нейл-дизайнерЮлия Ефремова</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"54\",\"image\":\"images/Дизайн ногтей/38ulaefremova.jpg\",\"title\":\"\",\"description\":\"<p>нейл-дизайнер</p>\\n<p>Юлия Ефремова</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"55\",\"image\":\"images/Дизайн ногтей/39annaposhukailo.jpg\",\"title\":\"\",\"description\":\"<p>нейл-дизайнер</p>\\n<p>Анна Пошукайло</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"56\",\"image\":\"images/Дизайн ногтей/40natakislickaya.jpg\",\"title\":\"\",\"description\":\"<p>инструктор</p>\\n<p>Наталья Кислицкая</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"57\",\"image\":\"images/Дизайн ногтей/41innamishenko.jpg\",\"title\":\"\",\"description\":\"<p>инструктор Инна Мищенко</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"58\",\"image\":\"images/Дизайн ногтей/42ulaefremova.jpg\",\"title\":\"\",\"description\":\"<p>нейл-дизайнер</p>\\n<p>Юлия Ефремова</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"59\",\"image\":\"images/Дизайн ногтей/43ulaefremova.jpg\",\"title\":\"\",\"description\":\"<p>нейл-дизайнер</p>\\n<p>Юлия Ефремова</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"60\",\"image\":\"images/Дизайн ногтей/44ulaefremova.jpg\",\"title\":\"\",\"description\":\"<p>нейл-дизайнер</p>\\n<p>Юлия Ефремова</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"61\",\"image\":\"images/Дизайн ногтей/45innamishenko.jpg\",\"title\":\"\",\"description\":\"<p>инструктор</p>\\n<p>Инна Мищенко</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"62\",\"image\":\"images/Дизайн ногтей/46ulaefremova.jpg\",\"title\":\"\",\"description\":\"<p>нейл-дизайнер</p>\\n<p>Юлия Ефремова</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"63\",\"image\":\"images/Дизайн ногтей/47annaposhukailo.jpg\",\"title\":\"\",\"description\":\"<p>нейл-дизайнер</p>\\n<p>Анна Пошукайло</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"64\",\"image\":\"images/Дизайн ногтей/48innamishenko.jpg\",\"title\":\"\",\"description\":\"<p>инструктор</p>\\n<p>Инна Мищенко</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"65\",\"image\":\"images/Дизайн ногтей/49natakislickaya.jpg\",\"title\":\"\",\"description\":\"<p>инструктор</p>\\n<p>Наталья Кислицкая</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"66\",\"image\":\"images/Дизайн ногтей/50natakislickaya.jpg\",\"title\":\"\",\"description\":\"<p>инструктор </p>\\n<p>Наталья Кислицкая</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"73\",\"image\":\"images/Дизайн ногтей/57innamishenko.jpg\",\"title\":\"\",\"description\":\"<p>инструктор</p>\\n<p>Инна Мищенко</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"67\",\"image\":\"images/Дизайн ногтей/51natakislickaya.jpg\",\"title\":\"\",\"description\":\"<p>инструктор</p>\\n<p>Наталья Кислицкая</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"69\",\"image\":\"images/Дизайн ногтей/53innamishenko.jpg\",\"title\":\"\",\"description\":\"<p>инструктор</p>\\n<p>Инна Мищенко</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"70\",\"image\":\"images/Дизайн ногтей/54natakislickaya.jpg\",\"title\":\"\",\"description\":\"<p>инструктор</p>\\n<p>Наталья Кислицкая</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"71\",\"image\":\"images/Дизайн ногтей/55innamishenko.jpg\",\"title\":\"\",\"description\":\"<p>инструктор</p>\\n<p>Инна Мищенко</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"68\",\"image\":\"images/Дизайн ногтей/52ulaefremova.jpg\",\"title\":\"\",\"description\":\"<p>нейл-дизайнер</p>\\n<p>Юлия Ефремова</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"72\",\"image\":\"images/Дизайн ногтей/56innamishenko.jpg\",\"title\":\"\",\"description\":\"<p>инструктор</p>\\n<p>Инна Мищенко</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"74\",\"image\":\"images/Дизайн ногтей/58ulaefremova.jpg\",\"title\":\"\",\"description\":\"<p>нейл-дизайнер</p>\\n<p>Юлия Ефремова</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"75\",\"image\":\"images/Дизайн ногтей/59innamishenko.jpg\",\"title\":\"\",\"description\":\"<p>инструктор</p>\\n<p>Инна Мищенко</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"76\",\"image\":\"images/Дизайн ногтей/60innamishenko.jpg\",\"title\":\"\",\"description\":\"<p>инструктор</p>\\n<p>Инна Мищенко</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"77\",\"image\":\"images/Дизайн ногтей/61nadyshvager.jpg\",\"title\":\"\",\"description\":\"<p>нейл-дизайнер</p>\\n<p>Надежда Швагер</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"78\",\"image\":\"images/Дизайн ногтей/62ulaefremova.jpg\",\"title\":\"\",\"description\":\"<p>нейл-дизайнер</p>\\n<p>Юлия Ефремова</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"79\",\"image\":\"images/Дизайн ногтей/63annaposhukailo.jpg\",\"title\":\"\",\"description\":\"<p>нейл-дизайнер</p>\\n<p>Анна Пошукайло</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"80\",\"image\":\"images/Дизайн ногтей/64annapoluyanskaya.jpg\",\"title\":\"\",\"description\":\"<p>нейл-дизайнер</p>\\n<p>Анна Полуянская</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"81\",\"image\":\"images/Дизайн ногтей/65nadyashvager.jpg\",\"title\":\"\",\"description\":\"<p>нейл-дизайнер</p>\\n<p>Надежда Швагер</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"82\",\"image\":\"images/Дизайн ногтей/66marinalopatneva.jpg\",\"title\":\"\",\"description\":\"<p>нейл-дизайнер</p>\\n<p>Марина Лопатнева</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"83\",\"image\":\"images/Дизайн ногтей/67natakislickaya.jpg\",\"title\":\"\",\"description\":\"<p>инструктор</p>\\n<p>Наталья Кислицкая</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"84\",\"image\":\"images/Дизайн ногтей/68natakislickaya.jpg\",\"title\":\"\",\"description\":\"<p>инструктор</p>\\n<p>Наталья Кислицкая</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"85\",\"image\":\"images/Дизайн ногтей/69sushenkobadakva.jpg\",\"title\":\"\",\"description\":\"<p>нейл-дизайнер</p>\\n<p>Юлия Сущенко и Татьяна Бадаква</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"86\",\"image\":\"images/Дизайн ногтей/71tanyabadskva.jpg\",\"title\":\"\",\"description\":\"<p>нейл-дизайнер</p>\\n<p>Татьяна Бадаква</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"87\",\"image\":\"images/Дизайн ногтей/72marinalopatneva.jpg\",\"title\":\"\",\"description\":\"<p>нейл-дизайнер</p>\\n<p>Марина Лопатнева</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"88\",\"image\":\"images/Дизайн ногтей/73ulaefremova.jpg\",\"title\":\"\",\"description\":\"<p>нейл-дизайнер</p>\\n<p>Юлия Ефремова</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"89\",\"image\":\"images/Дизайн ногтей/74innamishenko.jpg\",\"title\":\"\",\"description\":\"<p>инструктор</p>\\n<p>Инна Мищенко</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"90\",\"image\":\"images/Дизайн ногтей/75annaposhukailo.jpg\",\"title\":\"\",\"description\":\"<p>нейл-дизайнер</p>\\n<p>Анна Пошукайло</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"91\",\"image\":\"images/Дизайн ногтей/76natalimec.jpg\",\"title\":\"\",\"description\":\"<p>нейл-дизайнер</p>\\n<p>Наталья Лямец</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"92\",\"image\":\"images/Дизайн ногтей/77innamishenko.jpg\",\"title\":\"\",\"description\":\"<p>инструктор</p>\\n<p>Инна Мищенко</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"93\",\"image\":\"images/Дизайн ногтей/78innamishenko.jpg\",\"title\":\"\",\"description\":\"<p>инструктор</p>\\n<p>Инна Мищенко</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"94\",\"image\":\"images/Дизайн ногтей/79natakislickaya.jpg\",\"title\":\"\",\"description\":\"<p>инструктор</p>\\n<p>Наталья Кислицкая</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"95\",\"image\":\"images/Дизайн ногтей/80natakislickaya.jpg\",\"title\":\"\",\"description\":\"<p>инструктор</p>\\n<p>Наталья Кислицкая</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"96\",\"image\":\"images/Дизайн ногтей/81natakislickaya.jpg\",\"title\":\"\",\"description\":\"<p>инструктор</p>\\n<p>Наталья Кислицкая</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"97\",\"image\":\"images/Дизайн ногтей/82ulaefremova.jpg\",\"title\":\"\",\"description\":\"<p>нейл-дизайнер</p>\\n<p>Юлия Ефремова</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"98\",\"image\":\"images/Дизайн ногтей/83ulaefremova.jpg\",\"title\":\"\",\"description\":\"<p>нейл-дизайнер</p>\\n<p>Юлия Ефремова</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"100\",\"image\":\"images/Дизайн ногтей/84ulaefremova.jpg\",\"title\":\"\",\"description\":\"<p>нейл-дизайнер</p>\\n<p>Юлия Ефремова</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"101\",\"image\":\"images/Дизайн ногтей/85ulaefremova.jpg\",\"title\":\"\",\"description\":\"<p>нейл-дизайнер</p>\\n<p>Юлия Ефремова</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"102\",\"image\":\"images/Дизайн ногтей/86ulaefremova.jpg\",\"title\":\"\",\"description\":\"<p>нейл-дизайнер</p>\\n<p>Юлия Ефремова</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"103\",\"image\":\"images/Дизайн ногтей/87ulaefremova.jpg\",\"title\":\"\",\"description\":\"<p>нейл-дизайнер</p>\\n<p>Юлия Ефремова</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"104\",\"image\":\"images/Дизайн ногтей/88lenashamatienko.jpg\",\"title\":\"\",\"description\":\"<p>нейл-дизайнер</p>\\n<p>Елена Шаматиенко</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"105\",\"image\":\"images/Дизайн ногтей/89ulaefremova.jpg\",\"title\":\"\",\"description\":\"<p>нейл-дизайнер</p>\\n<p>Юлия Ефремова</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"106\",\"image\":\"images/Дизайн ногтей/90natakislickaya.jpg\",\"title\":\"\",\"description\":\"<p>инструктор</p>\\n<p>Наталья Кислицкая</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"107\",\"image\":\"images/Дизайн ногтей/91ulaefremova.jpg\",\"title\":\"\",\"description\":\"<p>нейл-дизайнер</p>\\n<p>Юлия Ефремова</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"108\",\"image\":\"images/Дизайн ногтей/92ulaefremova.jpg\",\"title\":\"\",\"description\":\"<p>нейл-дизайнер</p>\\n<p>Юлия Ефремова</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"109\",\"image\":\"images/Дизайн ногтей/93innamishenko.jpg\",\"title\":\"\",\"description\":\"<p>инструктор</p>\\n<p>Инна Мищенко</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"110\",\"image\":\"images/Дизайн ногтей/94natamixailenkozap.jpg\",\"title\":\"\",\"description\":\"<p>нейл-дизайнер</p>\\n<p>Наталья Михайленко</p>\\n<p>Запорожье</p>\\n<p> </p>\"},{\"MIGX_id\":\"111\",\"image\":\"images/Дизайн ногтей/95vikaponomarenkozap.jpg\",\"title\":\"\",\"description\":\"<p>нейл-дизайнер</p>\\n<p>Виктория Пономаренко</p>\\n<p>Запорожье</p>\"},{\"MIGX_id\":\"113\",\"image\":\"images/Дизайн ногтей/96vikakuzmenko.jpg\",\"title\":\"\",\"description\":\"<p>нейл-дизайнер</p>\\n<p>Виктория Кузьменко</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"114\",\"image\":\"images/Дизайн ногтей/98marinalopatneva.jpg\",\"title\":\"\",\"description\":\"<p>нейл-дизайнер</p>\\n<p>Марина Лопатнева</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"115\",\"image\":\"images/Дизайн ногтей/97vikaponomarenkozap.jpg\",\"title\":\"\",\"description\":\"<p>нейл-дизайнер</p>\\n<p>Виктория Пономаренко</p>\\n<p>Запорожье</p>\"},{\"MIGX_id\":\"116\",\"image\":\"images/Дизайн ногтей/99natamixailenko.jpg\",\"title\":\"Наталья Михайленко\",\"description\":\"<p>нейл-дизайнер</p>\\n<p>Наталья Михайленко</p>\\n<p>Запорожье</p>\"},{\"MIGX_id\":\"117\",\"image\":\"images/Дизайн ногтей/100elenabolshakova.jpg\",\"title\":\"Елена Большакова\",\"description\":\"<p>нейл-дизайнер</p>\\n<p>Елена Большакова</p>\\n<p>Запорожье</p>\"},{\"MIGX_id\":\"118\",\"image\":\"images/Дизайн ногтей/101alenastrelcova.jpg\",\"title\":\"Алена Стрельцова\",\"description\":\"<p>нейл-дизайнер</p>\\n<p>Алена Стрельцова</p>\\n<p>Киев</p>\"},{\"MIGX_id\":\"119\",\"image\":\"images/Дизайн ногтей/102uliaefremova.jpg\",\"title\":\"Юлия Ефремова\",\"description\":\"<p>инструктор</p>\\n<p>Юлия Ефремова</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"120\",\"image\":\"images/Дизайн ногтей/103oksanailnickaia.jpg\",\"title\":\"Оксана Ильницкая\",\"description\":\"<p>инструктор</p>\\n<p>Оксана Ильницкая</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"121\",\"image\":\"images/Дизайн ногтей/104yliaefremova.jpg\",\"title\":\"Юлия Ефремова\",\"description\":\"<p>инструктор</p>\\n<p>Юлия Ефремова</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"122\",\"image\":\"images/Дизайн ногтей/105marinalopatneva.jpg\",\"title\":\"Марина Лопатнева\",\"description\":\"<p>нейл-дизайнер</p>\\n<p>Марина Лопатнева</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"125\",\"image\":\"images/Дизайн ногтей/108tanianikitenko.jpg\",\"title\":\"Татьяна Никитенко\",\"description\":\"<p>нейл-дизайнер</p>\\n<p>Татьяна Никитенко</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"149\",\"image\":\"images/Дизайн ногтей/106аtaniabadakva.jpg\",\"title\":\"Татьяна Бадаква\",\"description\":\"<p>Татьяна Бадаква</p>\\n<p>нейл-дизайнер</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"127\",\"image\":\"images/Дизайн ногтей/109alenastrelcova.jpg\",\"title\":\"Алена Стрельцова\",\"description\":\"<p>нейл-дизайнер</p>\\n<p>Алена Стрельцова</p>\\n<p>Киев</p>\"},{\"MIGX_id\":\"128\",\"image\":\"images/Дизайн ногтей/110oksanailnickaia.jpg\",\"title\":\"Оксана Ильницкая\",\"description\":\"<p>инструктор</p>\\n<p>Оксана Ильницкая</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"129\",\"image\":\"images/Дизайн ногтей/111tanianikitenko.jpg\",\"title\":\"Татьяна Никитенко\",\"description\":\"<p>нейл-дизайнер</p>\\n<p>Татьяна Никитенко</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"130\",\"image\":\"images/Дизайн ногтей/112uliaefremova.jpg\",\"title\":\"Юлия Ефремова\",\"description\":\"<p>инструктор</p>\\n<p>Юлия Ефремова</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"131\",\"image\":\"images/Дизайн ногтей/117ilinashandura.jpg\",\"title\":\"Илона Шандура\",\"description\":\"<p>нейл-дизайнер</p>\\n<p>Илона Шандура</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"132\",\"image\":\"images/Дизайн ногтей/113uliaefremova.jpg\",\"title\":\"Юлия Ефремова\",\"description\":\"<p>инструктор</p>\\n<p>Юлия Ефремова</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"133\",\"image\":\"images/Дизайн ногтей/118uliaefremova.jpg\",\"title\":\"Юлия Ефремова\",\"description\":\"<p>инструктор</p>\\n<p>Юлия Ефремова</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"135\",\"image\":\"images/Дизайн ногтей/114tanianikitenko.jpg\",\"title\":\"Татьяна Никитенко\",\"description\":\"<p>нейл-дизайнер</p>\\n<p>Татьяна Никитенко</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"136\",\"image\":\"images/Дизайн ногтей/120uliaefremova.jpg\",\"title\":\"\",\"description\":\"<p>инструктор</p>\\n<p>Юлия Ефремова</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"137\",\"image\":\"images/Дизайн ногтей/122uliaefremova.jpg\",\"title\":\"\",\"description\":\"<p>инструктор</p>\\n<p>Юлия Ефремова</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"138\",\"image\":\"images/Дизайн ногтей/121dashasemenova.jpg\",\"title\":\"\",\"description\":\"<p>нейл-дизайнер</p>\\n<p>Дарья Семенова</p>\\n<p>Днепропетровск</p>\"},{\"MIGX_id\":\"139\",\"image\":\"images/Дизайн ногтей/123uliaefremova.jpg\",\"title\":\"\",\"description\":\"<p>нейл-дизайнер</p>\\n<p>Юлия Ефремова</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"140\",\"image\":\"images/Дизайн ногтей/124ilonashandura.jpg\",\"title\":\"Илона Шандура\",\"description\":\"<p>Илона Шандура</p>\\n<p>нейл-дизайнер</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"141\",\"image\":\"images/Дизайн ногтей/125alevtinaefimenko.jpg\",\"title\":\"Алевтина Ефименко\",\"description\":\"<p>Алевтина Ефименко</p>\\n<p>нейл-дизайнер</p>\\n<p>Запорожье</p>\"},{\"MIGX_id\":\"142\",\"image\":\"images/Дизайн ногтей/126oxsanailnickaia.jpg\",\"title\":\"Оксана Ильницкая\",\"description\":\"<p>Оксана Ильницкая</p>\\n<p>инструктор</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"143\",\"image\":\"images/Дизайн ногтей/128dashasemenova.jpg\",\"title\":\"Дарья Семенова\",\"description\":\"<p>Семенова Дарья</p>\\n<p>нейл-дизайнер</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"144\",\"image\":\"images/Дизайн ногтей/127ilinashandura.jpg\",\"title\":\"Илона Шандура\",\"description\":\"<p>Илона Шандура</p>\\n<p>нейл-дизайнер</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"145\",\"image\":\"images/Дизайн ногтей/129ilinashandura.jpg\",\"title\":\"Илона Шандура\",\"description\":\"<p>Илона Шандура</p>\\n<p>нейл-дизайнер</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"146\",\"image\":\"images/Дизайн ногтей/130tanianikitenko.jpg\",\"title\":\"Татьяна Никитенко\",\"description\":\"<p>Татьяна Никитенко</p>\\n<p>нейл-дизайнер</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"147\",\"image\":\"images/Дизайн ногтей/131kornienkoulia.jpg\",\"title\":\"Юлия Корниенко\",\"description\":\"<p>Юлия Корниенко</p>\\n<p>нейл-дизайнер</p>\\n<p>Запорожье</p>\"},{\"MIGX_id\":\"150\",\"image\":\"images/Дизайн ногтей/132ulaefremova.jpg\",\"title\":\"Юлия Ефремова\",\"description\":\"<p>Юлия Ефремова</p>\\n<p>инструктор</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"154\",\"image\":\"images/Дизайн ногтей/140ulaefremova.jpg\",\"title\":\"Юлия Ефремова\",\"description\":\"<p>Юлия Ефремова</p>\\n<p>инструктор</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"155\",\"image\":\"images/Дизайн ногтей/139ulaefremova.jpg\",\"title\":\"Юлия Ефремова\",\"description\":\"<p>Юлия Ефремова</p>\\n<p>инструктор</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"156\",\"image\":\"images/Дизайн ногтей/142ulaefremova.jpg\",\"title\":\"Юлия Ефремова\",\"description\":\"<p>Юлия Ефремова</p>\\n<p>инструктор</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"157\",\"image\":\"images/Дизайн ногтей/136ulaefremova.jpg\",\"title\":\"Юлия Ефремова\",\"description\":\"<p>Юлия Ефремова</p>\\n<p>инструктор</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"158\",\"image\":\"images/Дизайн ногтей/137ulaefremova.jpg\",\"title\":\"Юлия Ефремова\",\"description\":\"<p>Юлия Ефремова</p>\\n<p>инструктор</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"159\",\"image\":\"images/Дизайн ногтей/138ulaefremova.jpg\",\"title\":\"Юлия Ефремова\",\"description\":\"<p>Юлия Ефремова</p>\\n<p>инструктор</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"160\",\"image\":\"images/Дизайн ногтей/141ulaefremova.jpg\",\"title\":\"Юлия Ефремова\",\"description\":\"<p>Юлия Ефремова</p>\\n<p>инструктор</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"161\",\"image\":\"images/Дизайн ногтей/143ulaefremova.jpg\",\"title\":\"Юлия Ефремова\",\"description\":\"<p>Юлия Ефремова</p>\\n<p>инструктор</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"162\",\"image\":\"images/Дизайн ногтей/144evgeniasalova.jpg\",\"title\":\"Евгения Салова\",\"description\":\"<p>Евгения Салова</p>\\n<p>нейл-дизайнер</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"163\",\"image\":\"images/Дизайн ногтей/145tanianikitenko.jpg\",\"title\":\"Татьяна Никитенко\",\"description\":\"<p>Татьяна Никитенко</p>\\n<p>нейл-дизайнер</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"164\",\"image\":\"images/Дизайн ногтей/146olgakotova.jpg\",\"title\":\"Ольга Котова\",\"description\":\"<p>Ольга Котова</p>\\n<p>нейл-дизайнер</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"165\",\"image\":\"images/Дизайн ногтей/147semenovaira.jpg\",\"title\":\"Семёнова Ирина\",\"description\":\"<p>Семёнова Ирина</p>\\n<p>нейл-дизайнер</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"166\",\"image\":\"images/Дизайн ногтей/148ulaefremova.jpg\",\"title\":\"Юлия Ефремова\",\"description\":\"<p>Юлия Ефремова</p>\\n<p>инструктор</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"167\",\"image\":\"images/Дизайн ногтей/149ulaefremova.jpg\",\"title\":\"Юлия Ефремова\",\"description\":\"<p>Юлия Ефремова</p>\\n<p>инструктор</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"168\",\"image\":\"images/Дизайн ногтей/150efimenkoalevtina.jpg\",\"title\":\"Алевтина Ефименко\",\"description\":\"<p>Алевтина Ефименко</p>\\n<p>нейл-дизайнер</p>\\n<p>Запорожье</p>\"},{\"MIGX_id\":\"169\",\"image\":\"images/Дизайн ногтей/151shandurailona.jpg\",\"title\":\"Илона Шандура\",\"description\":\"<p>Илона Шандура</p>\\n<p>нейл-дизайнер</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"170\",\"image\":\"images/Дизайн ногтей/152ulaefremova.jpg\",\"title\":\"Юлия Ефремова\",\"description\":\"<p>Юлия Ефремова</p>\\n<p>инструктор</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"171\",\"image\":\"images/Дизайн ногтей/153lopatnevamarina.jpg\",\"title\":\"Марина Лопатнева\",\"description\":\"<p>Марина Лопатнева</p>\\n<p>нейл-дизайнер</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"172\",\"image\":\"images/Дизайн ногтей/154ulaefremova.jpg\",\"title\":\"Юлия Ефремова\",\"description\":\"<p>Юлия Ефремова</p>\\n<p>инструктор</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"173\",\"image\":\"images/Дизайн ногтей/155ulaefremova.jpg\",\"title\":\"Юлия Ефремова\",\"description\":\"<p>Юлия Ефремова</p>\\n<p>инструктор</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"174\",\"image\":\"images/Дизайн ногтей/156nikitenkotania.jpg\",\"title\":\"Татьяна Никитенко\",\"description\":\"<p>Татьяна Никитенко</p>\\n<p>нейл-дизайнер</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"175\",\"image\":\"images/Дизайн ногтей/157ulaefremova.jpg\",\"title\":\"Юлия Ефремова\",\"description\":\"<p>Юлия Ефремова</p>\\n<p>инструктор</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"176\",\"image\":\"images/Дизайн ногтей/158ulaefremova.jpg\",\"title\":\"Юлия Ефремова\",\"description\":\"<p>Юлия Ефремова</p>\\n<p>инструктор</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"177\",\"image\":\"images/Дизайн ногтей/159ulaefremova.jpg\",\"title\":\"Юлия Ефремова\",\"description\":\"<p>Юлия Ефремова</p>\\n<p>инструктор</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"178\",\"image\":\"images/Дизайн ногтей/160ulaefremova.jpg\",\"title\":\"Юлия Ефремова\",\"description\":\"<p>Юлия Ефремова</p>\\n<p>инструктор</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"179\",\"image\":\"images/Дизайн ногтей/161ulaefremova.jpg\",\"title\":\"Юлия Ефремова\",\"description\":\"<p>Юлия Ефремова</p>\\n<p>инструктор</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"180\",\"image\":\"images/Дизайн ногтей/162semenovaira.jpg\",\"title\":\"Ирина Семенова\",\"description\":\"<p>Ирина Семенова</p>\\n<p>нейл-дизайнер</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"181\",\"image\":\"images/Дизайн ногтей/163ulaefremova.jpg\",\"title\":\"Юлия Ефремова\",\"description\":\"<p>Юлия Ефремова</p>\\n<p>инструктор</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"182\",\"image\":\"images/Дизайн ногтей/164olgakotova.jpg\",\"title\":\"Ольга Котова\",\"description\":\"<p>Ольга Котова</p>\\n<p>нейл-дизайнер</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"183\",\"image\":\"images/Дизайн ногтей/165ulaefremova.jpg\",\"title\":\"Юлия Ефремова\",\"description\":\"<p>Юлия Ефремова</p>\\n<p>инструктор</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"184\",\"image\":\"images/Дизайн ногтей/166ulaefremova.jpg\",\"title\":\"Юлия Ефремова\",\"description\":\"<p>Юлия Ефремова</p>\\n<p>инструктор</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"185\",\"image\":\"images/Дизайн ногтей/167ulaefremova.jpg\",\"title\":\"Юлия Ефремова\",\"description\":\"<p>Юлия Ефремова</p>\\n<p>инструктор</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"186\",\"image\":\"images/Дизайн ногтей/168ulaefremova.jpg\",\"title\":\"Юлия Ефремова\",\"description\":\"<p>Юлия Ефремова</p>\\n<p>инструктор</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"187\",\"image\":\"images/Дизайн ногтей/169ulaefremova.jpg\",\"title\":\"Юлия Ефремова\",\"description\":\"<p>Юлия Ефремова</p>\\n<p>инструктор</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"188\",\"image\":\"images/Дизайн ногтей/170 shandurailona.jpg\",\"title\":\"Илона Шандура\",\"description\":\"<p>Илона Шандура</p>\\n<p>нейл-дизайнер</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"189\",\"image\":\"images/Дизайн ногтей/175olgakotova.jpg\",\"title\":\"Ольга Котова\",\"description\":\"<p>Ольга Котова</p>\\n<p>нейл-дизайнер</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"190\",\"image\":\"images/Дизайн ногтей/174marinalopatneva.jpg\",\"title\":\"Марина Лопатнева\",\"description\":\"<p>Марина Лопатнева</p>\\n<p>нейл-дизайнер</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"191\",\"image\":\"images/Дизайн ногтей/171ulaefremova.jpg\",\"title\":\"Юлия Ефремова\",\"description\":\"<p>Юлия Ефремова</p>\\n<p>инструктор</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"192\",\"image\":\"images/Дизайн ногтей/172ulaefremova.jpg\",\"title\":\"Юлия Ефремова\",\"description\":\"<p>Юлия Ефремова</p>\\n<p>инструктор</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"193\",\"image\":\"images/Дизайн ногтей/173olgakotova.jpg\",\"title\":\"Ольга Котова\",\"description\":\"<p>Ольга Котова</p>\\n<p>нейл-дизайнер</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"194\",\"image\":\"images/Дизайн ногтей/177marinalopatneva.jpg\",\"title\":\"Марина Лопатнева\",\"description\":\"<p>Марина Лопатнева</p>\\n<p>нейл-дизайнер</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"195\",\"image\":\"images/Дизайн ногтей/176ulaefremova.jpg\",\"title\":\"Юлия Ефремова\",\"description\":\"<p>Юлия Ефремова</p>\\n<p>инструктор</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"196\",\"image\":\"images/Дизайн ногтей/178 shandurailona.jpg\",\"title\":\"Илона Шандура\",\"description\":\"<p>Илона Шандура</p>\\n<p>нейл-дизайнер</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"197\",\"image\":\"images/Дизайн ногтей/179evgeniasalova.jpg\",\"title\":\"Евгения Салова\",\"description\":\"<p>Евгения Салова</p>\\n<p>нейл-дизайнер</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"198\",\"image\":\"images/Дизайн ногтей/180juliamalovitskaia.jpg\",\"title\":\"Юлия Маловицкая\",\"description\":\"<p>Юлия Маловицкая</p>\\n<p>нейл-дизайнер</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"199\",\"image\":\"images/Дизайн ногтей/181olgakotova.jpg\",\"title\":\"Ольга Котова\",\"description\":\"<p>Ольга Котова</p>\\n<p>нейл-дизайнер</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"200\",\"image\":\"images/Дизайн ногтей/182 shandurailona.jpg\",\"title\":\"Илона Шандура\",\"description\":\"<p>Илона Шандура</p>\\n<p>нейл-дизайнер</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"201\",\"image\":\"images/Дизайн ногтей/183oxsanailnickaia.jpg\",\"title\":\"Оксана Ильницкая\",\"description\":\"<p>Оксана Ильницкая</p>\\n<p>инструктор</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"202\",\"image\":\"images/Дизайн ногтей/184ulaefremova.jpg\",\"title\":\"Юлия Ефремова\",\"description\":\"<p>Юлия Ефремова</p>\\n<p>инструктор</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"203\",\"image\":\"images/Дизайн ногтей/185ulaefremova (2).jpg\",\"title\":\"Юлия Ефремова\",\"description\":\"<p>Юлия Ефремова</p>\\n<p>инструктор </p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"204\",\"image\":\"images/Дизайн ногтей/186ulaefremova.jpg\",\"title\":\"Юлия Ефремова\",\"description\":\"<p>Юлия Ефремова</p>\\n<p>инструктор</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"205\",\"image\":\"images/Дизайн ногтей/187oxsanailnickaia.jpg\",\"title\":\"Оксана Ильницкая\",\"description\":\"<p>Оксана Ильницкая</p>\\n<p>инструктор</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"206\",\"image\":\"images/Дизайн ногтей/188oxsanailnickaia.jpg\",\"title\":\"Оксана Ильницкая\",\"description\":\"<p>Оксана Ильницкая</p>\\n<p>инструктор</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"207\",\"image\":\"images/Дизайн ногтей/189olgakotova.jpg\",\"title\":\"Ольга Котова\",\"description\":\"<p>Ольга Котова</p>\\n<p>нейл-дизайнер</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"208\",\"image\":\"images/Дизайн ногтей/200 shandurailona.jpg\",\"title\":\"Илона Шандура\",\"description\":\"<p>Илона Шандура</p>\\n<p>нейл-дизайнер</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"209\",\"image\":\"images/Дизайн ногтей/201evgeniasalova.jpg\",\"title\":\"Евгения Салова\",\"description\":\"<p>Евгения Салова</p>\\n<p>нейл-дизайнер</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"210\",\"image\":\"images/Дизайн ногтей/202evgeniasalova.jpg\",\"title\":\"Евгения Салова\",\"description\":\"<p>Евгения Салова</p>\\n<p>нейл-дизайнер</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"211\",\"image\":\"images/Дизайн ногтей/203evgeniasalova.jpg\",\"title\":\"Евгения Салова\",\"description\":\"<p>Евгения Салова</p>\\n<p>нейл-дизайнер </p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"212\",\"image\":\"images/Дизайн ногтей/204dariasemenova.jpg\",\"title\":\"Дарья Семенова\",\"description\":\"<p>Дарья Семенова</p>\\n<p>нейл-дизайнер</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"213\",\"image\":\"images/Дизайн ногтей/205_oxanagrinenko.jpg\",\"title\":\"Оксана Гриненко\",\"description\":\"<p>Оксана Гриненко</p>\\n<p>нейл-дизайнер</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"214\",\"image\":\"images/Дизайн ногтей/206_oxanagrinenko.jpg\",\"title\":\"Оксана Гриненко\",\"description\":\"<p>Оксана Гриненко</p>\\n<p>нейл-дизайнер</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"215\",\"image\":\"images/Дизайн ногтей/207_oxanagrinenko.jpg\",\"title\":\"Оксана Гриненко\",\"description\":\"<p>Оксана Гриненко</p>\\n<p>нейл-дизайнер</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"216\",\"image\":\"images/Дизайн ногтей/208_oxanagrinenko.jpg\",\"title\":\"Оксана Гриненко\",\"description\":\"<p>Оксана Гриненко</p>\\n<p>нейл-дизайнер</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"217\",\"image\":\"images/Дизайн ногтей/212_oxanagrinenko.jpg\",\"title\":\"Оксана Гриненко\",\"description\":\"<p>Оксана Гриненко</p>\\n<p>нейл-дизайнер</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"218\",\"image\":\"images/Дизайн ногтей/210 shandurailona.jpg\",\"title\":\"Илона Шандура\",\"description\":\"<p>Илона Шандура</p>\\n<p>нейл-дизайнер</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"219\",\"image\":\"images/Дизайн ногтей/209 shandurailona.jpg\",\"title\":\"Илона Шандура\",\"description\":\"<p>Илона Шандура</p>\\n<p>нейл-дизайнер</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"220\",\"image\":\"images/Дизайн ногтей/211_shabalinanata.jpg\",\"title\":\"Наталья Шабалина\",\"description\":\"<p>Наталья Шабалина</p>\\n<p>нейл-дизайнер</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"221\",\"image\":\"images/Дизайн ногтей/213 shandurailona.jpg\",\"title\":\"Илона Шандура\",\"description\":\"<p>Илона Шандура</p>\\n<p>нейл-дизайнер</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"222\",\"image\":\"images/Дизайн ногтей/214 shandurailona.jpg\",\"title\":\"Илона Шандура\",\"description\":\"<p>Илона Шандура</p>\\n<p>нейл-дизайнер</p>\\n<p>Днепр</p>\"},{\"MIGX_id\":\"223\",\"image\":\"images/Дизайн ногтей/215kornienkotania.jpg\",\"title\":\"Татьяна Корниенко\",\"description\":\"<p>Татьяна Корниенко</p>\\n<p>нейл-дизайнер</p>\\n<p>Днепр</p>\"}]'),(114,1,27,'[{\"MIGX_id\":\"14\",\"image\":\"images\\/\\u041a\\u043e\\u0440\\u043e\\u043b\\u0435\\u043d\\u043a\\u043e\\/11.jpg\",\"title\":\"\"},{\"MIGX_id\":\"13\",\"image\":\"images\\/\\u041a\\u043e\\u0440\\u043e\\u043b\\u0435\\u043d\\u043a\\u043e\\/10.jpg\",\"title\":\"\"},{\"MIGX_id\":\"12\",\"image\":\"images\\/\\u041a\\u043e\\u0440\\u043e\\u043b\\u0435\\u043d\\u043a\\u043e\\/9.jpg\",\"title\":\"\"},{\"MIGX_id\":\"11\",\"image\":\"images\\/\\u041a\\u043e\\u0440\\u043e\\u043b\\u0435\\u043d\\u043a\\u043e\\/8.jpg\",\"title\":\"\"},{\"MIGX_id\":\"10\",\"image\":\"images\\/\\u041a\\u043e\\u0440\\u043e\\u043b\\u0435\\u043d\\u043a\\u043e\\/7.jpg\",\"title\":\"\"},{\"MIGX_id\":\"9\",\"image\":\"images\\/\\u041a\\u043e\\u0440\\u043e\\u043b\\u0435\\u043d\\u043a\\u043e\\/6\\u0430.jpg\",\"title\":\"\"},{\"MIGX_id\":\"8\",\"image\":\"images\\/\\u041a\\u043e\\u0440\\u043e\\u043b\\u0435\\u043d\\u043a\\u043e\\/5\\u0430.jpg\",\"title\":\"\"},{\"MIGX_id\":\"7\",\"image\":\"images\\/\\u041a\\u043e\\u0440\\u043e\\u043b\\u0435\\u043d\\u043a\\u043e\\/4\\u0430.jpg\",\"title\":\"\"},{\"MIGX_id\":\"6\",\"image\":\"images\\/\\u041a\\u043e\\u0440\\u043e\\u043b\\u0435\\u043d\\u043a\\u043e\\/3\\u0430.jpg\",\"title\":\"\"},{\"MIGX_id\":\"4\",\"image\":\"images\\/\\u041a\\u043e\\u0440\\u043e\\u043b\\u0435\\u043d\\u043a\\u043e\\/1.jpg\",\"title\":\"\"},{\"MIGX_id\":\"18\",\"image\":\"images\\/\\u041a\\u043e\\u0440\\u043e\\u043b\\u0435\\u043d\\u043a\\u043e\\/2g.jpg\",\"title\":\"\"}]'),(115,1,50,'[{\"MIGX_id\":\"11\",\"image\":\"images\\/\\u0427\\u043a\\u0430\\u043b\\u043e\\u0432\\u0430\\/11.jpg\",\"title\":\"\"},{\"MIGX_id\":\"10\",\"image\":\"images\\/\\u0427\\u043a\\u0430\\u043b\\u043e\\u0432\\u0430\\/10.jpg\",\"title\":\"\"},{\"MIGX_id\":\"9\",\"image\":\"images\\/\\u0427\\u043a\\u0430\\u043b\\u043e\\u0432\\u0430\\/9.jpg\",\"title\":\"\"},{\"MIGX_id\":\"8\",\"image\":\"images\\/\\u0427\\u043a\\u0430\\u043b\\u043e\\u0432\\u0430\\/8.jpg\",\"title\":\"\"},{\"MIGX_id\":\"7\",\"image\":\"images\\/\\u0427\\u043a\\u0430\\u043b\\u043e\\u0432\\u0430\\/7.jpg\",\"title\":\"\"},{\"MIGX_id\":\"6\",\"image\":\"images\\/\\u0427\\u043a\\u0430\\u043b\\u043e\\u0432\\u0430\\/6.jpg\",\"title\":\"\"},{\"MIGX_id\":\"5\",\"image\":\"images\\/\\u0427\\u043a\\u0430\\u043b\\u043e\\u0432\\u0430\\/5.jpg\",\"title\":\"\"},{\"MIGX_id\":\"4\",\"image\":\"images\\/\\u0427\\u043a\\u0430\\u043b\\u043e\\u0432\\u0430\\/4.jpg\",\"title\":\"\"},{\"MIGX_id\":\"3\",\"image\":\"images\\/\\u0427\\u043a\\u0430\\u043b\\u043e\\u0432\\u0430\\/3.jpg\",\"title\":\"\"},{\"MIGX_id\":\"2\",\"image\":\"images\\/\\u0427\\u043a\\u0430\\u043b\\u043e\\u0432\\u0430\\/2.jpg\",\"title\":\"\"},{\"MIGX_id\":\"14\",\"image\":\"images\\/\\u0427\\u043a\\u0430\\u043b\\u043e\\u0432\\u0430\\/14.jpg\",\"title\":\"\"}]'),(116,1,35,'[{\"MIGX_id\":\"10\",\"image\":\"images\\/\\u0417\\u0430\\u043f\\u043e\\u0440\\u043e\\u0436\\u044c\\u0435\\/10\\u0430.jpg\",\"title\":\"\"},{\"MIGX_id\":\"11\",\"image\":\"images\\/\\u0417\\u0430\\u043f\\u043e\\u0440\\u043e\\u0436\\u044c\\u0435\\/11\\u0430.jpg\",\"title\":\"\"},{\"MIGX_id\":\"8\",\"image\":\"images\\/\\u0417\\u0430\\u043f\\u043e\\u0440\\u043e\\u0436\\u044c\\u0435\\/8\\u0430.jpg\",\"title\":\"\"},{\"MIGX_id\":\"7\",\"image\":\"images\\/\\u0417\\u0430\\u043f\\u043e\\u0440\\u043e\\u0436\\u044c\\u0435\\/7\\u0430.jpg\",\"title\":\"\"},{\"MIGX_id\":\"6\",\"image\":\"images\\/\\u0417\\u0430\\u043f\\u043e\\u0440\\u043e\\u0436\\u044c\\u0435\\/6\\u0430.jpg\",\"title\":\"\"},{\"MIGX_id\":\"5\",\"image\":\"images\\/\\u0417\\u0430\\u043f\\u043e\\u0440\\u043e\\u0436\\u044c\\u0435\\/5\\u0430.jpg\",\"title\":\"\"},{\"MIGX_id\":\"4\",\"image\":\"images\\/\\u0417\\u0430\\u043f\\u043e\\u0440\\u043e\\u0436\\u044c\\u0435\\/4\\u0430.jpg\",\"title\":\"\"},{\"MIGX_id\":\"3\",\"image\":\"images\\/\\u0417\\u0430\\u043f\\u043e\\u0440\\u043e\\u0436\\u044c\\u0435\\/3\\u0430.jpg\",\"title\":\"\"},{\"MIGX_id\":\"2\",\"image\":\"images\\/\\u0417\\u0430\\u043f\\u043e\\u0440\\u043e\\u0436\\u044c\\u0435\\/2\\u0430.jpg\",\"title\":\"\"},{\"MIGX_id\":\"13\",\"image\":\"images\\/\\u0417\\u0430\\u043f\\u043e\\u0440\\u043e\\u0436\\u044c\\u0435\\/1\\u0431.jpg\",\"title\":\"\"}]'),(117,1,55,'[{\"MIGX_id\":\"5\",\"image\":\"images\\/\\u041d\\u043e\\u043a\\u0442\\u044e\\u0440\\u043d\\/5.jpg\",\"title\":\"\"},{\"MIGX_id\":\"4\",\"image\":\"images\\/\\u041d\\u043e\\u043a\\u0442\\u044e\\u0440\\u043d\\/4.jpg\",\"title\":\"\"},{\"MIGX_id\":\"3\",\"image\":\"images\\/\\u041d\\u043e\\u043a\\u0442\\u044e\\u0440\\u043d\\/3.jpg\",\"title\":\"\"},{\"MIGX_id\":\"2\",\"image\":\"images\\/\\u041d\\u043e\\u043a\\u0442\\u044e\\u0440\\u043d\\/2.jpg\",\"title\":\"\"},{\"MIGX_id\":\"1\",\"image\":\"images\\/\\u041d\\u043e\\u043a\\u0442\\u044e\\u0440\\u043d\\/1.jpg\",\"title\":\"\"}]'),(118,1,60,'[{\"MIGX_id\":\"2\",\"image\":\"images\\/\\u0420\\u043e\\u043d\\u0434\\u043e\\/5.jpg\",\"title\":\"\"},{\"MIGX_id\":\"3\",\"image\":\"images\\/\\u0420\\u043e\\u043d\\u0434\\u043e\\/4.jpg\",\"title\":\"\"},{\"MIGX_id\":\"4\",\"image\":\"images\\/\\u0420\\u043e\\u043d\\u0434\\u043e\\/3.jpg\",\"title\":\"\"},{\"MIGX_id\":\"5\",\"image\":\"images\\/\\u0420\\u043e\\u043d\\u0434\\u043e\\/2.jpg\",\"title\":\"\"},{\"MIGX_id\":\"1\",\"image\":\"images\\/\\u0420\\u043e\\u043d\\u0434\\u043e\\/1.jpg\",\"title\":\"\"}]'),(119,5,57,'[{\"MIGX_id\":\"18\",\"image\":\"images/Ноктюрн/olgalitvinenko.jpg\",\"title\":\"Ольга Литвиненко\",\"description\":\"<p>Ольга Литвиненко</p>\\n<p>администратор</p>\"},{\"MIGX_id\":\"15\",\"image\":\"images/Ноктюрн/ludabelaia.jpg\",\"title\":\"Людмила Белая\",\"description\":\"<p>Людмила Белая</p>\\n<p>администратор</p>\"},{\"MIGX_id\":\"13\",\"image\":\"images/Ноктюрн/elenasnigkovskaia.jpg\",\"title\":\"Елена Снижковская\",\"description\":\"<p>Елена Снижковская</p>\\n<p>мужской мастер</p>\"},{\"MIGX_id\":\"14\",\"image\":\"images/Ноктюрн/lenashmarova.jpg\",\"title\":\"Елена Шмарова\",\"description\":\"<p>Елена Шмарова</p>\\n<p>нейл-дизайнер</p>\"},{\"MIGX_id\":\"2\",\"image\":\"images/Ноктюрн/natapavlova.jpg\",\"title\":\"Наталья Павлова\",\"description\":\"<p>Наталья Павлова</p>\\n<p>мужской мастер</p>\"},{\"MIGX_id\":\"19\",\"image\":\"images/Ноктюрн/vikatkachenko.jpg\",\"title\":\"Виктория Ткаченко\",\"description\":\"<p>Виктория Ткаченко</p>\\n<p>мужской мастер</p>\"},{\"MIGX_id\":\"9\",\"image\":\"images/Ноктюрн/svetabondar.jpg\",\"title\":\"Светлана Бондарь\",\"description\":\"<p>Светлана Бондарь</p>\\n<p><span style=\\\"line-height: 1.5em;\\\">мужской мастер</span></p>\"},{\"MIGX_id\":\"12\",\"image\":\"images/Ноктюрн/ulianedostup.jpg\",\"title\":\"Анжела Гурич\",\"description\":\"<p>Анжела Гурич</p>\\n<p>женский мастер</p>\"},{\"MIGX_id\":\"17\",\"image\":\"images/Ноктюрн/ritamolchanova.jpg\",\"title\":\"Маргарита Молчанова\",\"description\":\"<p>Маргарита Молчанова</p>\\n<p>женский мастер</p>\"},{\"MIGX_id\":\"20\",\"image\":\"images/Ноктюрн/lenasimakova.jpg\",\"title\":\"Алена Симакова\",\"description\":\"<p>Алена Симакова</p>\\n<p>женский мастер</p>\"},{\"MIGX_id\":\"3\",\"image\":\"images/Ноктюрн/anjelagurich.jpg\",\"title\":\"Юлия Недоступ\",\"description\":\"<p>Юлия Недоступ</p>\\n<p>женский мастер</p>\"}]'),(121,5,62,'[{\"MIGX_id\":\"8\",\"image\":\"images/Рондо/natasha.jpg\",\"title\":\"Наталья Ганистрат\",\"description\":\"<p>Наталья Ганистрат</p>\\n<p>нейл-дизайнер</p>\"},{\"MIGX_id\":\"1\",\"image\":\"images/Рондо/annaleskova.jpg\",\"title\":\"Анна Лескова\",\"description\":\"<p>Анна Лескова</p>\\n<p>Женский мастер</p>\"},{\"MIGX_id\":\"4\",\"image\":\"images/Рондо/alinastarikova.jpg\",\"title\":\"Галина Старикова\",\"description\":\"<p>Галина Старикова</p>\\n<p>Мужской мастер</p>\"},{\"MIGX_id\":\"5\",\"image\":\"images/Рондо/maiamuravieva.jpg\",\"title\":\"Майа Муравьева\",\"description\":\"<p>Майа Муравьева</p>\\n<p>Мужской мастер</p>\"}]'),(122,1,31,'[{\"MIGX_id\":\"6\",\"image\":\"images\\/\\u0414\\u043e\\u043d\\u0435\\u0446\\u043a\\/5.jpg\",\"title\":\"\"},{\"MIGX_id\":\"3\",\"image\":\"images\\/\\u0414\\u043e\\u043d\\u0435\\u0446\\u043a\\/3.jpg\",\"title\":\"\"},{\"MIGX_id\":\"8\",\"image\":\"images\\/\\u0414\\u043e\\u043d\\u0435\\u0446\\u043a\\/6a.jpg\",\"title\":\"\"},{\"MIGX_id\":\"7\",\"image\":\"images\\/\\u0414\\u043e\\u043d\\u0435\\u0446\\u043a\\/11a.jpg\",\"title\":\"\"},{\"MIGX_id\":\"5\",\"image\":\"images\\/\\u0414\\u043e\\u043d\\u0435\\u0446\\u043a\\/6.jpg\",\"title\":\"\"},{\"MIGX_id\":\"4\",\"image\":\"images\\/\\u0414\\u043e\\u043d\\u0435\\u0446\\u043a\\/4.jpg\",\"title\":\"\"},{\"MIGX_id\":\"2\",\"image\":\"images\\/\\u0414\\u043e\\u043d\\u0435\\u0446\\u043a\\/2.jpg\",\"title\":\"\"},{\"MIGX_id\":\"1\",\"image\":\"images\\/\\u0414\\u043e\\u043d\\u0435\\u0446\\u043a\\/1.jpg\",\"title\":\"\"}]'),(125,4,66,'images/interier.jpg'),(124,1,39,'[{\"MIGX_id\":\"4\",\"image\":\"images/Киев/10а.jpg\",\"title\":\"\"},{\"MIGX_id\":\"5\",\"image\":\"images/Киев/9а.jpg\",\"title\":\"\"},{\"MIGX_id\":\"6\",\"image\":\"images/Киев/8а.jpg\",\"title\":\"\"},{\"MIGX_id\":\"7\",\"image\":\"images/Киев/7а.jpg\",\"title\":\"\"},{\"MIGX_id\":\"8\",\"image\":\"images/Киев/6а.jpg\",\"title\":\"\"},{\"MIGX_id\":\"16\",\"image\":\"images/Киев/5b.jpg\",\"title\":\"\"},{\"MIGX_id\":\"10\",\"image\":\"images/Киев/4а.jpg\",\"title\":\"\"},{\"MIGX_id\":\"15\",\"image\":\"images/Киев/3b.jpg\",\"title\":\"\"},{\"MIGX_id\":\"12\",\"image\":\"images/Киев/2а.jpg\",\"title\":\"\"},{\"MIGX_id\":\"14\",\"image\":\"images/Киев/11.jpg\",\"title\":\"\"}]'),(127,6,66,'48.466109'),(128,7,66,'35.055200'),(131,6,69,'48.4622985'),(132,7,69,'35.0003565'),(133,8,69,'12'),(134,1,66,'[{\"MIGX_id\":\"7\",\"image\":\"images\\/\\u0411\\u0430\\u0443\\u043c\\u0430\\u043d\\u0430\\/13.jpg\",\"title\":\"\\u0418\\u043d\\u0442\\u0435\\u0440\\u044c\\u0435\\u0440 13\"},{\"MIGX_id\":\"8\",\"image\":\"images\\/\\u0411\\u0430\\u0443\\u043c\\u0430\\u043d\\u0430\\/12.jpg\",\"title\":\"\\u0418\\u043d\\u0442\\u0435\\u0440\\u044c\\u0435\\u0440 12\"},{\"MIGX_id\":\"9\",\"image\":\"images\\/\\u0411\\u0430\\u0443\\u043c\\u0430\\u043d\\u0430\\/11.jpg\",\"title\":\"\\u0418\\u043d\\u0442\\u0435\\u0440\\u044c\\u0435\\u0440 11\"},{\"MIGX_id\":\"10\",\"image\":\"images\\/\\u0411\\u0430\\u0443\\u043c\\u0430\\u043d\\u0430\\/10.jpg\",\"title\":\"\\u0418\\u043d\\u0442\\u0435\\u0440\\u044c\\u0435\\u0440 10\"},{\"MIGX_id\":\"11\",\"image\":\"images\\/\\u0411\\u0430\\u0443\\u043c\\u0430\\u043d\\u0430\\/7.jpg\",\"title\":\"\\u0418\\u043d\\u0442\\u0435\\u0440\\u044c\\u0435\\u0440 9\"},{\"MIGX_id\":\"12\",\"image\":\"images\\/\\u0411\\u0430\\u0443\\u043c\\u0430\\u043d\\u0430\\/8.jpg\",\"title\":\"\\u0418\\u043d\\u0442\\u0435\\u0440\\u044c\\u0435\\u0440 8\"},{\"MIGX_id\":\"13\",\"image\":\"images\\/\\u0411\\u0430\\u0443\\u043c\\u0430\\u043d\\u0430\\/9.jpg\",\"title\":\"\\u0418\\u043d\\u0442\\u0435\\u0440\\u044c\\u0435\\u0440 7\"},{\"MIGX_id\":\"14\",\"image\":\"images\\/\\u0411\\u0430\\u0443\\u043c\\u0430\\u043d\\u0430\\/6.jpg\",\"title\":\"\\u0418\\u043d\\u0442\\u0435\\u0440\\u044c\\u0435\\u0440 6\"},{\"MIGX_id\":\"15\",\"image\":\"images\\/\\u0411\\u0430\\u0443\\u043c\\u0430\\u043d\\u0430\\/5.jpg\",\"title\":\"\\u0418\\u043d\\u0442\\u0435\\u0440\\u044c\\u0435\\u0440 5\"},{\"MIGX_id\":\"16\",\"image\":\"images\\/\\u0411\\u0430\\u0443\\u043c\\u0430\\u043d\\u0430\\/3.jpg\",\"title\":\"\\u0418\\u043d\\u0442\\u0435\\u0440\\u044c\\u0435\\u0440 4\"},{\"MIGX_id\":\"17\",\"image\":\"images\\/\\u0411\\u0430\\u0443\\u043c\\u0430\\u043d\\u0430\\/2.jpg\",\"title\":\"\\u0418\\u043d\\u0442\\u0435\\u0440\\u044c\\u0435\\u0440 3\"},{\"MIGX_id\":\"18\",\"image\":\"images\\/\\u0411\\u0430\\u0443\\u043c\\u0430\\u043d\\u0430\\/1.jpg\",\"title\":\"\\u0418\\u043d\\u0442\\u0435\\u0440\\u044c\\u0435\\u0440 2\"},{\"MIGX_id\":\"20\",\"image\":\"images\\/\\u0411\\u0430\\u0443\\u043c\\u0430\\u043d\\u0430\\/1_\\u0430.jpg\",\"title\":\"\\u0418\\u043d\\u0442\\u0435\\u0440\\u044c\\u0435\\u0440 1\\u0430\"}]'),(135,5,68,'[{\"MIGX_id\":\"12\",\"image\":\"images/Баумана/lisenkogalina.jpg\",\"title\":\"Галина Лысенко\",\"description\":\"<p>Галина Лысенко</p>\\n<p>администратор</p>\"},{\"MIGX_id\":\"9\",\"image\":\"images/Баумана/olgasadovnikova.jpg\",\"title\":\"Ольга Садовникова\",\"description\":\"<p>Ольга Садовникова</p>\\n<p>мастер педикюра</p>\"},{\"MIGX_id\":\"4\",\"image\":\"images/Баумана/katiamoskalenko.jpg\",\"title\":\"Катерина Москаленко\",\"description\":\"<p>Катерина Москаленко</p>\\n<p>мастер педикюра</p>\"},{\"MIGX_id\":\"1\",\"image\":\"images/Баумана/ritamolchanova.jpg\",\"title\":\"Маргарита Молчанова\",\"description\":\"<p>Маргарита Молчанова</p>\\n<p>парикмахер-универсал</p>\"},{\"MIGX_id\":\"2\",\"image\":\"images/Баумана/natapavlova.jpg\",\"title\":\"Наталья Павлова\",\"description\":\"<p>Наталья Павлова</p>\\n<p>парикмахер-универсал</p>\"},{\"MIGX_id\":\"11\",\"image\":\"images/Чкалова/Таня Никитенко.jpg\",\"title\":\"Татьяна Никитенко\",\"description\":\"<p>Татьяна Никитенко</p>\\n<p>нейл-дизайнер</p>\"},{\"MIGX_id\":\"13\",\"image\":\"images/Баумана/shepelsveta.jpg\",\"title\":\"Светлана Шепель\",\"description\":\"<p>Светлана Шепель</p>\\n<p>нейл-дизайнер</p>\"},{\"MIGX_id\":\"14\",\"image\":\"images/Короленко/salovaevgenia.jpg\",\"title\":\"Евгения Салова\",\"description\":\"<p>Евгения Салова</p>\\n<p>нейл-дизайнер</p>\"},{\"MIGX_id\":\"15\",\"image\":\"images/Баумана/taniakornienko.jpg\",\"title\":\"Татьяна Корниенко\",\"description\":\"<p>Татьяна Корниенко</p>\\n<p>нейл-дизайнер</p>\"},{\"MIGX_id\":\"16\",\"image\":\"images/Баумана/ilonashandura2.jpg\",\"title\":\"Илона Шандура\",\"description\":\"<p>Илона Шандура</p>\\n<p>нейл-дизайнер</p>\"}]');

--
