log)) $io->log->addMessage ($class_name . ' not found', 'autoload'); eval ('class ' . $class_name . '{ public $is_phantom = true; }'); } // not found else { // not found if (isset ($io->log)) $io->log->addMessage ($class_name . ' not found', 'autoload'); eval ('class ' . $class_name . ' extends eclClass_' . strtolower( substr ($prefix, 3)) . '{ public $is_phantom = true; }'); } // not found return; } // do not include external scripts $ob_length = ob_get_length(); if (isset ($aliases[$component]) and isset ($components[$aliases[$component]])) { // include from component $path = PATH_COMPONENTS . $aliases[$component] . '/' . $components[$aliases[$component]] . '/' . $component . '/' . $class_name . '.php'; if (is_file ($path)) { // file found include $path; return; } // file found if (count ($parts) > 2) { // try subdirectory $path = PATH_COMPONENTS . $aliases[$component] . '/' . $components[$aliases[$component]] . '/' . $component . '/' . $parts[2] . '/' . $class_name . '.php'; if (is_file ($path)) { // file found include $path; return; } // file found } // try subdirectory } // include from component if (is_file (PATH_ENGINE . $prefix . '/' . $class_name . '.php')) include PATH_ENGINE . $prefix . '/' . $class_name . '.php'; elseif (count ($parts) >= 3 and is_file (PATH_LIBRARY . $parts[1] . '/' . $parts[2] . '/' . $class_name . '.php')) include PATH_LIBRARY . $parts[1] . '/' . $parts[2] . '/' . $class_name . '.php'; elseif (is_file (PATH_LIBRARY . $component . '/' . $class_name . '.php')) include PATH_LIBRARY . $component . '/' . $class_name . '.php'; elseif (count ($parts) == 4 and is_file (PATH_LIBRARY . $parts[1] . '/' . $parts[2] . '/' . $class_name . '.php')) include PATH_LIBRARY . $parts[1] . '/' . $parts[2] . '/' . $class_name . '.php'; elseif ($prefix == $class_name or $prefix == 'eclClass') { // not found if (isset ($io->log)) $io->log->addMessage ($class_name . ' not found', 'autoload'); eval ('class ' . $class_name . '{ public $is_phantom = true; }'); } // not found else { // not found if (isset ($io->log)) $io->log->addMessage ($class_name . ' not found', 'autoload'); eval ('class ' . $class_name . ' extends eclClass_' . strtolower( substr ($prefix, 3)) . '{ public $is_phantom = true; }'); } // not found if (ob_get_length() > $ob_length) print 'vazamento de caracteres em ' . $class_name . '
'; } // magic autoload ); function print_a ($array) { print nl2br (str_replace (array ('&', '"', '<'), array ('&', '"', '<'), eclIo_file::array2string ($array))); } /* The packager will look for the lines starting with "!". Do not change these lines! */ //!packager:start_of_files //!start_of_packager_settings define('SYSTEM_IS_PACKED', true); define('SYSTEM_PACKED_DATE', 'Thu, 04 Jul 2019 05:19:55 -0300'); //!end_of_packager_settings //!packager:start_of_map $mapPrepend = array ( 'admin' => array ('adminIndex', 'adminAlerts', 'adminUsers', 'adminDomains', 'adminSystem', 'adminDatabase', 'adminIntegrations', 'adminComponents', 'adminTools'), 'adminAlerts' => array ('adminAlerts_log', 'adminAlerts_update'), 'adminIntegrations' => array ('integrationSMTP', 'integrationSMS'), 'domain' => array ('domainIndex', 'section', 'section_create', 'domainFiles', 'domainGlossary', 'domainIcons', 'domainInfo', 'domainRecents', 'domainScripts', 'domainSearch', 'domainStyles', 'domainSubscription'), 'financialAccount_create' => array ('financialAccountCash_create', 'financialAccountBank_create'), 'home_create' => array ('homeCurriculum_create', 'homePublications_create', 'homeChat_create'), 'integration' => array ('integrationSMTP', 'integrationSMS', 'integrationRSS', 'integrationGoogleWebmasters'), 'personalite' => array ('personaliteApearance', 'personaliteDetails', 'personaliteExtras', 'personaliteInstall', 'personaliteModules', 'personaliteObjects', 'personaliteTemplate', 'personaliteExport'), 'section_create' => array ('sectionFolder_create', 'sectionCart_create', 'sectionBlog_create', 'sectionCategories_create', 'sectionSearch_create', 'sectionFormulary_create'), 'system' => array ('systemShared', 'user', 'systemInstallation', 'admin', 'domain', 'domainCreate', 'systemAccessDenied', 'systemPreload'), 'systemPreload' => array ('sectionCart_preload', 'modEditor'), 'tool' => array ('toolConfig', 'toolMediaGalery', 'integration', 'financial'), 'user' => array ('userIndex', 'userAnonimous', 'userHome', 'userAdmin', 'userJoin', 'userRecoverPassword'), 'userHome' => array ('userHome_index', 'home', 'home_create', 'userHome_alerts', 'userHome_password', 'userHome_personal', 'userHome_mail', 'userHome_phone', 'userHome_welcome'), ); $mapAppend = array ( 'admin' => array ('domainIcons', 'domainScripts', 'domainServices', 'domainStyles', 'adminDefault'), 'domain' => array ('endpoints', 'personalite', 'tool', 'userJoin', 'domainSitemap', 'domainDefault'), 'section_create' => array ('sectionGlossary_create', 'sectionInfo_create', 'sectionLogin_create', 'sectionSubdomains_create', 'sectionTerms_create', 'sectionPrivacyPolicy_create', 'sectionMenu_create', 'sectionRedirect_create'), 'system' => array ('systemDefault'), 'user' => array ('domainIcons', 'domainScripts', 'domainStyles', 'userDefault'), 'userHome' => array ('userHome_alerts_phone', 'userHome_alerts_mail', 'userHome_default'), ); //!packager:end_of_map //!packager:start_of_data_index $dataMap = array ( 'c' => array ( 'admin' => array ( 'content' => '0:666', ), 'admin_constants' => array ( 'adminCaption' => '666:510', 'adminGender' => '1176:728', 'adminGenderFemale' => '1904:164', 'adminGenderMale' => '2068:164', 'adminHelpers' => '2232:876', 'adminIdentifier' => '3108:772', 'adminMail' => '3880:940', 'adminPassword' => '4820:849', 'adminPassword2' => '5669:133', 'chrFns' => '5802:612', 'databaseClient' => '6414:831', 'databaseClientMysql' => '7245:163', 'databaseClientSqlite' => '7408:166', 'databaseDb' => '7574:314', 'databaseDisplayErrors' => '7888:934', 'databaseEnabled' => '8822:969', 'databaseEnabledDisabled' => '9791:415', 'databaseEnabledFailed' => '10206:370', 'databaseEnabledSuccess' => '10576:303', 'databaseHost' => '10879:303', 'databaseLogErrors' => '11182:619', 'databasePassword' => '11801:316', 'databasePrefix' => '12117:927', 'databaseUser' => '13044:306', 'filterFlagError' => '13350:439', 'filterFolderError' => '13789:393', 'filterFolderExists' => '14182:416', 'pathComponents' => '14598:740', 'pathDatabase' => '15338:822', 'pathDomains' => '16160:695', 'pathEngine' => '16855:734', 'pathLibrary' => '17589:783', 'pathProfiles' => '18372:744', 'pathShared' => '19116:886', 'pathTemplates' => '20002:1013', 'systemAdminUri' => '21015:1320', 'systemDefaultCharset' => '22335:1162', 'systemDefaultCharsetIso88591' => '23497:216', 'systemDefaultCharsetUtf8' => '23713:133', 'systemDefaultCurrency' => '23846:690', 'systemDefaultDomainName' => '24536:1027', 'systemDefaultLanguage' => '25563:701', 'systemDisplayErrors' => '26264:919', 'systemEnableUserDomains' => '27183:758', 'systemEnableUserSubscriptions' => '27941:780', 'systemHost' => '28721:660', 'systemHostingMode' => '29381:1871', 'systemHostingModePortal' => '31252:169', 'systemHostingModeSingle' => '31421:172', 'systemHostingModeSubfolders' => '31593:180', 'systemHttpsRedirect' => '31773:1218', 'systemLogErrors' => '32991:739', 'systemPackedMapFirst' => '33730:1264', 'systemPackedSharedFirst' => '34994:1186', 'systemProfilesUri' => '36180:1244', 'systemProjectCaption' => '37424:721', 'systemProjectRef' => '38145:749', 'systemRewriteEngine' => '38894:2248', 'systemSessionCacheExpire' => '41142:1012', 'systemSessionTTL' => '42154:738', 'systemTimeLimit' => '42892:853', 'systemTimezone' => '43745:13331', 'trackingEnable' => '57076:1522', 'trackingGeoipCache' => '58598:855', 'trackingGeoipCache1month' => '59453:157', 'trackingGeoipCache3months' => '59610:160', 'trackingGeoipCache6months' => '59770:160', 'trackingGeoipCacheNoExpire' => '59930:165', 'trackingGeoipEnable' => '60095:819', 'trackingGeoipService' => '60914:986', 'trackingRemovedPages' => '61900:673', 'trackingStoreFullBacktrace' => '62573:1045', ), 'adminAlerts' => array ( 'help' => '63618:521', 'main' => '64139:241', 'mainEmpty' => '64380:162', ), 'adminAlerts_log' => array ( 'database' => '64542:352', 'databasedisabled' => '64894:313', 'php' => '65207:305', ), 'adminAlerts_update' => array ( 'newReleaseAvailable' => '65512:287', ), 'adminComponents' => array ( 'content' => '65799:227', 'contentEmpty' => '66026:292', 'edit' => '66318:102', 'editComponentDisabled' => '66420:116', 'editComponents' => '66536:108', 'folder' => '66644:148', 'folderMsg' => '66792:520', 'folderSubmit' => '67312:204', 'helpAbout' => '67516:555', ), 'adminComponents_config' => array ( 'content' => '68071:262', 'contentEmpty' => '68333:292', 'helpAbout' => '68625:555', ), 'adminDatabase' => array ( 'content' => '69180:243', 'edit' => '69423:141', 'editMsg' => '69564:549', 'editSubmit' => '70113:204', ), 'adminDatabase_config' => array ( 'content' => '70317:299', 'edit' => '70616:392', 'editMessage' => '71008:314', ), 'adminDatabase_encrypt' => array ( 'content' => '71322:245', 'contentGenerate' => '71567:957', 'contentImport' => '72524:478', 'contentKey' => '73002:301', 'editMessage' => '73303:914', 'generate' => '74217:178', 'generateAlgorithm' => '74395:274', 'import' => '74669:84', 'key' => '74753:97', 'keyMethod' => '74850:360', 'keyMethodGenerate' => '75210:241', 'keyMethodImport' => '75451:250', ), 'adminDatabase_log' => array ( 'content' => '75701:269', 'edit' => '75970:242', 'editLogClear' => '76212:225', 'editLogView' => '76437:196', ), 'adminDatabase_query' => array ( 'content' => '76633:241', 'edit' => '76874:122', 'editInput' => '76996:219', 'editResult' => '77215:268', ), 'adminDefault' => array ( 'content' => '77483:547', ), 'adminDomains' => array ( 'content' => '78030:227', 'contentDisabled' => '78257:443', 'contentEmpty' => '78700:180', 'edit' => '78880:140', 'editMsg' => '79020:541', 'editSubmit' => '79561:204', ), 'adminDomains_add' => array ( 'content' => '79765:255', 'edit' => '80020:265', 'editAdmin' => '80285:339', 'editAdminRequired' => '80624:371', 'editDefaultLanguage' => '80995:281', 'editDescription' => '81276:209', 'editName' => '81485:268', 'editNameAlreadyExists' => '81753:385', 'editNameInvalidChars' => '82138:532', 'editNameSoLong' => '82670:415', 'editTitle' => '83085:284', ), 'adminDomains_details' => array ( 'alertAdminAlreadyExists' => '83369:397', 'alertAdminPleaseSelect' => '83766:419', 'alertAdminRemoveError' => '84185:327', 'alertAdminRemoveLast' => '84512:463', 'alertAdminRequired' => '84975:371', 'content' => '85346:267', 'contextRemove' => '85613:141', 'contextRemoveConfirm' => '85754:1044', 'contextRemoveConfirmError' => '86798:430', 'contextRemoveConfirmOk' => '87228:256', 'edit' => '87484:507', 'editAdminAddName' => '87991:297', 'editAdminAddSubmit' => '88288:147', 'editAdminRemoveList' => '88435:319', 'editAdminRemoveSubmit' => '88754:154', 'editCaption' => '88908:284', 'editCurrency' => '89192:258', 'editDefaultLanguage' => '89450:281', 'editDescription' => '89731:209', 'editName' => '89940:233', 'editStatus' => '90173:379', 'editStatusAlert' => '90552:160', 'editStatusDefault' => '90712:160', 'editStatusDisabled' => '90872:165', 'editStatusReserved' => '91037:178', 'editStatusWaiting' => '91215:188', 'editTitle' => '91403:284', 'editUpdate' => '91687:145', ), 'adminIndex' => array ( 'content' => '91832:1163', 'helpAbout' => '92995:722', ), 'adminIntegrations' => array ( 'content' => '93717:213', 'contentEmpty' => '93930:284', 'helpAbout' => '94214:547', ), 'adminSystem' => array ( 'content' => '94761:223', ), 'adminSystem_admin' => array ( 'content' => '94984:253', 'edit' => '95237:360', ), 'adminSystem_eval' => array ( 'content' => '95597:271', 'edit' => '95868:103', 'editEvalInput' => '95971:190', ), 'adminSystem_extract' => array ( 'content' => '96161:970', 'edit' => '97131:613', 'editBackupFilename' => '97744:389', 'editCreateBackup' => '98133:308', 'editDataExtension' => '98441:437', 'editDataExtensionEcl' => '98878:197', 'editDataExtensionJson' => '99075:154', 'editIndentStart' => '99229:420', 'editIndentStart1' => '99649:161', 'editIndentStart2' => '99810:161', 'editIndentStart3' => '99971:187', 'editIndentString' => '100158:415', 'editIndentString2spaces' => '100573:162', 'editIndentString4spaces' => '100735:169', 'editIndentStringTab' => '100904:147', 'editNlMode' => '101051:350', 'editNlModeLinux' => '101401:127', 'editNlModeWindows' => '101528:133', 'editScriptAccessibility' => '101661:329', 'editSubmit' => '101990:214', ), 'adminSystem_hosting' => array ( 'content' => '102204:233', 'edit' => '102437:501', ), 'adminSystem_log' => array ( 'content' => '102938:250', 'edit' => '103188:281', 'editLogClear' => '103469:225', 'editLogView' => '103694:186', ), 'adminSystem_pack' => array ( 'alertFinished' => '103880:317', 'content' => '104197:634', 'edit' => '104831:172', 'editClearServer' => '105003:287', 'editExportFilename' => '105290:371', 'editPackMediaFiles' => '105661:323', 'editSubmit' => '105984:206', ), 'adminSystem_server' => array ( 'content' => '106190:225', 'edit' => '106415:205', ), 'adminSystem_setup' => array ( 'content' => '106620:286', 'edit' => '106906:361', ), 'adminSystem_update' => array ( 'content' => '107267:237', 'edit' => '107504:215', 'editCheckNow' => '107719:213', 'editUpdateNow' => '107932:205', 'viewCurrentRelease' => '108137:197', 'viewCurrentVersion' => '108334:208', 'viewLastVerification' => '108542:218', 'viewNewVersionAvailable' => '108760:229', 'viewReleaseNotes' => '108989:133', 'viewSystemUpdated' => '109122:297', ), 'adminUsers' => array ( 'adminProfile' => '109419:118', 'adminProfileButtom' => '109537:229', 'adminProfileMsg' => '109766:881', 'alertPasswordInvalidCharacter' => '110647:680', 'alertPasswordRepeatError' => '111327:384', 'alertPasswordRequired' => '111711:364', 'alertUserAlreadyExists' => '112075:429', 'alertUserInvalidName' => '112504:657', 'alertUserNameRequired' => '113161:658', 'content' => '113819:223', 'contentDisabled' => '114042:443', 'contentEmpty' => '114485:178', 'createFolder' => '114663:158', 'createFolderButtom' => '114821:204', 'createFolderMsg' => '115025:537', 'editAddress' => '115562:249', 'editBornDate' => '115811:276', 'editCaption' => '116087:302', 'editCPF' => '116389:218', 'editDescription' => '116607:292', 'editGender' => '116899:370', 'editGenderFemale' => '117269:157', 'editGenderMale' => '117426:156', 'editGenderUndefined' => '117582:184', 'editMail' => '117766:225', 'editName' => '117991:283', 'editPassword' => '118274:224', 'editPassword2' => '118498:171', 'editPhone' => '118669:231', 'editTitle' => '118900:255', ), 'adminUsers_add' => array ( 'content' => '119155:249', 'edit' => '119404:359', ), 'adminUsers_details' => array ( 'content' => '119763:263', 'edit' => '120026:401', 'editComments' => '120427:270', 'editName' => '120697:173', 'editPassword' => '120870:205', 'editPasswordDescription' => '121075:319', 'removeConfirmErrorF' => '121394:428', 'removeConfirmErrorM' => '121822:428', 'removeConfirmF' => '122250:1028', 'removeConfirmM' => '123278:1023', 'removeConfirmOkF' => '124301:250', 'removeConfirmOkM' => '124551:250', 'removeF' => '124801:139', 'removeM' => '124940:139', ), 'domain_disabled' => array ( 'content' => '125079:920', ), 'domain_empty' => array ( 'content' => '125999:1149', 'edit' => '127148:647', 'editCaption' => '127795:356', 'editContent' => '128151:418', 'editDescription' => '128569:338', 'editKeywords' => '128907:224', 'editKeywordsPack' => '129131:102', 'editTitle' => '129233:813', 'templateForNewDomain' => '130046:265', ), 'domainCreate' => array ( 'content' => '130311:1225', 'contentCreate' => '131536:333', 'edit' => '131869:248', 'editCaption' => '132117:546', 'editDescription' => '132663:511', 'editTitle' => '133174:464', ), 'domainDefault' => array ( 'content' => '133638:628', 'custom' => '134266:291', 'edit' => '134557:664', 'editCaption' => '135221:334', 'editContent' => '135555:354', 'editRecognizeEcolabore' => '135909:275', 'editRecognizeHTML' => '136184:237', 'editRecognizeParagraphs' => '136421:267', 'editTitle' => '136688:266', 'editUpdated' => '136954:167', 'helpAbout' => '137121:503', 'helpTip' => '137624:624', 'restore' => '138248:303', ), 'domainGlossary' => array ( 'content' => '138551:532', 'helpAbout' => '139083:550', ), 'domainGlossary_keyword' => array ( 'content' => '139633:707', 'edit' => '140340:448', 'editCaption' => '140788:148', 'editContent' => '140936:351', 'editKeywordsPack' => '141287:52', 'editTitle' => '141339:266', 'editUpdated' => '141605:167', 'helpAbout' => '141772:895', 'remove' => '142667:140', 'removeConfirm' => '142807:560', ), 'domainIcons' => array ( 'layout' => '143367:367', ), 'domainIndex' => array ( 'contentEdit' => '143734:197', 'edit' => '143931:616', 'editCaption' => '144547:356', 'editContent' => '144903:418', 'editDescription' => '145321:338', 'editKeywords' => '145659:180', 'editKeywordsPack' => '145839:102', 'editList' => '145941:280', 'editListRecents' => '146221:284', 'editListSections' => '146505:295', 'editTitle' => '146800:813', 'editUpdated' => '147613:167', 'helpAbout' => '147780:637', 'helpNavigate' => '148417:391', 'helpTip' => '148808:662', 'mainSections' => '149470:640', ), 'domainInfo' => array ( 'content' => '150110:1010', 'list' => '151120:134', 'view' => '151254:264', 'viewAddress' => '151518:229', 'viewCaption' => '151747:203', 'viewDescription' => '151950:203', 'viewMail' => '152153:240', 'viewPhone' => '152393:223', 'viewTitle' => '152616:198', ), 'domainRecents' => array ( 'content' => '152814:145', 'helpAbout' => '152959:371', 'helpTip' => '153330:442', 'link' => '153772:290', ), 'domainRecents_rss' => array ( 'layout' => '154062:682', ), 'domainSearch' => array ( 'content' => '154744:227', 'help' => '154971:767', 'msgNoResults' => '155738:207', 'search' => '155945:134', 'searchInput' => '156079:260', 'searchSubmit' => '156339:190', 'searchTagOnly' => '156529:260', ), 'domainSitemap' => array ( 'layout' => '156789:272', ), 'domainStyles' => array ( 'preset' => '157061:32158', ), 'financial' => array ( 'content' => '189219:401', ), 'financialAccount' => array ( 'contentEdit' => '189620:180', 'edit' => '189800:473', 'editCaption' => '190273:396', 'editCaptionRequired' => '190669:443', 'editContent' => '191112:363', 'editDescription' => '191475:201', 'editName' => '191676:198', 'editTitle' => '191874:190', 'moveDown' => '192064:129', 'moveUp' => '192193:126', 'remove' => '192319:140', 'removeConfirm' => '192459:642', 'specialFieldsOnEdit' => '193101:115', ), 'financialAccount_create' => array ( 'content' => '193216:256', 'contextNew' => '193472:126', 'edit' => '193598:520', 'editCaptionHidden' => '194118:117', 'editDescription' => '194235:201', 'editNameHidden' => '194436:142', 'editTitle' => '194578:190', 'specialFieldsAfterCreate' => '194768:142', 'specialFieldsOnCreate' => '194910:117', ), 'financialAccountBank' => array ( 'editPayCardMachine' => '195027:351', 'editPayDeposit' => '195378:359', 'editPaySlip' => '195737:467', 'helpAbout' => '196204:777', 'specialFieldsOnCreate' => '196981:109', 'specialFieldsOnEdit' => '197090:109', ), 'financialAccountBank_create' => array ( 'content' => '197199:440', 'contentPreset' => '197639:148', ), 'financialAccountBank_deposit' => array ( 'content' => '197787:331', ), 'financialAccountCash' => array ( 'editPayCash' => '198118:328', 'helpAbout' => '198446:790', 'specialFieldsOnCreate' => '199236:51', 'specialFieldsOnEdit' => '199287:51', ), 'financialAccountCash_cash' => array ( 'content' => '199338:276', ), 'financialAccountCash_create' => array ( 'content' => '199614:473', 'contentPreset' => '200087:151', ), 'financialCharges' => array ( 'content' => '200238:369', 'edit' => '200607:288', 'list' => '200895:138', 'listDescription' => '201033:124', 'listDue' => '201157:117', 'listOwner' => '201274:116', ), 'financialIncoming' => array ( 'edit' => '201390:417', 'editCaptionHidden' => '201807:359', 'editTitle' => '202166:190', 'list' => '202356:123', 'preset' => '202479:211', ), 'financialOutgoing' => array ( 'edit' => '202690:417', 'editCaptionHidden' => '203107:359', 'editTitle' => '203466:190', 'list' => '203656:123', 'preset' => '203779:211', ), 'financialProjects' => array ( 'edit' => '203990:417', 'editCaptionHidden' => '204407:359', 'editTitle' => '204766:190', 'list' => '204956:127', 'preset' => '205083:213', ), 'financialResources' => array ( 'edit' => '205296:419', 'editCaptionHidden' => '205715:359', 'editTitle' => '206074:190', 'list' => '206264:125', 'preset' => '206389:215', ), 'home' => array ( 'contentEdit' => '206604:173', 'edit' => '206777:528', 'editAccess' => '207305:448', 'editAccessAdmin' => '207753:193', 'editAccessAll' => '207946:157', 'editAccessMember' => '208103:204', 'editAccessSubscribed' => '208307:187', 'editCaption' => '208494:396', 'editCaptionRequired' => '208890:443', 'editContent' => '209333:363', 'editDescription' => '209696:201', 'editGroup' => '209897:209', 'editGroupNone' => '210106:125', 'editImg' => '210231:210', 'editKeywords' => '210441:180', 'editKeywordsPack' => '210621:52', 'editName' => '210673:197', 'editTitle' => '210870:190', 'editUpdated' => '211060:167', 'moveDown' => '211227:135', 'moveTo' => '211362:330', 'moveToFooter' => '211692:130', 'moveToList' => '211822:236', 'moveToMain' => '212058:127', 'moveUp' => '212185:134', 'remove' => '212319:140', 'removeConfirm' => '212459:617', 'specialFieldsOnEdit' => '213076:103', ), 'home_create' => array ( 'content' => '213179:242', 'contextNew' => '213421:118', 'edit' => '213539:527', 'editCaptionHidden' => '214066:117', 'editDescription' => '214183:201', 'editKeywordsPack' => '214384:52', 'editNameHidden' => '214436:142', 'editTitle' => '214578:190', 'helpNavigate' => '214768:852', 'specialFieldsAfterCreate' => '215620:130', 'specialFieldsOnCreate' => '215750:105', ), 'homeChat' => array ( 'specialFieldsOnCreate' => '215855:27', 'specialFieldsOnEdit' => '215882:27', ), 'homeChat_create' => array ( 'content' => '215909:380', 'contentPreset' => '216289:286', ), 'homeChat_group' => array ( 'contextRemove' => '216575:164', ), 'homeChat_user' => array ( 'contextClear' => '216739:130', 'contextRemove' => '216869:164', 'form' => '217033:101', 'formComment' => '217134:353', ), 'homePublications' => array ( 'specialFieldsOnCreate' => '217487:55', 'specialFieldsOnEdit' => '217542:55', ), 'homePublications_create' => array ( 'content' => '217597:414', 'contentPreset' => '218011:319', ), 'integration' => array ( 'content' => '218330:345', ), 'integrationGoogleWebmasters' => array ( 'content' => '218675:313', 'create' => '218988:100', 'createFile' => '219088:235', 'view' => '219323:130', 'viewFileContent' => '219453:225', 'viewFileName' => '219678:243', ), 'integrationRSS' => array ( 'content' => '219921:250', 'edit' => '220171:126', 'editRssEnable' => '220297:344', 'editRssMax' => '220641:356', ), 'integrationSMS' => array ( 'content' => '220997:237', 'contentDisabled' => '221234:181', 'contentEnabled' => '221415:178', ), 'integrationSMS_config' => array ( 'content' => '221593:294', 'edit' => '221887:145', 'editPass' => '222032:332', 'editServiceEnable' => '222364:1050', 'editUser' => '223414:330', ), 'integrationSMS_test' => array ( 'content' => '223744:252', 'edit' => '223996:145', 'editPass' => '224141:332', 'editServiceEnable' => '224473:1050', 'editUser' => '225523:330', ), 'integrationSMTP' => array ( 'content' => '225853:253', ), 'integrationSMTP_config' => array ( 'alertDisabled' => '226106:617', 'alertLoginError' => '226723:564', 'alertSendingError' => '227287:362', 'alertSocketError' => '227649:539', 'alertToError' => '228188:375', 'content' => '228563:296', 'edit' => '228859:307', 'integrationSmtpEnable' => '229166:895', 'integrationSmtpFrom' => '230061:324', 'integrationSmtpHost' => '230385:323', 'integrationSmtpPassword' => '230708:332', 'integrationSmtpPort' => '231040:320', 'integrationSmtpTTL' => '231360:352', 'integrationSmtpUser' => '231712:322', ), 'integrationSMTP_test' => array ( 'content' => '232034:252', 'edit' => '232286:196', 'editBcc' => '232482:258', 'editCc' => '232740:258', 'editHtml' => '232998:270', 'editSubject' => '233268:256', 'editText' => '233524:277', 'editTo' => '233801:238', 'view' => '234039:94', 'viewLog' => '234133:258', ), 'modAudio' => array ( 'edit' => '234391:349', 'editAudio' => '234740:207', 'editDescription' => '234947:273', 'tabAudio' => '235220:231', 'tabCaption' => '235451:312', 'tabStyle' => '235763:344', ), 'modBanner' => array ( 'create' => '236107:731', 'edit' => '236838:375', ), 'modBox' => array ( 'content' => '237213:279', 'create' => '237492:682', 'edit' => '238174:319', 'editContent' => '238493:332', 'tabCaption' => '238825:268', 'tabContent' => '239093:235', ), 'modBreadcrumbs' => array ( 'edit' => '239328:452', ), 'modCard' => array ( 'edit' => '239780:227', ), 'modCart' => array ( 'edit' => '240007:373', ), 'modCart_scope' => array ( 'module' => '240380:323', ), 'modComments' => array ( 'edit' => '240703:453', ), 'modComments_add' => array ( 'edit' => '241156:379', 'form' => '241535:101', 'formAnonimous' => '241636:164', 'formComment' => '241800:353', ), 'modContent' => array ( 'edit' => '242153:379', 'post' => '242532:247', ), 'modContext' => array ( 'goChat' => '242779:189', 'goHelp' => '242968:181', 'help' => '243149:129', 'module' => '243278:126', ), 'modDinamic' => array ( 'content' => '243404:469', 'create' => '243873:708', 'edit' => '244581:468', 'listDirection' => '245049:324', 'listDirectionAsc' => '245373:163', 'listDirectionDesc' => '245536:167', 'listFilter' => '245703:369', 'listFilterNextEvents' => '246072:181', 'listFilterNone' => '246253:166', 'listFilterSpotlight' => '246419:182', 'listMax' => '246601:283', 'listOffset' => '246884:536', 'listUpdate' => '247420:425', 'listUpdateAuto' => '247845:164', 'listUpdateDay' => '248009:166', 'listUpdateHits' => '248175:172', 'listUpdateHour' => '248347:169', 'listUpdateMonth' => '248516:170', 'listUpdateWeek' => '248686:172', 'sort' => '248858:487', 'sortByCreated' => '249345:177', 'sortByEventStart' => '249522:184', 'sortByHits' => '249706:182', 'sortByIndex' => '249888:172', 'sortByLastComment' => '250060:191', 'sortByName' => '250251:152', 'sortByUpdated' => '250403:181', 'sortByValue' => '250584:157', 'sortShuffled' => '250741:164', 'tabSort' => '250905:318', ), 'modEditor' => array ( 'contextWisiwygDisable' => '251223:152', 'contextWisiwygEnable' => '251375:148', 'module' => '251523:1157', ), 'modEditor_document' => array ( 'module' => '252680:423', 'save' => '253103:142', ), 'modEditor_insert' => array ( 'editor' => '253245:1150', 'editorA' => '254395:223', 'editorAudio' => '254618:188', 'editorBox' => '254806:208', 'editorFile' => '255014:191', 'editorH1' => '255205:238', 'editorH2' => '255443:238', 'editorH3' => '255681:238', 'editorH4' => '255919:238', 'editorH5' => '256157:238', 'editorH6' => '256395:238', 'editorHR' => '256633:233', 'editorHtml' => '256866:198', 'editorImg' => '257064:187', 'editorLA' => '257251:249', 'editorLO' => '257500:246', 'editorLU' => '257746:251', 'editorP' => '257997:238', 'editorTable' => '258235:188', 'editorVideo' => '258423:188', 'module' => '258611:787', ), 'modEditor_objects' => array ( 'audio' => '259398:121', 'box' => '259519:134', 'file' => '259653:122', 'html' => '259775:140', 'img' => '259915:122', 'module' => '260037:146', 'ofBanner' => '260183:144', 'ofPage' => '260327:127', 'ofPost' => '260454:125', 'ofSection' => '260579:130', 'table' => '260709:122', 'video' => '260831:121', ), 'modFile' => array ( 'content' => '260952:338', 'create' => '261290:599', 'edit' => '261889:349', 'editDescription' => '262238:273', 'editFile' => '262511:202', 'module' => '262713:180', 'tabCaption' => '262893:312', 'tabFile' => '263205:230', 'tabStyle' => '263435:344', 'uploadFile' => '263779:203', ), 'modFooter' => array ( 'create' => '263982:528', 'edit' => '264510:355', 'editContent' => '264865:332', 'tabContent' => '265197:235', ), 'modFormulary' => array ( 'edit' => '265432:362', ), 'modFormulary_view' => array ( 'edit' => '265794:369', ), 'modGrid' => array ( 'edit' => '266163:323', ), 'modHits' => array ( 'edit' => '266486:413', ), 'modHtml' => array ( 'content' => '266899:316', 'create' => '267215:641', 'edit' => '267856:308', 'editHtml' => '268164:239', 'tabCaption' => '268403:312', 'tabHtml' => '268715:199', ), 'modHumperstilshen' => array ( 'iconAlert' => '268914:193', 'iconCrash' => '269107:179', 'iconDefault' => '269286:154', 'iconError' => '269440:203', 'iconHappy' => '269643:183', 'iconQuestion' => '269826:189', 'iconTip' => '270015:178', 'iconWelcome' => '270193:189', 'iconWhait' => '270382:182', 'sessionCheck' => '270564:660', 'sessionCheckSubmit' => '271224:134', 'sessionCheckSubmitConfirm' => '271358:282', 'showAlert' => '271640:164', 'showTip' => '271804:156', 'submitCancel' => '271960:206', 'submitConfirm' => '272166:122', 'submitConfirmCancel' => '272288:122', ), 'modImg' => array ( 'content' => '272410:312', 'create' => '272722:642', 'edit' => '273364:348', 'editDescription' => '273712:273', 'editImg' => '273985:277', 'imgFilterBrightness' => '274262:398', 'imgFilterContrast' => '274660:394', 'imgFilterHueRotate' => '275054:394', 'imgFilterSaturate' => '275448:394', 'tabCaption' => '275842:312', 'tabFilters' => '276154:308', 'tabImg' => '276462:229', 'tabStyle' => '276691:344', ), 'modInstructor' => array ( 'module' => '277035:2153', ), 'modInstructor_quality' => array ( 'helpNavigate' => '279188:308', 'helpRedirect' => '279496:409', 'index' => '279905:391', ), 'modInterface' => array ( 'module' => '280296:129', ), 'modLanguages' => array ( 'edit' => '280425:449', ), 'modLayout' => array ( 'personaliteOff' => '280874:140', 'personaliteOn' => '281014:152', 'print' => '281166:150', ), 'modList' => array ( 'content' => '281316:160', 'edit' => '281476:476', 'listDirection' => '281952:324', 'listDirectionAsc' => '282276:163', 'listDirectionDesc' => '282439:167', 'listMax' => '282606:295', 'sort' => '282901:462', 'sortByCreated' => '283363:177', 'sortByEventStart' => '283540:184', 'sortByHits' => '283724:182', 'sortByIndex' => '283906:172', 'sortByLastComment' => '284078:191', 'sortByName' => '284269:152', 'sortByUpdated' => '284421:181', 'sortByValue' => '284602:157', 'tabSort' => '284759:248', ), 'modLogin' => array ( 'alertCookiesRequired' => '285007:375', 'alertInvalidLogin' => '285382:417', 'anonimous' => '285799:119', 'login' => '285918:179', 'loginName' => '286097:132', 'loginPassword' => '286229:137', 'loginSubmit' => '286366:229', ), 'modNavbar' => array ( 'edit' => '286595:475', 'specialHomeDisplay' => '287070:331', 'tabSpecial' => '287401:217', ), 'modNavbottom' => array ( 'edit' => '287618:445', ), 'modNavmain' => array ( 'edit' => '288063:443', ), 'modPages' => array ( 'edit' => '288506:452', ), 'modSearch' => array ( 'edit' => '288958:327', 'search' => '289285:132', ), 'modSort' => array ( 'edit' => '289417:358', ), 'modTable' => array ( 'content' => '289775:5016', 'edit' => '294791:333', 'list' => '295124:308', 'module' => '295432:55', 'moduleCreate' => '295487:741', 'tabApearance' => '296228:205', 'tabCaption' => '296433:318', 'tabContent' => '296751:219', ), 'modTable_new' => array ( 'content' => '296970:351', 'edit' => '297321:142', 'editCols' => '297463:264', 'editList' => '297727:308', 'editRows' => '298035:263', ), 'modTitle' => array ( 'edit' => '298298:334', ), 'modToolbox' => array ( 'module' => '298632:130', ), 'modUser' => array ( 'goAdmin' => '298762:205', 'goLogout' => '298967:134', 'goMain' => '299101:190', 'module' => '299291:158', ), 'modUser_alerts' => array ( 'module' => '299449:123', ), 'modUser_quoteoftheday' => array ( 'module' => '299572:391', 'quotes' => '299963:45066', ), 'modUser_subscribe' => array ( 'module' => '345029:419', ), 'modUser_tools' => array ( 'goPassword' => '345448:135', 'goPersonal' => '345583:132', 'module' => '345715:125', ), 'modUser_welcome' => array ( 'goEcolabore' => '345840:187', 'goHome' => '346027:161', 'goInfo' => '346188:151', 'goOrganization' => '346339:193', 'goPassword' => '346532:161', 'goPrivacyPolicy' => '346693:158', 'goProfiles' => '346851:132', 'goReport' => '346983:147', 'goServiceTerms' => '347130:151', 'goSubscribe' => '347281:140', 'module' => '347421:131', ), 'modVideo' => array ( 'content' => '347552:337', 'create' => '347889:738', 'edit' => '348627:349', 'editDescription' => '348976:273', 'editVideo' => '349249:207', 'tabCaption' => '349456:312', 'tabStyle' => '349768:344', 'tabVideo' => '350112:231', 'upload' => '350343:419', 'uploadVideo' => '350762:243', ), 'personalite' => array ( 'content' => '351005:432', ), 'personaliteApearance' => array ( 'content' => '351437:527', 'fieldsColor' => '351964:2082', 'fieldsFont' => '354046:3774', 'fieldsSelect' => '357820:886', 'layout' => '358706:5894', ), 'personaliteApearance_color' => array ( 'content' => '364600:47007', ), 'personaliteApearance_font' => array ( 'layout' => '411607:6066', ), 'personaliteApearance_scheme' => array ( 'cardBackgroundColor' => '417673:302', 'cardBorderColor' => '417975:282', 'cardButton' => '418257:178', 'cardCaptionColor' => '418435:279', 'cardHeaderColor' => '418714:275', 'cardInput' => '418989:174', 'cardLinkActiveColor' => '419163:294', 'cardLinkColor' => '419457:267', 'cardTextColor' => '419724:266', 'documentBackgroundColor' => '419990:381', 'documentBorderColor' => '420371:362', 'documentButton' => '420733:259', 'documentCaptionColor' => '420992:361', 'documentHeaderColor' => '421353:356', 'documentInput' => '421709:282', 'documentLinkActiveColor' => '421991:383', 'documentLinkColor' => '422374:346', 'documentTextColor' => '422720:345', 'edit' => '423065:233', 'fontBar' => '423298:389', 'fontBlockquote' => '423687:396', 'fontCaption' => '424083:404', 'fontHeader' => '424487:378', 'fontLabel' => '424865:406', 'fontLegend' => '425271:401', 'fontLink' => '425672:312', 'fontParagraph' => '425984:382', 'fontPre' => '426366:400', 'formularyBackgroundColor' => '426766:317', 'formularyBorderColor' => '427083:297', 'formularyButton' => '427380:188', 'formularyCaptionColor' => '427568:294', 'formularyHeaderColor' => '427862:290', 'formularyInput' => '428152:184', 'formularyLinkActiveColor' => '428336:309', 'formularyLinkColor' => '428645:282', 'formularyTextColor' => '428927:281', 'navBackgroundColor' => '429208:299', 'navBorderColor' => '429507:279', 'navButton' => '429786:176', 'navCaptionColor' => '429962:276', 'navHeaderColor' => '430238:272', 'navInput' => '430510:170', 'navLinkActiveColor' => '430680:291', 'navLinkColor' => '430971:264', 'navTextColor' => '431235:263', 'panelBackgroundColor' => '431498:305', 'panelBorderColor' => '431803:285', 'panelButton' => '432088:180', 'panelCaptionColor' => '432268:282', 'panelHeaderColor' => '432550:278', 'panelInput' => '432828:176', 'panelLinkActiveColor' => '433004:297', 'panelLinkColor' => '433301:270', 'panelTextColor' => '433571:269', 'spotlightBackgroundColor' => '433840:317', 'spotlightBorderColor' => '434157:297', 'spotlightButton' => '434454:188', 'spotlightCaptionColor' => '434642:294', 'spotlightHeaderColor' => '434936:290', 'spotlightInput' => '435226:184', 'spotlightLinkActiveColor' => '435410:309', 'spotlightLinkColor' => '435719:282', 'spotlightTextColor' => '436001:281', 'systemBackgroundColor' => '436282:308', 'systemBorderColor' => '436590:288', 'systemButton' => '436878:182', 'systemCaptionColor' => '437060:285', 'systemHeaderColor' => '437345:281', 'systemInput' => '437626:178', 'systemLinkActiveColor' => '437804:300', 'systemLinkColor' => '438104:273', 'systemTextColor' => '438377:272', 'tabCard' => '438649:1410', 'tabDocument' => '440059:1478', 'tabFonts' => '441537:578', 'tabFormulary' => '442115:1500', 'tabNav' => '443615:1388', 'tabPanel' => '445003:1426', 'tabSpotlight' => '446429:1492', 'tabSystem' => '447921:1580', ), 'personaliteDetails' => array ( 'main' => '449501:315', ), 'personaliteDetails_configure' => array ( 'edit' => '449816:464', 'editCaption' => '450280:265', 'editDescription' => '450545:254', 'editHTML' => '450799:256', 'editName' => '451055:259', 'tabCaption' => '451314:272', 'tabHTML' => '451586:199', ), 'personaliteExport' => array ( 'content' => '451785:434', 'edit' => '452219:159', 'editComponentsList' => '452378:185', 'editContent' => '452563:331', 'editName' => '452894:291', ), 'personaliteExtras' => array ( 'edit' => '453185:316', ), 'personaliteExtras_upload' => array ( 'audio' => '453501:511', 'audioAjaxSend' => '454012:269', 'fieldEnd' => '454281:144', 'fieldFileBig' => '454425:1574', 'fieldStart' => '455999:190', 'file' => '456189:512', 'fileAjaxSend' => '456701:259', 'layout' => '456960:253', 'video' => '457213:511', 'videoAjaxSend' => '457724:269', ), 'personaliteFields' => array ( 'add' => '457993:98', 'alertShareUserDataRequest' => '458091:583', 'close' => '458674:612', 'content' => '459286:541', 'editCaption' => '459827:262', 'editRequired' => '460089:259', 'editType' => '460348:131', 'load' => '460479:711', 'module' => '461190:254', ), 'personaliteFields_address' => array ( 'content' => '461444:211', 'edit' => '461655:238', 'editType' => '461893:137', 'editUseUserAddress' => '462030:345', 'preset' => '462375:128', ), 'personaliteFields_checkbox' => array ( 'content' => '462503:239', 'edit' => '462742:165', 'editType' => '462907:138', 'preset' => '463045:34', 'valueNo' => '463079:108', 'valueYes' => '463187:109', ), 'personaliteFields_created' => array ( 'content' => '463296:235', 'edit' => '463531:145', 'preset' => '463676:137', 'value' => '463813:145', ), 'personaliteFields_descriptive' => array ( 'content' => '463958:249', 'edit' => '464207:228', 'editContent' => '464435:319', 'editDisplayWhenEditingOnly' => '464754:323', 'editType' => '465077:142', 'preset' => '465219:38', ), 'personaliteFields_mail' => array ( 'alertInvalidMail' => '465257:588', 'alertMultipleNotAllowed' => '465845:476', 'content' => '466321:245', 'edit' => '466566:235', 'editType' => '466801:134', 'editUseUserMail' => '466935:336', 'preset' => '467271:112', ), 'personaliteFields_phone' => array ( 'alertInvalidAreaCode' => '467383:625', 'alertInvalidCountryCode' => '468008:673', 'alertInvalidNumber' => '468681:655', 'content' => '469336:207', 'edit' => '469543:236', 'editType' => '469779:135', 'editUseUserPhone' => '469914:341', 'preset' => '470255:124', ), 'personaliteFields_radio' => array ( 'content' => '470379:241', 'edit' => '470620:277', 'editType' => '470897:135', 'preset' => '471032:54', ), 'personaliteFields_select' => array ( 'content' => '471086:237', 'edit' => '471323:234', 'editExplain' => '471557:203', 'editFields' => '471760:111', 'editType' => '471871:136', 'preset' => '472007:56', ), 'personaliteFields_separator' => array ( 'content' => '472063:217', 'edit' => '472280:165', 'editType' => '472445:139', 'preset' => '472584:109', ), 'personaliteFields_status' => array ( 'content' => '472693:205', 'edit' => '472898:145', 'preset' => '473043:138', ), 'personaliteFields_text' => array ( 'content' => '473181:227', 'edit' => '473408:207', 'editType' => '473615:134', 'preset' => '473749:30', ), 'personaliteFields_textarea' => array ( 'content' => '473779:273', 'edit' => '474052:207', 'editType' => '474259:138', 'preset' => '474397:83', ), 'personaliteInstall' => array ( 'checkboxComponents' => '474480:118', 'checkboxSections' => '474598:117', 'content' => '474715:436', 'edit' => '475151:106', 'editFiles' => '475257:188', 'select' => '475445:113', 'selectComponents' => '475558:228', ), 'personaliteModules' => array ( '000auto' => '475786:160', '000noPadding' => '475946:170', '012rem' => '476116:159', '025rem' => '476275:170', '050rem' => '476445:166', '075rem' => '476611:170', '083rem' => '476781:170', '091rem' => '476951:170', '100rem' => '477121:157', '110rem' => '477278:163', '125rem' => '477441:167', '150rem' => '477608:163', '200rem' => '477771:159', '250rem' => '477930:166', '300rem' => '478096:159', 'alignBottom' => '478255:160', 'alignCenter' => '478415:165', 'alignLeft' => '478580:155', 'alignRight' => '478735:159', 'alignTop' => '478894:151', 'boxBorderRadius' => '479045:559', 'boxBorderRadiusElipse' => '479604:155', 'boxBorderRadiusOff' => '479759:184', 'boxDisplay' => '479943:347', 'boxFontSize' => '480290:532', 'boxPadding' => '480822:559', 'boxScheme' => '481381:528', 'boxSchemeAuto' => '481909:165', 'boxSchemeCard' => '482074:154', 'boxSchemeFormulary' => '482228:169', 'boxSchemeNav' => '482397:177', 'boxSchemePanel' => '482574:156', 'boxSchemeSpotlight' => '482730:166', 'boxSchemeSystem' => '482896:159', 'boxShadow' => '483055:433', 'boxShadowAuto' => '483488:165', 'boxShadowOff' => '483653:181', 'boxShadowOn' => '483834:183', 'boxShadowSmoke' => '484017:176', 'caption' => '484193:246', 'captionDisplay' => '484439:305', 'captionLegend' => '484744:318', 'contentNotConfigurable' => '485062:465', 'details' => '485527:207', 'detailsHorizontalAlign' => '485734:470', 'detailsVerticalAlign' => '486204:461', 'edit' => '486665:501', 'formularyLayout' => '487166:457', 'formularyLayoutBox' => '487623:151', 'formularyLayoutGrid' => '487774:153', 'formularyLayoutInline' => '487927:160', 'formularyLayoutStack' => '488087:155', 'imgFilterGrayscale' => '488242:390', 'imgFilterSepia' => '488632:364', 'imgShape' => '488996:456', 'imgShapeAuto' => '489452:191', 'imgShapeCircle' => '489643:159', 'imgShapeElipse' => '489802:158', 'imgShapeSquare' => '489960:160', 'imgShapeThumbnail' => '490120:159', 'imgSmoke' => '490279:322', 'listAlign' => '490601:403', 'listColumns1' => '491004:108', 'listColumns2' => '491112:108', 'listColumns3' => '491220:108', 'listColumns4' => '491328:108', 'listColumns5' => '491436:108', 'listColumns6' => '491544:108', 'listColumnsAuto' => '491652:165', 'listColumnsExtraLarge' => '491817:518', 'listColumnsLarge' => '492335:522', 'listColumnsMedium' => '492857:521', 'listColumnsSmall' => '493378:521', 'listGap000' => '493899:171', 'listGap012' => '494070:125', 'listGap025' => '494195:124', 'listGap037' => '494319:125', 'listGap050' => '494444:123', 'listGap075' => '494567:125', 'listGap100' => '494692:122', 'listGap125' => '494814:116', 'listGap150' => '494930:115', 'listGap200' => '495045:122', 'listGapColumn' => '495167:617', 'listGapRow' => '495784:620', 'listLayout' => '496404:455', 'listLayoutColumns' => '496859:161', 'listLayoutFlex' => '497020:152', 'listLayoutGrid' => '497172:149', 'listLayoutInline' => '497321:161', 'modPadding0' => '497482:161', 'modPaddingAuto' => '497643:169', 'modPaddingBottom' => '497812:565', 'modPaddingLeft' => '498377:559', 'modPaddingRight' => '498936:561', 'modPaddingTop' => '499497:556', 'modPosition' => '500053:511', 'modPositionCenter' => '500564:165', 'modPositionFloatLeft' => '500729:181', 'modPositionFloatRight' => '500910:182', 'modPositionInline' => '501092:170', 'modPositionLeft' => '501262:155', 'modPositionRight' => '501417:159', 'modSemantic' => '501576:549', 'modSemanticAddress' => '502125:181', 'modSemanticArticle' => '502306:179', 'modSemanticAside' => '502485:179', 'modSemanticFooter' => '502664:158', 'modSemanticHeader' => '502822:161', 'modSemanticNav' => '502983:163', 'modSemanticNone' => '503146:147', 'modWidth1' => '503293:119', 'modWidth10' => '503412:121', 'modWidth11' => '503533:121', 'modWidth12' => '503654:129', 'modWidth2' => '503783:119', 'modWidth3' => '503902:126', 'modWidth4' => '504028:119', 'modWidth5' => '504147:119', 'modWidth6' => '504266:126', 'modWidth7' => '504392:119', 'modWidth8' => '504511:119', 'modWidth9' => '504630:119', 'modWidthAuto' => '504749:165', 'modWidthExtraLarge' => '504914:646', 'modWidthHidden' => '505560:159', 'modWidthLarge' => '505719:656', 'modWidthMedium' => '506375:654', 'modWidthSmall' => '507029:655', 'tabCaption' => '507684:278', 'tabDetails' => '507962:205', 'tabEffects' => '508167:283', 'tabFormulary' => '508450:219', 'tabList' => '508669:465', 'tabPosition' => '509134:438', 'tabStyle' => '509572:301', ), 'personaliteTemplate' => array ( 'content' => '509873:480', 'edit' => '510353:472', 'manageDetails' => '510825:235', 'manageFields' => '511060:255', 'manageFonts' => '511315:229', 'manageIcons' => '511544:229', 'manageLabels' => '511773:337', 'manageLabelsAction' => '512110:264', 'manageLabelsDate' => '512374:260', 'manageLabelsField' => '512634:263', 'manageLabelsLang' => '512897:266', 'manageLabelsNavigation' => '513163:275', 'manageLayouts' => '513438:234', 'manageLists' => '513672:229', 'manageModules' => '513901:234', 'managePalettes' => '514135:236', 'manageScripts' => '514371:234', 'manageStyles' => '514605:238', 'manageThemes' => '514843:230', 'tabDetails' => '515073:212', 'tabFields' => '515285:216', 'tabFonts' => '515501:206', 'tabIcons' => '515707:206', 'tabLabels' => '515913:227', 'tabLabelsAction' => '516140:276', 'tabLabelsDate' => '516416:272', 'tabLabelsField' => '516688:275', 'tabLabelsLang' => '516963:278', 'tabLabelsNavigation' => '517241:287', 'tabLayouts' => '517528:211', 'tabLists' => '517739:206', 'tabModules' => '517945:211', 'tabPalettes' => '518156:230', 'tabScripts' => '518386:211', 'tabStyles' => '518597:226', 'tabThemes' => '518823:207', ), 'personaliteTemplate_add' => array ( 'content' => '519030:1396', ), 'personaliteTemplate_configure' => array ( 'details' => '520426:427', 'edit' => '520853:429', 'editCaption' => '521282:265', 'editCSS' => '521547:234', 'editDescription' => '521781:254', 'editFilters' => '522035:223', 'editFiltersDescription' => '522258:302', 'editFlags' => '522560:208', 'editFontFace' => '522768:274', 'editFontStack' => '523042:274', 'editHTML' => '523316:237', 'editName' => '523553:299', 'editScript' => '523852:253', 'editVars' => '524105:206', 'fields' => '524311:420', 'fonts' => '524731:400', 'icons' => '525131:399', 'layouts' => '525530:422', 'lists' => '525952:399', 'modules' => '526351:422', 'palettes' => '526773:404', 'scripts' => '527177:406', 'styles' => '527583:416', 'tabCaption' => '527999:272', 'tabCSS' => '528271:196', 'tabFilters' => '528467:250', 'tabFlags' => '528717:212', 'tabFonts' => '528929:231', 'tabHTML' => '529160:199', 'tabScript' => '529359:206', 'tabVars' => '529565:209', 'templates' => '529774:424', 'themes' => '530198:400', ), 'personaliteTemplate_filters' => array ( 'content' => '530598:322', ), 'personaliteTemplate_labels' => array ( 'edit' => '530920:399', 'editCaption' => '531319:265', 'editName' => '531584:259', 'tabCaption' => '531843:272', ), 'section' => array ( 'contentEdit' => '532115:180', 'edit' => '532295:542', 'editAccess' => '532837:448', 'editAccessAdmin' => '533285:193', 'editAccessAll' => '533478:157', 'editAccessMember' => '533635:204', 'editAccessSubscribed' => '533839:187', 'editCaption' => '534026:396', 'editCaptionRequired' => '534422:443', 'editContent' => '534865:363', 'editDescription' => '535228:201', 'editGroup' => '535429:209', 'editGroupNone' => '535638:125', 'editImg' => '535763:210', 'editKeywords' => '535973:180', 'editKeywordsPack' => '536153:52', 'editName' => '536205:279', 'editTitle' => '536484:190', 'editUpdated' => '536674:167', 'moveDown' => '536841:135', 'moveTo' => '536976:330', 'moveToFooter' => '537306:130', 'moveToList' => '537436:236', 'moveToMain' => '537672:127', 'moveUp' => '537799:134', 'remove' => '537933:140', 'removeConfirm' => '538073:617', 'specialFieldsOnEdit' => '538690:106', ), 'section_create' => array ( 'content' => '538796:256', 'contextNew' => '539052:132', 'contextNewMain' => '539184:141', 'edit' => '539325:527', 'editCaptionHidden' => '539852:117', 'editDescription' => '539969:201', 'editKeywordsPack' => '540170:52', 'editNameHidden' => '540222:142', 'editTitle' => '540364:190', 'helpNavigate' => '540554:852', 'specialFieldsAfterCreate' => '541406:133', 'specialFieldsOnCreate' => '541539:108', ), 'sectionBlog' => array ( 'editComment' => '541647:502', 'editCommentDisabled' => '542149:170', 'helpAbout' => '542319:844', 'helpCreate' => '543163:699', 'helpDone' => '543862:160', 'helpNavigate' => '544022:699', 'reindex' => '544721:390', 'reindexList' => '545111:222', 'sort' => '545333:479', 'sortAlphabetically' => '545812:147', 'sortCheaper' => '545959:131', 'sortEvent' => '546090:137', 'sortExpensive' => '546227:137', 'sortHits' => '546364:138', 'sortPost' => '546502:137', 'sortRatings' => '546639:144', 'sortRecents' => '546783:132', 'specialFieldsOnCreate' => '546915:82', 'specialFieldsOnEdit' => '546997:82', ), 'sectionBlog_create' => array ( 'blog' => '547079:377', 'blogPreset' => '547456:55', 'events' => '547511:412', 'eventsPreset' => '547923:90', 'galery' => '548013:421', 'galeryPreset' => '548434:90', 'news' => '548524:384', 'newsPreset' => '548908:88', 'podcast' => '548996:371', 'podcastPreset' => '549367:91', 'products' => '549458:473', 'productsPreset' => '549931:92', 'videocast' => '550023:408', 'videocastPreset' => '550431:93', ), 'sectionBlog_post' => array ( 'contextNew' => '550524:128', 'edit' => '550652:529', 'editCaption' => '551181:326', 'editCaptionHidden' => '551507:359', 'editContactAddress' => '551866:302', 'editContactMail' => '552168:313', 'editContactPhone' => '552481:240', 'editContactSite' => '552721:250', 'editContent' => '552971:369', 'editDescription' => '553340:323', 'editEventDate' => '553663:253', 'editEventPlace' => '553916:306', 'editImg' => '554222:282', 'editKeywords' => '554504:295', 'editKeywordsPack' => '554799:52', 'editMediaBox' => '554851:395', 'editName' => '555246:152', 'editNameHidden' => '555398:187', 'editProduct' => '555585:257', 'editSpecialFields' => '555842:75', 'editTitle' => '555917:308', 'editTitleRequired' => '556225:427', 'editUpdated' => '556652:167', 'msgRemoveConfirm' => '556819:444', 'new' => '557263:509', 'remove' => '557772:136', 'specialProductAvailable' => '557908:206', 'specialProductOrder' => '558114:190', 'specialProductPrice' => '558304:166', 'specialProductStock' => '558470:175', ), 'sectionCart' => array ( 'alertTimeout' => '558645:625', 'choosePaymentMethod' => '559270:111', 'choosePaymentMethodList' => '559381:81', 'contentPleaseConnect' => '559462:297', 'helpAbout' => '559759:271', 'helpInstructor' => '560030:175', 'listAction' => '560205:121', 'listCode' => '560326:119', 'listDescription' => '560445:129', 'listPrice' => '560574:122', 'listQuantity' => '560696:119', 'listTotal' => '560815:121', 'listValue' => '560936:121', 'specialFieldsOnCreate' => '561057:58', 'specialFieldsOnEdit' => '561115:58', ), 'sectionCart_create' => array ( 'content' => '561173:522', 'contentPreset' => '561695:424', ), 'sectionFolder' => array ( 'helpAbout' => '562119:890', 'specialFieldsOnCreate' => '563009:58', 'specialFieldsOnEdit' => '563067:58', ), 'sectionFolder_create' => array ( 'content' => '563125:408', 'contentPreset' => '563533:248', ), 'sectionFormulary' => array ( 'editMail' => '563781:226', 'fields' => '564007:410', 'fieldsList' => '564417:234', 'formulary' => '564651:110', 'formularyFields' => '564761:68', 'helpAbout' => '564829:566', 'helpInstructor' => '565395:177', 'review' => '565572:358', 'security' => '565930:591', 'securityAccess' => '566521:611', 'securityBasics' => '567132:570', 'securityBasicsEnable' => '567702:269', 'securityContent' => '567971:482', 'securityContentUrlBlock' => '568453:269', 'securityReview' => '568722:422', 'securityReviewEnable' => '569144:237', 'specialFieldsOnCreate' => '569381:78', 'specialFieldsOnEdit' => '569459:78', 'view' => '569537:91', 'viewFields' => '569628:72', ), 'sectionFormulary_create' => array ( 'contact' => '569700:434', 'contactPreset' => '570134:1203', 'formulary' => '571337:534', 'formularyPreset' => '571871:60', ), 'sectionFormulary_done' => array ( 'content' => '571931:544', 'custom' => '572475:291', 'edit' => '572766:664', 'editCaption' => '573430:334', 'editContent' => '573764:354', 'editRecognizeEcolabore' => '574118:275', 'editRecognizeHTML' => '574393:237', 'editRecognizeParagraphs' => '574630:267', 'editTitle' => '574897:266', 'editUpdated' => '575163:167', 'restore' => '575330:303', ), 'sectionFormulary_received' => array ( 'content' => '575633:467', 'list' => '576100:246', 'listNew' => '576346:127', 'selectColumns' => '576473:549', 'selectColumnsList' => '577022:235', ), 'sectionFormulary_record' => array ( 'content' => '577257:219', 'remove' => '577476:139', ), 'sectionFormulary_removed' => array ( 'content' => '577615:251', ), 'sectionFormulary_selectColumns' => array ( 'content' => '577866:437', ), 'sectionFormulary_statistics' => array ( 'content' => '578303:245', 'list' => '578548:1133', ), 'sectionGlossary' => array ( 'helpAbout' => '579681:613', 'helpInstructor' => '580294:178', 'specialFieldsOnCreate' => '580472:58', 'specialFieldsOnEdit' => '580530:58', ), 'sectionGlossary_create' => array ( 'content' => '580588:399', 'contentPreset' => '580987:731', ), 'sectionInfo' => array ( 'helpAbout' => '581718:428', 'helpInstructor' => '582146:174', 'specialFieldsOnCreate' => '582320:58', 'specialFieldsOnEdit' => '582378:58', ), 'sectionInfo_create' => array ( 'content' => '582436:431', 'contentPreset' => '582867:409', ), 'sectionMenu' => array ( 'helpAbout' => '583276:421', ), 'sectionMenu_create' => array ( 'menu' => '583697:412', 'menuPreset' => '584109:55', ), 'sectionPrivacyPolicy' => array ( 'helpAbout' => '584164:704', 'helpInstructor' => '584868:142', 'specialFieldsOnCreate' => '585010:58', 'specialFieldsOnEdit' => '585068:58', ), 'sectionPrivacyPolicy_create' => array ( 'content' => '585126:530', 'contentPreset' => '585656:456', ), 'sectionRedirect' => array ( 'content' => '586112:588', 'editURL' => '586700:281', 'helpAbout' => '586981:518', 'specialFieldsOnCreate' => '587499:46', 'specialFieldsOnEdit' => '587545:46', ), 'sectionRedirect_create' => array ( 'content' => '587591:531', 'contentPreset' => '588122:59', ), 'sectionSearch' => array ( 'helpAbout' => '588181:255', 'helpInstructor' => '588436:176', 'specialFieldsOnCreate' => '588612:58', 'specialFieldsOnEdit' => '588670:58', ), 'sectionSearch_create' => array ( 'content' => '588728:410', 'contentPreset' => '589138:390', ), 'sectionSubdomains' => array ( 'helpAbout' => '589528:451', 'helpInstructor' => '589979:140', 'list' => '590119:173', 'specialFieldsOnCreate' => '590292:58', 'specialFieldsOnEdit' => '590350:58', ), 'sectionSubdomains_create' => array ( 'content' => '590408:419', 'contentPreset' => '590827:447', ), 'sectionTeam' => array ( 'helpAbout' => '591274:375', 'helpCreate' => '591649:457', 'helpDone' => '592106:593', 'helpInstructor' => '592699:195', 'helpNavigate' => '592894:237', 'helpReturn' => '593131:243', 'listAllClients' => '593374:141', 'listAllGroups' => '593515:123', 'listAllMembers' => '593638:140', 'listAllPartners' => '593778:143', 'listAllStudents' => '593921:140', 'listAllSuppliers' => '594061:147', 'listSectorMembers' => '594208:154', 'specialFieldsOnCreate' => '594362:58', 'specialFieldsOnEdit' => '594420:58', ), 'sectionTeam_create' => array ( 'clients' => '594478:364', 'clientsPreset' => '594842:375', 'partners' => '595217:383', 'partnersPreset' => '595600:379', 'students' => '595979:374', 'studentsPreset' => '596353:400', 'subscriptions' => '596753:428', 'subscriptionsPreset' => '597181:433', 'suppliers' => '597614:384', 'suppliersPreset' => '597998:393', 'team' => '598391:388', 'teamPreset' => '598779:401', ), 'sectionTeam_group' => array ( 'edit' => '599180:411', 'editCaption' => '599591:396', 'editContent' => '599987:336', 'editName' => '600323:242', 'editTitle' => '600565:171', 'new' => '600736:221', 'remove' => '600957:138', 'removeConfirm' => '601095:657', ), 'sectionTeam_member' => array ( 'contentClient' => '601752:522', 'contentMember' => '602274:520', 'contentPartner' => '602794:524', 'contentStudant' => '603318:520', 'contentSubscription' => '603838:526', 'contentSuplier' => '604364:530', 'edit' => '604894:613', 'editGroup' => '605507:219', 'editGroupNone' => '605726:134', 'helpNavigate' => '605860:556', 'import' => '606416:555', 'import_helpAbout' => '606971:722', 'import_helpNavigate' => '607693:381', 'importList' => '608074:210', 'importListError' => '608284:385', 'inactive' => '608669:571', 'inactive_helpNavigate' => '609240:521', 'inactiveList' => '609761:216', 'new' => '609977:773', 'new_helpNavigate' => '610750:417', 'unlink' => '611167:160', 'unlinkMember' => '611327:872', 'unlinkMessage' => '612199:641', ), 'sectionTerms' => array ( 'helpAbout' => '612840:685', 'helpInstructor' => '613525:133', 'specialFieldsOnCreate' => '613658:58', 'specialFieldsOnEdit' => '613716:58', ), 'sectionTerms_create' => array ( 'content' => '613774:516', 'contentPreset' => '614290:454', ), 'system_form' => array ( 'add' => '614744:117', 'back' => '614861:121', 'cancel' => '614982:123', 'close' => '615105:122', 'create' => '615227:121', 'end' => '615348:68', 'endView' => '615416:50', 'finish' => '615466:121', 'formularyIdCrash' => '615587:427', 'go' => '616014:117', 'next' => '616131:119', 'previous' => '616250:127', 'previousFinish' => '616377:109', 'previousNext' => '616486:107', 'previousSubmit' => '616593:109', 'save' => '616702:119', 'saveCancel' => '616821:129', 'saveClose' => '616950:128', 'separator' => '617078:51', 'start' => '617129:72', 'startView' => '617201:53', 'submit' => '617254:121', 'submitCancel' => '617375:131', ), 'system_msg' => array ( 'alertConfigurationRestored' => '617506:182', 'alertConfigurationSaved' => '617688:156', 'alertDataUpdated' => '617844:338', 'alertInternalError' => '618182:376', 'alertOperationCanceled' => '618558:529', 'alertRequiredField' => '619087:547', 'alertUnexpectedError' => '619634:861', 'clearLanguageConfirm' => '620495:584', ), 'systemAccessDenied' => array ( 'content' => '621079:1278', 'contentProfile' => '622357:872', ), 'systemDefault' => array ( 'content' => '623229:618', 'help' => '623847:664', ), 'systemInstallation' => array ( 0 => '624511:248', '0description' => '624759:203', 1 => '624962:247', '1description' => '625209:198', 2 => '625407:133', '2description' => '625540:679', 'accessDenied' => '626219:751', 'adminCaption' => '626970:234', 'adminGender' => '627204:349', 'adminIdentifier' => '627553:263', 'adminMail' => '627816:199', 'adminPassword' => '628015:288', 'index' => '628303:550', 'systemHostingMode' => '628853:1817', 'systemHostingModeMultiple' => '630670:343', 'systemHostingModeSingle' => '631013:229', 'systemHttpsRedirect' => '631242:268', 'systemRewriteEngine' => '631510:313', 'templateForConfig' => '631823:146', ), 'tool' => array ( 'content' => '631969:395', ), 'toolConfig' => array ( 'content' => '632364:419', ), 'toolConfig_about' => array ( 'content' => '632783:425', 'edit' => '633208:288', ), 'toolConfig_languages' => array ( 'content' => '633496:393', 'currencies' => '633889:315', 'edit' => '634204:261', 'editCurrenciesManager' => '634465:253', 'editLanguagesManager' => '634718:241', 'select' => '634959:316', ), 'toolConfig_market' => array ( 'content' => '635275:415', 'edit' => '635690:126', 'editCartTimer' => '635816:435', 'editCartTimer00' => '636251:174', 'editCartTimer10' => '636425:165', 'editCartTimer20' => '636590:166', 'editCartTimer30' => '636756:166', 'editCartType' => '636922:368', 'editCartTypeBag' => '637290:152', 'editCartTypeCart' => '637442:152', ), 'toolConfig_versioning' => array ( 'content' => '637594:611', 'edit' => '638205:288', ), 'toolMediaGalery' => array ( 'content' => '638493:423', ), 'user' => array ( 'content' => '638916:489', 'you' => '639405:211', ), 'userAdmin' => array ( 'content' => '639616:697', ), 'userAnonimous' => array ( 'content' => '640313:127', ), 'userDefault' => array ( 'content' => '640440:612', ), 'userHome_alerts' => array ( 'content' => '641052:340', 'mail' => '641392:239', 'phone' => '641631:239', ), 'userHome_default' => array ( 'content' => '641870:410', ), 'userHome_index' => array ( 'content' => '642280:444', 'domains' => '642724:135', 'recents' => '642859:139', ), 'userHome_mail' => array ( 'content' => '642998:374', 'contentFail' => '643372:201', 'contentMailSent' => '643573:316', 'contentReady' => '643889:289', 'contentVerified' => '644178:316', 'contextVerified' => '644494:165', 'editSecurity' => '644659:269', 'input' => '644928:120', 'messageTemplate' => '645048:1552', 'sent' => '646600:83', 'sentButtons' => '646683:111', 'sentUpdate' => '646794:123', 'update' => '646917:130', ), 'userHome_password' => array ( 'alertPasswordChanged' => '647047:375', 'content' => '647422:424', 'edit' => '647846:206', 'editRecoverPassword' => '648052:210', 'help' => '648262:957', 'msgInvalidToken' => '649219:487', 'msgPasswordRecovered' => '649706:452', ), 'userHome_personal' => array ( 'alertDataUpdated' => '650158:384', 'content' => '650542:422', 'edit' => '650964:284', 'help' => '651248:343', ), 'userHome_phone' => array ( 'alertInvalidCode' => '651591:630', 'check' => '652221:126', 'checkCode' => '652347:289', 'content' => '652636:414', 'contentVerified' => '653050:354', 'input' => '653404:98', 'inputPhone' => '653502:98', 'update' => '653600:150', 'verified' => '653750:792', 'verifiedButtons' => '654542:115', 'verifiedUpdate' => '654657:124', ), 'userHome_welcome' => array ( 'disabledF' => '654781:666', 'disabledM' => '655447:670', 'welcome' => '656117:875', 'welcomeToProfile' => '656992:891', ), 'userIndex' => array ( 'content' => '657883:489', ), 'userJoin' => array ( 'alertWelcome' => '658372:677', 'content' => '659049:544', 'editTermsAgree' => '659593:296', 'editTermsView' => '659889:63', 'helpDescription' => '659952:82', 'page0' => '660034:534', 'page1' => '660568:445', 'page1previous' => '661013:297', 'page2' => '661310:448', ), 'userRecoverPassword' => array ( 'content' => '661758:538', 'edit' => '662296:104', 'editAdminMailNotFound' => '662400:596', 'editAdminNotFound' => '662996:379', 'editIdentifier' => '663375:233', 'messageTemplate' => '663608:1539', 'msgMailSent' => '665147:842', ), ), 't' => array ( 'base' => array ( 'empty' => '665989:37', 'mail' => '666026:452', 'print' => '666478:580', 'responsive' => '667058:5279', 'simple' => '672337:557', 'system' => '672894:733', ), 'blocks' => array ( 'help' => '673627:146', 'personalite' => '673773:198', 'personalite_paragraph' => '673971:225', ), 'borders' => array ( 'card' => '674196:531', 'columns' => '674727:549', 'default' => '675276:1125', 'font' => '676401:262', 'format' => '676663:479', 'grid' => '677142:742', ), 'details' => array ( 'button_caption' => '677884:1150', 'button_title' => '679034:491', 'caption' => '679525:262', 'contact_address' => '679787:447', 'contact_mail' => '680234:255', 'contact_phone' => '680489:232', 'contact_site' => '680721:289', 'content' => '681010:494', 'description' => '681504:483', 'event_date' => '681987:303', 'img' => '682290:859', 'img_mini' => '683149:943', 'img_mini_title_description' => '684092:1618', 'info_hits' => '685710:203', 'info_owner' => '685913:310', 'info_posted' => '686223:258', 'info_posted_datetime' => '686481:286', 'info_posted_elapsed' => '686767:252', 'info_updated' => '687019:274', 'list_categories' => '687293:302', 'list_keywords' => '687595:352', 'list_location' => '687947:330', 'list_location_full' => '688277:369', 'list_location_inline' => '688646:330', 'media_audima' => '688976:322', 'media_audio' => '689298:705', 'media_box' => '690003:220', 'media_file' => '690223:497', 'media_font' => '690720:3012', 'media_video' => '693732:383', 'product_cart' => '694115:1572', 'product_price' => '695687:599', 'subitens' => '696286:96', 'title_1' => '696382:549', 'title_2' => '696931:270', 'title_3' => '697201:270', 'title_4' => '697471:554', 'title_5' => '698025:554', 'title_6' => '698579:554', ), 'fields' => array ( 'address' => '699133:2162', 'address_buscacep' => '701295:2869', 'checkbox' => '704164:542', 'checkbox_tree' => '704706:1841', 'descriptive' => '706547:294', 'end' => '706841:285', 'file' => '707126:497', 'list' => '707623:618', 'manager' => '708241:7344', 'phone' => '715585:1011', 'radio' => '716596:517', 'range' => '717113:557', 'select' => '717670:627', 'separator' => '718297:195', 'start' => '718492:834', 'submit' => '719326:654', 'text' => '719980:553', 'text_password' => '720533:512', 'text_small' => '721045:581', 'text_tiny' => '721626:595', 'textarea' => '722221:557', 'textarea_big' => '722778:566', 'textarea_small' => '723344:572', 'view' => '723916:403', 'view_end' => '724319:176', 'view_start' => '724495:225', ), 'fonts' => array ( 'arial' => '724720:167', 'book-antiqua' => '724887:191', 'century-gothic' => '725078:233', 'consolas' => '725311:334', 'courier-new' => '725645:205', 'helvetica-neue' => '725850:182', 'times-new-roman' => '726032:197', ), 'icons' => array ( 'action_add' => '726229:239', 'action_configure' => '726468:268', 'action_remove' => '726736:206', 'ecolabore_flower' => '726942:1200', 'menu' => '728142:283', 'nav_down_arrow' => '728425:242', 'nav_left_arrow' => '728667:247', 'nav_right_arrow' => '728914:247', 'nav_up_arrow' => '729161:239', 'square' => '729400:204', ), 'labels/action' => array ( 'add' => '729604:115', 'answer' => '729719:118', 'back' => '729837:121', 'cancel' => '729958:125', 'choose' => '730083:125', 'clear' => '730208:122', 'close' => '730330:114', 'configure' => '730444:131', 'confirm' => '730575:127', 'connect' => '730702:122', 'create' => '730824:114', 'download' => '730938:117', 'edit' => '731055:113', 'finish' => '731168:125', 'go' => '731293:115', 'move_down' => '731408:129', 'move_left' => '731537:132', 'move_right' => '731669:133', 'move_to' => '731802:128', 'move_up' => '731930:126', 'next' => '732056:114', 'ok' => '732170:107', 'pause' => '732277:114', 'play' => '732391:118', 'previous' => '732509:122', 'redo' => '732631:114', 'remove' => '732745:116', 'remove_object' => '732861:132', 'restore' => '732993:166', 'save' => '733159:113', 'submit' => '733272:115', 'undo' => '733387:115', 'update' => '733502:118', ), 'labels/currency' => array ( 'AED' => '733620:172', 'ALL' => '733792:127', 'ANG' => '733919:166', 'ARS' => '734085:129', 'AUD ' => '734214:51', 'AUD' => '734265:88', 'AWG' => '734353:134', 'BBD' => '734487:148', 'BDT' => '734635:141', 'BGN' => '734776:142', 'BHD' => '734918:160', 'BIF' => '735078:148', 'BMD' => '735226:149', 'BND' => '735375:139', 'BOB' => '735514:141', 'BRL' => '735655:138', 'BSD' => '735793:141', 'BTN' => '735934:148', 'BWP' => '736082:128', 'BYR' => '736210:136', 'BZD' => '736346:146', 'CAD ' => '736492:59', 'CAD' => '736551:86', 'CHF ' => '736637:66', 'CHF' => '736703:84', 'CLP' => '736787:127', 'CNY' => '736914:127', 'COP' => '737041:130', 'CRC' => '737171:140', 'CUP' => '737311:141', 'CVE' => '737452:150', 'CZK' => '737602:160', 'DJF' => '737762:148', 'DKK ' => '737910:59', 'DKK' => '737969:88', 'DOP' => '738057:145', 'DZD' => '738202:144', 'EEK' => '738346:144', 'EGP' => '738490:151', 'ETB' => '738641:135', 'EUR ' => '738776:59', 'EUR' => '738835:73', 'FJD' => '738908:144', 'FKP ' => '739052:51', 'FKP' => '739103:88', 'GBP ' => '739191:51', 'GBP' => '739242:85', 'GHS' => '739327:138', 'GMD ' => '739465:51', 'GMD' => '739516:84', 'GNF' => '739600:139', 'GTQ' => '739739:132', 'GYD' => '739871:146', 'HKD ' => '740017:66', 'HKD' => '740083:89', 'HNL' => '740172:131', 'HRK' => '740303:137', 'HTG' => '740440:82', 'HUF' => '740522:138', 'IDR ' => '740660:59', 'IDR' => '740719:86', 'ILS' => '740805:145', 'INR' => '740950:143', 'IQD' => '741093:152', 'IRR' => '741245:84', 'ISK' => '741329:138', 'JOD' => '741467:146', 'JPY ' => '741613:51', 'JPY' => '741664:83', 'KES' => '741747:144', 'KGS' => '741891:142', 'KHR' => '742033:142', 'KMF' => '742175:146', 'KPW' => '742321:140', 'KRW' => '742461:138', 'KWD' => '742599:153', 'KYD' => '742752:133', 'KZT ' => '742885:66', 'KZT' => '742951:88', 'LKR' => '743039:148', 'MAD' => '743187:156', 'MDL' => '743343:143', 'MKD' => '743486:146', 'MMK' => '743632:128', 'MNT' => '743760:146', 'MOP ' => '743906:51', 'MOP' => '743957:82', 'MRO' => '744039:142', 'MUR' => '744181:142', 'MVR' => '744323:139', 'MWK' => '744462:139', 'MXN' => '744601:128', 'MYR' => '744729:139', 'NAD ' => '744868:59', 'NAD' => '744927:86', 'NGN' => '745013:137', 'NIO' => '745150:142', 'NOK' => '745292:136', 'NPR' => '745428:137', 'NZD' => '745565:139', 'OMR ' => '745704:75', 'OMR' => '745779:80', 'PAB' => '745859:129', 'PEN' => '745988:137', 'PGK' => '746125:137', 'PHP' => '746262:136', 'PKR' => '746398:146', 'PLN' => '746544:144', 'PYG' => '746688:87', 'QAR ' => '746775:73', 'QAR' => '746848:83', 'RON ' => '746931:51', 'RON' => '746982:80', 'RUB' => '747062:149', 'RWF' => '747211:138', 'SAR' => '747349:158', 'SBD' => '747507:155', 'SCR' => '747662:143', 'SDG' => '747805:144', 'SEK' => '747949:136', 'SGD' => '748085:142', 'SHP' => '748227:136', 'SKK' => '748363:140', 'SLL' => '748503:142', 'SOS' => '748645:145', 'STD' => '748790:139', 'SVC' => '748929:141', 'SYP' => '749070:142', 'SZL' => '749212:145', 'THB ' => '749357:58', 'THB' => '749415:85', 'TND' => '749500:148', 'TOP' => '749648:138', 'TRY' => '749786:140', 'TTD' => '749926:157', 'TWD' => '750083:146', 'TZS' => '750229:131', 'UAH' => '750360:86', 'UGX' => '750446:143', 'USD ' => '750589:47', 'USD' => '750636:95', 'UYU' => '750731:143', 'UZS' => '750874:142', 'VEF' => '751016:150', 'VND' => '751166:136', 'VUV ' => '751302:59', 'VUV' => '751361:82', 'WST' => '751443:140', 'XAF' => '751583:154', 'XCD' => '751737:155', 'XOF' => '751892:162', 'XPF ' => '752054:51', 'XPF' => '752105:86', 'YER ' => '752191:66', 'YER' => '752257:83', 'ZAR' => '752340:134', 'ZMK ' => '752474:66', 'ZMK' => '752540:85', ), 'labels/date' => array ( 'day' => '752625:109', 'days_ago' => '752734:122', 'elapsed_1day' => '752856:135', 'elapsed_1hour' => '752991:140', 'elapsed_1minute' => '753131:144', 'elapsed_1month' => '753275:140', 'elapsed_1year' => '753415:139', 'elapsed_days' => '753554:162', 'elapsed_hours' => '753716:164', 'elapsed_minutes' => '753880:168', 'elapsed_months' => '754048:165', 'elapsed_now' => '754213:129', 'elapsed_years' => '754342:163', 'formated' => '754505:197', 'hour' => '754702:113', 'hours' => '754815:113', 'hours_ago' => '754928:124', 'minutes' => '755052:117', 'minutes_ago' => '755169:129', 'month' => '755298:111', 'month_short1' => '755409:109', 'month_short10' => '755518:109', 'month_short11' => '755627:109', 'month_short12' => '755736:109', 'month_short2' => '755845:109', 'month_short3' => '755954:109', 'month_short4' => '756063:109', 'month_short5' => '756172:109', 'month_short6' => '756281:109', 'month_short7' => '756390:109', 'month_short8' => '756499:109', 'month_short9' => '756608:109', 'month1' => '756717:117', 'month10' => '756834:117', 'month11' => '756951:119', 'month12' => '757070:119', 'month2' => '757189:120', 'month3' => '757309:113', 'month4' => '757422:113', 'month5' => '757535:110', 'month6' => '757645:112', 'month7' => '757757:112', 'month8' => '757869:115', 'month9' => '757984:120', 'seconds' => '758104:118', 'weekShort1' => '758222:109', 'weekShort2' => '758331:109', 'weekShort3' => '758440:109', 'weekShort4' => '758549:109', 'weekShort5' => '758658:109', 'weekShort6' => '758767:109', 'weekShort7' => '758876:109', 'year' => '758985:110', 'yesterday' => '759095:117', ), 'labels/field' => array ( 'address' => '759212:118', 'address_city' => '759330:113', 'address_complement' => '759443:126', 'address_country' => '759569:114', 'address_district' => '759683:117', 'address_number' => '759800:115', 'address_postal_code' => '759915:118', 'address_state' => '760033:114', 'address_street' => '760147:112', 'captcha_donotfill' => '760259:149', 'cart_add' => '760408:137', 'cart_add_bag' => '760545:133', 'cart_go' => '760678:125', 'cart_item' => '760803:111', 'cart_items' => '760914:113', 'categories' => '761027:133', 'comment' => '761160:121', 'content' => '761281:118', 'description' => '761399:124', 'folder' => '761523:122', 'hits' => '761645:122', 'info_by' => '761767:108', 'info_posted' => '761875:123', 'info_updated' => '761998:128', 'keywords' => '762126:134', 'location' => '762260:116', 'location_at' => '762376:122', 'media_add_audio' => '762498:128', 'media_add_file' => '762626:129', 'media_add_video' => '762755:128', 'media_continuous_play' => '762883:142', 'media_downloads' => '763025:121', 'media_plays' => '763146:120', 'phone' => '763266:124', 'phone_area' => '763390:124', 'phone_country' => '763514:122', 'phone_number' => '763636:123', 'title' => '763759:122', 'user_identifier' => '763881:136', 'user_password' => '764017:116', 'user_repeat_password' => '764133:133', ), 'labels/lang' => array ( 'aa' => '764266:133', 'ab' => '764399:150', 'ae' => '764549:143', 'af' => '764692:150', 'ak' => '764842:134', 'am' => '764976:149', 'an' => '765125:148', 'ar' => '765273:148', 'as' => '765421:159', 'av' => '765580:143', 'ay' => '765723:139', 'az' => '765862:157', 'ba' => '766019:150', 'be' => '766169:165', 'bg' => '766334:157', 'bh' => '766491:156', 'bi' => '766647:144', 'bm' => '766791:147', 'bn' => '766938:151', 'bo' => '767089:158', 'br' => '767247:143', 'bs' => '767390:143', 'ca' => '767533:143', 'ce' => '767676:151', 'ch' => '767827:144', 'co' => '767971:139', 'cr' => '768110:145', 'cs' => '768255:138', 'cu' => '768393:181', 'cv' => '768574:148', 'cy' => '768722:139', 'da' => '768861:145', 'de' => '769006:141', 'dv' => '769147:158', 'dz' => '769305:151', 'ee' => '769456:135', 'el' => '769591:149', 'en' => '769740:116', 'eo' => '769856:148', 'es' => '770004:144', 'et' => '770148:143', 'eu' => '770291:139', 'fa' => '770430:144', 'ff' => '770574:138', 'fi' => '770712:144', 'fj' => '770856:152', 'fo' => '771008:144', 'fr' => '771152:144', 'fy' => '771296:140', 'ga' => '771436:142', 'gd' => '771578:154', 'gl' => '771732:141', 'gn' => '771873:146', 'gu' => '772019:159', 'gv' => '772178:136', 'ha' => '772314:148', 'he' => '772462:152', 'hi' => '772614:151', 'ho' => '772765:148', 'hr' => '772913:143', 'ht' => '773056:169', 'hu' => '773225:144', 'hy' => '773369:152', 'hz' => '773521:145', 'ia' => '773666:158', 'id' => '773824:160', 'ie' => '773984:158', 'ig' => '774142:132', 'ii' => '774274:149', 'ik' => '774423:143', 'in' => '774566:123', 'io' => '774689:130', 'is' => '774819:148', 'it' => '774967:144', 'iu' => '775111:158', 'iw' => '775269:117', 'ja' => '775386:146', 'ji' => '775532:76', 'jv' => '775608:146', 'ka' => '775754:160', 'kg' => '775914:138', 'ki' => '776052:142', 'kj' => '776194:150', 'kk' => '776344:149', 'kl' => '776493:158', 'km' => '776651:159', 'kn' => '776810:151', 'ko' => '776961:143', 'kr' => '777104:139', 'ks' => '777243:176', 'ku' => '777419:151', 'kv' => '777570:137', 'kw' => '777707:143', 'ky' => '777850:153', 'la' => '778003:137', 'lb' => '778140:165', 'lg' => '778305:140', 'li' => '778445:153', 'ln' => '778598:142', 'lo' => '778740:141', 'lt' => '778881:148', 'lu' => '779029:160', 'lv' => '779189:143', 'mg' => '779332:152', 'mh' => '779484:162', 'mi' => '779646:145', 'mk' => '779791:164', 'ml' => '779955:158', 'mn' => '780113:149', 'mo' => '780262:162', 'mr' => '780424:150', 'ms' => '780574:175', 'mt' => '780749:144', 'my' => '780893:159', 'na' => '781052:151', 'nb' => '781203:165', 'nd' => '781368:159', 'ne' => '781527:154', 'ng' => '781681:145', 'nl' => '781826:146', 'nn' => '781972:169', 'no' => '782141:146', 'nr' => '782287:161', 'nv' => '782448:146', 'ny' => '782594:146', 'oc' => '782740:143', 'oj' => '782883:151', 'om' => '783034:137', 'or' => '783171:147', 'os' => '783318:147', 'pa' => '783465:154', 'pi' => '783619:143', 'pl' => '783762:141', 'ps' => '783903:141', 'pt' => '784044:123', 'qu' => '784167:145', 'rm' => '784312:156', 'rn' => '784468:138', 'ro' => '784606:143', 'ru' => '784749:148', 'rw' => '784897:158', 'sa' => '785055:162', 'sc' => '785217:140', 'sd' => '785357:148', 'se' => '785505:161', 'sg' => '785666:138', 'si' => '785804:155', 'sk' => '785959:147', 'sl' => '786106:152', 'sm' => '786258:147', 'sn' => '786405:139', 'so' => '786544:144', 'sq' => '786688:142', 'sr' => '786830:148', 'ss' => '786978:139', 'st' => '787117:155', 'su' => '787272:150', 'sv' => '787422:140', 'sw' => '787562:144', 'ta' => '787706:148', 'te' => '787854:152', 'tg' => '788006:146', 'th' => '788152:158', 'ti' => '788310:151', 'tk' => '788461:152', 'tl' => '788613:141', 'tn' => '788754:141', 'to' => '788895:146', 'tr' => '789041:141', 'ts' => '789182:139', 'tt' => '789321:142', 'tw' => '789463:130', 'ty' => '789593:148', 'ug' => '789741:147', 'uk' => '789888:160', 'ur' => '790048:137', 'uz' => '790185:144', 've' => '790329:138', 'vi' => '790467:158', 'vo' => '790625:146', 'wa' => '790771:139', 'wo' => '790910:136', 'xh' => '791046:136', 'yi' => '791182:149', 'yo' => '791331:142', 'za' => '791473:146', 'zh' => '791619:158', 'zu' => '791777:133', ), 'labels/layout' => array ( 'assistant_close' => '791910:279', 'assistant_open' => '792189:181', 'editor_flag_green' => '792370:184', 'editor_flag_red' => '792554:191', 'first' => '792745:124', 'last' => '792869:121', 'menu' => '792990:135', 'menu_access' => '793125:151', 'menu_colapse' => '793276:146', 'menu_colapsed' => '793422:128', 'menu_opened' => '793550:126', 'next' => '793676:122', 'panel_left_close' => '793798:151', 'panel_left_open' => '793949:153', 'panel_right_close' => '794102:151', 'panel_right_open' => '794253:153', 'previous' => '794406:127', 'spotlight_end' => '794533:157', 'spotlight_start' => '794690:143', 'tabs' => '794833:119', 'tip_for' => '794952:127', 'top' => '795079:118', ), 'labels/status' => array ( 700 => '795197:116', 720 => '795313:117', 721 => '795430:111', 730 => '795541:118', ), 'layouts' => array ( 'audio_player' => '795659:1839', 'default' => '797498:1194', 'dialog' => '798692:184', 'dialog_basic' => '798876:222', 'dialog_cancel' => '799098:199', 'dialog_close' => '799297:413', 'dialog_select' => '799710:1556', 'dialog_tabs' => '801266:3561', ), 'lists' => array ( 'box' => '804827:311', 'default' => '805138:541', 'details' => '805679:42', 'formulary' => '805721:38', 'html' => '805759:31', 'layered' => '805790:415', 'menu_simple_vertical' => '806205:215', 'table' => '806420:191', 'table_simple' => '806611:184', ), 'modules' => array ( 'audio' => '806795:220', 'banner' => '807015:370', 'box' => '807385:350', 'breadcrumbs' => '807735:317', 'card' => '808052:170', 'cart' => '808222:289', 'comments' => '808511:272', 'comments_add' => '808783:250', 'content' => '809033:231', 'dinamic_blog' => '809264:398', 'dinamic_events' => '809662:384', 'dinamic_galery' => '810046:485', 'dinamic_news' => '810531:357', 'dinamic_podcast' => '810888:406', 'dinamic_products' => '811294:348', 'dinamic_recents' => '811642:408', 'dinamic_videocast' => '812050:835', 'file' => '812885:419', 'footer' => '813304:448', 'formulary' => '813752:210', 'formulary_edit' => '813962:226', 'formulary_system' => '814188:171', 'formulary_view' => '814359:178', 'grid' => '814537:271', 'hits' => '814808:284', 'html' => '815092:195', 'img' => '815287:307', 'languages' => '815594:471', 'list' => '816065:205', 'list_blog' => '816270:242', 'list_card' => '816512:101', 'list_events' => '816613:293', 'list_folder' => '816906:205', 'list_formulary' => '817111:544', 'list_galery' => '817655:370', 'list_glossary' => '818025:216', 'list_info_administrators' => '818241:237', 'list_news' => '818478:249', 'list_podcast' => '818727:243', 'list_products' => '818970:237', 'list_related' => '819207:213', 'list_search_results' => '819420:232', 'list_system' => '819652:103', 'list_videocast' => '819755:767', 'login' => '820522:252', 'navbar' => '820774:643', 'navbottom' => '821417:613', 'navmain' => '822030:449', 'pages' => '822479:337', 'pages_post' => '822816:350', 'post_blog' => '823166:126', 'post_events' => '823292:156', 'post_galery' => '823448:96', 'post_news' => '823544:133', 'post_podcast' => '823677:148', 'post_products' => '823825:121', 'post_videocast' => '823946:141', 'radiolegal' => '824087:304', 'related' => '824391:255', 'search' => '824646:203', 'search_options' => '824849:171', 'sort_blog' => '825020:175', 'system_menu' => '825195:204', 'title' => '825399:226', 'video' => '825625:299', ), 'palettes' => array ( 'default' => '825924:1245', 'white' => '827169:1136', ), 'scripts' => array ( 'empty' => '828305:131', ), 'styles' => array ( 'default' => '828436:56782', 'print' => '885218:1247', ), 'templates' => array ( 'default' => '886465:245', ), 'themes' => array ( 'default' => '886710:183', ), ), 'f' => array ( 'icons' => array ( 'blank.gif' => '886893:68', 'ecolabore-flower.svg' => '886961:1270', 'ecolabore-humperstilshen-alert.png' => '888231:18219', 'ecolabore-humperstilshen-crash.png' => '906450:11061', 'ecolabore-humperstilshen-default.png' => '917511:10383', 'ecolabore-humperstilshen-error.png' => '927894:9283', 'ecolabore-humperstilshen-happy.png' => '937177:9594', 'ecolabore-humperstilshen-question.png' => '946771:10254', 'ecolabore-humperstilshen-tip.png' => '957025:8695', 'ecolabore-humperstilshen-welcome.png' => '965720:10383', 'ecolabore-humperstilshen-whait.png' => '976103:12007', 'hamburger.svg' => '988110:272', 'help64.gif' => '988382:2540', ), 'scripts/ecolabore-humperstilshen' => array ( 'dialog.__properties__.js' => '990922:55', 'dialog.actionCloseAll().js' => '990977:145', 'dialog.eventLoad().js' => '991122:172', 'dialog.eventOpen(id).js' => '991294:254', 'dropdown.__properties__.js' => '991548:61', 'dropdown.eventLoad().js' => '991609:180', 'dropdown.eventOpen(id).js' => '991789:260', 'interface.__properties__.js' => '992049:96', 'interface.actions.dropdownCloseAll().js' => '992145:246', ), 'scripts' => array ( 'ecolabore-humperstilshen.js' => '992391:8447', ), 'styles' => array ( 'ecolabore-basics.css' => '1000838:23429', 'ecolabore-print.css' => '1024267:909', ), ), ); //!packager:end_of_data_index //!file:engine/eclClass/eclClass_app.php; class eclClass_app { // class eclClass_app // const name = 'name'; -> the folder for the application // const menuType = 'section'; -> 'section', 'hidden', 'post', 'domain' // const dataFrom = ''; -> the name of the control to generate the content // const map = 'myModule_create myModule_edit myModule_config'; -> a space separated applications names // const access = 0; -> 0=all 1=connected 2=subscribed 3=member 4=owner or admin // const isDomain = false; -> true creates a subgroup of pages to navigate // const ignoreSubfolders = false; -> true ignore all childrens on the url static function is_child ($me, $name) { // function is_child return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names return array (); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper } // function constructor_helper static function dispatch ($document) { // function dispatch } // function dispatch } // class eclClass_app //!eof:engine/eclClass/eclClass_app.php; //!file:engine/eclClass/eclClass_filter.php; class eclClass_filter { // class eclClass_filter static function create ($fieldName, $control, $formulary) { // function create } // function create static function save ($fieldName, $control, $formulary) { // function save } // function save static function view ($fieldName, $control, $formulary) { // function view } // function view static function scope ($render, $arguments) { // function scope return array (); } // function scope static function target ($document, $value, $arguments) { // function target global $store; } // function target static function column ($document, $data, $name, $field, $url) { // function column return array ('caption' => $document->textMerge ('-')); } // function column } // class eclClass_filter //!eof:engine/eclClass/eclClass_filter.php; //!file:engine/eclClass/eclClass_mod.php; class eclClass_mod { // class eclClass_mod public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule } // function setModule } // class eclClass_mod //!eof:engine/eclClass/eclClass_mod.php; //!file:engine/eclClass/eclClass_scope.php; class eclClass_scope { // class eclClass_scope static function get ($render, $arguments) { // function get } // function get } // class eclClass_scope //!eof:engine/eclClass/eclClass_scope.php; //!file:engine/eclClass/eclClass_tag.php; class eclClass_tag { // class eclClass_tag static function render ($render, $arguments) { // function render return array (); } // function render } // class eclClass_tag //!eof:engine/eclClass/eclClass_tag.php; //!file:engine/eclEngine/eclEngine_application.php; class eclEngine_application { // class eclEngine_application public $applicationName; public $name; public $parent; public $pathway; public $groups; public $access; public $map = array (); public $data = array (); public $id = 0; public $domainId = 0; public $userId = 0; public $ignoreSubfolders = false; public $isDomain = false; public $menuType = 'hidden'; private $childrenByName = array (); private $children = false; public function __construct ($applicationName='system', $name='system', $parent=false, $document=false) { // function __construct global $store; $this->applicationName = $applicationName; $this->name = $name; $this->parent = $parent; if ($parent) { // inherit parent properties $this->pathway = $this->parent->pathway; $this->pathway[] = $this->name; // Vamos propagar propriedades herdadas $this->groups = $parent->groups; $this->access = $parent->access; $this->domainId = $parent->domainId; $this->userId = $parent->userId; } // inherit parent properties $class = 'eclApp_' . $applicationName; if (defined ($class . '::ignoreSubfolders')) $this->ignoreSubfolders = $class::ignoreSubfolders; if (defined ($class . '::dataFrom')) $this->data = $store->control->read ($class::dataFrom); if (defined ($class . '::map')) $this->map = explode (' ', $class::map); if (defined ($class . '::access') and $class::access > $this->access) $this->access = $class::access; if (defined ($class . '::isDomain')) $this->isDomain = $class::isDomain; // menu if (defined ($class . '::menuType')) $this->menuType = $class::menuType; elseif (is_callable (array ($class, 'get_menu_type'))) $this->menuType = $class::get_menu_type ($this, $document); // Chama a classe de aplicação para auxiliar na construção if (is_callable (array ($class, 'constructor_helper'))) $class::constructor_helper ($this, $document); } // function __construct public function getMap ($applicationName=false) { // function getMap global $mapPrepend, $map, $mapAppend; static $openedMaps = array (); if ($applicationName == false) $applicationName = $this->applicationName; if (isset ($openedMaps[$applicationName])) return $this->map = $openedMaps[$applicationName]; $openedMaps[$applicationName] = array (); if (SYSTEM_IS_PACKED) { // internal map if (isset ($mapPrepend[$applicationName])) $openedMaps[$applicationName] = $mapPrepend[$applicationName]; if (isset ($map[$applicationName])) $openedMaps[$applicationName] = array_merge ($openedMaps[$applicationName], $map[$applicationName]); if (isset ($mapAppend[$applicationName])) $openedMaps[$applicationName] = array_merge ($openedMaps[$applicationName], $mapAppend[$applicationName]); $this->map = $openedMaps[$applicationName]; return; } // internal map $result = array (); list ($prefix) = explode ('_', $applicationName, 2); $file = FOLDER_LIBRARY . $prefix . '/app_' . $applicationName . '_prepend.txt'; if (is_file ($file)) { // open file foreach (explode (LF, file_get_contents ($file)) as $line) { // each line $line = trim ($line); if (preg_match ('%^[a-zA-Z0-9_]+$%', $line)) $result[] = $line; } // each line } // open file if (isset ($map[$applicationName])) $result = array_merge ($result, $map[$applicationName]); $file = FOLDER_LIBRARY . $prefix . '/app_' . $applicationName . '_append.txt'; if (is_file ($file)) { // open file foreach (explode (LF, file_get_contents ($file)) as $line) { // each line $line = trim ($line); if (preg_match ('%^[a-zA-Z0-9_]+$%', $line)) $result[] = $line; } // each line } // open file $openedMaps[$applicationName] = $result; $this->map = $openedMaps[$applicationName]; } // function getMap public function child ($name, $document=false) { // function child if (isset ($this->childrenByName[$name])) return $this->childrenByName[$name]; // Será que os filhos já foram todos abertos? if ($this->children !== false) return false; // Vamos percorrer o mapa, testando cada aplicação foreach ($this->map as $applicationName) { // each application $class = 'eclApp_' . $applicationName; if ( (defined ($class . '::name') and $name == $class::name) or (is_callable (array ($class, 'is_child')) and $class::is_child ($this, $name, $document))) { // child found $this->childrenByName[$name] = new eclEngine_application ($applicationName, $name, $this, $document); return $this->childrenByName[$name]; } // child found } // each application // Não existe um filho com este nome return false; } // function child public function children ($document=false) { // function children if (!is_array ($this->children)) { // open children $this->children = array (); foreach ($this->map as $applicationName) { // each application $class = 'eclApp_' . $applicationName; $names = array (); if (defined ($class . '::name')) $names[] = $class::name; elseif (is_callable (array ($class, 'get_children_names'))) $names = $class::get_children_names ($this, $document); foreach ($names as $name) { // each name // Se este filho não foi chamado pelo nome, crie-o if (!isset ($this->childrenByName[$name])) $this->childrenByName[$name] = new eclEngine_application ($applicationName, $name, $this, $document); // Vamos copiá-lo para a lista em ordem de índice $this->children[] = $this->childrenByName[$name]; } // each name } // each application } // open children return $this->children; } // function children public function menuChildren ($document, $name=false) { // function menuChildren $menu = array (); if (!is_array ($this->children)) { // open children foreach ($this->map as $applicationName) { // each application $class = 'eclApp_' . $applicationName; $menuType = 'hidden'; if (defined ($class . '::menuType')) $menuType = $class::menuType; elseif (is_callable (array ($class, 'get_menu_type'))) $menuType = $class::get_menu_type ($this); switch ($menuType) { // switch menu type case 'post': if (!$name or !$class::is_child ($this, $name)) break; if (!isset ($this->childrenByName[$name])) $this->childrenByName[$name] = new eclEngine_application ($applicationName, $name, $this); // Vamos copiá-lo para a lista em ordem de índice if ($document->access ($this->childrenByName[$name]->access, $this->childrenByName[$name]->groups)) $menu[] = $this->childrenByName[$name]; break; case 'hidden': case 'domain': break; case 'section': default: $names = array (); if (defined ($class . '::name')) $names[] = $class::name; elseif (is_callable (array ($class, 'get_children_names'))) $names = $class::get_children_names ($this, $document); foreach ($names as $childName) { // each name // Se este filho não foi chamado pelo nome, crie-o if (!isset ($this->childrenByName[$childName])) $this->childrenByName[$childName] = new eclEngine_application ($applicationName, $childName, $this); // Vamos copiá-lo para a lista em ordem de índice if ($document->access ($this->childrenByName[$childName]->access, $this->childrenByName[$childName]->groups)) $menu[] = $this->childrenByName[$childName]; } // each name } // switch type } // each application return $menu; } // open children foreach ($this->children as $child) { // each child if ($child->menuType == 'hidden') continue; if ($child->menuType == 'post' and $child->name != $name) continue; if (!$document->access ($child->access, $child->groups)) continue; $menu[] = $child; } // each child return $menu; } // function menuChildren public function reset () { // function reset $this->children = false; $this->childrenByName = array (); } // function reset public function dispatch ($document) { // function dispatch $document->data = array_replace_recursive (array ('flags' => $this->flags ()), $this->data); $class = 'eclApp_' . $this->applicationName; if (is_callable (array ($class, 'dispatch'))) $class::dispatch ($document); } // function dispatch public function remove () { // function remove foreach ($this->children () as $child) { // each child $child->remove (); } // each child $this->reset (); $class = 'eclApp_' . $this->applicationName; if (is_callable ($class . '::remove')) $class::remove ($this); } // function remove public function flags () { // function flags if (is_object ($this->parent)) $flags = $this->parent->flags (); else $flags = array (); // Agora vamos fundir com as flags deste objeto - se houverem if (isset ($this->data['flags'])) $flags = array_replace ($flags, $this->data['flags']); return $flags; } // function flags public function findChild ($name) { // function findChild global $store, $system; if ($this->domainId) { // from domain $pathway = $store->domainContent->pathway ($this->domainId, $name); } // from domain elseif ($this->userId) { // from profile $pathway = $store->userContent->pathway ($this->userId, $name); } // from profile if ($pathway === false) return false; $me = $system; foreach ($pathway as $folder) { // loop folders $me = $me->child ($folder); if (!$me) return false; } // loop folders if (!$me) return false; return $me; } // function findChild public function findModuleTarget ($document, &$arguments) { // function findModuleTarget if (!$document->domain->domainId) return false; if (!isset ($arguments[0])) { // no arguments $arguments = array (false, '0'); return $document->application; } // no arguments if (is_numeric ($arguments[0])) { // numeric $arguments[1] = $arguments[0]; return $document->application; } // numeric if (!isset ($arguments[1]) or !is_numeric ($arguments[1])) $arguments[1] = '0'; $name = $arguments[0]; if (isset ($document->application->data['name']) and $name == $document->application->data['name']) return $document->application; if ($name == '-index') return $document->domain->child (''); if ($name == '-recents') return $document->domain->child ('-recents'); $me = $document->application->findChild ($name); if (!$me or !$document->access ($me->access, $me->groups)) return false; return $me; } // function findModuleTarget public function ignoreSession ($set=123) { // function ignoreSession static $ignore = false; if ($set != 123) $ignore = $set; return $ignore; } // function ignoreSession } // class eclEngine_application //!eof:engine/eclEngine/eclEngine_application.php; //!file:engine/eclEngine/eclEngine_document.php; class eclEngine_document { // class eclEngine_document // O preenchimento destas propriedades determinará a geração do documento: public $mode = SYSTEM_HOSTING_MODE; public $protocol = 'http'; // string => the protocol used in the comunication public $beta = ''; public $host = 'localhost/'; // string => the main host public $pathway = array ('-blank'); // array => the pathway to route the application public $lang = false; // string | false => the language or auto define public $actions = array (); // array => the actions from url public $received = array (); // array => the posted data from formularies public $session = array (); // array => the session data $io->session->cache private $sid = 0; // o id da sessão private $cookie = true; // bool => If user agent accepts cookies public $rewriteEngine = false; // bool => if the Apache Rewrite Engine is enabled // Após o início da seção e do roteamento, estas propriedades estarão definidas: public $user; // object eclEngine_application => the user connected public $domain; // object eclEngine_application => the domain of this application public $subscription; // object eclEngine_application => the relationcheep between the user and the domain public $application; // object eclEngine_application => the application to be dispatched // Estas propriedades são preenchidas em __construct() com objetos auxiliares: public $render; // object eclEngine_render => the renderizer engine public $mod; // object eclEngine_mod => a loader for modules // Estas propriedades auxiliam no processamento da renderização: public $defaultLang; // string => the preferred language if $lang is not available public $charset; // string => the charset public $data = array (); // array is the main content of the document public $buffer = ''; // string => the output document to be sent public $ids = array (); // array ids used in HTML id property to prevent duplicated identifiers public $templateEditable = false; // bool true if the user can edit template modules public $contentEditable = false; // bool true if the online visual editor is enable public $printableLayout = false; // bool true advises modules that the user wish to print the document public $reload = false; // false or an url string to redirect the browser public $preload = array (); // array eclEngine_application => an array with the applications to be dispatched before the main application public function __construct () { // function __construct global $system; $this->render = new eclEngine_render ($this); $this->mod = new eclEngine_mod ($this); $this->user = $system->child (SYSTEM_PROFILES_URI)->child ('-anonimous'); $this->subscription = $system->child (SYSTEM_PROFILES_URI)->child ('-anonimous'); } // function __construct public function __clone () { // function __clone $this->actions = array (); // array => the actions from url $this->received = array (); // array => the posted data from formularies unset ($this->session); $this->session = array (); // array => the session data $io->session->cache $this->mod = new eclEngine_mod ($this); $this->render = new eclEngine_render ($this); $this->data = array (); // array is the main content of the document $this->buffer = ''; // string => the output document to be sent $this->ids = array (); // array ids used in HTML id property to prevent duplicated identifiers $this->templateEditable = false; $this->contentEditable = false; $this->printableLayout = false; $this->reload = false; $this->preload = array (); // array eclEngine_application => an array with the applications to be dispatched before the main application } // function __clone public function route ($request=false) { // function route global $system; if (is_object ($request)) { // get request params $this->protocol = $request->protocol; $this->beta = $request->beta; $this->host = $request->host; $this->pathway = $request->pathway; $this->lang = $request->lang; $this->actions = $request->actions; $this->received = $request->received; $this->rewriteEngine = $request->rewriteEngine; } // get request params // Vamos procurar pelo nome do domínio $pathway = $this->pathway; $domainName = array_shift ($pathway); $this->domain = $system->child ($domainName); // Se o domínio não existir, vamos forçar a aplicação systemDefault if (!is_object ($this->domain)) $this->domain = $system->child ('-default'); if (!count ($pathway)) $pathway = array (''); // Vamos rotear as subpastas chamando outra função if ($this->domain->ignoreSubfolders == false) $this->application = $this->routeSubfolders ($this->domain, $pathway); else $this->application = $this->domain; // Se neste ponto não tivermos encontrado uma aplicação, novamente procuramos por uma aplicação padrão if (!is_object ($this->application)) { // force app_system_error $this->domain = $system->child ('-default'); $this->application = $this->domain; } // force app_system_error } // function route private function routeSubfolders ($me, $pathway) { // function routeSubfolders $application = false; $folder = array_shift ($pathway); $application = $me->child ($folder); // a aplicação foi encontrada if (is_object ($application)) { // route children // Se a aplicação ignorar subpastas, retornamos esta aplicação if ($application->ignoreSubfolders) return $application; // Se não houverem mais subpastas, retornamos esta aplicação if (!count ($pathway)) return $application; // Se ainda não retornamos, rotearemos a próxima subpasta $application = $this->routeSubfolders ($application, $pathway); // Se o roteamento encontrou uma aplicação, retornaremos daqui if (is_object ($application)) return $application; } // route children // Se o filho não existir, procuramos uma aplicação que responda por padrão $application = $me->child ('-default'); // Se não existir uma aplicação padrão, retornamos daqui if ($application === false) return false; // Se a aplicação ignorar subpastas, retornamos esta aplicação if ($application->ignoreSubfolders) return $application; // Se não houverem mais subpastas, retornamos esta aplicação if (!count ($pathway)) return $application; // Se ainda não retornamos, rotearemos a próxima subpasta return $this->routeSubfolders ($application, $pathway); } // function routeSubfolders public function sessionStart ($ignore=false) { // function sessionStart global $io, $store, $system; if ($ignore) return; $this->session = &$io->session->cache; if (!defined ('ADMIN_IDENTIFIER') or !defined ('ADMIN_PASSWORD')) return; if (isset ($this->actions['logout'])) { // logout $this->session = array (); unset ($this->actions['logout']); return; } // logout if (isset ($this->actions['login'])) { // login $instance = isset ($this->actions['login'][1]) ? $this->actions['login'][1] : '1'; $name = isset ($this->received['login' . $instance . 'fields_name']) ? strtolower ($this->received['login' . $instance . 'fields_name']) : ''; $password = isset ($this->received['login' . $instance . 'fields_password']) ? strtolower ($this->received['login' . $instance . 'fields_password']) : ''; if ($name == ADMIN_IDENTIFIER and md5 ($password) == ADMIN_PASSWORD) { // admin $user['name'] = ADMIN_IDENTIFIER; $user['id'] = true; $user['password'] = ADMIN_PASSWORD; } // admin elseif (defined ('DATABASE_ENABLED') and DATABASE_ENABLED and preg_match ('/^[a-z0-9_-]+$/', $name)) $user = $store->user->open ($name); else $user = array (); if (isset ($user['password']) and $user['password'] == md5 ($password)) { // login pass true $this->session['user_id'] = $user['id']; $this->session['user_name'] = $name; } // login pass true else { // invalid login $this->mod->humperstilshen->loginError = true; } // invalid login } // login elseif (isset ($this->session['time']) and $this->session['time'] + SYSTEM_SESSION_TTL < TIME) { // session expired $this->session = array (); } // session expired if (isset ($this->actions['session'][1])) { // check session while (@ob_end_clean ()); if ($this->actions['session'][1] == 'check') { // check remaining time if (!isset ($this->session['time'])) print '0'; elseif (TIME - $this->session['time'] > SYSTEM_SESSION_TTL) print '0'; else print SYSTEM_SESSION_TTL - (TIME - $this->session['time']); exit; } // check remaining time $this->session['time'] = TIME; $io->close (); print SYSTEM_SESSION_TTL; exit; } // check session if (isset ($this->session['user_name'][0])) { // connected $this->user = $system->child (SYSTEM_PROFILES_URI)->child ($this->session['user_name']); if ($subscription = $store->domainContent->getUserSubscription ($this)) $this->subscription = $subscription; if (!isset ($this->session['time'])) { // first load $this->session['time'] = TIME; $this->preload[] = $this->user->child ('-welcome'); } // first load else { // else load $this->session['time'] = TIME; } // else load } // connected if (isset ($this->actions['session'])) { // keep connected $io->close (); print 'fail'; exit; } // keep connected } // function sessionStart public function dispatch () { // function dispatch global $system; // Antes de despachar a aplicação, definiremos o idioma if (isset ($this->domain->data['flags']['default_lang'])) $this->defaultLang = $this->domain->data['flags']['default_lang']; elseif (defined ('SYSTEM_DEFAULT_LANGUAGE')) $this->defaultLang = SYSTEM_DEFAULT_LANGUAGE; else $this->defaultLang = 'en'; if ($this->lang == false) $this->lang = $this->defaultLang; // Definiremos o conjunto de caractéres if (isset ($this->application->flags['default_charset'])) $this->charset = $this->application->flags['default_charset']; else $this->charset = SYSTEM_DEFAULT_CHARSET; // Layout para impressão if ($this->actions ('layout', 'print')) $this->printableLayout = true; // Caso o acesso seja restrito, desviaremos o controle para outra aplicação if (!$this->access ($this->application->access)) { // access denied $application = $system->child ('-access-denied'); $application->pathway = $this->application->pathway; $application->groups = $this->application->groups; $application->access = $this->application->access; $application->parent = $this->application->parent; $this->application = $application; } // access denied else { // normal access // busca por aplicações de alerta if (isset ($this->actions['preload']) and count ($this->actions['preload']) > 1) { // preload application array_shift ($this->actions['preload']); $preload = $system->child ('-preload'); foreach ($this->actions['preload'] as $name) { // loop names $preload = $preload->child ($name); if ($preload === false) break; if ($preload->ignoreSubfolders) break; } // loop names if ($preload !== false) $this->preload[] = $preload; } // preload application // rodaremos aplicações preliminares foreach ($this->preload as $application) { // each preload application $application->dispatch ($this); } // each preload application } // normal access // Finalmente, despacharemos a aplicação $this->application->dispatch ($this); } // function dispatch public function render () { // function render global $io, $store, $system; if (SYSTEM_HTTPS_REDIRECT and $this->protocol != 'https') $this->reload = $this->url (true, true, true, 'https'); if ($this->reload) { // reload header ('Location: ' . $this->reload); $this->buffer = ''; } // reload if ($this->buffer != '') return; // Idioma e codificação $this->data['lang'] = $this->lang; $this->data['charset'] = $this->charset; // Data da geração do documento if (isset ($this->application->data['updated'])) $this->data['date'] = date ('c', $this->application->data['updated']); else $this->data['date'] = date ('c'); // Moeda corrente if (isset ($this->data['flags']['currency'])) $this->data['currency'] = $this->data['flags']['currency']; else $this->data['currency'] = SYSTEM_DEFAULT_CURRENCY; // Nome e código da moeda corrente $currency = $store->control->read ('labels/currency/' . $this->data['currency']); if (isset ($currency['text']['caption'])) $this->data['currency_caption'] = $currency['text']['caption']; else $this->data['currency_caption'] = $this->textMerge ($this->data['currency']); if (isset ($currency['local']['symbol'])) $this->data['currency_symbol'] = $currency['local']['symbol']; else $this->data['currency_symbol'] = $this->data['currency']; // Folha de estilo if (isset ($this->data['flags']['modLayout_sharedStyle'])) { // set shared references $this->data['url_styles'] = $this->urlFiles ($this->data['flags']['modLayout_sharedStyle'], true, '-shared'); $this->data['url_scripts'] = $this->urlFiles ($this->data['flags']['modLayout_sharedScript'], true, '-shared'); } // set shared references else { // define paths $template = $store->domainExtras->openChild ($this->domain->domainId, MODE_TEMPLATE, 0, 'templates/default'); if (isset ($template['updated'])) { // updated $date = TIME; $this->data['url_styles'] = $this->url (array ($this->domain->name, '-styles', 'ecolabore-generated-template-' . $date . '.css'), false); $this->data['url_icons'] = $this->url (array ($this->domain->name, '-icons', 'ecolabore-icons-' . $date . '.svg'), false); $this->data['url_scripts'] = $this->url (array ($this->domain->name, '-scripts', 'ecolabore-scripts-' . $date . '.js'), false); } // updated else { // static $this->data['url_styles'] = $this->url (array ($this->domain->name, '-styles', 'ecolabore-generated-template.css'), false); $this->data['url_icons'] = $this->url (array ($this->domain->name, '-icons', 'ecolabore-icons.svg'), false); $this->data['url_scripts'] = $this->url (array ($this->domain->name, '-scripts', 'ecolabore-scripts.js'), false); } // static } // define paths // Flags de acesso if ($this->access (1)) { // user is connected $this->data['user_is_connected'] = 1; if ($this->access (2)) { // user is subscribed $this->data['user_is_subscribed'] = 1; if ($this->access (3)) { // user is member $this->data['user_is_member'] = 1; if ($this->access (4)) $this->data['user_is_admin'] = 1; } // user is member } // user is subscribed } // user is connected if ($this->contentEditable) $this->data['editor_is_enabled'] = 1; // Renderiza o documento if ($this->printableLayout) $documentBase = $store->control->read ('base/print'); elseif (isset ($this->data['flags']['modLayout_base']) and $store->control->read ('base/' . $this->data['flags']['modLayout_base'])) $documentBase = $store->control->read ('base/' . $this->data['flags']['modLayout_base']); else $documentBase = $store->control->read ('base/responsive'); if (!isset ($documentBase['html'])) exit ('Template not found or not valid'); if (isset ($documentBase['parsed'])) $this->render->render_tags_level ($documentBase['parsed']); else $this->render->render_tags ($documentBase['html']); // Cola os recortes $this->renderCuts (); // Recolhe o documento pronto $this->buffer = $this->render->buffer; } // function render private function renderCuts () { // function renderCuts $render = $this->render; if (isset ($render->cuts['style'])) $render->cuts['style'] = $render->tags['style_open'] . CRLF . $render->cuts['style'] . $render->tags['style_close'] . CRLF; if (isset ($render->cuts['script']) or isset ($render->cuts['footerscript'])) { // script if (isset ($render->cuts['script'])) $render->cuts['script'] = $render->tags['script_open'] . CRLF . $render->cuts['script']; else $render->cuts['script'] = $render->tags['script_open'] . CRLF; if (isset ($render->cuts['footerscript'])) $render->cuts['script'] .= $render->cuts['footerscript']; $render->cuts['script'] .= $render->tags['script_close'] . CRLF; } // script for ($index = $render->pasteIndex; $index; $index--) { // loop cuts if (isset ($render->cuts[$render->pasteNames[$index]])) $render->buffer = substr_replace ($render->buffer, $render->cuts[$render->pasteNames[$index]], $render->pastePointer[$index], 0); } // loop cuts } // function renderCuts public function access ($level, $groups=false) { // function access if (!$level) return true; if (!defined ('ADMIN_IDENTIFIER')) return false; if (!$this->user->userId and $this->user->name != ADMIN_IDENTIFIER) return false; if ($level == 1) return true; if ($level == 2 and $this->subscription->domainId) return true; if ($groups === false) $groups = $this->application->groups; foreach ($groups as $group) { // walk groups list $status = $group->check ($this); if ($status >= $level) return true; } // walk groups list return false; } // function access public function actions () { // function actions $args = func_get_args (); if (!isset ($this->actions[$args[0]])) return false; $actions = $this->actions[$args[0]]; foreach ($args as $arg) { // each argument if ($arg != array_shift ($actions)) return false; } // each argument return true; } // function actions public function createFormulary ($controlName=false, $data=false, $prefix='edit') { // function createFormulary return new eclEngine_formulary ($this, $controlName, $data, $prefix); } // function createFormulary public function createListItem ($data=false, $local=array ()) { // function createListItem return new eclEngine_listItem ($this, $data, $local); } // function createListItem public function createMail () { // function createMail return new eclIo_smtp (); } // function createMail public function createModule ($name, $arguments=array ()) { // function createModule if (!preg_match ('/^[a-z][a-z0-9_]*$/', $name)) $name = 'default'; $mod = new eclEngine_module ($this); $this->mod->$name->setModule ($mod, $arguments); if (isset ($mod->data['local']['name'])) $name = $mod->data['local']['name']; if (isset ($this->ids[$name])) { // more instances $this->ids[$name]++; $mod->data['local']['name'] = $name . '_' . $this->ids[$name]; } // more instances else { // first instance $this->ids[$name] = 1; $mod->data['local']['name'] = $name; } // first instance return $mod; } // function createModule public function dataMerge ($data) { // function dataMerge global $store; if (is_string ($data)) $data = $store->control->read ($data); foreach ($data as $key => $value) { // each value switch ($key) { // switch key case 'text': case 'flags': case 'local': if (!is_array ($value)) break; foreach ($value as $field => $content) { // each field $this->data[$key][$field] = $content; } // each field break; default: $this->data[$key] = $value; } // switch key } // each value } // function dataMerge public function dataReplace ($data) { // function dataReplace global $store; if (is_string ($data)) $data = $store->control->read ($data); $this->data = array_replace_recursive (array ('flags' => $this->application->flags ()), $data); } // function dataReplace public function selectLanguage ($field) { // function selectLanguage static $cs = array (0 => 'UTF-8', 1 => 'ISO-8859-1'); // Se não houver conteúdo if (!is_array ($field) or !$field) return array (1 => '', 3 => $this->lang); // Vamos procurar o conteúdo no idioma do documento if (isset ($field[$this->lang])) { // found lang $content = $field[$this->lang]; $content[TEXT_LANG] = $this->lang; } // found lang elseif (isset ($field[$this->defaultLang])) { // default lang $content = $field[$this->defaultLang]; $content[TEXT_LANG] = $this->defaultLang; } // default lang else { // next language $lang = key ($field); $content = current ($field); $content[TEXT_LANG] = $lang; } // next language // Se não for especificada uma codificação if (!isset ($content[TEXT_CHARSET])) $content[TEXT_CHARSET] = 0; // UTF-8 // Se o conteúdo estiver em uma codificação diferente da do documento if (isset ($cs[$content[TEXT_CHARSET]]) and $cs[$content[TEXT_CHARSET]] != $this->charset) $content[TEXT_CONTENT] = mb_convert_encoding ($content[TEXT_CONTENT], $this->charset, $cs[$content[TEXT_CHARSET]]); return $content; } // function selectLanguage public function textRender ($field) { // function textRender $render = $this->render; $buffer = $render->buffer; $render->buffer = ''; $render->render ($this->selectLanguage ($field)); $result = $render->buffer; $render->buffer = $buffer; return $result; } // function textRender public function textMerge () { // function textMerge $result[$this->lang][TEXT_CONTENT] = ''; if ($this->charset == 'ISO-8859-1') $result[$this->lang][TEXT_CHARSET] = 1; $result[$this->lang][TEXT_HTML] = 2; foreach (func_get_args () as $field) { // each field if (is_string ($field)) $result[$this->lang][TEXT_CONTENT] .= $field; elseif (is_array ($field)) { // select language $content = $this->selectLanguage ($field); $result[$this->lang][TEXT_CONTENT] .= $content[TEXT_CONTENT]; } // select language elseif (is_int ($field)) $result[$this->lang][TEXT_CONTENT] .= strval ($field); } // each field return $result; } // function textMerge public function url ($pathway=true, $lang=true, $actions=true, $protocol=true) { // function url if ($protocol === true) $protocol = $this->protocol . '://'; elseif ($protocol === false) $protocol = 'http://'; else $protocol .= '://'; // Pathway if ($pathway === true) $pathway = $this->application->pathway; elseif (!is_array ($pathway) or !$pathway) $pathway = array ($this->domain->name); // Lang if ($lang === true) $lang = $this->lang; if ($lang !== false and $lang != $this->defaultLang) $pathway[] = $lang; // Actions if ($actions !== false) { // actions if (isset ($this->session['sid'])) { // add sid if (is_string ($actions)) $actions .= '_sid-' . $this->session['sid']; else $actions = '_sid-' . $this->session['sid']; } // add sid if (is_string ($actions)) $pathway[] = $actions; } // actions if ($this->mode == 0) { // hide default domain name if ($pathway[0] == SYSTEM_DEFAULT_DOMAIN_NAME or $pathway[0] == '-default') array_shift ($pathway); else $pathway[0] = '-' . $pathway[0]; } // hide default domain name elseif ($this->mode == 2) { // virtual hosts enabled $domain = array_shift ($pathway); if ($domain == SYSTEM_DEFAULT_DOMAIN_NAME) $url = $protocol . $this->beta . SYSTEM_HOST . '/'; else $url = $protocol . $this->beta . $domain . '.' . SYSTEM_HOST . '/'; if (!$this->rewriteEngine) { // add script name if (!$pathway) { // empty if (SYSTEM_SCRIPT_NAME == 'index.php') return $url; else return $url . SYSTEM_SCRIPT_NAME; } // empty $url .= SYSTEM_SCRIPT_NAME . '?url='; } // add script name if ($pathway) $url .= implode ('/', $pathway); return $url; } // virtual hosts enabled $url = $protocol . $this->host; if (!$this->rewriteEngine) { // add script name if (!$pathway) { // empty if (SYSTEM_SCRIPT_NAME == 'index.php') return $url; else return $url . SYSTEM_SCRIPT_NAME; } // empty $url .= SYSTEM_SCRIPT_NAME . '?url='; } // add script name $url .= implode ('/', $pathway); return $url; } // function url public function urlFiles ($file, $domain=true, $special='-files') { // function urlFiles if (is_bool ($domain)) $domain = $this->domain->name; if (SYSTEM_HOSTING_MODE == 2) { // virtual hosts enabled if ($domain == SYSTEM_DEFAULT_DOMAIN_NAME) $url = $this->protocol . '://' . $this->beta . SYSTEM_HOST . '/'; else $url = $this->protocol . '://' . $this->beta . $domain . '.' . SYSTEM_HOST . '/'; if (!$this->rewriteEngine) $url .= SYSTEM_SCRIPT_NAME . '?url='; $url .= $special . '/' . $file; return $url; } // virtual hosts enabled $url = $this->protocol . '://' . $this->host; if (!$this->rewriteEngine) $url .= SYSTEM_SCRIPT_NAME . '?url='; if (SYSTEM_HOSTING_MODE == 0) return $url . $special . '/' . $file; return $url . $domain . '/' . $special . '/' . $file; } // function urlFiles } // class eclEngine_document //!eof:engine/eclEngine/eclEngine_document.php; //!file:engine/eclEngine/eclEngine_formulary.php; class eclEngine_formulary extends eclEngine_listItem { // class eclEngine_formulary public $document; public $application; public $protocol = true; public $pathway = true; public $lang = true; public $action = true; public $multipart = false; public $data; public $flags = array (); public $received; public $prefix; public $errorMsg = false; public $required = false; public $hidden = array (); public $posteriori = 0; // 0=all 1=normal_only 2=posteriori_only public $submited = false; private $receivedCommands; private $baseTarget = ''; private $baseName = ''; public $control = array (); public $children = array (); private $level = 0; private $tower = array (); private $index = 0; public function __construct ($document, $controlName=false, $data=array (), $prefix='edit') { // function __construct global $store; $this->document = $document; $this->application = $document->application; $this->received = $document->received; if (isset ($document->data['flags'])) $this->flags = $document->data['flags']; $this->data = $data; $this->prefix = $prefix; if ($controlName !== false) { // open control if (is_array ($controlName)) $this->control = $controlName; else $this->control = $store->control->read ($controlName); if (isset ($this->control['flags'])) $this->flags = array_replace ($this->flags, $this->control['flags']); if (isset ($this->flags['prefix'])) $this->prefix = $this->flags['prefix']; if (isset ($this->flags['action'])) $this->action = $this->flags['action']; } // open control // check formulary id if (!$this->prefix or isset ($document->ids[$this->prefix])) $this->control['children'] = array ('_start', '_formularyIdCrash', '_end'); else { // correct insertion $document->ids[$this->prefix] = 1; $this->hidden[$this->prefix] = 'yes'; if (isset ($this->received[$this->prefix])) $this->submited = true; $this->prefix .= '_'; } // correct insertion if (isset ($this->control['children'])) $this->control['children'] = array_values ($this->control['children']); } // function __construct public function command ($command) { // function command if (!isset ($this->receivedCommands)) { // load commands if (!$this->submited) $this->receivedCommands = array (); else { // received $start = strlen ($this->prefix); foreach (array_keys ($this->received) as $key) { // each key if (substr ($key, 0, $start) != $this->prefix) continue; if (substr ($key, $start, 8) == 'command_') $this->receivedCommands[substr ($key, $start + 8)] = true; } // each key } // received } // load commands if (isset ($this->receivedCommands[$command])) return true; return false; } // function command public function levelUp ($control) { // function levelUp if (!isset ($control['children'])) return; $control['children'] = array_values ($control['children']); $this->level++; $this->tower[$this->level] = array ( 'children' => $this->children, 'control' => $this->control, 'index' => $this->index ); $this->children = array (); $this->control = $control; $this->index = 0; } // function levelUp public function insertControlChildren ($control) { // function insertControlChildren if (!isset ($control['children'])) return; $control['children'] = array_values ($control['children']); $this->level++; $this->tower[$this->level] = array ( 'control' => $this->control, 'index' => $this->index ); $this->control = $control; $this->index = 0; } // function insertControlChildren private function nextControl () { // function nextControl do { // loop levels if (isset ($this->control['flags']['base_target'])) $this->baseTarget = $this->control['flags']['base_target']; else $this->baseTarget = ''; if (isset ($this->control['flags']['base_name'])) $this->baseName = $this->control['flags']['base_name'] . '_'; else $this->baseName = ''; if (isset ($this->control['children'][$this->index])) { // child found $this->index++; return $this->control['children'][$this->index - 1]; } // found if (!$this->level) return false; $floor = $this->tower[$this->level]; if (isset ($floor['children'])) { // children level down end ($floor['children'])->children = $this->children; $this->children = $floor['children']; } // children level down $this->control = $floor['control']; $this->index = $floor['index']; unset ($this->tower[$this->level]); $this->level--; } // loop levels while (true); } // function nextControl public function create () { // function create global $store; $this->children = array (); $this->index = 0; if (!isset ($this->control['children'])) return $this; while ($name = $this->nextControl ()) { // each child if (is_string ($name)) { // open control if ($name[0] == '_') $name = 'system_form' . $name; $control = $store->control->read ($name); } // open control elseif (is_array ($name) and isset ($name['flags']['field_name'])) { // embed control $control = $name; $name = $control['flags']['field_name']; } // embed control else continue; // condition if (isset ($control['flags']['condition']) and !$this->condition ($control['flags']['condition'])) continue; // display field if (isset ($control['flags']['field_display']) and !$this->condition ($control['flags']['field_display'])) continue; // field name if (isset ($control['flags']['field_name'])) $fieldName = $this->prefix . $this->baseName . $control['flags']['field_name']; else $fieldName = $this->prefix . $this->baseName . $name; // required if (isset ($control['flags']['required'])) { // required $this->required = true; $control['required'] = 1; } // required // help if (isset ($control['flags']['help'])) $control['help'] = 1; // filter if (isset ($control['flags']['filter'])) { // use filter if (preg_match ('%^[a-z][a-zA-Z0-9_]*$%', $control['flags']['filter'])) { // valid filter name $filter = 'eclFilter_' . $control['flags']['filter']; if (isset ($control['flags']['view'])) $item = $filter::view ($fieldName, $control, $this); else $item = $filter::create ($fieldName, $control, $this); if (is_object ($item)) $this->appendChild ($item); } // valid filter name } // use filter else { // no filter if (isset ($control['flags']['type'])) $type = $control['flags']['type']; else $type = 'unknown'; $this->appendChild ($name, array ( 'name' => $fieldName, 'type' => $type )); } // no filter } // each child return $this; } // function create public function save ($posteriori=0) { // function save global $store; $this->index = 0; if (!$this->submited) return false; if (!isset ($this->control['children'])) return false; while ($name = $this->nextControl ()) { // each child if (is_string ($name)) { // open control if ($name[0] == '_') continue; $control = $store->control->read ($name); } // open control elseif (is_array ($name) and isset ($name['flags']['field_name'])) { // embed control $control = $name; $name = $control['flags']['field_name']; } // embed control else continue; if (!isset ($control['flags']['filter'])) continue; if (!preg_match ('%^[a-z][a-zA-Z0-9_]*$%', $control['flags']['filter'])) continue; if (isset ($control['flags']['condition']) and !$this->condition ($control['flags']['condition'])) continue; if (isset ($control['flags']['posteriori']) and $posteriori == 1) continue; if (!isset ($control['flags']['posteriori']) and $posteriori == 2) continue; if (isset ($control['flags']['view'])) continue; if (isset ($control['flags']['field_name'])) $fieldName = $this->prefix . $this->baseName . $control['flags']['field_name']; else $fieldName = $this->prefix . $this->baseName . $name; $filter = 'eclFilter_' . $control['flags']['filter']; $filter::save ($fieldName, $control, $this); } // each child if ($this->errorMsg) return false; return true; } // function save public function restore ($data=array ()) { // function restore global $store; if ($this->controlName === false) return false; $control = $store->control->read ($this->controlName); if (isset ($control['flags'])) $this->flags = array_replace ($this->flags, $control['flags']); if (isset ($control['children'])) { // children exists foreach ($control['children'] as $name) { // each child if ($name[0] == '_') $name = 'formulary' . $name; $control = $store->control->read ($name); if ( (!isset ($control['flags']['condition']) or $this->condition ($control['flags']['condition'])) and isset ($control['flags']['target'])) { // valid condition $target = $control['flags']['target']; $field = $this->getField ($target, $data); $this->setField ($target, $field); } // valid condition } // each child } // children exists } // function restore public function removeLanguage ($lang) { // function removeLanguage if (!isset ($this->data['text'])) return; foreach (array_keys ($this->data['text']) as $key) { // each field if (isset ($this->data['text'][$key][$lang])) unset ($this->data['text'][$key][$lang]); } // each field } // function removeLanguage public function getField ($path, $data=false) { // function getField $path = $this->baseTarget . $path; if (!strlen ($path)) return false; if ($data === false) $data = $this->data; $pathway = explode ('/', $path); $level = count ($pathway); $found[0] = $data; for ($i = 0; $i < $level; ) { // loop levels if (!isset ($found[$i][$pathway[$i]])) return false; $return = $found[$i][$pathway[$i]]; $i++; if ($level == $i) return $return; $found[$i] = $return; } // loop levels } // function getField public function setField ($path, $value=false) { // function setField $path = $this->baseTarget . $path; if (!strlen ($path)) return; $pathway = explode ('/', $path); $level = count ($pathway); $data = $this->data; do { // its not a loop if ($level == 1) { // level 1 $data[$pathway[0]] = $value; break; } // level 1 if (!isset ($data[$pathway[0]])) $data[$pathway[0]] = array (); if ($level == 2) { // level 2 $data[$pathway[0]][$pathway[1]] = $value; break; } // level 2 if (!isset ($data[$pathway[0]][$pathway[1]])) $data[$pathway[0]][$pathway[1]] = array (); if ($level == 3) { // level 3 $data[$pathway[0]][$pathway[1]][$pathway[2]] = $value; break; } // level 3 if (!isset ($data[$pathway[0]][$pathway[1]][$pathway[2]])) $data[$pathway[0]][$pathway[1]][$pathway[2]] = array (); if ($level == 4) { // level 4 $data[$pathway[0]][$pathway[1]][$pathway[2]][$pathway[3]] = $value; break; } // level 4 if (!isset ($data[$pathway[0]][$pathway[1]][$pathway[2]][$pathway[3]])) $data[$pathway[0]][$pathway[1]][$pathway[2]][$pathway[3]] = array (); if ($level == 5) { // level 5 $data[$pathway[0]][$pathway[1]][$pathway[2]][$pathway[3]][$pathway[4]] = $value; break; } // level 5 if (!isset ($data[$pathway[0]][$pathway[1]][$pathway[2]][$pathway[3]][$pathway[4]])) $data[$pathway[0]][$pathway[1]][$pathway[2]][$pathway[3]][$pathway[4]] = array (); if ($level == 6) { // level 6 $data[$pathway[0]][$pathway[1]][$pathway[2]][$pathway[3]][$pathway[4]][$pathway[5]] = $value; break; } // level 6 break; } // its not a loop while ('Ill never be evaluated'); if ($value === false) { // empty value switch ($level) { // clear fields case 6: if (!$data[$pathway[0]][$pathway[1]][$pathway[2]][$pathway[3]][$pathway[4]][$pathway[5]]) unset ($data[$pathway[0]][$pathway[1]][$pathway[2]][$pathway[3]][$pathway[4]][$pathway[5]]); case 5: if (!$data[$pathway[0]][$pathway[1]][$pathway[2]][$pathway[3]][$pathway[4]]) unset ($data[$pathway[0]][$pathway[1]][$pathway[2]][$pathway[3]][$pathway[4]]); case 4: if (!$data[$pathway[0]][$pathway[1]][$pathway[2]][$pathway[3]]) unset ($data[$pathway[0]][$pathway[1]][$pathway[2]][$pathway[3]]); case 3: if (!$data[$pathway[0]][$pathway[1]][$pathway[2]]) unset ($data[$pathway[0]][$pathway[1]][$pathway[2]]); case 2: if (!$data[$pathway[0]][$pathway[1]]) unset ($data[$pathway[0]][$pathway[1]]); case 1: if (!$data[$pathway[0]]) unset ($data[$pathway[0]]); } // clear fields } // empty value $this->data = $data; } // function setField public function setErrorMsg ($control, $fieldName, $msg=false, $value=false) { // function setErrorMsg if ($this->errorMsg) return; $local = $control['flags']; unset ($local['icon']); if (isset ($local['error_msg'])) $local['msg'] = $local['error_msg']; elseif ($msg !== false) $local['msg'] = $msg; else $local['msg'] = 'system_msg_alertErrorField'; $local['name'] = $fieldName; $local['return_id'] = $fieldName; if (isset ($control['text']['caption'])) $local['field_caption'] = $control['text']['caption']; if ($value !== false) $local['value'] = $this->htmlSpecialChars ($value); $this->errorMsg = $local; } // function setErrorMsg public function setRequiredMsg ($control, $fieldName, $msg=false) { // function setRequiredMsg if ($this->errorMsg) return; $local = $control['flags']; unset ($local['icon']); if (isset ($local['required_msg'])) $local['msg'] = $local['required_msg']; elseif ($msg !== false) $local['msg'] = $msg; else $local['msg'] = 'system_msg_alertRequiredField'; $local['name'] = $fieldName; $local['return_id'] = $fieldName; if (isset ($control['text']['caption'])) $local['field_caption'] = $control['text']['caption']; $this->errorMsg = $local; } // function setRequiredMsg public function condition ($condition) { // function condition if (!$condition) return true; $not = false; // Vamos separar os membros OR $or_list = explode ('||', $condition); foreach ($or_list as $or_condition) { // each or condition $result = true; $or_condition = trim ($or_condition); // Para cada membro OR, vamos criar uma lista AND $and_list = explode ('&&', $or_condition); foreach ($and_list as $and_condition) { // each and condition $c = trim ($and_condition); if ($c[0] == '!') { // negative operator on $not = true; $c = trim (substr ($c, 1)); } // negative operator on if (!$not and (!isset ($this->flags[$c]) or !$this->flags[$c]))$result = false; elseif ($not and isset ($this->flags[$c]) and $this->flags[$c])$result = false; $not = false; } // each and condition if ($result) return true; } // each or condition return false; } // function condition public function htmlSpecialChars ($string) { // function htmlSpecialChars return str_replace (array ('&', '<', '"'), array ('&', '<', '"'), $string ); } // function htmlSpecialChars public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; if (isset ($this->flags['modFormulary_preset'])) $template = 'formulary_' . $this->flags['modFormulary_preset']; elseif ($document->application->isDomain) $template = 'formulary_system'; else $template = 'formulary'; $mod->data = $document->render->block ('modules/' . $template); $mod->childrenMerge ($this->create ()); if (!$mod->children) return; if (isset ($this->control['local'])) { // set local scope if (isset ($mod->data['local'])) $mod->data['local'] = array_replace ($mod->data['local'], $this->control['local']); else $mod->data['local'] = $this->control['local']; } // set local scope if (isset ($this->control['text']['caption'])) $mod->data['local']['caption'] = $this->control['text']['caption']; $mod->data['local']['list'] = 'formulary'; // Se o módulo pode ser editado if (!$document->application->isDomain and $document->templateEditable and $document->access (4, $document->domain->groups)) { // reference $pathway = array ($document->domain->name, '-personalite', 'modules', $template); $mod->data['local']['personalite_url'] = $document->url ($pathway); $caption = $store->control->read ('modFormulary_edit'); $mod->data['local']['personalite_caption'] = $caption['text']['caption']; } // reference $mod->enabled = true; } // function setModule } // class eclEngine_formulary //!eof:engine/eclEngine/eclEngine_formulary.php; //!file:engine/eclEngine/eclEngine_io.php; class eclEngine_io { // class eclEngine_io public $buffer = ''; public function __construct () { // function __construct $this->log = new eclIo_log (); } // function __construct public function __get ($name) { // function __get $class = 'eclIo_' . $name; $this->$name = new $class ($this); return $this->$name; } // function __get public function close () { // function close if (isset ($this->session)) $this->session->close (); foreach ($this as $name => $driver) { // close each driver if ($name == 'buffer' or $name == 'session' or $name == 'log' or $name == 'request') continue; if (!isset ($driver->isPhantom)) $driver->close (); } // close each driver // log é o penúltimo a ser fechado $this->log->close (); $this->buffer = $this->log->buffer; $this->request->close (); } // function close } // class eclEngine_io //!eof:engine/eclEngine/eclEngine_io.php; //!file:engine/eclEngine/eclEngine_listItem.php; class eclEngine_listItem { // class eclEngine_listItem public $document; public $me = false; public $data; public $children = array (); public function __construct ($document, $from=false, $local=array ()) { // function __construct global $store; $this->document = $document; if (is_string ($from)) $this->data = $store->control->read ($from); elseif (is_object ($from)) { // from object $this->data = $from->data; if (get_class ($from) == 'eclEngine_application') $this->me = $from; } // from object elseif (is_array ($from)) $this->data = $from; if ($local) { // local if (!$this->data) $this->data = $local; else $this->data = array_replace_recursive ($this->data, $local); } // local } // function __construct public function appendChild ($from=false, $local=array ()) { // function appendChild if (is_object ($from) and isset ($from->document)) { // from list item if ($local) $from->data = array_replace_recursive ($from->data, $local); $this->children[] = $from; return $from; } // from list item else $this->children[] = new eclEngine_listItem ($this->document, $from, $local); return end ($this->children); } // function appendChild public function childrenMerge ($from) { // function childrenMerge if (is_object ($from)) { // is object foreach ($from->children as $child) { // each child if (isset ($child->document)) $this->children[] = $child; else $this->children[] = new eclEngine_listItem ($this->document, $child); } // each child } // is object } // function childrenMerge public function url ($pathway=true, $lang=true, $action=true, $protocol=true) { // function url if ($pathway === true) { // get pathway if (isset ($this->me->pathway)) $pathway = $this->me->pathway; else $pathway = $this->document->application->pathway; } // get pathway $this->data['pathway'] = $pathway; $this->data['url'] = $this->document->url ($pathway, $lang, $action, $protocol); return $this; } // function url public function appendFolder ($folder) { // function appendFolder if (!isset ($this->data['pathway'])) { // set pathway if (isset ($this->me->pathway)) $this->data['pathway'] = $this->me->pathway; else $this->data['pathway'] = $this->document->application->pathway; } // set pathway $this->data['pathway'][] = $folder; $this->data['url'] = $this->document->url ($this->data['pathway']); return $this; } // function appendFolder public function confirm ($name, $formulary=false) { // function confirm if (!isset ($this->data['url'])) $this->data['url'] = $this->document->mod->humperstilshen->dialog ($name, array ('url' => $this->document->url ()), $formulary); else $this->data['url'] = $this->document->mod->humperstilshen->dialog ($name, array ('url' => $this->data['url']), $formulary); return $this; } // function confirm public function popUpOpen ($width=410, $height=600) { // function popUpOpen if (!isset ($this->data['url'])) $this->data['url'] = $this->document->url (); $this->data['url'] = "javaScript:humperstilshen.popUpOpen('" . $this->data['url'] . "', " . $width . ", " . $height . ")"; return $this; } // function popUpOpen public function dialog ($data) { // function dialog $this->data['url'] = $this->document->mod->humperstilshen->dialog ($data); return $this; } // function dialog public function active ($active=true) { // function active if ($active) $this->data['active'] = 1; return $this; } // function active public function virtual ($virtual=true) { // function virtual if ($virtual) $this->data['virtual'] = 1; return $this; } // function virtual public function set ($name, $value=1) { // function set if (!$value) unset ($this->data[$name]); elseif ($value === true) $this->data[$name] = 1; else $this->data[$name] = $value; return $this; } // function set public function swapTitle ($title=array ()) { // function swapTitle if (is_array ($this->data) and isset ($this->data['text']['title'])) $this->data['caption'] = $this->data['text']['title']; return $this; } // function swapTitle public function getVar ($name) { // function getVar if ($name[0] == '$') $name = substr ($name, 1); if (!is_array ($this->data)) return false; if (isset ($this->data[$name])) return $this->data[$name]; if (isset ($this->data['text'][$name])) return $this->data['text'][$name]; if (isset ($this->data['local'][$name])) return $this->data['local'][$name]; return false; } // function getVar public function editable ($access) { // function editable if (!$this->document->contentEditable) return $this; if ($access) $this->data['editable'] = 1; return $this; } // function editable public function sort ($sortBy="created", $sortDirection="asc") { // function sort if (!$this->children) return; $sorted = array (); $unsorted = array (); foreach ($this->children as $child) { // each child if (isset ($child->data[$sortBy])) $sorted[$child->data[$sortBy]][] = $child; else $unsorted[] = $child; } // each child if ($sortDirection == "asc") ksort ($sorted); else krsort ($sorted); $sorted[] = $unsorted; $result = array (); foreach ($sorted as $group) { // each group foreach ($group as $child) { // each child $result[] = $child; } // each child } // each group $this->children = $result; return $this; } // function sort } // class eclEngine_listItem //!eof:engine/eclEngine/eclEngine_listItem.php; //!file:engine/eclEngine/eclEngine_mod.php; class eclEngine_mod { // class eclEngine_mod private $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function __get ($name) { // function __get $class = 'eclMod_mod' . ucfirst ($name); $this->$name = new $class ($this->document); return $this->$name; } // function __get public function __set ($name, $value) { // function __set if (is_object ($value)) $this->$name = $value; elseif (is_string ($value)) { // new module $class = 'eclMod_' . $value; $this->$name = new $class ($this->document); } // new module } // function __set } // class eclEngine_mod //!eof:engine/eclEngine/eclEngine_mod.php; //!file:engine/eclEngine/eclEngine_module.php; class eclEngine_module extends eclEngine_listItem { // class eclEngine_module public $document; public $data = array (); public $children = array (); public $enabled = false; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function tr () { // function tr return $this->appendChild (); } // function tr public function td ($data) { // function td if (!$this->children) $this->appendChild (); $child = $this->document->createListItem ($data); $this->children[count ($this->children) - 1]->children[] = $child; return $child; } // function td } // class eclEngine_module //!eof:engine/eclEngine/eclEngine_module.php; //!file:engine/eclEngine/eclEngine_render.php; class eclEngine_render { // class eclEngine_render public $document; public $buffer = ''; public $data = false; public $me = false; public $mod = array (); public $children = array (); public $index = 0; public $blocks = array (); public $tags = array ( 'p_open' => '

', 'p_close' => '

', 'h1_open' => '

', 'h1_close' => '

', 'h2_open' => '

', 'h2_close' => '

', 'h3_open' => '

', 'h3_close' => '

', 'h4_open' => '

', 'h4_close' => '

', 'h5_open' => '
', 'h5_close' => '
', 'h6_open' => '
', 'h6_close' => '
', 'ul_open' => '', 'ol_open' => '
    ', 'ol_close' => '
', 'ol_open_first' => '
    ', 'al_open' => '
      ', 'al_close' => '
    ', 'li_open' => '
  1. ', 'li_close' => '
  2. ', 'pre_open' => '
    ', 
    'pre_close' => '
    ', 'code_open' => '
    ', 
    'code_close' => '
    ', 'inline_code_open' => '', 'inline_code_close' => '', 'style_open' => '', 'script_open' => '', 'hr' => '
    ' ); public $editableTags = array ( 'editable_open' => '', 'editable_open_empty' => '', 'editable_close' => '', 'p_open' => '

    ', 'p_close' => '

    ', 'h1_open' => '

    ', 'h1_close' => '

    ', 'h2_open' => '

    ', 'h2_close' => '

    ', 'h3_open' => '

    ', 'h3_close' => '

    ', 'h4_open' => '

    ', 'h4_close' => '

    ', 'h5_open' => '
    ', 'h5_close' => '
    ', 'h6_open' => '
    ', 'h6_close' => '
    ', 'ul_open' => '', 'ol_open' => '
      ', 'ol_close' => '
    ', 'ol_open_first' => '
      ', 'al_open' => '
        ', 'al_close' => '
      ', 'li_open' => '
    1. ', 'li_close' => '
    2. ', 'pre_open' => '
      ', 
      'pre_close' => '
      ', 'code_open' => '
      ', 
      'code_close' => '
      ', 'inline_code_open' => '', 'inline_code_close' => '', 'style_open' => '', 'script_open' => '', 'hr' => '
      ' ); public $css = array (); public $js = array (); public $cuts = array (); public $cutOnce = array (); public $scissorsIndex = 0; public $scissors = array (); public $pasteIndex = 0; public $pastePointer = array (); public $pasteNames = array (); public $tagsStack = array (); private $levelIndex = 0; private $levelArray = array (); public function __construct ($document=false) { // function __construct $this->document = $document; } // function __construct public function levelUp ($data) { // function levelUp $this->levelIndex++; $this->levelArray[$this->levelIndex] = array (); $a = &$this->levelArray[$this->levelIndex]; if (isset ($data['me'])) { // me $a['me'] = $this->me; $this->me = $data['me']; } // me if (isset ($data['data']) or isset ($data['local']) or isset ($data['text'])) { // data $a['data'] = $this->data; $this->data = array (); if (isset ($data['data'])) $this->data = $data['data']; if (isset ($data['local'])) $this->data = array_replace ($this->data, $data['local']); if (isset ($data['text'])) $this->data = array_replace ($this->data, $data['text']); } // data if (isset ($data['mod'])) { // mod $a['mod'] = $this->mod; $this->mod = $data['mod']; } // mod if (isset ($data['blocks'])) { // blocks $a['blocks'] = $this->blocks; $this->blocks = array_replace ($this->blocks, $data['blocks']); } // blocks if (isset ($data['css_src'])) { // css foreach ($data['css_src'] as $css) { // each css $this->css[$css] = true; } // each css } // css if (isset ($data['js_src'])) { // js foreach ($data['js_src'] as $js) { // each js $this->js[$js] = true; } // each js } // js if (isset ($data['children'])) { // children $a['children'] = $this->children; $a['index'] = $this->index; $this->children = $data['children']; if (isset ($data['index'])) $this->index = $data['index']; else $this->index = 0; } // children } // function levelUp public function levelDown () { // function levelDown foreach ($this->levelArray[$this->levelIndex] as $property => $value) { // each item $this->$property = $value; } // each item unset ($this->levelArray[$this->levelIndex]); $this->levelIndex--; } // function levelDown public function render ($content) { // function render static $s = array ('&', '<', '"'); static $r = array ('&', '<', '"'); if (is_string ($content)) $content = array ( TEXT_CONTENT => $content, TEXT_HTML => 2, TEXT_ECOLABORE => 1 ); if (!isset ($content[TEXT_CONTENT])) return; if (!strlen ($content[TEXT_CONTENT]) and !isset ($content[TEXT_EDITABLE])) return; if (isset ($content[TEXT_FORMAT]) and $content[TEXT_FORMAT]) { // text format if ($content[TEXT_FORMAT] == 2) { // pre formated text $content[TEXT_CONTENT] = str_replace ($s, $r, $content[TEXT_CONTENT]); $this->text2pre ($content); $this->buffer .= $content[TEXT_CONTENT]; return; } // pre formated text $this->text2html ($content); } // text format if (isset ($content[TEXT_ECOLABORE]) and $content[TEXT_ECOLABORE]) { // render tags $tagsLevel = count ($this->tagsStack); $this->render_tags ($content); for ($i = count ($this->tagsStack) - $tagsLevel; $i > 0; $i--) { // close pending tags $item = end ($this->tagsStack); $class = 'eclTag_end' . $item[0]; $class::render ($this, array ()); } // close pending tags } // render tags elseif ( (!isset ($content[TEXT_FORMAT]) or !$content[TEXT_FORMAT]) and (!isset ($content[TEXT_HTML]) or !$content[TEXT_HTML])) $this->buffer .= str_replace ($s, $r, $content[TEXT_CONTENT]); else $this->buffer .= $content[TEXT_CONTENT]; } // function render private function text2pre (&$content) { // function text2pre $string = trim ($content[TEXT_CONTENT]); // Converte quebras de linhas Windows para Linux $string = str_replace (CRLF, LF, $string); $string = str_replace (LF, CRLF, $string); $content[TEXT_CONTENT] = $this->tags['pre_open'] . $string . $this->tags['pre_close']; } // function text2pre private function filter_html ($string, $text_html=1, $editable=false) { // function filter_html static $valid_tags = array ( 'b' => true, // Texto em negrito 'br' => true, // Quebra de linha forçada 'caption' => true, // Legenda de tabela 'col' => true, // Coluna de tabela 'colgroup' => true, // Grupo de colunas de tabela 'div' => true, // Contentor genérico 'em' => true, // ênfase 'hr' => true, // Barra horizontal 'i' => true, // Texto em itálico 'mark' => true, // Destaque 's' => true, // Texto em negrito 'small' => true, // Texto pequeno 'span' => true, // Contentor genérico 'strong' => true, // Texto grande 'sub' => true, // Texto Subescrito 'sup' => true, // Texto superescrito 'table' => true, // Tabela 'tbody' => true, // Corpo de tabela 'td' => true, // Célula de tabela 'tfoot' => true, // Rodapé de tabela 'th' => true, // Cabeçalho de tabela 'thead' => true, // Cabeçalho de tabela 'tr' => true, // Linha de tabela 'u' => true, // Texto sublinhado 'wbr' => true // Local propício para quebra de linha ); // As tags que não trabalham em pares. static $single_tags = array ( 'br' => true, 'hr' => true, 'wbr' => true ); // A lista de argumentos permitidos por padrão static $valid_arguments = array ( '/' => true, // Argumento padrão para marcações singulares 'abbr' => true, // Cabeçalho - legenda 'alt' => true, // Descrição 'axis' => true, // Lista de cabeçalhos relacionados 'cellpadding' => true, // Preenchimento da célula 'cellspacing' => true, // Espaçamento entre células 'cite' => true, // Endereço da citação 'colspan' => true, // Número de colunas ocupadas pela célula 'frame' => true, // Parte do quadro a ser renderizado 'header' => true, // Cabeçalho 'height' => true, // Altura 'href' => true, // Endereço 'lang' => true, // Idioma 'name' => true, // Nome 'rowspan' => true, // Número de linhas ocupadas pela célula 'rules' => true, 'title' => true, // Título - legenda 'local' => true, // Campo coberto pelas células do cabeçalho 'span' => true, 'src' => true, // Endereço do recurso 'style' => true, // Regras de folha de estilo 'summary' => true, // Descrição de estrutura para saída em fala 'width' => true // Largura ); if ($editable) { // editable content if (!$text_html) $string = str_replace ('<', '<', $string); $buffer = ''; $length = strlen ($string); $pointer = 0; do { // loop string $offset = strcspn ($string, '[', $pointer); if (!$offset) { // empty offset if (substr ($string, $pointer, 13) != '[placeholder:') $buffer .= $this->editableTags['editable_open_empty'] . $this->editableTags['editable_close']; } // empty offset else $buffer .= $this->editableTags['editable_open'] . substr ($string, $pointer, $offset) . $this->editableTags['editable_close']; $pointer += $offset; if ($pointer >= $length) return $buffer; $offset = strcspn ($string, ']', $pointer); $offset += strspn ($string, ']', $pointer + $offset); $markup = substr ($string, $pointer, $offset); if (substr ($markup, 0, 13) == '[placeholder:') { // placeholder $buffer .= ''; if ($pointer + $offset >= $length) return $buffer; } // placeholder else $buffer .= $markup; $pointer += $offset; } // loop string while (true); } // editable content // Se todo o HTML for permitido if ($text_html == 2) return $string; // Se nenhum HTML for permitido if (!$text_html) return str_replace ('<', '<', $string); // O resultado $result = ''; // O ponteiro que utilizaremos para percorrer a string $pointer = 0; // Vamos iniciar um loop infinito para percorrer a string while (true) { // infinity loop // Vamos procurar o início de uma tag ("<") $start = strpos ($string, '<', $pointer); // Se não for encontrado, a tarefa terminou e sairemos do loop if ($start === false) { // tag not found $result .= substr ($string, $pointer); return $result; } // tag not found // Vamos procurar o fim da tag (">") $start++; $end = strpos ($string, '>', $start); /// Se não for encontrado, a tarefa terminou e sairemos do loop if ($end === false) { // tag end not found $result .= str_replace ('<', '<', substr ($string, $pointer)); return $result; } // tag end not found // Vamos recortar o conteúdo da tag e fazer uma análize $tag = substr ($string, $start, $end - $start); $end++; // Vamos recortar cada elemento da tag preg_match_all ('/([a-zA-Z]+)([=]["][^"]*["])?\ ?\/?/', $tag, $preg); $array = $preg[1]; // O primeiro elemento corresponde à própria tag $original = array_shift ($array); $type = strtolower ($original); // Vamos comparar o primeiro elemento com a lista de tags válidas $accept = false; if (isset ($valid_tags[$type])) { // accept tag $accept = true; // Vamos comparar os demais elementos com a lista de argumentos válidos foreach ($array as $argument) { // each argument $argument = strtolower ($argument); if (!isset ($valid_arguments[$argument])) { // invalid argument $accept = false; break; } // invalid argument } // each argument } // accept tag // Se toda a tag foi aceita if ($accept) { // allow tag // Se a tag trabalha sozinha if (isset ($single_tags[$type])) { // allow single tag $result .= substr ($string, $pointer, $end - $pointer); } // allow single tag // Outro caso, iremos procurar uma tag de fechamento correspondente else { // allow double tag $close_tag = ''; $close_start = strpos ($string, $close_tag, $end); // Se a tag de fechamento não foi encontrada if ($close_start === false) { // deny no closed tag $result .= str_replace ('<', '<', substr ($string, $pointer, $end - $pointer)); } // deny no closed tag // Se encontramos a tag de fechamento else { // close tag found $result .= substr ($string, $pointer, $end - $pointer); // IMPORTANTE: O conteúdo encontrado entre as tags // será analizado em busca de outras tags $result .= $this->filter_html (substr ($string, $end, $close_start - $end)); $result .= $close_tag; $end = $close_start + strlen ($close_tag); } // close tag found } // allow double tag } // allow tag // Caso a tag ou algum argumento não foi permitido else { // deny - escape html special chars $result .= str_replace ('<', '<', substr ($string, $pointer, $end - $pointer)); } // deny - escape html special chars // Avançaremos o ponteiro para continuar a análize $pointer = $end; } // infinity loop } // function filter_html private function text2html (&$content) { // function text2html $string = trim ($content[TEXT_CONTENT]); isset ($content[TEXT_HTML]) ? $text_html = $content[TEXT_HTML] : $text_html = 0; isset ($content[TEXT_ECOLABORE]) ? $text_ecolabore = $content[TEXT_ECOLABORE] : $text_ecolabore = 0; isset ($content[TEXT_EDITABLE]) ? $editable = $content[TEXT_EDITABLE] : $editable = false; if ($editable) $marks = $this->editableTags; else $marks = $this->tags; // Converte quebras de linhas Windows para Linux $string = str_replace (CRLF, LF, $string); // o cumprimento total da string $strlen = strlen ($string); // Os ponteiros indicando o início e o fim de um parágrafo $paragraph_start = 0; $paragraph_end = 0; // O resultado final $result = ''; // Anota se é necessário um parágrafo intermediário $previousIsParagraph = false; // enquanto o ponteiro não alcançar o final da string while ($paragraph_start < $strlen) { // move pointer // um parágrafo é delimitado por uma quebra de linha -- modificado v4.01 $paragraph_end = strpos ($string, LF, $paragraph_start); if ($paragraph_end === false) $paragraph_end = $strlen; else $paragraph_end++; // pega o primeiro caractére do parágrafo $char = $string[$paragraph_start]; switch ($char) { // switch char // Ignora os caractéres case CR: case LF: case "\t": $paragraph_end = $paragraph_start + 1; break; // Listas case '*': case '#': case '@': if ($editable and !$previousIsParagraph) $result .= $marks['p_open'] . $this->filter_html ('', 2, $editable) . $marks['p_close'] . LF; $previousIsParagraph = false; $paragraph = substr ($string, $paragraph_start, $paragraph_end - $paragraph_start); // Separa as linhas do parágrafo $lines = explode (LF, $paragraph); $last = ''; $last_level = 0; // Percorre as linhas deste parágrafo foreach ($lines as $line) { // each line if (!strlen (trim ($line))) continue; // Quantos símbolos existem no início desta linha $current_level = strspn ($line, '*#@'); // Recorta os símbolos encontrados para análize posterior $current = substr ($line, 0, $current_level); $line = $this->filter_html (trim (substr ($line, $current_level)), $text_html, $editable); // Uma versão mais descomplicada da linha acima: // Retira os símbolos do início da linha // $line = substr ($line, $current_level); // $line = trim ($line); // $line = $this->filter_html ($line, $text_html, $editable); // Se não houverem símbolos no início desta linha, trata-se de uma // quebra acidental, o que nos leva a emendar esta linha com a linha anterior if (!$current_level and strlen ($line)) $result .= ' ' . $line; else { // valid line // Vamos comparar os símbolos da linha atual com a linha anterior // para determinar até que ponto são iguais for ($equal = 0; $equal < $last_level and $equal < $current_level and $current[$equal] == $last[$equal]; $equal++) { } // compare levels // Se o resultado indica que precisamos descer algum nível da lista for ($level = $last_level; $level > $equal; $level--) { // loop level down $char = $last[$level - 1]; if ($char == '*') $result .= $marks['li_close'] . LF . $marks['ul_close'] . LF; elseif ($char == '#') $result .= $marks['li_close'] . LF . $marks['ol_close'] . LF; else $result .= $marks['li_close'] . LF . $marks['al_close'] . LF; } // loop level down // Se fechamos uma lista, a linha atual deverá ser criada como um novo item if ($last_level > $equal and $equal) { // new item after close a list $result .= $marks['li_close'] . LF . $marks['li_open']; } // new item after close a list // Se o prefixo da lista anterior for idêntico ao desta, // simplesmente criamos um novo item if ($last_level == $equal and $current_level == $equal and $equal) { // item in same level $result .= $marks['li_close'] . LF . $marks['li_open']; } // item in same level // Se for preciso criar sublistas for ($level = $equal; $level < $current_level; $level++) { // level up if ($level) $result .= LF; $char = $current[$level]; if ($char == '*') $result .= $marks['ul_open'] . LF . $marks['li_open']; elseif ($char == '#' and $level == 0) $result .= $marks['ol_open_first'] . LF . $marks['li_open']; elseif ($char == '#') $result .= $marks['ol_open'] . LF . $marks['li_open']; else $result .= $marks['al_open'] . LF . $marks['li_open']; } // level up // Finalmente, colocamos o conteúdo desta linha $result .= $line; // Preparamos a próxima iteração anotando os itens desta linha como // sendo os símbolos da linha anterior $last = $current; $last_level = $current_level; } // valid line } // each line // Acrescenta o fechamento do último item da lista for ($level = $last_level; $level > 0; $level--) { // loop level down $char = $last[$level - 1]; if ($char == '*') $result .= $marks['li_close'] . LF . $marks['ul_close'] . LF; elseif ($char == '#') $result .= $marks['li_close'] . LF . $marks['ol_close'] . LF; else $result .= $marks['li_close'] . LF . $marks['al_close'] . LF; } // loop level down break; // Cabeçálhos - ou Títulos case '=': $previousIsParagraph = true; $paragraph = substr ($string, $paragraph_start, $paragraph_end - $paragraph_start); // Vamos ver quantos símbolos = tem no início do parágrafo $level = strspn ($paragraph, '='); // Se forem de 1 a 6 if ($level <= 6) { // valid header level // Vamos filtrar o parágrafo, removendo os sinais de = no início e no final $paragraph = trim ($paragraph, "= \r\n\t"); $paragraph = $this->filter_html ($paragraph, $text_html, $editable); $result .= $marks['h' . $level . '_open'] . $paragraph . $marks['h' . $level . '_close'] . LF; } // valid header level // Se tiverem mais de 6 sinais de =, será tratado como um parágrafo normal else $result .= $marks['p_open'] . $this->filter_html (trim ($paragraph), $text_html, $editable) . $marks['p_close'] . LF; break; // Um separador horizontal case '-': $paragraph = substr ($string, $paragraph_start, $paragraph_end - $paragraph_start); // Quantos hifens ("-") tem no parágrafo $level = strspn ($paragraph, '-'); // Vamos limpar o parágrafo $clean = trim ($paragraph, "- \r\n\t"); // Somente se houverem mais de 4 hifens e se não houver restado nada após a limpeza if ($level > 4 and !strlen ($clean)) { // insert separator if ($editable and !$previousIsParagraph) $result .= $marks['p_open'] . $this->filter_html ('', 2, $editable) . $marks['p_close'] . LF; $previousIsParagraph = false; $result .= $marks['hr'] . LF; } // insert separator // Caso contrário, este será mais um parágrafo comum else { // insert paragraph $previousIsParagraph = true; $result .= $marks['p_open'] . $this->filter_html (trim ($paragraph), $text_html, $editable) . $marks['p_close'] . LF; } // insert paragraph break; // procura por marcações que alteram o método de formatação case '[': $start = $paragraph_start + 1; // Procura por ] $end = strpos ($string, ']', $start); // Se for encontrado if (is_int ($end)) { // end of tag found // Recortamos a tag $tag = substr ($string, $start, $end - $start); list ($type) = explode (':', $tag); $original = $type; // Vamos analizar seu conteúdo switch ($type) { // switch tag case 'style': case 'script': // Se não for permitido script ou style, as marcas serão convertidas if ($text_html != 2) $type = 'pre'; case 'code': case 'pre': // Vamos procurar pela marca de fechamento $close_tag = '[/' . $original . ']'; $close_length = strlen ($close_tag); $close_pos = strpos ($string, $close_tag, $end); // Se a encontrarmos if ($close_pos) { // close tag found if ($editable and !$previousIsParagraph) $result .= $marks['p_open'] . $this->filter_html ('', 2, $editable) . $marks['p_close'] . LF; $previousIsParagraph = false; $paragraph_end = $close_pos + $close_length; $end++; $paragraph = substr ($string, $end, $close_pos - $end); // Se o conteudo for do tipo code ou pre, escapamos o HTML if ($type == 'code' or $type == 'pre') $paragraph = str_replace ('<', '<', $paragraph); // Se o conteúdo for do tipo code e for preciso pular as marcações if ($type == 'code' and $text_ecolabore) $paragraph = '[jump]' . str_replace ('[/jump]', '[[/jump]/jump][jump]', $paragraph) . '[/jump]'; $result .= $marks[$type . '_open'] . $paragraph . $marks[$type . '_close'] . LF; break 2; } // close tag found // outras marcações serão consideradas como um parágrafo normal // simplesmente deixando o fluxo do programa prosseguir } // switch tag } // end of tag found // Um parágrafo normal default: $paragraph = trim (substr ($string, $paragraph_start, $paragraph_end - $paragraph_start)); if ($editable and substr ($paragraph, 0, 13) == '[placeholder:') { // placeholder $result .= $marks['p_open'] . $this->filter_html ($paragraph, 2, $editable) . $marks['p_close'] . LF; $previousIsParagraph = true; } // placeholder elseif ($text_ecolabore and strlen ($paragraph) > 1 and $paragraph[0] == '[' and $paragraph[strlen ($paragraph) - 1] == ']') { // markup alone if ($editable and !$previousIsParagraph) $result .= $marks['p_open'] . $this->filter_html ('', 2, $editable) . $marks['p_close'] . LF; $previousIsParagraph = false; $result .= $paragraph; } // markup alone else { // insert paragraph $previousIsParagraph = true; $result .= $marks['p_open'] . $this->filter_html ($paragraph, $text_html, $editable) . $marks['p_close'] . LF; } // insert paragraph } // switch char // Movemos o ponteiro adiante $paragraph_start = $paragraph_end; } // move pointer if ($editable and !$previousIsParagraph) $result .= $marks['p_open'] . $this->filter_html ('', 2, $editable) . $marks['p_close'] . LF; // converte quebras de linhas Linux para Windows $result = str_replace (LF, CRLF, $result); $content[TEXT_CONTENT] = $result; } // function text2html /* * 0 type * 1 value * 2 arguments * 3 sublevel * 4 silent * 5 parse error * * Type values * 0 string buffer * 1 function * 2 variable * 3 number * 4 operator * 5 precedent operator */ public function render_tags ($content, $parseOnly=false) { // function render_tags if (is_string ($content)) $_string = $content; elseif (is_array ($content) and isset ($content[1])) $_string = $content[TEXT_CONTENT]; else return; $_length = strlen ($_string); $_pointer = 0; $_array = array (); $_level = 1; $_index = array (1 => 0); PARSE_TAG_SEEK: $_pos = strpos ($_string, '[', $_pointer); if ($_pos === false) { // open tag not found $_array[$_level][$_index[$_level]] = array (0, substr ($_string, $_pointer)); goto PARSE_END_OF_STRING; } // open tag not found if ($_pos > $_pointer) { // buffer $_array[$_level][$_index[$_level]] = array (0, substr ($_string, $_pointer, $_pos - $_pointer)); $_index[$_level]++; } // buffer $_pointer = $_pos + 1; if ($_pointer == $_length) goto PARSE_END_OF_STRING; $_char = ord ($_string[$_pointer]); if ($_char == 93) { // [] $_array[$_level][$_index[$_level]] = array (0, '['); $_index[$_level]++; $_pointer++; if ($_pointer == $_length) goto PARSE_END_OF_STRING; goto PARSE_TAG_SEEK; } // [] PARSE_NEXT_INSTRUCTION: while ($_char == 9 or $_char == 10 or $_char == 13 or $_char == 32) // tab 9 lf 10 cr 13 espace 32 { // empty space $_pointer++; if ($_pointer == $_length) goto PARSE_END_OF_STRING; $_char = ord ($_string[$_pointer]); } // empty space if ($_char == 47 and $_pointer + 1 < $_length and ($_string[$_pointer + 1] == '/' or $_string[$_pointer + 1] == '*')) { // comment $_pointer++; $_char = ord ($_string[$_pointer]); if ($_char == 47) { // inline comment $_offset = strcspn ($_string, "\r\n;]", $_pointer); $_pointer += $_offset; if ($_pointer == $_length) goto PARSE_END_OF_STRING; $_char = ord ($_string[$_pointer]); } // inline comment elseif ($_char == 42) { // block comment $_pos = strpos ($_string, '*/', $_pointer); if ($_pos === false) goto PARSE_END_OF_STRING; $_pointer = $_pos + 2; if ($_pointer == $_length) goto PARSE_END_OF_STRING; $_char = ord ($_string[$_pointer]); } // block comment goto PARSE_NEXT_INSTRUCTION; } // comment if ($_char == 125) { // } level down $_level--; if (!$_level) goto PARSE_END_OF_STRING; $_array[$_level][$_index[$_level]][3] = $_array[$_level + 1]; $_index[$_level]++; unset ($_array[$_level + 1]); $_pointer++; if ($_pointer == $_length) goto PARSE_END_OF_STRING; $_char = ord ($_string[$_pointer]); goto PARSE_NEXT_INSTRUCTION; } // } level down if ($_char == 96) { // ` string $_pointer++; if ($_pointer == $_length) goto PARSE_END_OF_STRING; $pos = strpos ($_string, '`', $_pointer); if ($pos === false) goto PARSE_END_OF_STRING; $_array[$_level][$_index[$_level]] = array ( 0 => 0, 1 => substr ($_string, $_pointer, $pos - $_pointer) ); $_index[$_level]++; $_pointer = $pos + 1; if ($_pointer == $_length) goto PARSE_END_OF_STRING; $_char = ord ($_string[$_pointer]); goto PARSE_NEXT_INSTRUCTION; } // ` string $_offset = strcspn ($_string, '{};]', $_pointer); if (!$_offset) goto PARSE_END_OF_INSTRUCTION; $length = $_pointer + $_offset; $pointer = $_pointer; $char = ord ($_string[$pointer]); $silent = false; $name = ''; $level = 1; $index[1] = 0; $array = array (1 => array ()); if ($char == 64) { // @ silent $silent = true; while ($char == 9 or $char == 10 or $char == 13 or $char == 32 or $char == 64) // tab 9 lf 10 cr 13 espace 32 @ 64 { // empty space $pointer++; if ($pointer == $length) goto PARSE_END_OF_ARGUMENTS; $char = ord ($_string[$pointer]); } // empty space } // @ silent if ($char == 47) { // / end function $name .= 'end'; $pointer++; if ($pointer == $length) goto PARSE_END_OF_ARGUMENTS; $char = ord ($_string[$pointer]); } // / end function if ( ($char >= 65 and $char <= 90) or $char == 95 or ($char >= 97 and $char <= 122)) { // a-z _ A-Z do { // . a-z _ A-Z 0-9 $name .= $_string[$pointer]; $pointer++; if ($pointer == $length) goto PARSE_END_OF_ARGUMENTS; $char = ord ($_string[$pointer]); } // . a-z _ A-Z 0-9 while ($char == 46 or ($char >= 65 and $char <= 90) or $char == 95 or ($char >= 97 and $char <= 122) or ($char >= 48 and $char <= 57)); } // a-z _ A-Z // Elimina parênteses e espaços desnecessários while ($char == 9 or $char == 10 or $char == 13 or $char == 32) // tab 9 lf 10 cr 13 espace 32 { // empty space $pointer++; if ($pointer == $length) goto PARSE_END_OF_ARGUMENTS; $char = ord ($_string[$pointer]); } // empty space if ($char == 40) { // () $char = ord ($_string[$length - 1]); while ($char == 9 or $char == 10 or $char == 13 or $char == 32 or $char == 64) // tab 9 lf 10 cr 13 espace 32 @ 64 { // rtrim $length--; $char = ord ($_string[$length - 1]); } // rtrim if ($char == 41) $length--; $pointer++; if ($pointer == $length) goto PARSE_END_OF_ARGUMENTS; $char = ord ($_string[$pointer]); } // () if ($char == 58 or $char == 94 or $char == 42) { // : ^ * string $pointer++; if ($pointer == $length) goto PARSE_END_OF_ARGUMENTS; if ($char == 94) $name = 'up'; if ($char == 42) $name = 'footnote'; $offset = strcspn ($_string, '{]', $pointer); $array[1][0] = array ( 0 => 0, 1 => substr ($_string, $pointer, $offset) ); $_offset = ($pointer + $offset) - $_pointer; goto PARSE_END_OF_ARGUMENTS; } // : ^ * string goto PARSE_NEXT_ARGUMENT_NO_DOWN; PARSE_NEXT_ARGUMENT: while (isset ($down[$level])) { // operator level down unset ($down[$level]); $level--; if (!$level) goto PARSE_END_OF_ARGUMENTS; $array[$level][$index[$level]][2] = $array[$level + 1]; unset ($array[$level + 1]); $index[$level]++; } // operator level down PARSE_NEXT_ARGUMENT_NO_DOWN: while ($char == 9 or $char == 10 or $char == 13 or $char == 32) // tab 9 lf 10 cr 13 espace 32 { // empty space $pointer++; if ($pointer == $length) goto PARSE_END_OF_ARGUMENTS; $char = ord ($_string[$pointer]); } // empty space if ($char == 45 or $char == 46 or ($char >= 48 and $char <= 57)) { // number $buffer = ''; do { // loop numbers $buffer .= $_string[$pointer]; $pointer++; if ($pointer == $length) break; $char = ord ($_string[$pointer]); } // loop numbers while ($char == 46 or ($char >= 48 and $char <= 57)); $array[$level][$index[$level]] = array ( 0 => 3, 1 => $buffer ); $index[$level]++; if ($pointer == $length) goto PARSE_END_OF_ARGUMENTS; $char = ord ($_string[$pointer]); goto PARSE_NEXT_ARGUMENT; } // number if ($char == 36) { // $ variable $pointer++; if ($pointer == $length) goto PARSE_END_OF_ARGUMENTS; $buffer = ''; do { // . a-z _ A-Z 0-9 $buffer .= $_string[$pointer]; $pointer++; if ($pointer == $length) break; $char = ord ($_string[$pointer]); } // . a-z _ A-Z 0-9 while ($char == 45 or $char == 46 or ($char >= 65 and $char <= 90) or $char == 95 or ($char >= 97 and $char <= 122) or ($char >= 48 and $char <= 57)); $array[$level][$index[$level]] = array ( 0 => 2, 1 => $buffer ); $index[$level]++; if ($pointer == $length) goto PARSE_END_OF_ARGUMENTS; $char = ord ($_string[$pointer]); goto PARSE_NEXT_ARGUMENT; } // $ variable if ( ($char >= 65 and $char <= 90) or $char == 95 or ($char >= 97 and $char <= 122)) { // function $buffer = ''; do { // . a-z _ A-Z 0-9 $buffer .= $_string[$pointer]; $pointer++; if ($pointer == $length) break; $char = ord ($_string[$pointer]); } // . a-z _ A-Z 0-9 while ($char == 46 or ($char >= 65 and $char <= 90) or $char == 95 or ($char >= 97 and $char <= 122) or ($char >= 48 and $char <= 57)); if ($buffer == 'and' or $buffer == 'or') { // operator if (!$index[$level]) goto PARSE_END_OF_ARGUMENTS; $index[$level]--; $operand = $array[$level][$index[$level]]; $array[$level][$index[$level]] = array (0 => 4, 1 => $buffer); // puts the operand into argument list $level++; $array[$level] = array (0 => $operand); $index[$level] = 1; // Alert to down a level after next operand $down[$level] = true; goto PARSE_NEXT_ARGUMENT_NO_DOWN; } // operator else $array[$level][$index[$level]] = array (0 => 1, 1 => $buffer); if ($pointer == $length) goto PARSE_END_OF_ARGUMENTS; while ($char == 9 or $char == 10 or $char == 13 or $char == 32 or $char == 44) // tab 9 lf 10 cr 13 espace 32 , 44 { // empty space $pointer++; if ($pointer == $length) goto PARSE_END_OF_ARGUMENTS; $char = ord ($_string[$pointer]); } // empty space if ($char == 40) { // ( level up $pointer++; if ($pointer == $length) goto PARSE_END_OF_ARGUMENTS; $level++; $index[$level] = 0; $array[$level] = array (); $char = ord ($_string[$pointer]); goto PARSE_NEXT_ARGUMENT; } // ( level up $index[$level]++; $char = ord ($_string[$pointer]); goto PARSE_NEXT_ARGUMENT; } // function if ($char == 40) { // ( level up $array[$level][$index[$level]] = array ( 0 => 1, 1 => '' ); $level++; $index[$level] = 0; $array[$level] = array (); $pointer++; if ($pointer == $length) goto PARSE_END_OF_ARGUMENTS; $char = ord ($_string[$pointer]); goto PARSE_NEXT_ARGUMENT; } // ( level up if ($char == 41) { // ) level down $level--; if (!$level) goto PARSE_END_OF_ARGUMENTS; $array[$level][$index[$level]][2] = $array[$level + 1]; $index[$level]++; while (isset ($down[$level])) { // operator level down unset ($down[$level]); $level--; if (!$level) goto PARSE_END_OF_ARGUMENTS; $array[$level][$index[$level]][2] = $array[$level + 1]; $index[$level]++; } // operator level down $pointer++; if ($pointer == $length) goto PARSE_END_OF_ARGUMENTS; $char = ord ($_string[$pointer]); goto PARSE_NEXT_ARGUMENT; } // ) level down if ($char == 96) { // ` string $pointer++; if ($pointer == $_length) goto PARSE_END_OF_STRING; $pos = strpos ($_string, '`', $pointer); if ($pos === false) goto PARSE_END_OF_STRING; $array[$level][$index[$level]] = array ( 0 => 0, 1 => substr ($_string, $pointer, $pos - $pointer) ); $index[$level]++; if ($pos > $length) { // new ending $pointer = $pos + 1; $_pointer = $pointer; $_offset = strcspn ($_string, ';{]', $pointer); if (!$_offset) goto PARSE_END_OF_ARGUMENTS; $length = $pointer + $_offset; } // new ending else $pointer = $pos + 1; if ($pointer == $length) goto PARSE_END_OF_ARGUMENTS; $char = ord ($_string[$pointer]); goto PARSE_NEXT_ARGUMENT; } // ` string if ($char == 33) { // ! operator $pointer++; if ($pointer == $length) goto PARSE_END_OF_ARGUMENTS; $char = ord ($_string[$pointer]); $array[$level][$index[$level]] = array (0 => 5, 1 => '!'); $level++; $array[$level] = array (); $index[$level] = 0; // Alert to down a level after next operand $down[$level] = true; goto PARSE_NEXT_ARGUMENT_NO_DOWN; } // ! operator if ($char == 38 or $char == 42 or $char == 43 or $char == 45 or $char == 47 or $char == 60 or $char == 61 or $char == 62) { // = + - / * += -= /= *= == & | operadores $buffer = $_string[$pointer]; $pointer++; if ($pointer == $length) goto PARSE_END_OF_ARGUMENTS; $char = ord ($_string[$pointer]); if ($char == 38 or $char == 42 or $char == 43 or $char == 45 or $char == 47 or $char == 60 or $char == 61 or $char == 62) { // second operator $buffer .= $_string[$pointer]; $pointer++; if ($pointer == $length) goto PARSE_END_OF_ARGUMENTS; $char = ord ($_string[$pointer]); } // second operator if (!$index[$level]) goto PARSE_END_OF_ARGUMENTS; $index[$level]--; $operand = $array[$level][$index[$level]]; $array[$level][$index[$level]] = array (0 => 4, 1 => $buffer); // puts the operand into argument list $level++; $array[$level] = array (0 => $operand); $index[$level] = 1; // Alert to down a level after next operand $down[$level] = true; goto PARSE_NEXT_ARGUMENT_NO_DOWN; } // = + - / * += -= /= *= == & | operadores // salta caractéres não reconhecidos até aqui $pointer++; if ($pointer < $length) { // unrecognized char $char = ord ($_string[$pointer]); goto PARSE_NEXT_ARGUMENT; } // unrecognized char PARSE_END_OF_ARGUMENTS: while (isset ($down[$level])) { // operator level down unset ($down[$level]); $level--; if (!$level) break; $array[$level][$index[$level]][2] = $array[$level + 1]; unset ($array[$level + 1]); } // operator level down if (strlen ($name) or $array[1]) { // creates a new function if ($name == 'noparse') { // noparse $offset = strcspn ($_string, ']', $_pointer); $_pointer += $offset + 1; $end = strpos ($_string, '[/noparse', $_pointer); if ($end === false) $end = $_length; $_array[$_level][$_index[$_level]] = array ( 0 => 0, 1 => substr ($_string, $_pointer, $end), 2 => array (), 4 => false ); $_pointer = $end; if ($_pointer == $_length) goto PARSE_END_OF_STRING; $_pointer += 9; $_char = ord ($_string[$_pointer]); if ($_pointer == $_length) goto PARSE_END_OF_STRING; goto PARSE_NEXT_INSTRUCTION; } // noparse $_array[$_level][$_index[$_level]] = array ( 0 => 1, 1 => $name, 2 => $array[1], 4 => $silent ); $_pointer += $_offset; if ($_pointer == $_length) goto PARSE_END_OF_STRING; $_char = ord ($_string[$_pointer]); if ($_char == 123) { // { level up $_level++; $_array[$_level] = array (); $_index[$_level] = 0; $_pointer++; if ($_pointer == $_length) goto PARSE_END_OF_STRING; $_char = ord ($_string[$_pointer]); goto PARSE_NEXT_INSTRUCTION; } // { level up else $_index[$_level]++; goto PARSE_END_OF_INSTRUCTION; } // creates a new function $_pointer += $_offset; if ($_pointer == $_length) goto PARSE_END_OF_STRING; $_char = ord ($_string[$_pointer]); PARSE_END_OF_INSTRUCTION: if ($_char == 59) { // ; end of instruction $_pointer++; if ($_pointer == $_length) goto PARSE_END_OF_STRING; $_char = ord ($_string[$_pointer]); goto PARSE_NEXT_INSTRUCTION; } // ; end of instruction if ($_char == 93) { // ] $_pointer++; if ($_pointer == $_length) goto PARSE_END_OF_STRING; if (ord ($_string[$_pointer]) == 13) { // cr $_pointer++; if ($_pointer == $_length) goto PARSE_END_OF_STRING; } // cr if (ord ($_string[$_pointer]) == 10) { // lf $_pointer++; if ($_pointer == $_length) goto PARSE_END_OF_STRING; } // lf goto PARSE_TAG_SEEK; } // ] // unrecognized char $_pointer++; if ($_pointer == $_length) goto PARSE_END_OF_STRING; $_char = ord ($_string[$_pointer]); goto PARSE_NEXT_INSTRUCTION; PARSE_END_OF_STRING: if ($parseOnly) return $_array[1]; $this->render_tags_level ($_array[1]); } // function render_tags public function render_tags_level ($array) { // function render_tags_level $length = count ($array); if (!$length) return; $index = 0; goto LEVEL_NEXT_INSTRUCTION_1; LEVEL_NEXT_INSTRUCTION: $index++; if ($index == $length) return; LEVEL_NEXT_INSTRUCTION_1: $current = $array[$index]; if (!isset ($current[1])) goto LEVEL_NEXT_INSTRUCTION; if ($current[0] == 0) { // buffer $this->buffer .= $current[1]; goto LEVEL_NEXT_INSTRUCTION; } // buffer if (isset ($current[2]) and $current[2]) $arguments = $this->render_tags_arguments ($current[2]); else $arguments = array (); switch ($current[1]) { // switch function name case 'if': if ($arguments and ( (is_string ($arguments[0]) and strlen ($arguments[0]) and $arguments[0] != '0') or (!is_string ($arguments[0]) and $arguments[0]) )) { // if condition evaluates true if (isset ($current[3]) and $current[3]) $this->render_tags_level ($current[3]); goto LEVEL_NEXT_INSTRUCTION; } // if condition evaluates true while ($index + 1 != $length and isset ($array[$index + 1][1]) and $array[$index + 1][1] == 'elseif') { // loop elseif $current = $array[$index + 1]; if (isset ($current[2])) { // conditions exists $arguments = $this->render_tags_arguments ($current[2]); if ($arguments and $arguments[0]) { // elseif condition evaluates true if (isset ($current[3]) and $current[3]) $this->render_tags_level ($current[3]); $index++; goto LEVEL_NEXT_INSTRUCTION; } // elseif condition evaluates true } // conditions exists $index++; } // loop elseif if ($index + 1 != $length and isset ($array[$index + 1][1]) and $array[$index + 1][1] == 'else') { // else $current = $array[$index + 1]; if (isset ($current[3]) and $current[3]) $this->render_tags_level ($current[3]); $index++; } // else goto LEVEL_NEXT_INSTRUCTION; case 'elseif': case 'else': goto LEVEL_NEXT_INSTRUCTION; case 'loop': do { // loop if (isset ($current[3]) and $current[3]) $this->render_tags_level ($current[3]); } // loop while (eclTag_loop::render ($this)); goto LEVEL_NEXT_INSTRUCTION; case '': if (isset ($arguments[0]) and (!isset ($current[4]) or !$current[4])) $this->buffer .= strval ($arguments[0]); goto LEVEL_NEXT_INSTRUCTION; default: if (!preg_match ('/^[a-z][a-z0-9_]+$/', $current[1])) goto LEVEL_NEXT_INSTRUCTION; $class = 'eclTag_' . $current[1]; $local = $class::render ($this, $arguments); if (!is_array ($local) or !$local) { // empty if ($index + 1 != $length and isset ($array[$index + 1][1]) and $array[$index + 1][1] == 'else') { // else $current = $array[$index + 1]; if (isset ($current[3]) and $current[3]) $this->render_tags_level ($current[3]); $index++; } // else goto LEVEL_NEXT_INSTRUCTION; } // empty if (isset ($current[4]) and $current[4]) goto LEVEL_NEXT_INSTRUCTION; if (isset ($current[3]) and $current[3]) { // not empty $this->levelUp ($local); $this->render_tags_level ($current[3]); $this->levelDown (); goto LEVEL_NEXT_INSTRUCTION; } // not empty if (isset ($local['parsed'])) { // parsed content $this->levelUp ($local); $this->render_tags_level ($local['parsed']); $this->levelDown (); goto LEVEL_NEXT_INSTRUCTION; } // parsed content if (isset ($local['html'][0])) { // render html $this->levelUp ($local); $this->render_tags ($local['html']); $this->levelDown (); goto LEVEL_NEXT_INSTRUCTION; } // render html switch ($current[1]) { // switch tag case 'audio': case 'box': case 'dinamic': case 'file': case 'html': case 'img': case 'mod': case 'table': case 'video': $this->levelUp ($local); // eclRender_renderBorders_none::render ($this); $border = $this->block ('borders/default'); $this->render ($border['html']); $this->levelDown (); goto LEVEL_NEXT_INSTRUCTION; } // switch tag } // switch function name goto LEVEL_NEXT_INSTRUCTION; } // function render_tags_level public function getVar ($name) { // function getVar if ($name[0] == '$') $name = substr ($name, 1); for ($watchDog = 10; $watchDog; $watchDog--) { // loop search value $value = $this->getVarSearch ($name); if (!is_string ($value)) return $value; if (!isset ($value[0])) return $value; if ($value[0] != '$') return $value; $name = substr ($value, 1); } // loop search value } // function getVar private function getVarSearch ($name) { // function getVarSearch global $system; $parts = explode ('.', $name); if (count ($parts) == 1) { // local scope if (isset ($this->data[$name])) return $this->data[$name]; if (isset ($this->data['text'][$name])) return $this->data['text'][$name]; if (isset ($this->data['local'][$name])) return $this->data['local'][$name]; if (is_array ($this->data)) { // control mode if (isset ($this->data[$name])) return $this->data[$name]; if (isset ($this->data['text'][$name])) return $this->data['text'][$name]; if (isset ($this->data['local'][$name])) return $this->data['local'][$name]; } // control mode if (is_object ($this->data)) { // application mode } // application mode return ''; } // local scope list ($prefix, $name) = $parts; switch ($prefix) { // switch scope name case 'mod': if (isset ($this->mod[$name])) return $this->mod[$name]; if (isset ($this->mod['text'][$name])) return $this->mod['text'][$name]; if (isset ($this->mod['local'][$name])) return $this->mod['local'][$name]; return ''; case 'system': $me = $system; break; case 'user': case 'subscription': if ($this->document->pathway[0] != SYSTEM_PROFILES_URI or !isset ($document->data['user_data_access_enabled'])) { // prevent access to user data switch ($name) { // switch name case 'caption': case 'title': break; default: return 'Access denied for user data'; } // switch name } // prevent access to user data case 'domain': case 'home': $me = $this->document->$prefix; break; case 'document': $me = $this->document; break; case 'session': if (isset ($this->document->session[$name])) return $this->document->session[$name]; if (isset ($this->document->session['text'][$name])) return $this->document->session['text'][$name]; if (isset ($this->document->session['local'][$name])) return $this->document->session['local'][$name]; return ''; default: return ''; } // switch scope name if (isset ($me->data[$name])) return $me->data[$name]; if (isset ($me->data['text'][$name])) return $me->data['text'][$name]; if (isset ($me->data['local'][$name])) return $me->data['local'][$name]; return ''; } // function getVarSearch private function render_tags_arguments ($array) { // function render_tags_arguments $arguments = array (); foreach ($array as $current) { // each argument switch ($current[0]) { // switch argument type case 0: case 3: $arguments[] = $current[1]; break; case 1: if (isset ($current[2]) and $current[2]) $sub = $this->render_tags_arguments ($current[2]); else $sub = array (); if ($current[1] == '') { // anonimous function if (isset ($sub[0])) $arguments[] = $sub[0]; } // anonimous function else { // sub function if (preg_match ('/^[a-z][a-z0-9_]*$/', $current[1])) { // valid function $func = 'eclTag_' . $current[1]; $arguments[] = $func::render ($this, $sub); } // valid function } // sub function break; case 2: $arguments[] = $this->getVar ($current[1]); break; case 4: if (!isset ($current[2]) or !$current[2]) break; $sub = $this->render_tags_arguments ($current[2]); if (count ($sub) < 2) break; switch ($current[1]) { // switch operator case 'and': if ($sub[0] and $sub[1]) $arguments[] = 1; else $arguments[] = 0; break; case 'or': if ($sub[0]) $arguments[] = $sub[0]; elseif ($sub[1]) $arguments[] = $sub[1]; else $arguments[] = ''; break; } // switch operator break; case 5: if (!isset ($current[2]) or !$current[2]) break; $sub = $this->render_tags_arguments ($current[2]); if (!count ($sub)) break; switch ($current[1]) { // switch operator case '!': if ($sub[0]) $arguments[] = 0; else $arguments[] = 1; } // switch operator break; } // switch argument type } // each argument return $arguments; } // function render_tags_arguments public function toKeyword ($key) { // function toKeyword static $convert = array ('a' => 'a', 'b' => 'b', 'c' => 'c', 'd' => 'd', 'e' => 'e', 'f' => 'f', 'g' => 'g', 'h' => 'h', 'i' => 'i', 'j' => 'j', 'k' => 'k', 'l' => 'l', 'm' => 'm', 'n' => 'n', 'o' => 'o', 'p' => 'p', 'q' => 'q', 'r' => 'r', 's' => 's', 't' => 't', 'u' => 'u', 'v' => 'v', 'w' => 'w', 'x' => 'x', 'y' => 'y', 'z' => 'z', 'A' => 'a', 'B' => 'b', 'C' => 'c', 'D' => 'd', 'E' => 'e', 'F' => 'f', 'G' => 'g', 'H' => 'h', 'I' => 'i', 'J' => 'j', 'K' => 'k', 'L' => 'l', 'M' => 'm', 'N' => 'n', 'O' => 'o', 'P' => 'p', 'Q' => 'q', 'R' => 'r', 'S' => 's', 'T' => 't', 'U' => 'u', 'V' => 'v', 'W' => 'w', 'X' => 'x', 'Y' => 'y', 'Z' => 'z', 'â' => 'a', 'Â' => 'a', 'ã' => 'a', 'Ã' => 'a', 'á' => 'a', 'Á' => 'a', 'à' => 'a', 'À' => 'a', 'ä' => 'a', 'Ä' => 'a', 'Ç' => 'c', 'ç' => 'c', 'ê' => 'e', 'Ê' => 'e', 'é' => 'e', 'É' => 'e', 'ë' => 'e', 'Ë' => 'e', 'î' => 'i', 'Î' => 'i', 'í' => 'i', 'Í' => 'i', 'ï' => 'i', 'Ï' => 'i', 'ô' => 'o', 'Ô' => 'o', 'õ' => 'o', 'Õ' => 'o', 'ó' => 'o', 'Ó' => 'o', 'ö' => 'o', 'Ö' => 'o', 'û' => 'u', 'Û' => 'u', 'ú' => 'u', 'Ú' => 'u', 'ü' => 'u', 'Ü' => 'u', 'Ý' => 'y', 'ý' => 'y', 'ÿ' => 'y', 'Ÿ' => 'y', '-' => '-', '1' => '1', '2' => '2', '3' => '3', '4' => '4', '5' => '5', '6' => '6', '7' => '7', '8' => '8', '9' => '9', '0' => '0', '_' => '_', ' ' => '_'); // The $last will remember the last character of the convertion // to prevent duplicated spacing "__" or "--" in the name $result = ''; $last = ' '; foreach (str_split ($key) as $char) { // each char if (!isset ($convert[$char])) continue; $valid = $convert[$char]; if ($valid != $last) { // not repeated separator if ($valid == '-' or $valid == ' ' or $valid == '_') $last = $valid; else $last = ''; $result .= $valid; } // not repeated separator } // each char return trim ($result, '-_'); } // function toKeyword public function block ($name) { // function block global $store; static $opened = false; if (!strpos ($name, '/')) return array (); if (!$opened and !$this->blocks) { // open $opened = true; if ($this->document->domain->domainId) { // open template $children = $store->domainExtras->children ($this->document->domain->domainId, MODE_TEMPLATE, 0); foreach ($children as $data) { // each block $this->blocks[$data['name']] = $data; } // each block } // open template } // open if (isset ($this->blocks[$name])) return $this->blocks[$name]; return $store->control->read ($name); } // function block public function stackPop ($type) { // function stackPop $exists = false; foreach ($this->tagsStack as $item) { // each stack item if ($item[0] == $type) { // exists $exists = true; break; } // exists } // each item if (!$exists) return false; do { // loop each level $item = end ($this->tagsStack); if ($item[0] == $type) { // found $item = array_pop ($this->tagsStack); return $item[1]; } // found $class = 'eclTag_end' . $item[0]; $class::render ($render, array ()); } // each stack item while (true); } // function stackPop } // class eclEngine_render //!eof:engine/eclEngine/eclEngine_render.php; //!file:engine/eclEngine/eclEngine_store.php; class eclEngine_store { // class eclEngine_store public function __get ($name) { // function __get $class = 'eclStore_' . $name; $this->$name = new $class; return $this->$name; } // function __get public function close () { // function close foreach ($this as $name => $driver) { // close each driver if (!isset ($driver->isPhantom)) $driver->close (); } // close each driver } // function close } // class eclEngine_store //!eof:engine/eclEngine/eclEngine_store.php; //!file:engine/eclFilter/eclFilter_amount.php; /* * Valid control flags: * control_type text_tiny_leftfield | text_tiny | text_small | range * control_filter = integer * control_target * control_field_name * control_clear * control_default_value * control_clear_default_value => clear the field when the value is the default value * control_min_input => adjust the value if received is smaller * control_max_input => adjust the value if received is bigger * control_step => for use with range inputs * control_help * control_help_msg */ class eclFilter_amount { // class eclFilter_amount static function create ($fieldName, $control, $formulary) { // function create $local['name'] = $fieldName; // type if (isset ($control['flags']['type'])) $local['type'] = $control['flags']['type']; else $local['type'] = 'text_small'; // help if (isset ($control['flags']['help']) and !isset ($control['flags']['help_msg'])) $local['help_msg'] = 'system_msg_filterIntegerHelp'; // target if (isset ($control['flags']['target'])) $value = $formulary->getField ($control['flags']['target']); else $value = false; // default_value if ($value === false and isset ($control['flags']['default_value'])) $value = $control['flags']['default_value']; $local['value'] = $value; if (isset ($control['flags']['min_input'])) $local['min'] = $control['flags']['min_input']; if (isset ($control['flags']['max_input'])) $local['max'] = $control['flags']['max_input']; if (isset ($control['flags']['step'])) $local['step'] = $control['flags']['step']; $formulary->appendChild ($control, $local); } // function create static function save ($fieldName, $control, $formulary) { // function save if (isset ($formulary->received[$fieldName])) { // received value $value = $formulary->received[$fieldName]; if (!preg_match ('/^[-]?[0-9]+$/', $value)) $value = false; } // received value else $value = false; // clear if ($value === false and !isset ($control['flags']['clear'])) $value = 0; if (isset ($control['flags']['default_value']) and isset ($control['flags']['clear_default_value']) and $value == $control['flags']['default_value']) $value = false; if ($value !== false) { // valid value settype ($value, 'int'); // min_input if (isset ($control['flags']['min_input']) and $value < $control['flags']['min_input']) $value = $control['flags']['min_input']; // max_input if (isset ($control['flags']['max_input']) and $value > $control['flags']['max_input']) $value = $control['flags']['max_input']; } // received value // target if (isset ($control['flags']['target'])) $formulary->setField ($control['flags']['target'], $value); } // function save } // class eclFilter_amount //!eof:engine/eclFilter/eclFilter_amount.php; //!file:engine/eclFilter/eclFilter_caption.php; class eclFilter_caption { // class eclFilter_caption static function create ($fieldName, $control, $formulary) { // function create static $s = array ('&', '<', '"'); static $r = array ('&', '<', '"'); static $cs = array ('UTF-8', 'ISO-8859-1'); $document = $formulary->document; $item = $document->createListItem ($control); $item->data['name'] = $fieldName; if (isset ($control['flags']['type'])) $item->data['type'] = $control['flags']['type']; else $item->data['type'] = 'text'; if (isset ($control['flags']['target']) and $text = $formulary->getField ($control['flags']['target'])) { // get field $lang = $document->lang; $charset = $document->charset; if (isset ($text[$lang])) $found = $text[$lang]; elseif (isset ($control['flags']['monolang'])) $found = current ($text); if (isset ($found[TEXT_CONTENT])) { // contents exists if (!isset ($found[TEXT_CHARSET])) $found[TEXT_CHARSET] = 0; if ($charset != $cs[$found[TEXT_CHARSET]]) $value = mb_convert_encoding ($found[TEXT_CONTENT], $charset, $cs[$found[TEXT_CHARSET]]); else $value = $found[TEXT_CONTENT]; $item->data['value'] = str_replace ($s, $r, $value); } // contents exists } // get field return $item; } // function create static function save ($fieldName, $control, $formulary) { // function save if (!isset ($formulary->received[$fieldName]) or $formulary->received[$fieldName] == '') { // empty field if (isset ($control['flags']['required'])) return $formulary->setRequiredMsg ($control, $fieldName); if (isset ($formulary->data['text']['title'][$formulary->document->lang][1])) $caption = $formulary->data['text']['title'][$formulary->document->lang][1]; if (!isset ($caption) or !$caption) return $formulary->setRequiredMsg ($control, $fieldName); } // empty field else $caption = $formulary->received[$fieldName]; $charset = $formulary->document->charset; $lenght = mb_strlen ($caption, $charset); if ($lenght > 36) { // cut caption $caption = mb_substr ($caption, 0, 36, $charset); $lenght = mb_strrpos ($caption, ' ', 30, $charset); if ($lenght) $caption = mb_substr ($caption, 0, $lenght, $charset); $caption .= '...'; } // cut caption if (isset ($control['flags']['target'])) { // set field $current = $formulary->getField ($control['flags']['target']); $current === false ? $current = array () : null; $lang = $formulary->document->lang; if (isset ($current[$lang])) unset ($current[$lang]); if ($caption !== false) { // received data $caption = str_replace (array (CR, LF), array ('', ' '), $caption); $current[$lang][TEXT_CONTENT] = $caption; if ($charset == 'ISO-8859-1') $current[$lang][TEXT_CHARSET] = 1; } // received data if (!$current)$current = false; $formulary->setField ($control['flags']['target'], $current); } // set field } // function save } // class eclFilter_caption //!eof:engine/eclFilter/eclFilter_caption.php; //!file:engine/eclFilter/eclFilter_checkbox.php; /* * Valid control flags * control_type = checkbox * control_filter = checkbox * control_target * control_field_name * control_invert => invert selection before showing and before saving * control_clear => if value == 0, clears the target flag * control_true_value => specifies a value to save when checked, like 'yes' - note that its depends of control_invert * control_false_value => specifies a value to save when not checked, like 'no' - note that its depends of control_invert * control_help * control_help_msg */ class eclFilter_checkbox { // class eclFilter_checkbox static function create ($fieldName, $control, $formulary) { // function create $local['name'] = $fieldName; // type if (isset ($control['flags']['type'])) $local['type'] = $control['flags']['type']; else $local['type'] = 'checkbox'; // help if (isset ($control['flags']['help']) and !isset ($control['flags']['help_msg'])) $local['help_msg'] = 'system_filterCheckboxHelp'; // value $value = 0; if (isset ($control['flags']['target'])) $value = $formulary->getField ($control['flags']['target']); if (isset ($control['flags']['true_value'])) { // predefined value if ($value == $control['flags']['true_value']) $value = 1; else $value = 0; } // predefined value elseif (isset ($control['flags']['false_value'])) { // predefined false value if ($value == $control['flags']['false_value']) $value = 0; else $value = 1; } // predefined false value elseif ($value) $value = 1; else $value = 0; // invert if (isset ($control['flags']['invert'])) $value ? $value = 0 : $value = 1; if ($value) $local['value'] = 1; $formulary->appendChild ($control, $local); } // function create static function save ($fieldName, $control, $formulary) { // function save if (isset ($formulary->received[$fieldName]) and $formulary->received[$fieldName]) $value = 1; else $value = 0; // invert if (isset ($control['flags']['invert'])) $value ? $value = 0 : $value = 1; // clear if (isset ($control['flags']['clear']) and !$value) $value = false; // true value if ($value and isset ($control['flags']['true_value'])) $value = $control['flags']['true_value']; // false value elseif (!$value and isset ($control['flags']['false_value'])) $value = $control['flags']['false_value']; // target if (isset ($control['flags']['target'])) $formulary->setField ($control['flags']['target'], $value); } // function save } // class eclFilter_checkbox //!eof:engine/eclFilter/eclFilter_checkbox.php; //!file:engine/eclFilter/eclFilter_end.php; class eclFilter_end { // class eclFilter_end static function create ($fieldName, $control, $formulary) { // function create $item = $formulary->appendChild (); $item->data['type'] = 'end'; foreach ($formulary->hidden as $name => $value) { // each hidden field $item->appendChild (false, array ( 'name' => $name, 'value' => $value )); } // each hidden field } // function create static function save ($fieldName, $control, $formulary) { // function save } // function save } // class eclFilter_end //!eof:engine/eclFilter/eclFilter_end.php; //!file:engine/eclFilter/eclFilter_formulary.php; /* * Valid control flags * control_filter = formulary * control_base_target = A prefix for each control_target, like 'path/' * control_base_name = a prefix for each field name, like 'path' * * Note that the control needs children */ class eclFilter_formulary { // class eclFilter_formulary static function create ($fieldName, $control, $formulary) { // function create if (!isset ($control['children'])) return; // name $local['name'] = $fieldName; // type if (isset ($control['flags']['type'])) $local['type'] = $control['flags']['type']; else $local['type'] = 'fields'; $formulary->appendChild ($control, $local); $formulary->levelUp ($control); } // function create static function save ($fieldName, $control, $formulary) { // function save $formulary->insertControlChildren ($control); } // function save } // class eclFilter_formulary //!eof:engine/eclFilter/eclFilter_formulary.php; //!file:engine/eclFilter/eclFilter_free.php; /* * Valid control flags * control_type = text_small | text | text_tiny | textarea_small | textarea | textarea_big | textarea_full * control_filter = free * control_target * control_field_name * control_default_value * control_help * control_help_msg * control_error * control_error_msg * control_required * control_required_msg * control_clear */ class eclFilter_free { // class eclFilter_free static function create ($fieldName, $control, $formulary) { // function create $local['name'] = $fieldName; // type if (isset ($control['flags']['type'])) $local['type'] = $control['flags']['type']; else $local['type'] = 'textarea'; // help if (isset ($control['flags']['help']) and !isset ($control['flags']['help_msg'])) $local['help_msg'] = 'system_filterFreeHelp'; // target if (isset ($control['flags']['target'])) $value = $formulary->htmlSpecialChars ($formulary->getField ($control['flags']['target'])); else $value = false; // default value if ( ($value === false or $value === '') and isset ($control['flags']['default_value'])) $value = $control['flags']['default_value']; $local['value'] = $value; $formulary->appendChild ($control, $local); } // function create static function save ($fieldName, $control, $formulary) { // function save if (isset ($formulary->received[$fieldName]) and strlen ($formulary->received[$fieldName])) $value = $formulary->received[$fieldName]; else $value = false; // required if ($value === false and isset ($control['flags']['required'])) return $formulary->setRequiredMsg ($control, $fieldName); // clear if ($value === false and !isset ($control['flags']['clear'])) $value = ''; // target if (isset ($control['flags']['target'])) $formulary->setField ($control['flags']['target'], $value); } // function save } // class eclFilter_free //!eof:engine/eclFilter/eclFilter_free.php; //!file:engine/eclFilter/eclFilter_integer.php; /* * Valid control flags: * control_type text_tiny_leftfield | text_tiny | text_small | range * control_filter = integer * control_target * control_field_name * control_clear * control_default_value * control_clear_default_value => clear the field when the value is the default value * control_min_input => adjust the value if received is smaller * control_max_input => adjust the value if received is bigger * control_step => for use with range inputs * control_help * control_help_msg */ class eclFilter_integer { // class eclFilter_integer static function create ($fieldName, $control, $formulary) { // function create $local['name'] = $fieldName; // type if (isset ($control['flags']['type'])) $local['type'] = $control['flags']['type']; else $local['type'] = 'text_small'; // help if (isset ($control['flags']['help']) and !isset ($control['flags']['help_msg'])) $local['help_msg'] = 'system_msg_filterIntegerHelp'; // target if (isset ($control['flags']['target'])) $value = $formulary->getField ($control['flags']['target']); else $value = false; // default_value if ($value === false and isset ($control['flags']['default_value'])) $value = $control['flags']['default_value']; $local['value'] = $value; if (isset ($control['flags']['min_input'])) $local['min'] = $control['flags']['min_input']; if (isset ($control['flags']['max_input'])) $local['max'] = $control['flags']['max_input']; if (isset ($control['flags']['step'])) $local['step'] = $control['flags']['step']; $formulary->appendChild ($control, $local); } // function create static function save ($fieldName, $control, $formulary) { // function save if (isset ($formulary->received[$fieldName])) { // received value $value = $formulary->received[$fieldName]; if (!preg_match ('/^[-]?[0-9]+$/', $value)) $value = false; } // received value else $value = false; // clear if ($value === false and !isset ($control['flags']['clear'])) $value = 0; if (isset ($control['flags']['default_value']) and isset ($control['flags']['clear_default_value']) and $value == $control['flags']['default_value']) $value = false; if ($value !== false) { // valid value settype ($value, 'int'); // min_input if (isset ($control['flags']['min_input']) and $value < $control['flags']['min_input']) $value = $control['flags']['min_input']; // max_input if (isset ($control['flags']['max_input']) and $value > $control['flags']['max_input']) $value = $control['flags']['max_input']; } // received value // target if (isset ($control['flags']['target'])) $formulary->setField ($control['flags']['target'], $value); } // function save } // class eclFilter_integer //!eof:engine/eclFilter/eclFilter_integer.php; //!file:engine/eclFilter/eclFilter_keywords.php; /* * Valid control flags * control_filter = keywords */ class eclFilter_keywords { // class eclFilter_keywords static function create ($fieldName, $control, $formulary) { // function create } // function create static function save ($fieldName, $control, $formulary) { // function save global $io; // If a previous problem was ocurred saving the formulary, we need to abort if ($formulary->errorMsg !== false) return false; $data = &$formulary->data; if (isset ($data['name'])) $keywords = $data['name']; else $keywords = ''; foreach (array ('caption', 'title', 'author', 'licence') as $field) { // each text field if (isset ($data['text'][$field])) { // field exists foreach ($data['text'][$field] as $language) { // each language if (!isset ($language[TEXT_CHARSET]) or $language[TEXT_CHARSET] == 0) $keywords .= ' ' . mb_convert_encoding ($language[TEXT_CONTENT], 'ISO-8859-1', 'UTF-8'); elseif ($language[TEXT_CHARSET] == 1) $keywords .= ' ' . $language[TEXT_CONTENT]; } // each language } // field exists } // each text field $keywords = str_replace (array ('#', ';'), '', $keywords); if (isset ($data['text']['keywords'])) { // set hash tags $buffer = ''; foreach ($data['text']['keywords'] as $language) { // each language if (!isset ($language[TEXT_CHARSET]) or $language[TEXT_CHARSET] == 0) $buffer .= ' ' . mb_convert_encoding ($language[TEXT_CONTENT], 'ISO-8859-1', 'UTF-8'); elseif ($language[TEXT_CHARSET] == 1) $buffer .= ' ' . $language[TEXT_CONTENT]; } // each language foreach (explode (' ', $buffer) as $key) { // filter each keyword $key = str_replace (array ('#', ';'), '', $key); if (!strlen ($key)) continue; $keywords .= ' :' . $key . ':'; } // filter each keyword } // set hash tags $formulary->data['keywords'] = implode (' ', eclIo_database::filterKeywords ($keywords)); } // function save } // class eclFilter_keywords //!eof:engine/eclFilter/eclFilter_keywords.php; //!file:engine/eclFilter/eclFilter_regexp.php; /* * Valid control flags * control_type = text_small | text | text_tiny | textarea_small | textarea | textarea_big | textarea_full * control_filter = regexp * control_target * control_field_name * control_regexp => an regular expression like /[a-z][a-z0-9_-]+ * control_default_value * control_help * control_help_msg * control_error * control_error_msg * control_required * control_required_msg * control_clear */ class eclFilter_regexp { // class eclFilter_regexp static function create ($fieldName, $control, $formulary) { // function create $local['name'] = $fieldName; // type if (isset ($control['flags']['type'])) $local['type'] = $control['flags']['type']; else $local['type'] = 'text'; // help if (isset ($control['flags']['help']) and !isset ($control['flags']['help_msg'])) $local['help_msg'] = 'system_filterFreeHelp'; // target if (isset ($control['flags']['target'])) $value = $formulary->htmlSpecialChars ($formulary->getField ($control['flags']['target'])); else $value = false; // default value if ( ($value === false or $value === '') and isset ($control['flags']['default_value'])) $value = $control['flags']['default_value']; $local['value'] = $value; $formulary->appendChild ($control, $local); } // function create static function save ($fieldName, $control, $formulary) { // function save if (isset ($formulary->received[$fieldName]) and strlen ($formulary->received[$fieldName])) $value = $formulary->received[$fieldName]; else $value = false; // required if ($value === false and isset ($control['flags']['required'])) return $formulary->setRequiredMsg ($control, $fieldName); // the regular expression if ($value !== false and isset ($control['flags']['regexp']) and !preg_match ($control['flags']['regexp'], $value)) return $formulary->setErrorMsg ($control, $fieldName); // clear if ($value === false and !isset ($control['flags']['clear'])) $value = ''; // target if (isset ($control['flags']['target'])) $formulary->setField ($control['flags']['target'], $value); } // function save } // class eclFilter_regexp //!eof:engine/eclFilter/eclFilter_regexp.php; //!file:engine/eclFilter/eclFilter_select.php; /* * Valid control flags * control_type = select | select_list | radio_group * control_filter = select * control_target * control_field_name * control_help * control_help_msg * control_value_cast string | int * control_default_value * control_mask_values * control_clear */ class eclFilter_select { // class eclFilter_select static function create ($fieldName, $control, $formulary) { // function create $item = $formulary->appendChild ($control); // name $item->data['name'] = $fieldName; // type if (isset ($control['flags']['type'])) $item->data['type'] = $control['flags']['type']; else $item->data['type'] = 'select'; // help if (isset ($control['flags']['help']) and !isset ($control['flags']['help_msg'])) $item->data['help_msg'] = 'system_filterSelectHelp'; // target if (!isset ($control['flags']['target'])) return; $value = $formulary->getField ($control['flags']['target']); // Default value if ($value === false and isset ($control['flags']['default_value'])) $value = $control['flags']['default_value']; // children if (isset ($control['children'])) { // children exists $counter = 0; foreach ($control['children'] as $child_name) { // each child $counter++; $child = $item->appendChild ($child_name); if (isset ($child->data['flags']['value'])) { // value exists if (isset ($control['flags']['mask_values'])) $child->data['value'] = $counter; else $child->data['value'] = $child->data['flags']['value']; if ($child->data['value'] == $value) $child->data['active'] = 1; } // value exists $child->data['name'] = $fieldName; } // each child } // children exists } // function create static function save ($fieldName, $control, $formulary) { // function save global $store; if (isset ($formulary->received[$fieldName])) $value = trim ($formulary->received[$fieldName], ' '); else $value = false; $found = false; if (isset ($control['children'])) { // children exists $counter = 0; foreach ($control['children'] as $child_name) { // each child $child = $store->control->read ($child_name); $counter++; if (!isset ($child['flags']['value'])) continue; if (isset ($control['flags']['mask_values'])) { // mask value if ($value == $counter) { // value found $found = $child['flags']['value']; break; } // value found continue; } // mask value if ($child['flags']['value'] === $value) { // value found $found = $value; break; } // value found } // each child } // children exists $value = $found; if ($value === false and isset ($control['flags']['default_value'])) $value = $control['flags']['default_value']; // Clear default value if (isset ($control['flags']['default_value']) and isset ($control['flags']['clear']) and $value === $control['flags']['default_value']) $value = false; // cast if (isset ($control['flags']['cast']) and $control['flags']['cast'] == 'int') settype ($value, 'int'); // clear if (!isset ($control['flags']['default_value']) and isset ($control['flags']['clear']) and !$value) $value = false; if ($value === false and isset ($control['flags']['required'])) { // required field if (isset ($control['flags']['error_msg'])) return $formulary->setRequiredMsg ($control, $fieldName, $control['flags']['error_msg']); return $formulary->setRequiredMsg ($control, $fieldName); } // required field // value cast if ($value !== false and isset ($control['flags']['value_cast']) and $control['flags']['value_cast'] == 'int') $value = intval ($value); // target if (isset ($control['flags']['target'])) $formulary->setField ($control['flags']['target'], $value); } // function save } // class eclFilter_select //!eof:engine/eclFilter/eclFilter_select.php; //!file:engine/eclFilter/eclFilter_start.php; class eclFilter_start { // class eclFilter_start static function create ($fieldName, $control, $formulary) { // function create $item = $formulary->appendChild (); $item->data['type'] = 'start'; if (isset ($formulary->flags['field_name'])) $item->data['name'] = $formulary->flags['field_name']; if (isset ($formulary->flags['action'])) $formulary->action = $formulary->flags['action']; $item->data['url'] = $formulary->document->url ($formulary->pathway, $formulary->lang, $formulary->action, $formulary->protocol); if ($formulary->multipart or isset ($formulary->flags['multipart'])) $item->data['multipart'] = 1; } // function create static function save ($fieldName, $control, $formulary) { // function save } // function save } // class eclFilter_start //!eof:engine/eclFilter/eclFilter_start.php; //!file:engine/eclFilter/eclFilter_submit.php; class eclFilter_submit { // class eclFilter_submit static function create ($fieldName, $control, $formulary) { // function create global $store; $item = $formulary->document->createListItem (); if (isset ($control['children'])) { // children exists foreach ($control['children'] as $name) { // each submit item if ($name[0] == '_') $name = 'system_form' . $name; $data = $store->control->read ($name); if (!isset ($data['flags']['field_name'])) continue; if (!isset ($data['text']['caption'])) continue; if ($data['flags']['field_name'] == 'clear_language' and (!isset ($formulary->data['text']['caption']) or count ($formulary->data['text']['caption']) == 1)) continue; $local['name'] = $formulary->prefix . 'command_' . $data['flags']['field_name']; $item->appendChild ($data, $local); } // each submit item } // children exists else { // self submit if (isset ($control['flags']['field_name'])) $item->appendChild ($control, array ('name' => $formulary->prefix . 'command_' . $control['flags']['field_name'])); else $item->appendChild ($control); } // self submit $item->data['type'] = 'submit'; return $item; } // function create static function save ($fieldName, $control, $formulary) { // function save } // function save } // class eclFilter_submit //!eof:engine/eclFilter/eclFilter_submit.php; //!file:engine/eclFilter/eclFilter_text.php; /* * control_type = text_small | text | textarea_small | textarea | textarea_big | textarea_full * control_filter = text * control_target * control_field_name * control_monolang = forces a unique language * * control_format_enable * control_format_force * control_html_enable * control_html_force * control_ecolabore_enable * control_ecolabore_force * * control_help * control_help_msg * control_required * control_required_msg */ class eclFilter_text { // class eclFilter_text static function create ($fieldName, $control, $formulary) { // function create static $s = array ('&', '<', '"'); static $r = array ('&', '<', '"'); static $cs = array ('UTF-8', 'ISO-8859-1'); $document = $formulary->document; $item = $document->createListItem ($control); // name $item->data['name'] = $fieldName; // type if (isset ($control['flags']['type'])) $item->data['type'] = $control['flags']['type']; else $item->data['type'] = 'text'; // help if (isset ($control['flags']['help']) and !isset ($control['flags']['help_msg'])) $item->data['help_msg'] = 'system_filterTextHelp'; // target if (isset ($control['flags']['target']) and $text = $formulary->getField ($control['flags']['target'])) { // get field $text = $formulary->getField ($control['flags']['target']); $lang = $document->lang; $defaultLang = $document->defaultLang; $charset = $document->charset; if (isset ($text[$lang])) $found = $text[$lang]; elseif (isset ($text[$defaultLang])) $found = $text[$defaultLang]; else $found = current ($text); if (isset ($found[TEXT_CONTENT])) { // contents exists if (!isset ($found[TEXT_CHARSET])) $found[TEXT_CHARSET] = 0; if ($charset != $cs[$found[TEXT_CHARSET]]) $value = mb_convert_encoding ($found[TEXT_CONTENT], $charset, $cs[$found[TEXT_CHARSET]]); else $value = $found[TEXT_CONTENT]; $item->data['value'] = str_replace ($s, $r, $value); } // contents exists } // get field return $item; } // function create static function save ($fieldName, $control, $formulary) { // function save $flags = $formulary->flags; if (isset ($control['flags']['target'])) { // set field $current = $formulary->getField ($control['flags']['target']); $current === false ? $current = array () : null; if (isset ($control['flags']['monolang'])) $current = array (); $lang = $formulary->document->lang; if (isset ($current[$lang])) unset ($current[$lang]); if (!isset ($formulary->received[$fieldName]) or $formulary->received[$fieldName] == '') { // empty field if (isset ($control['flags']['required']) and !$current) return $formulary->setRequiredMsg ($control, $fieldName); $formulary->received[$fieldName] = false; } // empty field if ($formulary->received[$fieldName] !== false) { // received data $current[$lang][TEXT_CONTENT] = $formulary->received[$fieldName]; if ($formulary->document->charset == 'ISO-8859-1') $current[$lang][TEXT_CHARSET] = 1; if (isset ($control['flags']['format_enable'])) { // format enable if (isset ($flags['text_format_choose']) and isset ($formulary->received['text_format'])) $current[$lang][TEXT_FORMAT] = 2; elseif (isset ($flags['text_format_force'])) { // format force if ($flags['text_format_force']) $current[$lang][TEXT_FORMAT] = 1; } // format force elseif (!isset ($flags['text_format_choose'])) $current[$lang][TEXT_FORMAT] = 1; } // format enable elseif (isset ($control['flags']['format_force'])) $current[$lang][TEXT_FORMAT] = $control['flags']['format_force']; if (isset ($control['flags']['html_enable'])) { // html enable if (isset ($flags['text_html_choose']) and isset ($formulary->received['text_html'])) $current[$lang][TEXT_HTML] = 2; elseif (isset ($flags['text_html_force'])) { // html force if ($flags['text_html_force']) $current[$lang][TEXT_HTML] = $flags['text_html_force']; } // html force elseif (!isset ($flags['text_html_choose'])) $current[$lang][TEXT_HTML] = 1; } // html enable elseif (isset ($control['flags']['html_force'])) $current[$lang][TEXT_HTML] = $control['flags']['html_force']; if (isset ($control['flags']['ecolabore_enable'])) { // ecolabore enable if (isset ($flags['text_ecolabore_choose']) and isset ($formulary->received['text_ecolabore'])) $current[$lang][TEXT_ECOLABORE] = 1; elseif (isset ($flags['text_ecolabore_force'])) { // force ecolabore if ($flags['text_ecolabore_force']) $current[$lang][TEXT_ECOLABORE] = 1; } // force ecolabore elseif (!isset ($flags['text_ecolabore_choose']) and !isset ($flags['text_ecolabore_disabled'])) $current[$lang][TEXT_ECOLABORE] = 1; } // ecolabore enable elseif (isset ($control['flags']['ecolabore_force'])) $current[$lang][TEXT_ECOLABORE] = $control['flags']['ecolabore_force']; } // received data if (!$current)$current = false; $formulary->setField ($control['flags']['target'], $current); } // set field } // function save } // class eclFilter_text //!eof:engine/eclFilter/eclFilter_text.php; //!file:engine/eclFilter/eclFilter_timestamp.php; /* * Valid control flags: * control_type = date * control_filter = timestamp * control_target * control_field_name * control_help * control_help_msg * * The default value for this field is aways "now" */ class eclFilter_timestamp { // class eclFilter_timestamp static function create ($fieldName, $control, $formulary) { // function create global $io, $store; $item = $formulary->appendChild ($control); // name $item->data['name'] = $fieldName; // control_type if (isset ($control['flags']['control_type'])) $item->data['type'] = $control['flags']['control_type']; else $item->data['type'] = 'date'; // help if (isset ($control['flags']['control_help']) and !isset ($control['flags']['control_help_msg'])) $item->data['control_help_msg'] = 'systemFormulary_filterDateHelp'; // target if (isset ($control['flags']['control_target'])) $value = $formulary->getField ($control['flags']['control_target']); if (!$value) $value = TIME; $valueY = date ('Y', $value); $valueM = date ('m', $value); $valueD = date ('j', $value); $valueH = date ('H', $value); $valueI = date ('i', $value); $valueI = intval ($valueI / 5) * 5; $local = array ('name' => $fieldName); $year = $item->appendChild (false, $local); $month = $item->appendChild (false, $local); $day = $item->appendChild (false, $local); $hour = $item->appendChild (false, $local); $minutes = $item->appendChild (false, $local); for ($y = 2030; $y > 1969; $y--) { // each year $local = array ('value' => $y); if ($y == $valueY) $local['active'] = 1; $year->appendChild (false, $local); } // each year for ($m = 12; $m > 0; $m--) { // each month $local = array ('value' => $m); if ($m == $valueM) $local['active'] = 1; $month->appendChild ($store->control->read ('labels/date/month' . $m), $local); } // each month for ($d = 31; $d > 0; $d--) { // each day $local = array ('value' => $d); if ($d == $valueD) $local['active'] = 1; $day->appendChild (false, $local); } // each day for ($h = 23; $h >= 0; $h--) { // each hour $value = str_pad ($h, '0', STR_PAD_LEFT); $local = array ('value' => $value); $hour->appendChild (false, $local) ->active ($h == $valueH); } // each hour for ($i = 55; $i >= 0; $i -= 5) { // each minute $value = str_pad ($i, '0', STR_PAD_LEFT); $local = array ('value' => $value); if ($i == $valueI) $local['active'] = 1; $minutes->appendChild (false, $local); } // each minute } // function create static function save ($fieldName, $control, $formulary) { // function save global $io; $received = $formulary->received; if ( isset ($received[$fieldName . '_year']) and isset ($received[$fieldName . '_month']) and isset ($received[$fieldName . '_day']) ) { // received value $y = intval ($received[$fieldName . '_year']); $m = intval ($received[$fieldName . '_month']); $d = intval ($received[$fieldName . '_day']); isset ($received[$fieldName . '_hours']) ? $hours = intval ($received[$fieldName . '_hours']) : $hours = 0; isset ($received[$fieldName . '_minutes']) ? $minutes = intval ($received[$fieldName . '_minutes']) : $minutes = 0; $value = mktime ($hours, $minutes, 0, $m, $d, $y); } // received value else $value = TIME; // target if (isset ($control['flags']['control_target'])) $formulary->setField ($control['flags']['control_target'], $value); } // function save } // class eclFilter_timestamp //!eof:engine/eclFilter/eclFilter_timestamp.php; //!file:engine/eclFilter/eclFilter_view.php; /* * Valid control flags * control_type = view * control_filter = flag_view * control_target * control_field_name * control_default_value */ class eclFilter_view { // class eclFilter_view static function create ($fieldName, $control, $formulary) { // function create $local['name'] = $fieldName; // type if (isset ($control['flags']['type'])) $local['type'] = $control['flags']['type']; else $local['type'] = 'view'; // target if (isset ($control['flags']['target'])) $value = $formulary->getField ($control['flags']['target']); else $value = false; if ($value !== false and $value !== '') $local['content'] = $formulary->document->textMerge ($value); elseif (isset ($control['flags']['default_value'])) $local['content'] = $document->textMerge ($control['flags']['default_value']); $formulary->appendChild ($control, $local); } // function create static function save ($fieldName, $control, $formulary) { // function save } // function save } // class eclFilter_view //!eof:engine/eclFilter/eclFilter_view.php; //!file:engine/eclIo/eclIo_cachedControls.php; class eclIo_cachedControls { // class eclIo_cachedControls private $enabled = false; private $file; private $externalString2; private $databaseString2; public function __construct () { // function __construct global $dataMap; if (!isset ($dataMap) or !$dataMap or !defined ('SYSTEM_COMPILER_HALT_OFFSET')) return; $this->file = fopen (SYSTEM_SCRIPT_PATH, 'rb'); $this->enabled = true; } // function __construct public function read ($mode, $path, $name) { // function read global $dataMap; if (!$this->enabled) return array (); if (!isset ($dataMap[$mode][$path][$name])) return array (); list ($offset, $length) = explode (':', $dataMap[$mode][$path][$name]); fseek ($this->file, SYSTEM_COMPILER_HALT_OFFSET + $offset); return unserialize ($this->stringFromDatabase (fread ($this->file, $length))); } // function read public function file ($path, $name, $mode='f') { // function file global $dataMap; if (!isset ($dataMap[$mode][$path][$name])) return ''; list ($offset, $length) = explode (':', $dataMap[$mode][$path][$name]); fseek ($this->file, SYSTEM_COMPILER_HALT_OFFSET + $offset); return $this->stringFromDatabase (fread ($this->file, $length)); } // function file public function stringFromDatabase ($string) { // function stringFromDatabase if (!isset ($this->externalString2)) { // set replaces $this->externalString2 = array ( chr (0), chr (10), chr (13), chr (26), chr (39), chr (92) ); $this->databaseString2 = array ( '#0', '#n', '#r', '#z', '#s', '#e' ); } // set replacements return str_replace ('#c', '#', str_replace ($this->databaseString2, $this->externalString2, $string)); } // function stringFromDatabase public function close () { // function close if ($this->enabled) fclose ($this->file); } // function close } // class eclIo_cachedControls //!eof:engine/eclIo/eclIo_cachedControls.php; //!file:engine/eclIo/eclIo_database.php; /* * Fields types * primary_key * tinyint * mediumint * int * time * name * password * array * keywords */ class eclIo_database { // class eclIo_database private $tables; private $batchQuery = array (); private $databasePrefix = ''; private $client; private $database; private $databaseString, $externalString, $databaseString2, $externalString2; public $status = false; private $pdo; public $verbose = true; public $performed_queries = ''; private $last_query; public function __construct ($io, $database=false) { // function __construct if (!$database and (!defined ('DATABASE_ENABLED') or !DATABASE_ENABLED)) return; try { // try if ($database) { // from file $this->client = 'sqlite'; $this->database = $database; $this->pdo = new PDO ('sqlite:' . $database); } // from file else { // from server $this->client = DATABASE_CLIENT; $this->database = DATABASE_DB; if (DATABASE_CLIENT == 'sqlite') { // sqlite if (!is_dir (FOLDER_DATABASE)) mkdir (FOLDER_DATABASE); $this->pdo = new PDO ('sqlite:' . FOLDER_DATABASE . '.system.db'); } // sqlite else { // shared database $this->pdo = new PDO (DATABASE_CLIENT . ':host=' . DATABASE_HOST . ';dbname=' . DATABASE_DB, DATABASE_USER, DATABASE_PASSWORD); $this->databasePrefix = DATABASE_PREFIX; } // shared database } // from server $this->status = true; } // try catch (PDOException$e) { // catch if (defined ('DATABASE_DISPLAY_ERRORS') and DATABASE_DISPLAY_ERRORS) print 'Database connection error: ' . $e->getMessage () . '
      '; if (defined ('DATABASE_LOG_ERRORS') and DATABASE_LOG_ERRORS) { // log errors if (!is_dir (FOLDER_DATABASE)) mkdir (FOLDER_DATABASE); $string = '#On: ' . date ('c s u') . CRLF . '#client: ' . $this->client . ' database:' . $this->database . CRLF . '#Database connection error: ' . $e->getMessage () . CRLF . CRLF; file_put_contents (FOLDER_DATABASE . '.database.log', $string, FILE_APPEND); } // log errors $this->status = false; } // catch } // function __construct public function reconnect () { // function reconnect global $io; if (!$io->systemConstants->check ('DATABASE_ENABLED') or !$io->systemConstants->constants['DATABASE_ENABLED']) return; try { // try $c = $io->systemConstants->constants; if ($c['DATABASE_CLIENT'] == 'sqlite') { // sqlite if (!is_dir (FOLDER_DATABASE)) mkdir (FOLDER_DATABASE); $this->pdo = new PDO ('sqlite:' . FOLDER_DATABASE . '.system.db'); } // sqlite else $this->pdo = new PDO ($c['DATABASE_CLIENT'] . ':host=' . $c['DATABASE_HOST'] . ';dbname=' . $c['DATABASE_DB'], $c['DATABASE_USER'], $c['DATABASE_PASSWORD']); $this->status = true; } // try catch (PDOException$e) { // catch $io->log->addMessage ('Database connection error: ' . $e->getMessage (), __CLASS__); $this->status = false; } // catch } // function reconnect public function query ($query) { // function query global $io; if (!$this->status or !is_string ($query) or !isset ($query[0])) return array (); $this->performed_queries .= $query . CRLF; $result = $this->pdo->query ($query); if ($this->pdo->errorCode () != '00000' and $this->verbose) { // error $error = $this->pdo->errorCode (); $info = $this->pdo->errorInfo (); $string = '#Date: ' . date ('c s u') . CRLF . '#client: ' . $this->client . ' database:' . $this->database . CRLF . $query . CRLF . '#The error: ' . $error . CRLF; if (isset ($info[2])) $string .= '# ' . $info[2] . CRLF; $string .= CRLF; $this->performed_queries .= '# Error' . CRLF; $this->performed_queries .= '# ' . $error . CRLF; if (isset ($info[2])) $this->performed_queries .= '# ' . $info[2] . CRLF; if (defined ('DATABASE_DISPLAY_ERRORS') and DATABASE_DISPLAY_ERRORS) print nl2br (eclEngine_formulary::htmlSpecialChars ($string)); if (defined ('DATABASE_LOG_ERRORS') and DATABASE_LOG_ERRORS) { // log errors if (!is_dir (FOLDER_DATABASE)) mkdir (FOLDER_DATABASE); file_put_contents (FOLDER_DATABASE . '.database.log', $string, FILE_APPEND); } // log errors return array (); } // error if (!is_object ($result)) return array (); $return = array (); foreach ($result as $row) { // each row $return[] = $row; } // each row return $return; } // function query public function batchQuery ($query) { // function batchQuery if (!is_array ($query) or !count ($query)) return; $this->last_query = implode (";" . CRLF, $query); $this->performed_queries .= $this->last_query; foreach ($query as $call) { // each query $this->pdo->query ($call); } // each query } // function batchQuery public function insertId () { // function insertId return intval ($this->pdo->lastInsertId ()); } // function insertId public function affectedRows () { // function affectedRows if ($this->client == 'mysql') { // mysql if (is_array ($this->pdo->query ('mysql_affected_rows()'))) { // is array foreach ($this->pdo->query ('mysql_affected_rows()') as $row) { // each row return current ($row); } // each row } // is array } // mysql return 0; } // function affectedRows public function error () { // function error $error = $this->pdo->errorInfo (); if ($error) return $error[2]; return ''; } // function error public function commit () { // function commit } // function commit public function tableEnabled ($table) { // function tableEnabled if (!$this->status) return false; if (!isset ($this->tables)) { // list tables if ($this->client == 'mysql') $rows = $this->query ('SHOW TABLES'); else $rows = $this->query ("SELECT `name` FROM sqlite_master WHERE `type`='table'"); foreach ($rows as $row) { // each table $this->tables[current ($row)] = true; } // each table } // list tables $table_name = $this->databasePrefix . $table->name; if (isset ($this->tables[$table_name])) return true; $this->create ($table); $this->tables = array (); if ($this->client == 'mysql') $rows = $this->query ('SHOW TABLES'); else $rows = $this->query ("SELECT `name` FROM sqlite_master WHERE `type`='table'"); foreach ($rows as $row) { // each table $this->tables[current ($row)] = true; } // each table $table_name = $this->databasePrefix . $table->name; if (isset ($this->tables[$table_name])) return true; return false; } // function tableEnabled public function create ($table) { // function create if (!count ($table->fields)) return false; // Create table description $lines = array (); foreach ($table->fields as $fieldName => $fieldType) { // each field switch ($fieldType) { // switch field type case 'primary_key': if ($this->client == 'mysql') $lines[] = '`' . $fieldName . '` MEDIUMINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY'; else $lines[] = '`' . $fieldName . '` INTEGER PRIMARY KEY'; break; case 'tinyint': $lines[] = '`' . $fieldName . '` TINYINT UNSIGNED NOT NULL'; break; case 'mediumint': $lines[] = '`' . $fieldName . '` MEDIUMINT UNSIGNED NOT NULL'; break; case 'int': case 'time': $lines[] = '`' . $fieldName . '` INTEGER UNSIGNED NOT NULL'; break; case 'name': case 'password': if ($this->client == 'mysql') $lines[] = '`' . $fieldName . '` CHAR(32) BINARY NOT NULL'; else $lines[] = '`' . $fieldName . '` BLOB NOT NULL'; break; case 'array': case 'binary': case 'keywords': if ($this->client == 'mysql') $lines[] = '`' . $fieldName . '` MEDIUMBLOB NOT NULL'; else $lines[] = '`' . $fieldName . '` BLOB NOT NULL'; break; } // switch type } // each field // The query $this->query ('CREATE TABLE `' . $this->databasePrefix . $table->name . "` (" . CRLF . implode ("," . CRLF, $lines) . CRLF . ")" . CRLF); // Index if (isset ($table->index)) { // index exists foreach ($table->index as $index_name => $index_fields) { // each index $this->query ('CREATE INDEX `' . $index_name . '` ON `' . $this->databasePrefix . $table->name . '` (`' . implode ('`, `', $index_fields) . '`)'); } // each index } // index exists } // function create public function insert ($table, &$data) { // function insert global $io; $fields = array (); $values = array (); foreach ($table->fields as $fieldName => $fieldType) { // each field switch ($fieldType) { // switch filter case 'primary_key': break; case 'tinyint': case 'mediumint': case 'int': if (!isset ($data[$fieldName])) $data[$fieldName] = 0; $fields[] = $fieldName; $values[] = strval (intval ($data[$fieldName])); break; case 'name': if (!isset ($data[$fieldName]) or !preg_match ('%^[a-zA-Z0-9@:./_-]*$%', $data[$fieldName])) $data[$fieldName] = ''; $fields[] = $fieldName; $values[] = "'" . $data[$fieldName] . "'"; break; case 'time': if (!isset ($data[$fieldName]) or !is_int ($data[$fieldName]) or $data[$fieldName] == 0) $data[$fieldName] = TIME; $fields[] = $fieldName; $values[] = strval (intval ($data[$fieldName])); break; case 'array': $fields[] = $fieldName; if (!isset ($data[$fieldName]) or !is_array ($data[$fieldName])) $data[$fieldName] = array (); if (!$data[$fieldName]) $values[] = "''"; else $values[] = "'" . $this->stringToDatabase (serialize ($data[$fieldName])) . "'"; break; case 'keywords': $fields[] = $fieldName; if (!isset ($data[$fieldName]) or !is_string ($data[$fieldName])) $data[$fieldName] = ''; if (!isset ($data[$fieldName][0])) $values[] = "''"; else $values[] = "'" . implode (' ', $this->filterKeywords ($data[$fieldName])) . "'"; break; case 'password': if (!isset ($data[$fieldName]) or !is_string ($data[$fieldName])) $data[$fieldName] = ''; $fields[] = $fieldName; $values[] = "'" . strval (md5 ($data[$fieldName])) . "'"; break; case 'binary': $fields[] = $fieldName; if (!isset ($data[$fieldName]) or !is_string ($data[$fieldName])) $data[$fieldName] = ''; if (!isset ($data[$fieldName][0])) $values[] = "''"; else $values[] = "'" . $this->stringToDatabase ($data[$fieldName]) . "'"; break; default: break; } // switch filter } // each field // The query $this->query ('INSERT INTO `' . $this->databasePrefix . $table->name . '` (`' . implode ('`, `', $fields) . '`) VALUES (' . implode (', ', $values) . ')'); $data['id'] = $this->insertId (); return $data['id']; } // function insert public function select ($table, $where, $limit='', $returnRows=false) { // function select $results = array (); $conditions = array (); foreach ($where as $fieldName => $field_value) { // each where condition if (isset ($table->fields[$fieldName])) { // valid field switch ($table->fields[$fieldName]) { // switch filter case 'primary_key': case 'tinyint': case 'mediumint': case 'int': case 'time': if (is_int ($field_value)) $conditions[] = '`' . $fieldName . '`=' . strval ($field_value); elseif (is_string ($field_value) and is_numeric ($field_value)) $conditions[] = '`' . $fieldName . '`=' . $field_value; elseif (is_string ($field_value) and preg_match ('%^[<=>\ ]*[0-9]+$%', trim ($field_value))) $conditions[] = '`' . $fieldName . '` ' . $field_value; elseif (is_array ($field_value)) { // set $field_value = implode (', ', $field_value); if (preg_match ('%[0-9, ]+%', $field_value)) $conditions[] = '`' . $fieldName . '` IN(' . $field_value . ')'; } // set break; case 'name': if (preg_match ('%^[a-zA-Z0-9@:/._-]+$%', $field_value)) $conditions[] = '`' . $fieldName . "`='" . $field_value . "'"; break; case 'password': $conditions[] = '`' . $fieldName . "`='" . strval (md5 ($field_value)) . "'"; break; case 'keywords': foreach ($this->filterKeywords ($field_value) as $keyword) { // each keyword $conditions[] = '`' . $fieldName . "` LIKE('%" . $keyword . "%')"; } // each keyword break; } // switch filter } // valid field } // each where condition if ($conditions) { // conditions exists // The query if ($returnRows) { // select return columns foreach ($returnRows as $fieldName) { // each column if (!isset ($table->fields[$fieldName])) continue; $columns[] = '`' . $fieldName . '`'; $returnColumns[$fieldName] = $table->fields[$fieldName]; } // each column } // select return columns if (isset ($columns)) $columns = implode (', ', $columns); else $columns = '*'; $rows = $this->query ('SELECT ' . $columns . ' FROM `' . $this->databasePrefix . $table->name . '` WHERE ' . implode (' AND ', $conditions) . $limit); if (!isset ($returnColumns)) $returnColumns = $table->fields; // Extract rows foreach ($rows as $row) { // each row $data = array (); foreach ($returnColumns as $fieldName => $fieldType) { // each field switch ($fieldType) { // switch filter case 'primary_key': case 'tinyint': case 'mediumint': case 'int': case 'time': $data[$fieldName] = intval ($row[$fieldName]); break; case 'array': if (isset ($row[$fieldName][0])) $data[$fieldName] = unserialize ($this->stringFromDatabase ($row[$fieldName])); else $data[$fieldName] = array (); break; default: if (isset ($row[$fieldName][0])) $data[$fieldName] = $this->stringFromDatabase ($row[$fieldName]); else $data[$fieldName] = ''; } // switch filter } // each field $results[] = $data; } // each row return $results; } // conditions exists return array (); } // function select public function update ($table, $data, $originalData) { // function update $id = intval ($data['id']); if (!$id) return; $set = array (); foreach ($table->fields as $fieldName => $fieldType) { // each field if (!isset ($data[$fieldName])) $data[$fieldName] = false; if (!isset ($originalData[$fieldName]) or $data[$fieldName] != $originalData[$fieldName]) { // field changed switch ($fieldType) { // switch filter case 'tinyint': case 'mediumint': case 'int': case 'time': $set[] = '`' . $fieldName . '`=' . strval (intval ($data[$fieldName])); break; case 'name': if (is_string ($data[$fieldName]) and preg_match ('%^[a-zA-Z0-9@:/._-]*$%', $data[$fieldName])) $set[] = '`' . $fieldName . "`='" . $data[$fieldName] . "'"; break; case 'array': if (!is_array ($data[$fieldName])) $data[$fieldName] = array (); $set[] = '`' . $fieldName . "`='" . $this->stringToDatabase (serialize ($data[$fieldName])) . "'"; break; case 'password': if (md5 (strval ($data[$fieldName])) != $originalData[$fieldName]) $set[] = '`' . $fieldName . "`='" . md5 ($data[$fieldName]) . "'"; break; case 'keywords': if (isset ($data[$fieldName][0])) { // filter keywords $keywords = implode (' ', $this->filterKeywords (strval ($data[$fieldName]))); if (!isset ($originalData[$fieldName]) or $keywords != $originalData[$fieldName]) $set[] = '`' . $fieldName . "`='" . $keywords . "'"; break; } // filter keywords if (isset ($originalData[$fieldName][0])) $set[] = '`' . $fieldName . "`=''"; break; case 'binary': if (!is_string ($data[$fieldName]) or !isset ($data[$fieldName][0])) $set[] = '`' . $fieldName . "`=''"; else $set[] = '`' . $fieldName . "`='" . $this->stringToDatabase ($data[$fieldName]) . "'"; break; } // switch filter } // field changed } // each field if (count ($set)) { // valid fields changed $this->batchQuery[] = 'UPDATE `' . $this->databasePrefix . $table->name . '` SET ' . implode (', ', $set) . ' WHERE `id`=' . $id; } // valid fields changed } // function update public function delete ($table, $where) { // function delete $conditions = array (); foreach ($where as $fieldName => $field_value) { // each where condition if (isset ($table->fields[$fieldName])) { // valid field switch ($table->fields[$fieldName]) { // switch filter case 'primary_key': case 'tinyint': case 'mediumint': case 'int': case 'time': if (is_numeric ($field_value)) $conditions[] = '`' . $fieldName . '`=' . strval ($field_value); break; case 'name': if (preg_match ('%^[a-zA-Z0-9@:/._-]*$%', $field_value)) $conditions[] = '`' . $fieldName . "`='" . $field_value . "'"; break; } // switch filter } // valid field } // each where condition // The query $this->query ('DELETE FROM `' . $this->databasePrefix . $table->name . '` WHERE ' . implode (' AND ', $conditions)); } // function delete public function drop ($table) { // function drop $this->query ('DROP TABLE `' . $this->databasePrefix . $table->name . '`'); } // function drop public function close () { // function close global $io; $this->batchQuery ($this->batchQuery); $this->batchQuery = array (); // $io->log->addMessage ($this->performed_queries, 'database'); } // function close public function stringToDatabase ($string) { // function stringToDatabase if (!isset ($this->externalString)) { // set replace sequence $this->externalString = array ( '#', chr (0), chr (26), // chr (34), chr (39), chr (92) ); $this->databaseString = array ( '#c', '#0', '#z', // '#q', '#s', '#e' ); } // set replace sequence return str_replace ($this->externalString, $this->databaseString, $string); } // function stringToDatabase public function stringFromDatabase ($string) { // function stringFromDatabase if (!isset ($this->externalString2)) { // set replace sequence $this->externalString2 = array ( chr (0), chr (26), chr (34), chr (39), chr (92) ); $this->databaseString2 = array ( '#0', '#z', '#q', '#s', '#e' ); } // set replace sequence if (strpos ($string, '\\') === false) return str_replace ('#c', '#', str_replace ($this->databaseString2, $this->externalString2, $string)); return stripslashes ($string); } // function stringFromDatabase public static function filterKeywords ($string) { // function filterKeywords static $convert = array ('a' => 'a', 'b' => 'b', 'c' => 'c', 'd' => 'd', 'e' => 'e', 'f' => 'f', 'g' => 'g', 'h' => 'h', 'i' => 'i', 'j' => 'j', 'k' => 'k', 'l' => 'l', 'm' => 'm', 'n' => 'n', 'o' => 'o', 'p' => 'p', 'q' => 'q', 'r' => 'r', 's' => 's', 't' => 't', 'u' => 'u', 'v' => 'v', 'w' => 'w', 'x' => 'x', 'y' => 'y', 'z' => 'z', 'A' => 'a', 'B' => 'b', 'C' => 'c', 'D' => 'd', 'E' => 'e', 'F' => 'f', 'G' => 'g', 'H' => 'h', 'I' => 'i', 'J' => 'j', 'K' => 'k', 'L' => 'l', 'M' => 'm', 'N' => 'n', 'O' => 'o', 'P' => 'p', 'Q' => 'q', 'R' => 'r', 'S' => 's', 'T' => 't', 'U' => 'u', 'V' => 'v', 'W' => 'w', 'X' => 'x', 'Y' => 'y', 'Z' => 'z', 'â' => 'a', 'Â' => 'a', 'ã' => 'a', 'Ã' => 'a', 'á' => 'a', 'Á' => 'a', 'à' => 'a', 'À' => 'a', 'ä' => 'a', 'Ä' => 'a', 'Ç' => 'c', 'ç' => 'c', 'ê' => 'e', 'Ê' => 'e', 'é' => 'e', 'É' => 'e', 'ë' => 'e', 'Ë' => 'e', 'î' => 'i', 'Î' => 'i', 'í' => 'i', 'Í' => 'i', 'ï' => 'i', 'Ï' => 'i', 'ô' => 'o', 'Ô' => 'o', 'õ' => 'o', 'Õ' => 'o', 'ó' => 'o', 'Ó' => 'o', 'ö' => 'o', 'Ö' => 'o', 'û' => 'u', 'Û' => 'u', 'ú' => 'u', 'Ú' => 'u', 'ü' => 'u', 'Ü' => 'u', 'Ý' => 'y', 'ý' => 'y', 'ÿ' => 'y', 'Ÿ' => 'y', ' ' => ' ', '-' => '-', '1' => '1', '2' => '2', '3' => '3', '4' => '4', '5' => '5', '6' => '6', '7' => '7', '8' => '8', '9' => '9', '0' => '0', '_' => ' ', ':' => ':', ';' => ';'); // The $last will remember the last character of the convertion // to prevent duplicated spacing "__" or "--" in the name $result = ''; $last = ' '; foreach (str_split ($string) as $char) { // each char if (!isset ($convert[$char])) continue; $valid = $convert[$char]; if ($valid != $last) { // not repeated separator if ($valid == '-' or $valid == ' ') $last = $valid; else $last = ''; $result .= $valid; } // not repeated separator } // each char $words = explode (' ', $result); $keywords = array (); $validWords = array (); foreach ($words as $word) { // each word $validWords[strlen ($word)][] = $word; } // each word krsort ($validWords); foreach ($validWords as $index => $group) { // each group if ($index < 3) break; foreach ($group as $word) { // each word $valid = true; foreach ($keywords as $value) { // each keyword if (is_int (strpos ($value, $word))) { // existing word $valid = false; } // existing word } // each keyword if ($valid) $keywords[] = $word; } // each word } // each group sort ($keywords); return $keywords; } // function filterKeywords } // class eclIo_database //!eof:engine/eclIo/eclIo_database.php; //!file:engine/eclIo/eclIo_file.php; class eclIo_file { // class eclIo_file private $openedFiles = array (); public function &open ($name) { // function & if (!isset ($this->openedFiles[$name])) { // open file if (is_file ($name)) $this->openedFiles[$name][0] = $this->string2array (file_get_contents ($name, FILE_BINARY)); else $this->openedFiles[$name][0] = array (); $this->openedFiles[$name][1] = $this->openedFiles[$name][0]; } // open file $data = &$this->openedFiles[$name][0]; return $data; } // function & public function read ($name) { // function read if (is_file ($name)) return $this->string2array (file_get_contents ($name, FILE_BINARY)); return array (); } // function read public function close () { // function close foreach ($this->openedFiles as $name => $contents) { // each opened file // protection mode // 'array2string ($contents[0])); if (!$contents[0] and is_file ($name)) unlink ($name); } // each opened files } // function close public static function array2string ($array, $level=0) { // function array2string $string = ''; foreach ($array as $key => $value) { // each item if (is_int ($key) and $level < 2) $string .= '#='; elseif (is_int ($key)) $string .= strval ($key) . '='; elseif (is_string ($key)) $string .= "'" . str_replace ("'", "''", $key) . "'="; else continue; if (is_int ($value)) $string .= strval ($value) . CRLF; elseif (is_string ($value)) $string .= "'" . str_replace ("'", "''", $value) . "'" . CRLF; elseif (is_array ($value)) $string .= '{' . CRLF . self::array2string ($value, $level + 1) . '}' . CRLF; else $string .= '0' . CRLF; } // each item return $string; } // function array2string public static function string2array ($string, $counter1=0) { // function string2array if (!is_string ($string)) return array (); // acrescentamos à string recebida uma quebra de linha $string .= LF; // o cumprimento total da string $strlen = strlen ($string); // o ponteiro que percorrerá a string $pointer = 0; // o edifício $building = array (); // o andar em que nos encontramos $floor = 1; $building[$floor] = array (); // O contador que substituirá os coringas encontrados $counter[$floor] = $counter1; // Sinalizadores $buffer = ''; $buffer_enabled = false; $buffer_string = false; $key_enabled = false; // iremos varrer a string até que o ponteiro alcance seu cumprimento total while ($pointer < $strlen) { // get char // capturamos o caractére da string que se encontra sob o ponteiro $char = $string[$pointer]; // Verificamos que caractére é este switch ($char) { // char // ao encontrar uma quebra de linha, criamos um novo item de array case "\n": if (!$buffer_string)settype ($buffer, 'int'); if ($key_enabled) { // creates a value $building[$floor][$key] = $buffer; } // creates a value $buffer = ''; $key_enabled = false; $buffer_enabled = false; $buffer_string = false; break; // ao encontrar "=", o que estiver no $buffer representa a chave de um item case '=': if ($buffer_enabled) { // creates key if ($buffer == '#') { // counter $buffer = $counter[$floor]; $counter[$floor]++; } // counter elseif (!$buffer_string) { // numeric settype ($buffer, 'int'); } // numeric $key = $buffer; $buffer = ''; $buffer_enabled = false; $buffer_string = false; $key_enabled = true; } // creates key break; // ao encontrar "{", subiremos um andar case '{': if ($key_enabled) { // sublevel $array_key[$floor] = $key; $floor++; $building[$floor] = array (); $counter[$floor] = 0; } // sublevel $key = ''; $key_enabled = false; $buffer = ''; $buffer_enabled = false; $buffer_string = false; break; // ao encontrar "}", copiamos o array do andar corrente para o item atual do andar inferior e descemos um andar case '}': if ($floor <= 1) break 2; $building[$floor - 1][$array_key[$floor - 1]] = $building[$floor]; $counter[$floor] = 0; $floor--; $buffer = ''; $buffer_enabled = false; $buffer_string = false; $key = ''; $key_enabled = false; break; // Ao encontrar "'", procuramos uma string com apóstrofos duplicados ("''") case "'": case '"': loop_escape_char: $n_close_string = strpos ($string, $char, $pointer + 1); if ($n_close_string === false) break; $buffer .= substr ($string, $pointer + 1, $n_close_string - ($pointer + 1)); $buffer_enabled = true; $buffer_string = true; $pointer = $n_close_string; if ($string[$pointer + 1] != $char) break; $buffer .= $char; $pointer++; goto loop_escape_char; // Caractéres ignorados case "\r": case "\t": case ' ': break; // Ao encontrar "/" ou "<", seguiremos ignorando uma linha de comentário case '<': case '/': $n_close_string = strpos ($string, LF, $pointer + 1); if ($n_close_string === false) break; else { // coment $pointer = $n_close_string - 1; } // coment break; // outros caractéres são guardados em $buffer default: $buffer .= $char; $buffer_enabled = true; break; } // char // avança o ponteiro para o próximo caractére $pointer++; } // get char return $building[1]; } // function string2array } // class eclIo_file //!eof:engine/eclIo/eclIo_file.php; //!file:engine/eclIo/eclIo_fileBinary.php; class eclIo_fileBinary { // class eclIo_fileBinary private $openedFiles = array (); public function &open ($name) { // function & if (!isset ($this->openedFiles[$name])) { // open file if (is_file ($name)) $this->openedFiles[$name][0] = file_get_contents ($name); else $this->openedFiles[$name][0] = ''; $this->openedFiles[$name][1] = $this->openedFiles[$name][0]; } // open file $data = &$this->openedFiles[$name][0]; return $data; } // function & public function close () { // function close foreach ($this->openedFiles as $name => $contents) { // each opened file if (strlen ($contents[0]) and $contents[0] != $contents[1]) file_put_contents ($name, $contents[0]); if (!strlen ($contents[0]) and is_file ($name)) unlink ($name); } // each opened files } // function close } // class eclIo_fileBinary //!eof:engine/eclIo/eclIo_fileBinary.php; //!file:engine/eclIo/eclIo_htaccess.php; class eclIo_htaccess { // class eclIo_htaccess public function regenerate () { // function regenerate $string = '#!Ecolabore Engine (c)2017 - Copyleft by Angelo Beck' . CRLF . '# Do not change these lines. Changes will be made from system.' . CRLF . CRLF . '' . CRLF . 'RewriteEngine On' . CRLF . CRLF . '# Forbiden invalid requests' . CRLF . 'RewriteRule [@%<>&] - [F]' . CRLF . CRLF . '# redirect all requests for the index' . CRLF . 'RewriteRule .* ' . SYSTEM_SCRIPT_NAME . '?RewriteEngine=On [L]' . CRLF . CRLF . '' . CRLF . '#!End of Ecolabore Engine settings' . CRLF; file_put_contents ('.htaccess', $string); } // function regenerate public function close () { // function close } // function close } // class eclIo_htaccess //!eof:engine/eclIo/eclIo_htaccess.php; //!file:engine/eclIo/eclIo_log.php; class eclIo_log { // class eclIo_log public $cache = ''; public $silent = false; public $buffer = ''; private $messages = array (); private $startTime; public function __construct () { // function __construct $this->startTime = microtime (true); } // function __construct public function addMessage ($message, $group='') { // function addMessage $this->messages[$group][] = $message; } // function addMessage public function close () { // function close if ($this->silent) return; $this->buffer = "'; } // function close } // class eclIo_log //!eof:engine/eclIo/eclIo_log.php; //!file:engine/eclIo/eclIo_packager.php; class eclIo_packager { // class eclIo_packager private $databaseString; private $externalString; private $dataBuffer; private $dataIndex; private $clearFiles; private $index_contents; private $folder_engine, $folder_library, $folder_shared, $folder_templates; private $packMediaFiles; public $nlMode = CRLF; public $indentLevel = 100; public $indent = "\t"; public $outputFileExtension = '.ecl.php'; public function __construct () { // function __construct global $io; defined ('SYSTEM_IS_PACKED') or define ('SYSTEM_IS_PACKED', false); $this->externalString = array ( '#', chr (0), chr (10), chr (13), chr (26), chr (39), chr (92) ); $this->databaseString = array ( '#c', '#0', '#n', '#r', '#z', '#s', '#e' ); if ($io->systemConstants->check ('FOLDER_ENGINE')) $this->folder_engine = $io->systemConstants->constants['FOLDER_ENGINE']; else $this->folder_engine = FOLDER_ENGINE; if ($io->systemConstants->check ('FOLDER_LIBRARY')) $this->folder_library = $io->systemConstants->constants['FOLDER_LIBRARY']; else $this->folder_library = FOLDER_LIBRARY; if ($io->systemConstants->check ('FOLDER_SHARED')) $this->folder_shared = $io->systemConstants->constants['FOLDER_SHARED']; else $this->folder_shared = FOLDER_SHARED; if ($io->systemConstants->check ('FOLDER_TEMPLATES')) $this->folder_templates = $io->systemConstants->constants['FOLDER_TEMPLATES']; else $this->folder_templates = FOLDER_TEMPLATES; } // function __construct public function pack ($params=array ()) { // function pack if (defined ('SYSTEM_IS_PACKED') and SYSTEM_IS_PACKED) return false; set_time_limit (300); ignore_user_abort (true); isset ($params['pack_mode']) or $params['pack_mode'] = 'export'; isset ($params['filename']) or $params['filename'] = 'install.php'; isset ($params['clear_source_files']) or $params['clear_source_files'] = false; isset ($params['pack_media_files']) or $params['pack_media_files'] = false; $this->packMediaFiles = $params['pack_media_files']; $this->dataBuffer = ''; $this->dataIndex = array (); $this->index_contents = file_get_contents (PATH_ROOT . SYSTEM_SCRIPT_NAME); $this->clearFiles = array (); $this->pack_controls (); $this->pack_shared (); $this->pack_templates (); $this->pack_embeded (); $settings = array ( 'SYSTEM_IS_PACKED' => true, 'SYSTEM_PACKED_DATE' => date ('r', TIME) ); if ($params['pack_mode'] == 'export') $fileName = PATH_ROOT . $params['filename']; else $fileName = PATH_ROOT . SYSTEM_SCRIPT_NAME; $package = fopen ($fileName, 'a+b'); ftruncate ($package, 0); fwrite ($package, $this->get_index_header ()); fwrite ($package, $this->set_packager_settings ($settings)); fwrite ($package, $this->pack_map ()); fwrite ($package, $this->pack_data_map ()); fwrite ($package, $this->pack_scripts ()); fwrite ($package, $this->get_index_footer ()); fwrite ($package, $this->dataBuffer); fclose ($package); if (!$params['clear_source_files'] or $params['pack_mode'] == 'export') return; // delete source files foreach ($this->clearFiles as $file) { // clear each source file unlink ($file); } // clear each source file // clear empty folders $folders = array (PATH_ENGINE, PATH_LIBRARY, PATH_SHARED, PATH_TEMPLATES); $list = array (); foreach ($folders as $level1) { // each level 1 if ($level1[0] == '.') continue; if (!is_dir ($level1)) continue; $list[] = $level1; foreach (scandir ($level1) as $level2) { // each level 2 if ($level2[0] == '.') continue; $level2 = $level1 . $level2 . '/'; if (!is_dir ($level2)) continue; $list[] = $level2; foreach (scandir ($level2) as $level3) { // each level 3 if ($level3[0] == '.') continue; $level3 = $level2 . $level3 . '/'; if (!is_dir ($level3)) continue; $list[] = $level3; foreach (scandir ($level3) as $level4) { // each level 4 if ($level4[0] == '.') continue; $level4 = $level3 . $level4 . '/'; if (!is_dir ($level4)) continue; $list[] = $level4; } // each level 4 } // each level 3 } // each level 2 } // each level 1 $list = array_reverse ($list); foreach ($list as $dir) { // each dir if (count (scandir ($dir)) == 2) rmdir ($dir); } // each dir } // function pack private function get_index_header () { // function get_index_header $indexFile = &$this->index_contents; $start = strpos ($indexFile, '//!' . 'packager:start_of_files'); if (!$start) exit ('markup "//!' . 'packager:start_of_files" not found in index.php'); $start += strlen ('//!' . 'packager:start_of_files'); $indexHeader = substr ($indexFile, 0, $start) . CRLF; return $indexHeader; } // function get_index_header private function get_index_footer () { // function get_index_footer $indexFile = $this->index_contents; $start = strpos ($indexFile, '//!' . 'packager:end_of_files'); if (!$start) exit ('markup "//!' . 'packager:end_of_files" not found in index.php'); if (defined ('SYSTEM_COMPILER_HALT_OFFSET')) $indexFooter = substr ($indexFile, $start, SYSTEM_COMPILER_HALT_OFFSET - $start); else $indexFooter = substr ($indexFile, $start) . CRLF . '__halt_' . 'compiler();'; return $indexFooter; } // function get_index_footer private function set_packager_settings ($settings) { // function set_packager_settings $buffer = '//!' . 'start_of_packager_settings' . CRLF . CRLF; foreach ($settings as $key => $value) { // each setting $buffer .= 'define(' . "'" . $key . "'" . ', '; if (is_string ($value)) $buffer .= "'" . str_replace ("'", "\'", $value) . "'"; elseif (is_int ($value)) $buffer .= strval ($value); elseif ($value === false) $buffer .= 'false'; else $buffer .= 'true'; $buffer .= ');' . CRLF; } // each setting $buffer .= CRLF . '//!' . 'end_of_packager_settings' . CRLF; return $buffer; } // function set_packager_settings private function pack_map () { // function pack_map $map = array (); foreach (scandir (PATH_LIBRARY) as $module) { // scan library if ($module[0] == '.') continue; foreach (scandir (PATH_LIBRARY . $module) as $name) { // each file if (!is_file (PATH_LIBRARY . $module . '/' . $name)) continue; if (substr ($name, 0, 4) != 'app_' or substr ($name, - 4) != '.txt') continue; $this->clearFiles[] = PATH_LIBRARY . $module . '/' . $name; if (substr ($name, - 12) == '_prepend.txt') { // prepend map $target = 'prepend'; $applicationName = substr ($name, 4, - 12); } // prepend map else { // append $target = 'append'; $applicationName = substr ($name, 4, - 11); } // append $content = file_get_contents (PATH_LIBRARY . $module . '/' . $name); $lines = array (); foreach (explode ("\n", $content) as $line) { // each line $line = trim ($line); if (strlen ($line) and preg_match ('/^[a-zA-Z0-9_]+$/', $line)) $map[$target][$applicationName][] = $line; } // each line } // each file } // scan library if (!$map) return ''; $buffer = '//!' . 'packager:start_of_map' . CRLF; $buffer .= CRLF; if (isset ($map['prepend'])) { // prepend $buffer .= '$mapPrepend = array (' . CRLF; foreach ($map['prepend'] as $module => $list) { // each module $buffer .= "'" . $module . "' => array ('" . implode ("', '", $list) . "')," . CRLF; } // each module $buffer .= ');' . CRLF . CRLF; } // prepend if (isset ($map['append'])) { // append $buffer .= '$mapAppend = array (' . CRLF; foreach ($map['append'] as $module => $list) { // each module $buffer .= "'" . $module . "' => array ('" . implode ("', '", $list) . "')," . CRLF; } // each module $buffer .= ');' . CRLF . CRLF; } // append $buffer .= '//!' . 'packager:end_of_map' . CRLF; return $buffer; } // function pack_map private function add ($mode, $path, $name, $content) { // function add $content = str_replace ($this->externalString, $this->databaseString, $content); $offset = strlen ($this->dataBuffer); $length = strlen ($content); $this->dataBuffer .= $content; $this->dataIndex[$mode][$path][$name] = strval ($offset) . ':' . strval ($length); } // function add private function pack_controls () { // function pack_controls foreach ($this->getAllFilesNames (PATH_LIBRARY) as $file) { // each file $parts = explode ('/', $file); $name = array_pop ($parts); $last = array_pop ($parts); if ($last == '_controls') $mode = 'c'; elseif ($last == '_help') $mode = 'h'; else continue; if (substr ($file, - 8) == '.ecl.php') { // control $name = substr ($name, 0, - 8); $this->clearFiles[] = PATH_LIBRARY . $file; $content = serialize (eclIo_file::string2array (file_get_contents (PATH_LIBRARY . $file))); } // control elseif (!$this->packMediaFiles) continue; else { // media $this->clearFiles[] = PATH_LIBRARY . $file; $content = file_get_contents (PATH_LIBRARY . $file); } // media $path = implode ('_', $parts); $this->add ($mode, $path, $name, $content); } // each file } // function pack_controls private function pack_shared () { // function pack_shared foreach ($this->getAllFilesNames (PATH_SHARED) as $file) { // each file if (substr ($file, - 8) != '.ecl.php') continue; $this->clearFiles[] = PATH_SHARED . $file; $content = serialize (eclIo_file::string2array (file_get_contents (PATH_SHARED . $file))); $parts = explode ('/', $file); $name = array_pop ($parts); $path = implode ('/', $parts); $this->add ('s', $path, substr ($name, 0, - 8), $content); } // each file } // function pack_shared private function pack_templates () { // function pack_templates foreach ($this->getAllFilesNames (PATH_TEMPLATES) as $file) { // each file $parts = explode ('/', $file); $name = array_pop ($parts); if (substr ($file, - 8) != '.ecl.php') continue; $name = substr ($name, 0, - 8); $this->clearFiles[] = PATH_TEMPLATES . $file; $content = serialize (eclIo_file::string2array (file_get_contents (PATH_TEMPLATES . $file))); $path = implode ('/', $parts); $this->add ('t', $path, $name, $content); } // each file } // function pack_templates private function pack_embeded () { // function pack_embeded foreach ($this->getAllFilesNames (PATH_SHARED) as $file) { // each file if (substr ($file, - 8) == '.ecl.php') continue; if (!$this->packMediaFiles and substr ($file, - 4) == '.mp3') continue; $this->clearFiles[] = PATH_SHARED . $file; $content = file_get_contents (PATH_SHARED . $file); $parts = explode ('/', $file); $name = array_pop ($parts); $path = implode ('/', $parts); $this->add ('f', $path, $name, $content); } // each file } // function pack_embeded private function pack_data_map () { // function pack_data_map $dataIndex = '//!' . 'packager:start_of_data_index' . CRLF; $dataIndex .= '$dataMap = array (' . CRLF; $dataIndex .= $this->array2php ($this->dataIndex) . CRLF; $dataIndex .= ');' . CRLF; $dataIndex .= '//!' . 'packager:end_of_data_index' . CRLF; return $dataIndex; } // function pack_data_map private function pack_scripts () { // function pack_scripts $buffer = ''; $allFiles = array (); foreach ($this->getAllFilesNames (PATH_ENGINE) as $file) { // loop engine files if (substr ($file, - 8) == '.ecl.php') continue; if (substr ($file, - 4) != '.php') continue; $allFiles[PATH_ENGINE . $file] = 'engine/' . $file; } // loop engine files foreach ($this->getAllFilesNames (PATH_LIBRARY) as $file) { // loop library files if (substr ($file, - 8) == '.ecl.php') continue; if (substr ($file, - 4) != '.php') continue; $allFiles[PATH_LIBRARY . $file] = 'library/' . $file; } // loop library files foreach ($allFiles as $fromFileName => $toFileName) { // get all scripts $this->clearFiles[] = $fromFileName; $string = file_get_contents ($fromFileName); if (substr ($string, 0, 5) == '') $string = substr ($string, 0, - 2); $buffer .= '//!' . 'file:' . $toFileName . ';' . CRLF . $string . '//' . '!eof:' . $toFileName . ';' . CRLF; } // get all files return $buffer; } // function pack_scripts public static function array2php ($array) { // function array2php if (!is_array ($array)) return ''; // a string resultante $string = ''; foreach ($array as $key => $value) { // each item if (is_int ($key)) $string .= strval ($key); else $string .= "'" . $key . "'"; $string .= ' => '; if ($value === false) $string .= 'false'; elseif ($value === true) $stirng .= 'true'; elseif (is_int ($value) or is_float ($value)) $string .= strval ($value); elseif (is_string ($value)) $string .= "'" . $value . "'"; elseif (is_array ($value)) $string .= 'array (' . CRLF . self::array2php ($value) . ')'; else $string .= "''"; $string .= ',' . CRLF; } // each item return $string; } // function array2php public function extract ($params=array ()) { // function extract if (!defined ('SYSTEM_IS_PACKED') or !SYSTEM_IS_PACKED) return; set_time_limit (3600); ignore_user_abort (true); $this->index_contents = file_get_contents (PATH_ROOT . SYSTEM_SCRIPT_NAME); $this->extract_scripts ($params); $this->extract_controls ($params); $this->extract_map (); $this->extract_shared ($params); $this->extract_templates ($params); $this->extract_embeded (); $settings = array ('SYSTEM_IS_PACKED' => false); if (isset ($params['output_data_file_extension'])) $settings['SYSTEM_DATA_FILE_EXTENSION'] = $params['output_data_file_extension']; $buffer = $this->get_index_header (); $buffer .= $this->set_packager_settings ($settings); $buffer .= $this->get_index_footer (); if (isset ($params['create_backup'])) { // create beckup if (isset ($params['filename'])) $fileName = $params['filename']; else $fileName = 'install.php'; $package = fopen (PATH_ROOT . $fileName, 'a+b'); ftruncate ($package, 0); fwrite ($package, $this->index_contents); fclose ($package); } // create backup $index = fopen (PATH_ROOT . SYSTEM_SCRIPT_NAME, 'a+b'); ftruncate ($index, 0); fwrite ($index, $buffer); fclose ($index); } // function extract private function extract_scripts ($params) { // function extract_scripts global $io; $string = $this->index_contents; $pointer = 0; $numFiles = 0; for ($watchDog = 0; $watchDog < 2000; $watchDog++) { // loop $pointer = strpos ($string, '//!' . 'file:', $pointer); if ($pointer === false) break; $pointer += 8; $end = strpos ($string, ";", $pointer); $length = $end - $pointer; $pathway = substr ($string, $pointer, $length); $numFiles++; $pointer = $end + 1; $end = strpos ($string, '//!' . 'eof:' . $pathway, $pointer); if ($end === false) break; $length = $end - $pointer; $file = ''; $file = $io->scriptFormat->format ($file, $params); $folders = explode ('/', $pathway); if ($folders[0] == 'engine') $folders[0] = $this->folder_engine; elseif ($folders[0] == 'library') $folders[0] = $this->folder_library; if (substr ($folders[0], - 1) == '/') $folders[0] = substr ($folders[0], 0, - 1); $fileName = implode ('/', $folders); $this->filePutContents (PATH_ROOT, $fileName, $file); } // loop } // function extract_scripts private function extract_map () { // function extract_map global $mapPrepend, $mapAppend; // extract maps foreach ($mapPrepend as $application => $names) { // each map list ($module) = explode ('_', $application); $content = implode (CRLF, $names); $this->filePutContents (PATH_ROOT, $this->folder_library . $module . '/app_' . $application . '_prepend.txt', $content); } // each map foreach ($mapAppend as $application => $names) { // each map list ($module) = explode ('_', $application); $content = implode (CRLF, $names); $this->filePutContents (PATH_ROOT, $this->folder_library . $module . '/app_' . $application . '_append.txt', $content); } // each map } // function extract_map private function extract_controls () { // function extract_controls global $io, $dataMap; // extract controls foreach ($dataMap['c'] as $module => $names) { // each module controls $path = str_replace ('_', '/', $module); foreach ($names as $name => $pos) { // each name $content = $io->file->array2string ($io->cachedControls->read ('c', $module, $name), '#'); $this->filePutContents (PATH_ROOT, $this->folder_library . $path . '/_controls/' . $name . '.ecl.php', $content); } // each name } // each module controls foreach ($dataMap['h'] as $module => $names) { // each module help $path = str_replace ('_', '/', $module); foreach ($names as $name => $pos) { // each name if (strpos ($name, '.') === false) { // control $content = $io->file->array2string ($io->cachedControls->read ('h', $module, $name), '#'); $this->filePutContents (PATH_ROOT, $this->folder_library . $path . '/_help/' . $name . '.ecl.php', $content); } // control else { // media $content = $io->cachedControls->file ($module, $name, 'h'); $this->filePutContents (PATH_ROOT, $this->folder_library . $path . '/_help/' . $name, $content); } // media } // each name } // each module help } // function extract_controls private function extract_shared () { // function extract_shared global $io, $dataMap; foreach ($dataMap['s'] as $path => $names) { // each module foreach ($names as $name => $pos) { // each name $content = $io->file->array2string ($io->cachedControls->read ('s', $path, $name)); $this->filePutContents (PATH_ROOT, $this->folder_shared . $path . '/' . $name . '.ecl.php', $content); } // each name } // each module } // function extract_shared private function extract_templates () { // function extract_templates global $io, $dataMap; foreach ($dataMap['t'] as $path => $names) { // each module foreach ($names as $name => $pos) { // each name $content = $io->file->array2string ($io->cachedControls->read ('t', $path, $name)); $this->filePutContents (PATH_ROOT, $this->folder_templates . $path . '/' . $name . '.ecl.php', $content); } // each name } // each module } // function extract_templates private function extract_embeded () { // function extract_embeded global $io, $dataMap; foreach ($dataMap['f'] as $path => $names) { // each module foreach ($names as $name => $pos) { // each name $content = $io->cachedControls->file ($path, $name); $this->filePutContents (PATH_ROOT, $this->folder_shared . $path . '/' . $name, $content); } // each name } // each module } // function extract_embeded public function getAllFilesNames ($basedir, $path='', $files=array ()) { // function getAllFilesNames foreach (scandir ($basedir . $path) as $name) { // loop scandir if ($name[0] == '.') continue; if (is_dir ($basedir . $path . $name)) $files = $this->getAllFilesNames ($basedir, $path . $name . '/', $files); elseif (is_file ($basedir . $path . $name)) $files[] = $path . $name; } // loop scandir return $files; } // function getAllFilesNames public function filePutContents ($basedir, $file, $string) { // function filePutContents $parts = explode ('/', $file); $name = array_pop ($parts); $dir = $basedir; foreach ($parts as $folder) { // each folder $dir .= $folder . '/'; if (!is_dir ($dir)) mkdir ($dir); } // each folder file_put_contents ($basedir . $file, $string); } // function filePutContents public function close () { // function close } // function close } // class eclIo_packager //!eof:engine/eclIo/eclIo_packager.php; //!file:engine/eclIo/eclIo_request.php; class eclIo_request { // class eclIo_request public $protocol; public $beta = ''; public $host; public $pathway; public $lang = false; public $actions = array (); public $received = array (); public $uploaded = array (); public $rewriteEngine = false; private $headers = array (); private $headersRemove = array (); private $headersRemoveAll = false; public function __construct () { // function __construct global $io; // Protocol if (isset ($_SERVER['HTTPS']) and $_SERVER['HTTPS'] == 'on') $this->protocol = 'https'; else $this->protocol = 'http'; // Beta if (isset ($_GET['beta'])) $this->beta = 'beta.'; // Rewrite Engine if (isset ($_GET['RewriteEngine'])) $this->rewriteEngine = true; elseif (SYSTEM_REWRITE_ENGINE and strpos (' ' . strtolower ($_SERVER['SERVER_SOFTWARE']), 'apache') and !is_file (PATH_ROOT . '.htaccess')) $io->htaccess->regenerate (); // Root dir $root = substr ($_SERVER['SCRIPT_NAME'], 1, - strlen (SYSTEM_SCRIPT_NAME)); // host $host = $_SERVER['SERVER_NAME']; // uri $uri = substr ($_SERVER['REQUEST_URI'], 1 + strlen ($root)); if ($pos = strpos ($uri, '=')) $uri = substr ($uri, $pos + 1); elseif (substr ($uri, 0, strlen (SYSTEM_SCRIPT_NAME)) == SYSTEM_SCRIPT_NAME) $uri = substr ($uri, strlen (SYSTEM_SCRIPT_NAME)); // pathway $pathway = array (); foreach (explode ('/', $uri) as $dir) { // each dir if (preg_match ('%^[a-zA-Z0-9._+-]+$%', $dir)) $pathway[] = $dir; } // each dir // Actions if (substr (end ($pathway), 0, 1) == '_') { // actions $actions_groups = explode ('_', substr (array_pop ($pathway), 1)); foreach ($actions_groups as $action_group) { // each action group // uma ação pode ter argumentos separados por hifem "-" $action_parts = explode ('-', $action_group); $this->actions[$action_parts[0]] = $action_parts; } // each action group } // actions // Reconheceremos por ventura algum idioma if ($this->isLanguage (end ($pathway))) $this->lang = array_pop ($pathway); reset ($pathway); // set reference mode if (SYSTEM_HOSTING_MODE == 2) { // working in Portal mode $main_host_length = strlen (SYSTEM_HOST); $v_host = substr ($host, 0, - $main_host_length); $parts = explode ('.', $v_host); if ($parts and $parts[0] == 'beta') $this->beta = array_shift ($parts) . '.'; elseif ($parts and $parts[0] == 'www') array_shift ($parts); if ($parts and strlen ($parts[0])) array_unshift ($pathway, $parts[0]); else array_unshift ($pathway, SYSTEM_DEFAULT_DOMAIN_NAME); $this->host = SYSTEM_HOST . '/'; $this->pathway = $pathway; } // working in Portal mode elseif (SYSTEM_HOSTING_MODE == 1) { // subdomains in subfolders // Domínio padrão caso não haja uma pasta if (!$pathway) $pathway[0] = SYSTEM_DEFAULT_DOMAIN_NAME; elseif ($pathway[0] == '-' . SYSTEM_ADMIN_URI or $pathway[0] == '-' . SYSTEM_PROFILES_URI) $pathway[0] = substr ($pathway[0], 1); $this->host = $host . '/' . $root; $this->pathway = $pathway; } // subdomains in subfolders else { // single mode if ($pathway and ($pathway[0] == '-' . SYSTEM_ADMIN_URI or $pathway[0] == '-' . SYSTEM_PROFILES_URI)) $pathway[0] = substr ($pathway[0], 1); else array_unshift ($pathway, SYSTEM_DEFAULT_DOMAIN_NAME); $this->host = $host . '/' . $root; $this->pathway = $pathway; } // single mode if (!get_magic_quotes_gpc ()) $this->received = $_POST; else { // unescape string - magic quotes off $received = array (); foreach ($_POST as $key => $value) { // each field $received[$key] = str_replace (array ('\\\\', '\\\'', '\\"'), array ('\\', '\'', '"'), $value); } // each field $this->received = $received; } // unescape string -- magic quotes off foreach ($_FILES as $name => $entry) { // each uploaded file if (is_string ($entry['name'])) { // single file $this->uploaded[$name][0] = $entry; continue; } // single file $count = count ($entry['name']); for ($i = 0; $i < $count; $i++) { // loop index foreach ($entry as $key => $array) { // each key $this->uploaded[$name][$i][$key] = $array[$i]; } // each key } // loop index } // each uploaded file } // function __construct public function isLanguage ($lang) { // function isLanguage global $store; if (strlen ($lang) != 2) return false; if ($lang == 'pt' or $lang == 'en' or $lang == 'es' or $lang == 'it' or $lang == 'fr') return true; if ($store->control->read ('labels/lang/' . $lang)) return true; return false; } // function isLanguage public function header ($header) { // function header $this->headers[] = $header; } // function header public function headerRemove ($header=false) { // function headerRemove if ($header === false) $this->headersRemoveAll = true; else $this->headersRemove[] = $header; } // function headerRemove public function giveBack ($document) { // function giveBack global $io; if (isset ($this->actions['html'])) { // output page source print nl2br (str_replace (array ('&', '<', '"'), array ('&', '<', '"'), $document->buffer)); if (!$io->log->silent) print nl2br (str_replace (array ('&', '<', '"'), array ('&', '<', '"'), $io->buffer)); } // output page source else { // normal output print $document->buffer; if (!$io->log->silent) print $io->buffer; } // normal output if ($this->headersRemoveAll) header_remove (); elseif ($this->headersRemove) { // clear headers foreach ($this->headersRemove as $header) { // clear each header header_remove ($header); } // clear each header } // clear headers header ('HTTP/1.1 200 OK'); header ('X-Powered-By: ECOLABORE/' . SYSTEM_VERSION); header ("Cache-Control: no-cache, must-revalidate, max-age=0"); header ('Content-Type: text/html; charset=' . strtolower ($document->charset)); header ('Content-length: ' . strval (ob_get_length ())); if (isset ($document->application->data['flags']['modLayout_cacheable'])) { // cacheable header_remove ('Pragma'); header_remove ('Expires'); header ('Cache-Control: public, only-if-cached, max-age=' . $document->application->data['flags']['modLayout_cacheable']); } // cacheable foreach ($this->headers as $header) { // each header header ($header); } // each header header ('Connection: close'); ob_end_flush (); } // function giveBack public function close () { // function close } // function close } // class eclIo_request //!eof:engine/eclIo/eclIo_request.php; //!file:engine/eclIo/eclIo_scriptFormat.php; class eclIo_scriptFormat { // class eclIo_scriptFormat private $indent = CHR_HT; private $indentStart = 3; private $tokens; private $length; private $index = 0; private $level = 0; private $buffer = ''; private $lastFormat = array (); private $addNewLine = 0; public function format ($script, $params=array ()) { // function format $this->indent = CHR_HT; $this->indentStart = 3; $this->tokens = array (); $this->length = 0; $this->index = 0; $this->level = 0; $this->buffer = ''; $this->lastFormat = array (); $this->addNewLine = 0; if (isset ($params['script_indent'])) { // overwrite indentation string $this->indent = ''; foreach (explode (',', $params['script_indent']) as $int) { // loop chars $this->indent .= chr (intval (trim ($int, ', _'))); } // loop chars if (!strlen ($this->indent)) $this->indent = CHR_HT; } // overwrite indentation string if (isset ($params['script_indent_start'])) $this->indentStart = intval ($params['script_indent_start']); if (isset ($params['script_accessibility'])) { // accessibility $accessibility = true; $this->indent = ''; } // accessibility else $accessibility = false; $script = str_replace (CRLF, LF, $script); $this->tokens = token_get_all ($script); $this->length = count ($this->tokens); $names = array (); $nextName = ''; $inParentesis = 0; $inFunctionHeader = false; $afterTernary = false; $allowNextLevel = false; while (true) { // loop tokens list ($code, $string, $line, $newLine) = $this->getToken (); switch ($code) { // switch code case 0: break 2; case 1: switch ($string) { // switch string token case '"': case "'": case '@': case '!': case '&': $format = array ('newLineBefore' => $newLine, 'spaceAfter' => 0); $this->buffer .= $this->getIndent ($format) . $string; break 2; case ',': $format = array ('spaceBefore' => 0); $this->buffer .= $this->getIndent ($format) . $string . CHR_WSP; break 2; case '.': $format = array ('newLineBefore' => $newLine, 'spaceAfter' => 0); $this->buffer .= $this->getIndent ($format) . CHR_WSP . $string . CHR_WSP; break 2; case '=': if ($inFunctionHeader) $format = array ('spaceBefore' => 0, 'spaceAfter' => 0); else $format = array ('spaceBefore' => 1, 'spaceAfter' => 1); $this->buffer .= $this->getIndent ($format) . $string; break 2; // Exigem espaços antes e após case '%': case '+': case '-': case '/': case '*': case '~': case '^': case '|': case '<': case '>': $format = array ('spaceBefore' => 1, 'spaceAfter' => 1); $this->buffer .= $this->getIndent ($format) . $string; break 2; case '?': $afterTernary = true; $format = array ('spaceBefore' => 1, 'spaceAfter' => 1); $this->buffer .= $this->getIndent ($format) . $string; break 2; case ':': if ($afterTernary) { // after ternary $afterTernary = false; $format = array ('spaceBefore' => 1, 'spaceAfter' => 1); $this->buffer .= $this->getIndent ($format) . $string; break 2; } // after ternary $format = array ('spaceBefore' => 0, 'newLineAfter' => 1); $this->buffer .= $this->getIndent ($format) . $string; if ($allowNextLevel !== false) { // allow next level $allowNextLevel = false; $this->level++; } // allow next level break 2; case '(': $inParentesis++; $this->level++; if ($accessibility) $format = array ('spaceBefore' => 1); else $format = array ('spaceBefore' => 0); $this->buffer .= $this->getIndent ($format) . $string; break 2; case ')': $inParentesis--; $this->level--; $format = array ('newLineBefore' => $newLine); $this->buffer .= $this->getIndent ($format) . $string; if (!$inParentesis) { // next token list ($nextCode, $nextString, $line, $nextNewLine) = $this->getNextToken (); if ($nextString != ':') $allowNextLevel = false; } // next token break 2; case '[': case ']': $format = array ('spaceBefore' => 0); $this->getIndent ($format); $this->buffer .= $string; break 2; case '{': $allowNextLevel = false; list ($nextCode, $nextString, $nextLine, $nextNewLine) = $this->getNextToken (); $inFunctionHeader = false; if (isset ($names[$this->level + 1])) { // comment is set $comment = $names[$this->level + 1]['comment']; $format = array ('newLineBefore' => 1, 'newLineAfter' => $names[$this->level + 1]['openNewLineAfter']); $this->buffer .= $this->getIndent ($format) . $string . ' // ' . $comment; if ($nextCode == T_COMMENT and $nextNewLine == 0) $this->getToken (); $this->level++; break 2; } // comment is set $format = array ('newLineBefore' => 1, 'newLineAfter' => 1); $this->buffer .= $this->getIndent ($format) . $string; $this->level++; $allowNextLevel = false; break 2; case '}': $this->level--; list ($nextCode, $nextString, $nextLine, $nextNewLine) = $this->getNextToken (); $format = array ('newLineBefore' => 1, 'newLineAfter' => 1); if (isset ($names[$this->level + 1])) { // comment is set $comment = $names[$this->level + 1]['comment']; $format = array ('newLineBefore' => 1, 'newLineAfter' => $names[$this->level + 1]['closeNewLineAfter']); $this->buffer .= $this->getIndent ($format) . $string . ' // ' . $comment; if ($nextCode == T_COMMENT and $nextNewLine == 0) $this->getToken (); unset ($names[$this->level + 1]); break 2; } // comment is set $format = array ('newLineBefore' => 1, 'newLineAfter' => 1); $this->buffer .= $this->getIndent ($format) . $string; break 2; case ';': if ($inParentesis) $format = array ('spaceBefore' => 0, 'spaceAfter' => 1); else $format = array ('spaceBefore' => 0, 'newLineAfter' => 1); $this->buffer .= $this->getIndent ($format) . $string; break 2; } // switch string token break; case T_DOC_COMMENT: case T_COMMENT: // // or #, and /+* *+/ in PHP 5 $string = rtrim ($string, CHR_HT . LF . '* /'); if (substr ($string, 0, 2) == '/' . '*') { // doc comment $string = ltrim ($string, CHR_HT . LF . '* /'); $lines = array (); foreach (explode (LF, $string) as $line) { // each line $lines[] = trim ($line, CHR_HT . LF . '/ *'); } // each line $string = '/' . '*' . LF . '* ' . implode (LF . '* ', $lines) . LF . '*' . '/'; $newLine = 2; } // doc comment $this->addNewLine = 1; if (!$newLine) $format = array ('spaceBefore' => 1, 'newLineAfter' => 1); else $format = array ('newLineBefore' => $newLine, 'newLineAfter' => 1); $this->buffer .= $this->getIndent ($format) . $string; break; // a resolver case T_CLASS: // class list ($nextCode, $nextString, $nextLine, $nextNewLine) = $this->getNextToken (); $allowNextLevel = $string; $comment = $string . ' ' . $nextString; $names[$this->level + 1] = array ('comment' => $comment, 'openNewLineAfter' => 2, 'closeNewLineAfter' => 2); $format = array ('newLineBefore' => $newLine, 'spaceAfter' => 1); $this->buffer .= $this->getIndent ($format) . $string; break; case T_FUNCTION: // function or cfunction list ($nextCode, $nextString, $nextLine, $nextNewLine) = $this->getNextToken (); $allowNextLevel = $string; $inFunctionHeader = true; $comment = $string . ' ' . $nextString; $names[$this->level + 1] = array ('comment' => $comment, 'openNewLineAfter' => 1, 'closeNewLineAfter' => 2); $format = array ('newLineBefore' => $newLine, 'spaceAfter' => 1); $this->buffer .= $this->getIndent ($format) . $string; break; // Regular tokens // Exigem espaço após case T_ABSTRACT: // abstract case T_CONST: // const case T_FINAL: // final case T_INTERFACE: // interface case T_PRIVATE: // private case T_PUBLIC: // public case T_PROTECTED: // protected $format = array ('newLineBefore' => $newLine, 'spaceAfter' => 1); $this->buffer .= $this->getIndent ($format) . $string; break; // Exigem espaços antes e após case T_AND_EQUAL: // &= case T_AS: // as case T_BOOLEAN_AND: // && case T_BOOLEAN_OR: // || case T_CLONE: // clone case T_CONCAT_EQUAL: // .= case T_DIV_EQUAL: // /= case T_DOUBLE_ARROW: // => case T_EXTENDS: // extends case T_IMPLEMENTS: // implements case T_INSTANCEOF: // instanceof type operators (available since PHP 5.0.0) case T_IS_EQUAL: // == case T_IS_GREATER_OR_EQUAL: // >= case T_IS_IDENTICAL: // === case T_IS_NOT_EQUAL: // != or <> case T_IS_NOT_IDENTICAL: // !== case T_IS_SMALLER_OR_EQUAL: // <= case T_LOGICAL_AND: // and case T_LOGICAL_OR: // or case T_LOGICAL_XOR: // xor case T_MINUS_EQUAL: // -= case T_MOD_EQUAL: // %= case T_MUL_EQUAL: // *= case T_NEW: // new case T_OR_EQUAL: // |= case T_PLUS_EQUAL: // += case T_SL: // << case T_SL_EQUAL: // <<= case T_SR: // >> case T_SR_EQUAL: // >>= case T_XOR_EQUAL: // ^= $format = array ('spaceBefore' => 1, 'spaceAfter' => 1); $this->buffer .= $this->getIndent ($format) . $string; break; // Não pode estar no início da linha nem admitem espaço após case T_ARRAY: // array() case T_ARRAY_CAST: // (array) case T_BOOL_CAST: // (bool) or (boolean) case T_DOUBLE_CAST: // (real), (double) or (float) case T_INT_CAST: // (int) or (integer) case T_OBJECT_CAST: // (object) case T_STRING_CAST: // (string) $format = array ('newLineBefore' => 0, 'spaceAfter' => 0); $this->buffer .= $this->getIndent ($format) . $string; break; // Não admite espaço ou quebra de linha após case T_ECHO: // echo() case T_EMPTY: // empty() case T_EVAL: // eval() case T_EXIT: // exit or die case T_INCLUDE: // include() case T_INCLUDE_ONCE: // include_once() case T_ISSET: // isset() case T_OBJECT_OPERATOR: // -> case T_REQUIRE: // require() case T_REQUIRE_ONCE: // require_once() case T_UNSET: // unset() case T_UNSET_CAST: // (unset) $format = array ('newLineBefore' => $newLine, 'spaceAfter' => 0); $this->buffer .= $this->getIndent ($format) . $string; break; // Não admitem quebra de linha após case T_DEC: // -- case T_DNUMBER: // decimal number like 0.12, etc case T_INC: // ++ case T_VARIABLE: // $foo $format = array ('newLineBefore' => $newLine, 'newLineAfter' => 0); $this->buffer .= $this->getIndent ($format) . $string; break; case T_CONSTANT_ENCAPSED_STRING: // 'a' or "a" // Não admitem quebra de linha após $format = array ('newLineBefore' => $newLine, 'newLineAfter' => 0); $this->buffer .= $this->getIndent ($format) . $string; break; case T_CLASS_C: // __CLASS__ case T_DIR: // __DIR__ case T_FILE: // __FILE__ case T_FUNC_C: // __FUNCTION__ case T_LINE: // __LINE__ case T_METHOD_C: // __METHOD__ case T_NS_C: // __NAMESPACE__ $format = array ('newLineBefore' => 0, 'newLineAfter' => 0); $this->buffer .= $this->getIndent ($format) . $string; break; // Exige quebra de linha admite espaço após case T_BREAK: // break case T_RETURN: // return if (!$newLine) $newLine = 1; $format = array ('newLineBefore' => $newLine, 'spaceAfter' => 1); $this->buffer .= $this->getIndent ($format) . $string; break; // Exige quebra de linha não admite espaço após case T_ENDDECLARE: // enddeclare case T_ENDFOR: // endfor case T_ENDFOREACH: // endforeach case T_ENDIF: // endif case T_ENDSWITCH: // endswitch case T_ENDWHILE: // endwhile $this->level--; if (!$newLine) $newLine = 1; $format = array ('newLineBefore' => $newLine, 'spaceAfter' => 0); $this->buffer .= $this->getIndent ($format) . $string; break; case T_CATCH: // catch case T_DECLARE: // declare case T_ELSEIF: // elseif or else if case T_FOR: // for case T_FOREACH: // foreach case T_IF: // if case T_WHILE: // while case T_SWITCH: // switch $allowNextLevel = $string; $nextName = $string; case T_CONTINUE: // continue case T_DEFAULT: // default case T_LIST: // list() if (!$newLine) $newLine = 1; $format = array ('newLineBefore' => $newLine, 'spaceAfter' => 0); $this->buffer .= $this->getIndent ($format) . $string; break; // Exige quebra de linha e espaço após case T_CASE: // case $format = array ('newLineBefore' => $newLine, 'spaceAfter' => 1); $this->level--; $this->buffer .= $this->getIndent ($format) . $string; $this->level++; break; case T_GLOBAL: // global case T_GOTO: // goto case T_NAMESPACE: // namespace case T_PRINT: // print() case T_STATIC: // static case T_THROW: // throw case T_VAR: // var if (!$newLine) $newLine = 1; $format = array ('newLineBefore' => $newLine, 'spaceAfter' => 1); $this->buffer .= $this->getIndent ($format) . $string; break; // Exige quebra de linha antes e após case T_DO: // do case T_ELSE: // else case T_TRY: // try if (!$newLine) $newLine = 1; $format = array ('newLineBefore' => $newLine, 'newLineAfter' => 1); $this->buffer .= $this->getIndent ($format) . $string; break; // Exige 2 quebras de linha após case T_OPEN_TAG: // ?php, ? or % $format = array ('spaceBefore' => 0, 'newLineAfter' => 2); $this->buffer .= $this->getIndent ($format) . trim ($string); break; // Exige 2 quebras de linha antes case T_CLOSE_TAG: // ? or % case T_HALT_COMPILER: // magic halt_compiler $format = array ('newLineBefore' => 2, 'spaceAfter' => 0); break; // Exige 2 quebras de linhas antes e espaço após case T_USE: // use $format = array ('newLineBefore' => 2, 'spaceAfter' => 1); $this->buffer .= $this->getIndent ($format) . $string; break; // Tokens não utilizados case T_START_HEREDOC: // <<< case T_END_HEREDOC: // heredoc syntax case T_CURLY_OPEN: // {$lt: case T_DOLLAR_OPEN_CURLY_BRACES: // ${ case T_ENCAPSED_AND_WHITESPACE: // " $a" case T_INLINE_HTML: // text outside PHP case T_NS_SEPARATOR: // \ namespaces (available since PHP 5.3.0) case T_NUM_STRING: // "$a[0]" case T_OPEN_TAG_WITH_ECHO: // $newLine); $this->buffer .= $this->getIndent ($format) . $string; break; } // switch code } // loop tokens $this->buffer .= LF . LF . '?' . '>'; if (isset ($params['script_nl']) and $params['script_nl'] == 'CRLF') $this->buffer = str_replace (LF, CRLF, $this->buffer); return $this->buffer; } // function format private function getToken () { // function getToken if ($this->index == $this->length) return array (0, '', 0, 0); $token = $this->tokens[$this->index]; $this->index++; $nl = $this->addNewLine; $this->addNewLine = 0; if (is_array ($token) and $token[0] == 371) { // spacer for ($i = 0; $i < strlen ($token[1]); $i++) { // loop char if ($token[1][$i] == LF) $nl++; } // loop char $token = $this->tokens[$this->index]; $this->index++; if ($this->index == $this->length) return array (0, '', 0, 0); } // spacer if (is_string ($token)) return array (1, $token, 0, $nl); $token[3] = $nl; return $token; } // function getToken private function getNextToken () { // function getNextToken static $line = 1; $index = $this->index + 1; if ($index >= $this->length) return array (0, '', 0, 0); $token = $this->tokens[$index]; $index++; if (is_array ($token) and $token[0] == 371) { // spacer $nl = 0; for ($i = 0; $i < strlen ($token[1]); $i++) { // loop char if ($token[1][$i] == LF) $nl++; } // loop char $token = $this->tokens[$index]; $index++; if ($index == $this->length) return array (0, '', 0, 0); } // spacer else $nl = 0; if (is_string ($token)) return array (1, $token, $line, $nl); $token[3] = $nl; return $token; } // function getNextToken private function getIndent ($format) { // function getIndent $lastFormat = $this->lastFormat; $this->lastFormat = $format; if (isset ($format['spaceBefore'])) { // space before if ($format['spaceBefore']) return CHR_WSP; return ''; } // space before if (isset ($lastFormat['spaceAfter'])) { // space after last token if ($lastFormat['spaceAfter']) return CHR_WSP; return ''; } // space after last token $nl = 0; if (isset ($format['newLineBefore'])) $nl = $format['newLineBefore']; if (isset ($lastFormat['newLineAfter']) and $lastFormat['newLineAfter'] > $nl) $nl = $lastFormat['newLineAfter']; if (!$nl) return ''; $buffer = LF; if ($nl > 1) $buffer .= LF; for ($i = $this->indentStart; $i <= $this->level; $i++) { // loop levels $buffer .= $this->indent; } // loop levels return $buffer; } // function getIndent public function close () { // function close } // function close } // class eclIo_scriptFormat //!eof:engine/eclIo/eclIo_scriptFormat.php; //!file:engine/eclIo/eclIo_sendFile.php; class eclIo_sendFile { // class eclIo_sendFile static public function send ($path, $params) { // function send error_reporting (0); if (SYSTEM_TIME_LIMIT) set_time_limit (0); while (@ob_end_clean ()); // turn off compression on the server // if (is_callable ('apache_setenv')) // apache_setenv ('no-gzip', 1); $headers = is_callable ('apache_request_headers') ? apache_request_headers () : array (); // ini_set ('zlib.output_compression', 'Off'); $parts = self::get_file_parts ($path); header_remove ('Pragma'); header_remove ('Expires'); header_remove ('X-Powered-By'); if (!$parts) { // bad request header ('HTTP/1.0 400 Bad Request'); return 400; } // bad request if (!is_file ($path)) { // file not found header ('HTTP/1.0 404 Not Found'); return 404; } // file not found $name = $parts[0]; $mime = $parts[1]; $size = filesize ($path); $start = 0; $end = $size - 1; $updated = filemtime ($path); $eTag = md5 ($name . $updated); if (isset ($headers['ETag']) and $headers['ETag'] == $eTag) { // not modified header ('HTTP/1.1 304 Not Modified'); return 304; } // not modified if (isset ($headers['If-Modified-Since']) and $headers['If-Modified-Since'] == $updated) { // not modified header ('HTTP/1.1 304 Not Modified'); return 304; } // not modified $stream = fopen ($path, 'rb'); if (!$stream and $size > 2000000) { // internal error header ('HTTP/1.0 500 Internal Server Error'); return 500; } // internal error header ('HTTP/1.1 200 OK'); header ('Access-Control-Allow-Origin: *'); // allow a file to be streamed instead of sent as an attachment if (isset ($_REQUEST['stream'])) header ('Content-Disposition: inline;'); elseif (isset ($params['Content-Disposition']) and $params['Content-Disposition'] == 'inline') header ('Content-Disposition: inline;'); elseif (isset ($params['Filename'])) header ('Content-Disposition: attachment; filename="' . $params['Filename'] . '"'); else header ('Content-Disposition: attachment; filename="' . $name . '"'); if (isset ($params['Cache-Control'])) header ('Cache-Control: ' . $params['Cache-Control']); header ('ETag: "' . $eTag . '"'); header ('Last-Modified: ' . $updated); header ('Content-Type: ' . $mime); if ($stream) header ('Accept-Ranges: bytes'); // check if http_range is sent by browser (or download manager) if (isset ($_SERVER['HTTP_RANGE'])) { // requested range list ($requested_size_unit, $requested_range_orig) = explode ('=', $_SERVER['HTTP_RANGE'], 2); // multiple ranges could be specified at the same time, but for simplicity only serve the first range // http://tools.ietf.org/id/draft-ietf-http-range-retrieval-00.txt list ($range) = explode (',', $requested_range_orig, 2); list ($start) = explode ('-', $range); $start = intval ($start); if ($requested_size_unit != 'bytes' or $start >= $end) { // out of range header ('HTTP/1.1 416 Requested Range Not Satisfiable'); return 416; } // out of range } // requested range //Only send partial content header if downloading a piece of the file (IE workaround) if ($stream and $start > 0) { // partial content header ('HTTP/1.1 206 Partial Content'); header ('Content-Range: bytes ' . strval ($start) . '-' . $end . '/' . $size); header ('Content-Length: ' . ( ($end - $start) + 1)); } // partial content else header ('Content-Length: ' . $size); if (!$stream) { // fopen failed print file_get_contents ($path); return 0; } // fopen failed fseek ($stream, $start); fpassthru ($stream); fclose ($stream); return 0; } // function send static public function get_file_parts ($file) { // function get_file_parts $parts = explode ('/', $file); // cant read from root directory (protection) if (count ($parts) < 2) return false; $name = array_pop ($parts); $n = strrpos ($name, '.'); if (!$n) return array ($name, "application/octet-stream"); $extension = strtolower (substr ($name, $n + 1)); switch ($extension) { // switch extension case 'js': $mime = 'application/javascript'; break; case 'json': $mime = 'application/json'; break; case 'jpg': case 'jpeg': case 'jpe': $mime = 'image/jpg'; break; case 'png': case 'gif': case 'bmp': case 'tiff': $mime = 'image/' . $extension; break; case 'css': $mime = 'text/css'; break; case 'xml': $mime = 'application/xml'; break; case 'doc': case 'docx': $mime = 'application/msword'; break; case 'xls': case 'xlt': case 'xlm': case 'xld': case 'xla': case 'xlc': case 'xlw': case 'xll': $mime = 'application/vnd.ms-excel'; break; case 'ppt': case 'pps': $mime = 'application/vnd.ms-powerpoint'; break; case 'rtf': $mime = 'application/rtf'; break; case 'pdf': $mime = 'application/pdf'; break; case 'html': case 'htm': case 'php': $mime = 'text/html'; break; case 'txt': $mime = 'text/plain'; break; case 'mpeg': case 'mpg': case 'mpe': $mime = 'video/mpeg'; break; case 'mp3': $mime = 'audio/mpeg'; break; case 'wav': $mime = 'audio/wav'; break; case 'aiff': case 'aif': $mime = 'audio/aiff'; break; case 'avi': $mime = 'video/msvideo'; break; case 'wmv': $mime = 'video/x-ms-wmv'; break; case 'mov': $mime = 'video/quicktime'; break; case 'zip': $mime = 'application/zip'; break; case 'tar': $mime = 'application/x-tar'; break; case 'swf': $mime = 'application/x-shockwave-flash'; break; default: if (function_exists ('mime_content_type')) { // discover file type $mime = mime_content_type ($path); } // discover file type else $mime = 'application/octet-stream'; } // switch extension return array ($name, $mime); } // function get_file_parts public function close () { // function close } // function close } // class eclIo_sendFile //!eof:engine/eclIo/eclIo_sendFile.php; //!file:engine/eclIo/eclIo_session.php; class eclIo_session { // class eclIo_session public $cache = array (); public function __construct () { // function __construct if (SYSTEM_HOSTING_MODE == 2) session_set_cookie_params (0, '/', '.' . SYSTEM_HOST); @session_start (); $this->cache = $_SESSION; } // function __construct public function close () { // function close $_SESSION = $this->cache; } // function close } // class eclIo_session //!eof:engine/eclIo/eclIo_session.php; //!file:engine/eclIo/eclIo_sms.php; class eclIo_sms { // class eclIo_sms public function enabled () { // function enabled if (defined ('INTEGRATION_PAPO_SMS_ENABLE') and INTEGRATION_PAPO_SMS_ENABLE) return true; return false; } // function enabled public function send ($sms) { // function send global $io; if (defined ('INTEGRATION_PAPO_SMS_ENABLE') and INTEGRATION_PAPO_SMS_ENABLE) return $io->integrationSMS->send ($sms); return false; } // function send public function close () { // function close } // function close } // class eclIo_sms //!eof:engine/eclIo/eclIo_sms.php; //!file:engine/eclIo/eclIo_smtp.php; class eclIo_smtp { // class eclIo_smtp private $enabled = false; private $host; private $port; private $user; private $password; private $from; private $to = array (); private $cc = array (); private $bcc = array (); private $subject = ''; private $destinations = ''; private $alternativeContents = array (); private $relatedContents = array (); private $attachmentContents = array (); public $rejected = array (); public $log = ''; public function __construct ($host=false, $port=false, $user=false, $password=false, $from=false) { // function __construct if (!defined ('INTEGRATION_SMTP_ENABLE') or !INTEGRATION_SMTP_ENABLE) return; $this->host = $host ? $host : INTEGRATION_SMTP_HOST; $this->port = $port ? $port : INTEGRATION_SMTP_PORT; $this->user = $user ? $user : INTEGRATION_SMTP_USER; $this->password = $password ? $password : INTEGRATION_SMTP_PASSWORD; $this->from = $from ? $from : INTEGRATION_SMTP_FROM; $this->enabled = true; } // function __construct public function to ($to) { // function to foreach (explode (';', $to) as $copy) { // each copy $this->to[] = trim ($copy); } // each copy return $this; } // function to public function cc ($cc) { // function cc foreach (explode (';', $cc) as $copy) { // each copy $this->cc[] = trim ($copy); } // each copy return $this; } // function cc public function bcc ($bcc) { // function bcc foreach (explode (';', $bcc) as $copy) { // each copy $this->bcc[] = trim ($copy); } // each copy return $this; } // function bcc public function subject ($subject, $charset='UTF-8') { // function subject $this->subject = 'Subject: =?' . $charset . '?Q?' . quoted_printable_encode ($subject) . '?=' . CRLF; return $this; } // function subject public function contentHTML ($html, $charset='UTF-8', $description="Message in HTML format") { // function contentHTML $this->alternativeContents[] = 'Content-type: text/html;charset=' . $charset . CRLF . 'Content-Description: =?' . $charset . '?Q?' . quoted_printable_encode ($description) . '?=' . CRLF . 'Content-Disposition: inline' . CRLF . 'Content-Transfer-Encoding: base64' . CRLF . CRLF . chunk_split (base64_encode ($html)) . CRLF; return $this; } // function contentHTML public function contentTXT ($text, $charset='UTF-8', $description="Message in plain text format") { // function contentTXT $this->alternativeContents[] = 'Content-type: text/plain;charset=' . $charset . CRLF . 'Content-Description: =?' . $charset . '?Q?' . quoted_printable_encode ($description) . '?=' . CRLF . 'Content-Disposition: inline' . CRLF . 'Content-Transfer-Encoding: base64' . CRLF . CRLF . chunk_split (base64_encode ($text)) . CRLF; return $this; } // function contentTXT public function relatedImg ($path, $cid) { // function relatedImg $fileName = array_pop (explode ('/', $path)); $fileExtension = strtolower (array_pop (explode ('.', $fileName))); $mime = array ( 'jpg' => 'image/jpeg', 'jpeg' => 'image/jpeg', 'gif' => 'image/gif', 'png' => 'image/png' ); $contents = file_get_contents ($path); $this->relatedContents[] = 'Content-Type: ' . $mime[$fileExtension] . '; name="' . $fileName . '"' . CRLF . 'Content-Disposition: inline; filename="' . $fileName . '"' . CRLF . 'Content-Transfer-Encoding: base64' . CRLF . 'Content-ID: <' . $cid . '>' . CRLF . CRLF . chunk_split (base64_encode ($contents)) . CRLF . CRLF; return $this; } // function relatedImg public function attachment ($path) { // function attachment $fileName = array_pop (explode ('/', $path)); if (function_exists ('mime_content_type')) $mime = mime_content_type ($path); else $mime = 'application/octet-stream'; $contents = file_get_contents ($path); $this->attachmentContents[] = 'Content-Type: ' . $mime . '; name="' . $fileName . '"' . CRLF . 'Content-Disposition: attachment; filename="' . $fileName . '"' . CRLF . 'Content-Transfer-Encoding: base64' . CRLF . CRLF . chunk_split (base64_encode ($contents)) . CRLF . CRLF; return $this; } // function attachment public function send () { // function send if (!$this->enabled) return array ('msg' => 'adminMail_smtp_alertDisabled'); if (SYSTEM_TIME_LIMIT) set_time_limit (0); // Opens a socket $this->socket = @fsockopen ($this->host, $this->port, $errNo, $errMsg, INTEGRATION_SMTP_TTL); if (!$this->socket) return array ('msg' => 'adminMail_smtp_alertSocketError', 'server' => $this->host); // Ehlo $this->putContents ("EHLO " . $this->host . CRLF); if ($this->discoverError ()) return array ('msg' => 'adminMail_smtp_alertSocketError', 'server' => $this->host); // Auth login $this->putContents ("AUTH LOGIN" . CRLF); if ($this->discoverError ()) return array ('msg' => 'adminMail_smtp_alertSocketError', 'server' => $this->host); // Username $this->putContents (base64_encode ($this->user) . CRLF); if ($this->discoverError ()) return array ('msg' => 'adminMail_smtp_alertLoginError', 'server' => $this->host, 'user' => $this->user); // Password $this->putContents (base64_encode ($this->password) . CRLF); if ($this->discoverError ()) return array ('msg' => 'adminMail_smtp_alertLoginError', 'server' => $this->host, 'user' => $this->user); // mail from $this->putContents ("MAIL FROM: <" . $this->from . ">" . CRLF); if ($this->discoverError ()) return array ('msg' => 'adminMail_smtp_alertLoginError', 'server' => $this->host, 'user' => $this->user); // Test the destinations if ($error = $this->rcpt ()) return $error; // data command $this->putContents ("DATA" . CRLF); if ($this->discoverError ()) return array ('msg' => 'adminMail_smtp_alertSendingError', 'to' => $this->to); list ($headers, $content) = explode (CRLF . CRLF, $this->getMessageBody (), 2); // The message $out = 'MIME-Version: 1.0' . CRLF . 'From: <' . $this->from . '>' . CRLF . $this->destinations . $this->subject . 'Date: ' . date ('D, d M Y H:i:s O') . CRLF . 'Message-ID: <' . date ('YmdHis') . "." . md5 (microtime ()) . "." . $this->from . '>' . CRLF // . 'User-Agent: ' . SYSTEM_GENERATOR . ' ' . SYSTEM_VERSION . ' ' . SYSTEM_RELEASE . CRLF . 'Importance: normal' . CRLF . $headers . CRLF . CRLF; $this->putContents ($out); if ($this->discoverError ()) return array ('msg' => 'adminMail_smtp_alertSendingError', 'to' => implode ('; ', $this->to)); // Content $this->putContents ($content . CRLF . '.' . CRLF); if ($this->discoverError ()) return array ('msg' => 'adminMail_smtp_alertSendingError', 'to' => $this->to); // Close the socket fclose ($this->socket); return false; } // function send private function getContents () { // function getContents $c = $this->socket; $buffer = ''; while ($str = @fgets ($c, 515)) { // loop reading $buffer .= $str; // if the 4th character is a space then we are done reading // so just break the loop if (substr ($str, 3, 1) == " ") break; } // loop reading $this->log .= $buffer; return $buffer; } // function getContents private function putContents ($out) { // function putContents if (!@fwrite ($this->socket, $out)) exit ('connection was broken'); $this->log .= $out; return true; } // function putContents private function discoverError () { // function discoverError $lines = $this->getContents (); $lines = trim ($lines); if (strlen ($lines) < 4) return true; if ($lines[0] == '5') return true; return false; } // function discoverError private function getMessageBody () { // function getMessageBody $alternativeBoundary = md5 (TIME . 'ALTERNATIVE'); $relatedBoundary = md5 (TIME . 'RELATIVE'); $attachmentBoundary = md5 (TIME . 'ATTACHMENT'); if (count ($this->alternativeContents) == 1) $alternativeBody = $this->alternativeContents[0]; elseif (count ($this->alternativeContents) > 1) $alternativeBody = 'Content-Type: multipart/alternative; boundary="' . $alternativeBoundary . '"' . CRLF . CRLF . '--' . $alternativeBoundary . CRLF . implode (CRLF . '--' . $alternativeBoundary . CRLF, $this->alternativeContents) . CRLF . '--' . $alternativeBoundary . '--' . CRLF; array_unshift ($this->relatedContents, $alternativeBody); if (count ($this->relatedContents) == 1) $relatedBody = $this->relatedContents[0]; else $relatedBody = 'Content-Type: multipart/related; boundary="' . $relatedBoundary . '"' . CRLF . CRLF . '--' . $relatedBoundary . CRLF . implode (CRLF . '--' . $relatedBoundary . CRLF, $this->relatedContents) . CRLF . '--' . $relatedBoundary . '--' . CRLF; array_unshift ($this->attachmentContents, $relatedBody); if (count ($this->attachmentContents) == 1) return $this->attachmentContents[0]; return 'Content-Type: multipart/mixed; boundary="' . $attachmentBoundary . '"' . CRLF . CRLF . '--' . $attachmentBoundary . CRLF . implode (CRLF . '--' . $attachmentBoundary . CRLF, $this->attachmentContents) . CRLF . '--' . $attachmentBoundary . '--' . CRLF; } // function getMessageBody private function rcpt () { // function rcpt foreach ($this->to as $recipient) { // each recipient $this->putContents ("RCPT TO: <" . $recipient . ">" . CRLF); if ($this->discoverError ()) $this->rejected[] = $recipient; else $to[] = $recipient; } // each recipient foreach ($this->cc as $recipient) { // each recipient $this->putContents ("RCPT TO: <" . $recipient . ">" . CRLF); if ($this->discoverError ()) $this->rejected[] = $recipient; else $cc[] = $recipient; } // each recipient foreach ($this->bcc as $recipient) { // each recipient $this->putContents ("RCPT TO: <" . $recipient . ">" . CRLF); if ($this->discoverError ()) $this->rejected[] = $recipient; else $bcc[] = $recipient; } // each recipient if (isset ($to) and $to) $this->destinations .= 'To: ' . implode (",\r\n\t", $to) . CRLF; if (isset ($cc) and $cc) $this->destinations .= 'Cc: ' . implode (",\r\n\t", $cc) . CRLF; if (isset ($bcc) and $bcc) $this->destinations .= 'Bcc: ' . implode (",\r\n\t", $bcc) . CRLF; if (!strlen ($this->destinations)) return array ('msg' => 'adminMail_smtp_alertToError', 'to' => implode ('; ', $this->rejected)); return false; } // function rcpt public function close () { // function close } // function close } // class eclIo_smtp //!eof:engine/eclIo/eclIo_smtp.php; //!file:engine/eclIo/eclIo_sqlite.php; class eclIo_sqlite { // class eclIo_sqlite protected $databases = array (); public function connect ($database) { // function connect if (!isset ($this->databases[$database])) { // open file global $io; $this->databases[$database] = new eclIo_database ($io, $database); } // open file return $this->databases[$database]; } // function connect public function close () { // function close foreach ($this->databases as $database) { // each domain $database->close (); } // each domain } // function close } // class eclIo_sqlite //!eof:engine/eclIo/eclIo_sqlite.php; //!file:engine/eclIo/eclIo_systemConstants.php; class eclIo_systemConstants { // class eclIo_systemConstants public $constants; public $originalRows; public $components; public $aliases; public $map; public function __construct () { // function __construct global $components, $aliases, $map; $this->components = $components; $this->aliases = $aliases; $this->map = $map; $this->constants = array (); if (!is_file (SYSTEM_CONFIG_FILE)) return; $file = file_get_contents (SYSTEM_CONFIG_FILE); foreach (explode (LF, $file) as $line) { // loop each line if (!strlen ($line)) continue; if (preg_match ('%define\ ?[(][\'"]([a-zA-Z0-9_]+)[\'"][,]\ ?([^)]+)%', $line, $results)) { // is a definition line list (, $key, $value) = $results; if ($value == 'true') $value = true; elseif ($value == 'false') $value = false; elseif (is_numeric ($value)) $value = intval ($value); elseif ($value[0] == "'") $value = substr ($value, 1, - 1); $this->constants[$key] = $value; } // is a definition line } // loop each line $this->originalRows = $this->constants; } // function __construct public function set ($name, $value) { // function set $this->constants[$name] = $value; if (!defined ($name)) define ($name, $value); } // function set public function check ($name) { // function check if (isset ($this->constants[$name])) return true; return false; } // function check public function drop ($name) { // function drop if (isset ($this->constants[$name])) unset ($this->constants[$name]); } // function drop public function get ($name) { // function get if (isset ($this->constants[$name])) return $this->constants[$name]; if (defined ($name)) return constant ($name); return false; } // function get public function close () { // function close global $aliases, $components; if ($this->constants == $this->originalRows and $this->aliases == $aliases and $this->components == $components) return; $grouped = array (); foreach ($this->constants as $key => $value) { // group constants @list ($prefix) = explode ('_', $key); $grouped[$prefix][$key] = $value; } // group constants $string = ' $value) { // each constant if ($value === false) $string .= "define ('" . $key . "', false);" . CRLF; elseif ($value === true) $string .= "define ('" . $key . "', true);" . CRLF; elseif (is_int ($value)) $string .= "define ('" . $key . "', " . strval ($value) . ");" . CRLF; elseif (is_string ($value)) $string .= "define ('" . $key . "', '" . str_replace (array ("'", "\\", "\r", "\n"), "", $value) . "');" . CRLF; } // each constant $string .= CRLF; } // each group $string .= '$components = array ('; $string .= eclIo_packager::array2php ($this->components) . CRLF; $string .= ');' . CRLF . CRLF; $string .= '$aliases = array ('; $string .= eclIo_packager::array2php ($this->aliases) . CRLF; $string .= ');' . CRLF . CRLF; $string .= '$map = array ('; $string .= eclIo_packager::array2php ($this->map) . CRLF; $string .= ');' . CRLF . CRLF; $string .= '?>'; file_put_contents (SYSTEM_CONFIG_FILE, $string); } // function close } // class eclIo_systemConstants //!eof:engine/eclIo/eclIo_systemConstants.php; //!file:engine/eclIo/eclIo_webservice.php; class eclIo_webservice { // class eclIo_webservice public function request ($url, $data=array ()) { // function request global $io; if (!$data) return $this->json2array (file_get_contents ($url)); if (!function_exists ('curl_init')) { // error $io->log->addMessage ('curl library not found'); return array (); } // error $data = $this->array2json ($data); $ch = curl_init ($url); curl_setopt ($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt ($ch, CURLOPT_POSTFIELDS, $data); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt ($ch, CURLOPT_HTTPHEADER, array ( 'Content-Type: application/json', 'Content-Length: ' . strlen ($data)) ); $result = curl_exec ($ch); return $this->json2array ($result); } // function request public function read () { // function read $string = file_get_contents ("php://input"); return $this->json2array ($string); } // function read public function send ($data) { // function send print $this->array2json ($data); header_remove (); header ('HTTP/1.1 200 OK'); header ('X-Powered-By: ECOLABORE/' . SYSTEM_VERSION); header ("Cache-Control: no-cache, must-revalidate, max-age=0"); header ('Content-Type: text/json; charset=utf-8'); header ('Content-length: ' . strval (ob_get_length ())); } // function send static function array2json ($array) { // function array2json $buffer = ''; if (!is_array ($array) or !$array) return '{}'; reset ($array); $key = key ($array); if ($key === 0) { // is indexed array $buffer .= '[' . CRLF; foreach ($array as $key => $value) { // each value if ($key) $buffer .= ',' . CRLF; if ($value === true) $buffer .= 'true'; elseif ($value === false) $buffer .= 'false'; elseif (is_int ($value)) $buffer .= strval ($value); elseif (is_float ($value)) $buffer .= strval ($value); elseif (is_string ($value)) $buffer .= '"' . str_replace ('"', '\\"', $value) . '"'; elseif (is_array ($value)) $buffer .= self::array2json ($value); } // each value $buffer .= CRLF . ']'; return $buffer; } // is indexed array $buffer .= '{' . CRLF; $index = 0; foreach ($array as $key => $value) { // each array element if ($index++) $buffer .= ',' . CRLF; $buffer .= '"' . str_replace ('"', '\\"', $key) . '":'; if ($value === true) $buffer .= 'true'; elseif ($value === false) $buffer .= 'false'; elseif (is_int ($value)) $buffer .= strval ($value); elseif (is_float ($value)) $buffer .= strval ($value); elseif (is_string ($value)) $buffer .= '"' . str_replace ('"', '\\"', $value) . '"'; elseif (is_array ($value)) $buffer .= self::array2json ($value); } // each array element $buffer .= CRLF . '}'; return $buffer; } // function array2json public static function json2array ($string) { // function json2array $pointer = 0; $floor = 0; $array[0] = array (); $key[0] = false; $isFloat = false; $value = array (); while (isset ($string[$pointer])) { // each character switch ($string[$pointer]) { // switch char case ' ': case "\r": case "\n": case "\t": $pointer++; break; case '[': case '{': $pointer++; $floor++; $array[$floor] = array (); $key[$floor] = false; $value = array (); break; case ']': case '}': $pointer++; if (!is_array ($value)) { // append last item if ($key[$floor] === false) $array[$floor][] = $value; else $array[$floor][$key[$floor]] = $value; $key[$floor] = false; $value = array (); } // append last item if ($floor < 0) return $array[0]; $floor--; if ($key[$floor] === false) $array[$floor][] = $array[$floor + 1]; else $array[$floor][$key[$floor]] = $array[$floor + 1]; $key[$floor] = false; break; case ':': $pointer++; if (!is_array ($value) and !is_bool ($value) and preg_match ('/^[$a-zA-Z][a-zA-Z0-9_-]*$/', $value)) $key[$floor] = $value; elseif (!is_array ($value) and !is_bool ($value) and preg_match ('/^[0-9]+$/', $value)) $key[$floor] = intval ($value); $value = array (); break; case ',': $pointer++; if (is_array ($value)) break; if ($key[$floor] === false) $array[$floor][] = $value; else $array[$floor][$key[$floor]] = $value; break; case '"': $pointer++; $start = $pointer; $pointer = strpos ($string, '"', $pointer); if ($pointer === false) return $array[0]; while ($string[$pointer - 1] == CHR_BSLASH) { // loop escaped quotes $pointer = strpos ($string, '"', $pointer + 1); if ($pointer === false) return $array[0]; } // loop escaped quotes $value = substr ($string, $start, $pointer - $start); $pointer++; break; case 't': case 'T': $pointer += 4; $value = true; break; case 'f': case 'F': $pointer += 5; $value = false; break; case '.': case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': $value = ''; while (isset ($string[$pointer])) { // search numbers switch ($string[$pointer]) { // switch chars case '.': $isFloat = true; case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': $value .= $string[$pointer]; $pointer++; break; default: if ($isFloat) $value = floatval ($value); else $value = intval ($value); $isFloat = false; break 2; } // switch chars } // search numbers break; } // switch char } // each character if (count ($array[0]) == 1 and isset ($array[0][0])) return $array[0][0]; return $array[0]; } // function json2array public function close () { // function close } // function close } // class eclIo_webservice //!eof:engine/eclIo/eclIo_webservice.php; //!file:engine/eclScope/eclScope_address.php; class eclScope_address { // class eclScope_address static function get ($render, $arguments) { // function get $data['data'] = $render->getVar ('address'); return $data; } // function get } // class eclScope_address //!eof:engine/eclScope/eclScope_address.php; //!file:engine/eclScope/eclScope_audima.php; class eclScope_audima { // class eclScope_audima static function get ($render, $arguments) { // function get global $store, $system; if ($render->me === false) return false; $document = $render->document; $me = $render->me; if ($document->data['id'] != $me->data['id']) return array (); if (isset ($me->data['extras']['audio_0'])) return array (); $data = array ('local' => array ('audima' => 1)); return $data; } // function get } // class eclScope_audima //!eof:engine/eclScope/eclScope_audima.php; //!file:engine/eclScope/eclScope_audio.php; class eclScope_audio { // class eclScope_audio static function get ($render, $arguments) { // function get global $store, $system; if ($render->me === false) return false; $document = $render->document; $me = $render->me; $number = $render->getVar ('mod.number'); if (!$number) $number = '0'; $extras = $me->data['extras']; $target = 'audio_' . $number; if (!isset ($extras[$target])) { // no media if (!$me->id or !$me->domainId) return false; if (!$document->access (4, $me->groups)) return; $data['local']['editable'] = 1; $pathway = $me->pathway; $domain = array_shift ($pathway); array_unshift ($pathway, $domain, '-personalite', 'extras', $target); $url = $document->url ($pathway); $data['local']['url'] = "javaScript:humperstilshen.popUpOpen('" . $url . "', 300, 200)"; return $data; } // no media $data['local'] = $extras[$target]; if (isset ($data['local']['files']['audio'])) { // url $data['local']['url_download'] = $document->urlFiles ($data['local']['files']['audio'], true, '-downloads'); $data['local']['url_play'] = $document->urlFiles ($data['local']['files']['audio'], true, '-play'); } // url //!start version 3 compatibility if (isset ($data['local']['audio'])) { // Version 3 compatibility $data['local']['url_download'] = $document->urlFiles ($data['local']['audio'], true, '-downloads'); $data['local']['url_play'] = $document->urlFiles ($data['local']['audio'], true, '-play'); } // Version 3 compatibility //!end version 3 compatibility if (isset ($data['local']['play'])) $data['local']['play'] = strval ($data['local']['play']); //!start version 3 compatibility elseif (isset ($data['local']['plays'])) $data['local']['play'] = strval ($data['local']['plays']); //!end version 3 compatibility return $data; } // function get } // class eclScope_audio //!eof:engine/eclScope/eclScope_audio.php; //!file:engine/eclScope/eclScope_card.php; class eclScope_card { // class eclScope_card static function get ($render, $arguments) { // function get if (isset ($render->me->data['extras']['card']['local'])) return $render->me->data['extras']['card']; return; } // function get } // class eclScope_card //!eof:engine/eclScope/eclScope_card.php; //!file:engine/eclScope/eclScope_cart.php; class eclScope_cart { // class eclScope_cart static function get ($render, $arguments) { // function get global $store; $document = $render->document; if (!$render->getVar ('value')) return; if (!$store->domainContent->findMarker ($document->domain->domainId, 12)) return; $data['local'] = $render->data; $data['local']['url'] = $document->url (true, true, '_preload-cart'); if (isset ($document->domain->data['flags']['modCart_type']) and $document->domain->data['flags']['modCart_type'] == 'bag') $data['local']['bag'] = 1; return $data; } // function get } // class eclScope_cart //!eof:engine/eclScope/eclScope_cart.php; //!file:engine/eclScope/eclScope_categories.php; class eclScope_categories { // class eclScope_categories static function get ($render, $arguments) { // function get global $store; if (!isset ($render->data['domain_id']) or !isset ($render->data['name'])) return false; $document = $render->document; $domainId = $render->data['domain_id']; $name = $render->data['name']; $data = array (); $sections = $store->domainContent->mode ($domainId, MODE_SECTION); foreach ($sections as $section) { // each section if (!isset ($section['flags']['section_type']) or $section['flags']['section_type'] != 'categories') continue; $categories = $store->domainContent->children ($document->domain->domainId, MODE_CATEGORY, $section['id']); if (!$categories) continue; $group = $document->createListItem ($section); foreach ($categories as $category) { // each category if (!isset ($category['links']['pages']) or !in_array ($name, $category['links']['pages'])) continue; $group->appendChild ($category) ->swapTitle () ->url ($store->domainContent->pathway ($domainId, $category['id'])); } // each category if ($group->children) $data['children'][] = $group; } // each section return $data; } // function get } // class eclScope_categories //!eof:engine/eclScope/eclScope_categories.php; //!file:engine/eclScope/eclScope_credits.php; class eclScope_credits { // class eclScope_credits static function get ($render, $arguments) { // function get if (!isset ($render->data['text']['author'])) return false; $data = $render->data; if (isset ($render->data['extras']['credits'])) $data['local'] = $render->data['extras']['credits']; return $data; } // function get } // class eclScope_credits //!eof:engine/eclScope/eclScope_credits.php; //!file:engine/eclScope/eclScope_date.php; class eclScope_date { // class eclScope_date static function get ($render, $arguments) { // function get global $store; $document = $render->document; if (!isset ($arguments[0])) return false; $time = intval ($arguments[0]); if (!$time) return false; if (isset ($arguments[1]) and $time == intval ($arguments[1])) return false; $parts = explode ('-', date ('Y-m-d-H-i-n', $time)); $local['y'] = $parts[0]; $local['m'] = $parts[1]; $local['d'] = $parts[2]; $local['h'] = $parts[3]; $local['i'] = $parts[4]; $local['n'] = $parts[5]; if ($parts[2] == 1) $local['th'] = 'st'; elseif ($parts[2] == 2) $local['th'] = 'nd'; elseif ($parts[2] == 3) $local['th'] = 'rd'; else $local['th'] = 'th'; $month = $render->block ('labels/date/month' . $parts[5]); if (isset ($month['text']['caption'])) $local['month'] = $month['text']['caption']; $data['local'] = $local; return $data; } // function get } // class eclScope_date //!eof:engine/eclScope/eclScope_date.php; //!file:engine/eclScope/eclScope_date_elapsed.php; class eclScope_date_elapsed { // class eclScope_date_elapsed static function get ($render, $arguments) { // function get global $store; if (!isset ($arguments[0])) return false; $time = intval ($arguments[0]); if (!$time) return false; $dif = TIME - $time; if ($dif <= 60) $message = 'now'; elseif ($dif <= 120) $message = '1minute'; elseif ($dif <= 3600) { $message = 'minutes'; $local['i'] = intval ($dif / 60); } elseif ($dif <= 7200) $message = '1hour'; elseif ($dif <= 86400) { $message = 'hours'; $local['h'] = intval ($dif / 3600); } elseif ($dif <= 172800) $message = '1day'; elseif ($dif <= 2592000) { $message = 'days'; $local['d'] = intval ($dif / 86400); } elseif ($dif <= 5184000) $message = '1month'; elseif ($dif <= 31104000) { $message = 'months'; $local['m'] = intval ($dif / 2592000); } elseif ($dif <= 62208000) $message = '1year'; else { $message = 'years'; $local['y'] = intval ($dif / 31104000); } $description = $render->block ('labels/date/elapsed_' . $message); $local['elapsed'] = $description['text']['caption']; $data['local'] = $local; return $data; } // function get } // class eclScope_date_elapsed //!eof:engine/eclScope/eclScope_date_elapsed.php; //!file:engine/eclScope/eclScope_file.php; class eclScope_file { // class eclScope_file static function get ($render, $arguments) { // function get global $store, $system; $document = $render->document; if (isset ($render->data['extras'])) $extras = $render->data['extras']; else $extras = array (); $number = $render->getVar ('mod.number'); if (!$number) $number = '0'; $target = 'file_' . $number; if (!isset ($extras[$target])) { // no media $pathway = $render->getVar ('pathway'); if (!$pathway) { // get pathway if (!isset ($render->data['id']) or !isset ($render->data['domain_id'])) return false; $id = $render->data['id']; $pathway = $store->domainContent->pathway ($render->data['domain_id'], $id); } // get pathway $me = $document->domain->parent; foreach ($pathway as $folder) { // each folder $me = $me->child ($folder); if (!$me) return; } // each folder if (!$document->access (4, $me->groups)) return; $data['local']['editable'] = 1; $domain = array_shift ($pathway); array_unshift ($pathway, $domain, '-personalite', 'extras', $target); $url = $document->url ($pathway); $data['local']['url'] = "javaScript:humperstilshen.popUpOpen('" . $url . "', 300, 200)"; return $data; } // no media $data['local'] = $extras[$target]; if (isset ($data['local']['files']['file'])) { // url $data['local']['url_download'] = $document->urlFiles ($data['local']['files']['file'], true, '-downloads'); $data['local']['url_play'] = $document->urlFiles ($data['local']['files']['file'], true, '-play'); } // url //!start version 3 compatibility if (isset ($data['local']['file'])) { // Version 3 compatibility $data['local']['url_download'] = $document->urlFiles ($data['local']['file'], true, '-downloads'); $data['local']['url_play'] = $document->urlFiles ($data['local']['file'], true, '-play'); } // Version 3 compatibility //!end version 3 compatibility if (isset ($data['local']['play'])) $data['local']['play'] = strval ($data['local']['play']); //!start version 3 compatibility elseif (isset ($data['local']['plays'])) $data['local']['play'] = strval ($data['local']['plays']); //!end version 3 compatibility return $data; } // function get } // class eclScope_file //!eof:engine/eclScope/eclScope_file.php; //!file:engine/eclScope/eclScope_fonts.php; class eclScope_fonts { // class eclScope_fonts static function get ($render, $arguments) { // function get global $store; if (!isset ($render->data['extras']['fonts'])) return false; $document = $render->document; $fonts = $render->data['extras']['fonts']; $data = array (); $demonstration = $store->control->read ('dialog_fonts_demonstration'); if (isset ($document->session['scope-fonts-demonstration'])) $demonstration = array_replace ($demonstration, $document->session['scope-fonts-demonstration']); $demonstration['ref_demonstration'] = $document->url ($document->domain->name, '-dialog', 'font-change-preview'); foreach (array ('light-' => '-light', '' => '', 'heavy-' => '-heavy') as $prefix => $sufix) { // each family if (!isset ($fonts[$prefix . 'regular'])) continue; $local = array (); $local['font-family'] = 'ecl-' . $render->data['name'] . $sufix; foreach (array ('regular', 'italic', 'bold', 'bold-italic') as $style) { // each style if (!isset ($fonts[$prefix . $style])) continue; $local[$style . '-url'] = $document->urlFiles ($fonts[$prefix . $style], true, '-files/fonts'); $parts = explode ('.', $fonts[$prefix . $style]); $local[$style . '-format'] = end ($parts); } // each style if (isset ($fonts[$prefix . 'stack-start'])) { // start of stack $buffer = ''; $list = explode (',', $fonts[$prefix . 'stack-start']); foreach ($list as $font) { // each font $font = trim ($font, '"\' '); if (isset ($font[0])) { // add font $buffer .= 'local("' . $font . '"), '; } // add font } // each font if (isset ($buffer[0])) $local['stack-start'] = $buffer; } // start of stack $buffer = $local['font-family']; if (isset ($fonts[$prefix . 'stack-end'])) { // end of stack $list = explode (',', $fonts[$prefix . 'stack-end']); foreach ($list as $font) { // each font $font = trim ($font, '"\' '); if (isset ($font[0])) { // add font if (strpos ($font, ' ')) $buffer .= ", '" . $font . "'"; else $buffer .= ', ' . $font; } // add font } // each font } // end of stack $local['stack'] = $buffer; if ($prefix == 'light-') $caption = $store->control->read ('labels/detail/font_light'); elseif ($prefix == 'heavy-') $caption = $store->control->read ('labels/detail/font_heavy'); else $caption = $store->control->read ('labels/detail/font_normal'); $local['caption'] = $caption['text']['caption']; $data['children'][] = $document->createListItem ($local, $demonstration); } // each family return $data; } // function get } // class eclScope_fonts //!eof:engine/eclScope/eclScope_fonts.php; //!file:engine/eclScope/eclScope_home.php; class eclScope_home { // class eclScope_home static function get ($render, $arguments) { // function get global $store; $document = $render->document; $home = $document->application; while (!$home->isDomain) { // loop up $home = $home->parent; } // loop up $data['data'] = $home->data; if ($home !== $document->application and $document->application->name != '') $data['data']['url'] = $document->url ($home->pathway); if ($document->contentEditable and $document->application->name == '') $data['data']['editable'] = 1; return $data; } // function get } // class eclScope_home //!eof:engine/eclScope/eclScope_home.php; //!file:engine/eclScope/eclScope_img.php; class eclScope_img { // class eclScope_img static function get ($render, $arguments) { // function get global $store; $document = $render->document; $extras = $render->getVar ('extras'); if (!isset ($extras['img_0'])) return false; $domainId = $render->getVar ('domain_id'); $domainName = $store->domain->getName ($domainId); $scope = array ('data' => array ()); $data = &$scope['data']; $data = $extras['img_0']; $data['url'] = $render->getVar ('url'); if (isset ($data['files']['img'])) $data['url_img'] = $document->urlFiles ($data['files']['img'], $domainName); // Version 3 compatibility elseif (isset ($data['img'])) $data['url_img'] = $document->urlFiles ($data['img'], $domainName); if (isset ($data['files']['img_mini'])) $data['url_img_mini'] = $document->urlFiles ($data['files']['img_mini'], $domainName); // Version 3 compatibility elseif (isset ($data['img_mini'])) $data['url_img_mini'] = $document->urlFiles ($data['img_mini'], $domainName); if (!isset ($data['local']['description'])) { // provides a description $data['local']['description'] = $render->getVar ('description'); if ($data['local']['description'] == '') $data['local']['description'] = $render->getVar ('title'); if ($data['local']['description'] == '') $data['local']['description'] = $render->getVar ('caption'); } // provides a description return $scope; } // function get } // class eclScope_img //!eof:engine/eclScope/eclScope_img.php; //!file:engine/eclScope/eclScope_location.php; class eclScope_location { // class eclScope_location static function get ($render, $arguments) { // function get global $store, $system; if (!isset ($render->data['domain_id']) or !isset ($render->data['name'])) return false; $document = $render->document; $domainId = $render->data['domain_id']; $domainName = $store->domain->getName ($domainId); $name = $render->data['name']; $domain = $system->child ($domainName); $me = $domain->findChild ($name); if ($me == false) return false; $levels = array (); $levels[] = $me; while (!$me->parent->isDomain) { // loop levels $me = $me->parent; $levels[] = $me; } // loop levels $data['children'] = array (); $length = count ($levels); for ($i = $length - 1; $i > 0; $i--) { // each level $data['children'][] = $document->createListItem ($levels[$i]->data) ->url ($levels[$i]->pathway); } // each level if (!count ($data['children'])) $data['children'][] = $document->createListItem ($levels[0]->data) ->url ($levels[0]->pathway); return $data; } // function get } // class eclScope_location //!eof:engine/eclScope/eclScope_location.php; //!file:engine/eclScope/eclScope_locationFull.php; class eclScope_locationFull { // class eclScope_locationFull static function get ($render, $arguments) { // function get global $store, $system; if (!isset ($render->data['domain_id']) or !isset ($render->data['name'])) return false; $document = $render->document; $domainId = $render->data['domain_id']; $domainName = $store->domain->getName ($domainId); $name = $render->data['name']; $domain = $system->child ($domainName); $me = $domain->findChild ($name); if ($me == false) return false; $levels = array (); $levels[] = $me; while (!$me->isDomain) { // loop levels $me = $me->parent; $levels[] = $me; } // loop levels $data['children'] = array (); $length = count ($levels); for ($i = $length - 1; $i >= 0; $i--) { // each level if ($i == $length - 1) $data['children'][] = $document->createListItem ($levels[$i]->data) ->swapTitle () ->url ($levels[$i]->pathway); else $data['children'][] = $document->createListItem ($levels[$i]->data) ->url ($levels[$i]->pathway); } // each level return $data; } // function get } // class eclScope_locationFull //!eof:engine/eclScope/eclScope_locationFull.php; //!file:engine/eclScope/eclScope_system.php; class eclScope_system { // class eclScope_system static function get ($render, $arguments) { // function get global $system; $data['data'] = $system->data; return $data; } // function get } // class eclScope_system //!eof:engine/eclScope/eclScope_system.php; //!file:engine/eclScope/eclScope_user.php; class eclScope_user { // class eclScope_user static function get ($render, $arguments) { // function get global $store; $document = $render->document; if (!isset ($arguments[0]) or !$arguments[0]) return false; if ($document->user->userId == $arguments[0]) { // you return $store->control->read ('user_you'); } // you $userName = $store->user->getName ($arguments[0]); $user = $store->userContent->open ($arguments[0], '-register'); if (!$user) return; $data['local'] = $user; $data['local']['url'] = $render->document->url (array (SYSTEM_PROFILES_URI, $userName)); return $data; } // function get } // class eclScope_user //!eof:engine/eclScope/eclScope_user.php; //!file:engine/eclScope/eclScope_video.php; class eclScope_video { // class eclScope_video static function get ($render, $arguments) { // function get global $store; $document = $render->document; $extras = $render->getVar ('extras'); $target = 'video'; $number = $render->getVar ('mod.number'); if (!$number) $number = '0'; if (!isset ($extras[$target . '_' . $number])) { // no media $pathway = $render->getVar ('pathway'); if (!$pathway) return; $me = $document->domain->parent; foreach ($pathway as $folder) { // each folder $me = $me->child ($folder); if (!$me) return; } // each folder if (!$document->access (4, $me->groups)) return; $data['local']['editable'] = 1; $domain = array_shift ($pathway); array_unshift ($pathway, $domain, '-personalite', 'extras', $target . '_' . $number); $url = $document->url ($pathway); $data['local']['url'] = "javaScript:humperstilshen.popUpOpen('" . $url . "', 300, 200)"; return $data; } // no media $data['local'] = $extras[$target . '_' . $number]; if (isset ($data['local']['files'][$target])) { // url $data['local']['url_download'] = $document->urlFiles ($data['local']['files'][$target], true, '-downloads'); $data['local']['url_play'] = $document->urlFiles ($data['local']['files'][$target], true, '-play'); } // url return $data; } // function get } // class eclScope_video //!eof:engine/eclScope/eclScope_video.php; //!file:engine/eclStore/eclStore_control.php; class eclStore_control { // class eclStore_control public $name = 'unknown'; public $controls = array (); private $render; public $php = ''; public function __construct () { // function __construct $this->render = new eclEngine_render (); } // function __construct public function read ($controlName) { // function read global $aliases, $components, $io, $store; if (isset ($this->controls[$controlName])) return $this->controls[$controlName]; $folders = explode ('/', $controlName); $count = count ($folders); switch ($count) { // switch number of folders case 1: $parts = explode ('_', $controlName, 3); if (count ($parts) < 2) return array(); $name = array_pop ($parts); if (isset ($aliases[$parts[0]]) and isset ($components[$aliases[$parts[0]]])) $file = PATH_COMPONENTS . $aliases[$parts[0]] . '/' . $components[$aliases[$parts[0]]] . '/' . implode ('/', $parts) . '/_controls/' . $name . '.ecl.php'; else $file = PATH_LIBRARY . implode ('/', $parts) . '/_controls/' . $name . '.ecl.php'; $path = implode ('_', $parts); $prefix = $path . '_'; $mode = 'c'; break; default: $file = PATH_TEMPLATES . $controlName . '.ecl.php'; $name = array_pop ($folders); $path = implode ('/', $folders); $prefix = $path . '/'; $mode = 't'; } // switch number of folders if (SYSTEM_PACKED_SHARED_FIRST) { // packed first $control = $io->cachedControls->read ($mode, $path, $name); if (!$control) $control = $io->file->read ($file); } // packed first else { // external first $control = $io->file->read ($file); if (!$control) $control = $io->cachedControls->read ($mode, $path, $name); } // external first if (isset ($control['children'])) { // children exists foreach ($control['children'] as &$child) { // each child if ($child[0] == '~') $child = $prefix . substr ($child, 1); } // each child } // children exists if (isset ($control['flags'])) { // flags exists foreach ($control['flags'] as &$value) { // each flag if (is_string ($value) and strlen ($value) and $value[0] == '~') $value = $prefix . substr ($value, 1); } // each flags } // flags exists if (isset ($control['flags']['caption'])) { // set caption if (!isset ($control['text'])) $control['text'] = array (); $caption = $this->read ($control['flags']['caption']); if (isset ($caption['text'])) $control['text'] = array_replace ($caption['text'], $control['text']); } // set caption if (isset ($control['html'])) $control['parsed'] = $this->render->render_tags ($control['html'], true); $this->controls[$controlName] = $control; return $control; } // function read public function scandir ($mode, $dir) { // function scandir global $dataMap, $io; if (SYSTEM_IS_PACKED) { // system packed if (isset ($dataMap[$mode][$dir])) { // dir found $names = array (); foreach ($dataMap[$mode][$dir] as $name => $value) { // each name $names[] = $name; } // each name return $names; } // dir found // search subfolders $dir .= '/'; $length = strlen ($dir); $names = array (); foreach ($dataMap[$mode] as $name => $value) { // each dir if (strlen ($name) <= $length) continue; if (substr ($name, 0, $length) == $dir) $names[] = substr ($name, $length); } // each dir return $names; } // system packed if ($mode == 'c') { // control mode if (!is_dir (PATH_LIBRARY . $dir . '/_controls')) return array (); $names = array (); foreach (scandir (PATH_LIBRARY . $dir . '/_controls') as $name) { // each name if ($name[0] == '.') continue; if (substr ($name, - 8) == '.ecl.php') $names[] = substr ($name, 0, - 8); } // each name return $names; } // control mode if ($mode == 's') { // shared mode if (!is_dir (PATH_SHARED . $dir)) return array (); $names = array (); foreach (scandir (PATH_SHARED . $dir) as $name) { // each name if ($name[0] == '.') continue; $names[] = $name; } // each name return $names; } // shared mode if ($mode == 't') { // template mode if (!is_dir (PATH_TEMPLATES . $dir)) return array (); $names = array (); foreach (scandir (PATH_TEMPLATES . $dir) as $name) { // each name if ($name[0] == '.') continue; if (substr ($name, - 8) == '.ecl.php') $name = substr ($name, 0, - 8); $names[] = $name; } // each name return $names; } // templates mode return array (); } // function scandir public function close () { // function close } // function close public function renderToPhp ($array) { // function renderToPhp $length = count ($array); if (!$length) return; $index = 0; goto LEVEL_NEXT_INSTRUCTION_1; LEVEL_NEXT_INSTRUCTION: $index++; if ($index == $length) return; LEVEL_NEXT_INSTRUCTION_1: $current = $array[$index]; if (!isset ($current[1])) goto LEVEL_NEXT_INSTRUCTION; if ($current[0] == 0) { // buffer $this->php .= '$buffer .= ' . "'" . str_replace ("'", CHR_BSLASH . "'", $current[1]) . "';" . CRLF; goto LEVEL_NEXT_INSTRUCTION; } // buffer if (isset ($current[2]) and $current[2]) $arguments = $this->renderArgumentsToPhp ($current[2]); else $arguments = array (); switch ($current[1]) { // switch function name case 'if': $this->php .= 'if (' . $arguments[0] . '){' . CRLF; if (isset ($current[3]) and $current[3]) $this->renderToPhp ($current[3]); $this->php .= '}' . CRLF; while ($index + 1 != $length and isset ($array[$index + 1][1]) and $array[$index + 1][1] == 'elseif') { // loop elseif $current = $array[$index + 1]; if (isset ($current[2]) and isset ($current[3]) and $current[3]) { // conditions and block exists $arguments = $this->renderArgumentsToPhp ($current[2]); $this->php .= 'elseif (' . $arguments[0] . '){' . CRLF; $this->renderToPhp ($current[3]); $this->php .= '}' . CRLF; } // conditions and block exists $index++; } // loop elseif if ($index + 1 != $length and isset ($array[$index + 1][1]) and $array[$index + 1][1] == 'else') { // else $current = $array[$index + 1]; if (isset ($current[3]) and $current[3]) { // block exists $this->php .= 'else {' . CRLF; $this->renderToPhp ($current[3]); $this->php .= '}' . CRLF; } // block exists $index++; } // else goto LEVEL_NEXT_INSTRUCTION; case 'loop': $this->php .= 'do {' . CRLF; if (isset ($current[3]) and $current[3]) $this->renderToPhp ($current[3]); $this->php .= '} while (eclTag_loop::render ($render));' . CRLF; goto LEVEL_NEXT_INSTRUCTION; case '': $this->php .= '$buffer .= ' . implode (' . ', $arguments) . ';' . CRLF; goto LEVEL_NEXT_INSTRUCTION; default: $class = 'eclTag_' . $current[1]; if (!preg_match ('/^[a-z][a-zA-Z0-9_]*$/', $class)) goto LEVEL_NEXT_INSTRUCTION; if (isset ($current[3]) and $current[3]) { // not empty $this->php .= '$local = ' . $class . '::render ($render, array(' . implode (', ', $arguments) . '));' . CRLF; $this->php .= '$render->levelUp ($local);' . CRLF; $this->renderToPhp ($current[3]); $this->php .= '$render->levelDown ();' . CRLF; goto LEVEL_NEXT_INSTRUCTION; } // not empty switch ($current[1]) { // switch return value tags functions case 'nl': $this->php .= '$buffer .= CRLF;' . CRLF; break; case 'details': case 'field': case 'help': case 'interactive': case 'lang': case 'list': case 'modlist': case 'personalite': case 'scope': $this->php .= '$local = ' . $class . '::render ($render, array (' . implode (', ', $arguments) . '));' . CRLF; $this->php .= 'if (isset ($local["parsed"])) { // parsed content $render->levelUp ($local); $render->render_tags_level ($local["parsed"]); $render->levelDown (); } // parsed content elseif (isset ($local["html"])) { // render html $render->levelUp ($local); $render->render_tags ($local["html"]); $render->levelDown (); } // render html '; break; case 'box': case 'img': case 'mod': case 'table': $this->php .= '$local = ' . $class . '::render ($render, array (' . implode (', ', $arguments) . ')); if ($local){ $render->levelUp ($local); if (isset ($local["parsed"])) $render->render_tags_level ($local["parsed"]); elseif (isset ($local["html"])) $render->render_tags ($local["html"]); else eclRender_renderBorders_none::render ($render); $render->levelDown (); } '; break; default: $this->php .= $class . '::render ($render, array (' . implode (', ', $arguments) . '));' . CRLF; } // switch return tag functions goto LEVEL_NEXT_INSTRUCTION; } // switch function name goto LEVEL_NEXT_INSTRUCTION; } // function renderToPhp private function renderArgumentsToPhp ($array) { // function renderArgumentsToPhp $arguments = array (); foreach ($array as $current) { // each argument switch ($current[0]) { // switch argument type case 0: $arguments[] = "'" . str_replace ("'", CHR_BSLASH . "'", $current[1]) . "'"; break; case 3: $arguments[] = strval ($current[1]); break; case 1: if (isset ($current[2]) and $current[2]) $sub = $this->renderArgumentsToPhp ($current[2]); else $sub = array (); if ($current[1] == '') { // anonimous function if (isset ($sub[0])) $arguments[] = $sub[0]; } // anonimous function else { // sub function $func = 'eclTag_' . $current[1]; $arguments[] = $func . '::render ($render, array (' . implode (', ', $sub) . '));' . CRLF; } // sub function break; case 2: $arguments[] = '$render->getVar (' . "'" . $current[1] . "'" . ')'; break; case 4: if (!isset ($current[2]) or !$current[2]) break; $sub = $this->renderArgumentsToPhp ($current[2]); if (count ($sub) < 2) break; switch ($current[1]) { // switch operator case 'and': $arguments[] = '(' . $sub[0] . ' and ' . $sub[1] . ')'; break; case 'or': $arguments[] = 'eclTag_or::render ($render, array (' . $sub[0] . ', ' . $sub[1] . '))'; break; } // switch operator break; case 5: if (!isset ($current[2]) or !$current[2]) break; $sub = $this->renderArgumentsToPhp ($current[2]); if (!count ($sub)) break; switch ($current[1]) { // switch operator case '!': $arguments[] = '!' . $sub[0]; } // switch operator break; } // switch argument type } // each argument return $arguments; } // function renderArgumentsToPhp } // class eclStore_control //!eof:engine/eclStore/eclStore_control.php; //!file:engine/eclStore/eclStore_domain.php; class eclStore_domain { // class eclStore_domain public $name = 'domain'; // Describe fields structure public $fields = array ( // Indexing 'id' => 'primary_key', // Class identifiers 'name' => 'name', 'aliase' => 'name', 'status' => 'tinyint' ); public $insertedData = array (); private $rows = array (); private $originalRows = array (); private $indexByName = array (); private $database = false; public function __construct () { // function __construct global $io; if ($io->database->tableEnabled ($this)) $this->database = $io->database; } // function __construct public function insert ($data) { // function insert if ($this->database) { // insert into database $id = $this->database->insert ($this, $data); $data['id'] = $id; $this->rows[$id] = $data; $this->originalRows[$id] = $data; $this->indexByName[$data['name']] = $id; return $id; } // insert into database return $data['name']; } // function insert public function &open ($name) { // function & global $io; if (isset ($this->indexByName[$name])) { // row found $id = $this->indexByName[$name]; $return = &$this->rows[$id]; return $return; } // row found if ($this->database) { // open from database $rows = $this->database->select ($this, array ('name' => $name)); if ($rows) { // row found $data = $rows[0]; $id = $data['id']; $this->rows[$id] = $data; $this->originalRows[$id] = $data; $this->indexByName[$name] = $id; $return = &$this->rows[$id]; return $return; } // row found } // open from database $file = FOLDER_DOMAINS . $name . '/.domain.db'; if (is_file ($file)) { // file found $row = array ( 'id' => $name, 'status' => 2 ); $this->rows[$name] = &$row; $this->indexByName[$name] = $name; return $row; } // file found $row = array (); return $row; } // function & public function &openById ($id) { // function & if (!isset ($this->rows[$id])) { // open if (is_int ($id) and $this->database) { // open from database $rows = $this->database->select ($this, array ('id' => $id)); if ($rows) { // row found $data = $rows[0]; $this->rows[$id] = $data; $this->originalRows[$id] = $data; $this->indexByName[$data['name']] = $id; $return = &$this->rows[$id]; return $return; } // row found } // open from database $this->rows[$id] = array (); $this->indexByName[$id] = $id; } // open $return = &$this->rows[$id]; return $return; } // function & public function getId ($name) { // function getId if (!isset ($this->indexByName[$name])) $this->open ($name); if (isset ($this->indexByName[$name])) return $this->indexByName[$name]; else return false; } // function getId public function getName ($id) { // function getName if (!isset ($this->rows[$id])) $this->openById ($id); if (isset ($this->rows[$id]['name'])) return $this->rows[$id]['name']; return ''; } // function getName public function getStatus ($name) { // function getStatus if (!isset ($this->indexByName[$name])) $this->open ($name); if (!isset ($this->indexByName[$name])) return 0; $id = $this->indexByName[$name]; $row = &$this->rows[$id]; return $row['status']; } // function getStatus public function childrenNames () { // function childrenNames $names = array (); foreach (scandir (FOLDER_DOMAINS) as $dirName) { // each directory if ($dirName[0] != '.') $names[] = $dirName; } // each directory return $names; } // function childrenNames public function delete ($id) { // function delete if (isset ($this->originalRows[$id])) { // domain in database $this->database->delete ($this, array ('id' => $id)); $this->rows[$id] = array (); unset ($this->originalRows[$id]); } // domain in database } // function delete public function close () { // function close foreach ($this->originalRows as $id => $originalRow) { // each row if ($this->rows[$id] != $originalRow) $this->database->update ($this, $this->rows[$id], $originalRow); } // each row } // function close } // class eclStore_domain //!eof:engine/eclStore/eclStore_domain.php; //!file:engine/eclStore/eclStore_domainContent.php; class eclStore_domainContent { // class eclStore_domainContent public $name = 'domain_content'; public $fields = array ( // Indexing 'domain_id' => 'mediumint', 'mode' => 'tinyint', 'parent_id' => 'mediumint', 'master_id' => 'mediumint', 'id' => 'primary_key', // Class identifiers 'name' => 'name', 'marker' => 'tinyint', 'status' => 'tinyint', 'access' => 'tinyint', 'subscription_id' => 'mediumint', 'owner_id' => 'mediumint', 'place_id' => 'mediumint', // Dates 'created' => 'time', 'updated' => 'time', 'event_start' => 'time', 'event_end' => 'time', 'coments_last_update' => 'time', // More sort options 'index' => 'mediumint', 'hits' => 'int', 'value' => 'mediumint', 'spotlight' => 'tinyint', // Contents 'text' => 'array', 'local' => 'array', 'flags' => 'array', 'extras' => 'array', 'links' => 'array', 'keywords' => 'keywords' ); // Index public $index = array ( 'domain_find_children' => array ('domain_id', 'mode', 'parent_id'), 'domain_find_name' => array ('domain_id', 'name'), 'domain_find_owner' => array ('owner_id', 'mode') ); private $indexByName = array (); public $indexByParent = array (); public $chargedParents = array (); public $chargedMode = array (); private $rows = array (); private $originalRows = array (); private $deletedRows = array (); private $notFound = array (); private $database = false; private $openedDatabases = array (); public $lastInsertedData = array (); public function __construct () { // function __construct global $io; if ($io->database->tableEnabled ($this)) $this->database = $io->database; } // function __construct public function getDatabase ($domainName) { // function getDatabase global $io; if (!isset ($this->openedDatabases[$domainName])) { // open database $this->openedDatabases[$domainName] = $io->sqlite->connect (FOLDER_DOMAINS . $domainName . '/.domain.db'); } // open database if ($this->openedDatabases[$domainName]->tableEnabled ($this)) return $this->openedDatabases[$domainName]; return false; } // function getDatabase public function indexFoundRows ($rows, $domainName=0) { // function indexFoundRows $found = array (); foreach ($rows as $data) { // each row if ($data['name'][0] == ':') continue; if (!$data['domain_id']) $data['domain_id'] = $domainName; $domainId = $data['domain_id']; $id = $data['id']; if (!isset ($this->deletedRows[$domainId][$id])) { // row not deleted if (!isset ($this->rows[$domainId][$id])) { // row not indexed $this->rows[$domainId][$id] = $data; $this->originalRows[$domainId][$id] = $data; $this->indexByName[$domainId][$data['name']] = $id; $this->indexByParent[$domainId][$data['mode']][$data['parent_id']][$id] = $id; $found[] = $data; } // row not indexed else $found[] = $this->rows[$domainId][$id]; } // row not deleted } // each row return $found; } // function indexFoundRows public function insert ($domainId, &$data) { // function insert global $io; if (is_int ($domainId) and $this->database) $database = $this->database; elseif (is_string ($domainId) and $database = $this->getDatabase ($domainId)) null; else return 0; $data['domain_id'] = $domainId; if (!isset ($data['parent_id'])) $data['parent_id'] = 0; $data['index'] = count ($this->children ($domainId, $data['mode'], $data['parent_id'])); if (!isset ($data['name']) or !strlen ($data['name'])) $data['name'] = 't' . strval (TIME); $where = array ('domain_id' => $domainId, 'name' => $data['name']); if ($database->select ($this, $where, ' LIMIT 1', array ('id'))) { // prevent duplicated name $test = 0; do { // loop names $test++; $name = $data['name'] . '-' . str_pad (strval ($test), 3, '0', STR_PAD_LEFT); $where = array ('domain_id' => $domainId, 'name' => $name); } // loop names while ($database->select ($this, $where, ' LIMIT 1', array ('id'))); $data['name'] = $name; } // prevent duplicated names $id = $database->insert ($this, $data); $data['id'] = $id; $this->rows[$domainId][$id] = $data; $this->originalRows[$domainId][$id] = $data; $this->indexByName[$domainId][$data['name']] = $id; $this->indexByParent[$domainId][$data['mode']][$data['parent_id']][$id] = $id; $this->lastInsertedData = $data; return $id; } // function insert public function &open ($domainId, $name, $access=4) { // function & if (!isset ($this->indexByName[$domainId][$name])) { // open if (isset ($this->notFound[$domainId][$name])) { // registered not found $found = array (); return $found; } // registered not found if (is_int ($domainId) and $this->database) $this->indexFoundRows ($this->database->select ($this, array ('domain_id' => $domainId, 'name' => $name), ' LIMIT 1')); elseif (is_string ($domainId) and $database = $this->getDatabase ($domainId)) $this->indexFoundRows ($database->select ($this, array ('name' => $name), ' LIMIT 1'), $domainId); } // open $found = array (); if (isset ($this->indexByName[$domainId][$name])) { // row found $id = $this->indexByName[$domainId][$name]; $found = &$this->rows[$domainId][$id]; if ($found['access'] <= $access) return $found; } // row found else $this->notFound[$domainId][$name] = true; $empty = array (); return $empty; } // function & public function &openById ($domainId, $id, $access=4) { // function & if (!isset ($this->rows[$domainId][$id])) { // open if (is_int ($domainId) and $this->database) $this->indexFoundRows ($this->database->select ($this, array ('domain_id' => $domainId, 'id' => $id))); elseif (is_string ($domainId) and $database = $this->getDatabase ($domainId)) $this->indexFoundRows ($database->select ($this, array ('id' => $id)), $domainId); } // open $found = array (); if (isset ($this->rows[$domainId][$id])) { // found $found = &$this->rows[$domainId][$id]; if ($found['access'] <= $access) return $found; } // found $empty = array (); return $empty; } // function & public function &openChild ($domainId, $mode, $parentId, $name, $access=4) { // function & if (!isset ($this->chargedParents[$domainId][$mode][$parentId])) { // open if (is_int ($domainId) and $this->database) { // parents from database $this->chargedParents[$domainId][$mode][$parentId] = true; $this->indexFoundRows ($this->database->select ($this, array ( 'domain_id' => $domainId, 'mode' => $mode, 'parent_id' => $parentId ))); } // parents from database elseif (is_string ($domainId) and $database = $this->getDatabase ($domainId)) { // parents from file $this->indexFoundRows ($database->select ($this, array ( 'mode' => $mode, 'parent_id' => $parentId )), $domainId); } // parents from file } // open if (isset ($this->indexByParent[$domainId][$mode][$parentId])) { // children exists foreach ($this->indexByParent[$domainId][$mode][$parentId] as $id) { // each child if ($this->rows[$domainId][$id]['name'] == $name) { // found $found = &$this->rows[$domainId][$id]; if ($found['access'] <= $access) return $found; $empty = array (); return $empty; } // found } // each child } // children exists $found = array (); return $found; } // function & public function children ($domainId, $mode, $parentId, $access=4, $max=0, $offset=0, $sort='index', $direction='asc') { // function children if (!isset ($this->chargedParents[$domainId][$mode][$parentId])) { // open if (isset ($this->chargedMode[$domainId][$mode])) return array (); if (is_int ($domainId) and $this->database) { // parents from database $this->chargedParents[$domainId][$mode][$parentId] = true; $this->indexFoundRows ($this->database->select ($this, array ( 'domain_id' => $domainId, 'mode' => $mode, 'parent_id' => $parentId ))); } // parents from database elseif (is_string ($domainId) and $database = $this->getDatabase ($domainId)) { // parents from file $this->chargedParents[$domainId][$mode][$parentId] = true; $this->indexFoundRows ($database->select ($this, array ( 'mode' => $mode, 'parent_id' => $parentId )), $domainId); } // parents from database } // open if (isset ($this->indexByParent[$domainId][$mode][$parentId])) { // children exists $sorted = array (); $rows = $this->rows[$domainId]; foreach ($this->indexByParent[$domainId][$mode][$parentId] as $id) { // each child if ($rows[$id]['access'] <= $access) $sorted[$rows[$id][$sort]][] = $rows[$id]; } // each child if ($direction == 'desc') krsort ($sorted); else ksort ($sorted); if ($max == 0) $max = count ($this->indexByParent[$domainId][$mode][$parentId]); else $max += $offset; $list = array (); $i = - 1; foreach ($sorted as $doubled) { // each doubled foreach ($doubled as $item) { // each item $i++; if ($i >= $offset and $i < $max) $list[] = $item; elseif ($i > $max) break 2; } // each item } // each doubled return $list; } // children exists return array (); } // function children public function childrenNames ($domainId, $mode, $parentId, $access=4, $max=0, $offset=0, $sort='index', $direction='asc') { // function childrenNames $children = $this->children ($domainId, $mode, $parentId, $access, $max, $offset, $sort, $direction); $names = array (); foreach ($children as $child) { // each child $names[] = $child['name']; } // each child return $names; } // function childrenNames public function mode ($domainId, $mode) { // function mode if (!isset ($this->chargedMode[$domainId][$mode])) { // open if (is_int ($domainId) and is_object ($this->database)) { // mode from database $this->chargedMode[$domainId][$mode] = $this->indexFoundRows ($this->database->select ($this, array ( 'domain_id' => $domainId, 'mode' => $mode ))); } // mode from database elseif (is_string ($domainId) and $database = $this->getDatabase ($domainId)) { // mode from file $this->chargedMode[$domainId][$mode] = $this->indexFoundRows ($database->select ($this, array ( 'mode' => $mode )), $domainId); } // mode from file else $this->chargedMode[$domainId][$mode] = array (); // index chargedParents if (!isset ($this->chargedParents[$domainId])) $this->chargedParents[$domainId] = array (); if (!isset ($this->chargedParents[$domainId][$mode])) $this->chargedParents[$domainId][$mode] = array (); foreach ($this->chargedMode[$domainId][$mode] as $row) { // each row if (!$row or !isset ($row['id']) or !isset ($row['parent_id'])) continue; if (!isset ($this->chargedParents[$domainId][$mode][$row['parent_id']]) or !is_array ($this->chargedParents[$domainId][$mode][$row['parent_id']])) $this->chargedParents[$domainId][$mode][$row['parent_id']] = array (); $this->chargedParents[$domainId][$mode][$row['parent_id']][$row['id']] = true; $this->indexByParent[$domainId][$mode][$row['parent_id']][$row['id']] = $row['id']; } // each row } // open return $this->chargedMode[$domainId][$mode]; } // function mode public function findMarker ($domainId, $marker, $mode=MODE_SECTION) { // function findMarker static $markers = array (); if (!isset ($markers[$domainId][$mode])) { // charge mode if (!isset ($markers[$domainId])) $markers[$domainId] = array (); if (!isset ($markers[$domainId][$mode])) $markers[$domainId][$mode] = array (); foreach ($this->mode ($domainId, $mode) as $data) { // each row if ($data['access'] > 30) continue; if (!isset ($markers[$domainId][$mode][$data['marker']])) $markers[$domainId][$mode][$data['marker']] = $data['id']; } // each row } // charge mode if (isset ($markers[$domainId][$mode][$marker])) return $markers[$domainId][$mode][$marker]; return false; } // function findMarker public function search ($where, $access=4, $max=0, $offset=0, $sort='created', $direction='desc') { // function search if ( (!isset ($where['domain_id']) or is_int ($where['domain_id'])) and is_object ($this->database)) { // search on database $rows = $this->indexFoundRows ($this->database->select ($this, $where)); } // search on database elseif (isset ($where['domain_id']) and is_string ($where['domain_id']) and $database = $this->getDatabase ($where['domain_id'])) { // search on file unset ($where['domain_id']); $rows = $this->indexFoundRows ($database->select ($this, $where), $where['domain_id']); } // search on file else $rows = array (); if ($rows) { // children exists $sorted = array (); foreach ($rows as $row) { // each child if ($row['access'] <= $access) $sorted[$row[$sort]][] = $row; } // each child if ($direction == 'desc') krsort ($sorted); else ksort ($sorted); if ($max == 0) $max = count ($rows); else $max += $offset; $list = array (); $i = - 1; foreach ($sorted as $doubled) { // each doubled foreach ($doubled as $item) { // each item $i++; if ($i >= $offset and $i < $max) $list[] = $item; elseif ($i > $max) break 2; } // each item } // each doubled return $list; } // children exists return array (); } // function search public function childrenReindex ($domainId, $mode, $parentId) { // function childrenReindex foreach ($this->children ($domainId, $mode, $parentId) as $index => $child) { // each child $this->rows[$domainId][$child['id']]['index'] = $index; } // each child } // function childrenReindex public function pathway ($domainId, $name) { // function pathway global $store; $pathway = array (); if (is_int ($name)) $data = $this->openById ($domainId, $name); else $data = $this->open ($domainId, $name); if (!$data) return false; $id = $data['id']; do { // loop levels if (isset ($this->rows[$domainId][$id])) $data = $this->rows[$domainId][$id]; else $data = $this->openById ($domainId, $id); if (!$data) return false; if ($data['parent_id'] != 0 or $data['mode'] != MODE_SECTION or !isset ($data['flags']['section_type']) or $data['flags']['section_type'] != 'menu') array_unshift ($pathway, $data['name']); $id = $data['parent_id']; if ($id == 1) $id = 0; if (!$id and $data['mode'] != MODE_SECTION and $data['marker']) { // find special section $id = $this->findMarker ($domainId, $data['marker']); if (!$id) return false; } // find special section } // loop levels while ($id); array_unshift ($pathway, $store->domain->getName ($domainId)); return $pathway; } // function pathway public function delete ($domainId, $id) { // function delete if (defined ('TRACKING_REMOVED_PAGES') and TRACKING_REMOVED_PAGES) { // do not remove page $data = &$this->openById ($domainId, $id); $data['access'] = 255; if (strlen ($data['name']) == 32) $data['name'] = substr ($data['name'], - 2); $data['name'] = ':' . $data['name']; return; } // do not remove page if (isset ($this->rows[$domainId][$id])) { // remove from index $data = $this->rows[$domainId][$id]; $this->deletedRows[$domainId][$id] = $id; $this->rows[$domainId][$id] = array (); unset ($this->originalRows[$domainId][$id]); unset ($this->indexByParent[$domainId][$data['mode']][$data['parent_id']][$id]); unset ($this->indexByName[$domainId][$data['name']][$id]); } // remove from index if (is_int ($domainId) and $this->database) { // delete from database $this->database->delete ($this, array ('id' => $id)); } // delete from database elseif (is_string ($domainId) and $database = $this->getDatabase ($domainId)) { // delete from file $database->delete ($this, array ('id' => $id)); } // delete from file } // function delete public function export ($domainId, $fileName) { // function export $where = array ('domain_id' => $domainId); $select = array ('id', 'name'); $rows = $this->database->select ($this, $where, '', $select); $index = 0; $names = array (); foreach ($rows as $row) { // each row if ($row['name']) $names[$row['id']] = $row['name']; else { // create name $index++; $names[$row['id']] = '-untitled-' . $index; } // create name } // each row unset ($rows); $file = fopen ($fileName, 'w+b'); $header = true; $rows = $this->database->select ($this, $where); foreach ($rows as $row) { // each row $data = array (); foreach ($row as $key => $value) { // each field if (is_int ($key)) continue; switch ($key) { // switch key case 'id': case 'domain_id': break; case 'parent_id': case 'master_id': case 'owner_id': case 'place_id': if ($value === 0) $data[substr ($key, 0, - 3)] = '""'; else $data[substr ($key, 0, - 3)] = '"' . $names[$value] . '"'; break; default: if (is_int ($value)) $data[$key] = strval ($value); elseif (is_string ($value)) $data[$key] = '"' . $value . '"'; elseif (is_array ($value) and $value) $data[$key] = '"' . $this->database->stringToDatabase (serialize ($value)) . '"'; else $data[$key] = '""'; } // switch key } // each field if ($header) { // create header $buffer = implode ("\t", array_keys ($data)) . CRLF; fwrite ($file, $buffer); } // create header $buffer = implode ("\t", $data) . CRLF; fwrite ($file, $buffer); $header = false; } // each row fclose ($file); } // function export public function import ($domainId, $fileName) { // function import $string = file_get_contents ($fileName); $rows = array (); $names = array (); $header = true; foreach (explode (CRLF, $string) as $line) { // each row if ($header) { // header $headers = explode ("\t", $line); $header = false; continue; } // header foreach (explode ("\t", $line) as $index => $field) { // each field $key = $headers[$index]; switch ($key) { // switch column name case 'parent': case 'master': case 'owner': case 'place': break; } // switch column name } // each field } // each row } // function import public function specialSelect ($domainId, $where, $limit='', $returnRows=false) { // function specialSelect if ( (!isset ($where['domain_id']) or is_int ($where['domain_id'])) and is_object ($this->database)) return $this->database->select ($this, $where, $limit, $returnRows); if (isset ($where['domain_id']) and is_string ($where['domain_id']) and $database = $this->getDatabase ($where['domain_id'])) { // search on file unset ($where['domain_id']); return $database->select ($this, $where, $limit, $returnRows); } // search on file return array (); } // function specialSelect public function getUserSubscription ($document) { // function getUserSubscription if (!$document->domain->domainId) return false; if (!$document->user->userId) return false; $where = array ( 'domain_id' => $document->domain->domainId, 'mode' => MODE_SUBSCRIPTION, 'owner_id' => $document->user->userId ); $rows = $this->search ($where); if (!$rows) return false; return $document->domain->child ('-subscriptions')->child ($rows[0]['name']); } // function getUserSubscription public function close () { // function close foreach ($this->originalRows as $domainId => $domainRows) { // each domain foreach ($domainRows as $id => $originalRow) { // each row if ($this->rows[$domainId][$id] != $originalRow) { // data changed if (is_int ($domainId)) $this->database->update ($this, $this->rows[$domainId][$id], $originalRow); elseif (is_string ($domainId) and $database = $this->getDatabase ($domainId)) $database->update ($this, $this->rows[$domainId][$id], $originalRow); } // data changed } // each row } // each domain $this->indexByName = array (); $this->indexByParent = array (); $this->chargedParents = array (); $this->rows = array (); $this->originalRows = array (); $this->deletedRows = array (); $this->notFound = array (); } // function close } // class eclStore_domainContent //!eof:engine/eclStore/eclStore_domainContent.php; //!file:engine/eclStore/eclStore_domainExtras.php; class eclStore_domainExtras { // class eclStore_domainExtras public $name = 'domain_extras'; public $fields = array ( // Indexing 'domain_id' => 'mediumint', 'mode' => 'tinyint', 'parent_id' => 'mediumint', 'master_id' => 'mediumint', 'id' => 'primary_key', // Class identifiers 'name' => 'name', 'status' => 'mediumint', 'access' => 'tinyint', 'subscription_id' => 'mediumint', 'owner_id' => 'mediumint', // Dates 'created' => 'time', 'updated' => 'time', // Contents 'text' => 'array', 'local' => 'array', 'extras' => 'array', 'html' => 'binary' ); // Index public $index = array ( 'domain_find_extras' => array ('domain_id', 'mode', 'parent_id'), 'domain_find_extras_owner' => array ('owner_id', 'mode') ); public $indexByParent = array (); public $chargedParents = array (); public $chargedMode = array (); private $rows = array (); private $originalRows = array (); private $deletedRows = array (); private $notFound = array (); private $database = false; private $openedDatabases = array (); public $lastInsertedData = array (); public function __construct () { // function __construct global $io; if ($io->database->tableEnabled ($this)) $this->database = $io->database; } // function __construct public function getDatabase ($domainName) { // function getDatabase global $io; if (!isset ($this->openedDatabases[$domainName])) { // open database $this->openedDatabases[$domainName] = $io->sqlite->connect (FOLDER_DOMAINS . $domainName . '/.domain.db'); } // open database if ($this->openedDatabases[$domainName]->tableEnabled ($this)) return $this->openedDatabases[$domainName]; return false; } // function getDatabase public function indexFoundRows ($rows, $domainName=0) { // function indexFoundRows $found = array (); foreach ($rows as $data) { // each row if ($data['access'] == 255) continue; if (!$data['domain_id']) $data['domain_id'] = $domainName; $domainId = $data['domain_id']; $id = $data['id']; if (!isset ($this->deletedRows[$domainId][$id])) { // row not deleted if (!isset ($this->rows[$domainId][$id])) { // row not indexed $this->rows[$domainId][$id] = $data; $this->originalRows[$domainId][$id] = $data; $this->indexByParent[$domainId][$data['mode']][$data['parent_id']][$id] = $id; $found[] = $data; } // row not indexed else $found[] = $this->rows[$domainId][$id]; } // row not deleted } // each row return $found; } // function indexFoundRows public function insert ($domainId, &$data) { // function insert global $io; if (is_int ($domainId) and $this->database) $database = $this->database; elseif (is_string ($domainId) and $database = $this->getDatabase ($domainId)) null; else return 0; $data['domain_id'] = $domainId; if (!isset ($data['parent_id'])) $data['parent_id'] = 0; $id = $database->insert ($this, $data); $data['id'] = $id; $this->rows[$domainId][$id] = $data; $this->originalRows[$domainId][$id] = $data; $this->indexByParent[$domainId][$data['mode']][$data['parent_id']][$id] = $id; $this->lastInsertedData = $data; return $id; } // function insert public function &openById ($domainId, $id, $access=4) { // function & if (!isset ($this->rows[$domainId][$id])) { // open if (is_int ($domainId) and $this->database) $this->indexFoundRows ($this->database->select ($this, array ('domain_id' => $domainId, 'id' => $id))); elseif (is_string ($domainId) and $database = $this->getDatabase ($domainId)) $this->indexFoundRows ($database->select ($this, array ('id' => $id)), $domainId); } // open $found = array (); if (isset ($this->rows[$domainId][$id])) { // found $found = &$this->rows[$domainId][$id]; if ($found['access'] <= $access) return $found; } // found $empty = array (); return $empty; } // function & public function children ($domainId, $mode, $parentId, $access=4) { // function children if (!isset ($this->chargedParents[$domainId][$mode][$parentId])) { // open if (isset ($this->chargedMode[$domainId][$mode])) return array (); if (is_int ($domainId) and $this->database) { // parents from database $this->chargedParents[$domainId][$mode][$parentId] = true; $this->indexFoundRows ($this->database->select ($this, array ( 'domain_id' => $domainId, 'mode' => $mode, 'parent_id' => $parentId ))); } // parents from database elseif (is_string ($domainId) and $database = $this->getDatabase ($domainId)) { // parents from file $this->chargedParents[$domainId][$mode][$parentId] = true; $this->indexFoundRows ($database->select ($this, array ( 'mode' => $mode, 'parent_id' => $parentId )), $domainId); } // parents from database } // open if (isset ($this->indexByParent[$domainId][$mode][$parentId])) { // return found rows $found = array (); foreach ($this->indexByParent[$domainId][$mode][$parentId] as $id) { // each row $found[] = $this->rows[$domainId][$id]; } // each row return $found; } // return found rows else return array (); } // function children public function &openChild ($domainId, $mode, $parentId, $name) { // function & $children = $this->children ($domainId, $mode, $parentId); foreach ($children as $data) { // each child if ($data['name'] != $name) continue; $found = &$this->openById ($domainId, $data['id']); return $found; } // each child $found = array (); return $found; } // function & public function mode ($domainId, $mode) { // function mode if (!isset ($this->chargedMode[$domainId][$mode])) { // open if (is_int ($domainId) and is_object ($this->database)) { // mode from database $this->chargedMode[$domainId][$mode] = $this->indexFoundRows ($this->database->select ($this, array ( 'domain_id' => $domainId, 'mode' => $mode ))); } // mode from database elseif (is_string ($domainId) and $database = $this->getDatabase ($domainId)) { // mode from file $this->chargedMode[$domainId][$mode] = $this->indexFoundRows ($database->select ($this, array ( 'mode' => $mode )), $domainId); } // mode from file else $this->chargedMode[$domainId][$mode] = array (); // index chargedParents if (!isset ($this->chargedParents[$domainId])) $this->chargedParents[$domainId] = array (); if (!isset ($this->chargedParents[$domainId][$mode])) $this->chargedParents[$domainId][$mode] = array (); foreach ($this->chargedMode[$domainId][$mode] as $row) { // each row if (!$row or !isset ($row['id']) or !isset ($row['parent_id'])) continue; if (!isset ($this->chargedParents[$domainId][$mode][$row['parent_id']]) or !is_array ($this->chargedParents[$domainId][$mode][$row['parent_id']])) $this->chargedParents[$domainId][$mode][$row['parent_id']] = array (); $this->chargedParents[$domainId][$mode][$row['parent_id']][$row['id']] = true; $this->indexByParent[$domainId][$mode][$row['parent_id']][$row['id']] = $row['id']; } // each row } // open return $this->chargedMode[$domainId][$mode]; } // function mode public function search ($where, $access=4) { // function search if ( (!isset ($where['domain_id']) or is_int ($where['domain_id'])) and is_object ($this->database)) { // search on database return $this->indexFoundRows ($this->database->select ($this, $where)); } // search on database elseif (isset ($where['domain_id']) and is_string ($where['domain_id']) and $database = $this->getDatabase ($where['domain_id'])) { // search on file unset ($where['domain_id']); return $this->indexFoundRows ($database->select ($this, $where), $where['domain_id']); } // search on file else return array (); } // function search public function createVersion ($domainId, &$from, $document) { // function createVersion $lang = $document->lang; $from['flags']['updated_' . $lang] = TIME; $data = array ( 'domain_id' => $domainId, 'mode' => MODE_VERSION, 'parent_id' => $from['id'], 'name' => $document->lang, 'owner_id' => $document->user->userId, 'created' => TIME, 'updated' => TIME, 'text' => array () ); foreach (array_keys ($from['text']) as $field) { // each field if (isset ($from['text'][$field][$lang])) $data['text'][$field] = array ($lang => $from['text'][$field][$lang]); } // each field if (isset ($from['extras'])) { // extras exists $data['extras'] = array (); foreach ($from['extras'] as $target => $extras) { // each extra list ($prefix) = explode ('_', $target); switch ($prefix) { // switch prefix case 'box': if (isset ($from['extras'][$target]['text'])) { // text exists foreach ($from['extras'][$target]['text'] as $field => $value) { // each field if (isset ($value[$lang])) $data['extras'][$target]['text'][$field][$lang] = $value[$lang]; } // each field } // text exists if (isset ($from['extras'][$target]['local'])) $data['extras'][$target]['local'] = $from['extras'][$target]['local']; } // switch prefix } // each extra } // extras exists $this->insert ($domainId, $data); } // function createVersion public function clearLanguage ($document) { // function clearLanguage global $store; $me = $document->application; if (!isset ($me->data['text']['caption']) or count ($me->data['text']['caption']) < 2) return; if ($document->actions ('version', 'clear') and isset ($document->actions['version'][2]) and strlen ($document->actions['version'][2]) == 2) { // language clear $lang = $document->actions['version'][2]; foreach (array_keys ($me->data['text']) as $field) { // each field unset ($me->data['text'][$field][$lang]); if (!$me->data['text'][$field]) unset ($me->data['text'][$field]); } // each field foreach (array_keys ($me->data['extras']) as $target) { // each target list ($prefix) = explode ('_', $target, 2); switch ($prefix) { // switch prefix case 'box': if (isset ($me->data['extras'][$field]['text'])) { // text exists foreach (array_keys ($me->data['extras'][$target]['text']) as $field) { // each field unset ($me->data['extras'][$target]['text'][$field][$lang]); if (!$me->data['extras'][$target]['text'][$field]) unset ($me->data['extras'][$target]['text'][$field]); } // each field if (!$me->data['extras'][$target]['text']) unset ($me->data['extras'][$target]); } // text exists } // switch prefix } // each target } // language clear if (count ($me->data['text']['caption']) > 1 and isset ($me->data['text']['caption'][$document->lang])) { // context clear language $langCaption = $store->control->read ('labels/lang/' . $document->lang); $document->mod->context->appendChild ('labels/action/remove_language') ->set ('lang_caption', $langCaption['text']['caption']) ->url (true, true, '_version-remove-' . $document->lang) ->confirm ('system_msg_clearLanguageConfirm'); } // context clear language } // function clearLanguage public function versioning ($document) { // function versioning $this->clearLanguage ($document); $me = $document->application; if (isset ($me->data['flags']['updated_' . $document->lang])) $updated = $me->data['flags']['updated_' . $document->lang]; else $updated = $me->data['updated']; $versions = $this->children ($me->domainId, MODE_VERSION, $me->id); if (!$versions) return; $undo = array (); $redo = array (); $current = false; foreach ($versions as $version) { // each version if ($version['name'] != $document->lang) continue; if ($version['created'] < $updated) $undo[] = $version; elseif ($version['created'] == $updated) $current = true; elseif ($version['created'] > $updated) $redo[] = $version; } // each version if ($document->actions ('version', 'undo') and $undo) { // undo $update = array_pop ($undo); if ($current) $redo = true; } // undo elseif ($document->actions ('version', 'redo') and $redo) { // redo $update = array_shift ($redo); if ($current) $undo = true; } // redo if (isset ($update)) { // update $lang = $document->lang; $data = &$me->data; $data['updated'] = $update['created']; $data['flags']['updated_' . $lang] = $update['created']; $fields = array_keys (array_replace ($data['text'], $update['text'])); foreach ($fields as $field) { // update each field if (!isset ($data['text'][$field])) $data['text'][$field] = $update['text'][$field]; elseif (isset ($update['text'][$field][$lang])) $data['text'][$field][$lang] = $update['text'][$field][$lang]; else { // clear unset ($data['text'][$field][$lang]); if (!$data['text'][$field]) unset ($data['text'][$field]); } // clear } // update each field if (isset ($data['extras']) and $data['extras']) { // filter extras $modules = array_keys (array_replace ($data['extras'], $update['extras'])); foreach ($modules as $target) { // each target list ($prefix) = explode ('_', $target); switch ($prefix) { // switch prefix case 'box': if (!isset ($data['extras'][$target])) { // recreate $data['extras'][$target] = $update['extras'][$target]; break; } // recreate $fields = array_keys (array_replace ($data['extras'][$target]['text'], $update['extras'][$field]['text'])); foreach ($fields as $field) { // each field if (isset ($update['extras'][$target]['text'][$field][$lang])) $data['extras'][$target]['text'][$field][$lang] = $update['extras'][$target]['text'][$field][$lang]; else { // clear language unset ($update['extras'][$target]['text'][$field][$lang]); if (!$data['extras'][$target]['text'][$field]) unset ($data['extras'][$target]['text'][$field]); } // clear language } // each field if (!$data['extras'][$target]['text']) unset ($data['extras'][$target]); } // switch prefix } // each target } // filter extras $document->dataReplace ($me->data); } // update if ($undo) $document->mod->context->appendChild ('labels/action/undo') ->url (true, true, '_version-undo'); if ($redo) $document->mod->context->appendChild ('labels/action/redo') ->url (true, true, '_version-redo'); } // function versioning public function delete ($domainId, $id) { // function delete if (defined ('TRACKING_REMOVED_PAGES') and TRACKING_REMOVED_PAGES) { // do not remove page $data = &$this->openById ($domainId, $id); $data['access'] = 255; return; } // do not remove page if (isset ($this->rows[$domainId][$id])) { // remove from index $data = $this->rows[$domainId][$id]; $this->deletedRows[$domainId][$id] = $id; $this->rows[$domainId][$id] = array (); unset ($this->originalRows[$domainId][$id]); unset ($this->indexByParent[$domainId][$data['mode']][$data['parent_id']][$id]); } // remove from index if (is_int ($domainId) and $this->database) { // delete from database $this->database->delete ($this, array ('id' => $id)); } // delete from database elseif (is_string ($domainId) and $database = $this->getDatabase ($domainId)) { // delete from file $database->delete ($this, array ('id' => $id)); } // delete from file } // function delete public function deleteAllChildren ($domainId, $parentId) { // function deleteAllChildren $where = array ( 'domain_id' => $domainId, 'parent_id' => $parentId ); foreach ($this->search ($where) as $data) { // each row $this->delete ($domainId, $data['id']); } // each row } // function deleteAllChildren public function close () { // function close foreach ($this->originalRows as $domainId => $domainRows) { // each domain foreach ($domainRows as $id => $originalRow) { // each row if ($this->rows[$domainId][$id] != $originalRow) { // data changed if (is_int ($domainId)) $this->database->update ($this, $this->rows[$domainId][$id], $originalRow); elseif (is_string ($domainId) and $database = $this->getDatabase ($domainId)) $database->update ($this, $this->rows[$domainId][$id], $originalRow); } // data changed } // each row } // each domain $this->indexByParent = array (); $this->chargedParents = array (); $this->rows = array (); $this->originalRows = array (); $this->deletedRows = array (); $this->notFound = array (); } // function close } // class eclStore_domainExtras //!eof:engine/eclStore/eclStore_domainExtras.php; //!file:engine/eclStore/eclStore_domainFile.php; class eclStore_domainFile { // class eclStore_domainFile public function unlink ($domainId, $name) { // function unlink global $store; $domainName = $store->domain->getName ($domainId); if (!is_string ($name) or !strlen ($name)) return; if (is_file (FOLDER_DOMAINS . $domainName . '/' . $name)) unlink (FOLDER_DOMAINS . $domainName . '/' . $name); } // function unlink public function scanPrefixedFiles ($domainId, $prefix) { // function scanPrefixedFiles global $store; $domainName = $store->domain->getName ($domainId); $prefix .= CHR_FNS; $prefixLength = strlen ($prefix); $names = array (); $dir = scandir (FOLDER_DOMAINS . $domainName); foreach ($dir as $fileName) { // each file if (substr ($fileName, 0, $prefixLength) == $prefix) $names[] = $fileName; } // each file return $names; } // function scanPrefixedFiles public function deletePrefixedFiles ($domainId, $prefix, $mode=false) { // function deletePrefixedFiles global $store; $domainName = $store->domain->getName ($domainId); $prefix .= CHR_FNS; $prefixLength = strlen ($prefix); $dir = scandir (FOLDER_DOMAINS . $domainName); foreach ($dir as $fileName) { // each file if (substr ($fileName, 0, $prefixLength) == $prefix) { // valid file if ($mode === false) unlink (FOLDER_DOMAINS . $domainName . '/' . $fileName); else { // select file type $type = substr ($fileName, - 4); switch ($type) { // switch file type case '.jpg': case '.gif': case '.png': if ($mode == MODE_IMG) unlink (FOLDER_DOMAINS . $domainName . '/' . $fileName); break; default: if ($mode == MODE_FILE) unlink (FOLDER_DOMAINS . $domainName . '/' . $fileName); } // switch file type } // select file type } // valid file } // each file } // function deletePrefixedFiles public function clonePrefixedFiles ($domainId, $prefix, $newPrefix) { // function clonePrefixedFiles global $store; $domainName = $store->domain->getName ($domainId); $prefix .= CHR_FNS; $newPrefix .= CHR_FNS; $prefixLength = strlen ($prefix); $dir = scandir (FOLDER_DOMAINS . $domainName); foreach ($dir as $fileName) { // each file if (substr ($fileName, 0, $prefixLength) == $prefix) { // valid file $newFileName = $newPrefix . substr ($fileName, $prefixLength); copy (FOLDER_DOMAINS . $domainName . '/' . $fileName, FOLDER_DOMAINS . $domainName . '/' . $newFileName); } // valid file } // each file } // function clonePrefixedFiles public function renamePrefixedFiles ($domainId, $prefix, $newPrefix) { // function renamePrefixedFiles global $store; $domainName = $store->domain->getName ($domainId); $newPrefix .= CHR_FNS; $prefix .= CHR_FNS; $prefixLength = strlen ($prefix); $dir = scandir (FOLDER_DOMAINS . $domainName); foreach ($dir as $fileName) { // each file if (substr ($fileName, 0, $prefixLength) == $prefix) { // valid file $oldFileName = FOLDER_DOMAINS . $domainName . '/' . $fileName; $newFileName = FOLDER_DOMAINS . $domainName . '/' . $newPrefix . substr ($fileName, $prefixLength); rename ($oldFileName, $newFileName); } // valid file } // each file } // function renamePrefixedFiles public function close () { // function close } // function close } // class eclStore_domainFile //!eof:engine/eclStore/eclStore_domainFile.php; //!file:engine/eclStore/eclStore_domainGroup.php; class eclStore_domainGroup { // class eclStore_domainGroup public $name = 'domain_group'; public $fields = array ( 'domain_id' => 'mediumint', 'group_id' => 'mediumint', 'user_id' => 'mediumint', 'status' => 'tinyint' ); // Index public $index = array ( 'group_find_user' => array ('user_id'), 'domain_find_group' => array ('domain_id', 'group_id') ); private $database = false; private $groups = array (); public function __construct () { // function __construct global $io; if ($io->database->tableEnabled ($this)) $this->database = $io->database; } // function __construct public function getStatus ($domainId, $groupId, $userId) { // function getStatus $this->open ($domainId, $groupId); if (isset ($this->groups[$domainId][$groupId][0][$userId])) return $this->groups[$domainId][$groupId][0][$userId]; return 0; } // function getStatus public function &open ($domainId, $groupId) { // function & if (isset ($this->groups[$domainId][$groupId][0])) return $this->groups[$domainId][$groupId][0]; if (is_int ($domainId) and $this->database) { // from database $this->groups[$domainId][$groupId][0] = array (); $group = &$this->groups[$domainId][$groupId][0]; foreach ($this->database->select ($this, array ('domain_id' => $domainId, 'group_id' => $groupId)) as $row) { // each row $group[$row['user_id']] = $row['status']; } // each row $this->groups[$domainId][$groupId][1] = $this->groups[$domainId][$groupId][0]; } // from database $return = &$this->groups[$domainId][$groupId][0]; return $return; } // function & public function getDomainUsers ($domainId) { // function getDomainUsers $return = array (); if (is_int ($domainId) and $this->database) { // from database foreach ($this->database->select ($this, array ('domain_id' => $domainId)) as $row) { // each row $return[$row['user_id']] = $row['status']; } // each row } // from database return $return; } // function getDomainUsers public function getDomainGroups ($domainId) { // function getDomainGroups $groups = array (); if (is_int ($domainId) and $this->database) { // from database foreach ($this->database->select ($this, array ('domain_id' => $domainId)) as $row) { // each row $groups[$row['group_id']] = $row['group_id']; } // each row } // from database return $groups; } // function getDomainGroups public function getUserLinks ($userId) { // function getUserLinks if ($this->database) return $this->database->select ($this, array ('user_id' => $userId)); return array (); } // function getUserLinks public function getDomainSubscribedUsers ($domainId) { // function getDomainSubscribedUsers $users = array (); if (is_int ($domainId) and $this->database) { // from database foreach ($this->database->select ($this, array ('domain_id' => $domainId)) as $row) { // each row if ($row['status'] == 5) $users[$row['user_id']] = $row['group_id']; } // each row } // from database return $users; } // function getDomainSubscribedUsers public function close () { // function close if (!$this->database) return; foreach ($this->groups as $domainId => $groups) { // each domain foreach ($groups as $groupId => $group) { // each group if (!$group[0] and $group[1]) $this->database->delete ($this, array ('domain_id' => $domainId, 'group_id' => $groupId)); elseif ($group[0] != $group[1]) { // modify group foreach ($group[0] as $userId => $status) { // each user if (!isset ($group[1][$userId])) { // insert $data = array ('domain_id' => $domainId, 'group_id' => $groupId, 'user_id' => $userId, 'status' => $status); $this->database->insert ($this, $data); } // insert elseif ($group[1][$userId] != $status) { // change status $originalData = $this->database->select ($this, array ('domain_id' => $domainId, 'group_id' => $groupId, 'user_id' => $userId)); $data = $originalData; $data['status'] = $status; $this->database->update ($this, $data, $originalData); } // change status else unset ($group[1][$userId]); } // each user foreach ($group[1] as $userId => $status) { // delete remain users in group $this->database->delete ($this, array ('domain_id' => $domainId, 'group_id' => $groupId, 'user_id' => $userId)); } // delete remain users in group } // modify group } // each group } // each domain $this->groups = array (); } // function close } // class eclStore_domainGroup //!eof:engine/eclStore/eclStore_domainGroup.php; //!file:engine/eclStore/eclStore_user.php; class eclStore_user { // class eclStore_user public $name = 'user'; // Describe fields structure public $fields = array ( // Indexing 'id' => 'primary_key', // Class identifiers 'name' => 'name', 'mail' => 'name', 'phone' => 'name', 'document' => 'name', 'password' => 'password', 'status' => 'tinyint' ); public $insertedData = array (); private $rows = array (); private $originalRows = array (); private $indexByName = array (); private $database; public function __construct () { // function __construct global $io; if ($io->database->tableEnabled ($this)) $this->database = $io->database; } // function __construct public function insert ($data) { // function insert global $io; if (!is_dir (FOLDER_PROFILES)) mkdir (FOLDER_PROFILES); if (!is_dir (FOLDER_PROFILES . $data['name'])) mkdir (FOLDER_PROFILES . $data['name']); if ($this->database) { // insert into database $id = $this->database->insert ($this, $data); $data['id'] = $id; $this->rows[$id] = $data; $this->originalRows[$id] = $data; $this->indexByName[$data['name']] = $id; return $id; } // insert into database return 0; } // function insert public function &open ($name) { // function & global $io; if (isset ($this->indexByName[$name])) { // row found $id = $this->indexByName[$name]; $return = &$this->rows[$id]; return $return; } // row found if ($this->database) { // open from database $rows = $this->database->select ($this, array ('name' => $name)); if ($rows) { // row found $data = $rows[0]; $id = $data['id']; $this->rows[$id] = $data; $this->originalRows[$id] = $data; $this->indexByName[$name] = $id; $return = &$this->rows[$id]; return $return; } // row found } // open from database $return = array (); return $return; } // function & public function &openById ($id) { // function & if (isset ($this->rows[$id])) { // row found $row = &$this->rows[$id]; return $row; } // row found if (is_int ($id) and $this->database) { // open from database $rows = $this->database->select ($this, array ('id' => $id)); if ($rows) { // row found $data = $rows[0]; $this->rows[$id] = $data; $this->originalRows[$id] = $data; $this->indexByName[$data['name']] = $id; $return = &$this->rows[$id]; return $return; } // row found } // open from database $row = array (); return $row; } // function & public function getId ($name) { // function getId if (!isset ($this->indexByName[$name])) $this->open ($name); if (isset ($this->indexByName[$name])) return $this->indexByName[$name]; else return false; } // function getId public function getName ($id) { // function getName if (!isset ($this->rows[$id])) $this->openById ($id); if (isset ($this->rows[$id]['name'])) return $this->rows[$id]['name']; else return false; } // function getName public function getStatus ($name) { // function getStatus if (!isset ($this->indexByName[$name])) $this->open ($name); if (!isset ($this->indexByName[$name])) return 0; $id = $this->indexByName[$name]; $row = &$this->rows[$id]; if (!isset ($row['status'])) return 0; return $row['status']; } // function getStatus public function childrenNames () { // function childrenNames $names = array (); if (!is_dir (FOLDER_PROFILES)) return array (); foreach (scandir (FOLDER_PROFILES) as $folder) { // each folder if ($folder[0] == '.') continue; if (!is_dir (FOLDER_PROFILES . $folder)) continue; if ($this->getStatus ($folder)) $names[] = $folder; } // each folder return $names; } // function childrenNames public function delete ($id) { // function delete if (isset ($this->originalRows[$id])) { // user in database $this->database->delete ($this, array ('id' => $id)); $this->rows[$id] = array (); unset ($this->originalRows[$id]); } // user in database } // function delete public function close () { // function close foreach ($this->originalRows as $id => $originalRow) { // each row if ($this->rows[$id] != $originalRow) $this->database->update ($this, $this->rows[$id], $originalRow); } // each row } // function close } // class eclStore_user //!eof:engine/eclStore/eclStore_user.php; //!file:engine/eclStore/eclStore_userContent.php; class eclStore_userContent { // class eclStore_userContent public $name = 'user_content'; public $fields = array ( // Indexing 'user_id' => 'mediumint', 'mode' => 'tinyint', 'parent_id' => 'mediumint', 'master_id' => 'mediumint', 'id' => 'primary_key', // Class identifiers 'name' => 'name', 'marker' => 'tinyint', 'access' => 'tinyint', // Dates 'created' => 'time', 'updated' => 'time', 'event_start' => 'time', 'event_end' => 'time', 'coments_last_update' => 'time', // More sort options 'index' => 'mediumint', 'hits' => 'int', 'value' => 'mediumint', 'spotlight' => 'tinyint', // Contents 'text' => 'array', 'local' => 'array', 'flags' => 'array', 'extras' => 'array', 'links' => 'array', 'keywords' => 'keywords' ); // Index public $index = array ( 'user_find_children' => array ('user_id', 'mode', 'parent_id'), 'user_find_name' => array ('user_id', 'name') ); private $indexByName = array (); private $indexByParent = array (); private $chargedParents = array (); private $chargedMode = array (); private $rows = array (); private $originalRows = array (); private $deletedRows = array (); private $notFound = array (); private $database = false; private $openedDatabases = array (); public function __construct () { // function __construct global $io; if ($io->database->tableEnabled ($this)) $this->database = $io->database; } // function __construct public function getDatabase ($userName) { // function getDatabase global $io; if (!isset ($this->openedDatabases[$userName])) { // open database $this->openedDatabases[$userName] = $io->sqlite->connect (FOLDER_PROFILES . $userName . '/.user.db'); } // open database if ($this->openedDatabases[$userName]->tableEnabled ($this)) return $this->openedDatabases[$userName]; return false; } // function getDatabase public function indexFoundRows ($rows, $userName=0) { // function indexFoundRows $found = array (); foreach ($rows as $data) { // each row if (!$data['user_id']) $data['user_id'] = $userName; $userId = $data['user_id']; $id = $data['id']; if (!isset ($this->deletedRows[$userId][$id])) { // row not deleted if (!isset ($this->rows[$userId][$id])) { // row not indexed $this->rows[$userId][$id] = $data; $this->originalRows[$userId][$id] = $data; $this->indexByName[$userId][$data['name']] = $id; $this->indexByParent[$userId][$data['mode']][$data['parent_id']][$id] = $id; $found[] = $data; } // row not indexed else $found[] = $this->rows[$userId][$id]; } // row not deleted } // each row return $found; } // function indexFoundRows public function insert ($userId, &$data) { // function insert global $io; $data['user_id'] = $userId; if (!isset ($data['parent_id'])) $data['parent_id'] = 0; $data['index'] = count ($this->children ($userId, $data['mode'], $data['parent_id'])); if (!isset ($data['name']) or !strlen ($data['name'])) $data['name'] = 't' . strval (TIME); $where = array ('user_id' => $userId, 'name' => $data['name']); /* * if ($this->database->select ($this, $where, ' LIMIT 1', array ('id'))) * { // prevent duplicated name * $test = 0; * do * { // loop names * $test ++; * $name = $data['name'] . '-' . str_pad (strval ($test), 3, '0', STR_PAD_LEFT); * $where = array ('user_id' => $userId, 'name' => $name); * } // loop names * while ($this->database->select ($this, $where, ' LIMIT 1', array ('id'))); * $data['name'] = $name; * } // prevent duplicated names */ if (is_int ($userId) and $this->database) { // insert into database $id = $this->database->insert ($this, $data); $data['id'] = $id; $this->rows[$userId][$id] = $data; $this->originalRows[$userId][$id] = $data; $this->indexByName[$userId][$data['name']] = $id; $this->indexByParent[$userId][$data['mode']][$data['parent_id']][$id] = $id; return $id; } // insert into database elseif (is_string ($userId) and $database = $this->getDatabase ($userId)) { // from sqlite $id = $database->insert ($this, $data); $data['user_id'] = $userId; $data['id'] = $id; $this->rows[$userId][$id] = $data; $this->originalRows[$userId][$id] = $data; $this->indexByName[$userId][$data['name']] = $id; $this->indexByParent[$userId][$data['mode']][$data['parent_id']][$id] = $id; return $id; } // from sqlite } // function insert public function &open ($userId, $name, $access=4) { // function & if (!isset ($this->indexByName[$userId][$name])) { // open if (isset ($this->notFound[$userId][$name])) { // registered not found $found = array (); return $found; } // registered not found if (is_int ($userId) and $this->database) $this->indexFoundRows ($this->database->select ($this, array ('user_id' => $userId, 'name' => $name), ' LIMIT 1')); elseif (is_string ($userId) and $database = $this->getDatabase ($userId)) $this->indexFoundRows ($database->select ($this, array ('name' => $name), ' LIMIT 1'), $userId); } // open $found = array (); if (isset ($this->indexByName[$userId][$name])) { // row found $id = $this->indexByName[$userId][$name]; $found = &$this->rows[$userId][$id]; if ($found['access'] <= $access) return $found; } // row found else $this->notFound[$userId][$name] = true; $empty = array (); return $empty; } // function & public function &openById ($userId, $id, $access=4) { // function & if (!isset ($this->rows[$userId][$id])) { // open if (is_int ($userId) and $this->database) $this->indexFoundRows ($this->database->select ($this, array ('id' => $id))); elseif (is_string ($userId) and $database = $this->getDatabase ($userId)) $this->indexFoundRows ($database->select ($this, array ('id' => $id)), $userId); } // open $found = array (); if (isset ($this->rows[$userId][$id])) { // found $found = &$this->rows[$userId][$id]; if ($found['access'] <= $access) return $found; } // found $empty = array (); return $empty; } // function & public function &openChild ($userId, $mode, $parentId, $name, $access=4) { // function & if (!isset ($this->chargedParents[$userId][$mode][$parentId])) { // open if (is_int ($userId) and $this->database) { // parents from database $this->chargedParents[$userId][$mode][$parentId] = true; $this->indexFoundRows ($this->database->select ($this, array ( 'user_id' => $userId, 'mode' => $mode, 'parent_id' => $parentId ))); } // parents from database elseif (is_string ($userId) and $database = $this->getDatabase ($userId)) { // parents from file $this->indexFoundRows ($database->select ($this, array ( 'mode' => $mode, 'parent_id' => $parentId )), $userId); } // parents from file } // open if (isset ($this->indexByParent[$userId][$mode][$parentId])) { // children exists foreach ($this->indexByParent[$userId][$mode][$parentId] as $id) { // each child if ($this->rows[$userId][$id]['name'] == $name) { // found $found = &$this->rows[$userId][$id]; if ($found['access'] <= $access) return $found; $empty = array (); return $empty; } // found } // each child } // children exists $found = array (); return $found; } // function & public function children ($userId, $mode, $parentId, $access=4, $max=0, $offset=0, $sort='index', $direction='asc') { // function children if (!isset ($this->chargedParents[$userId][$mode][$parentId])) { // open if (isset ($this->chargedMode[$userId][$mode])) return array (); if (is_int ($userId) and $this->database) { // parents from database $this->chargedParents[$userId][$mode][$parentId] = true; $this->indexFoundRows ($this->database->select ($this, array ( 'user_id' => $userId, 'mode' => $mode, 'parent_id' => $parentId ))); } // parents from database elseif (is_string ($userId) and $database = $this->getDatabase ($userId)) { // parents from file $this->chargedParents[$userId][$mode][$parentId] = true; $this->indexFoundRows ($database->select ($this, array ( 'mode' => $mode, 'parent_id' => $parentId )), $userId); } // parents from database } // open if (isset ($this->indexByParent[$userId][$mode][$parentId])) { // children exists $sorted = array (); $rows = $this->rows[$userId]; foreach ($this->indexByParent[$userId][$mode][$parentId] as $id) { // each child if ($rows[$id]['access'] <= $access) $sorted[$rows[$id][$sort]][] = $rows[$id]; } // each child if ($direction == 'desc') krsort ($sorted); else ksort ($sorted); if ($max == 0) $max = count ($this->indexByParent[$userId][$mode][$parentId]); else $max += $offset; $list = array (); $i = - 1; foreach ($sorted as $doubled) { // each doubled foreach ($doubled as $item) { // each item $i++; if ($i >= $offset and $i < $max) $list[] = $item; elseif ($i > $max) break 2; } // each item } // each doubled return $list; } // children exists return array (); } // function children public function childrenNames ($userId, $mode, $parentId, $access=4, $max=0, $offset=0, $sort='index', $direction='asc') { // function childrenNames $children = $this->children ($userId, $mode, $parentId, $access, $max, $offset, $sort, $direction); $names = array (); foreach ($children as $child) { // each child $names[] = $child['name']; } // each child return $names; } // function childrenNames public function mode ($userId, $mode) { // function mode if (!isset ($this->chargedMode[$userId][$mode])) { // open if (is_int ($userId) and is_object ($this->database)) { // mode from database $this->chargedMode[$userId][$mode] = $this->indexFoundRows ($this->database->select ($this, array ( 'user_id' => $userId, 'mode' => $mode ))); } // mode from database elseif (is_string ($userId) and $database = $this->getDatabase ($userId)) { // mode from file $this->chargedMode[$userId][$mode] = $this->indexFoundRows ($database->select ($this, array ( 'mode' => $mode )), $userId); } // mode from file else $this->chargedMode[$userId][$mode] = array (); // index chargedParents if (!isset ($this->chargedParents[$userId])) $this->chargedParents[$userId] = array (); if (!isset ($this->chargedParents[$userId][$mode])) $this->chargedParents[$userId][$mode] = array (); foreach ($this->chargedMode[$userId][$mode] as $row) { // each row if (!$row or !isset ($row['id']) or !isset ($row['parent_id'])) continue; if (!isset ($this->chargedParents[$userId][$mode][$row['parent_id']]) or !is_array ($this->chargedParents[$userId][$mode][$row['parent_id']])) $this->chargedParents[$userId][$mode][$row['parent_id']] = array (); $this->chargedParents[$userId][$mode][$row['parent_id']][$row['id']] = true; $this->indexByParent[$userId][$mode][$row['parent_id']][$row['id']] = $row['id']; } // each row } // open return $this->chargedMode[$userId][$mode]; } // function mode public function findMarker ($userId, $marker, $mode=MODE_SECTION) { // function findMarker static $markers = array (); if (!isset ($markers[$userId][$mode])) { // charge mode if (!isset ($markers[$userId])) $markers[$userId] = array (); if (!isset ($markers[$userId][$mode])) $markers[$userId][$mode] = array (); foreach ($this->mode ($userId, $mode) as $data) { // each row if (!isset ($markers[$userId][$mode][$data['marker']])) $markers[$userId][$mode][$data['marker']] = $data['id']; } // each row } // charge mode if (isset ($markers[$userId][$mode][$marker])) return $markers[$userId][$mode][$marker]; return false; } // function findMarker public function search ($where, $access=4, $max=0, $offset=0, $sort='created', $direction='desc') { // function search if ( (!isset ($where['user_id']) or is_int ($where['user_id'])) and is_object ($this->database)) { // search on database $rows = $this->indexFoundRows ($this->database->select ($this, $where)); } // search on database elseif (isset ($where['user_id']) and is_string ($where['user_id']) and $database = $this->getDatabase ($where['user_id'])) { // search on file unset ($where['user_id']); $rows = $this->indexFoundRows ($database->select ($this, $where), $where['user_id']); } // search on file else $rows = array (); if ($rows) { // children exists $sorted = array (); foreach ($rows as $row) { // each child if ($row['access'] <= $access) $sorted[$row[$sort]][] = $row; } // each child if ($direction == 'desc') krsort ($sorted); else ksort ($sorted); if ($max == 0) $max = count ($rows); else $max += $offset; $list = array (); $i = - 1; foreach ($sorted as $doubled) { // each doubled foreach ($doubled as $item) { // each item $i++; if ($i >= $offset and $i < $max) $list[] = $item; elseif ($i > $max) break 2; } // each item } // each doubled return $list; } // children exists return array (); } // function search public function childrenReindex ($userId, $mode, $parentId) { // function childrenReindex foreach ($this->children ($userId, $mode, $parentId) as $index => $child) { // each child $this->rows[$userId][$child['id']]['index'] = $index; } // each child } // function childrenReindex public function pathway ($userId, $name) { // function pathway global $store; $pathway = array (); if (intval ($name)) $data = $this->openById ($userId, $name); else $data = $this->open ($userId, $name); if (!$data) return false; $id = $data['id']; do { // loop levels if (isset ($this->rows[$userId][$id])) $data = $this->rows[$userId][$id]; else $data = $this->openById ($userId, $id); if (!$data) return false; array_unshift ($pathway, $data['name']); $id = $data['parent_id']; if (!$id and $data['mode'] != MODE_SECTION and $data['marker']) { // find special section $id = $this->findMarker ($userId, $data['marker']); if (!$id) return false; } // find special section } // loop levels while ($id); array_unshift ($pathway, SYSTEM_PROFILES_URI, $store->user->getName ($userId)); return $pathway; } // function pathway public function delete ($userId, $id) { // function delete if (isset ($this->rows[$userId][$id])) { // remove from index $data = $this->rows[$userId][$id]; $this->deletedRows[$userId][$id] = $id; $this->rows[$userId][$id] = array (); unset ($this->originalRows[$userId][$id]); unset ($this->indexByParent[$userId][$data['mode']][$data['parent_id']][$id]); unset ($this->indexByName[$userId][$data['name']][$id]); } // remove from index if (is_int ($userId) and $this->database) { // delete from database $this->database->delete ($this, array ('id' => $id)); } // delete from database elseif (is_string ($userId) and $database = $this->getDatabase ($userId)) { // delete from file $database->delete ($this, array ('id' => $id)); } // delete from file } // function delete public function close () { // function close foreach ($this->originalRows as $userId => $userRows) { // each user foreach ($userRows as $id => $originalRow) { // each row if ($this->rows[$userId][$id] != $originalRow) { // data changed if (is_int ($userId)) $this->database->update ($this, $this->rows[$userId][$id], $originalRow); elseif (is_string ($userId) and $database = $this->getDatabase ($userId)) $database->update ($this, $this->rows[$userId][$id], $originalRow); } // data changed } // each row } // each user $this->indexByName = array (); $this->indexByParent = array (); $this->chargedParents = array (); $this->rows = array (); $this->originalRows = array (); $this->deletedRows = array (); $this->notFound = array (); } // function close } // class eclStore_userContent //!eof:engine/eclStore/eclStore_userContent.php; //!file:engine/eclStore/eclStore_userExtras.php; class eclStore_userExtras { // class eclStore_userExtras public $name = 'user_extras'; public $fields = array ( // Indexing 'user_id' => 'mediumint', 'mode' => 'tinyint', 'parent_id' => 'mediumint', 'master_id' => 'mediumint', 'id' => 'primary_key', // Class identifiers 'name' => 'name', 'status' => 'tinyint', 'access' => 'tinyint', 'owner_id' => 'mediumint', // Dates 'created' => 'time', 'updated' => 'time', // Contents 'text' => 'array', 'local' => 'array', 'extras' => 'array', 'html' => 'binary' ); // Index public $index = array ( 'user_find_extras' => array ('user_id', 'mode', 'parent_id'), 'user_find_extras_owner' => array ('owner_id', 'mode') ); public $indexByParent = array (); public $chargedParents = array (); public $chargedMode = array (); private $rows = array (); private $originalRows = array (); private $deletedRows = array (); private $notFound = array (); private $database = false; private $openedDatabases = array (); public $lastInsertedData = array (); public function __construct () { // function __construct global $io; if ($io->database->tableEnabled ($this)) $this->database = $io->database; } // function __construct public function getDatabase ($domainName) { // function getDatabase global $io; if (!isset ($this->openedDatabases[$domainName])) { // open database $this->openedDatabases[$domainName] = $io->sqlite->connect (FOLDER_DOMAINS . $domainName . '/.domain.db'); } // open database if ($this->openedDatabases[$domainName]->tableEnabled ($this)) return $this->openedDatabases[$domainName]; return false; } // function getDatabase public function indexFoundRows ($rows, $domainName=0) { // function indexFoundRows $found = array (); foreach ($rows as $data) { // each row if ($data['access'] == 255) continue; if (!$data['user_id']) $data['user_id'] = $domainName; $userId = $data['user_id']; $id = $data['id']; if (!isset ($this->deletedRows[$userId][$id])) { // row not deleted if (!isset ($this->rows[$userId][$id])) { // row not indexed $this->rows[$userId][$id] = $data; $this->originalRows[$userId][$id] = $data; $this->indexByParent[$userId][$data['mode']][$data['parent_id']][$id] = $id; $found[] = $data; } // row not indexed else $found[] = $this->rows[$userId][$id]; } // row not deleted } // each row return $found; } // function indexFoundRows public function insert ($userId, &$data) { // function insert global $io; if (is_int ($userId) and $this->database) $database = $this->database; elseif (is_string ($userId) and $database = $this->getDatabase ($userId)) null; else return 0; $data['user_id'] = $userId; if (!isset ($data['parent_id'])) $data['parent_id'] = 0; $id = $database->insert ($this, $data); $data['id'] = $id; $this->rows[$userId][$id] = $data; $this->originalRows[$userId][$id] = $data; $this->indexByParent[$userId][$data['mode']][$data['parent_id']][$id] = $id; $this->lastInsertedData = $data; return $id; } // function insert public function &openById ($userId, $id, $access=4) { // function & if (!isset ($this->rows[$userId][$id])) { // open if (is_int ($userId) and $this->database) $this->indexFoundRows ($this->database->select ($this, array ('user_id' => $userId, 'id' => $id))); elseif (is_string ($userId) and $database = $this->getDatabase ($userId)) $this->indexFoundRows ($database->select ($this, array ('id' => $id)), $userId); } // open $found = array (); if (isset ($this->rows[$userId][$id])) { // found $found = &$this->rows[$userId][$id]; if ($found['access'] <= $access) return $found; } // found $empty = array (); return $empty; } // function & public function children ($userId, $mode, $parentId, $access=4) { // function children if (!isset ($this->chargedParents[$userId][$mode][$parentId])) { // open if (isset ($this->chargedMode[$userId][$mode])) return array (); if (is_int ($userId) and $this->database) { // parents from database $this->chargedParents[$userId][$mode][$parentId] = true; $this->indexFoundRows ($this->database->select ($this, array ( 'user_id' => $userId, 'mode' => $mode, 'parent_id' => $parentId ))); } // parents from database elseif (is_string ($userId) and $database = $this->getDatabase ($userId)) { // parents from file $this->chargedParents[$userId][$mode][$parentId] = true; $this->indexFoundRows ($database->select ($this, array ( 'mode' => $mode, 'parent_id' => $parentId )), $userId); } // parents from database } // open if (isset ($this->indexByParent[$userId][$mode][$parentId])) { // return found rows $found = array (); foreach ($this->indexByParent[$userId][$mode][$parentId] as $id) { // each row $found[] = $this->rows[$userId][$id]; } // each row return $found; } // return found rows else return array (); } // function children public function mode ($userId, $mode) { // function mode if (!isset ($this->chargedMode[$userId][$mode])) { // open if (is_int ($userId) and is_object ($this->database)) { // mode from database $this->chargedMode[$userId][$mode] = $this->indexFoundRows ($this->database->select ($this, array ( 'user_id' => $userId, 'mode' => $mode ))); } // mode from database elseif (is_string ($userId) and $database = $this->getDatabase ($userId)) { // mode from file $this->chargedMode[$userId][$mode] = $this->indexFoundRows ($database->select ($this, array ( 'mode' => $mode )), $userId); } // mode from file else $this->chargedMode[$userId][$mode] = array (); // index chargedParents if (!isset ($this->chargedParents[$userId])) $this->chargedParents[$userId] = array (); if (!isset ($this->chargedParents[$userId][$mode])) $this->chargedParents[$userId][$mode] = array (); foreach ($this->chargedMode[$userId][$mode] as $row) { // each row if (!$row or !isset ($row['id']) or !isset ($row['parent_id'])) continue; if (!isset ($this->chargedParents[$userId][$mode][$row['parent_id']]) or !is_array ($this->chargedParents[$userId][$mode][$row['parent_id']])) $this->chargedParents[$userId][$mode][$row['parent_id']] = array (); $this->chargedParents[$userId][$mode][$row['parent_id']][$row['id']] = true; $this->indexByParent[$userId][$mode][$row['parent_id']][$row['id']] = $row['id']; } // each row } // open return $this->chargedMode[$userId][$mode]; } // function mode public function search ($where, $access=4) { // function search if ( (!isset ($where['user_id']) or is_int ($where['user_id'])) and is_object ($this->database)) { // search on database return $this->indexFoundRows ($this->database->select ($this, $where)); } // search on database elseif (isset ($where['user_id']) and is_string ($where['user_id']) and $database = $this->getDatabase ($where['user_id'])) { // search on file unset ($where['user_id']); return $this->indexFoundRows ($database->select ($this, $where), $where['user_id']); } // search on file else return array (); } // function search public function createVersion ($userId, &$from, $document) { // function createVersion $lang = $document->lang; $from['flags']['updated_' . $lang] = TIME; $data = array ( 'user_id' => $userId, 'mode' => MODE_VERSION, 'parent_id' => $from['id'], 'name' => $document->lang, 'owner_id' => $document->user->userId, 'created' => TIME, 'updated' => TIME, 'text' => array () ); foreach (array_keys ($from['text']) as $field) { // each field if (isset ($from['text'][$field][$lang])) $data['text'][$field] = array ($lang => $from['text'][$field][$lang]); } // each field if (isset ($from['extras'])) { // extras exists $data['extras'] = array (); foreach ($from['extras'] as $target => $extras) { // each extra list ($prefix) = explode ('_', $target); switch ($prefix) { // switch prefix case 'box': if (isset ($from['extras'][$target]['text'])) { // text exists foreach ($from['extras'][$target]['text'] as $field => $value) { // each field if (isset ($value[$lang])) $data['extras'][$target]['text'][$field][$lang] = $value[$lang]; } // each field } // text exists if (isset ($from['extras'][$target]['local'])) $data['extras'][$target]['local'] = $from['extras'][$target]['local']; } // switch prefix } // each extra } // extras exists $this->insert ($userId, $data); } // function createVersion public function clearLanguage ($document) { // function clearLanguage global $store; $me = $document->application; if (!isset ($me->data['text']['caption']) or count ($me->data['text']['caption']) < 2) return; if ($document->actions ('version', 'clear') and isset ($document->actions['version'][2]) and strlen ($document->actions['version'][2]) == 2) { // language clear $lang = $document->actions['version'][2]; foreach (array_keys ($me->data['text']) as $field) { // each field unset ($me->data['text'][$field][$lang]); if (!$me->data['text'][$field]) unset ($me->data['text'][$field]); } // each field foreach (array_keys ($me->data['extras']) as $target) { // each target list ($prefix) = explode ('_', $target, 2); switch ($prefix) { // switch prefix case 'box': if (isset ($me->data['extras'][$field]['text'])) { // text exists foreach (array_keys ($me->data['extras'][$target]['text']) as $field) { // each field unset ($me->data['extras'][$target]['text'][$field][$lang]); if (!$me->data['extras'][$target]['text'][$field]) unset ($me->data['extras'][$target]['text'][$field]); } // each field if (!$me->data['extras'][$target]['text']) unset ($me->data['extras'][$target]); } // text exists } // switch prefix } // each target } // language clear if (count ($me->data['text']['caption']) > 1 and isset ($me->data['text']['caption'][$document->lang])) { // context clear language $langCaption = $store->control->read ('labels/lang/' . $document->lang); $document->mod->context->appendChild ('labels/action/remove_language') ->set ('lang_caption', $langCaption['text']['caption']) ->url (true, true, '_version-remove-' . $document->lang); } // context clear language } // function clearLanguage public function versioning ($document) { // function versioning $this->clearLanguage ($document); $me = $document->application; if (isset ($me->data['flags']['updated_' . $document->lang])) $updated = $me->data['flags']['updated_' . $document->lang]; else $updated = $me->data['updated']; $versions = $this->children ($me->userId, MODE_VERSION, $me->id); if (!$versions) return; $undo = array (); $redo = array (); $current = false; foreach ($versions as $version) { // each version if ($version['name'] != $document->lang) continue; if ($version['created'] < $updated) $undo[] = $version; elseif ($version['created'] == $updated) $current = true; elseif ($version['created'] > $updated) $redo[] = $version; } // each version if ($document->actions ('version', 'undo') and $undo) { // undo $update = array_pop ($undo); if ($current) $redo = true; } // undo elseif ($document->actions ('version', 'redo') and $redo) { // redo $update = array_shift ($redo); if ($current) $undo = true; } // redo if (isset ($update)) { // update $lang = $document->lang; $data = &$me->data; $data['updated'] = $update['created']; $data['flags']['updated_' . $lang] = $update['created']; $fields = array_keys (array_replace ($data['text'], $update['text'])); foreach ($fields as $field) { // update each field if (!isset ($data['text'][$field])) $data['text'][$field] = $update['text'][$field]; elseif (isset ($update['text'][$field][$lang])) $data['text'][$field][$lang] = $update['text'][$field][$lang]; else { // clear unset ($data['text'][$field][$lang]); if (!$data['text'][$field]) unset ($data['text'][$field]); } // clear } // update each field if (isset ($data['extras']) and $data['extras']) { // filter extras $modules = array_keys (array_replace ($data['extras'], $update['extras'])); foreach ($modules as $target) { // each target list ($prefix) = explode ('_', $target); switch ($prefix) { // switch prefix case 'box': if (!isset ($data['extras'][$target])) { // recreate $data['extras'][$target] = $update['extras'][$target]; break; } // recreate $fields = array_keys (array_replace ($data['extras'][$target]['text'], $update['extras'][$field]['text'])); foreach ($fields as $field) { // each field if (isset ($update['extras'][$target]['text'][$field][$lang])) $data['extras'][$target]['text'][$field][$lang] = $update['extras'][$target]['text'][$field][$lang]; else { // clear language unset ($update['extras'][$target]['text'][$field][$lang]); if (!$data['extras'][$target]['text'][$field]) unset ($data['extras'][$target]['text'][$field]); } // clear language } // each field if (!$data['extras'][$target]['text']) unset ($data['extras'][$target]); } // switch prefix } // each target } // filter extras $document->dataReplace ($me->data); } // update if ($undo) $document->mod->context->appendChild ('labels/action/undo') ->url (true, true, '_version-undo'); if ($redo) $document->mod->context->appendChild ('labels/action/redo') ->url (true, true, '_version-redo'); } // function versioning public function delete ($userId, $id) { // function delete if (defined ('TRACKING_REMOVED_PAGES') and TRACKING_REMOVED_PAGES) { // do not remove page $data = &$this->openById ($userId, $id); $data['access'] = 255; return; } // do not remove page if (isset ($this->rows[$userId][$id])) { // remove from index $data = $this->rows[$userId][$id]; $this->deletedRows[$userId][$id] = $id; $this->rows[$userId][$id] = array (); unset ($this->originalRows[$userId][$id]); unset ($this->indexByParent[$userId][$data['mode']][$data['parent_id']][$id]); } // remove from index if (is_int ($userId) and $this->database) { // delete from database $this->database->delete ($this, array ('id' => $id)); } // delete from database elseif (is_string ($userId) and $database = $this->getDatabase ($userId)) { // delete from file $database->delete ($this, array ('id' => $id)); } // delete from file } // function delete public function deleteAllChildren ($userId, $parentId) { // function deleteAllChildren $where = array ( 'user_id' => $userId, 'parent_id' => $parentId ); foreach ($this->search ($where) as $data) { // each row $this->delete ($userId, $data['id']); } // each row } // function deleteAllChildren public function close () { // function close foreach ($this->originalRows as $userId => $domainRows) { // each domain foreach ($domainRows as $id => $originalRow) { // each row if ($this->rows[$userId][$id] != $originalRow) { // data changed if (is_int ($userId)) $this->database->update ($this, $this->rows[$userId][$id], $originalRow); elseif (is_string ($userId) and $database = $this->getDatabase ($userId)) $database->update ($this, $this->rows[$userId][$id], $originalRow); } // data changed } // each row } // each domain $this->indexByParent = array (); $this->chargedParents = array (); $this->rows = array (); $this->originalRows = array (); $this->deletedRows = array (); $this->notFound = array (); } // function close } // class eclStore_userExtras //!eof:engine/eclStore/eclStore_userExtras.php; //!file:engine/eclStore/eclStore_userFile.php; class eclStore_userFile { // class eclStore_userFile public function unlink ($userId, $name) { // function unlink global $store; $userName = $store->user->getName ($userId); if (!is_string ($name) or !strlen ($name)) return; if (is_file (FOLDER_PROFILES . $userName . '/' . $name)) unlink (FOLDER_PROFILES . $userName . '/' . $name); } // function unlink public function deletePrefixedFiles ($userId, $prefix, $mode=false) { // function deletePrefixedFiles global $store; $userName = $store->user->getName ($userId); $prefix .= CHR_FNS; $prefixLength = strlen ($prefix); $dir = scandir (FOLDER_PROFILES . $userName); foreach ($dir as $fileName) { // each file if (substr ($fileName, 0, $prefixLength) == $prefix) { // valid file if ($mode === false) unlink (FOLDER_PROFILES . $userName . '/' . $fileName); else { // select file type $type = substr ($fileName, - 4); switch ($type) { // switch file type case '.jpg': case '.gif': case '.png': if ($mode == MODE_IMG) unlink (FOLDER_PROFILES . $userName . '/' . $fileName); break; default: if ($mode == MODE_FILE) unlink (FOLDER_PROFILES . $userName . '/' . $fileName); } // switch file type } // select file type } // valid file } // each file } // function deletePrefixedFiles public function clonePrefixedFiles ($userId, $prefix, $newPrefix) { // function clonePrefixedFiles global $store; $userName = $store->user->getName ($userId); $prefix .= CHR_FNS; $newPrefix .= CHR_FNS; $prefixLength = strlen ($prefix); $dir = scandir (FOLDER_PROFILES . $userName); foreach ($dir as $fileName) { // each file if (substr ($fileName, 0, $prefixLength) == $prefix) { // valid file $newFileName = $newPrefix . substr ($fileName, $prefixLength); copy (FOLDER_PROFILES . $userName . '/' . $fileName, FOLDER_PROFILES . $userName . '/' . $newFileName); } // valid file } // each file } // function clonePrefixedFiles public function renamePrefixedFiles ($userId, $prefix, $newPrefix) { // function renamePrefixedFiles global $store; $userName = $store->user->getName ($userId); $newPrefix .= CHR_FNS; $prefix .= CHR_FNS; $prefixLength = strlen ($prefix); $dir = scandir (FOLDER_PROFILES . $userName); foreach ($dir as $fileName) { // each file if (substr ($fileName, 0, $prefixLength) == $prefix) { // valid file $oldFileName = FOLDER_PROFILES . $userName . '/' . $fileName; $newFileName = FOLDER_PROFILES . $userName . '/' . $newPrefix . substr ($fileName, $prefixLength); rename ($oldFileName, $newFileName); } // valid file } // each file } // function renamePrefixedFiles public function close () { // function close } // function close } // class eclStore_userFile //!eof:engine/eclStore/eclStore_userFile.php; //!file:engine/eclStore/eclStore_userFriend.php; class eclStore_userFriend { // class eclStore_userFriend public $name = 'user_friend'; public $fields = array ( 'user_id' => 'mediumint', 'friend_id' => 'mediumint', 'created' => 'time', 'updated' => 'time', 'status' => 'tinyint' ); public $insertedData = array (); private $database = false; private $groups = array (); public function __construct () { // function __construct global $io; if ($io->database->tableEnabled ($this)) $this->database = $io->database; } // function __construct public function close () { // function close } // function close } // class eclStore_userFriend //!eof:engine/eclStore/eclStore_userFriend.php; //!file:engine/eclTag/eclTag_audio.php; class eclTag_audio { // class eclTag_audio static $type = 'module'; static function render ($render, $arguments) { // function render global $store; $document = $render->document; $tagArguments = implode (' ', $arguments); $arguments = explode (' ', $tagArguments); switch (count ($arguments)) { // switch number of arguments case 0: if (!isset ($document->application->data['name'])) return false; $arguments[0] = $document->application->data['name']; $arguments[1] = '0'; break; case 1: if (is_numeric ($arguments[0])) { // number if (!isset ($document->application->data['name'])) return false; $arguments[1] = $arguments[0]; $arguments[0] = $document->application->data['name']; break; } // number $arguments[1] = '0'; } // switch number of arguments // Vamos abrir o módulo $mod = $document->createModule ('audio', $arguments); // Se o módulo estiver marcado como vazio if (!$mod->enabled) return; $data = $mod->data; $data['local']['tag'] = 'audio:' . $tagArguments; $data['mod'] = $data['local']; $data['children'] = $mod->children; return $data; } // function render } // class eclTag_audio //!eof:engine/eclTag/eclTag_audio.php; //!file:engine/eclTag/eclTag_box.php; class eclTag_box { // class eclTag_box static $type = 'module'; static function render ($render, $arguments) { // function render global $store; $document = $render->document; $tagArguments = implode (' ', $arguments); $arguments = explode (' ', $tagArguments); // Vamos abrir o módulo $mod = $document->createModule ('box', $arguments); // Se o módulo estiver marcado como vazio if (!$mod->enabled) return; $data = $mod->data; $data['local']['tag'] = 'box:' . $tagArguments; $data['mod'] = $data['local']; $data['children'] = $mod->children; return $data; } // function render } // class eclTag_box //!eof:engine/eclTag/eclTag_box.php; //!file:engine/eclTag/eclTag_card.php; class eclTag_card { // class eclTag_card static function render ($render, $arguments) { // function render global $store; if (isset ($arguments[0])) $name = 'card_' . $arguments[0]; else $name = 'card'; $render->tagsStack[] = array ('card', $name); $render->scissorsIndex++; $render->scissors[$render->scissorsIndex] = array ( 'position' => strlen ($render->buffer), 'name' => $name, ); } // function render } // class eclTag_card //!eof:engine/eclTag/eclTag_card.php; //!file:engine/eclTag/eclTag_columns.php; class eclTag_columns { // class eclTag_columns static function render ($render, $arguments) { // function render if (isset ($arguments[0])) $name = 'columns_' . $arguments[0]; else $name = 'columns'; $render->tagsStack[] = array ('columns', $name); $render->scissorsIndex++; $render->scissors[$render->scissorsIndex] = array ( 'position' => strlen ($render->buffer), 'name' => $name, ); } // function render } // class eclTag_columns //!eof:engine/eclTag/eclTag_columns.php; //!file:engine/eclTag/eclTag_cut.php; class eclTag_cut { // class eclTag_cut static function render ($render, $arguments) { // function render @list ($name, $once) = explode (' ', $arguments[0]); $render->tagsStack[] = array ('cut', $name); $render->scissorsIndex++; $render->scissors[$render->scissorsIndex] = array ( 'position' => strlen ($render->buffer), 'label' => $name, 'once' => $once ); } // function render } // class eclTag_cut //!eof:engine/eclTag/eclTag_cut.php; //!file:engine/eclTag/eclTag_details.php; class eclTag_details { // class eclTag_details static $type = 'scope'; static function render ($render, $arguments) { // function render global $store; $details = $render->getVar ('mod.details'); if (!strlen ($details)) return; if (is_string ($details)) $details = explode (CRLF, $details); $buffer['parsed'] = array (); foreach ($details as $name) { // each detail if (!strlen ($name = trim ($name))) continue; $data = $render->block ('details/' . $name); if (isset ($data['parsed'])) { // ready $buffer['parsed'] = array_merge ($buffer['parsed'], $data['parsed']); continue; } // ready if (!isset ($data['html'])) continue; $buffer['parsed'] = array_merge ($buffer['parsed'], $render->render_tags ($data['html'], true)); } // each detail return $buffer; } // function render } // class eclTag_details //!eof:engine/eclTag/eclTag_details.php; //!file:engine/eclTag/eclTag_dinamic.php; class eclTag_dinamic { // class eclTag_dinamic static $type = 'module'; static function render ($render, $arguments) { // function render global $store; $document = $render->document; $tagArguments = implode (' ', $arguments); $arguments = explode (' ', $tagArguments); switch (count ($arguments)) { // switch number of arguments case 0: if (!isset ($document->application->data['name'])) return false; $arguments[0] = $document->application->data['name']; $arguments[1] = '0'; break; case 1: if (is_numeric ($arguments[0])) { // number if (!isset ($document->application->data['name'])) return false; $arguments[1] = $arguments[0]; $arguments[0] = $document->application->data['name']; break; } // number $arguments[1] = '0'; } // switch number of arguments // Vamos abrir o módulo $mod = $document->createModule ('dinamic', $arguments); // Se o módulo estiver marcado como vazio if (!$mod->enabled) return; $data = $mod->data; $data['local']['tag'] = 'dinamic:' . $tagArguments; $data['mod'] = $data['local']; $data['children'] = $mod->children; return $data; } // function render } // class eclTag_dinamic //!eof:engine/eclTag/eclTag_dinamic.php; //!file:engine/eclTag/eclTag_endcard.php; class eclTag_endcard { // class eclTag_endcard static function render ($render, $arguments) { // function render $name = $render->stackPop ('card'); if ($name === false) return; if (!$render->scissorsIndex) return; $position = $render->scissors[$render->scissorsIndex]['position']; $render->scissorsIndex--; $border = $render->block ('borders/card'); if (!isset ($border['html'])) return; $cut = substr ($render->buffer, $position); $render->buffer = substr ($render->buffer, 0, $position); $data = $render->block ('modules/' . $name); if (!$data) $data = $render->block ('modules/card'); $data['html'] = $border['html']; $data['local']['value'] = $cut; return $data; } // function render } // class eclTag_endcard //!eof:engine/eclTag/eclTag_endcard.php; //!file:engine/eclTag/eclTag_endcolumns.php; class eclTag_endcolumns { // class eclTag_endcolumns static function render ($render, $arguments) { // function render $name = $render->stackPop ('columns'); if ($name === false) return; if (!$render->scissorsIndex) return; $position = $render->scissors[$render->scissorsIndex]['position']; $render->scissorsIndex--; $border = $render->block ('borders/columns'); if (!isset ($border['html'])) return; $cut = substr ($render->buffer, $position); $render->buffer = substr ($render->buffer, 0, $position); $data = $render->block ('modules/' . $name); if (!$data) $data = $render->block ('modules/columns'); $data['html'] = $border['html']; $data['local']['value'] = $cut; return $data; } // function render } // class eclTag_endcolumns //!eof:engine/eclTag/eclTag_endcolumns.php; //!file:engine/eclTag/eclTag_endcut.php; class eclTag_endcut { // class eclTag_endcut static function render ($render, $arguments) { // function render $name = $render->stackPop ('cut'); if ($name === false) return; if (!$render->scissorsIndex) return; $position = $render->scissors[$render->scissorsIndex]['position']; $label = $render->scissors[$render->scissorsIndex]['label']; $once = $render->scissors[$render->scissorsIndex]['once']; $render->scissorsIndex--; $cut = substr ($render->buffer, $position); $render->buffer = substr ($render->buffer, 0, $position); if (is_bool ($label) or $label == '') return; while ($render->pasteIndex and $render->pastePointer[$render->pasteIndex] > $position) { // clear paste points $render->pasteIndex--; } // clear paste points if ($once) { // cut once // Se já houvermos recortado este trecho if (isset ($render->cutOnce[$once])) return; $render->cutOnce[$once] = true; } // cut once if (isset ($render->cuts[$label])) $render->cuts[$label] .= $cut; else $render->cuts[$label] = $cut; } // function render } // class eclTag_endcut //!eof:engine/eclTag/eclTag_endcut.php; //!file:engine/eclTag/eclTag_endgrid.php; class eclTag_endgrid { // class eclTag_endgrid static function render ($render, $arguments) { // function render $name = $render->stackPop ('grid'); if ($name === false) return; if (!$render->scissorsIndex) return; $position = $render->scissors[$render->scissorsIndex]['position']; $render->scissorsIndex--; $border = $render->block ('borders/grid'); if (!isset ($border['html'])) return; $cut = substr ($render->buffer, $position); $render->buffer = substr ($render->buffer, 0, $position); $data = $render->block ('modules/' . $name); if (!$data) $data = $render->block ('modules/grid'); $data['html'] = $border['html']; $data['local']['value'] = $cut; return $data; } // function render } // class eclTag_endgrid //!eof:engine/eclTag/eclTag_endgrid.php; //!file:engine/eclTag/eclTag_endscript.php; class eclTag_endscript { // class eclTag_endscript static function render ($render) { // function render $name = $render->stackPop ('script'); if ($name === false) return; if (!$render->scissorsIndex) return; $position = $render->scissors[$render->scissorsIndex]['position']; $label = $render->scissors[$render->scissorsIndex]['label']; $once = $render->scissors[$render->scissorsIndex]['once']; $render->scissorsIndex--; $cut = substr ($render->buffer, $position); $render->buffer = substr ($render->buffer, 0, $position); if (is_bool ($label) or $label == '') return; if ($once) { // cut once // Se já houvermos recortado este trecho if (isset ($render->cutOnce[$once])) return; $render->cutOnce[$once] = true; } // cut once if (isset ($render->cuts[$label])) $render->cuts[$label] .= $cut; else $render->cuts[$label] = $cut; } // function render } // class eclTag_endscript //!eof:engine/eclTag/eclTag_endscript.php; //!file:engine/eclTag/eclTag_endstyle.php; class eclTag_endstyle { // class eclTag_endstyle static function render ($render) { // function render $name = $render->stackPop ('style'); if ($name === false) return; if (!$render->scissorsIndex) return; $position = $render->scissors[$render->scissorsIndex]['position']; $label = $render->scissors[$render->scissorsIndex]['label']; $once = $render->scissors[$render->scissorsIndex]['once']; $render->scissorsIndex--; $cut = substr ($render->buffer, $position); $render->buffer = substr ($render->buffer, 0, $position); if (is_bool ($label) or $label == '') return; if ($once) { // cut once // Se já houvermos recortado este trecho if (isset ($render->cutOnce[$once])) return; $render->cutOnce[$once] = true; } // cut once if (isset ($render->cuts[$label])) $render->cuts[$label] .= $cut; else $render->cuts[$label] = $cut; } // function render } // class eclTag_endstyle //!eof:engine/eclTag/eclTag_endstyle.php; //!file:engine/eclTag/eclTag_endtable.php; class eclTag_endtable { // class eclTag_endtable static function render ($render, $arguments) { // function render $name = $render->stackPop ('table'); if ($name === false) return; if (!$render->scissorsIndex) return; $position = $render->scissors[$render->scissorsIndex]['position']; $render->scissorsIndex--; $border = $render->block ('borders/table'); if (!isset ($border['html'])) return; $cut = substr ($render->buffer, $position); $render->buffer = substr ($render->buffer, 0, $position); $data = $render->block ('modules/' . $name); if (!$data) $data = $render->block ('modules/table'); $data['html'] = $border['html']; $data['local']['value'] = $cut; return $data; } // function render } // class eclTag_endtable //!eof:engine/eclTag/eclTag_endtable.php; //!file:engine/eclTag/eclTag_field.php; class eclTag_field { // class eclTag_field static $type = 'scope'; static function render ($render, $arguments) { // function render global $store; $name = 'fields/' . $render->getVar ('type'); $data = $render->block ($name); if (!isset ($data['html'])) return; unset ($data['text']); if (isset ($data['local'])) $data['local'] = array_replace ($render->data, $data['local']); else $data['local'] = $render->data; if ($render->data) $data['data'] = $render->data; return $data; } // function render } // class eclTag_field //!eof:engine/eclTag/eclTag_field.php; //!file:engine/eclTag/eclTag_file.php; class eclTag_file { // class eclTag_file static $type = 'module'; static function render ($render, $arguments) { // function render global $store; $document = $render->document; $tagArguments = implode (' ', $arguments); $arguments = explode (' ', $tagArguments); switch (count ($arguments)) { // switch number of arguments case 0: if (!isset ($document->application->data['name'])) return false; $arguments[0] = $document->application->data['name']; $arguments[1] = '0'; break; case 1: if (is_numeric ($arguments[0])) { // number if (!isset ($document->application->data['name'])) return false; $arguments[1] = $arguments[0]; $arguments[0] = $document->application->data['name']; break; } // number $arguments[1] = '0'; } // switch number of arguments // Vamos abrir o módulo $mod = $document->createModule ('file', $arguments); // Se o módulo estiver marcado como vazio if (!$mod->enabled) return; $data = $mod->data; $data['local']['tag'] = 'file:' . $tagArguments; $data['mod'] = $data['local']; $data['children'] = $mod->children; return $data; } // function render } // class eclTag_file //!eof:engine/eclTag/eclTag_file.php; //!file:engine/eclTag/eclTag_font_stack.php; class eclTag_font_stack { // class eclTag_font_stack static function render ($render, $arguments) { // function render if (!$arguments) return; $font = $render->block ('fonts/' . $arguments[0]); if (isset ($font['local']['font-stack'])) $render->buffer .= $font['local']['font-stack']; if (isset ($font['local']['font-face'])) { // append font-face $fontFace = $font['local']['font-face']; if (!isset ($render->cuts['font-face'])) { // first cut $render->cuts['font-face'] = $fontFace . CRLF; return; } // first cut if (strpos ($render->cuts['font-face'], $fontFace) === false) $render->cuts['font-face'] .= $fontFace . CRLF; } // append font-face } // function render } // class eclTag_font_stack //!eof:engine/eclTag/eclTag_font_stack.php; //!file:engine/eclTag/eclTag_gender.php; class eclTag_gender { // class eclTag_gender static function render ($render, $arguments) { // function render if (!isset ($arguments[0]) or !is_string ($arguments[0]) or !strlen ($arguments[0])) return; @list ($male, $female) = explode ('|', $arguments[0], 2); if (!isset ($render->document->user->data['local']['gender'])) $render->buffer .= $male; elseif ($render->document->user->data['local']['gender'] == 'female') $render->buffer .= $female; else $render->buffer .= $male; } // function render } // class eclTag_gender //!eof:engine/eclTag/eclTag_gender.php; //!file:engine/eclTag/eclTag_grid.php; class eclTag_grid { // class eclTag_grid static function render ($render, $arguments) { // function render if (isset ($arguments[0])) $name = 'grid_' . $arguments[0]; else $name = 'grid'; $render->tagsStack[] = array ('grid', $name); $render->scissorsIndex++; $render->scissors[$render->scissorsIndex] = array ( 'position' => strlen ($render->buffer), 'name' => $name, ); } // function render } // class eclTag_grid //!eof:engine/eclTag/eclTag_grid.php; //!file:engine/eclTag/eclTag_help.php; class eclTag_help { // class eclTag_help static $type = 'scope'; static function render ($render) { // function render global $store; if (!$render->getVar ('name') or !$render->getVar ('help') or !$render->getVar ('caption')) return; $control = array (); $local = array (); $data = array (); if ($render->getVar ('content')) { // from current control if ($render->getVar ('title')) $local['caption'] = $render->getVar ('title'); elseif ($render->getVar ('caption')) $local['caption'] = $render->getVar ('caption'); else return; $local['content'] = $render->getVar ('content'); $render->local['help_caption'] = $local['caption']; $control = array (); if ($render->getVar ('icon')) $local['icon'] = $render->getVar ('icon'); } // from current control elseif ($render->getVar ('help_msg')) { // from previous defined message $control = $store->control->read ($render->getVar ('help_msg')); if (!isset ($control['text']['caption'])) return; $data['caption'] = $control['text']['caption']; } // from previous message $local['name'] = $render->getVar ('name'); $local['return_id'] = $local['name']; $data['caption'] = $render->getVar ('caption'); $local['field_caption'] = $render->getVar ('caption'); $data['url'] = $render->document->mod->humperstilshen->dialog ($control, $local); $block = $store->control->read ('blocks/help'); $block['local'] = $data; return $block; } // function render } // class eclTag_help //!eof:engine/eclTag/eclTag_help.php; //!file:engine/eclTag/eclTag_html.php; class eclTag_html { // class eclTag_html static $type = 'module'; static function render ($render, $arguments) { // function render global $store; $document = $render->document; $tagArguments = implode (' ', $arguments); $arguments = explode (' ', $tagArguments); // Vamos abrir o módulo $mod = $document->createModule ('html', $arguments); // Se o módulo estiver marcado como vazio if (!$mod->enabled) return; $data = $mod->data; $data['local']['tag'] = 'html:' . $tagArguments; $data['mod'] = $data['local']; $data['children'] = $mod->children; return $data; } // function render } // class eclTag_html //!eof:engine/eclTag/eclTag_html.php; //!file:engine/eclTag/eclTag_http.php; class eclTag_http { // class eclTag_http static function render ($render, $arguments) { // function render if (!isset ($arguments[0]) or !is_string ($arguments[0]) or !strlen ($arguments[0])) return; $args = explode (' ', $arguments[0], 2); if (substr ($args[0], 0, 2) != '//') $args[0] = '//' . $args[0]; $buffer = ''; if (isset ($args[1]) and strlen ($args[1])) $buffer .= $args[1]; else $buffer .= substr ($args[0], 2); $buffer .= "" . CRLF; $render->buffer .= $buffer; } // function render } // class eclTag_http //!eof:engine/eclTag/eclTag_http.php; //!file:engine/eclTag/eclTag_https.php; class eclTag_https { // class eclTag_https static function render ($render, $arguments) { // function render if (!isset ($arguments[0]) or !is_string ($arguments[0]) or !strlen ($arguments[0])) return; $args = explode (' ', $arguments[0], 2); if (substr ($args[0], 0, 2) != '//') $args[0] = '//' . $args[0]; $buffer = ''; if (isset ($args[1]) and strlen ($args[1])) $buffer .= $args[1]; else $buffer .= substr ($args[0], 2); $buffer .= "" . CRLF; $render->buffer .= $buffer; } // function render } // class eclTag_https //!eof:engine/eclTag/eclTag_https.php; //!file:engine/eclTag/eclTag_img.php; class eclTag_img { // class eclTag_img static $type = 'module'; static function render ($render, $arguments) { // function render global $store; $document = $render->document; $tagArguments = implode (' ', $arguments); $arguments = explode (' ', $tagArguments); switch (count ($arguments)) { // switch number of arguments case 0: if (!isset ($document->application->data['name'])) return false; $arguments[0] = $document->application->data['name']; $arguments[1] = '0'; break; case 1: if (is_numeric ($arguments[0])) { // number if (!isset ($document->application->data['name'])) return false; $arguments[1] = $arguments[0]; $arguments[0] = $document->application->data['name']; break; } // number $arguments[1] = '0'; } // switch number of arguments // Vamos abrir o módulo $mod = $document->createModule ('img', $arguments); // Se o módulo estiver marcado como vazio if (!$mod->enabled) return; $data = $mod->data; $data['local']['tag'] = 'img:' . $tagArguments; $data['mod'] = $data['local']; $data['children'] = $mod->children; return $data; } // function render } // class eclTag_img //!eof:engine/eclTag/eclTag_img.php; //!file:engine/eclTag/eclTag_inline_class.php; class eclTag_inline_class { // class eclTag_inline_class static function render ($render, $arguments) { // function render if (!isset ($arguments[0][0])) return false; $result = array(); foreach (explode (' ', $arguments[0]) as $field) { // each field $parts = explode ('$', $field); if (!isset ($parts[1])) { // discrete class $result[] = $parts[0]; continue; } // discrete class $options = explode ('??', $parts[1]); $value = $render->getVar ($options[0]); if ($value !== '') { // exists $result[] = $parts[0] . $value; continue; } // exists if (!isset ($options[1])) continue; $result[] = $parts[0] . $options[1]; } // each field if (!$result) return false; $render->buffer .= ' class="' . implode (' ', $result) . '"'; return false; } // function render } // class eclTag_inline_class //!eof:engine/eclTag/eclTag_inline_class.php; //!file:engine/eclTag/eclTag_inline_lang.php; class eclTag_inline_lang { // class eclTag_inline_lang static $type = 'scope'; static function render ($render, $arguments) { // function render global $store; // Vamos encontrar o nome do campo selecionado if (!isset ($arguments[0])) $field = $render->getVar ('caption'); elseif (is_string ($arguments[0])) { // from constant @list ($prefix, $sufix) = explode ('_', $arguments[0], 2); $name = 'labels/' . $prefix . '/' . $sufix; $data = array (); if (isset ($render->blocks[$name])) $data = $render->blocks[$name]; if (!isset ($data['text']['caption'])) $data = $store->control->read ($name); if (!isset ($data['text']['caption'])) return; $field = $data['text']['caption']; } // from constant elseif (is_array ($arguments[0])) $field = $arguments[0]; else return; if (!is_array ($field)) return; $text = $render->document->selectLanguage ($field); if ($text[3] == $render->document->lang) return; $data['lang'] = $text[3]; $data['html'] = ' lang="' . $text[3] . '"'; return $data; } // function render } // class eclTag_inline_lang //!eof:engine/eclTag/eclTag_inline_lang.php; //!file:engine/eclTag/eclTag_inline_style.php; class eclTag_inline_style { // class eclTag_inline_style static function render ($render, $arguments) { // function render if (!isset ($arguments[0][0])) return false; $result = array(); foreach (explode (';', $arguments[0]) as $field) { // each field if (!isset ($field[0])) continue; if (!strpos ($field, ':')) continue; list ($property, $value) = explode (':', $field); $property = trim ($property); $value = trim ($value); if ($value[0] != '$') { // static value $result[] = $property . ':' . $value; continue; } // static value $value = $render->getVar (substr ($value, 1)); if ($value === '') continue; $result[] = $property . ':' . strval ($value); } // each field if (!$result) return false; $render->buffer .= ' style="' . implode ('; ', $result) . '"'; return false; } // function render } // class eclTag_inline_style //!eof:engine/eclTag/eclTag_inline_style.php; //!file:engine/eclTag/eclTag_key.php; class eclTag_key { // class eclTag_key static function render ($render, $arguments) { // function render global $store; if (!isset ($arguments[0]) or !is_string ($arguments[0]) or !strlen ($arguments[0])) return; $document = $render->document; $domain = $document->domain; $label = $key = $arguments[0]; if ($document->charset != 'ISO-8859-1') $key = mb_convert_encoding ($key, 'ISO-8859-1', $document->charset); $key = $render->toKeyword ($key); if (!strlen ($key)) return; if ($id = $store->domainContent->findMarker ($document->domain->domainId, 1)) $pathway = $store->domainContent->pathway ($document->domain->domainId, $id); else $pathway = array ($domain->name, '-glossary'); $pathway[] = $key; $url = $document->url ($pathway); $buffer = '' . $label . "" . CRLF; $render->buffer .= $buffer; } // function render } // class eclTag_key //!eof:engine/eclTag/eclTag_key.php; //!file:engine/eclTag/eclTag_list.php; class eclTag_list { // class eclTag_list static $type = 'scope'; static function render ($render, $arguments) { // function render global $store; $document = $render->document; // Se não existir uma lista if (!count ($render->children)) return; if (isset ($arguments[0]) and is_string ($arguments[0]) and isset ($arguments[0][0])) $name = 'lists/' . $arguments[0]; else $name = 'lists/default'; // Procuramos o bloco $data = $render->block ($name); unset ($data['text'], $data['local']); // Vamos procurar a lista if ($render->index) { // subitem if (!isset ($render->children[$render->index - 1]->children)) return; if (!count ($render->children[$render->index - 1]->children)) return; $data['children'] = $render->children[$render->index - 1]->children; $data['index'] = 1; $data['local'] = $render->children[$render->index - 1]->children[0]->data; $data['me'] = $render->children[$render->index - 1]->children[0]->me; if (count ($data['children']) == 1) $data['local']['last'] = 1; $data['local']['index'] = 1; } // subitem else { // list from module level 0 $data['data'] = $render->children[0]->data; $data['me'] = $render->children[0]->me; $render->index = 1; if (count ($render->children) == 1) $data['local']['last'] = 1; $data['local']['index'] = 1; } // list from module level 0 $data['local']['first'] = 1; return $data; } // function render } // class eclTag_list //!eof:engine/eclTag/eclTag_list.php; //!file:engine/eclTag/eclTag_loop.php; class eclTag_loop { // class eclTag_loop static function render ($render) { // function render $render->index++; // Se não houver um próximo item, prosseguiremos if ($render->index > count ($render->children)) return false; $render->data = $render->children[$render->index - 1]->data; $render->me = $render->children[$render->index - 1]->me; $render->data['index'] = $render->index; if ($render->index == count ($render->children)) $render->data['last'] = 1; return true; } // function render } // class eclTag_loop //!eof:engine/eclTag/eclTag_loop.php; //!file:engine/eclTag/eclTag_mailto.php; class eclTag_mailto { // class eclTag_mailto static function render ($render, $arguments) { // function render if (!isset ($arguments[0]) or !is_string ($arguments[0]) or !strlen ($arguments[0])) return; $args = explode (' ', $arguments[0], 2); $buffer = ''; if (isset ($args[1]) and strlen ($args[1])) $buffer .= $args[1]; else $buffer .= $args[0]; $buffer .= '' . CRLF; // hide $buffer = ''; $render->buffer .= $buffer; } // function render } // class eclTag_mailto //!eof:engine/eclTag/eclTag_mailto.php; //!file:engine/eclTag/eclTag_mod.php; class eclTag_mod { // class eclTag_mod static $type = 'module'; static function render ($render, $arguments) { // function render global $store; if (!isset ($arguments[0]) or !is_string ($arguments[0]) or !strlen ($arguments[0])) return; $tagArguments = implode (' ', $arguments); $arguments = explode (' ', $tagArguments); $name = array_shift ($arguments); // Vamos abrir o módulo $mod = $render->document->createModule ($name, $arguments); // Se o módulo estiver marcado como vazio if (!$mod->enabled) return; // Vamos criar o escopo para o módulo $data = $mod->data; if (isset ($data['text'])) $data['local']['text'] = $data['text']; $data['local']['tag'] = 'mod:' . $tagArguments; $data['mod'] = $data['local']; $data['children'] = $mod->children; return $data; } // function render } // class eclTag_mod //!eof:engine/eclTag/eclTag_mod.php; //!file:engine/eclTag/eclTag_modlist.php; class eclTag_modlist { // class eclTag_modlist static $type = 'scope'; static function render ($render, $arguments) { // function render if (!isset ($arguments[0]) or !is_string ($arguments[0]) or !strlen ($arguments[0])) return; // Que bloco deve ser inserido? $buffer = '['; foreach (explode (CRLF, $arguments[0]) as $name) { // each name $buffer .= 'mod`' . $name . '`;'; } // each name $data['html'] = $buffer; return $data; } // function render } // class eclTag_modlist //!eof:engine/eclTag/eclTag_modlist.php; //!file:engine/eclTag/eclTag_next.php; class eclTag_next { // class eclTag_next static function render ($render) { // function render if (!$render->index) return; if ($render->index < count ($render->children)) { // next item $render->index++; $render->data = $render->children[$render->index - 1]->data; $render->me = $render->children[$render->index - 1]->me; $render->data['index'] = $render->index; if ($render->index == count ($render->children)) $render->data['last'] = 1; return; } // next item $render->data = array (); $render->data = array (); return; } // function render } // class eclTag_next //!eof:engine/eclTag/eclTag_next.php; //!file:engine/eclTag/eclTag_nl.php; class eclTag_nl { // class eclTag_nl static function render ($render, $arguments) { // function render $render->buffer .= CRLF; } // function render } // class eclTag_nl //!eof:engine/eclTag/eclTag_nl.php; //!file:engine/eclTag/eclTag_or.php; class eclTag_or { // class eclTag_or static function render ($render, $arguments) { // function render if (!isset ($arguments[0])) return ''; if ($arguments[0]) return $arguments[0]; if (isset ($arguments[1])) return $arguments[1]; return ''; } // function render } // class eclTag_or //!eof:engine/eclTag/eclTag_or.php; //!file:engine/eclTag/eclTag_paste.php; class eclTag_paste { // class eclTag_paste static function render ($render, $arguments) { // function render if (!isset ($arguments[0]) or !is_string ($arguments[0]) or !strlen ($arguments[0])) return; // Vamos anotar a posição e o nome desta colagem $render->pasteIndex++; $render->pastePointer[$render->pasteIndex] = strlen ($render->buffer); $render->pasteNames[$render->pasteIndex] = $arguments[0]; } // function render } // class eclTag_paste //!eof:engine/eclTag/eclTag_paste.php; //!file:engine/eclTag/eclTag_personalite.php; class eclTag_personalite { // class eclTag_personalite static $type = 'scope'; static function render ($render, $arguments) { // function render global $store; if (!$arguments) $arguments[0] = 'module'; switch ($arguments[0]) { // switch argument case 'post': if (!$render->document->templateEditable) return; if ($render->me === false) return; $document = $render->document; $me = $render->me; if (!$me->domainId or !$me->id) return; if (!$document->access (4, $me->groups)) return; $data = $store->control->read ('blocks/personalite'); $pathway = array_slice ($me->pathway, 1); array_unshift ($pathway, $document->domain->name, '-personalite', 'extras', 'card'); $data['local']['personalite_url'] = $document->url ($pathway); $caption = $store->control->read ('modCard_edit'); $data['local']['personalite_caption'] = $caption['text']['caption']; return $data; break; default: if (!isset ($render->data['personalite_url'])) return; $block = $store->control->read ('blocks/personalite'); $block['local']['personalite_url'] = $render->data['personalite_url']; $block['local']['personalite_caption'] = $render->data['personalite_caption']; return $block; } // switch argument } // function render } // class eclTag_personalite //!eof:engine/eclTag/eclTag_personalite.php; //!file:engine/eclTag/eclTag_rendertable.php; class eclTag_rendertable { // class eclTag_rendertable static function render ($render, $arguments) { // function render $buffer = &$render->buffer; $heading = $render->getVar ('table_heading'); $editable = $render->getVar ('mod.editable'); $id = $render->getVar ('mod.id'); $number = $render->getVar ('mod.number'); $buffer .= 'children as $row) { // each row // Row class $buffer .= ''; $cellIndex = 0; foreach ($row->children as $cell) { // each cell if ($rowIndex < $heading) $buffer .= 'data['rowspan'])) $buffer .= ' rowspan="' . $cell->data['rowspan'] . '"'; // Colspan if (isset ($cell->data['colspan'])) $buffer .= ' colspan="' . $cell->data['colspan'] . '"'; // editable if ($editable) $buffer .= ' data-name="' . $id . '_table_' . $number . '_' . $rowIndex . '_' . $cellIndex . '" data-mode="stack"'; // Cell class $class = 'col-' . $cellIndex . ' cell-' . $rowIndex . '-' . $cellIndex; if (!isset ($cell->data['text']['caption']) and !isset ($cell->data['caption'])) $class .= ' empty'; if (isset ($cell->data['class'])) $class .= ' ' . $cell->data['class']; // Cell style if (isset ($cell->data['style'])) { // style $buffer .= ' style="'; foreach ($cell->data['style'] as $selector => $value) { // each selector if (strpos ($value, ':')) $buffer .= $value; else $buffer .= $selector . ':' . $value . '; '; } // each selector $buffer .= '"'; } // style $buffer .= '>'; // Cell link if (isset ($cell->data['url'])) $buffer .= ''; // Cell content if (isset ($cell->data['caption'])) eclTag_text::render ($render, array ($cell->data['caption'], $editable)); elseif (isset ($cell->data['text']['caption'])) eclTag_text::render ($render, array ($cell->data['text']['caption'], $editable)); elseif ($editable) eclTag_text::render ($render, array ('', $editable)); // End Cell link if (isset ($cell->data['url'])) $buffer .= ''; if ($rowIndex < $heading) $buffer .= '' . CRLF; else $buffer .= '' . CRLF; $cellIndex++; } // each cell $buffer .= '' . CRLF; $rowIndex++; } // each row $buffer .= '' . CRLF; } // function render } // class eclTag_rendertable //!eof:engine/eclTag/eclTag_rendertable.php; //!file:engine/eclTag/eclTag_scope.php; class eclTag_scope { // class eclTag_scope static $type = 'scope'; static function render ($render, $arguments) { // function render global $store, $system; if (!isset ($arguments[0]) or !is_string ($arguments[0]) or !strlen ($arguments[0])) return; $class = array_shift ($arguments); if (!preg_match ('/^[a-z][a-z0-9_]*$/', $class)) return false; $class = 'eclScope_' . $class; return $class::get ($render, $arguments); } // function render } // class eclTag_scope //!eof:engine/eclTag/eclTag_scope.php; //!file:engine/eclTag/eclTag_script.php; class eclTag_script { // class eclTag_script static function render ($render) { // function render $render->tagsStack[] = array ('script', true); $render->scissorsIndex++; $render->scissors[$render->scissorsIndex] = array ( 'position' => strlen ($render->buffer), 'label' => 'script', 'once' => false ); } // function render } // class eclTag_script //!eof:engine/eclTag/eclTag_script.php; //!file:engine/eclTag/eclTag_shared.php; class eclTag_shared { // class eclTag_shared static function render ($render, $arguments) { // function render if (!isset ($arguments[0]) or !is_string ($arguments[0]) or !strlen ($arguments[0])) return; $render->buffer .= $render->document->urlFiles ($arguments[0], true, '-shared'); } // function render } // class eclTag_shared //!eof:engine/eclTag/eclTag_shared.php; //!file:engine/eclTag/eclTag_style.php; class eclTag_style { // class eclTag_style static function render ($render) { // function render $render->tagsStack[] = array ('style', true); $render->scissorsIndex++; $render->scissors[$render->scissorsIndex] = array ( 'position' => strlen ($render->buffer), 'label' => 'style', 'once' => false ); } // function render } // class eclTag_style //!eof:engine/eclTag/eclTag_style.php; //!file:engine/eclTag/eclTag_table.php; class eclTag_table { // class eclTag_table static function render ($render, $arguments) { // function render if (isset ($arguments[0])) $name = 'table_' . $arguments[0]; else $name = 'table'; $render->tagsStack[] = array ('table', $name); $render->scissorsIndex++; $render->scissors[$render->scissorsIndex] = array ( 'position' => strlen ($render->buffer), 'name' => $name, ); } // function render } // class eclTag_table //!eof:engine/eclTag/eclTag_table.php; //!file:engine/eclTag/eclTag_tel.php; class eclTag_tel { // class eclTag_tel static function render ($render, $arguments) { // function render if (!isset ($arguments[0]) or !is_string ($arguments[0]) or !strlen ($arguments[0])) return; $args = explode (' ', $arguments[0], 2); if (substr ($args[0], 0, 2) != '//') $args[0] = '//' . $args[0]; $buffer = ''; if (isset ($args[1]) and strlen ($args[1])) $buffer .= $args[1]; else $buffer .= substr ($args[0], 2); $buffer .= "" . CRLF; $render->buffer .= $buffer; } // function render } // class eclTag_tel //!eof:engine/eclTag/eclTag_tel.php; //!file:engine/eclTag/eclTag_text.php; class eclTag_text { // class eclTag_text static function render ($render, $arguments) { // function render global $store; // Vamos encontrar o nome do campo selecionado if (!isset ($arguments[0])) $field = $render->getVar ('caption'); elseif (is_array ($arguments[0])) $field = $arguments[0]; elseif (is_string ($arguments[0]) and !strlen ($arguments[0])) return; elseif (is_string ($arguments[0])) { // from constant @list ($prefix, $sufix) = explode ('_', $arguments[0], 2); $name = 'labels/' . $prefix . '/' . $sufix; $data = array (); if (isset ($render->blocks[$name])) $data = $render->blocks[$name]; if (!isset ($data['text']['caption'])) $data = $store->control->read ($name); if (!isset ($data['text']['caption'])) return; $field = $data['text']['caption']; } // from constant else return; if (is_array ($field)) $text = $render->document->selectLanguage ($field); else $text = array (); if (isset ($arguments[1]) and $arguments[1]) { // editable if (!isset ($text[TEXT_CONTENT])) $text[TEXT_CONTENT] = CRLF; if (!isset ($text[TEXT_FORMAT])) $text[TEXT_FORMAT] = 1; if (!isset ($text[TEXT_ECOLABORE])) $text[TEXT_ECOLABORE] = 1; $text[TEXT_EDITABLE] = 1; } // editable if (!$text) return; $render->render ($text); } // function render } // class eclTag_text //!eof:engine/eclTag/eclTag_text.php; //!file:engine/eclTag/eclTag_text_language_caption.php; class eclTag_text_language_caption { // class eclTag_text_language_caption static function render ($render, $arguments) { // function render global $store; $data = $store->control->read ('labels/lang/' . $render->document->lang); if (!isset ($data['text']['caption'])) return; $field = $data['text']['caption']; $render->render ($render->document->selectLanguage ($field)); } // function render } // class eclTag_text_language_caption //!eof:engine/eclTag/eclTag_text_language_caption.php; //!file:engine/eclTag/eclTag_up.php; class eclTag_up { // class eclTag_up static function render ($render, $arguments) { // function render if (!$arguments) return false; $value = implode (' ', $arguments); $buffer = '' . $value . ''; $render->buffer .= $buffer; } // function render } // class eclTag_up //!eof:engine/eclTag/eclTag_up.php; //!file:engine/eclTag/eclTag_video.php; class eclTag_video { // class eclTag_video static $type = 'module'; static function render ($render, $arguments) { // function render global $store; $document = $render->document; $tagArguments = implode (' ', $arguments); $arguments = explode (' ', $tagArguments); switch (count ($arguments)) { // switch number of arguments case 0: if (!isset ($document->application->data['name'])) return false; $arguments[0] = $document->application->data['name']; $arguments[1] = '0'; break; case 1: if (is_numeric ($arguments[0])) { // number if (!isset ($document->application->data['name'])) return false; $arguments[1] = $arguments[0]; $arguments[0] = $document->application->data['name']; break; } // number $arguments[1] = '0'; } // switch number of arguments // Vamos abrir o módulo $mod = $document->createModule ('video', $arguments); // Se o módulo estiver marcado como vazio if (!$mod->enabled) return; $data = $mod->data; $data['local']['tag'] = 'video:' . $tagArguments; $data['mod'] = $data['local']; $data['children'] = $mod->children; return $data; } // function render } // class eclTag_video //!eof:engine/eclTag/eclTag_video.php; //!file:library/admin/constants/eclFilter_admin_constants_flag.php; /* * control_type * control_filter * control_target * control_field_name * control_value_cast int | string | bool */ class eclFilter_admin_constants_flag { // class eclFilter_admin_constants_flag static function create ($fieldName, $control, $formulary) { // function create global $io, $store; // target if (!isset ($control['flags']['target'])) return; $target = $control['flags']['target']; // name $local['name'] = $fieldName; // type if (isset ($control['flags']['type'])) $local['type'] = $control['flags']['type']; else $local['type'] = 'text_small'; // target $value = ''; if (defined ('SYSTEM_INSTALLATION_PROGRESS') and isset ($formulary->data[$target])) $value = $formulary->data[$target]; else { // from constant if ($io->systemConstants->check ($target)) $value = $io->systemConstants->constants[$target]; elseif (defined ($target)) $value = constant ($target); } // from constant if ($formulary->document->charset != 'UTF-8' and is_string ($value)) $value = mb_convert_encoding ($value, $formulary->document->charset, 'UTF-8'); if (is_string ($value)) $value = $formulary->htmlSpecialChars ($value); if (!isset ($control['children'])) { // no children $local['value'] = $value; $formulary->appendChild ($control, $local); return; } // no children $item = $formulary->appendChild ($control, $local); foreach ($control['children'] as $child) { // each child $data = $store->control->read ($child); if (!isset ($data['flags']['value']) or !isset ($data['text']['caption'])) continue; $local = array ( 'value' => $data['flags']['value'], 'caption' => $data['text']['caption'] ); $item->appendChild (false, $local) ->active ($data['flags']['value'] == $value); } // each child } // function create static function save ($fieldName, $control, $formulary) { // function save global $io; // target if (!isset ($control['flags']['target'])) return; $target = $control['flags']['target']; if (isset ($formulary->received[$fieldName])) $value = $formulary->received[$fieldName]; else $value = false; if ($value === false and isset ($control['flags']['required'])) $formulary->setRequiredMsg ($control, $fieldName); if (isset ($control['flags']['value_cast'])) { // cast value switch ($control['flags']['value_cast']) { // switch type case 'int': $value = intval ($value); break; case 'string': $value = strval ($value); if (!preg_match ('/^[\ -~]*$/', $value)) return $formulary->setErrorMsg ($control, $fieldName, 'system_msg_filterFlagError', $value); break; case 'bool': if ($value === 'false' or !$value) $value = false; else $value = true; break; case 'free': $value = $formulary->received[$fieldName]; if ($formulary->document->charset != 'UTF-8') $value = mb_convert_encoding ($value, 'UTF-8', $formulary->document->charset); } // switch type } // cast value // target if (defined ('SYSTEM_INSTALLATION_PROGRESS')) $formulary->data[$target] = $value; else $io->systemConstants->set ($target, $value); } // function save } // class eclFilter_admin_constants_flag //!eof:library/admin/constants/eclFilter_admin_constants_flag.php; //!file:library/admin/constants/eclFilter_admin_constants_folder.php; /* * control_type * control_filter * control_target * control_field_name */ class eclFilter_admin_constants_folder { // class eclFilter_admin_constants_folder static function create ($fieldName, $control, $formulary) { // function create global $io; // target if (!isset ($control['flags']['target'])) return; $target = $control['flags']['target']; // name $local['name'] = $fieldName; // type if (isset ($control['flags']['type'])) $local['type'] = $control['flags']['type']; else $local['type'] = 'text_small'; // get value $value = ''; if (defined ('SYSTEM_INSTALLATION_PROGRESS')) $value = $formulary->getField ($target); if ($value === false) $value = ''; if ($value == '') { // get value from constant if ($io->systemConstants->check ($target)) $value = $io->systemConstants->constants[$target]; elseif (defined ($target)) $value = constant ($target); } // from constant $local['value'] = $value; $formulary->appendChild ($control, $local); } // function create static function save ($fieldName, $control, $formulary) { // function save global $io; // target if (!isset ($control['flags']['target'])) return; $target = $control['flags']['target']; if (defined ('SYSTEM_INSTALLATION_PROGRESS')) $old = $formulary->getField ($target); else { // from constant // Old value if ($io->systemConstants->check ($target)) $old = $io->systemConstants->constants[$target]; elseif (defined ($target)) $old = constant ($target); } // from constant if (!isset ($formulary->received[$fieldName])) return $formulary->setErrorMsg ($control, $fieldName, 'admin_constants_filterFolderError'); $value = $formulary->received[$fieldName]; if (substr ($value, - 1) != '/') $value .= '/'; if (defined ('SYSTEM_INSTALLATION_PROGRESS')) { // installation in progress if ($value === $old) return; } // installation in progress else { // normal if ($value == $old and is_dir (PATH_ROOT . $old)) return; } // normal if (!preg_match ('%^[.]?[a-zA-Z0-9_-]+\/?$%', $value)) return $formulary->setErrorMsg ($control, $fieldName, 'admin_constants_filterFolderError', $value); // check for name conflict $folders = array ('FOLDER_DATABASE', 'FOLDER_DOMAINS', 'FOLDER_ENGINE', 'FOLDER_LIBRARY', 'FOLDER_PROFILES', 'FOLDER_SHARED'); foreach ($folders as $folder) { // check folder if ($folder == $target) continue; if (defined ('SYSTEM_INSTALLATION_PROGRESS')) { // installation in progress if (!isset ($formulary->data[$folder])) continue; if ($formulary->data[$folder] != $value) continue; return $formulary->setErrorMsg ($control, $fieldName, 'admin_constants_filterFolderExists', $value); } // installation in progress if (!$io->systemConstants->check ($folder) and constant ($folder) != $value) continue; if ($io->systemConstants->check ($folder) and $io->systemConstants->constants[$folder] != $value) continue; return $formulary->setErrorMsg ($control, $fieldName, 'admin_constants_filterFolderExists', $value); } // check folder if (defined ('SYSTEM_INSTALLATION_PROGRESS')) return $formulary->setField ($target, $value); if (is_dir (PATH_ROOT . $value)) return $formulary->setErrorMsg ($control, $fieldName, 'admin_constants_filterFolderExists', $value); if (is_dir (PATH_ROOT . $old)) rename (PATH_ROOT . $old, PATH_ROOT . $value); elseif (!is_dir (PATH_ROOT . $value)) mkdir (PATH_ROOT . $value); $io->systemConstants->set ($target, $value); } // function save } // class eclFilter_admin_constants_folder //!eof:library/admin/constants/eclFilter_admin_constants_folder.php; //!file:library/admin/constants/eclFilter_admin_constants_password.php; /* * control_type * control_filter * control_target * control_field_name */ class eclFilter_admin_constants_password { // class eclFilter_admin_constants_password static function create ($fieldName, $control, $formulary) { // function create global $io, $store; // target if (!isset ($control['flags']['target'])) return; // name $local['name'] = $fieldName; // type if (isset ($control['flags']['type'])) $local['type'] = $control['flags']['type']; else $local['type'] = 'text_small'; $formulary->appendChild ($control, $local); $control = $store->control->read ('labels/field/password2'); $local['name'] = $fieldName . '_2'; $formulary->appendChild ($control, $local); } // function create static function save ($fieldName, $control, $formulary) { // function save global $io; // target if (!isset ($control['flags']['target'])) return; $target = $control['flags']['target']; if (isset ($formulary->received[$fieldName])) $value = $formulary->received[$fieldName]; else $value = false; if ($value == '') $value = false; if (defined ('SYSTEM_INSTALLATION_PROGRESS') and $value === false and isset ($formulary->data[$target])) return; if ($value === false and isset ($control['flags']['required'])) return $formulary->setRequiredMsg ($control, $fieldName, 'system_msg_filterPasswordRequired'); if (!preg_match ('/^[\ -~]+$/', $value)) return $formulary->setErrorMsg ($control, $fieldName, 'system_msg_filterPasswordInvalidCharacter'); if (!isset ($formulary->received[$fieldName . '_2'])) return $formulary->setErrorMsg ($control, $fieldName, 'system_msg_filterPasswordRepeatError'); if ($formulary->received[$fieldName . '_2'] != $value) return $formulary->setErrorMsg ($control, $fieldName, 'system_msg_filterPasswordRepeatError'); // target if (defined ('SYSTEM_INSTALLATION_PROGRESS')) $formulary->data[$target] = md5 ($value); else $io->systemConstants->set ($target, md5 ($value)); } // function save } // class eclFilter_admin_constants_password //!eof:library/admin/constants/eclFilter_admin_constants_password.php; //!file:library/admin/constants/eclFilter_admin_constants_select.php; class eclFilter_admin_constants_select { // class eclFilter_admin_constants_select static function create ($fieldName, $control, $formulary) { // function create global $io, $store; if (!isset ($control['flags']['target'])) return; $target = $control['flags']['target']; $item = $formulary->appendChild ($control); // name $item->data['name'] = $fieldName; // type if (isset ($control['flags']['type'])) $item->data['type'] = $control['flags']['type']; else $item->data['type'] = 'select'; // target if ($io->systemConstants->check ($target)) $value = $io->systemConstants->constants[$target]; elseif (defined ($target)) $value = constant ($target); else $value = false; if (isset ($control['children'])) { // children exists foreach ($control['children'] as $child_name) { // each child $data = $store->control->read ($child_name); $child = $item->appendChild ($data); if (isset ($data['flags']['value'])) { // value exists $child->data['value'] = $data['flags']['value']; $child->active ($data['flags']['value'] == $value); } // value exists } // each child } // children exists } // function create static function save ($fieldName, $control, $formulary) { // function save global $io, $store; if (isset ($formulary->received[$fieldName])) $value = $formulary->received[$fieldName]; else $value = false; $found = false; if (isset ($control['children'])) { // children exists foreach ($control['children'] as $child_name) { // each child $child = $store->control->read ($child_name); if (isset ($child['flags']['value']) and $child['flags']['value'] == $value) { // value found $found = $value; break; } // value found } // each child } // children exists $value = $found; // required if ($value === false and isset ($control['flags']['required'])) return $formulary->setRequiredMsg ($control, $fieldName); // control_default_value elseif ($value === false and isset ($control['flags']['default_value'])) $value = $control['flags']['default_value']; // value cast if (isset ($control['flags']['value_cast'])) { // cast value switch ($control['flags']['value_cast']) { // switch type case 'int': $value = intval ($value); break; case 'string': $value = strval ($value); break; case 'bool': if ($value === 'false' or !$value) $value = false; else $value = true; } // switch type } // cast value // target if (isset ($control['flags']['target'])) $io->systemConstants->set ($control['flags']['target'], $value); } // function save } // class eclFilter_admin_constants_select //!eof:library/admin/constants/eclFilter_admin_constants_select.php; //!file:library/admin/constants/eclFilter_admin_constants_selectCurrency.php; class eclFilter_admin_constants_selectCurrency { // class eclFilter_admin_constants_selectCurrency static function create ($fieldName, $control, $formulary) { // function create global $dataMap, $io, $store; $document = $formulary->document; if (!isset ($control['flags']['target'])) return; $item = $formulary->appendChild ($control); // name $item->data['name'] = $fieldName; // type if (isset ($control['flags']['type'])) $item->data['type'] = $control['flags']['type']; else $item->data['type'] = 'select'; if ($io->systemConstants->check ($control['flags']['target'])) $value = $io->systemConstants->constants[$control['flags']['target']]; elseif (defined ($control['flags']['target'])) $value = constant ($control['flags']['target']); else $value = false; $names = array (); if (isset ($dataMap['t']['labels/currency'])) { // from embeded $names = array_keys ($dataMap['t']['labels/currency']); } // from embeded elseif (is_dir (PATH_TEMPLATES . 'labels/currency')) { // from folder foreach (scandir (PATH_TEMPLATES . 'labels/currency') as $filename) { // each file if ($filename[0] == '.') continue; $names[] = substr ($filename, 0, 3); } // each file } // from folder foreach ($names as $currency) { // each currency $data = $store->control->read ('labels/currency/' . $currency); $symbol = $currency . ' '; if (isset ($data['local']['symbol'])) $symbol .= '(' . $data['local']['symbol'] . ') '; $local = array ('value' => $currency); if (isset ($data['text'])) $local['caption'] = $document->textMerge ($symbol, $data['text']['caption']); else $local['caption'] = $document->textMerge ($symbol, $data['text']['caption']); if ($value == $currency) $local['active'] = 1; $item->appendChild ($local); } // each lang } // function create static function save ($fieldName, $control, $formulary) { // function save global $io, $store; if (!isset ($formulary->received[$fieldName])) return; $value = $formulary->received[$fieldName]; // target if (isset ($control['flags']['target'])) $io->systemConstants->set ($control['flags']['target'], $value); } // function save } // class eclFilter_admin_constants_selectCurrency //!eof:library/admin/constants/eclFilter_admin_constants_selectCurrency.php; //!file:library/admin/constants/eclFilter_admin_constants_selectLang.php; class eclFilter_admin_constants_selectLang { // class eclFilter_admin_constants_selectLang static function create ($fieldName, $control, $formulary) { // function create global $dataMap, $io, $store; $document = $formulary->document; if (!isset ($control['flags']['target'])) return; $item = $formulary->appendChild ($control); // name $item->data['name'] = $fieldName; // type if (isset ($control['flags']['type'])) $item->data['type'] = $control['flags']['type']; else $item->data['type'] = 'select'; if ($io->systemConstants->check ($control['flags']['target'])) $value = $io->systemConstants->constants[$control['flags']['target']]; elseif (defined ($control['flags']['target'])) $value = constant ($control['flags']['target']); else $value = false; $names = array (); if (isset ($dataMap['t']['labels/lang'])) { // from embeded $names = array_keys ($dataMap['t']['labels/lang']); } // from embeded elseif (is_dir (PATH_TEMPLATES . 'labels/lang')) { // from folder foreach (scandir (PATH_TEMPLATES . 'labels/lang') as $filename) { // each file if ($filename[0] == '.') continue; $names[] = substr ($filename, 0, 2); } // each file } // from folder foreach ($names as $lang) { // each lang $data = $store->control->read ('labels/lang/' . $lang); $item->appendChild ($data, array ('value' => $lang)) ->active ($lang == $value); } // each lang } // function create static function save ($fieldName, $control, $formulary) { // function save global $io, $store; if (!isset ($formulary->received[$fieldName])) return; $value = $formulary->received[$fieldName]; // target if (isset ($control['flags']['target'])) $io->systemConstants->set ($control['flags']['target'], $value); } // function save } // class eclFilter_admin_constants_selectLang //!eof:library/admin/constants/eclFilter_admin_constants_selectLang.php; //!file:library/admin/constants/eclFilter_admin_constants_selectOptions.php; class eclFilter_admin_constants_selectOptions { // class eclFilter_admin_constants_selectOptions static function create ($fieldName, $control, $formulary) { // function create global $dataMap, $io, $store; $document = $formulary->document; if (!isset ($control['flags']['target'])) return; $target = $control['flags']['target']; $item = $formulary->appendChild ($control); // name $item->data['name'] = $fieldName; // type if (isset ($control['flags']['type'])) $item->data['type'] = $control['flags']['type']; else $item->data['type'] = 'select'; if ($io->systemConstants->check ($target)) $value = $io->systemConstants->constants[$target]; elseif (defined ($target)) $value = constant ($target); else $value = false; if (!isset ($control['options'])) return; foreach ($control['options'] as $option) { // each option $item->appendChild (false, array ('value' => $option, 'caption' => $document->textMerge ($option))) ->active ($option == $value); } // each option } // function create static function save ($fieldName, $control, $formulary) { // function save global $io, $store; if (!isset ($control['flags']['target'])) return; $target = $control['flags']['target']; if (!isset ($formulary->received[$fieldName])) return; $value = $formulary->received[$fieldName]; $io->systemConstants->set ($target, $value); } // function save } // class eclFilter_admin_constants_selectOptions //!eof:library/admin/constants/eclFilter_admin_constants_selectOptions.php; //!file:library/admin/eclApp_admin.php; class eclApp_admin { // class eclApp_admin const menuType = 'domain'; static function is_child ($parent, $name) { // function is_child if ($name == SYSTEM_ADMIN_URI or $name == '-' . SYSTEM_ADMIN_URI) return true; return false; } // function is_child static function get_children_names () { // function get_children_names return array (SYSTEM_ADMIN_URI); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('admin_content'); $me->getMap (); $me->isDomain = true; } // function constructor_helper } // class eclApp_admin //!eof:library/admin/eclApp_admin.php; //!file:library/admin/eclFilter_admin_ok.php; class eclFilter_admin_ok { // class eclFilter_admin_ok static function create ($fieldName, $control, $formulary) { // function create $local['name'] = $fieldName; // type if (isset ($control['flags']['type'])) $local['type'] = $control['flags']['type']; else $local['type'] = 'text_tiny'; $formulary->appendChild ($control, $local); } // function create static function save ($fieldName, $control, $formulary) { // function save if (!isset ($formulary->received[$fieldName]) or !preg_match ('/^["]?[oO][kK]["]?$/', $formulary->received[$fieldName])) $formulary->setErrorMsg ($control, $fieldName, 'system_msg_filterConfirmWithOkError'); } // function save } // class eclFilter_admin_ok //!eof:library/admin/eclFilter_admin_ok.php; //!file:library/admin/eclMod_admin_list.php; class eclMod_admin_list { // class eclMod_admin_list public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; $me = $document->application; $mod->data = $store->control->read ('modules/list'); $row = $mod->appendChild (); foreach ($me->menuChildren ($document) as $child) { // each child $row->appendChild ($child) ->swapTitle () ->url ($child->pathway) ->virtual ($child->access); } // each child if ($row->children) $mod->enabled = true; } // function setModule } // class eclMod_admin_list //!eof:library/admin/eclMod_admin_list.php; //!file:library/adminAlerts/eclApp_adminAlerts.php; class eclApp_adminAlerts { // class eclApp_adminAlerts const name = 'alerts'; const menuType = 'section'; const dataFrom = 'adminAlerts_main'; const access = 4; static function constructor_helper ($me) { // function constructor_helper $me->getMap (); } // function constructor_helper static function dispatch ($document) { // function dispatch global $store; $me = $document->application; if (!count ($me->children ())) $document->dataMerge ('adminAlerts_mainEmpty'); else $document->mod->list = new eclMod_admin_list ($document); } // function dispatch } // class eclApp_adminAlerts //!eof:library/adminAlerts/eclApp_adminAlerts.php; //!file:library/adminAlerts/log/eclApp_adminAlerts_log.php; class eclApp_adminAlerts_log { // class eclApp_adminAlerts_log static function is_child ($me, $name) { // function is_child if (substr ($name, 0, 4) == 'log_') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'section'; } // function get_menu_type static function get_children_names () { // function get_children_names $names = array (); if (is_file (PATH_DATABASE . 'log/.ht_error')) $names[] = 'log_error'; if (is_file (PATH_DATABASE . '.database.log')) $names[] = 'log_database'; if (is_file (PATH_ROOT . '.error_log')) $names[] = 'log_php'; if (!defined ('DATABASE_ENABLED') or !DATABASE_ENABLED) $names[] = 'log_databasedisabled'; return $names; } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('adminAlerts_' . $me->name); switch ($me->name) { // switch name case 'log_php': $me->pathway = array (SYSTEM_ADMIN_URI, 'system', 'log'); break; case 'log_database': $me->pathway = array (SYSTEM_ADMIN_URI, 'database', 'log'); break; case 'log_databasedisabled': $me->pathway = array (SYSTEM_ADMIN_URI, 'database', 'config'); break; } // switch name } // function constructor_helper static function dispatch ($document) { // function dispatch global $system; $me = $document->application; switch ($me->name) { // switch name case 'log_php': $document->application = $system->child (SYSTEM_ADMIN_URI)->child ('system')->child ('log'); $document->application->dispatch ($document); break; case 'log_database': $document->application = $system->child (SYSTEM_ADMIN_URI)->child ('database')->child ('log'); $document->application->dispatch ($document); break; case 'log_databasedisabled': $document->application = $system->child (SYSTEM_ADMIN_URI)->child ('database')->child ('config'); $document->application->dispatch ($document); break; case 'log_error': default: } // switch name } // function dispatch } // class eclApp_adminAlerts_log //!eof:library/adminAlerts/log/eclApp_adminAlerts_log.php; //!file:library/adminAlerts/update/eclApp_adminAlerts_update.php; class eclApp_adminAlerts_update { // class eclApp_adminAlerts_update static function is_child ($me, $name) { // function is_child if ($name == 'update') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'section'; } // function get_menu_type static function get_children_names () { // function get_children_names global $io; if (defined ('SYSTEM_ENGINE_UPDATE_CHECK')) { // last check defined $value = $io->webservice->json2array (SYSTEM_ENGINE_UPDATE_CHECK); if (isset ($value['request_date'])) { // request exists list ($y, $m, $d) = explode ('-', $value['request_date']); $requestDate = mktime (0, 0, 30, $m, $d, $y); if ($requestDate + 1296000 > TIME) { // do not check again if (isset ($value['release']) and $value['release'] == SYSTEM_RELEASE) return array (); // compare dates list ($y, $m, $d) = explode ('-', SYSTEM_RELEASE); $currentRelease = mktime (0, 0, 30, $m, $d, $y); list ($y, $m, $d) = explode ('-', $value['release']); $nextRelease = mktime (0, 0, 30, $m, $d, $y); if ($currentRelease > $nextRelease) return array (); return array ('update'); } // do not check again } // request exists } // last check defined $data = $io->webservice->request (SYSTEM_ENGINE_UPDATE_URL); if (isset ($data['EcolaboreEngine'])) { // update found $data = $data['EcolaboreEngine']; $data['request_date'] = date ('Y-m-d', TIME); $io->systemConstants->set ('SYSTEM_ENGINE_UPDATE_CHECK', $io->webservice->array2json ($data)); if (isset ($data['release']) and $data['release'] == SYSTEM_RELEASE) return array (); // compare dates list ($y, $m, $d) = explode ('-', SYSTEM_RELEASE); $currentRelease = mktime (0, 0, 30, $m, $d, $y); list ($y, $m, $d) = explode ('-', $data['release']); $nextRelease = mktime (0, 0, 30, $m, $d, $y); if ($currentRelease > $nextRelease) return array (); return array ('update'); } // update found // A problem occurred return array (); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('adminAlerts_update_newReleaseAvailable'); $me->pathway = array (SYSTEM_ADMIN_URI, 'system', 'update'); } // function constructor_helper static function dispatch ($document) { // function dispatch global $system; $me = $document->application; $document->application = $system->child (SYSTEM_ADMIN_URI)->child ('system')->child ('update'); $document->application->dispatch ($document); } // function dispatch } // class eclApp_adminAlerts_update //!eof:library/adminAlerts/update/eclApp_adminAlerts_update.php; //!file:library/adminComponents/config/eclApp_adminComponents_config.php; class eclApp_adminComponents_config { // class eclApp_adminComponents_config const name = 'config'; const menuType = 'section'; const dataFrom = 'adminComponents_config_content'; static function dispatch ($document) { // function dispatch } // function dispatch } // class eclApp_adminComponents_config //!eof:library/adminComponents/config/eclApp_adminComponents_config.php; //!file:library/adminComponents/eclApp_adminComponents.php; class eclApp_adminComponents { // class eclApp_adminComponents const name = 'components'; const menuType = 'section'; const dataFrom = 'adminComponents_content'; const access = 4; static function constructor_helper ($me) { // function constructor_helper $me->map = array ('adminComponents_config'); } // function constructor_helper static function dispatch ($document) { // function dispatch if (!is_dir (PATH_COMPONENTS)) { // create folder $formulary = $document->createFormulary ('adminComponents_folder', array (), 'createFolder'); if (!$formulary->command ('create') or !$formulary->save ()) { // view form $document->mod->formulary = $formulary; return; } // view form } // create folder $formulary = $document->createFormulary ('adminComponents_edit'); $formulary->command ('save') and $formulary->save (); $document->mod->formulary = $formulary; } // function dispatch } // class eclApp_adminComponents //!eof:library/adminComponents/eclApp_adminComponents.php; //!file:library/adminComponents/eclFilter_adminComponents_selectVersion.php; class eclFilter_adminComponents_selectVersion { // class eclFilter_adminComponents_selectVersion static function create ($fieldName, $control, $formulary) { // function create global $io; $components = $io->systemConstants->components; $document = $formulary->document; foreach (scandir (PATH_COMPONENTS) as $component) { // each folder if ($component[0] == '.') continue; if (!is_dir (PATH_COMPONENTS . $component)) continue; $local = array (); $local['text']['caption'] = $document->textMerge ($component); $local['name'] = $fieldName . '_' . $component; $local['type'] = 'select'; $select = $formulary->appendChild ($local); $select->appendChild ('adminComponents_editComponentDisabled') ->active (!isset ($components[$component]) or !is_dir (PATH_COMPONENTS . $component . '/' . $components[$component])); foreach (scandir (PATH_COMPONENTS . $component) as $version) { // each version if ($version[0] == '.') continue; if (!is_dir (PATH_COMPONENTS . $component . '/' . $version)) continue; $data['value'] = $version; $data['caption'] = $document->textMerge ($version); $select->appendChild ($data) ->active (isset ($components[$component]) and $version == $components[$component]); } // each version } // each folder } // function create static function save ($fieldName, $control, $formulary) { // function save global $io; $received = $formulary->received; $components = array (); $aliases = array (); $map = array (); foreach (scandir (PATH_COMPONENTS) as $component) { // each component if ($component[0] == '.') continue; if (!is_dir (PATH_COMPONENTS . $component)) continue; if (!isset ($received[$fieldName . '_' . $component][0])) continue; if (!is_dir (PATH_COMPONENTS . $component . '/' . $received[$fieldName . '_' . $component])) continue; $components[$component] = $received[$fieldName . '_' . $component]; foreach (scandir (PATH_COMPONENTS . $component . '/' . $components[$component]) as $folder) { // aliase each folder if ($folder[0] == '.') continue; if ($folder == 'shared' or $folder == 'templates') continue; if (!is_dir (PATH_COMPONENTS . $component . '/' . $components[$component] . '/' . $folder)) continue; $aliases[$folder] = $component; } // aliase each folder if (!is_file (PATH_COMPONENTS . $component . '/' . $components[$component] . '/about.ecl.php')) continue; $data = $io->file->open (PATH_COMPONENTS . $component . '/' . $components[$component] . '/about.ecl.php'); if (!isset ($data['map'])) continue; foreach ($data['map'] as $module => $list) { // map each module foreach ($list as $item) { // map each item if (!isset ($map[$module])) $map[$module] = array (); $map[$module][] = $item; } // map each item } // map each module } // each component ksort ($components); ksort ($map); ksort ($aliases); $io->systemConstants->components = $components; $io->systemConstants->aliases = $aliases; $io->systemConstants->map = $map; } // function save } // class eclFilter_adminComponents_selectVersion //!eof:library/adminComponents/eclFilter_adminComponents_selectVersion.php; //!file:library/adminDatabase/config/eclApp_adminDatabase_config.php; class eclApp_adminDatabase_config { // class eclApp_adminDatabase_config const name = 'config'; const menuType = 'section'; const dataFrom = 'adminDatabase_config_content'; static function dispatch ($document) { // function dispatch global $io, $store; $formulary = $document->createFormulary ('adminDatabase_config_edit'); if ($formulary->save ()) { // save if ($io->systemConstants->check ('DATABASE_ENABLED') and $io->systemConstants->constants['DATABASE_ENABLED']) { // check database connection $store->close (); $io->close (); $io->database->reconnect (); if ($io->database->status) $document->mod->humperstilshen->alert ('admin_constants_databaseEnabledSuccess'); else $document->mod->humperstilshen->alert ('admin_constants_databaseEnabledFailed'); } // check database connection else $document->mod->humperstilshen->alert ('admin_constants_databaseEnabledDisabled'); } // save $document->mod->formulary = $formulary; } // function dispatch } // class eclApp_adminDatabase_config //!eof:library/adminDatabase/config/eclApp_adminDatabase_config.php; //!file:library/adminDatabase/eclApp_adminDatabase.php; class eclApp_adminDatabase { // class eclApp_adminDatabase const name = 'database'; const menuType = 'section'; const dataFrom = 'adminDatabase_content'; const access = 4; const map = 'adminDatabase_config adminDatabase_encrypt adminDatabase_query adminDatabase_log'; static function dispatch ($document) { // function dispatch if (!is_dir (PATH_DATABASE)) { // create folder $formulary = $document->createFormulary ('adminDatabase_edit', array (), 'createFolder'); if (!$formulary->command ('create') or !$formulary->save ()) { // view form $document->mod->formulary = $formulary; return; } // view form } // create folder $document->mod->list = 'admin_list'; } // function dispatch } // class eclApp_adminDatabase //!eof:library/adminDatabase/eclApp_adminDatabase.php; //!file:library/adminDatabase/encrypt/eclApp_adminDatabase_encrypt.php; class eclApp_adminDatabase_encrypt { // class eclApp_adminDatabase_encrypt const name = 'encrypt'; const menuType = 'section'; const dataFrom = 'adminDatabase_encrypt_content'; static function dispatch ($document) { // function dispatch if ($document->actions ('key', 'generate')) return self::action_key_generate ($document); if ($document->actions ('key', 'import')) return self::action_key_import ($document); if (!defined ('SYSTEM_ENCRYPT_TYPE')) return self::action_create_key ($document); } // function dispatch static function action_create_key ($document) { // function action_create_key $formulary = $document->createFormulary ('adminDatabase_encrypt_key', array (), 'step1'); if ($formulary->command ('next') and $formulary->save ()) { // go next if ($formulary->data['mode'] == 'generate') return self::action_key_generate ($document); return self::action_key_import ($document); } // go next $document->mod->formulary = $formulary; $document->dataMerge ('adminDatabase_encrypt_contentKey'); } // function action_create_key static function action_key_generate ($document) { // function action_key_generate $formulary = $document->createFormulary ('adminDatabase_encrypt_generate', array (), 'generate'); if ($formulary->command ('previous')) return self::action_create_key ($document); if ($formulary->command ('next') and $formulary->save ()) { // generate key } // generate key $formulary->action = '_key-generate'; $document->mod->formulary = $formulary; $document->dataMerge ('adminDatabase_encrypt_contentGenerate'); } // function action_key_generate static function action_key_import ($document) { // function action_key_import $formulary = $document->createFormulary ('adminDatabase_encrypt_import', array (), 'import'); if ($formulary->command ('previous')) return self::action_create_key ($document); if ($formulary->command ('next') and $formulary->save ()) { // import key } // import key $formulary->action = '_key-import'; $document->mod->formulary = $formulary; $document->dataMerge ('adminDatabase_encrypt_contentImport'); } // function action_key_import } // class eclApp_adminDatabase_encrypt //!eof:library/adminDatabase/encrypt/eclApp_adminDatabase_encrypt.php; //!file:library/adminDatabase/encrypt/eclFilter_adminDatabase_encrypt_algorithms.php; class eclFilter_adminDatabase_encrypt_algorithms { // class eclFilter_adminDatabase_encrypt_algorithms static function create ($fieldName, $control, $formulary) { // function create $document = $formulary->document; $item = $formulary->appendChild ($control); // name $item->data['name'] = $fieldName; // type if (isset ($control['flags']['type'])) $item->data['type'] = $control['flags']['type']; else $item->data['type'] = 'select'; if (defined ('SYSTEM_ENCRYPT_ALGORITHM')) $value = SYSTEM_ENCRYPT_ALGORITHM; else $value = 'blowfish'; foreach (mcrypt_list_algorithms () as $algorithm) { // each algorithm $item->appendChild (array ( 'value' => $algorithm, 'caption' => $document->textMerge ($algorithm), 'active' => $algorithm == $value, )); } // each algorithm } // function create static function save ($fieldName, $control, $formulary) { // function save } // function save } // class eclFilter_adminDatabase_encrypt_algorithms //!eof:library/adminDatabase/encrypt/eclFilter_adminDatabase_encrypt_algorithms.php; //!file:library/adminDatabase/log/eclApp_adminDatabase_log.php; class eclApp_adminDatabase_log { // class eclApp_adminDatabase_log const name = 'log'; const menuType = 'section'; const dataFrom = 'adminDatabase_log_content'; static function dispatch ($document) { // function dispatch $formulary = $document->createFormulary ('adminDatabase_log_edit'); if ($formulary->command ('save') and $formulary->save ()) $document->mod->humperstilshen->alert ('system_msg_alertDataUpdated'); $document->mod->formulary = $formulary; } // function dispatch } // class eclApp_adminDatabase_log //!eof:library/adminDatabase/log/eclApp_adminDatabase_log.php; //!file:library/adminDatabase/log/eclFilter_adminDatabase_log.php; class eclFilter_adminDatabase_log { // class eclFilter_adminDatabase_log static function create ($fieldName, $control, $formulary) { // function create global $io; $item = $formulary->appendChild ($control); // name $item->data['name'] = $fieldName; // type if (isset ($control['flags']['type'])) $item->data['type'] = $control['flags']['type']; else $item->data['type'] = 'textarea'; $string = &$io->fileBinary->open (PATH_DATABASE . '.database.log'); if ($formulary->command ('clear_log')) $string = ''; $log = $io->fileBinary->open (PATH_DATABASE . '.database.log'); $item->data['value'] = $formulary->htmlSpecialChars ($log); } // function create static function save ($fieldName, $control, $formulary) { // function save } // function save } // class eclFilter_adminDatabase_log //!eof:library/adminDatabase/log/eclFilter_adminDatabase_log.php; //!file:library/adminDatabase/query/eclApp_adminDatabase_query.php; class eclApp_adminDatabase_query { // class eclApp_adminDatabase_query const name = 'query'; const menuType = 'section'; const dataFrom = 'adminDatabase_query_content'; static function dispatch ($document) { // function dispatch $document->mod->formulary = $document->createFormulary ('adminDatabase_query_edit'); } // function dispatch } // class eclApp_adminDatabase_query //!eof:library/adminDatabase/query/eclApp_adminDatabase_query.php; //!file:library/adminDatabase/query/eclFilter_adminDatabase_query_command.php; class eclFilter_adminDatabase_query_command { // class eclFilter_adminDatabase_query_command static function create ($fieldName, $control, $formulary) { // function create global $io; $item = $formulary->document->createListItem ($control); // name $item->data['name'] = $fieldName; // type if (!isset ($item->data['type'])) $item->data['type'] = 'textarea'; if (isset ($formulary->received[$fieldName . '_input']) and $io->database->status) { // perform a query $buffer = ''; $io->database->verbose = false; $result = $io->database->query ($formulary->received[$fieldName . '_input']); $header = true; $headers = array (); foreach ($result as $line) { // each line $values = array (); if ($header) { // creates a header $header = false; foreach ($line as $fieldName => $value) { // each field if (is_int ($fieldName)) continue; $headers[] = $fieldName; $values[] = $value; } // each field $buffer = implode ("\t", $headers) . CRLF; $buffer .= implode ("\t", $values) . CRLF; } // creates a header else { // header ready foreach ($line as $fieldName => $value) { // each field if (is_int ($fieldName)) continue; $values[] = $value; } // each field $buffer .= implode ("\t", $values) . CRLF; } // header ready } // each line if ($io->database->error ()) $buffer .= $formulary->received[$fieldName . '_input'] . CRLF . $io->database->error () . CRLF; if ($io->database->insertId ()) $buffer .= 'Insert id = ' . $io->database->insertId () . CRLF; if ($io->database->affectedRows ()) $buffer .= 'Rows = ' . $io->database->affectedRows () . CRLF; if (count ($result)) $buffer .= count ($result) . " rows in set" . CRLF; $item->data['value'] = $formulary->htmlSpecialChars ($buffer); $io->database->verbose = true; } // perform a query return $item; } // function create static function save ($fieldName, $control, $formulary) { // function save } // function save } // class eclFilter_adminDatabase_query_command //!eof:library/adminDatabase/query/eclFilter_adminDatabase_query_command.php; //!file:library/adminDefault/eclApp_adminDefault.php; class eclApp_adminDefault { // class eclApp_adminDefault const name = '-default'; const dataFrom = 'adminDefault_content'; const ignoreSubfolders = true; } // class eclApp_adminDefault //!eof:library/adminDefault/eclApp_adminDefault.php; //!file:library/adminDomains/add/eclApp_adminDomains_add.php; class eclApp_adminDomains_add { // class eclApp_adminDomains_add const name = '-new-domain'; const menuType = 'section'; const dataFrom = 'adminDomains_add_content'; const access = 4; static function dispatch ($document) { // function dispatch global $io, $store; $formulary = $document->createFormulary ('adminDomains_add_edit', array (), 'domainAdd'); if ($formulary->command ('save') and $formulary->save ()) { // formulary saved $domain['name'] = $formulary->data['name']; $domain['status'] = 1; mkdir (PATH_DOMAINS . $domain['name']); $domainId = $store->domain->insert ($domain); $data = $formulary->data; $data['mode'] = MODE_DOMAIN; $data['parent_id'] = 0; $data['name'] = '-register'; $data['text']['caption'] = $data['text']['title']; $store->domainContent->insert ($domainId, $data); $group = &$store->domainGroup->open ($domainId, 1); $group[$data['admin_id']] = 4; $document->received = array (); unset ($document->actions['domain']); $parent = $document->application->parent; $parent->reset (); $document->application = $parent->child ($formulary->data['name']); $document->application->dispatch ($document); $document->reload = $document->url (); return; } // formulary saved $document->mod->formulary = $formulary; if ($formulary->errorMsg) $document->mod->humperstilshen->alert ($formulary->errorMsg); } // function dispatch } // class eclApp_adminDomains_add //!eof:library/adminDomains/add/eclApp_adminDomains_add.php; //!file:library/adminDomains/add/eclFilter_adminDomains_add_admin.php; class eclFilter_adminDomains_add_admin { // class eclFilter_adminDomains_add_admin static function create ($fieldName, $control, $formulary) { // function create $item = $formulary->document->createListItem ($control); // name $item->data['name'] = $fieldName; // type if (isset ($control['flags']['type'])) $item->data['type'] = $control['flags']['type']; else $item->data['type'] = 'text'; return $item; } // function create static function save ($fieldName, $control, $formulary) { // function save global $store; if (!isset ($formulary->received[$fieldName]) or !preg_match ('/^[a-z0-9_-]+$/', $formulary->received[$fieldName])) return $formulary->setRequiredMsg ($control, $fieldName, 'adminDomains_add_editAdminRequired'); $userId = $store->user->getId ($formulary->received[$fieldName]); // required if (!$userId) return $formulary->setRequiredMsg ($control, $fieldName, 'adminDomains_add_editAdminRequired'); $formulary->data['admin_id'] = $userId; } // function save } // class eclFilter_adminDomains_add_admin //!eof:library/adminDomains/add/eclFilter_adminDomains_add_admin.php; //!file:library/adminDomains/add/eclFilter_adminDomains_add_name.php; /* * Control flags * control_type * control_target * control_field_name * control_required */ class eclFilter_adminDomains_add_name { // class eclFilter_adminDomains_add_name static function create ($fieldName, $control, $formulary) { // function create $item = $formulary->document->createListItem ($control); // name $item->data['name'] = $fieldName; // type if (isset ($control['flags']['type'])) $item->data['type'] = $control['flags']['type']; else $item->data['type'] = 'text'; // target if (isset ($control['flags']['target'])) $item->data['value'] = $formulary->getField ($control['flags']['target']); return $item; } // function create static function save ($fieldName, $control, $formulary) { // function save if (!isset ($formulary->received[$fieldName])) return $formulary->setErrorMsg ($control, $fieldName, 'adminDomains_add_editNameInvalidChars'); $value = trim ($formulary->received[$fieldName], ' -_'); if (!strlen ($value)) return $formulary->setErrorMsg ($control, $fieldName, 'adminDomains_add_editNameInvalidChars'); if (strlen ($value) > 18) $formulary->setErrorMsg ($control, $fieldName, 'adminDomains_add_editNameSoLong'); elseif (!preg_match ('/^[a-z0-9][a-z0-9_-]+$/', $value)) $formulary->setErrorMsg ($control, $fieldName, 'adminDomains_add_editNameInvalidChars'); elseif (is_dir (PATH_DOMAINS . $value)) $formulary->setErrorMsg ($control, $fieldName, 'adminDomains_add_editNameAlreadyExists'); if (isset ($control['flags']['target'])) $formulary->setField ($control['flags']['target'], $value); } // function save } // class eclFilter_adminDomains_add_name //!eof:library/adminDomains/add/eclFilter_adminDomains_add_name.php; //!file:library/adminDomains/details/eclApp_adminDomains_details.php; class eclApp_adminDomains_details { // class eclApp_adminDomains_details static function is_child ($me, $name) { // function is_child global $store; if (!strlen ($name)) return false; if ($store->domain->getId ($name)) return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'post'; } // function get_menu_type static function get_children_names () { // function get_children_names return array (); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store, $system; $me->domainId = $store->domain->getId ($me->name); $me->data = $store->control->read ('adminDomains_details_content'); $me->access = 4; } // function constructor_helper static function dispatch ($document) { // function dispatch global $io, $store, $system; $me = $document->application; $data = &$store->domainContent->open ($me->domainId, '-register'); if (!$data) { // creates a register $data = array ('domain_id' => $me->domainId, 'mode' => MODE_DOMAIN, 'parent_id' => 0, 'name' => '-register'); $store->domainContent->insert ($me->domainId, $data); $document->reload = $document->url (); $document->application = $me->parent; $document->application->dispatch ($document); return; } // creates a register $remove = $document->createFormulary ('adminDomains_details_contextRemoveConfirm', array (), 'domainRemove'); if ($remove->save ()) return self::action_remove ($document); elseif ($remove->errorMsg) $document->mod->humperstilshen->alert ($remove->errorMsg); $formulary = $document->createFormulary ('adminDomains_details_edit', $data, 'domainEdit'); $formulary->data['name'] = $me->name; $status = $store->domain->getStatus ($me->name); $formulary->data['status'] = $status; if ($formulary->save ()) { // formulary submited if ($formulary->command ('admin_add') and $formulary->data['admin_id']) { // add a new administrator $group = &$store->domainGroup->open ($me->domainId, 1); $group[$formulary->data['admin_id']] = 4; } // add a new administrator elseif ($formulary->command ('admin_remove') and $formulary->data['admin_select']) { // remove an administrator $group = &$store->domainGroup->open ($me->domainId, 1); unset ($group[$formulary->data['admin_select']]); } // remove an administrator elseif ($formulary->command ('save') and !$formulary->errorMsg) { // save $formulary->data['name'] = '-register'; if (!isset ($formulary->data['text']['caption'])) $formulary->data['text']['caption'] = $formulary->data['text']['title']; $data = $formulary->data; if ($formulary->data['status'] != $status) { // update status $domain = &$store->domain->open ($me->name); $domain['status'] = $formulary->data['status']; } // update status $formulary->errorMsg = 'system_msg_alertDataUpdated'; } // save } // returned formulary $formulary->data['name'] = $me->name; $document->mod->formulary = $formulary; if ($formulary->errorMsg) $document->mod->humperstilshen->alert ($formulary->errorMsg); // Context Remove $document->mod->context->appendChild ('adminDomains_details_contextRemove') ->confirm ('adminDomains_details_contextRemoveConfirm', $remove); } // function dispatch static function action_remove ($document) { // function action_remove global $io, $store; $me = $document->application; $id = $me->domainId; $store->domain->delete ($id); $io->database->delete ($store->domainContent, array ('domain_id' => $id)); $io->database->delete ($store->domainGroup, array ('domain_id' => $id)); $io->database->delete ($store->domainExtras, array ('domain_id' => $id)); $io->database->delete ($store->domainGroups, array ('domain_id' => $id)); foreach (scandir (PATH_DOMAINS . $me->name) as $filename) { // each domain file if (is_file (PATH_DOMAINS . $me->name . '/' . $filename)) unlink (PATH_DOMAINS . $me->name . '/' . $filename); } // each domain file rmdir (PATH_DOMAINS . $me->name); // returns to parent page $parent = $me->parent; $parent->reset (); $document->application = $parent; $document->application->dispatch ($document); $document->reload = $document->url (); } // function action_remove } // class eclApp_adminDomains_details //!eof:library/adminDomains/details/eclApp_adminDomains_details.php; //!file:library/adminDomains/details/eclFilter_adminDomains_details_adminAdd.php; class eclFilter_adminDomains_details_adminAdd { // class eclFilter_adminDomains_details_adminAdd static function create ($fieldName, $control, $formulary) { // function create $local['name'] = $fieldName; // type if (isset ($control['flags']['type'])) $local['type'] = $control['flags']['type']; else $local['type'] = 'text'; $formulary->appendChild ($control, $local); } // function create static function save ($fieldName, $control, $formulary) { // function save global $store; if (!$formulary->command ('admin_add')) return; if (isset ($formulary->received[$fieldName][0])) { // received value $value = trim ($formulary->received[$fieldName], ' -_'); if (!preg_match ('/^[a-z0-9_-]+$/', $value)) $value = false; } // received value else $value = false; if ($value === false) return $formulary->setRequiredMsg ($control, $fieldName); $userId = $store->user->getId ($value); if (!$userId) $formulary->setErrorMsg ($control, $fieldName, 'adminDomains_details_alertAdminRequired'); $domainId = $formulary->document->application->domainId; $group = $store->domainGroup->open ($domainId, 1); if (isset ($group[$userId]) and $group[$userId] == 4) $formulary->setErrorMsg ($control, $fieldName, 'adminDomains_details_alertAdminAlreadyExists', $value); $formulary->setField ('admin_id', $userId); $formulary->setField ('admin_name', $value); } // function save } // class eclFilter_adminDomains_details_adminAdd //!eof:library/adminDomains/details/eclFilter_adminDomains_details_adminAdd.php; //!file:library/adminDomains/details/eclFilter_adminDomains_details_adminSelect.php; class eclFilter_adminDomains_details_adminSelect { // class eclFilter_adminDomains_details_adminSelect static function create ($fieldName, $control, $formulary) { // function create global $store; $document = $formulary->document; $me = $document->application; $item = $formulary->appendChild ($control); // name $item->data['name'] = $fieldName; // type if (isset ($control['flags']['type'])) $item->data['type'] = $control['flags']['type']; else $item->data['type'] = 'select'; $domainId = $me->domainId; $group = $store->domainGroup->open ($domainId, 1); foreach ($group as $userId => $status) { // each user if (!$userId or $status != 4) continue; $data = $store->userContent->open ($userId, '-register'); if (isset ($data['text']['title'])) $caption = $data['text']['title']; elseif (isset ($data['text']['caption'])) $caption = $data['text']['caption']; else $caption = $document->textMerge ('unknown'); $item->appendChild (false, array ( 'value' => $userId, 'caption' => $caption )); } // each user } // function create static function save ($fieldName, $control, $formulary) { // function save global $store; if (!$formulary->command ('admin_remove')) return false; $userId = 0; if (isset ($formulary->received[$fieldName][0])) $userId = intval ($formulary->received[$fieldName]); if (!$userId) return $formulary->setErrorMsg ($control, $fieldName, 'adminDomains_details_alertAdminPleaseSelect'); $domainId = $formulary->document->application->domainId; $group = $store->domainGroup->open ($domainId, 1); if (!isset ($group[$userId])) return $formulary->setErrorMsg ($control, $fieldName, 'adminDomains_details_alertAdminRemoveError'); $i = 0; foreach ($group as $status) { // each status if ($status == 4) $i++; } // each status if ($i <= 1) return $formulary->setErrorMsg ($control, $fieldName, 'adminDomains_details_alertAdminRemoveLast'); $formulary->data['admin_select'] = $userId; } // function save } // class eclFilter_adminDomains_details_adminSelect //!eof:library/adminDomains/details/eclFilter_adminDomains_details_adminSelect.php; //!file:library/adminDomains/eclApp_adminDomains.php; class eclApp_adminDomains { // class eclApp_adminDomains const name = 'domains'; const menuType = 'section'; const dataFrom = 'adminDomains_content'; static function constructor_helper ($me) { // function constructor_helper global $io, $store; if ($io->database->tableEnabled ($store->domain) and is_dir (PATH_DOMAINS)) $me->map = array ('adminDomains_add', 'adminDomains_details'); } // function constructor_helper static function dispatch ($document) { // function dispatch global $io, $store; $me = $document->application; if (!$io->database->tableEnabled ($store->domain)) { // disabled $document->dataMerge ('adminDomains_contentDisabled'); return; } // disabled if (!is_dir (PATH_DOMAINS) and !$document->access (4)) { // no folder for visitors $document->dataMerge ('adminDomains_contentEmpty'); return; } // no folder for visitors if (!is_dir (PATH_DOMAINS)) { // create folder $formulary = $document->createFormulary ('adminDomains_edit', array (), 'createFolder'); if ($formulary->command ('create') and $formulary->save ()) { // create $folder_domains = PATH_ROOT . $io->systemConstants->get ('FOLDER_DOMAIN'); } // create else { // view form $document->mod->formulary = $formulary; return; } // view form } // create folder $document->mod->list = new eclMod_adminDomains_list ($document); if (!isset ($folder_domains)) $folder_domains = PATH_DOMAINS; if (count (scandir ($folder_domains)) == 2) { // empty $document->dataMerge ('adminDomains_contentEmpty'); return; } // empty } // function dispatch } // class eclApp_adminDomains //!eof:library/adminDomains/eclApp_adminDomains.php; //!file:library/adminDomains/eclFilter_adminDomains_selectCurrency.php; class eclFilter_adminDomains_selectCurrency { // class eclFilter_adminDomains_selectCurrency static function create ($fieldName, $control, $formulary) { // function create global $store; $document = $formulary->document; if (!isset ($control['flags']['target'])) return; $item = $formulary->appendChild ($control); // name $item->data['name'] = $fieldName; // type if (isset ($control['flags']['type'])) $item->data['type'] = $control['flags']['type']; else $item->data['type'] = 'select'; if (isset ($formulary->data['flags']['currency'])) $value = $formulary->data['flags']['currency']; else $value = SYSTEM_DEFAULT_CURRENCY; $names = array (); if (isset ($dataMap['t']['labels/currency'])) { // from embeded $names = array_keys ($dataMap['t']['labels/currency']); } // from embeded elseif (is_dir (PATH_TEMPLATES . 'labels/currency')) { // from folder foreach (scandir (PATH_TEMPLATES . 'labels/currency') as $filename) { // each file if ($filename[0] == '.') continue; $names[] = substr ($filename, 0, 3); } // each file } // from folder foreach ($names as $currency) { // each currency $data = $store->control->read ('labels/currency/' . $currency); $symbol = $currency . ' '; if (isset ($data['local']['symbol'])) $symbol .= '(' . $data['local']['symbol'] . ') '; $local = array ('value' => $currency); if (isset ($data['text'])) $local['caption'] = $document->textMerge ($symbol, $data['text']['caption']); else $local['caption'] = $document->textMerge ($symbol, $data['text']['caption']); if ($value == $currency) $local['active'] = 1; $item->appendChild ($local); } // each lang } // function create static function save ($fieldName, $control, $formulary) { // function save global $store; if (!isset ($formulary->received[$fieldName][0])) return; $formulary->data['flags']['currency'] = $formulary->received[$fieldName]; } // function save } // class eclFilter_adminDomains_selectCurrency //!eof:library/adminDomains/eclFilter_adminDomains_selectCurrency.php; //!file:library/adminDomains/eclFilter_adminDomains_selectLang.php; class eclFilter_adminDomains_selectLang { // class eclFilter_adminDomains_selectLang static function create ($fieldName, $control, $formulary) { // function create global $store; $document = $formulary->document; if (!isset ($control['flags']['target'])) return; $item = $formulary->appendChild ($control); // name $item->data['name'] = $fieldName; // type if (isset ($control['flags']['type'])) $item->data['type'] = $control['flags']['type']; else $item->data['type'] = 'select'; if (isset ($formulary->data['flags']['default_lang'])) $value = $formulary->data['flags']['default_lang']; elseif (defined ('SYSTEM_DEFAULT_LANGUAGE')) $value = SYSTEM_DEFAULT_LANGUAGE; else $value = 'en'; $names = $store->control->scandir ('t', 'labels/lang'); foreach ($names as $lang) { // each lang $data = $store->control->read ('labels/lang/' . $lang); $item->appendChild ($data, array ('value' => $lang)) ->active ($lang == $value); } // each lang } // function create static function save ($fieldName, $control, $formulary) { // function save global $store; if (!isset ($formulary->received[$fieldName][0])) return; $formulary->data['flags']['default_lang'] = $formulary->received[$fieldName]; } // function save } // class eclFilter_adminDomains_selectLang //!eof:library/adminDomains/eclFilter_adminDomains_selectLang.php; //!file:library/adminDomains/eclMod_adminDomains_list.php; class eclMod_adminDomains_list { // class eclMod_adminDomains_list public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; $row = $mod->appendChild (); if ($document->access (4)) { // access $pathway = $document->application->pathway; // Domain add $domain_pathway = $pathway; $domain_pathway[] = '-new-domain'; $row->appendChild ('adminDomains_add_content') ->virtual () ->url ($domain_pathway); } // access else $pathway = array (); if (is_dir (PATH_DOMAINS)) $names = $store->domain->childrenNames (); else $names = array (); foreach ($names as $name) { // each name $domainId = $store->domain->getId ($name); $data = $store->domainContent->open ($domainId, '-register'); if (!isset ($data['text']['title'])) $data = $store->domainContent->open ($domainId, '-index'); if (isset ($data['text']['title'])) $caption = $data['text']['title']; else $caption = $document->textMerge ('! ' . $name); $domain_pathway = $pathway; $domain_pathway[] = $name; $row->appendChild (false, array ('title' => $caption)) ->url ($domain_pathway) ->swapTitle (); } // each name $mod->data = $store->control->read ('modules/list'); $mod->enabled = true; } // function setModule } // class eclMod_adminDomains_list //!eof:library/adminDomains/eclMod_adminDomains_list.php; //!file:library/adminIndex/eclApp_adminIndex.php; class eclApp_adminIndex { // class eclApp_adminIndex const name = ''; const menuType = 'section'; const dataFrom = 'adminIndex_content'; static function constructor_helper ($me) { // function constructor_helper array_pop ($me->pathway); } // function constructor_helper } // class eclApp_adminIndex //!eof:library/adminIndex/eclApp_adminIndex.php; //!file:library/adminIntegrations/eclApp_adminIntegrations.php; class eclApp_adminIntegrations { // class eclApp_adminIntegrations const name = 'integrations'; const menuType = 'section'; const dataFrom = 'adminIntegrations_content'; const access = 4; static function constructor_helper ($me) { // function constructor_helper $me->getMap (); } // function constructor_helper static function dispatch ($document) { // function dispatch global $store; $me = $document->application; if (!count ($me->children ())) $document->dataMerge ('adminIntegrations_contentEmpty'); else $document->mod->list = new eclMod_admin_list ($document); } // function dispatch } // class eclApp_adminIntegrations //!eof:library/adminIntegrations/eclApp_adminIntegrations.php; //!file:library/adminSystem/admin/eclApp_adminSystem_admin.php; class eclApp_adminSystem_admin { // class eclApp_adminSystem_admin const name = 'admin'; const menuType = 'section'; const dataFrom = 'adminSystem_admin_content'; static function constructor_helper ($me) { // function constructor_helper $me->groups = array ( new eclGroup_adminSystem_admin ()); } // function constructor_helper static function dispatch ($document) { // function dispatch global $io; if ($document->actions ('admin', 'changed')) $document->mod->humperstilshen->alert ('system_msg_alertDataUpdated'); $formulary = $document->createFormulary ('adminSystem_admin_edit'); if ($formulary->save ()) { // change login $document->session['user_id'] = true; $document->session['user_name'] = $io->systemConstants->constants['ADMIN_IDENTIFIER']; $document->reload = $document->url (true, true, '_admin-changed'); } // change login else { // restore login $io->systemConstants->set ('ADMIN_IDENTIFIER', ADMIN_IDENTIFIER); } // restore login $document->mod->formulary = $formulary; if ($formulary->errorMsg) $document->mod->humperstilshen->alert ($formulary->errorMsg); } // function dispatch } // class eclApp_adminSystem_admin //!eof:library/adminSystem/admin/eclApp_adminSystem_admin.php; //!file:library/adminSystem/eclApp_adminSystem.php; class eclApp_adminSystem { // class eclApp_adminSystem const name = 'system'; const menuType = 'section'; const dataFrom = 'adminSystem_content'; const map = 'adminSystem_setup adminSystem_admin adminSystem_hosting adminSystem_server adminSystem_update adminSystem_eval adminSystem_log adminSystem_extract adminSystem_pack'; const access = 4; static function dispatch ($document) { // function dispatch $document->mod->list = new eclMod_admin_list ($document); } // function dispatch } // class eclApp_adminSystem //!eof:library/adminSystem/eclApp_adminSystem.php; //!file:library/adminSystem/eclGroup_adminSystem_admin.php; class eclGroup_adminSystem_admin { // class eclGroup_adminSystem_admin public function check ($document) { // function check if (!defined ('ADMIN_IDENTIFIER')) return 0; if ($document->user->name == ADMIN_IDENTIFIER) return 4; if ($document->user->userId) return 1; return 0; } // function check } // class eclGroup_adminSystem_admin //!eof:library/adminSystem/eclGroup_adminSystem_admin.php; //!file:library/adminSystem/eval/eclApp_adminSystem_eval.php; class eclApp_adminSystem_eval { // class eclApp_adminSystem_eval const name = 'eval'; const menuType = 'section'; const dataFrom = 'adminSystem_eval_content'; static function dispatch ($document) { // function dispatch $document->mod->formulary = $document->createFormulary ('adminSystem_eval_edit'); } // function dispatch } // class eclApp_adminSystem_eval //!eof:library/adminSystem/eval/eclApp_adminSystem_eval.php; //!file:library/adminSystem/eval/eclFilter_adminSystem_eval_evalInput.php; class eclFilter_adminSystem_eval_evalInput { // class eclFilter_adminSystem_eval_evalInput static function create ($fieldName, $control, $formulary) { // function create global $io, $store, $system, $groups, $document; $item = $formulary->document->createListItem ($control); // name $item->data['name'] = $fieldName; // type if (isset ($control['flags']['type'])) $item->data['type'] = $control['flags']['type']; else $item->data['type'] = 'textarea'; // eval if (isset ($formulary->received[$fieldName]) and $formulary->command ('save')) eval ($formulary->received[$fieldName]); return $item; } // function create static function save ($fieldName, $control, $formulary) { // function save } // function save } // class eclFilter_adminSystem_eval_evalInput //!eof:library/adminSystem/eval/eclFilter_adminSystem_eval_evalInput.php; //!file:library/adminSystem/extract/eclApp_adminSystem_extract.php; class eclApp_adminSystem_extract { // class eclApp_adminSystem_extract static function is_child ($me, $name) { // function is_child if (defined ('SYSTEM_IS_PACKED') and SYSTEM_IS_PACKED and $name == 'pack') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'section'; } // function get_menu_type static function get_children_names () { // function get_children_names if (defined ('SYSTEM_IS_PACKED') and SYSTEM_IS_PACKED) return array ('pack'); return array (); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('adminSystem_extract_content'); } // function constructor_helper static function dispatch ($document) { // function dispatch global $io; $formulary = $document->createFormulary ('adminSystem_extract_edit'); if ($formulary->command ('save') and $formulary->save ()) { // options saved $document->mod->humperstilshen->alert ('system_msg_alertDataUpdated'); } // options saved elseif ($formulary->command ('extract') and $formulary->save ()) { // extract files $io->packager->extract ($formulary->data); $document->reload = $document->url (); return; } // extract files $document->mod->formulary = $formulary; if ($formulary->errorMsg) $document->mod->humperstilshen->alert ($formulary->errorMsg); } // function dispatch } // class eclApp_adminSystem_extract //!eof:library/adminSystem/extract/eclApp_adminSystem_extract.php; //!file:library/adminSystem/hosting/eclApp_adminSystem_hosting.php; class eclApp_adminSystem_hosting { // class eclApp_adminSystem_hosting const name = 'hosting'; const menuType = 'section'; const dataFrom = 'adminSystem_hosting_content'; static function dispatch ($document) { // function dispatch global $io; $formulary = $document->createFormulary ('adminSystem_hosting_edit'); if ($formulary->save ()) { // formulary saved $document->mode = $io->systemConstants->get ('SYSTEM_HOSTING_MODE'); $document->mod->humperstilshen->alert ('system_msg_alertDataUpdated'); } // formulary saved $document->mod->formulary = $formulary; } // function dispatch } // class eclApp_adminSystem_hosting //!eof:library/adminSystem/hosting/eclApp_adminSystem_hosting.php; //!file:library/adminSystem/log/eclApp_adminSystem_log.php; class eclApp_adminSystem_log { // class eclApp_adminSystem_log const name = 'log'; const menuType = 'section'; const dataFrom = 'adminSystem_log_content'; static function dispatch ($document) { // function dispatch $formulary = $document->createFormulary ('adminSystem_log_edit'); if ($formulary->command ('save') and $formulary->save ()) $document->mod->humperstilshen->alert ('system_msg_alertDataUpdated'); $document->mod->formulary = $formulary; } // function dispatch } // class eclApp_adminSystem_log //!eof:library/adminSystem/log/eclApp_adminSystem_log.php; //!file:library/adminSystem/log/eclFilter_adminSystem_log_logView.php; class eclFilter_adminSystem_log_logView { // class eclFilter_adminSystem_log_logView static function create ($fieldName, $control, $formulary) { // function create global $io; $item = $formulary->document->createListItem ($control); // name $item->data['name'] = $fieldName; // type if (isset ($control['flags']['type'])) $item->data['type'] = $control['flags']['type']; else $item->data['type'] = 'textarea'; $string = &$io->fileBinary->open ('.error_log'); if ($formulary->command ('clear_log')) $string = ''; $log = $io->fileBinary->open ('.error_log'); $lines = array (); foreach (explode (LF, $log) as $line) { // each log line if (!trim ($line)) continue; list ($date, $info) = explode ("]", trim ($line)); if (isset ($lines[$info])) $lines[$info]++; else $lines[$info] = 1; } // each log line $buffer = ''; foreach ($lines as $info => $times) { // each line $buffer .= $info . ' (' . $times . ")" . CRLF; } // each line $item->data['value'] = $buffer; return $item; } // function create static function save ($fieldName, $control, $formulary) { // function save } // function save } // class eclFilter_adminSystem_log_logView //!eof:library/adminSystem/log/eclFilter_adminSystem_log_logView.php; //!file:library/adminSystem/pack/eclApp_adminSystem_pack.php; class eclApp_adminSystem_pack { // class eclApp_adminSystem_pack static function is_child ($me, $name) { // function is_child if (defined ('SYSTEM_IS_PACKED') and SYSTEM_IS_PACKED) return false; if ($name == 'pack') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'section'; } // function get_menu_type static function get_children_names () { // function get_children_names if (!defined ('SYSTEM_IS_PACKED') or !SYSTEM_IS_PACKED) return array ('pack'); return array (); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('adminSystem_pack_content'); } // function constructor_helper static function dispatch ($document) { // function dispatch global $io; $formulary = $document->createFormulary ('adminSystem_pack_edit'); if ($formulary->command ('pack') and $formulary->save ()) { // pack file $io->packager->pack ($formulary->data); if (isset ($formulary->data['pack_mode']) and $formulary->data['pack_mode'] == 'replace') { // replace $document->reload = $document->url (); return; } // replace $document->mod->humperstilshen->alert ('adminSystem_pack_alertFinished'); } // pack file $document->mod->formulary = $formulary; if ($formulary->errorMsg) $document->mod->humperstilshen->alert ($formulary->errorMsg); } // function dispatch } // class eclApp_adminSystem_pack //!eof:library/adminSystem/pack/eclApp_adminSystem_pack.php; //!file:library/adminSystem/server/eclApp_adminSystem_server.php; class eclApp_adminSystem_server { // class eclApp_adminSystem_server const name = 'server'; const menuType = 'section'; const dataFrom = 'adminSystem_server_content'; static function dispatch ($document) { // function dispatch $formulary = $document->createFormulary ('adminSystem_server_edit'); if ($document->rewriteEngine or strpos (' ' . strtolower ($_SERVER['SERVER_SOFTWARE']), 'apache')) $formulary->flags['server_is_apache'] = true; if ($formulary->save ()) $document->mod->humperstilshen->alert ('system_msg_alertDataUpdated'); $document->mod->formulary = $formulary; } // function dispatch } // class eclApp_adminSystem_server //!eof:library/adminSystem/server/eclApp_adminSystem_server.php; //!file:library/adminSystem/setup/eclApp_adminSystem_setup.php; class eclApp_adminSystem_setup { // class eclApp_adminSystem_setup const name = 'setup'; const menuType = 'section'; const dataFrom = 'adminSystem_setup_content'; static function dispatch ($document) { // function dispatch $formulary = $document->createFormulary ('adminSystem_setup_edit'); if ($formulary->save ()) $document->mod->humperstilshen->alert ('system_msg_alertDataUpdated'); $document->mod->formulary = $formulary; } // function dispatch } // class eclApp_adminSystem_setup //!eof:library/adminSystem/setup/eclApp_adminSystem_setup.php; //!file:library/adminSystem/update/eclApp_adminSystem_update.php; class eclApp_adminSystem_update { // class eclApp_adminSystem_update const name = 'update'; const menuType = 'section'; const dataFrom = 'adminSystem_update_content'; static function dispatch ($document) { // function dispatch global $io; $formulary = $document->createFormulary ('adminSystem_update_edit'); if ($formulary->command ('check')) { // check $data = $io->webservice->request (SYSTEM_ENGINE_UPDATE_URL); if (isset ($data['EcolaboreEngine'])) { // update found $data = $data['EcolaboreEngine']; $data['request_date'] = date ('Y-m-d', TIME); $io->systemConstants->set ('SYSTEM_ENGINE_UPDATE_CHECK', $io->webservice->array2json ($data)); } // update found } // check if ($formulary->command ('update') and defined ('SYSTEM_ENGINE_UPDATE_CHECK')) { // formulary update if (SYSTEM_TIME_LIMIT) set_time_limit (0); $data = $io->webservice->json2array (SYSTEM_ENGINE_UPDATE_CHECK); if (isset ($data['url'])) { // update $io->systemConstants->drop ('SYSTEM_ENGINE_UPDATE_CHECK'); $io->close (); $document->reload = $document->url (); $document->render (); $string = file_get_contents ($data['url']); $fileName = PATH_ROOT . SYSTEM_SCRIPT_NAME; @unlink ($fileName); file_put_contents ($fileName, $string); print $document->buffer; exit; } // update } // formulary saved $document->mod->formulary = $formulary; } // function dispatch } // class eclApp_adminSystem_update //!eof:library/adminSystem/update/eclApp_adminSystem_update.php; //!file:library/adminSystem/update/eclFilter_adminSystem_update_upload.php; class eclFilter_adminSystem_update_upload { // class eclFilter_adminSystem_update_upload static function create ($fieldName, $control, $formulary) { // function create $control['type'] = 'file'; $control['name'] = $fieldName; $formulary->appendChild ($control); } // function create static function save ($fieldName, $control, $formulary) { // function save if (!isset ($_FILES[$fieldName]['size']) or !$_FILES[$fieldName]['size']) return $formulary->setRequiredMsg ($control, $fieldName); $formulary->data['file_field'] = $fieldName; } // function save } // class eclFilter_adminSystem_update_upload //!eof:library/adminSystem/update/eclFilter_adminSystem_update_upload.php; //!file:library/adminSystem/update/eclFilter_adminSystem_update_viewCurrentRelease.php; class eclFilter_adminSystem_update_viewCurrentRelease { // class eclFilter_adminSystem_update_viewCurrentRelease static function create ($fieldName, $control, $formulary) { // function create $control['type'] = 'view'; $control['content'] = $formulary->document->textMerge (SYSTEM_RELEASE); $formulary->appendChild ($control); } // function create static function save ($fieldName, $control, $formulary) { // function save } // function save } // class eclFilter_adminSystem_update_viewCurrentRelease //!eof:library/adminSystem/update/eclFilter_adminSystem_update_viewCurrentRelease.php; //!file:library/adminSystem/update/eclFilter_adminSystem_update_viewCurrentVersion.php; class eclFilter_adminSystem_update_viewCurrentVersion { // class eclFilter_adminSystem_update_viewCurrentVersion static function create ($fieldName, $control, $formulary) { // function create $control['type'] = 'view'; $control['content'] = $formulary->document->textMerge (SYSTEM_VERSION); $formulary->appendChild ($control); } // function create static function save ($fieldName, $control, $formulary) { // function save } // function save } // class eclFilter_adminSystem_update_viewCurrentVersion //!eof:library/adminSystem/update/eclFilter_adminSystem_update_viewCurrentVersion.php; //!file:library/adminSystem/update/eclFilter_adminSystem_update_viewLastVerification.php; class eclFilter_adminSystem_update_viewLastVerification { // class eclFilter_adminSystem_update_viewLastVerification static function create ($fieldName, $control, $formulary) { // function create global $io; $control['type'] = 'view'; $value = $io->systemConstants->get ('SYSTEM_ENGINE_UPDATE_CHECK'); if ($value === false) return; $value = $io->webservice->json2array ($value); if (!isset ($value['request_date'])) return; $control['content'] = $formulary->document->textMerge ($value['request_date']); $formulary->appendChild ($control); } // function create static function save ($fieldName, $control, $formulary) { // function save } // function save } // class eclFilter_adminSystem_update_viewLastVerification //!eof:library/adminSystem/update/eclFilter_adminSystem_update_viewLastVerification.php; //!file:library/adminSystem/update/eclFilter_adminSystem_update_viewNewVersionAvailable.php; class eclFilter_adminSystem_update_viewNewVersionAvailable { // class eclFilter_adminSystem_update_viewNewVersionAvailable static function create ($fieldName, $control, $formulary) { // function create global $io, $store; $control['type'] = 'view'; $value = $io->systemConstants->get ('SYSTEM_ENGINE_UPDATE_CHECK'); if ($value === false) return; $value = $io->webservice->json2array ($value); if (!isset ($value['release'])) return; list ($y, $m, $d) = explode ('-', $value['release']); $lastRelease = mktime (0, 0, 0, $m, $d, $y); list ($y, $m, $d) = explode ('-', SYSTEM_RELEASE); $systemRelease = mktime (0, 0, 0, $m, $d, $y); if ($systemRelease >= $lastRelease) { // system updated $formulary->appendChild ('adminSystem_update_viewSystemUpdated'); return; } // system updated $control['content'] = $formulary->document->textMerge ($value['release']); $formulary->appendChild ($control); if (!isset ($value['info'])) return; $control = array ('type' => 'view'); $label = $store->control->read ('adminSystem_update_viewReleaseNotes'); $control['content'] = $label['text']['caption']; $control['url'] = $value['info']; $formulary->appendChild ($control); $submit = $formulary->appendChild (array ('type' => 'submit')); $control = array ('name' => $formulary->prefix . 'command_update'); $submit->appendChild ('adminSystem_update_editUpdateNow', $control); } // function create static function save ($fieldName, $control, $formulary) { // function save } // function save } // class eclFilter_adminSystem_update_viewNewVersionAvailable //!eof:library/adminSystem/update/eclFilter_adminSystem_update_viewNewVersionAvailable.php; //!file:library/adminUsers/add/eclApp_adminUsers_add.php; class eclApp_adminUsers_add { // class eclApp_adminUsers_add static function is_child ($me, $name) { // function is_child global $store; if ($name == '-new-user') return true; if (!$store->user->getId ($name) and is_dir (PATH_PROFILES . $name)) return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'section'; } // function get_menu_type static function get_children_names () { // function get_children_names return array ('-new-user'); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('adminUsers_add_content'); $me->access = 4; } // function constructor_helper static function dispatch ($document) { // function dispatch global $store; $data = array (); if ($document->application->name != '-new-user' and $document->application->name != '-default') $data['name'] = $document->application->name; $formulary = $document->createFormulary ('adminUsers_add_edit', $data, 'useradd'); if ($formulary->command ('save') and $formulary->save ()) { // formulary saved $user['name'] = $formulary->data['name']; $user['password'] = $formulary->data['password']; $user['status'] = 1; $userId = $store->user->insert ($user); $data = $formulary->data; $data['mode'] = MODE_DOMAIN; $data['parent_id'] = 0; $data['name'] = '-register'; $store->userContent->insert ($userId, $data); $document->received = array (); unset ($document->actions['user']); $parent = $document->application->parent; unset ($document->application); $parent->reset (); $document->application = $parent->child ($formulary->data['name']); $document->application->dispatch ($document); $document->reload = $document->url (); return; } // formulary saved $document->mod->formulary = $formulary; if ($formulary->errorMsg) $document->mod->humperstilshen->alert ($formulary->errorMsg); } // function dispatch } // class eclApp_adminUsers_add //!eof:library/adminUsers/add/eclApp_adminUsers_add.php; //!file:library/adminUsers/details/eclApp_adminUsers_details.php; class eclApp_adminUsers_details { // class eclApp_adminUsers_details static function is_child ($me, $name) { // function is_child global $store; if (!strlen ($name)) return false; if ($store->user->getId ($name)) return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'post'; } // function get_menu_type static function get_children_names () { // function get_children_names return array (); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->userId = $store->user->getId ($me->name); $me->data = $store->control->read ('adminUsers_details_content'); $data = $store->userContent->open ($me->userId, '-register'); if (isset ($data['text']['caption'])) $me->data['text']['caption'] = $data['text']['caption']; $me->access = 4; } // function constructor_helper static function dispatch ($document) { // function dispatch global $io, $store; $me = $document->application; $data = &$store->userContent->open ($me->userId, '-register'); if (isset ($data['local']['gender']) and $data['local']['gender'] == 'female') $gender = 'F'; else $gender = 'M'; $remove = $document->createFormulary ('adminUsers_details_removeConfirm' . $gender, array (), 'userRemove'); if ($remove->save ()) return self::action_remove ($document); elseif ($remove->errorMsg) $document->mod->humperstilshen->alert ($remove->errorMsg); $formulary = $document->createFormulary ('adminUsers_details_edit', $data, 'userEdit'); $formulary->data['name'] = $me->name; $status = $store->user->getStatus ($me->name); $formulary->data['status'] = $status; if ($formulary->save ()) { // save $formulary->data['name'] = '-register'; $data = $formulary->data; if ($formulary->data['status'] != $status or isset ($formulary->data['password'])) { // update status $user = &$store->user->open ($me->name); $user['status'] = $formulary->data['status']; if (isset ($formulary->data['password'])) { // update password $user['password'] = $formulary->data['password']; unset ($data['password']); } // update password } // update status $formulary->errorMsg = 'system_msg_alertDataUpdated'; } // save $formulary->data['name'] = $me->name; $document->mod->formulary = $formulary; if ($formulary->errorMsg) $document->mod->humperstilshen->alert ($formulary->errorMsg); $document->dataMerge ('adminUsers_details_content'); // Context Remove $document->mod->context->appendChild ('adminUsers_details_remove' . $gender) ->confirm ('adminUsers_details_removeConfirm' . $gender, $remove); } // function dispatch static function action_remove ($document) { // function action_remove global $io, $store; $me = $document->application; $id = $me->userId; $io->database->delete ($store->userContent, array ('user_id' => $id)); $io->database->delete ($store->domainGroup, array ('user_id' => $id)); $io->database->delete ($store->userFriend, array ('user_id' => $id)); $io->database->delete ($store->userFriend, array ('friend_id' => $id)); $io->database->delete ($store->userSubscription, array ('user_id' => $id)); $store->user->delete ($id); foreach (scandir (PATH_PROFILES . $me->name) as $filename) { // each user file if (is_file (PATH_PROFILES . $me->name . '/' . $filename)) unlink (PATH_PROFILES . $me->name . '/' . $filename); } // each user file rmdir (PATH_PROFILES . $me->name); // returns to parent page $parent = $me->parent; $parent->reset (); $document->application = $parent; $document->application->dispatch ($document); $document->reload = $document->url (); } // function action_remove } // class eclApp_adminUsers_details //!eof:library/adminUsers/details/eclApp_adminUsers_details.php; //!file:library/adminUsers/eclApp_adminUsers.php; class eclApp_adminUsers { // class eclApp_adminUsers const name = 'users'; const menuType = 'section'; const dataFrom = 'adminUsers_content'; static function constructor_helper ($me) { // function constructor_helper global $io, $store; if ($io->database->tableEnabled ($store->user) and is_dir (PATH_PROFILES)) $me->map = array ('adminUsers_add', 'adminUsers_details'); } // function constructor_helper static function dispatch ($document) { // function dispatch global $io, $store; $me = $document->application; if (!$io->database->tableEnabled ($store->user)) { // disabled $document->dataMerge ('adminUsers_contentDisabled'); return; } // disabled if (!is_dir (PATH_PROFILES) and !$document->access (4)) { // no folder for visitors $document->dataMerge ('adminUsers_contentEmpty'); return; } // no folder for visitors if (!is_dir (PATH_PROFILES)) { // create folder $formulary = $document->createFormulary ('adminUsers_createFolder', array (), 'createFolder'); if ($formulary->command ('create') and $formulary->save ()) { // create $folder_profiles = PATH_ROOT . $io->systemConstants->get ('FOLDER_PROFILES'); } // create else { // view form $document->mod->formulary = $formulary; return; } // view form } // create folder $document->mod->list = new eclMod_adminUsers_list ($document); if (!isset ($folder_profiles)) $folder_profiles = PATH_PROFILES; if ($document->access (4) and !$store->User->getStatus (ADMIN_IDENTIFIER)) { // create the admin profile $formulary = $document->createFormulary ('adminUsers_adminProfile', array (), 'admin_profile'); if ($formulary->command ('create')) { // create $user = array ( 'name' => ADMIN_IDENTIFIER, 'password' => ADMIN_PASSWORD, 'status' => 1 ); $userId = $store->user->insert ($user); $data['mode'] = MODE_DOMAIN; $data['name'] = '-register'; $data['text'] = array ( 'caption' => array ($document->lang => array (TEXT_CONTENT => ADMIN_CAPTION)), 'title' => array ($document->lang => array (TEXT_CONTENT => ADMIN_CAPTION)) ); $data['local']['mail'] = ADMIN_MAIL; $data['local']['gender'] = ADMIN_GENDER; $store->userContent->insert ($userId, $data); } // create else $document->mod->formulary = $formulary; $document->mod->panel->main = array ('content', 'formulary', 'list'); } // create the admin profile if (count (scandir ($folder_profiles)) == 2) $document->dataMerge ('adminUsers_contentEmpty'); } // function dispatch } // class eclApp_adminUsers //!eof:library/adminUsers/eclApp_adminUsers.php; //!file:library/adminUsers/eclFilter_adminUsers_name.php; class eclFilter_adminUsers_name { // class eclFilter_adminUsers_name static function create ($fieldName, $control, $formulary) { // function create $local['name'] = $fieldName; // type if (isset ($control['flags']['type'])) $local['type'] = $control['flags']['type']; else $local['type'] = 'text'; // target if (isset ($control['flags']['target'])) $local['value'] = $formulary->getField ($control['flags']['target']); $formulary->appendChild ($control, $local); } // function create static function save ($fieldName, $control, $formulary) { // function save global $store; // filter if (isset ($formulary->received[$fieldName])) { // received value $value = trim ($formulary->received[$fieldName], ' -_'); if (!preg_match ('/^[a-z0-9_-]+$/', $value)) $formulary->setErrorMsg ($control, $fieldName, 'adminUsers_alertUserInvalidName', $value); elseif ($store->user->getId ($value)) $formulary->setErrorMsg ($control, $fieldName, 'adminUsers_alertUserAlreadyExists', $value); } // received value else $value = false; // required if ($value === false and isset ($control['flags']['required'])) return $formulary->setRequiredMsg ($control, $fieldName, 'adminUsers_alertUserNameRequired'); // target if (isset ($control['flags']['target'])) $formulary->setField ($control['flags']['target'], $value); } // function save } // class eclFilter_adminUsers_name //!eof:library/adminUsers/eclFilter_adminUsers_name.php; //!file:library/adminUsers/eclFilter_adminUsers_password.php; class eclFilter_adminUsers_password { // class eclFilter_adminUsers_password static function create ($fieldName, $control, $formulary) { // function create $local['name'] = $fieldName; // type if (isset ($control['flags']['type'])) $local['type'] = $control['flags']['type']; else $local['type'] = 'text_password'; $formulary->appendChild ($control, $local); } // function create static function save ($fieldName, $control, $formulary) { // function save isset ($formulary->received[$fieldName]) ? $password = strtolower ($formulary->received[$fieldName]) : $password = false; isset ($formulary->received[$fieldName . '_repeat']) ? $password2 = strtolower ($formulary->received[$fieldName . '_repeat']) : $password2 = false; if (!$password and $password !== '0') $password = false; // required if ($password === false and isset ($control['flags']['required'])) return $formulary->setRequiredMsg ($control, $fieldName, 'adminUsers_alertPasswordRequired'); // no password, no required if (!$password) return; if ($password != $password2) return $formulary->setErrorMsg ($control, $fieldName, 'adminUsers_alertPasswordRepeatError'); foreach (str_split ($password) as $char) { // each char if (ord ($char) < 32 or ord ($char) > 127) return $formulary->setErrorMsg ($control, $fieldName, 'adminUsers_alertPasswordInvalidCharacter'); } // each char // target if (isset ($control['flags']['target'])) $formulary->setField ($control['flags']['target'], $password); } // function save } // class eclFilter_adminUsers_password //!eof:library/adminUsers/eclFilter_adminUsers_password.php; //!file:library/adminUsers/eclMod_adminUsers_list.php; class eclMod_adminUsers_list { // class eclMod_adminUsers_list public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; $row = $mod->appendChild (); if ($document->access (4)) { // access $pathway = $document->application->pathway; // User add $user_pathway = $pathway; $user_pathway[] = '-new-user'; $row->appendChild ('adminUsers_add_content') ->virtual () ->url ($user_pathway); } // access else $pathway = array (SYSTEM_PROFILES_URI); if (is_dir (FOLDER_PROFILES)) $names = $store->user->childrenNames (); else $names = array (); foreach ($names as $name) { // each name $userId = $store->user->getId ($name); $data = $store->userContent->open ($userId, '-register'); $user_pathway = $pathway; $user_pathway[] = $name; $row->appendChild ($data) ->swapTitle () ->url ($user_pathway); } // each name $mod->data = $store->control->read ('modules/list'); $mod->enabled = true; } // function setModule } // class eclMod_adminUsers_list //!eof:library/adminUsers/eclMod_adminUsers_list.php; //!file:library/domain/disabled/eclApp_domain_disabled.php; class eclApp_domain_disabled { // class eclApp_domain_disabled static function is_child ($me, $name) { // function is_child return true; } // function is_child static function get_menu_type () { // function get_menu_type return 'section'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names return array (''); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->name = ''; $me->data = $store->control->read ('domain_disabled_content'); $me->ignoreSubfolders = true; array_pop ($me->pathway); } // function constructor_helper } // class eclApp_domain_disabled //!eof:library/domain/disabled/eclApp_domain_disabled.php; //!file:library/domain/eclApp_domain.php; class eclApp_domain { // class eclApp_domain static function is_child ($me, $name) { // function is_child global $store; if ($store->domain->getStatus ($name)) return true; if (SYSTEM_HOSTING_MODE == 0 and $name == SYSTEM_DEFAULT_DOMAIN_NAME and $name != SYSTEM_ADMIN_URI and $name != SYSTEM_PROFILES_URI) { // creates the default domain $adminId = $store->user->getId (ADMIN_IDENTIFIER); if (!$adminId) { // creates profile // New profile for administrator $admin['name'] = ADMIN_IDENTIFIER; $admin['status'] = 1; $adminId = $store->user->insert ($admin); if (!is_dir (PATH_PROFILES)) mkdir (PATH_PROFILES); if (!is_dir (PATH_PROFILES . ADMIN_IDENTIFIER)) mkdir (PATH_PROFILES . ADMIN_IDENTIFIER); // register the administrator profile $caption[TEXT_CONTENT] = ADMIN_CAPTION; if (SYSTEM_DEFAULT_CHARSET == 'ISO-8859-1') $caption[TEXT_CHARSET] = 1; $admin_data['text'] = array ( 'caption' => array (SYSTEM_DEFAULT_LANGUAGE => $caption), 'title' => array (SYSTEM_DEFAULT_LANGUAGE => $caption), ); $admin_data['local']['mail'] = ADMIN_MAIL; $admin_data['local']['gender'] = ADMIN_GENDER; $admin_data['mode'] = MODE_DOMAIN; $admin_data['name'] = '-register'; $store->userContent->insert ($adminId, $admin_data); } // creates profile // Creates domain $domain['name'] = SYSTEM_DEFAULT_DOMAIN_NAME; $domain['status'] = 1; $domainId = $store->domain->insert ($domain); if (!is_dir (PATH_DOMAINS)) mkdir (PATH_DOMAINS); if (!is_dir (PATH_DOMAINS . SYSTEM_DEFAULT_DOMAIN_NAME)) mkdir (PATH_DOMAINS . SYSTEM_DEFAULT_DOMAIN_NAME); // Register domain $domain_data = $store->control->read ('domain_empty_templateForNewDomain'); $domain_data['mode'] = MODE_DOMAIN; $domain_data['name'] = '-register'; $store->domainContent->insert ($domainId, $domain_data); // Register administrator $group = &$store->domainGroup->open ($domainId, 1); $group[$adminId] = 4; return true; } // creates the default domain return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'domain'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names return array (); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->domainId = $store->domain->getId ($me->name); $me->groups[] = new eclGroup_domain ($me->domainId); $status = $store->domain->getStatus ($me->name); if ($status == 1) { // empty $me->data = &$store->domainContent->openChild ($me->domainId, MODE_DOMAIN, 0, '-register'); $me->map = array ('userJoin', 'domainStyles', 'domain_empty'); } // empty elseif ($status == 5) { // disabled $me->map = array ('domainStyles', 'domain_disabled'); } // disabled elseif ($status == 2 or $status == 4) { // active $me->data = &$store->domainContent->openChild ($me->domainId, MODE_DOMAIN, 0, '-register'); $me->getMap (); if ($status == 4) $me->access = 4; } // active $me->isDomain = true; } // function constructor_helper } // class eclApp_domain //!eof:library/domain/eclApp_domain.php; //!file:library/domain/eclFilter_domain_name.php; class eclFilter_domain_name { // class eclFilter_domain_name static function create ($fieldName, $control, $formulary) { // function create $local['name'] = $fieldName; // type if (isset ($control['flags']['type'])) $local['type'] = $control['flags']['type']; else $local['type'] = 'text_small'; // target if (isset ($formulary->data['name'])) $local['value'] = $formulary->data['name']; $formulary->appendChild ($control, $local); } // function create static function save ($fieldName, $control, $formulary) { // function save global $store; $document = $formulary->document; $name = ''; // If a previous problem was ocurred saving the formulary, we need to abort if ($formulary->errorMsg !== false) return; $received = $formulary->received; // Get name from formulary if (isset ($received[$fieldName]) and strlen ($received[$fieldName])) $name = $received[$fieldName]; // If has no name to receive, but the $data['name'] is set, silently abort elseif (isset ($formulary->data['name']) and strlen ($formulary->data['name'])) return; // But if $data['name'] is not set, we will try to create one based on // caption or title from formulary, because a new section or post needs a name else { // look for alternative name if (isset ($formulary->data['text']['caption'][$document->lang][TEXT_CONTENT])) $name = $formulary->data['text']['caption'][$document->lang][TEXT_CONTENT]; elseif (isset ($formulary->data['text']['title'][$document->lang][TEXT_CONTENT])) $name = $formulary->data['text']['title'][$document->lang][TEXT_CONTENT]; } // look for alternative name // We need to convert special characters. But the convertion only will works // currectly if the encoding are ASCII or ISO-8859-1 $charset = $formulary->document->charset; if ($charset != 'ISO-8859-1') $name = mb_convert_encoding ($name, 'ISO-8859-1', $charset); // Here is a table for character convertion: // the key represents the input character, // and the value is the valid character to use instead // Other characters will be ignored static $convert = array ('a' => 'a', 'b' => 'b', 'c' => 'c', 'd' => 'd', 'e' => 'e', 'f' => 'f', 'g' => 'g', 'h' => 'h', 'i' => 'i', 'j' => 'j', 'k' => 'k', 'l' => 'l', 'm' => 'm', 'n' => 'n', 'o' => 'o', 'p' => 'p', 'q' => 'q', 'r' => 'r', 's' => 's', 't' => 't', 'u' => 'u', 'v' => 'v', 'w' => 'w', 'x' => 'x', 'y' => 'y', 'z' => 'z', 'A' => 'a', 'B' => 'b', 'C' => 'c', 'D' => 'd', 'E' => 'e', 'F' => 'f', 'G' => 'g', 'H' => 'h', 'I' => 'i', 'J' => 'j', 'K' => 'k', 'L' => 'l', 'M' => 'm', 'N' => 'n', 'O' => 'o', 'P' => 'p', 'Q' => 'q', 'R' => 'r', 'S' => 's', 'T' => 't', 'U' => 'u', 'V' => 'v', 'W' => 'w', 'X' => 'x', 'Y' => 'y', 'Z' => 'z', 'â' => 'a', 'Â' => 'a', 'ã' => 'a', 'Ã' => 'a', 'á' => 'a', 'Á' => 'a', 'à' => 'a', 'À' => 'a', 'ä' => 'a', 'Ä' => 'a', 'Ç' => 'c', 'ç' => 'c', 'ê' => 'e', 'Ê' => 'e', 'é' => 'e', 'É' => 'e', 'ë' => 'e', 'Ë' => 'e', 'î' => 'i', 'Î' => 'i', 'í' => 'i', 'Í' => 'i', 'ï' => 'i', 'Ï' => 'i', 'ô' => 'o', 'Ô' => 'o', 'õ' => 'o', 'Õ' => 'o', 'ó' => 'o', 'Ó' => 'o', 'ö' => 'o', 'Ö' => 'o', 'û' => 'u', 'Û' => 'u', 'ú' => 'u', 'Ú' => 'u', 'ü' => 'u', 'Ü' => 'u', 'Ý' => 'y', 'ý' => 'y', 'ÿ' => 'y', 'Ÿ' => 'y', ' ' => '-', '_' => '-', '-' => '-', '/' => '-', '1' => '1', '2' => '2', '3' => '3', '4' => '4', '5' => '5', '6' => '6', '7' => '7', '8' => '8', '9' => '9', '0' => '0'); // The $last will remember the last character of the convertion // to prevent duplicated spacing "__" or "--" in the name $result = ''; $last = '-'; foreach (str_split ($name) as $char) { // each char if (!isset ($convert[$char])) continue; $valid = $convert[$char]; if ($valid != $last) { // not repeated separator if ($valid == '-' or $valid == '_') $last = $valid; else $last = ''; $result .= $valid; } // not repeated separator } // each char if (strlen ($result) > 34) $result = substr ($result, 0, 34); $name = trim ($result, '_-'); // Can happens that the convertion eats all characters! // But if $data['name'] is set, we can silently abort. if (!strlen ($name) and isset ($formulary->data['name'])) return false; // If the received name is equal the $data['name'], nothing has to be done if (isset ($formulary->data['name']) and $name == $formulary->data['name']) return false; // In cases that the name was not set, and we not found a valid one, // we will provide a default one if (!strlen ($name) or preg_match ('/^[0-9]+$/', $name)) { // provides a default value if (isset ($control['flags']['default_value'])) $name = $control['flags']['default_value']; else $name = 'page'; } // provides a default value // Name changed // Prevent duplicated names $domainId = $formulary->document->application->domainId; $testing = $name; while ($store->domainContent->open ($domainId, $testing)) { // unduplicate name isset ($index) ? $index++ : $index = 1; $testing = $name . str_pad (strval ($index), 3, '0', STR_PAD_LEFT); } // unduplicate name $name = $testing; // If the name was changed, we need to rename all files of this section or post if (isset ($formulary->data['name'])) { // rename files $store->domainFile->renamePrefixedFiles ($formulary->document->application->domainId, $formulary->data['name'], $name); $prefix = $formulary->data['name'] . CHR_FNS; $prefixLength = strlen ($prefix); $newPrefix = $name . CHR_FNS; foreach ($formulary->data['extras'] as &$module) { // each module foreach ($module as &$property) { // each property if (!is_string ($property) or strlen ($property) < $prefixLength) continue; if (substr ($property, 0, $prefixLength) == $prefix) $property = $newPrefix . substr ($property, $prefixLength); } // each property } // each module } // rename files // If you are not so tired, please set $data['name']! $formulary->data['name'] = $name; return false; } // function save } // class eclFilter_domain_name //!eof:library/domain/eclFilter_domain_name.php; //!file:library/domain/eclGroup_domain.php; class eclGroup_domain { // class eclGroup_domain private $domainId; public function __construct ($domainId) { // function __construct $this->domainId = $domainId; } // function __construct public function check ($document) { // function check global $store; $user = $document->user; static $opened; if (!$user->userId) return 0; if (!isset ($opened)) $opened = $store->domainGroup->open ($this->domainId, 1); if (isset ($opened[$user->userId])) return $opened[$user->userId]; return 1; } // function check } // class eclGroup_domain //!eof:library/domain/eclGroup_domain.php; //!file:library/domain/eclGroup_domain_group.php; class eclGroup_domain_group { // class eclGroup_domain_group private $domainId; private $groupId; public function __construct ($domainId, $groupId) { // function __construct $this->domainId = $domainId; $this->groupId = $groupId; } // function __construct public function check ($document) { // function check global $store; $user = $document->user; static $opened = array (); if (!isset ($opened[$user->name])) $opened[$user->name] = $store->domainContent->open ($this->domainId, '-user-' . $user->name); if (isset ($opened[$user->name]['parent_id']) and $opened[$user->name]['parent_id'] == $this->groupId) return 3; return 0; } // function check } // class eclGroup_domain_group //!eof:library/domain/eclGroup_domain_group.php; //!file:library/domain/eclGroup_domain_owner.php; class eclGroup_domain_owner { // class eclGroup_domain_owner private $me; public function __construct ($me) { // function __construct $this->me = $me; } // function __construct public function check ($document) { // function check if (isset ($me->data['owner_id']) and $me->data['owner_id'] == $document->subscription->id) return 4; return 0; } // function check } // class eclGroup_domain_owner //!eof:library/domain/eclGroup_domain_owner.php; //!file:library/domain/empty/eclApp_domain_empty.php; class eclApp_domain_empty { // class eclApp_domain_empty static function is_child ($me, $name) { // function is_child if ($name == '' or $name == '-default') return true; } // function is_child static function get_menu_type () { // function get_menu_type return 'section'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names return array (''); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->name = ''; $me->data = $store->control->read ('domain_empty_content'); $me->ignoreSubfolders = true; unset ($me->pathway[1]); } // function constructor_helper static function dispatch ($document) { // function dispatch global $store; $me = $document->application; if (!$document->access (4)) return; $register_data = $store->domainContent->open ($me->domainId, '-register'); $formulary = $document->createFormulary ('domain_empty_edit', array (), 'domainEmpty'); $formulary->action = '_first-edit-save'; if ($formulary->command ('save') and $formulary->save ()) { // creates the index page $data = $formulary->data; $data['name'] = '-index'; $data['mode'] = MODE_DOMAIN; $data['parent_id'] = 0; $store->domainContent->insert ($me->domainId, $data); $store->domainExtras->createVersion ($me->domainId, $data, $document); if (!$register_data) { // creates register $register_data = $data; $register_data['name'] = '-register'; $store->domainContent->insert ($me->domainId, $register_data); } // creates register $domain_data = &$store->domain->openById ($me->domainId); $domain_data['status'] = 2; unset ($domain_data); $domain = $me->parent; $domain->getMap (); $domain->reset (); $document->application = $domain->child (''); $document->application->dispatch ($document); return; } // creates the index page $register_data['text']['caption'] = $me->data['text']['caption']; if (!$formulary->data) $formulary->data = $register_data; $document->dataReplace ('domainIndex_edit'); $document->mod->formulary = $formulary; if ($formulary->errorMsg) $document->mod->humperstilshen->alert ($formulary->errorMsg); $document->mod->context->enabled = false; $document->mod->toolbox->enabled = false; return; } // function dispatch } // class eclApp_domain_empty //!eof:library/domain/empty/eclApp_domain_empty.php; //!file:library/domainCreate/eclApp_domainCreate.php; class eclApp_domainCreate { // class eclApp_domainCreate static function is_child ($me, $name) { // function is_child global $io, $store; if (!$name or $name[0] == '-') return false; if (!$io->database->tableEnabled ($store->domain)) return false; if ($store->domain->getStatus ($name) == 0) return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'domain'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names return array (); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('domainCreate_content'); $me->map = array ('userJoin', 'domainCreate_index'); $me->isDomain = true; } // function constructor_helper static function dispatch ($document) { // function dispatch } // function dispatch } // class eclApp_domainCreate //!eof:library/domainCreate/eclApp_domainCreate.php; //!file:library/domainCreate/eclApp_domainCreate_index.php; class eclApp_domainCreate_index { // class eclApp_domainCreate_index static function is_child ($me, $name) { // function is_child global $io, $store; if ($name == '' or $name == '-default') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'section'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names return array (''); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('domainCreate_content'); array_pop ($me->pathway); $me->ignoreSubfolders = true; } // function constructor_helper static function dispatch ($document) { // function dispatch global $store, $system; $me = $document->application; $document->data['url'] = $document->url (true, false, false); $document->data['enable_user_domains'] = SYSTEM_ENABLE_USER_DOMAINS; $document->data['enable_user_subscriptions'] = SYSTEM_ENABLE_USER_SUBSCRIPTIONS; if (!SYSTEM_ENABLE_USER_DOMAINS) return; if (!$document->access (1)) return; $data['local'] = $document->user->data['local']; $formulary = $document->createFormulary ('domainCreate_edit', $data, 'domaincreate'); if ($formulary->command ('save') and $formulary->save ()) { // save $domain['name'] = $document->domain->name; $domain['status'] = 1; mkdir (PATH_DOMAINS . $domain['name']); $domainId = $store->domain->insert ($domain); $data = $formulary->data; $data['mode'] = MODE_DOMAIN; $data['name'] = '-register'; $store->domainContent->insert ($domainId, $data); $group = &$store->domainGroup->open ($domainId, 1); $group[$document->user->userId] = 4; $document->dataReplace (array ()); $system->reset (); $document->domain = $system->child ($domain['name']); $document->application = $document->domain->child (''); $document->application->dispatch ($document); return; } // save $document->dataReplace ('domainCreate_contentCreate'); $document->mod->formulary = $formulary; if ($formulary->errorMsg) $document->mod->humperstilshen->alert ($formulary->errorMsg); } // function dispatch } // class eclApp_domainCreate_index //!eof:library/domainCreate/eclApp_domainCreate_index.php; //!file:library/domainDefault/eclApp_domainDefault.php; class eclApp_domainDefault { // class eclApp_domainDefault const name = '-default'; const menuType = 'hidden'; static function constructor_helper ($me) { // function constructor_helper global $store; if ($store->domainContent->openChild ($me->domainId, MODE_DOMAIN, 0, '-default')) { // custom content $me->data = &$store->domainContent->open ($me->domainId, '-default'); $me->id = $me->data['id']; } // custom content else $me->data = $store->control->read ('domainDefault_content'); $me->ignoreSubfolders = true; } // function constructor_helper static function dispatch ($document) { // function dispatch global $store; if ($document->access (4)) { // user is admin if ($document->application->id) $view = 'custom'; else $view = 'default'; // action restore if ($document->actions ('default', 'restore') and $view == 'custom') $view = self::action_restore ($document); // action edit elseif ($document->actions ('default', 'edit') and $view == 'custom') $view = self::action_edit ($document); // action custom if ($document->actions ('default', 'edit') and $view == 'default') $document->actions['default'] = array ('default', 'custom'); if ( ($document->actions ('default', 'custom')) and $view == 'default') $view = self::action_custom ($document); // context custom if ($view == 'default' or $document->actions ('default', 'custom')) $document->mod->context->appendChild ('domainDefault_custom') ->active ($document->actions ('default', 'custom')) ->url (true, true, '_default-custom'); else { // custom tools // context edit $document->mod->context->appendChild ('domainDefault_edit') ->active ($document->actions ('default', 'edit')) ->url (true, true, '_default-edit'); // Versioning $store->domainExtras->versioning ($document); // context restore $document->mod->context->appendChild ('domainDefault_restore') ->url (true, true, '_default-restore'); $document->mod->editor->enable (); } // custom tools } // user is admin } // function dispatch static function action_custom ($document) { // function action_custom global $store; $me = $document->application; $formulary = $document->createFormulary ('domainDefault_edit', $store->control->read ('domainDefault_content')); if ($formulary->command ('cancel')) { // cancel unset ($document->actions['default']); return 'default'; } // cancel if ($formulary->command ('save') and $formulary->save ()) { // save $data = $formulary->data; $data['name'] = '-default'; $data['mode'] = MODE_DOMAIN; $data['parent_id'] = 0; $me->id = $store->domainContent->insert ($document->application->domainId, $data); $me->data = $data; $store->domainExtras->createVersion ($me->domainId, $data, $document); $document->dataReplace ($me->data); unset ($document->actions['default']); return 'custom'; } // save $formulary->action = '_default-custom'; $document->dataReplace ('domainDefault_custom'); $document->mod->formulary = $formulary; if ($formulary->errorMsg) $document->mod->humperstilshen->alert ($formulary->errorMsg); $document->mod->languages->action = '_default-custom'; return 'form'; } // function action_custom static function action_edit ($document) { // function action_edit global $store; $me = $document->application; $formulary = $document->createFormulary ('domainDefault_edit', $me->data); if ($formulary->command ('cancel')) { // cancel unset ($document->actions['default']); return 'custom'; } // cancel if ($formulary->command ('save') and $formulary->save ()) { // save $data = $formulary->data; $me->data = $data; $store->domainExtras->createVersion ($me->domainId, $data, $document); $document->dataReplace ($data); unset ($document->actions['default']); return 'custom'; } // save $formulary->action = '_default-edit'; $document->dataReplace ('domainDefault_edit'); $document->mod->formulary = $formulary; if ($formulary->errorMsg) $document->mod->humperstilshen->alert ($formulary->errorMsg); $document->mod->languages->action = '_default-edit'; return 'form'; } // function action_edit static function action_restore ($document) { // function action_restore global $store; $me = $document->application; unset ($me->data); $store->domainContent->delete ($me->domainId, $me->id); $store->domainExtras->deleteAllChildren ($me->domainId, $me->id); $store->domainFile->deletePrefixedFiles ($me->domainId, '-default'); $me->data = $store->control->read ('domainDefault_content'); $document->dataReplace ($me->data); $me->id = 0; return 'default'; } // function action_restore static function remove ($me) { // function remove global $store; if ($me->id) $store->domainContent->delete ($me->domainId, $me->id); $store->domainFile->deletePrefixedFiles ($me->domainId, '-default'); } // function remove } // class eclApp_domainDefault //!eof:library/domainDefault/eclApp_domainDefault.php; //!file:library/domainFiles/eclApp_domainFiles.php; class eclApp_domainFiles { // class eclApp_domainFiles static function is_child ($me, $name) { // function is_child switch ($name) { // switch name case '-files': case '-downloads': case '-play': return true; } // switch name return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names () { // function get_children_names return array (); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper $me->ignoreSubfolders = true; $me->ignoreSession (true); } // function constructor_helper static function dispatch ($document) { // function dispatch global $io, $store; $pathway = $document->pathway; $mode = substr ($document->application->name, 1); $fileName = array_pop ($pathway); if ($mode == 'downloads') $disposition = 'attachment'; else $disposition = 'inline'; $path = FOLDER_DOMAINS . $document->domain->name . '/' . $fileName; $headers = array ( 'Content-Disposition' => $disposition, 'Cache-Control' => 'public, only-if-cached, max-age=172800' ); if ($mode == 'downloads' or $mode == 'play') { // download @list ($filePrefix, $extension) = explode ('.', $fileName); @list ($name, $target) = explode (CHR_FNS, $filePrefix); $data = &$store->domainContent->open ($document->domain->domainId, $name); if (!$data) exit; if ($mode == 'downloads' and isset ($data['extras'][$target]['filename'])) $headers['Filename'] = $data['extras'][$target]['filename']; if (!isset ($data['extras'][$target][$mode])) $data['extras'][$target][$mode] = 1; else $data['extras'][$target][$mode]++; } // download $io->sendFile->send ($path, $headers); } // function dispatch } // class eclApp_domainFiles //!eof:library/domainFiles/eclApp_domainFiles.php; //!file:library/domainGlossary/eclApp_domainGlossary.php; class eclApp_domainGlossary { // class eclApp_domainGlossary static function is_child ($me, $name) { // function is_child if ($name == '-glossary') return true; return false; } // function is_child static function get_menu_type ($me) { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names return array ('-default'); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('domainGlossary_content'); $me->map = array ('domainGlossary_keyword'); } // function constructor_helper static function dispatch ($document) { // function dispatch $document->mod->list = new eclMod_domainGlossary_list ($document); } // function dispatch } // class eclApp_domainGlossary //!eof:library/domainGlossary/eclApp_domainGlossary.php; //!file:library/domainGlossary/eclMod_domainGlossary_list.php; class eclMod_domainGlossary_list { // class eclMod_domainGlossary_list public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; $me = $document->application; $row = $mod->appendChild (); $children = $store->domainContent->children ($me->domainId, MODE_KEYWORD, 0, 4, 0, 0, 'name', 'asc'); if (!$children) return; foreach ($children as $data) { // each child $pathway = $me->pathway; $pathway[] = substr ($data['name'], 5); $row->appendChild ($data) ->url ($pathway); } // each child $mod->data = $document->render->block ('modules/list_glossary'); // Se o módulo pode ser editado if ($document->templateEditable and $document->access (4, $document->domain->groups)) { // reference $pathway = array ($document->domain->name, '-personalite', 'modules', 'list_glossary'); $mod->data['local']['personalite_url'] = $document->url ($pathway); $caption = $store->control->read ('modList_edit'); $mod->data['local']['personalite_caption'] = $caption['text']['caption']; } // reference $mod->enabled = true; } // function setModule } // class eclMod_domainGlossary_list //!eof:library/domainGlossary/eclMod_domainGlossary_list.php; //!file:library/domainGlossary/keyword/eclApp_domainGlossary_keyword.php; class eclApp_domainGlossary_keyword { // class eclApp_domainGlossary_keyword static function is_child ($me, $name) { // function is_child return true; } // function is_child static function get_menu_type ($me) { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names return array (); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; if (substr ($me->name, 0, 5) == '-key-') $me->name = substr ($me->name, 5); $data = &$store->domainContent->open ($me->domainId, '-key-' . strtolower ($me->name)); if ($data) { // existing content $me->data = &$data; $me->id = $data['id']; } // existing content else $me->data = $store->control->read ('domainGlossary_keyword_content'); } // function constructor_helper static function dispatch ($document) { // function dispatch global $store; $me = $document->application; if (!$me->id and $document->access (4)) self::action_create ($document); if (!$me->id) return; $view = true; if ($document->access (4)) { // admin access if ($document->actions ('entry', 'remove')) return self::action_remove ($document); if ($document->actions ('entry', 'edit')) $view = self::action_edit ($document); // Context edit $document->mod->context->appendChild ('domainGlossary_keyword_edit') ->active ($document->actions ('entry', 'edit')) ->url (true, true, '_entry-edit'); // Versioning $store->domainExtras->versioning ($document); // context remove $document->mod->context->appendChild ('domainGlossary_keyword_remove') ->url (true, true, '_entry-remove') ->confirm ('domainGlossary_keyword_removeConfirm'); if ($view) $document->mod->editor->enable (); } // admin access else $me->data['hits']++; if ($view) $document->mod->list = new eclMod_domainGlossary_keyword_list ($document); } // function dispatch static function action_create ($document) { // function action_create global $store; $me = $document->application; $formulary = $document->createFormulary ('domainGlossary_keyword_edit'); $formulary->action = '_entry-create'; if ($formulary->command ('save') and $formulary->save ()) { // save $data = $formulary->data; $data['mode'] = MODE_KEYWORD; $data['parent_id'] = 0; $data['marker'] = 1; $data['name'] = '-key-' . $me->name; $me->id = $store->domainContent->insert ($me->domainId, $data); $me->data = $data; $store->domainExtras->createVersion ($me->domainId, $me->data, $document); $document->dataReplace ($data); return true; } // save $document->mod->formulary = $formulary; if ($formulary->errorMsg) $document->mod->humperstilshen->alert ($formulary->errorMsg); return false; } // function action_create static function action_edit ($document) { // function action_edit global $store; $me = $document->application; $formulary = $document->createFormulary ('domainGlossary_keyword_edit', $me->data, 'entry'); $formulary->action = '_entry-edit'; if ($formulary->command ('cancel')) { // cancel unset ($document->actions['entry']); return true; } // cancel if ($formulary->command ('save') and $formulary->save ()) { // save unset ($document->actions['entry']); $me->data = $formulary->data; $store->domainExtras->createVersion ($me->domainId, $me->data, $document); $document->dataReplace ($me->data); return true; } // save $document->mod->formulary = $formulary; $document->dataReplace ('domainGlossary_keyword_edit'); if ($formulary->errorMsg) $document->mod->humperstilshen->alert ($formulary->errorMsg); return false; } // function action_edit static function action_remove ($document) { // function action_remove global $store; $me = $document->application; $store->domainFile->deletePrefixedFiles ($me->domainId, $me->data['name']); $store->domainExtras->deleteAllChildren ($me->domainId, $me->id); $store->domainContent->delete ($me->domainId, $me->id); $me->data = $store->control->read ('domainGlossary_keyword_content'); $document->dataReplace ($me->data); self::action_create ($document); } // function action_remove } // class eclApp_domainGlossary_keyword //!eof:library/domainGlossary/keyword/eclApp_domainGlossary_keyword.php; //!file:library/domainGlossary/keyword/eclMod_domainGlossary_keyword_list.php; class eclMod_domainGlossary_keyword_list { // class eclMod_domainGlossary_keyword_list public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $io, $store; $document = $this->document; $me = $document->application; $row = $mod->appendChild (); $where['domain_id'] = $me->domainId; $where['keywords'] = ':' . $me->name . ':'; $results = $store->domainContent->search ($where); foreach ($results as $data) { // each result $post = $me->findChild ($data['name']); if (!$post) continue; if (!$document->access ($post->access, $post->groups)) continue; $row->appendChild ($post->data) ->url ($post->pathway); } // each result if (!$row->children) return; $mod->data = $document->render->block ('modules/list_related'); // Se o módulo pode ser editado if ($document->templateEditable and $document->access (4, $document->domain->groups)) { // reference $pathway = array ($document->domain->name, '-personalite', 'modules', 'list_related'); $mod->data['local']['personalite_url'] = $document->url ($pathway); $caption = $store->control->read ('modList_edit'); $mod->data['local']['personalite_caption'] = $caption['text']['caption']; } // reference $mod->enabled = true; } // function setModule } // class eclMod_domainGlossary_keyword_list //!eof:library/domainGlossary/keyword/eclMod_domainGlossary_keyword_list.php; //!file:library/domainIcons/eclApp_domainIcons.php; class eclApp_domainIcons { // class eclApp_domainIcons static function is_child ($me, $name) { // function is_child if ($name == '-icons') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names () { // function get_children_names return array ('-icons'); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper $me->ignoreSubfolders = true; $me->ignoreSession (true); } // function constructor_helper static function dispatch ($document) { // function dispatch global $io, $store; $me = $document->application; $name = array_pop ($document->pathway); $data = $store->domainContent->open ($document->domain->domainId, '-styles-vars'); if (isset ($data['updated'])) $updated = date ('r', $data['updated']); elseif (defined ('SYSTEM_PACKED_DATE')) $updated = SYSTEM_PACKED_DATE; else $updated = date ('r', TIME); $document->data['flags']['modLayout_base'] = 'empty'; $document->mod->layout = new eclMod_domainIcons_layout ($document); $document->render (); $size = strval (strlen ($document->buffer)); // error_reporting (0); while (@ob_end_clean ()); $headers = is_callable ('apache_request_headers') ? apache_request_headers () : array (); header_remove ('Pragma'); header_remove ('Expires'); header_remove ('X-Powered-By'); $eTag = ($name . $updated); if (isset ($headers['ETag']) and $headers['ETag'] == $eTag) { // not modified header ('HTTP/1.1 304 Not Modified'); exit; } // not modified if (isset ($headers['If-Modified-Since']) and $headers['If-Modified-Since'] == $updated) { // not modified header ('HTTP/1.1 304 Not Modified'); exit; } // not modified header ('HTTP/1.1 200 OK'); header ('Cache-Control: public, only-if-cached, max-age=172800'); header ('Last-Modified: ' . $updated); header ('ETag: "' . $eTag . '"'); header ('Content-type: image/svg+xml'); header ('Content-Length: ' . $size); header ('Connection: close'); print $document->buffer; exit; } // function dispatch } // class eclApp_domainIcons //!eof:library/domainIcons/eclApp_domainIcons.php; //!file:library/domainIcons/eclMod_domainIcons_layout.php; class eclMod_domainIcons_layout { // class eclMod_domainIcons_layout public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; $me = $document->application; $mod->enabled = true; $svg = $store->control->read ('domainIcons_layout'); $mod->data['html'] = $svg['html']; $children = $store->domainExtras->children ($me->domainId, MODE_TEMPLATE, 0); $blocks = array (); foreach ($children as $data) { // each custom block if (substr ($data['name'], 0, 6) == 'icons/') $blocks[substr ($data['name'], 6)] = $data; } // each custom block $icons = $store->control->scandir ('t', 'icons'); foreach ($icons as $name) { // each icon if (!isset ($blocks[$name])) $blocks[$name] = $store->control->read ('icons/' . $name); } // each icon foreach ($blocks as $name => $data) { // each icon $data['id'] = $name; if (isset ($data['local']['width'])) $data['scale'] = 32 / $data['local']['width']; else $data['scale'] = 1; if (isset ($data['html'])) $mod->appendChild ($data); } // each icon } // function setModule } // class eclMod_domainIcons_layout //!eof:library/domainIcons/eclMod_domainIcons_layout.php; //!file:library/domainIndex/eclApp_domainIndex.php; class eclApp_domainIndex { // class eclApp_domainIndex static function is_child ($me, $name) { // function is_child global $store; if ( ($name == '' or $name == '-index') and $store->domainContent->openChild ($me->domainId, MODE_DOMAIN, 0, '-index')) return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'section'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names return array (''); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = &$store->domainContent->openChild ($me->domainId, MODE_DOMAIN, 0, '-index'); $me->id = $me->data['id']; unset ($me->pathway[1]); } // function constructor_helper static function dispatch ($document) { // function dispatch global $store; $me = $document->application; $view = 'page'; if ($document->access (4)) { // user is admin // action edit if ($document->actions ('index', 'edit')) $view = self::action_edit ($document); // context edit $document->mod->context->appendChild ('domainIndex_edit') ->active ($document->actions ('index')) ->url (true, true, '_index-edit'); // Versioning $store->domainExtras->versioning ($document); // Context new section $pathway = $me->pathway; $pathway[] = '-new-section'; $document->mod->context->appendChild ('section_create_contextNewMain') ->url ($pathway); if ($view == 'page') $document->mod->editor->enable (); } // user is admin else $me->data['hits']++; if ($view == 'page') { // view $document->mod->panel->main = array ('content'); if (isset ($me->data['local']['listSections'])) { // list sections $document->mod->panel->main[] = 'listsections'; $document->mod->listsections = new eclMod_modDinamic ($document, '-index'); } // list sections if (isset ($me->data['local']['listRecents'])) { // list recents $document->mod->panel->main[] = 'listrecents'; $document->mod->listrecents = new eclMod_modDinamic ($document, '-recents'); } // list recents } // view } // function dispatch static function action_edit ($document) { // function action_edit global $store; $me = $document->application; $formulary = $document->createFormulary ('domainIndex_edit', $me->data); if ($formulary->command ('cancel')) { // cancel unset ($document->actions['index']); return 'page'; } // cancel if ($formulary->command ('save') and $formulary->save ()) { // save the index page $me->data = $formulary->data; $store->domainExtras->createVersion ($me->domainId, $me->data, $document); $document->dataReplace ($me->data); unset ($document->actions['index']); return 'page'; } // save the index page $formulary->action = '_index-edit'; $document->dataReplace ('domainIndex_edit'); $document->mod->context->help ('domainIndex_edit'); $document->mod->formulary = $formulary; if ($formulary->errorMsg) $document->mod->humperstilshen->alert ($formulary->errorMsg); $document->mod->languages->action = '_index-edit'; $document->dataMerge ('domainIndex_contentEdit'); return 'form'; } // function action_edit static function remove ($me) { // function remove global $store; $store->domainContent->delete ($me->domainId, $me->id); } // function remove } // class eclApp_domainIndex //!eof:library/domainIndex/eclApp_domainIndex.php; //!file:library/domainInfo/eclApp_domainInfo.php; class eclApp_domainInfo { // class eclApp_domainInfo const name = '-info'; const menuType = 'hidden'; const dataFrom = 'domainInfo_content'; static function dispatch ($document) { // function dispatch $document->mod->formulary = $document->createFormulary ('domainInfo_view', $document->domain->data); $document->mod->list = new eclMod_domainInfo_listAdministrators ($document); $document->mod->panel->main = array ('formulary', 'list', 'content'); } // function dispatch } // class eclApp_domainInfo //!eof:library/domainInfo/eclApp_domainInfo.php; //!file:library/domainInfo/eclMod_domainInfo_listAdministrators.php; class eclMod_domainInfo_listAdministrators { // class eclMod_domainInfo_listAdministrators public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; $me = $document->application; $row = $mod->appendChild (); $domainId = $me->domainId; $group = $store->domainGroup->open ($domainId, 1); foreach ($group as $userId => $status) { // each user if (!$userId or $status != 4) continue; $data = $store->userContent->open ($userId, '-register'); if (!$data) continue; $row->appendChild ($data) ->url (array (SYSTEM_PROFILES_URI, $store->user->getName ($userId))); } // each user $mod->data = $document->render->block ('modules/list_info_administrators'); // Se o módulo pode ser editado if ($document->templateEditable and $document->access (4, $document->domain->groups)) { // reference $pathway = array ($document->domain->name, '-personalite', 'modules', 'list_glossary'); $mod->data['local']['personalite_url'] = $document->url ($pathway); $caption = $store->control->read ('modList_edit'); $mod->data['local']['personalite_caption'] = $caption['text']['caption']; } // reference $mod->enabled = true; } // function setModule } // class eclMod_domainInfo_listAdministrators //!eof:library/domainInfo/eclMod_domainInfo_listAdministrators.php; //!file:library/domainRecents/eclApp_domainRecents.php; class eclApp_domainRecents { // class eclApp_domainRecents static function is_child ($me, $name) { // function is_child if ($name == '-recents') return true; if (isset ($me->data['flags']['modRss_disable'])) return false; if ($name == 'rss.xml') return true; if (substr ($name, 0, 4) == 'rss-' and substr ($name, - 4) == '.xml') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names return array ('-recents'); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = &$store->domainContent->openChild ($me->domainId, MODE_DOMAIN, 0, '-recents'); if (!$me->data) { // create content $data['mode'] = MODE_DOMAIN; $data['name'] = '-recents'; $data['flags']['modList_preset'] = 'recents'; $store->domainContent->insert ($me->domainId, $data); } // create content $me->data = &$store->domainContent->openChild ($me->domainId, MODE_DOMAIN, 0, '-recents'); $me->id = $me->data['id']; } // function constructor_helper static function dispatch ($document) { // function dispatch $me = $document->application; if (substr ($me->name, 0, 3) == 'rss') return self::rss ($document); } // function dispatch static function rss ($document) { // function rss global $io; $me = $document->application; $io->log->silent = true; if (preg_match ('/^rss-([a-z]+)\.xml$/', $me->name, $match)) $document->lang = $match[1]; $document->data['flags']['modLayout_base'] = 'empty'; $document->mod->layout = new eclMod_domainRecents_rss_layout ($document); } // function rss } // class eclApp_domainRecents //!eof:library/domainRecents/eclApp_domainRecents.php; //!file:library/domainRecents/eclFilter_domainRecents_link.php; class eclFilter_domainRecents_link { // class eclFilter_domainRecents_link static function create ($fieldName, $control, $formulary) { // function create $document = $formulary->document; $me = $document->application; // name $control['name'] = $fieldName; // type if (isset ($control['flags']['type'])) $control['type'] = $control['flags']['type']; else $control['type'] = 'checkbox'; if (!$me->id) { // creating post $control['value'] = 1; $formulary->appendChild ($control); return; } // creating post $recents = $document->domain->child ('-recents'); if (isset ($recents->data['links']['pages']) and in_array ($me->name, $recents->data['links']['pages'])) $control['value'] = 1; $formulary->appendChild ($control); } // function create static function save ($fieldName, $control, $formulary) { // function save global $store; if ($formulary->errorMsg) return; if (!isset ($formulary->data['domain_id'])) return; if (!isset ($formulary->data['name'])) return; $received = $formulary->received; $recents = $formulary->document->domain->child ('-recents'); if (!isset ($recents->data['links']['pages'])) $recents->data['links']['pages'] = array (); $pages = &$recents->data['links']['pages']; $name = $formulary->data['name']; if (isset ($received[$fieldName])) { // register if (!in_array ($name, $pages)) array_unshift ($pages, $name); } // register elseif (in_array ($name, $pages)) { // unregister $key = array_search ($name, $pages); unset ($pages[$key]); } // unregister if (count ($pages) > 20) array_pop ($pages); } // function save } // class eclFilter_domainRecents_link //!eof:library/domainRecents/eclFilter_domainRecents_link.php; //!file:library/domainRecents/rss/eclMod_domainRecents_rss_layout.php; class eclMod_domainRecents_rss_layout { // class eclMod_domainRecents_rss_layout public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; $me = $document->domain; $mod->enabled = true; $mod->data = $store->control->read ('domainRecents_rss_layout'); $mod->data['local']['url_self'] = $document->url (true, false, false); $mod->data['local']['pubDate'] = date ('r'); $me = $document->domain->child ('-recents'); if (!isset ($me->data['links']['pages'])) exit (''); $data = array (); $sorted = array (); foreach ($me->data['links']['pages'] as $name) { // each page $data = $store->domainContent->open ($me->domainId, $name); if (!$data) continue; $sorted[$data['event_start']][] = $data; } // each page krsort ($sorted); $max = 20; if (isset ($document->domain->data['flags']['modRss_max'])) $max = $document->domain->data['flags']['modRss_max']; $index = 0; foreach ($sorted as $group) { // each group foreach ($group as $data) { // each data $post = $me->findChild ($data['name']); if (!$post or !$document->access ($post->access, $post->groups)) continue; $index++; if ($index >= $max) break 2; $mod->appendChild ($data) ->set ('pubDate', date ('r', $data['created'])) ->url ($post->pathway); } // each data } // each group } // function setModule } // class eclMod_domainRecents_rss_layout //!eof:library/domainRecents/rss/eclMod_domainRecents_rss_layout.php; //!file:library/domainScripts/eclApp_domainScripts.php; class eclApp_domainScripts { // class eclApp_domainScripts const name = '-scripts'; const ignoreSubfolders = true; static function dispatch ($document) { // function dispatch global $store; exit; } // function dispatch } // class eclApp_domainScripts //!eof:library/domainScripts/eclApp_domainScripts.php; //!file:library/domainSearch/eclApp_domainSearch.php; class eclApp_domainSearch { // class eclApp_domainSearch static function is_child ($me, $name) { // function is_child if ($name == '-search') return true; return false; } // function is_child static function get_menu_type ($me) { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names return array ('-search'); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('domainSearch_content'); } // function constructor_helper static function dispatch ($document) { // function dispatch $document->mod->panel->main = array ('content', 'formulary', 'list'); $document->mod->formulary = new eclMod_domainSearch_formulary ($document); $document->mod->list = new eclMod_domainSearch_list ($document); } // function dispatch } // class eclApp_domainSearch //!eof:library/domainSearch/eclApp_domainSearch.php; //!file:library/domainSearch/eclMod_domainSearch_formulary.php; class eclMod_domainSearch_formulary { // class eclMod_domainSearch_formulary public $document; public function __construct ($document) { // function __construct $this->document = $document; $document->mod->search->enabled = false; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; $me = $document->application; $formulary = $document->createFormulary ('domainSearch_search', array (), 'search'); $data = array (); if (isset ($document->actions['tag'][1])) { // tag $search = $document->actions['tag']; array_shift ($search); $formulary->data['key'] = implode (' ', $search); $formulary->data['tags_only'] = 1; } // tag if (isset ($document->actions['search'][1])) { // tag $search = $document->actions['search']; array_shift ($search); $formulary->data['key'] = implode (' ', $search); } // tag else { // from formulary $formulary->save (); if (isset ($formulary->data['tags_only']) and $formulary->data['tags_only']) { // tags if (isset ($formulary->data['key'])) { // key exists $action = explode (' ', $formulary->data['key']); array_unshift ($action, 'tag'); $document->actions['tag'] = $action; } // key exists } // tags else { // key if (isset ($formulary->data['key'])) { // key exists $action = explode (' ', $formulary->data['key']); array_unshift ($action, 'search'); $document->actions['search'] = $action; } // key exists } // key } // from formulary $mod->childrenMerge ($formulary->create ()); $mod->data = $document->render->block ('modules/search_options'); $mod->enabled = true; } // function setModule } // class eclMod_domainSearch_formulary //!eof:library/domainSearch/eclMod_domainSearch_formulary.php; //!file:library/domainSearch/eclMod_domainSearch_list.php; class eclMod_domainSearch_list { // class eclMod_domainSearch_list public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $io, $store; $document = $this->document; $me = $document->application; $row = $mod->appendChild (); $where['domain_id'] = $me->domainId; $keywords = ''; if (isset ($document->actions['tag'][1])) { // search tag $search = $document->actions['tag']; array_shift ($search); $keywords = implode (' ', $search); $where['keywords'] = ':' . implode (': :', $search) . ':'; } // search tag elseif (isset ($document->actions['search'][1])) { // search keywords $search = $document->actions['search']; array_shift ($search); $keywords = implode (' ', $search); $where['keywords'] = implode (' ', $search); } // search keywords else return; if (!isset ($where['keywords'][0])) return; $results = $store->domainContent->search ($where); foreach ($results as $data) { // each result $post = $me->findChild ($data['name']); if (!$post) continue; if (!$document->access ($post->access, $post->groups)) continue; $row->appendChild ($post->data) ->url ($post->pathway); } // each result $mod->data = $document->render->block ('modules/list'); if (!$row->children) { // no results $local['keywords'] = $keywords; $row->appendChild ('domainSearch_msgNoResults', $local); } // no results $mod->data = $document->render->block ('modules/list_search_results'); // Se o módulo pode ser editado if ($document->templateEditable and $document->access (4, $document->domain->groups)) { // reference $pathway = array ($document->domain->name, '-personalite', 'modules', 'list_search_results'); $mod->data['local']['personalite_url'] = $document->url ($pathway); $caption = $store->control->read ('modList_edit'); $mod->data['local']['personalite_caption'] = $caption['text']['caption']; } // reference $mod->enabled = true; } // function setModule } // class eclMod_domainSearch_list //!eof:library/domainSearch/eclMod_domainSearch_list.php; //!file:library/domainSitemap/eclApp_domainSitemap.php; class eclApp_domainSitemap { // class eclApp_domainSitemap static function is_child ($me, $name) { // function is_child global $store; if ($name == 'robots.txt') return true; if ($name == 'sitemap.xml') return true; if (!strpos ($name, '.')) return false; $data = $store->domainContent->open ($me->domainId, '-google-webmasters'); if ($data and $data['local']['file_name'] == $name) return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names () { // function get_children_names return array ('robots.txt', 'sitemap.xml'); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper if ($me->name == '-google-verify') $me->access = 4; $me->ignoreSubfolders = true; $me->ignoreSession (true); } // function constructor_helper static function dispatch ($document) { // function dispatch global $io, $store; $me = $document->application; $data = $store->domainContent->open ($me->domainId, '-google-webmasters'); if ($data and $data['local']['file_name'] == $me->name) return self::action_verify_page ($document); if ($me->name == 'robots.txt') { // robots.txt if (defined ('SYSTEM_PACKED_DATE')) $updated = SYSTEM_PACKED_DATE; else $updated = date ('r', TIME); $eTag = ('robots.txt' . $updated); $buffer = 'sitemap: ' . $document->url (array ($document->domain->name, 'sitemap.xml'), false, false) . CRLF; $size = strval (strlen ($buffer)); error_reporting (0); while (@ob_end_clean ()); header_remove ('Pragma'); header_remove ('Expires'); header_remove ('X-Powered-By'); if (isset ($headers['ETag']) and $headers['ETag'] == $eTag) { // not modified header ('HTTP/1.1 304 Not Modified'); exit; } // not modified if (isset ($headers['If-Modified-Since']) and $headers['If-Modified-Since'] == $updated) { // not modified header ('HTTP/1.1 304 Not Modified'); exit; } // not modified header ('HTTP/1.1 200 OK'); header ('Cache-Control: public, only-if-cached, max-age=172800'); header ('Last-Modified: ' . $updated); header ('ETag: "' . $eTag . '"'); header ('Content-type:text/plain'); header ('Content-Length: ' . $size); header ('Connection: close'); print $buffer; exit; } // robots.txt $document->data['flags']['modLayout_base'] = 'empty'; $document->mod->layout = new eclMod_domainSitemap_layout ($document); $document->render (); $updated = date ('r', TIME); $size = strval (strlen ($document->buffer)); // error_reporting (0); while (@ob_end_clean ()); header_remove ('Pragma'); header_remove ('Expires'); header_remove ('X-Powered-By'); header ('HTTP/1.1 200 OK'); header ('Cache-Control: public, only-if-cached, max-age=172800'); header ('Last-Modified: ' . $updated); header ('Content-type:text/xml'); header ('Content-Length: ' . $size); header ('Connection: close'); print $document->buffer; exit; } // function dispatch static function action_verify_page ($document) { // function action_verify_page global $store; $me = $document->application; $data = $store->domainContent->open ($me->domainId, '-google-webmasters'); header_remove ('Pragma'); header_remove ('Expires'); header_remove ('X-Powered-By'); header ('HTTP/1.1 200 OK'); header ('Last-Modified: ' . date ('r', $data['updated'])); header ('Content-type:text/html'); header ('Content-Length: ' . strlen ($data['local']['file_content'])); header ('Connection: close'); print $data['local']['file_content']; exit; } // function action_verify_page } // class eclApp_domainSitemap //!eof:library/domainSitemap/eclApp_domainSitemap.php; //!file:library/domainSitemap/eclMod_domainSitemap_layout.php; class eclMod_domainSitemap_layout { // class eclMod_domainSitemap_layout public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; $domain = $document->domain; $mod->enabled = true; $mod->data = $store->control->read ('domainSitemap_layout'); foreach ($domain->children () as $child) { // each child $this->indexPath ($child, $mod); } // each child $domain->reset (); $names = $store->domainContent->childrenNames ($domain->domainId, MODE_SECTION, 1); foreach ($names as $name) { // each child $child = $domain->child ($name); if ($child) $this->indexPath ($child, $mod); } // each child } // function setModule private function indexPath ($me, $mod) { // function indexPath if ($me->access) return; if ($me->menuType != 'section' and $me->menuType != 'post') return; $mode = isset ($me->data['mode']) ? $me->data['mode'] : 0; switch ($mode) { // switch mode case MODE_SECTION: $priority = '0.4'; break; case MODE_POST: $priority = '0.9'; break; case MODE_DOMAIN: if ($me->data['name'] == '-index') $priority = '1'; else $priority = '0'; break; default: $priority = '0.6'; } // switch mode if (isset ($me->data['updated']) and intval ($me->data['updated'])) $updated = date ('c', intval ($me->data['updated'])); elseif (defined ('SYSTEM_PACKED_DATE')) $updated = date ('c', intval (SYSTEM_PACKED_DATE)); else $updated = date ('c', TIME); $mod->appendChild (array ( 'url' => $this->document->url ($me->pathway), 'date' => $updated, 'priority' => $priority )); foreach ($me->children () as $child) { // each child $this->indexPath ($child, $mod); } // each child } // function indexPath } // class eclMod_domainSitemap_layout //!eof:library/domainSitemap/eclMod_domainSitemap_layout.php; //!file:library/domainStyles/eclApp_domainStyles.php; class eclApp_domainStyles { // class eclApp_domainStyles static function is_child ($me, $name) { // function is_child if ($name == '-styles') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names () { // function get_children_names return array ('-styles'); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper $me->ignoreSubfolders = true; $me->ignoreSession (true); } // function constructor_helper static function dispatch ($document) { // function dispatch global $io, $store; $me = $document->application; $name = array_pop ($document->pathway); $data = $store->domainContent->open ($document->domain->domainId, '-styles-vars'); if (isset ($data['updated'])) $updated = date ('r', $data['updated']); elseif (defined ('SYSTEM_PACKED_DATE')) $updated = SYSTEM_PACKED_DATE; else $updated = date ('r', TIME); $document->data['flags']['modLayout_base'] = 'empty'; $document->mod->layout = new eclMod_domainStyles_layout ($document); $document->render (); $size = strval (strlen ($document->buffer)); // error_reporting (0); while (@ob_end_clean ()); $headers = is_callable ('apache_request_headers') ? apache_request_headers () : array (); header_remove ('Pragma'); header_remove ('Expires'); header_remove ('X-Powered-By'); $eTag = ($name . $updated); if (isset ($headers['ETag']) and $headers['ETag'] == $eTag) { // not modified header ('HTTP/1.1 304 Not Modified'); exit; } // not modified if (isset ($headers['If-Modified-Since']) and $headers['If-Modified-Since'] == $updated) { // not modified header ('HTTP/1.1 304 Not Modified'); exit; } // not modified header ('HTTP/1.1 200 OK'); header ('Cache-Control: public, only-if-cached, max-age=172800'); header ('Last-Modified: ' . $updated); header ('ETag: "' . $eTag . '"'); header ('Content-type:text/css'); header ('Content-Length: ' . $size); header ('Connection: close'); print $document->buffer; exit; } // function dispatch } // class eclApp_domainStyles //!eof:library/domainStyles/eclApp_domainStyles.php; //!file:library/domainStyles/eclMod_domainStyles_layout.php; class eclMod_domainStyles_layout { // class eclMod_domainStyles_layout public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; $render = $document->render; $me = $document->application; $mod->enabled = true; $template = $render->block ('templates/default'); $preset = $store->control->read ('domainStyles_preset'); $palette = $render->block ('palettes/default'); if (isset ($palette['local'])) $preset['local'] = array_replace ($preset['local'], $palette['local']); $theme = $render->block ('themes/default'); if (isset ($theme['local'])) $preset['local'] = array_replace ($preset['local'], $theme['local']); $user = $render->block ('themes/user'); if (isset ($user['local'])) $preset['local'] = array_replace ($preset['local'], $user['local']); $buffer = ''; if (isset ($template['local']['styles'])) $all['styles'] = explode (CRLF, $template['local']['styles']); else $all['styles'][] = 'default'; foreach ($all['styles'] as $name) { // each stylesheet $block = $render->block ('styles/' . $name); if (isset ($block['html'])) $buffer .= $block['html']; } // each stylesheet $mod->data['local'] = $preset['local']; $mod->data['html'] = $buffer; } // function setModule } // class eclMod_domainStyles_layout //!eof:library/domainStyles/eclMod_domainStyles_layout.php; //!file:library/domainSubscription/eclApp_domainSubscription.php; class eclApp_domainSubscription { // class eclApp_domainSubscription static function is_child ($me, $name) { // function is_child if ($name == '-subscriptions') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names return array ('-subscriptions'); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper $me->map = array ('domainSubscription_view'); $me->access = 4; } // function constructor_helper static function dispatch ($document) { // function dispatch } // function dispatch } // class eclApp_domainSubscription //!eof:library/domainSubscription/eclApp_domainSubscription.php; //!file:library/domainSubscription/view/eclApp_domainSubscription_view.php; class eclApp_domainSubscription_view { // class eclApp_domainSubscription_view static function is_child ($me, $name) { // function is_child return true; } // function is_child static function get_menu_type () { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names return array (); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; if (substr ($me->name, 0, 6) == '-user-') $me->name = substr ($me->name, 6); $me->data = &$store->domainContent->open ($me->domainId, '-user-' . $me->name); if (isset ($me->data['id'])) $me->id = $me->data['id']; $me->access = 4; $me->map = array ('domainSubscription_task'); } // function constructor_helper static function dispatch ($document) { // function dispatch } // function dispatch } // class eclApp_domainSubscription_view //!eof:library/domainSubscription/view/eclApp_domainSubscription_view.php; //!file:library/endpoints/eclApp_endpoints.php; class eclApp_endpoints { // class eclApp_endpoints static function is_child ($me, $name) { // function is_child if ($name == '-services' or $name == '-endpoints') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names return array ('-services'); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper $me->getMap (); } // function constructor_helper static function dispatch ($document) { // function dispatch } // function dispatch } // class eclApp_endpoints //!eof:library/endpoints/eclApp_endpoints.php; //!file:library/financial/eclApp_financial.php; class eclApp_financial { // class eclApp_financial const name = 'financial'; const menuType = 'section'; const dataFrom = 'financial_content'; const map = 'financialProjects financialIncoming financialOutgoing financialResources financialCharges'; const access = 4; const isDomain = true; static function dispatch ($document) { // function dispatch $document->mod->list = new eclMod_admin_list ($document); } // function dispatch } // class eclApp_financial //!eof:library/financial/eclApp_financial.php; //!file:library/financialAccount/create/eclApp_financialAccount_create.php; class eclApp_financialAccount_create { // class eclApp_financialAccount_create static function is_child ($me, $name) { // function is_child if ($name == '-new-account') return true; return false; } // function is_child static function get_menu_type ($me) { // function get_menu_type global $store; return 'post'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names return array ('-new-account'); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('financialAccount_create_content'); $me->ignoreSubfolders = true; $me->access = 4; $me->getMap (); } // function constructor_helper static function dispatch ($document) { // function dispatch global $io, $store; $me = $document->application; if (!isset ($document->actions['create'][1])) goto show_list; $type = $document->actions['create'][1]; if (!is_object ($document->application->child ($type))) goto show_list; $preset = $document->application->child ($type)->child ('-preset'); if (!is_object ($preset)) goto show_list; $data = $preset->data; unset ($data['text']); $formulary = $document->createFormulary ('financialAccount_create_edit', $data, 'accountEdit'); if ($formulary->command ('cancel')) { // return to parent page $parent = $document->application->parent; if ($parent->isDomain) $parent = $parent->child (''); $document->application = $parent; $document->application->dispatch ($document); $document->reload = $document->url (); return; } // return to parent page // Salvar formulário e redespachar if ($formulary->command ('save') and $formulary->save (1)) { // save account $parent = $document->application->parent; $data = &$formulary->data; $data['mode'] = MODE_ACCOUNT; $data['parent_id'] = 0; $data['id'] = $store->domainContent->insert ($parent->domainId, $data); $me->id = $data['id']; $formulary->save (2); $io->database->commit (); $me->data = &$store->domainContent->openById ($me->domainId, $me->id); $me->data = $formulary->data; $parent->reset (); $document->application = $parent->child ($data['name']); $document->reload = $document->url (); $document->application->dispatch ($document); return; } // save account // Sugestão de texto if (!isset ($formulary->data['text']) and isset ($preset->data['text'])) $formulary->data['text'] = $preset->data['text']; // Exibir formulário $formulary->action = '_create-' . $type; $document->mod->formulary = $formulary; if ($formulary->errorMsg) $document->mod->humperstilshen->alert ($formulary->errorMsg); $document->mod->languages->action = '_create-' . $type; $document->mod->instructor->addMessage ('financialAccount' . ucfirst ($type) . '_helpCreate'); return; // Exibir lista de opções show_list: unset ($document->actions['create']); $document->mod->list = new eclMod_financialAccount_create_list ($document); } // function dispatch } // class eclApp_financialAccount_create //!eof:library/financialAccount/create/eclApp_financialAccount_create.php; //!file:library/financialAccount/create/eclMod_financialAccount_create_list.php; class eclMod_financialAccount_create_list { // class eclMod_financialAccount_create_list public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $row = $mod->appendChild (); $pathway = $this->document->application->pathway; foreach ($this->document->application->children () as $child) { // each child $row->appendChild ($child) ->virtual (1) ->url ($pathway, true, '_create-' . $child->name); } // each child $mod->data = $store->control->read ('modules/list_folder'); $mod->enabled = true; } // function setModule } // class eclMod_financialAccount_create_list //!eof:library/financialAccount/create/eclMod_financialAccount_create_list.php; //!file:library/financialAccount/eclApp_financialAccount.php; class eclApp_financialAccount { // class eclApp_financialAccount static function is_child ($me, $name) { // function is_child global $store; $data = $store->domainContent->openChild ($me->domainId, MODE_ACCOUNT, 0, $name); if ($data) return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'account'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names global $store; return $store->domainContent->childrenNames ($me->domainId, MODE_ACCOUNT, 0); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = &$store->domainContent->open ($me->domainId, $me->name); $me->id = $me->data['id']; if ($me->data['access'] > $me->access) $me->access = $me->data['access']; if (isset ($me->data['flags']['financialAccount_type'])) $class = 'eclApp_financialAccount' . ucfirst ($me->data['flags']['financialAccount_type']); else $class = 'eclApp_financialAccountBank'; $class::constructor_helper ($me); } // function constructor_helper static function dispatch ($document) { // function dispatch global $store; $me = $document->application; $view = true; if ($document->access (4)) { // user is admin if ($document->actions ('account', 'edit')) $view = self::action_edit ($document); elseif ($document->actions ('account', 'remove')) return self::action_remove ($document); elseif ($document->actions ('account', 'move')) self::action_move ($document); // Context Edit $document->mod->context->appendChild ('financialAccount_edit') ->active ($document->actions ('account', 'edit')) ->url (true, true, '_account-edit'); // Context Remove $document->mod->context->appendChild ('financialAccount_remove') ->url (true, true, '_account-remove') ->confirm ('financialAccount_removeConfirm'); // Context Move up if ($me->data['index']) $document->mod->context->appendChild ('financialAccount_moveUp') ->url (true, true, '_account-move-up'); // Context Move down if ($me->data['index'] < count ($store->domainContent->children ($me->domainId, MODE_ACCOUNT, $me->data['parent_id'])) - 1) $document->mod->context->appendChild ('financialAccount_moveDown') ->url (true, true, '_account-move-down'); } // user is admin if ($view) { // view account if (!$document->access (3) and !isset ($me->data['flags']['modHits_disable'])) $me->data['hits']++; if (isset ($me->data['flags']['financialAccount_type'])) $class = 'eclApp_financialAccount' . ucfirst ($me->data['flags']['financialAccount_type']); else $class = 'eclApp_financialAccountBank'; $class::dispatch ($document); } // view account } // function dispatch static function action_edit ($document) { // function action_edit $formulary = $document->createFormulary ('financialAccount_edit', $document->application->data, 'accountEdit'); if ($formulary->command ('cancel')) { // cancel unset ($document->actions['account']); return true; } // cancel if ($formulary->command ('save') and $formulary->save ()) { // save formulary unset ($document->actions['account']); $document->application->data = $formulary->data; $document->application->reset (); if ($document->application->name != $formulary->data['name']) { // update name $document->application->name = $formulary->data['name']; array_pop ($document->application->pathway); $document->application->pathway[] = $formulary->data['name']; $document->reload = $document->url (); } // update name else $document->dataReplace ($document->application->data); return true; } // save formulary $formulary->action = '_account-edit-save'; $document->mod->formulary = $formulary; if ($formulary->errorMsg) $document->mod->humperstilshen->alert ($formulary->errorMsg); $document->mod->languages->action = '_account-edit'; $document->dataMerge ('financialAccount_contentEdit'); return false; } // function action_edit static function action_remove ($document) { // function action_remove global $store, $io; $me = $document->application; unset ($document->actions['account']); $parent = $me->parent; $me->remove (); $parent->reset (); // reindex brothers $store->domainContent->childrenReindex ($parent->domainId, MODE_ACCOUNT, $parent->id); if ($parent->isDomain) $document->application = $parent->child (''); else $document->application = $parent; $document->reload = $document->url (); $document->application->dispatch ($document); } // function action_remove static function action_move ($document) { // function action_move global $store; $parentId = $document->application->data['parent_id']; $name = $document->application->name; $parent = $document->application->parent; unset ($document->application); $parent->reset (); $store->domainContent->childrenReindex ($parent->domainId, MODE_ACCOUNT, $parentId); $names = $store->domainContent->childrenNames ($parent->domainId, MODE_ACCOUNT, $parentId); $index = array_search ($name, $names); $length = count ($names) - 1; if ($document->actions ('account', 'move', 'up') and $index) { // move up $move_up = &$store->domainContent->open ($parent->domainId, $names[$index]); $move_down = &$store->domainContent->open ($parent->domainId, $names[$index - 1]); $move_up['index']--; $move_down['index']++; } // move up elseif ($document->actions ('account', 'move', 'down') and $index < $length) { // move down $move_up = &$store->domainContent->open ($parent->domainId, $names[$index + 1]); $move_down = &$store->domainContent->open ($parent->domainId, $names[$index]); $move_up['index']--; $move_down['index']++; } // move down unset ($document->actions['account']); $document->application = $parent->child ($name); } // function action_move static function remove ($me) { // function remove if (isset ($me->data['flags']['financialAccount_type'])) $class = 'eclApp_financialAccount' . ucfirst ($me->data['flags']['financialAccount_type']); else $class = 'eclApp_financialAccountBank'; if (is_callable ($class . '::remove')) $class::remove ($me); global $store; $store->domainContent->delete ($me->domainId, $me->id); $store->domainFile->deletePrefixedFiles ($me->domainId, $me->name); } // function remove } // class eclApp_financialAccount //!eof:library/financialAccount/eclApp_financialAccount.php; //!file:library/financialAccount/eclFilter_financialAccount_choosePaymentMethod.php; class eclFilter_financialAccount_choosePaymentMethod { // class eclFilter_financialAccount_choosePaymentMethod static function create ($fieldName, $control, $formulary) { // function create global $store; $document = $formulary->document; $me = $document->domain->child ('-tools')->child ('financial')->child ('resources'); $control['local']['type'] = 'radio'; $control['local']['name'] = $fieldName; $item = $formulary->appendChild ($control); foreach ($me->children () as $account) { // each account foreach ($account->children () as $method) { // each method if ($method->menuType != 'method') continue; $item->appendChild ($method->data, array ( 'value' => $account->name . '/' . $method->name, 'name' => $fieldName )); } // each method } // each account } // function create static function save ($fieldName, $control, $formulary) { // function save if (!isset ($formulary->received[$fieldName][0])) return $formulary->setErrorMsg ($control, $fieldName); $parts = explode ('/', $formulary->received[$fieldName]); if (count ($parts) < 2) return $formulary->setErrorMsg ($control, $fieldName); $formulary->data['account'] = $parts[0]; $formulary->data['method'] = $parts[1]; } // function save } // class eclFilter_financialAccount_choosePaymentMethod //!eof:library/financialAccount/eclFilter_financialAccount_choosePaymentMethod.php; //!file:library/financialAccount/eclFilter_financialAccount_specialFields.php; class eclFilter_financialAccount_specialFields { // class eclFilter_financialAccount_specialFields static function create ($fieldName, $control, $formulary) { // function create global $store; if (!isset ($formulary->data['flags']['financialAccount_type'])) return; if (!isset ($control['flags']['sufix'])) return; $special = $store->control->read ('financialAccount' . ucfirst ($formulary->data['flags']['financialAccount_type']) . $control['flags']['sufix']); if (isset ($special['children'])) $formulary->insertControlChildren ($special); } // function create static function save ($fieldName, $control, $formulary) { // function save global $store; if (!isset ($formulary->data['flags']['financialAccount_type'])) return; if (!isset ($control['flags']['sufix'])) return; $special = $store->control->read ('financialAccount' . ucfirst ($formulary->data['flags']['financialAccount_type']) . $control['flags']['sufix']); if (isset ($special['children'])) $formulary->insertControlChildren ($special); } // function save } // class eclFilter_financialAccount_specialFields //!eof:library/financialAccount/eclFilter_financialAccount_specialFields.php; //!file:library/financialAccountBank/create/eclApp_financialAccountBank_create.php; class eclApp_financialAccountBank_create { // class eclApp_financialAccountBank_create static function is_child ($me, $name) { // function is_child if ($name == 'bank') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names return array ('bank'); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('financialAccountBank_create_content'); $me->map = array ('section_preset'); } // function constructor_helper static function dispatch ($document) { // function dispatch } // function dispatch } // class eclApp_financialAccountBank_create //!eof:library/financialAccountBank/create/eclApp_financialAccountBank_create.php; //!file:library/financialAccountBank/deposit/eclApp_financialAccountBank_deposit.php; class eclApp_financialAccountBank_deposit { // class eclApp_financialAccountBank_deposit static function is_child ($me, $name) { // function is_child if ($name != 'deposit') return false; if (isset ($me->data['flags']['pay']['deposit'])) return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'method'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names if (isset ($me->data['flags']['pay']['deposit'])) return array ('deposit'); return array (); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('financialAccountBank_deposit_content'); $me->data['text']['account'] = $me->parent->data['text']['title']; } // function constructor_helper static function dispatch ($document) { // function dispatch } // function dispatch } // class eclApp_financialAccountBank_deposit //!eof:library/financialAccountBank/deposit/eclApp_financialAccountBank_deposit.php; //!file:library/financialAccountBank/eclApp_financialAccountBank.php; class eclApp_financialAccountBank { // class eclApp_financialAccountBank static function constructor_helper ($me) { // function constructor_helper $me->map = array ('financialAccountBank_deposit'); } // function constructor_helper static function dispatch ($document) { // function dispatch } // function dispatch static function remove ($me) { // function remove } // function remove } // class eclApp_financialAccountBank //!eof:library/financialAccountBank/eclApp_financialAccountBank.php; //!file:library/financialAccountCash/cash/eclApp_financialAccountCash_cash.php; class eclApp_financialAccountCash_cash { // class eclApp_financialAccountCash_cash static function is_child ($me, $name) { // function is_child if ($name != 'cash') return false; if (isset ($me->data['flags']['pay']['cash'])) return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'method'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names if (isset ($me->data['flags']['pay']['cash'])) return array ('cash'); return array (); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('financialAccountCash_cash_content'); } // function constructor_helper static function dispatch ($document) { // function dispatch $document->mod->list = new eclMod_admin_list ($document); } // function dispatch } // class eclApp_financialAccountCash_cash //!eof:library/financialAccountCash/cash/eclApp_financialAccountCash_cash.php; //!file:library/financialAccountCash/create/eclApp_financialAccountCash_create.php; class eclApp_financialAccountCash_create { // class eclApp_financialAccountCash_create static function is_child ($me, $name) { // function is_child if ($name == 'cash') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names return array ('cash'); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('financialAccountCash_create_content'); $me->map = array ('section_preset'); } // function constructor_helper static function dispatch ($document) { // function dispatch } // function dispatch } // class eclApp_financialAccountCash_create //!eof:library/financialAccountCash/create/eclApp_financialAccountCash_create.php; //!file:library/financialAccountCash/eclApp_financialAccountCash.php; class eclApp_financialAccountCash { // class eclApp_financialAccountCash static function constructor_helper ($me) { // function constructor_helper $me->map = array ('financialAccountCash_cash'); } // function constructor_helper static function dispatch ($document) { // function dispatch } // function dispatch static function remove ($me) { // function remove } // function remove } // class eclApp_financialAccountCash //!eof:library/financialAccountCash/eclApp_financialAccountCash.php; //!file:library/financialCharges/eclApp_financialCharges.php; class eclApp_financialCharges { // class eclApp_financialCharges static function is_child ($parent, $name) { // function is_child if ($name == 'charges') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'section'; } // function get_menu_type static function get_children_names () { // function get_children_names return array ('charges'); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('financialCharges_content'); } // function constructor_helper static function dispatch ($document) { // function dispatch global $store; $me = $document->application; $document->mod->list = new eclMod_financialCharges_list ($document); } // function dispatch } // class eclApp_financialCharges //!eof:library/financialCharges/eclApp_financialCharges.php; //!file:library/financialCharges/eclMod_financialCharges_list.php; class eclMod_financialCharges_list { // class eclMod_financialCharges_list public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; $me = $document->application; $mod->data = $store->control->read ('financialCharges_list'); $mod->data = array_replace_recursive ($store->control->read ('modules/list_card'), $mod->data); $mod->data['local']['list'] = 'table'; // Headers $row = $mod->appendChild (); $row->appendChild ('financialCharges_listOwner'); $row->appendChild ('financialCharges_listDescription'); $row->appendChild ('financialCharges_listDue'); $where = array ( 'domain_id' => $me->domainId, 'mode' => MODE_CONTRACT, 'spotlight' => 101 ); $contracts = $store->domainContent->search ($where, 4, 0, 0, 'event_start'); foreach ($contracts as $contract) { // each contract $row = $mod->appendChild (); // Owner $owner = $store->domainContent->openById ($me->domainId, $contract['subscription_id']); $row->appendChild ($owner); // Contract subject $subject = $store->domainContent->openById ($me->domainId, $contract['parent_id']); $row->appendChild ($subject) ->url ($store->domainContent->pathway ($me->domainId, $contract['id'])) ->popUpOpen (); // date $local['text']['caption'] = $document->textMerge (date ('Y-m-d', $contract['event_start'])); $row->appendChild ($local); } // each contract $mod->enabled = true; } // function setModule } // class eclMod_financialCharges_list //!eof:library/financialCharges/eclMod_financialCharges_list.php; //!file:library/financialIncoming/eclApp_financialIncoming.php; class eclApp_financialIncoming { // class eclApp_financialIncoming static function is_child ($me, $name) { // function is_child if ($name == 'incoming') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'section'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names return array ('incoming'); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = &$store->domainContent->openChild ($me->domainId, MODE_FOLDER, 0, '-incoming'); if ($me->data) { // data exists $me->id = $me->data['id']; return; } // data exists $data = $store->control->read ('financialIncoming_preset'); $data['mode'] = MODE_FOLDER; $data['marker'] = 52; $data['name'] = '-incoming'; $me->id = $store->domainContent->insert ($me->domainId, $data); $me->data = $data; } // function constructor_helper static function dispatch ($document) { // function dispatch $me = $document->application; $view = true; // action edit if ($document->actions ('incoming', 'edit')) $view = self::action_edit ($document); // context edit $document->mod->context->appendChild ('financialIncoming_edit') ->active ($document->actions ('incoming', 'edit')) ->url (true, true, '_incoming-edit'); if (!$view) return; $document->mod->list = new eclMod_financialIncoming_list ($document); } // function dispatch static function action_edit ($document) { // function action_edit $me = $document->application; $formulary = $document->createFormulary ('financialIncoming_edit', $me->data, 'incoming'); $formulary->action = '_incoming-edit'; if ($formulary->command ('cancel')) { // cancel unset ($document->actions['incoming']); return true; } // cancel if ($formulary->command ('save') and $formulary->save ()) { // save unset ($document->actions['incoming']); $me->data = $formulary->data; $document->dataReplace ($me->data); return true; } // save $document->mod->formulary = $formulary; if ($formulary->errorMsg) $document->mod->humperstilshen->alert ($formulary->errorMsg); $document->dataReplace ('financialIncoming_edit'); return false; } // function action_edit } // class eclApp_financialIncoming //!eof:library/financialIncoming/eclApp_financialIncoming.php; //!file:library/financialOutgoing/eclApp_financialOutgoing.php; class eclApp_financialOutgoing { // class eclApp_financialOutgoing static function is_child ($me, $name) { // function is_child if ($name == 'outgoing') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'section'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names return array ('outgoing'); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = &$store->domainContent->openChild ($me->domainId, MODE_FOLDER, 0, '-outgoing'); if ($me->data) { // data exists $me->id = $me->data['id']; return; } // data exists $data = $store->control->read ('financialOutgoing_preset'); $data['mode'] = MODE_FOLDER; $data['marker'] = 52; $data['name'] = '-outgoing'; $me->id = $store->domainContent->insert ($me->domainId, $data); $me->data = $data; } // function constructor_helper static function dispatch ($document) { // function dispatch $me = $document->application; $view = true; // action edit if ($document->actions ('outgoing', 'edit')) $view = self::action_edit ($document); // context edit $document->mod->context->appendChild ('financialOutgoing_edit') ->active ($document->actions ('outgoing', 'edit')) ->url (true, true, '_outgoing-edit'); if (!$view) return; $document->mod->list = new eclMod_financialOutgoing_list ($document); } // function dispatch static function action_edit ($document) { // function action_edit $me = $document->application; $formulary = $document->createFormulary ('financialOutgoing_edit', $me->data, 'outgoing'); $formulary->action = '_outgoing-edit'; if ($formulary->command ('cancel')) { // cancel unset ($document->actions['outgoing']); return true; } // cancel if ($formulary->command ('save') and $formulary->save ()) { // save unset ($document->actions['outgoing']); $me->data = $formulary->data; $document->dataReplace ($me->data); return true; } // save $document->mod->formulary = $formulary; if ($formulary->errorMsg) $document->mod->humperstilshen->alert ($formulary->errorMsg); $document->dataReplace ('financialOutgoing_edit'); return false; } // function action_edit } // class eclApp_financialOutgoing //!eof:library/financialOutgoing/eclApp_financialOutgoing.php; //!file:library/financialProjects/course/eclApp_financialProjects_course.php; class eclApp_financialProjects_course { // class eclApp_financialProjects_course static function is_child ($me, $name) { // function is_child global $store; if ($store->domainContent->open ($me->domainId, $name)) return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names () { // function get_children_names return array (); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->domainContent->open ($me->domainId, $me->name); $me->map = array (); } // function constructor_helper static function dispatch ($document) { // function dispatch $document->mod->list = new eclMod_admin_list ($document); } // function dispatch } // class eclApp_financialProjects_course //!eof:library/financialProjects/course/eclApp_financialProjects_course.php; //!file:library/financialProjects/course/eclApp_financialProjects_course_class.php; class eclApp_financialProjects_course_class { // class eclApp_financialProjects_course_class static function is_child ($me, $name) { // function is_child global $store; if ($store->domainContent->open ($me->domainId, $name)) return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names () { // function get_children_names return array (); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->domainContent->open ($me->domainId, $me->name); $me->map = array (); } // function constructor_helper static function dispatch ($document) { // function dispatch $document->mod->list = new eclMod_admin_list ($document); } // function dispatch } // class eclApp_financialProjects_course_class //!eof:library/financialProjects/course/eclApp_financialProjects_course_class.php; //!file:library/financialProjects/course/eclMod_financialProjects_course_list.php; class eclMod_financialProjects_course_list { // class eclMod_financialProjects_course_list public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; $me = $document->application; $mod->data = $store->control->read ('financialProjects_list'); $mod->data = array_replace_recursive ($store->control->read ('modules/list_card'), $mod->data); $row = $mod->appendChild (); $where = array ( 'domain_id' => $me->domainId, 'mode' => MODE_SECTION, 'marker' => 60 ); $projects = $store->domainContent->search ($where); foreach ($projects as $data) { // each data $row->appendChild ($data) ->appendFolder ($data['name']); } // each data $mod->enabled = true; } // function setModule } // class eclMod_financialProjects_course_list //!eof:library/financialProjects/course/eclMod_financialProjects_course_list.php; //!file:library/financialProjects/eclApp_financialProjects.php; class eclApp_financialProjects { // class eclApp_financialProjects static function is_child ($me, $name) { // function is_child if ($name == 'projects') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'section'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names return array ('projects'); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->map = array ('financialProjects_course'); $me->data = &$store->domainContent->openChild ($me->domainId, MODE_FOLDER, 0, '-projects'); if ($me->data) { // data exists $me->id = $me->data['id']; return; } // data exists $data = $store->control->read ('financialProjects_preset'); $data['mode'] = MODE_FOLDER; $data['marker'] = 52; $data['name'] = '-projects'; $me->id = $store->domainContent->insert ($me->domainId, $data); $me->data = $data; } // function constructor_helper static function dispatch ($document) { // function dispatch $me = $document->application; $view = true; // action edit if ($document->actions ('projects', 'edit')) $view = self::action_edit ($document); // context edit $document->mod->context->appendChild ('financialProjects_edit') ->active ($document->actions ('projects', 'edit')) ->url (true, true, '_projects-edit'); if (!$view) return; $document->mod->list = new eclMod_financialProjects_list ($document); } // function dispatch static function action_edit ($document) { // function action_edit $me = $document->application; $formulary = $document->createFormulary ('financialProjects_edit', $me->data, 'projects'); $formulary->action = '_projects-edit'; if ($formulary->command ('cancel')) { // cancel unset ($document->actions['projects']); return true; } // cancel if ($formulary->command ('save') and $formulary->save ()) { // save unset ($document->actions['projects']); $me->data = $formulary->data; $document->dataReplace ($me->data); return true; } // save $document->mod->formulary = $formulary; if ($formulary->errorMsg) $document->mod->humperstilshen->alert ($formulary->errorMsg); $document->dataReplace ('financialProjects_edit'); return false; } // function action_edit } // class eclApp_financialProjects //!eof:library/financialProjects/eclApp_financialProjects.php; //!file:library/financialProjects/eclMod_financialProjects_list.php; class eclMod_financialProjects_list { // class eclMod_financialProjects_list public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; $me = $document->application; $mod->data = $store->control->read ('financialProjects_list'); $mod->data = array_replace_recursive ($store->control->read ('modules/list_card'), $mod->data); $row = $mod->appendChild (); $where = array ( 'domain_id' => $me->domainId, 'mode' => MODE_SECTION, 'marker' => 60 ); $projects = $store->domainContent->search ($where); foreach ($projects as $data) { // each data $row->appendChild ($data) ->appendFolder ($data['name']); } // each data $mod->enabled = true; } // function setModule } // class eclMod_financialProjects_list //!eof:library/financialProjects/eclMod_financialProjects_list.php; //!file:library/financialResources/eclApp_financialResources.php; class eclApp_financialResources { // class eclApp_financialResources static function is_child ($me, $name) { // function is_child if ($name == 'resources') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'section'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names return array ('resources'); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->map = array ('financialAccount', 'financialAccount_create'); $me->data = &$store->domainContent->openChild ($me->domainId, MODE_FOLDER, 0, '-resources'); if ($me->data) { // data exists $me->id = $me->data['id']; return; } // data exists $data = $store->control->read ('financialResources_preset'); $data['mode'] = MODE_FOLDER; $data['marker'] = 52; $data['name'] = '-resources'; $me->id = $store->domainContent->insert ($me->domainId, $data); $me->data = $data; } // function constructor_helper static function dispatch ($document) { // function dispatch $me = $document->application; $view = true; // action edit if ($document->actions ('resources', 'edit')) $view = self::action_edit ($document); // context edit $document->mod->context->appendChild ('financialResources_edit') ->active ($document->actions ('resources', 'edit')) ->url (true, true, '_resources-edit'); // context new account $document->mod->context->appendChild ('financialAccount_create_contextNew') ->appendFolder ('-new-account'); if (!$view) return; $document->mod->list = new eclMod_financialResources_list ($document); } // function dispatch static function action_edit ($document) { // function action_edit $me = $document->application; $formulary = $document->createFormulary ('financialResources_edit', $me->data, 'resources'); $formulary->action = '_resources-edit'; if ($formulary->command ('cancel')) { // cancel unset ($document->actions['resources']); return true; } // cancel if ($formulary->command ('save') and $formulary->save ()) { // save unset ($document->actions['resources']); $me->data = $formulary->data; $document->dataReplace ($me->data); return true; } // save $document->mod->formulary = $formulary; if ($formulary->errorMsg) $document->mod->humperstilshen->alert ($formulary->errorMsg); $document->dataReplace ('financialResources_edit'); return false; } // function action_edit } // class eclApp_financialResources //!eof:library/financialResources/eclApp_financialResources.php; //!file:library/financialResources/eclMod_financialResources_list.php; class eclMod_financialResources_list { // class eclMod_financialResources_list public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; $me = $document->application; $mod->data = $store->control->read ('financialResources_list'); $mod->data = array_replace_recursive ($store->control->read ('modules/list_card'), $mod->data); $row = $mod->appendChild (); $children = $store->domainContent->children ($me->domainId, MODE_ACCOUNT, 0); foreach ($children as $data) { // each data $row->appendChild ($data) ->appendFolder ($data['name']); } // each data $mod->enabled = true; } // function setModule } // class eclMod_financialResources_list //!eof:library/financialResources/eclMod_financialResources_list.php; //!file:library/home/create/eclApp_home_create.php; class eclApp_home_create { // class eclApp_home_create static function is_child ($me, $name) { // function is_child if ($name == '-new-section') return true; return false; } // function is_child static function get_menu_type ($me) { // function get_menu_type return 'section'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names return array ('-new-section'); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('home_create_content'); $me->ignoreSubfolders = true; $me->access = 4; $me->getMap (); } // function constructor_helper static function dispatch ($document) { // function dispatch global $io, $store; $me = $document->application; if (!isset ($document->actions['create'][1])) goto show_list; $type = $document->actions['create'][1]; if (!is_object ($document->application->child ($type))) goto show_list; $preset = $document->application->child ($type)->child ('-preset'); if (!is_object ($preset)) goto show_list; $data = $preset->data; unset ($data['text']); $formulary = $document->createFormulary ('home_create_edit', $data, 'sectionEdit'); if ($formulary->command ('cancel')) { // return to parent page $parent = $document->application->parent; if ($parent->isDomain) $parent = $parent->child (''); $document->application = $parent; $document->application->dispatch ($document); $document->reload = $document->url (); return; } // return to parent page // Salvar formulário e redespachar if ($formulary->command ('save') and $formulary->save (1)) { // save section $parent = $document->application->parent; $data = &$formulary->data; $data['mode'] = MODE_SECTION; $data['parent_id'] = $parent->id; $data['id'] = $store->userContent->insert ($parent->userId, $data); $me->id = $data['id']; $formulary->save (2); $io->database->commit (); $me->data = &$store->userContent->openById ($me->userId, $me->id); $me->data = $formulary->data; $store->userExtras->createVersion ($me->userId, $data, $document); $parent->reset (); $document->application = $parent->child ($data['name']); $document->reload = $document->url (); $document->application->dispatch ($document); return; } // save section // Sugestão de texto if (!isset ($formulary->data['text']) and isset ($preset->data['text'])) $formulary->data['text'] = $preset->data['text']; // Exibir formulário $formulary->action = '_create-' . $type; $document->mod->formulary = $formulary; if ($formulary->errorMsg) $document->mod->humperstilshen->alert ($formulary->errorMsg); $document->mod->languages->action = '_create-' . $type; $document->mod->instructor->addMessage ('home' . ucfirst ($type) . '_helpCreate'); return; // Exibir lista de opções show_list: unset ($document->actions['create']); $document->mod->list = new eclMod_home_create_list ($document); } // function dispatch } // class eclApp_home_create //!eof:library/home/create/eclApp_home_create.php; //!file:library/home/create/eclMod_home_create_list.php; class eclMod_home_create_list { // class eclMod_home_create_list public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $row = $mod->appendChild (); $pathway = $this->document->application->pathway; foreach ($this->document->application->children () as $child) { // each child $row->appendChild ($child) ->virtual (1) ->url ($pathway, true, '_create-' . $child->name); } // each child $mod->data = $store->control->read ('modules/list'); $mod->enabled = true; } // function setModule } // class eclMod_home_create_list //!eof:library/home/create/eclMod_home_create_list.php; //!file:library/home/eclApp_home.php; class eclApp_home { // class eclApp_home static function is_child ($me, $name) { // function is_child global $store; $data = $store->userContent->openChild ($me->userId, MODE_SECTION, $me->id, $name); if ($data) return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'section'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names global $store; return $store->userContent->childrenNames ($me->userId, MODE_SECTION, $me->id); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = &$store->userContent->open ($me->userId, $me->name); $me->id = $me->data['id']; if ($me->data['access'] > $me->access) $me->access = $me->data['access']; if (isset ($me->data['flags']['home_type'])) $class = 'eclApp_home' . ucfirst ($me->data['flags']['home_type']); else $class = 'eclApp_homeFolder'; $class::constructor_helper ($me); } // function constructor_helper static function dispatch ($document) { // function dispatch global $store; $me = $document->application; $view = true; if ($document->access (4)) { // user is admin if ($document->actions ('home', 'edit')) $view = self::action_edit ($document); elseif ($document->actions ('home', 'moveto')) $view = self::action_moveto ($document); elseif ($document->actions ('home', 'remove')) return self::action_remove ($document); elseif ($document->actions ('home', 'move')) self::action_move ($document); // Context Edit $document->mod->context->appendChild ('home_edit') ->active ($document->actions ('home', 'edit')) ->url (true, true, '_home-edit'); // Versioning $store->userExtras->versioning ($document); // Context Remove $document->mod->context->appendChild ('home_remove') ->url (true, true, '_home-remove') ->confirm ('home_removeConfirm'); // Context Move up if ($me->data['index'] and ($me->data['parent_id'] == 1 or $me->data['parent_id'] == $me->parent->id)) $document->mod->context->appendChild ('home_moveUp') ->url (true, true, '_home-move-up'); // Context Move down if ($me->data['index'] < count ($store->userContent->children ($me->userId, MODE_SECTION, $me->data['parent_id'])) - 1 and ($me->data['parent_id'] == 1 or $me->data['parent_id'] == $me->parent->id)) $document->mod->context->appendChild ('home_moveDown') ->url (true, true, '_home-move-down'); // Context Move to... $document->mod->context->appendChild ('home_moveTo') ->url (true, true, '_home-moveto'); } // user is admin if ($view) { // view home if (!$document->access (3) and !isset ($me->data['flags']['modHits_disable'])) $me->data['hits']++; if (isset ($me->data['flags']['home_type'])) $class = 'eclApp_home' . ucfirst ($me->data['flags']['home_type']); else $class = 'eclApp_homeFolder'; $class::dispatch ($document); } // view home } // function dispatch static function action_edit ($document) { // function action_edit global $store; $me = $document->application; $formulary = $document->createFormulary ('home_edit', $me->data, 'homeEdit'); if ($formulary->command ('cancel')) { // cancel unset ($document->actions['home']); return true; } // cancel if ($formulary->command ('save') and $formulary->save ()) { // save formulary unset ($document->actions['home']); $me->data = $formulary->data; $me->data['updated'] = TIME; $store->userExtras->createVersion ($me->userId, $me->data, $document); $document->application->reset (); if ($document->application->name != $formulary->data['name']) { // update name $document->application->name = $formulary->data['name']; array_pop ($document->application->pathway); $document->application->pathway[] = $formulary->data['name']; $document->reload = $document->url (); } // update name else $document->dataReplace ($document->application->data); return true; } // save formulary $formulary->action = '_home-edit-save'; $document->mod->formulary = $formulary; if ($formulary->errorMsg) $document->mod->humperstilshen->alert ($formulary->errorMsg); $document->mod->languages->action = '_home-edit'; $document->dataMerge ('home_contentEdit'); return false; } // function action_edit static function action_remove ($document) { // function action_remove global $store, $io; $me = $document->application; unset ($document->actions['home']); $parent = $me->parent; $me->remove (); $parent->reset (); // reindex brothers $store->userContent->childrenReindex ($parent->userId, MODE_SECTION, $parent->id); if ($parent->isDomain) $document->application = $parent->child (''); else $document->application = $parent; $document->reload = $document->url (); $document->application->dispatch ($document); } // function action_remove static function action_move ($document) { // function action_move global $store; $parentId = $document->application->data['parent_id']; $name = $document->application->name; $parent = $document->application->parent; unset ($document->application); $parent->reset (); $store->userContent->childrenReindex ($parent->userId, MODE_SECTION, $parentId); $names = $store->userContent->childrenNames ($parent->userId, MODE_SECTION, $parentId); $index = array_search ($name, $names); $length = count ($names) - 1; if ($document->actions ('home', 'move', 'up') and $index) { // move up $move_up = &$store->userContent->open ($parent->userId, $names[$index]); $move_down = &$store->userContent->open ($parent->userId, $names[$index - 1]); $move_up['index']--; $move_down['index']++; } // move up elseif ($document->actions ('home', 'move', 'down') and $index < $length) { // move down $move_up = &$store->userContent->open ($parent->userId, $names[$index + 1]); $move_down = &$store->userContent->open ($parent->userId, $names[$index]); $move_up['index']--; $move_down['index']++; } // move down unset ($document->actions['home']); $document->application = $parent->child ($name); } // function action_move static function action_moveto ($document) { // function action_moveto global $store; unset ($document->actions['home']); $me = $document->application; $oldParentId = $me->data['parent_id']; $formulary = $document->createFormulary ('home_moveTo', $me->data, 'moveto'); $formulary->action = '_home-moveto'; if ($formulary->command ('cancel')) return true; if ($formulary->command ('save') and $formulary->save ()) { // save $newParentId = $formulary->data['parent_id']; if ($newParentId == $oldParentId) return true; $me->data['parent_id'] = $newParentId; unset ($store->userContent->chargedMode[$me->userId][MODE_SECTION]); $store->userContent->childrenReindex ($me->userId, MODE_SECTION, $newParentId); $me->data['index'] = count ($store->userContent->children ($me->userId, MODE_SECTION, $newParentId)); unset ($store->userContent->indexByParent[$me->userId][MODE_SECTION][$oldParentId][$me->id]); $store->userContent->childrenReindex ($me->userId, MODE_SECTION, $oldParentId); $store->userContent->indexByParent[$me->userId][MODE_SECTION][$newParentId][$me->id] = $me->id; unset ($store->userContent->chargedParents[$me->userId][MODE_SECTION][$oldParentId]); unset ($store->userContent->chargedParents[$me->userId][MODE_SECTION][$newParentId]); $document->reload = $document->url ($store->userContent->pathway ($me->userId, $me->id)); return false; } // save $document->mod->formulary = $formulary; $document->dataReplace ('home_moveTo'); return false; } // function action_moveto static function remove ($me) { // function remove if (isset ($me->data['flags']['home_type'])) $class = 'eclApp_home' . ucfirst ($me->data['flags']['home_type']); else $class = 'eclApp_homeFolder'; if (is_callable ($class . '::remove')) $class::remove ($me); global $store; $store->userContent->delete ($me->userId, $me->id); $store->userFile->deletePrefixedFiles ($me->userId, $me->name); $store->userExtras->deleteAllChildren ($me->userId, $me->id); } // function remove } // class eclApp_home //!eof:library/home/eclApp_home.php; //!file:library/home/eclFilter_home_specialFields.php; class eclFilter_home_specialFields { // class eclFilter_home_specialFields static function create ($fieldName, $control, $formulary) { // function create global $store; if (!isset ($formulary->data['flags']['home_type'])) return; if (!isset ($control['flags']['sufix'])) return; $special = $store->control->read ('home' . ucfirst ($formulary->data['flags']['home_type']) . $control['flags']['sufix']); if (isset ($special['children'])) $formulary->insertControlChildren ($special); } // function create static function save ($fieldName, $control, $formulary) { // function save global $store; if (!isset ($formulary->data['flags']['home_type'])) return; if (!isset ($control['flags']['sufix'])) return; $special = $store->control->read ('home' . ucfirst ($formulary->data['flags']['home_type']) . $control['flags']['sufix']); if (isset ($special['children'])) $formulary->insertControlChildren ($special); } // function save } // class eclFilter_home_specialFields //!eof:library/home/eclFilter_home_specialFields.php; //!file:library/home/preset/eclApp_home_preset.php; class eclApp_home_preset { // class eclApp_home_preset static function is_child ($me, $name) { // function is_child if (!isset ($me->data['flags']['preset'])) return false; if ($name == '-preset') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names return array ('-preset'); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ($me->parent->data['flags']['preset']); } // function constructor_helper static function dispatch ($document) { // function dispatch } // function dispatch } // class eclApp_home_preset //!eof:library/home/preset/eclApp_home_preset.php; //!file:library/homeChat/create/eclApp_homeChat_create.php; class eclApp_homeChat_create { // class eclApp_homeChat_create static function is_child ($me, $name) { // function is_child global $store; if (!$store->userContent->findMarker ($me->userId, 3) and $name == 'chat') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names global $store; if (!$store->userContent->findMarker ($me->userId, 3)) return array ('chat'); return array (); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('homeChat_create_content'); $me->map = array ('home_preset'); } // function constructor_helper static function dispatch ($document) { // function dispatch } // function dispatch } // class eclApp_homeChat_create //!eof:library/homeChat/create/eclApp_homeChat_create.php; //!file:library/homeChat/eclApp_homeChat.php; class eclApp_homeChat { // class eclApp_homeChat static function constructor_helper ($me) { // function constructor_helper $me->map = array ('homeChat_group', 'homeChat_user'); } // function constructor_helper static function dispatch ($document) { // function dispatch if ($document->access (4)) $document->mod->editor->enable (); $document->mod->list = new eclMod_homeChat_list ($document); } // function dispatch static function remove ($me) { // function remove } // function remove } // class eclApp_homeChat //!eof:library/homeChat/eclApp_homeChat.php; //!file:library/homeChat/eclMod_homeChat_list.php; class eclMod_homeChat_list { // class eclMod_homeChat_list public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; $me = $document->application; $mod->data = $store->control->read ('userHome_index_recents'); $row = $mod->appendChild (); $where = array ( 'owner_id' => $me->userId, 'mode' => MODE_GROUP, ); $groups = $store->domainExtras->search ($where); foreach ($groups as $group) { // each recent chat $data = $store->domainContent->openById ($group['domain_id'], $group['parent_id']); $row->appendChild ($data) ->set ('updated', $data['coments_last_update']) ->appendFolder ('group-' . $group['domain_id'] . '-' . $group['id']); } // each recent chat $chats = $store->userExtras->children ($me->userId, MODE_GROUP, 0); foreach ($chats as $chat) { // each recent chat $data = $store->userContent->open ($chat['owner_id'], '-register'); $row->appendChild ($data) ->set ('updated', $chat['updated']) ->appendFolder ($store->user->getName ($chat['owner_id'])); } // each recent chat if (!$row->children) return; $row->sort ('updated', 'desc'); $mod->enabled = true; $mod->data = $store->control->read ('modules/list'); } // function setModule } // class eclMod_homeChat_list //!eof:library/homeChat/eclMod_homeChat_list.php; //!file:library/homeChat/group/eclApp_homeChat_group.php; class eclApp_homeChat_group { // class eclApp_homeChat_group static function is_child ($me, $name) { // function is_child global $store; $parts = explode ('-', $name); if (count ($parts) < 3) return false; if ($parts[0] != 'group') return false; $domainId = intval ($parts[1]); $id = intval ($parts[2]); if (!$domainId or !$id) return false; $data = $store->domainExtras->openById ($domainId, $id); if (!$data) return false; if ($data['mode'] != MODE_GROUP or $data['owner_id'] != $me->userId) return false; return true; } // function is_child static function get_menu_type () { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names global $store; return array (); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; list ($prefix, $domainId, $id) = explode ('-', $me->name); $group = $store->domainExtras->openById (intval ($domainId), intval ($id)); $data = $store->domainContent->openById ($group['domain_id'], $group['parent_id']); if (isset ($data['text']['title'])) $me->data['text']['title'] = $data['text']['title']; else $me->data['text']['title'] = $data['text']['caption']; $me->data['text']['caption'] = $data['text']['caption']; $me->domainId = $data['domain_id']; $me->id = $data['id']; } // function constructor_helper static function dispatch ($document) { // function dispatch if ($document->actions ('group', 'remove')) return self::action_remove ($document); // Context remove $document->mod->context->appendChild ('homeChat_group_contextRemove') ->url (true, true, '_group-remove'); $document->mod->comments->enable (); } // function dispatch static function action_remove ($document) { // function action_remove global $store; $me = $document->application; $where = array ( 'domain_id' => $me->domainId, 'mode' => MODE_GROUP, 'parent_id' => $me->id, 'owner_id' => $document->user->userId, ); $groups = $store->domainExtras->search ($where); if (!isset ($groups[0]['id'])) return; $store->domainExtras->delete ($me->domainId, $groups[0]['id']); $document->application = $me->parent; $document->application->dispatch ($document); $document->reload = $document->url (); } // function action_remove } // class eclApp_homeChat_group //!eof:library/homeChat/group/eclApp_homeChat_group.php; //!file:library/homeChat/user/eclApp_homeChat_user.php; class eclApp_homeChat_user { // class eclApp_homeChat_user static function is_child ($me, $name) { // function is_child global $store; if ($store->user->getStatus ($name)) return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names global $store; return array (); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $id = $store->user->getId ($me->name); $data = $store->userContent->open ($id, '-register'); if (isset ($data['text']['title'])) $me->data['text']['title'] = $data['text']['title']; else $me->data['text']['title'] = $data['text']['caption']; $me->data['text']['caption'] = $data['text']['caption']; $me->data['owner_id'] = $id; } // function constructor_helper static function dispatch ($document) { // function dispatch if ($document->actions ('chat', 'clear')) self::action_clear ($document); if ($document->actions ('chat', 'remove') and self::action_remove ($document)) return; // Context clear $document->mod->context->appendChild ('homeChat_user_contextClear') ->url (true, true, '_chat-clear-' . TIME); // Context remove $document->mod->context->appendChild ('homeChat_user_contextRemove') ->url (true, true, '_chat-remove-' . TIME); $document->mod->comments = new eclMod_homeChat_user_comments ($document); $document->mod->comments_add = new eclMod_homeChat_user_commentsAdd ($document); } // function dispatch static function action_clear ($document) { // function action_clear global $store; $me = $document->application; if (!isset ($document->actions['chat'][2]) or intval ($document->actions['chat'][2]) < TIME - 1800) return; $time = intval ($document->actions['chat'][2]); $where = array ( 'user_id' => $me->userId, 'mode' => MODE_GROUP, 'owner_id' => $me->data['owner_id'], ); $groups = $store->userExtras->search ($where); if (!isset ($groups[0]['id'])) return; $comments = $store->userExtras->children ($me->userId, MODE_COMMENT, $groups[0]['id']); foreach ($comments as $data) { // clear each comment if ($data['created'] < $time) $store->userExtras->delete ($me->userId, $data['id']); } // clear each comment } // function action_clear static function action_remove ($document) { // function action_remove global $store; $me = $document->application; if (!isset ($document->actions['chat'][2]) or intval ($document->actions['chat'][2]) < TIME - 1800) return false; $time = intval ($document->actions['chat'][2]); $where = array ( 'user_id' => $me->userId, 'mode' => MODE_GROUP, 'owner_id' => $me->data['owner_id'], ); $groups = $store->userExtras->search ($where); if (!isset ($groups[0]['id'])) return false; $newComments = 0; $comments = $store->userExtras->children ($me->userId, MODE_COMMENT, $groups[0]['id']); foreach ($comments as $data) { // clear each comment if ($data['created'] < $time) $store->userExtras->delete ($me->userId, $data['id']); else $newComments++; } // clear each comment if ($newComments) return false; $store->userExtras->delete ($me->userId, $groups[0]['id']); $document->application = $me->parent; $document->application->dispatch ($document); $document->reload = $document->url (); return true; } // function action_remove } // class eclApp_homeChat_user //!eof:library/homeChat/user/eclApp_homeChat_user.php; //!file:library/homeChat/user/eclMod_homeChat_user_comments.php; class eclMod_homeChat_user_comments { // class eclMod_homeChat_user_comments public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store, $system; $document = $this->document; $user = $document->user; $render = $document->render; $friend = $system->child (SYSTEM_PROFILES_URI)->child ($document->application->name); $userChats = $store->userExtras->search (array ( 'user_id' => $user->userId, 'mode' => MODE_GROUP, 'owner_id' => $friend->userId )); if (!isset ($userChats[0]['id'])) return; $userChatId = $userChats[0]['id']; $posts = $store->userExtras->children ($user->userId, MODE_COMMENT, $userChatId); if (!$posts) return; $row = $mod->appendChild (); foreach ($posts as $data) { // each comment $row->appendChild ($data); } // each comment $row->sort (); $mod->data = $render->block ('modules/comments'); $mod->enabled = true; } // function setModule } // class eclMod_homeChat_user_comments //!eof:library/homeChat/user/eclMod_homeChat_user_comments.php; //!file:library/homeChat/user/eclMod_homeChat_user_commentsAdd.php; class eclMod_homeChat_user_commentsAdd { // class eclMod_homeChat_user_commentsAdd public $document; private $children; public function __construct ($document) { // function __construct global $store, $system; $this->document = $document; $formulary = $document->createFormulary ('homeChat_user_form', array (), 'chat'); if ($formulary->command ('save') and $formulary->save ()) { // save $friend = $system->child (SYSTEM_PROFILES_URI)->child ($document->application->name); $user = $document->user; $friendChats = $store->userExtras->search (array ( 'user_id' => $friend->userId, 'mode' => MODE_GROUP, 'owner_id' => $user->userId )); if (isset ($friendChats[0]['id'])) { // existing friend chat $friendChatId = $friendChats[0]['id']; $friendChat = &$store->userExtras->openById ($friend->userId, $friendChatId); $friendChat['updated'] = TIME; } // existing friend chat else { // create friend chat id $data = array ( 'user_id' => $friend->userId, 'mode' => MODE_GROUP, 'owner_id' => $user->userId ); $friendChatId = $store->userExtras->insert ($friend->userId, $data); } // create friend chat id $userChats = $store->userExtras->search (array ( 'user_id' => $user->userId, 'mode' => MODE_GROUP, 'owner_id' => $friend->userId )); if (isset ($userChats[0]['id'])) { // existing user chat $userChatId = $userChats[0]['id']; $userChat = &$store->userExtras->openById ($user->userId, $userChatId); $userChat['updated'] = TIME; } // existing user chat else { // create user chat id $data = array ( 'user_id' => $user->userId, 'mode' => MODE_GROUP, 'owner_id' => $friend->userId ); $userChatId = $store->userExtras->insert ($user->userId, $data); } // create user chat id $toUserData = $formulary->data; $toUserData['mode'] = MODE_COMMENT; $toUserData['parent_id'] = $userChatId; $toUserData['owner_id'] = $user->userId; $masterId = $store->userExtras->insert ($user->userId, $toUserData); $data = $formulary->data; $data['mode'] = MODE_COMMENT; $data['parent_id'] = $friendChatId; $data['master_id'] = $masterId; $data['owner_id'] = $user->userId; $store->userExtras->insert ($friend->userId, $data); } // save $formulary->data = array (); $this->children = $formulary->create ()->children; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; $render = $document->render; $mod->children = $this->children; $mod->data = $render->block ('modules/comments_add'); $mod->enabled = true; } // function setModule } // class eclMod_homeChat_user_commentsAdd //!eof:library/homeChat/user/eclMod_homeChat_user_commentsAdd.php; //!file:library/homePublications/create/eclApp_homePublications_create.php; class eclApp_homePublications_create { // class eclApp_homePublications_create static function is_child ($me, $name) { // function is_child global $store; if (!$store->userContent->findMarker ($me->userId, 2) and $name == 'publications') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names global $store; if (!$store->userContent->findMarker ($me->userId, 2)) return array ('publications'); return array (); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('homePublications_create_content'); $me->map = array ('home_preset'); } // function constructor_helper static function dispatch ($document) { // function dispatch } // function dispatch } // class eclApp_homePublications_create //!eof:library/homePublications/create/eclApp_homePublications_create.php; //!file:library/homePublications/eclApp_homePublications.php; class eclApp_homePublications { // class eclApp_homePublications static function constructor_helper ($me) { // function constructor_helper } // function constructor_helper static function dispatch ($document) { // function dispatch if ($document->access (4)) $document->mod->editor->enable (); $document->mod->list = new eclMod_homePublications_list ($document); } // function dispatch static function remove ($me) { // function remove } // function remove } // class eclApp_homePublications //!eof:library/homePublications/eclApp_homePublications.php; //!file:library/homePublications/eclMod_homePublications_list.php; class eclMod_homePublications_list { // class eclMod_homePublications_list public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; $me = $document->application; $mod->data = $store->control->read ('userHome_index_recents'); $row = $mod->appendChild (); $where = array ( 'mode' => MODE_POST, 'owner_id' => $me->userId ); $recents = $store->domainContent->search ($where); foreach ($recents as $data) { // each recent post $pathway = $store->domainContent->pathway ($data['domain_id'], $data['name']); $row->appendChild ($data) ->url ($pathway); } // each recent post if ($row->children) $mod->enabled = true; } // function setModule } // class eclMod_homePublications_list //!eof:library/homePublications/eclMod_homePublications_list.php; //!file:library/integration/eclApp_integration.php; class eclApp_integration { // class eclApp_integration static function is_child ($parent, $name) { // function is_child if ($name == 'integration') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'section'; } // function get_menu_type static function get_children_names () { // function get_children_names return array ('integration'); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('integration_content'); $me->access = 4; $me->getMap (); } // function constructor_helper static function dispatch ($document) { // function dispatch $document->mod->list = new eclMod_admin_list ($document); } // function dispatch } // class eclApp_integration //!eof:library/integration/eclApp_integration.php; //!file:library/integrationGoogleWebmasters/eclApp_integrationGoogleWebmasters.php; class eclApp_integrationGoogleWebmasters { // class eclApp_integrationGoogleWebmasters static function is_child ($me, $name) { // function is_child if ($name == 'google-webmasters') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'section'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names return array ('google-webmasters'); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('integrationGoogleWebmasters_content'); $me->access = 4; } // function constructor_helper static function dispatch ($document) { // function dispatch global $io, $store; $me = $document->application; $saved = &$store->domainContent->open ($me->domainId, '-google-webmasters'); if ($io->request->uploaded) { // save $fields = reset ($io->request->uploaded); $file = reset ($fields); if (!$file['size'] or $file['size'] > 2048) return; $data['local']['file_name'] = $file['name']; $data['local']['file_content'] = file_get_contents ($file['tmp_name']); if ($saved) { // saved $saved['local'] = $data['local']; } // saved else { // create $data['mode'] = MODE_CONFIG; $data['name'] = '-google-webmasters'; $store->domainContent->insert ($me->domainId, $data); $saved = $data; } // create } // save if ($saved) $formulary = $document->createFormulary ('integrationGoogleWebmasters_view', $saved); else $formulary = $document->createFormulary ('integrationGoogleWebmasters_create', array (), 'new'); if ($saved and $formulary->command ('remove')) { // remove $store->domainContent->delete ($me->domainId, $saved['id']); $formulary = $document->createFormulary ('integrationGoogleWebmasters_create', array (), 'new'); } // remove $document->mod->formulary = $formulary; } // function dispatch } // class eclApp_integrationGoogleWebmasters //!eof:library/integrationGoogleWebmasters/eclApp_integrationGoogleWebmasters.php; //!file:library/integrationRSS/eclApp_integrationRSS.php; class eclApp_integrationRSS { // class eclApp_integrationRSS static function is_child ($me, $name) { // function is_child if ($name == 'rss') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'section'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names return array ('rss'); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store, $system; $me->data = $store->control->read ('integrationRSS_content'); $me->access = 4; } // function constructor_helper static function dispatch ($document) { // function dispatch global $store; $me = $document->application; $formulary = $document->createFormulary ('integrationRSS_edit', $document->domain->data, 'rss'); if ($formulary->command ('save') and $formulary->save ()) { // save $document->domain->data = $formulary->data; $document->mod->humperstilshen->alert ('system_msg_alertDataUpdated'); } // save $document->mod->formulary = $formulary; } // function dispatch } // class eclApp_integrationRSS //!eof:library/integrationRSS/eclApp_integrationRSS.php; //!file:library/integrationSMS/config/eclApp_integrationSMS_config.php; class eclApp_integrationSMS_config { // class eclApp_integrationSMS_config static function is_child ($parent, $name) { // function is_child if ($name == 'config') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'section'; } // function get_menu_type static function get_children_names () { // function get_children_names return array ('config'); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('integrationSMS_config_content'); $me->access = 4; } // function constructor_helper static function dispatch ($document) { // function dispatch global $store; $me = $document->application; $formulary = $document->createFormulary ('integrationSMS_config_edit'); if ($formulary->command ('save') and $formulary->save ()) { // save $document->mod->humperstilshen->alert ('system_msg_alertDataUpdated'); } // save $document->mod->formulary = $formulary; } // function dispatch } // class eclApp_integrationSMS_config //!eof:library/integrationSMS/config/eclApp_integrationSMS_config.php; //!file:library/integrationSMS/eclApp_integrationSMS.php; class eclApp_integrationSMS { // class eclApp_integrationSMS static function is_child ($parent, $name) { // function is_child if ($name != 'sms') return false; if (SYSTEM_HOSTING_MODE == 0) return true; if ($me->applicationName == 'adminIntegrations') return true; if (defined ('INTEGRATION_SMS_MODE') and INTEGRATION_SMS_MODE > 1) return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'section'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names if (SYSTEM_HOSTING_MODE == 0) return array ('sms'); if ($me->applicationName == 'adminIntegrations') return array ('sms'); if (defined ('INTEGRATION_SMS_MODE') and INTEGRATION_SMS_MODE > 1) return array ('sms'); return array (); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store, $system; $me->data = $store->control->read ('integrationSMS_content'); $me->map = array ('integrationSMS_config', 'integrationSMS_test'); $me->groups = $system->groups; $me->access = 4; } // function constructor_helper static function dispatch ($document) { // function dispatch global $store; $me = $document->application; if (defined ('INTEGRATION_PAPO_SMS_ENABLE') and INTEGRATION_PAPO_SMS_ENABLE) $document->dataMerge ('integrationSMS_contentEnabled'); else $document->dataMerge ('integrationSMS_contentDisabled'); $document->mod->list = new eclMod_admin_list ($document); } // function dispatch } // class eclApp_integrationSMS //!eof:library/integrationSMS/eclApp_integrationSMS.php; //!file:library/integrationSMS/eclIo_integrationSMS_papo.php; class eclIo_integrationSMS { // class eclIo_integrationSMS public function send ($sms) { // function send global $store; if ( !defined ('INTEGRATION_PAPO_SMS_ENABLE') or !INTEGRATION_PAPO_SMS_ENABLE or INTEGRATION_PAPO_SMS_USER == '' or INTEGRATION_PAPO_SMS_PASS == '' or !isset ($sms['number']) or !isset ($sms['message']) ) return false; $url = 'https://www.paposms.com/webservice/1.0/send/'; $fields = array ( 'user' => INTEGRATION_PAPO_SMS_USER, 'pass' => INTEGRATION_PAPO_SMS_PASS, 'numbers' => $sms['number'], 'message' => $sms['message'], 'return_format' => 'json' ); $url .= '?' . http_build_query ($fields, 'a', '&'); $result = eclIo_webservice::json2array (file_get_contents ($url)); return $result; } // function send public function close () { // function close } // function close } // class eclIo_integrationSMS //!eof:library/integrationSMS/eclIo_integrationSMS_papo.php; //!file:library/integrationSMS/test/eclApp_integrationSMS_test.php; class eclApp_integrationSMS_test { // class eclApp_integrationSMS_test static function is_child ($parent, $name) { // function is_child if ($name == 'test') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'section'; } // function get_menu_type static function get_children_names () { // function get_children_names return array ('test'); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('integrationSMS_test_content'); $me->access = 4; } // function constructor_helper static function dispatch ($document) { // function dispatch global $store; $me = $document->application; $formulary = $document->createFormulary ('integrationSMS_test_edit'); if ($formulary->command ('save') and $formulary->save ()) { // save $document->mod->humperstilshen->alert ('system_msg_alertDataUpdated'); } // save $document->mod->formulary = $formulary; } // function dispatch } // class eclApp_integrationSMS_test //!eof:library/integrationSMS/test/eclApp_integrationSMS_test.php; //!file:library/integrationSMTP/config/eclApp_integrationSMTP_config.php; class eclApp_integrationSMTP_config { // class eclApp_integrationSMTP_config static function is_child ($me, $name) { // function is_child if ($name == 'config') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'section'; } // function get_menu_type static function get_children_names () { // function get_children_names return array ('config'); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('integrationSMTP_config_content'); } // function constructor_helper static function dispatch ($document) { // function dispatch global $io; $formulary = $document->createFormulary ('integrationSMTP_config_edit'); if ($formulary->save ()) { // formulary saved $document->mod->humperstilshen->alert ('system_msg_alertDataUpdated'); } // formulary saved $document->mod->formulary = $formulary; } // function dispatch } // class eclApp_integrationSMTP_config //!eof:library/integrationSMTP/config/eclApp_integrationSMTP_config.php; //!file:library/integrationSMTP/eclApp_integrationSMTP.php; class eclApp_integrationSMTP { // class eclApp_integrationSMTP static function is_child ($me, $name) { // function is_child if ($name != 'smtp') return false; if (SYSTEM_HOSTING_MODE == 0) return true; if ($me->applicationName == 'adminIntegrations') return true; if (defined ('INTEGRATION_SMTP_MODE') and INTEGRATION_SMTP_MODE > 1) return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'section'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names if (SYSTEM_HOSTING_MODE == 0) return array ('smtp'); if ($me->applicationName == 'adminIntegrations') return array ('smtp'); if (defined ('INTEGRATION_SMTP_MODE') and INTEGRATION_SMTP_MODE > 1) return array ('smtp'); return array (); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store, $system; $me->data = $store->control->read ('integrationSMTP_content'); $me->map = array ('integrationSMTP_config', 'integrationSMTP_test'); $me->groups = $system->groups; $me->access = 4; } // function constructor_helper static function dispatch ($document) { // function dispatch global $store; $document->mod->list = new eclMod_admin_list ($document); } // function dispatch } // class eclApp_integrationSMTP //!eof:library/integrationSMTP/eclApp_integrationSMTP.php; //!file:library/integrationSMTP/test/eclApp_integrationSMTP_test.php; class eclApp_integrationSMTP_test { // class eclApp_integrationSMTP_test static function is_child ($me, $name) { // function is_child if ($name == 'test') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'section'; } // function get_menu_type static function get_children_names () { // function get_children_names if (defined ('INTEGRATION_SMTP_ENABLE') and INTEGRATION_SMTP_ENABLE) return array ('test'); return array (); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('integrationSMTP_test_content'); } // function constructor_helper static function dispatch ($document) { // function dispatch global $io; $formulary = $document->createFormulary ('integrationSMTP_test_edit'); if ($formulary->save ()) { // formulary saved $data = $formulary->data; $mail = new eclIo_smtp (); if (isset ($data['to'])) $mail->to ($data['to']); if (isset ($data['cc'])) $mail->cc ($data['cc']); if (isset ($data['bcc'])) $mail->bcc ($data['bcc']); if (isset ($data['subject'])) $mail->subject ($data['subject'], $document->charset); if (isset ($data['text'])) $mail->contentTXT ($data['text'], $document->charset); if (isset ($data['html'])) $mail->contentHTML ($data['html'], $document->charset); $errorMsg = $mail->send (); $buffer['log'] = $mail->log; $log = $document->createFormulary ('integrationSMTP_test_view', $buffer, 'mail'); $document->mod->formulary = $log; if ($errorMsg) $document->mod->humperstilshen->alert ($errorMsg); return; } // formulary saved $document->mod->formulary = $formulary; } // function dispatch } // class eclApp_integrationSMTP_test //!eof:library/integrationSMTP/test/eclApp_integrationSMTP_test.php; //!file:library/modAudio/eclMod_modAudio.php; class eclMod_modAudio { // class eclMod_modAudio public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; // Procure a aplicação $me = $document->application->findModuleTarget ($document, $arguments); if (!$me) return; $number = $arguments[1]; // Procure o módulo dentro da aplicação if (isset ($me->data['extras']['audio_' . $number])) { // module exists $audio = $me->data['extras']['audio_' . $number]; $mod->data = $audio; $mod->enabled = true; } // module exists if ($document->access (4, $me->groups)) { // personalite $mod->enabled = true; if (isset ($audio)) { // modify $pathway = array_slice ($me->pathway, 1); array_unshift ($pathway, $document->domain->name, '-personalite', 'extras', 'audio_' . $number); $mod->data['local']['personalite_url'] = $document->url ($pathway); $caption = $store->control->read ('modAudio_edit'); $mod->data['local']['personalite_caption'] = $caption['text']['caption']; } // modify } // personalite $mod->data['local']['number'] = $number; $mod->data['local']['list'] = 'details'; $mod->data['local']['details'] = 'media_audio'; $mod->appendChild ($me); } // function setModule } // class eclMod_modAudio //!eof:library/modAudio/eclMod_modAudio.php; //!file:library/modBanner/eclMod_modBanner.php; class eclMod_modBanner { // class eclMod_modBanner public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; $me = $document->application; while (!isset ($me->data['extras']['banner']) and $me->parent->parent) { // search parent banner $me = $me->parent; } // search parent banner if ($me->isDomain) $me = $me->child (''); if (isset ($me->data['extras']['banner'])) { // banner found $mod->data = $me->data['extras']['banner']; $local['extras']['img_0'] = $me->data['extras']['banner']; $mod->appendChild ($local); $mod->enabled = true; } // banner found // Se o módulo pode ser editado if ($document->templateEditable and $document->access (4)) { // reference // Crie um módulo if (!$mod->children) { // creates an image $mod->data = $store->control->read ('modBanner_create'); $mod->appendChild ($store->control->read ('modBanner_create')); } // creates an image $pathway = array_slice ($me->pathway, 1); array_unshift ($pathway, $document->domain->name, '-personalite', 'extras', 'banner'); $mod->data['local']['personalite_url'] = $document->url ($pathway); $caption = $store->control->read ('modBanner_edit'); $mod->data['local']['personalite_caption'] = $caption['text']['caption']; $mod->enabled = true; } // reference } // function setModule } // class eclMod_modBanner //!eof:library/modBanner/eclMod_modBanner.php; //!file:library/modBox/eclApp_modBox.php; class eclApp_modBox { // class eclApp_modBox static function is_child ($me, $name) { // function is_child if ($name == 'box') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names () { // function get_children_names return array ('box'); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('modBox_content'); $me->ignoreSubfolders = true; $me->isDomain = true; } // function constructor_helper static function dispatch ($document) { // function dispatch global $store, $system; $pathway = $document->pathway; array_shift ($pathway); // domain array_shift ($pathway); // -dialog array_shift ($pathway); // box if (!isset ($document->actions['create'])) { // edit $name = array_pop ($pathway); $parts = explode (CHR_FNS, $name); if (count ($parts) == 2) list ($name, $number) = $parts; else $number = '0'; $pathway[] = $name; } // edit $me = $document->domain; foreach ($pathway as $name) { // each name $me = $me->child ($name); if ($me === false) return; } // each name if (!$document->access (4, $me->groups)) return; if (!isset ($number)) { // find last index $newBox = true; for ($number = 0; $number < 100; $number++) { // find number if (!isset ($me->data['extras']['box_' . strval ($number)])) break; } // find number $document->pathway[count ($document->pathway) - 1] .= CHR_FNS . strval ($number); } // find last index if (isset ($me->data['extras']['box_' . strval ($number)])) $data = $me->data['extras']['box_' . strval ($number)]; else { // empty $data = $store->control->read ('modBox_module'); } // empty $formulary = $document->createFormulary ('modBox_edit', $data); $formulary->pathway = $document->pathway; if (isset ($document->actions['create'])) $formulary->action = '_return-tag'; if ($formulary->save ()) { // save box $me->data['extras']['box_' . strval ($number)] = $formulary->data; $document->dataReplace ('layouts/dialog_close'); if ($document->actions ('return', 'tag')) $document->data['module'] = 'box:' . $number; return; } // save box $document->mod->formulary = $formulary; } // function dispatch } // class eclApp_modBox //!eof:library/modBox/eclApp_modBox.php; //!file:library/modBox/eclMod_modBox.php; class eclMod_modBox { // class eclMod_modBox public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; $render = $document->render; $me = $document->application->findModuleTarget ($document, $arguments); if (!$me) return; $number = $arguments[1]; // Procure o módulo dentro da aplicação if (isset ($me->data['extras']['box_' . $number])) { // module exists $box = $me->data['extras']['box_' . $number]; $mod->data = array_replace_recursive ($render->block ('modules/box'), $box); } // module exists if ($document->access (4, $me->groups)) { // personalite $mod->enabled = true; if (!isset ($box)) { // empty if (!$document->contentEditable) $mod->data = $store->control->read ('modBox_create'); else $box = array (); } // empty if ($document->contentEditable) { // editable $mod->data['local']['editable'] = 1; $mod->data['local']['id'] = $me->id; $mod->data['local']['number'] = $number; } // editable $pathway = array_slice ($me->pathway, 1); array_unshift ($pathway, $document->domain->name, '-personalite', 'extras', 'box_' . $number); $mod->data['local']['personalite_url'] = $document->url ($pathway); $caption = $store->control->read ('modBox_edit'); $mod->data['local']['personalite_caption'] = $caption['text']['caption']; } // personalite if (!isset ($box)) return; $mod->data['local']['list'] = 'box'; $mod->appendChild ($box); $mod->enabled = true; } // function setModule } // class eclMod_modBox //!eof:library/modBox/eclMod_modBox.php; //!file:library/modBreadcrumbs/eclMod_modBreadcrumbs.php; class eclMod_modBreadcrumbs { // class eclMod_modBreadcrumbs public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; $render = $document->render; $me = $document->application; if ($document->printableLayout) return; if ($document->domain->domainId and !isset ($document->data['id'])) return; if (count ($document->pathway) == 1) return; $list[] = $me; while (!$me->parent->isDomain) { // parent is not a domain $me = $me->parent; $list[] = $me; } // parent is not a domain $length = count ($list); if (!$length) return; $row = $mod->appendChild (); // The index page $row->appendChild ($document->domain->child ('')->data) ->url ($document->domain->pathway); for ($i = $length - 1; $i >= 0; $i--) { // loop each breadcrumb $row->appendChild ($list[$i]->data) ->url ($list[$i]->pathway) ->active ($i == 0); } // loop each breadcrumb // Configurações $mod->data = $render->block ('modules/breadcrumbs'); // Se o módulo pode ser editado if ($document->templateEditable and $document->access (4, $document->domain->groups)) { // reference $pathway = array ($document->domain->name, '-personalite', 'modules', 'breadcrumbs'); $mod->data['local']['personalite_url'] = $document->url ($pathway); $caption = $store->control->read ('modBreadcrumbs_edit'); $mod->data['local']['personalite_caption'] = $caption['text']['caption']; } // reference $mod->enabled = true; } // function setModule } // class eclMod_modBreadcrumbs //!eof:library/modBreadcrumbs/eclMod_modBreadcrumbs.php; //!file:library/modCart/eclMod_modCart.php; class eclMod_modCart { // class eclMod_modCart public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; $me = $document->application; $render = $document->render; $cart = 'cart_' . $document->domain->name; // Condições if (!isset ($document->session[$cart])) return; if ($me->isDomain) return; if (!$me->id) return; if ($document->printableLayout) return; if (isset ($document->domain->data['flags']['modCart_timer']) and $timer = $document->domain->data['flags']['modCart_timer'] and isset ($me->data['marker']) and $me->data['marker'] == 12) return; $me = $document->application; // Configurações $mod->data = $render->block ('modules/cart'); // Itens da lista $local = array(); $quantity = 0; $value = 0; foreach ($document->session[$cart]['order'] as $product) { // each product $quantity += $product['quantity']; $value += $product['value'] * $product['quantity']; } // each product if ($quantity == 1) $captionItems = $store->control->read ('labels/field/cart_item'); else $captionItems = $store->control->read ('labels/field/cart_items'); $local['caption'] = $document->textMerge ($quantity, ' ', $captionItems['text']['caption'], ' (R$' . $value . ')'); if ($me->name != '-cart' and (!isset ($me->data['mode']) or $me->data['mode'] != MODE_SECTION or !isset ($me->data['marker']) or $me->data['marker'] != 12)) { // go to cart if ($id = $store->domainContent->findMarker ($document->domain->domainId, 12)) $local['url'] = $document->url ($store->domainContent->pathway ($document->domain->domainId, $id)); else $local['url'] = $document->url (array ($document->domain->name, '-cart')); } // go to cart if (isset ($timer) and $timer) { // timer on if (isset ($document->session[$cart]['start_time'])) { // set timer $local['timer_on'] = 1; $local['timer'] = $timer - (TIME - $document->session[$cart]['start_time']); $local['url_timeout'] = $document->url (true, true, '_preload-cart_cart-timeout'); if ($local['timer'] < 10) $local['timeout'] = 1; } // set timer } // timer on $mod->appendChild ($local); // Se o módulo pode ser editado if ($document->templateEditable and $document->access (4, $document->domain->groups)) { // reference $pathway = array ($document->domain->name, '-personalite', 'modules', 'cart'); $mod->data['local']['personalite_url'] = $document->url ($pathway); $caption = $store->control->read ('modCart_edit'); $mod->data['local']['personalite_caption'] = $caption['text']['caption']; } // reference $mod->enabled = true; } // function setModule } // class eclMod_modCart //!eof:library/modCart/eclMod_modCart.php; //!file:library/modCart/scope/eclMod_modCart_scope.php; class eclMod_modCart_scope { // class eclMod_modCart_scope public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; $render = $document->render; if (!$render->getVar ('value')) return; if (!$store->domainContent->findMarker ($document->domain->domainId, 12)) return; $mod->data = $store->control->read ('modCart_scope_module'); $row = $mod->appendChild ($render->data); $row->data['url'] = $document->url (true, true, '_preload-cart'); $mod->enabled = true; } // function setModule } // class eclMod_modCart_scope //!eof:library/modCart/scope/eclMod_modCart_scope.php; //!file:library/modComments/add/eclMod_modComments_add.php; class eclMod_modComments_add { // class eclMod_modComments_add public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; $render = $document->render; if (!$document->mod->comments->children) return; $mod->children = $document->mod->comments->children; // Se o módulo pode ser editado if ($document->templateEditable and $document->access (4, $document->domain->groups)) { // reference $pathway = array ($document->domain->name, '-personalite', 'modules', 'comments_add'); $mod->data['local']['personalite_url'] = $document->url ($pathway); $caption = $store->control->read ('modComments_add_edit'); $mod->data['local']['personalite_caption'] = $caption['text']['caption']; } // reference $mod->data = $render->block ('modules/comments_add'); $mod->enabled = true; } // function setModule } // class eclMod_modComments_add //!eof:library/modComments/add/eclMod_modComments_add.php; //!file:library/modComments/eclMod_modComments.php; class eclMod_modComments { // class eclMod_modComments public $document; public $enable = false; public $children = array (); public function __construct ($document) { // function __construct global $store; $this->document = $document; } // function __construct public function enable () { // function enable global $store; $document = $this->document; $me = $document->application; $this->enable = true; // Conditions if (!$document->user->userId) return; if (!$me->userId and !isset ($me->parent->data['flags']['comments_access'])) return; if (!$me->userId and !$document->access ($me->parent->data['flags']['comments_access'])) return; $formulary = $document->createFormulary ('modComments_add_form', array (), 'add_comment'); if ($formulary->command ('save') and $formulary->save ()) { // save comment $section = &$store->domainContent->openById ($me->domainId, $me->id); $section['coments_last_update'] = TIME; $data = $formulary->data; $data['mode'] = MODE_COMMENT; $data['parent_id'] = $me->id; $data['owner_id'] = $document->user->userId; $store->domainExtras->insert ($me->domainId, $data); $where = array ( 'domain_id' => $me->domainId, 'mode' => MODE_GROUP, 'parent_id' => $me->id, 'owner_id' => $document->user->userId, ); $groups = $store->domainExtras->search ($where); if ($groups) { // group found } // group ofound else { // create group $group = array ( 'domain_id' => $me->domainId, 'mode' => MODE_GROUP, 'parent_id' => $me->id, 'owner_id' => $document->user->userId ); $store->domainExtras->insert ($me->domainId, $group); } // create group $formulary->data = array (); } // save comment $this->children = $formulary->create ()->children; } // function enable public function setModule ($mod, $arguments) { // function setModule global $store; if (!$this->enable) return; $document = $this->document; $me = $document->application; $render = $document->render; $comments = $store->domainExtras->children ($me->domainId, MODE_COMMENT, $me->id); if (!$comments) return; $row = $mod->appendChild (); foreach ($comments as $data) { // each comment $row->appendChild ($data); } // each comment $row->sort (); $mod->data = $render->block ('modules/comments'); // Se o módulo pode ser editado if ($document->templateEditable and $document->access (4, $document->domain->groups)) { // reference $pathway = array ($document->domain->name, '-personalite', 'modules', 'comments'); $mod->data['local']['personalite_url'] = $document->url ($pathway); $caption = $store->control->read ('modComments_edit'); $mod->data['local']['personalite_caption'] = $caption['text']['caption']; } // reference $mod->enabled = true; } // function setModule } // class eclMod_modComments //!eof:library/modComments/eclMod_modComments.php; //!file:library/modContent/eclMod_modContent.php; class eclMod_modContent { // class eclMod_modContent public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; $render = $document->render; // Condições if (!isset ($document->data['text']['content']) and !$document->contentEditable) return; // Configurações $mod->data = $render->block ('modules/content'); // Itens da lista $mod->appendChild ($document->data) ->set ('editable', $document->contentEditable); // Se o módulo pode ser editado if ($document->templateEditable and $document->access (4, $document->domain->groups)) { // reference $pathway = array ($document->domain->name, '-personalite', 'modules', 'content'); $mod->data['local']['personalite_url'] = $document->url ($pathway); $caption = $store->control->read ('modContent_edit'); $mod->data['local']['personalite_caption'] = $caption['text']['caption']; } // reference $mod->enabled = true; } // function setModule } // class eclMod_modContent //!eof:library/modContent/eclMod_modContent.php; //!file:library/modContext/eclMod_modContext.php; class eclMod_modContext extends eclEngine_listItem { // class eclMod_modContext public $mode = false; public $help = false; public $enabled = true; public $document; public function __construct ($document) { // function __construct global $store; $this->document = $document; } // function __construct public function help ($name) { // function help global $store; $data = $store->control->read ($name); if (!$data) return false; if (!isset ($data['text']['caption'])) { // get title $title = $store->control->read ('modContext_goHelp'); $data['text']['caption'] = $title['text']['caption']; if (!isset ($data['text']['title'])) $data['text']['title'] = $title['text']['caption']; } // get title $this->help = $this->document->createListItem ($data) ->dialog ($data); return true; } // function help public function setModule ($mod, $arguments) { // function setModule global $store; if (!$this->enabled) return; $document = $this->document; $me = $document->application; $render = $document->render; $row = $mod->appendChild (); $row->children = $this->children; if ($document->user->userId and $me->userId and $me->userId != $document->user->userId) $this->socialTools ($row); if ($this->help) $row->children[] = $this->help; foreach ($row->children as &$child) { // each child $child->data['virtual'] = 1; } // each child if (!$document->access (2) and ($document->application->userId or $document->application->id)) { // abuse report $row->appendChild ('modWelcome_goReport') ->url (true, true, '_preload-report') ->active ($document->actions ('alert', 'report')); } // abuse report if (!$row->children) return; $mod->data = array_replace ($render->block ('modules/system_menu'), $store->control->read ('modContext_module')); $mod->enabled = true; } // function setModule private function socialTools ($row) { // function socialTools global $store; $document = $this->document; $me = $document->application; $user = $document->user; $friend = $store->userContent->open ($me->userId, '-register'); if ($chatId = $store->userContent->findMarker ($user->userId, 3)) $pathway = $store->userContent->pathway ($user->userId, $chatId); else $pathway = array (SYSTEM_PROFILES_URI, $user->name, '-chat'); $pathway[] = $store->user->getName ($me->userId); $row->appendChild ('modContext_goChat') ->set ('friend_caption', $friend['text']['caption']) ->url ($pathway); } // function socialTools } // class eclMod_modContext //!eof:library/modContext/eclMod_modContext.php; //!file:library/modDinamic/eclMod_modDinamic.php; class eclMod_modDinamic { // class eclMod_modDinamic public $document, $name; public function __construct ($document, $name=false) { // function __construct $this->document = $document; $this->name = $name; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store, $system; $document = $this->document; $render = $document->render; // Identifique o nome da seção e o número do painel if (is_string ($this->name)) $arguments = array ($this->name, '0'); // Procure a aplicação $me = $document->application->findModuleTarget ($document, $arguments); if (!$me) return; $number = $arguments[1]; // Procure o módulo dentro da aplicação if (isset ($me->data['extras']['dinamic_' . $number])) $mod->data = $me->data['extras']['dinamic_' . $number]; else { // from preset if (isset ($me->data['flags']['modList_preset'])) $preset = $me->data['flags']['modList_preset']; else $preset = 'blog'; $mod->data = $render->block ('modules/dinamic_' . $preset); if (!$mod->data) $mod->data = $render->block ('modules/dinamic_blog'); } // from preset if ($document->access (4)) { // personalite $mod->enabled = true; if (!$mod->data) $mod->data = $store->control->read ('modDinamic_create'); $pathway = array_slice ($me->pathway, 1); array_unshift ($pathway, $document->domain->name, '-personalite', 'extras', 'dinamic_' . $number); $mod->data['local']['personalite_url'] = $document->url ($pathway); $caption = $store->control->read ('modDinamic_edit'); $mod->data['local']['personalite_caption'] = $caption['text']['caption']; } // personalite // configurações de listagem if (isset ($mod->data['local'])) $local = $mod->data['local']; else $local = array (); isset ($local['list_sort']) or $local['list_sort'] = 'index'; isset ($local['list_direction']) or $local['list_direction'] = 'asc'; isset ($local['list_max']) or $local['list_max'] = 5; isset ($local['list_update']) or $local['list_update'] = 'auto'; isset ($local['list_offset']) or $local['list_offset'] = 0; isset ($local['list_filter']) or $local['list_filter'] = ''; // Extract items switch ($me->data['mode']) { // switch mode case MODE_SECTION: switch ($me->data['flags']['section_type']) { // switch section type case 'folder': $children = $store->domainContent->children ($me->domainId, MODE_SECTION, $me->id); break; case 'blog': $children = $store->domainContent->children ($me->domainId, MODE_POST, $me->id); } // switch section type break; case MODE_DOMAIN: if ($me->data['name'] == '-index') $children = $store->domainContent->children ($me->domainId, MODE_SECTION, 0); elseif ($me->data['name'] == '-recents' and isset ($me->data['links']['pages'])) { // recents foreach ($me->data['links']['pages'] as $name) { // each page $children[] = $store->domainContent->open ($me->domainId, $name); } // each page } // recents break; case MODE_CATEGORY: if (isset ($me->data['links']['pages'])) { // category pages foreach ($me->data['links']['pages'] as $name) { // each page $children[] = $store->domainContent->open ($me->domainId, $name); } // each page } // category pages } // switch mode if (!isset ($children) or !$children) return; $sort = $local['list_sort']; $filter = $local['list_filter']; switch ($sort) { // switch list sort case 'name': case 'index': case 'created': case 'updated': case 'event_start': case 'coments_last_update': case 'hits': case 'value': case 'spotlight': $sorted = array (); foreach ($children as $data) { // each child if (!$data) continue; if ($filter == 'event_start' and $data['event_start'] < TIME) continue; elseif ($filter == 'spotlight' and !$data['spotlight']) continue; if (isset ($data[$sort])) $sorted[$data[$sort]][] = $data; else $sorted['zzzzzzzzz'][] = $data; } // each child if ($local['list_direction'] == 'asc') ksort ($sorted); else krsort ($sorted); $children = array (); foreach ($sorted as $equal) { // each value foreach ($equal as $data) { // each equal $children[] = $data; } // each equal } // each value break; case 'shuffle': shuffle ($children); break; } // switch list sort switch ($local['list_update']) { // switch update mode case 'auto': $offset = 0; break; case 'hits': $offset = mt_rand (0, count ($children)); break; case 'hour': $offset = (24 * intval (date ('z'))) + intval (date ('G')); break; case 'day': $offset = intval (date ('z')); break; case 'week': $offset = intval (date ('W')); break; case 'month': $offset = intval (date ('n')); break; default: $offset = 0; } // switch update mode $total = count ($children); if (!$total) return; if ($local['list_max'] == 0 or $local['list_max'] > $total) $max = $total; else $max = $local['list_max']; $offset += $local['list_offset']; $offset = $offset % $total; // Itens da lista $row = $mod->appendChild (); for ($i = 0; $i < $max; $i++) { // each child $data = $children[$offset]; $post = $me->findChild ($data['name']); if ($post and $document->access ($post->access, $post->groups)) { // access ok $row->appendChild ($post) ->set ('editable', $document->contentEditable and $document->access (4, $post->groups)) ->url ($post->pathway); } // access ok $offset++; if ($offset >= $total) $offset = 0; } // each child if ($row->children) $mod->enabled = true; } // function setModule } // class eclMod_modDinamic //!eof:library/modDinamic/eclMod_modDinamic.php; //!file:library/modEditor/document/eclMod_modEditor_document.php; class eclMod_modEditor_document { // class eclMod_modEditor_document public $mode = false; public $enabled = false; public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; $control = $store->control->read ('modEditor_document_module'); $mod->data = $control; $mod->appendChild ('modEditor_document_save') ->set ('url', 'javascript:humperstilshen.refresh()'); $mod->enabled = true; } // function setModule } // class eclMod_modEditor_document //!eof:library/modEditor/document/eclMod_modEditor_document.php; //!file:library/modEditor/eclApp_modEditor.php; class eclApp_modEditor { // class eclApp_modEditor static function is_child ($me, $name) { // function is_child if ($name == 'wysiwyg') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names () { // function get_children_names return array ('wysiwyg'); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper } // function constructor_helper static function dispatch ($document) { // function dispatch if (!isset ($document->received['fields'])) return; foreach (explode (' ', $document->received['fields']) as $from) { // each field if (!isset ($from[0])) continue; $parts = explode ('_', $from); $length = count ($parts); if ($length == 1) continue; switch ($parts[1]) { // switch target case 'caption': case 'title': case 'description': case 'content': self::update_text ($document, $from); break; case 'box': if ($length == 3) self::update_box ($document, $from); break; case 'table': if ($length == 5) self::update_table ($document, $from); break; } // switch target } // each field } // function dispatch static function &get_data ($document, $id) { // function & global $store; $empty = array (); $data = &$store->domainContent->openById ($document->domain->domainId, intval ($id)); if (!$data) return $empty; if ($data['mode'] == MODE_DOMAIN and $document->access (4, $document->domain->groups)) return $data; $me = $document->domain->findChild ($data['name']); if ($me == false) return $empty; if ($document->access (4, $me->groups)) return $data; return $empty; } // function & static function update_text ($document, $from) { // function update_text list ($id, $field) = explode ('_', $from); $data = &self::get_data ($document, $id); if (!$data) return; if (!isset ($data['text'][$field])) $data['text'][$field] = array (); if (isset ($document->received[$from][0])) { // received if ($field == 'content') $data['text'][$field][$document->lang] = array (4 => 1, 5 => 2, 6 => 1); else $data['text'][$field][$document->lang] = array (); $data['text'][$field][$document->lang][1] = $document->received[$from]; if ($document->charset == 'ISO-8859-1') $data['text'][$field][$document->lang][2] = 1; } // received else unset ($data['text'][$field][$document->lang]); } // function update_text static function update_box ($document, $from) { // function update_box list ($id, $target, $number) = explode ('_', $from); $data = &self::get_data ($document, $id); if (!$data) return; $target .= '_' . $number; if (!isset ($data['extras'][$target])) $data['extras'][$target] = array (); if (isset ($document->received[$from][0])) { // received $data['extras'][$target]['content'][$document->lang] = array ( 1 => $document->received[$from], 4 => 1, 5 => 2, 6 => 1 ); if ($document->charset == 'ISO-8859-1') $data['extras'][$target]['content'][$document->lang][2] = 1; } // received else unset ($data['extras'][$target]['content'][$document->lang]); } // function update_box static function update_table ($document, $from) { // function update_table static $saved = array (); list ($id, $target, $number) = explode ('_', $from); if (isset ($saved[$id . '_table_' . $number])) return; $saved[$id . '_table_' . $number] = true; $data = &self::get_data ($document, $id); if (!$data) return; if (!isset ($data['extras']['table_' . $number]['table'])) return; $received = $document->received; $table = &$data['extras']['table_' . $number]['table']; $numCols = 0; foreach ($table as $row) { // each row if (count ($row) > $numCols) $numCols = count ($row); } // each row $numRows = count ($table); $newTable = array (); for ($indexRow = 0; $indexRow < $numRows; $indexRow++) { // each row for ($indexCol = 0; $indexCol < $numCols; $indexCol++) { // each column if (isset ($received[$id . '_table_' . $number . '_' . $indexRow . '_' . $indexCol])) $content = $received[$id . '_table_' . $number . '_' . $indexRow . '_' . $indexCol]; elseif (isset ($table[$indexRow][$indexCol])) $content = $table[$indexRow][$indexCol]; else $content = ''; $newTable[$indexRow][$indexCol] = $content; } // each column } // each row $table = $newTable; } // function update_table } // class eclApp_modEditor //!eof:library/modEditor/eclApp_modEditor.php; //!file:library/modEditor/eclMod_modEditor.php; class eclMod_modEditor { // class eclMod_modEditor public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function enable () { // function enable return; $document = $this->document; if ($document->printableLayout) return; if ($document->actions ('wysiwyg', 'enable')) unset ($document->user->data['flags']['modContent_wysiwygDisabled']); elseif ($document->actions ('wysiwyg', 'disable')) $document->user->data['flags']['modContent_wysiwygDisabled'] = 1; if (isset ($document->user->data['flags']['modContent_wysiwygDisabled'])) { // disabled $document->mod->interface->appendChild ('modEditor_contextWisiwygEnable') ->url (true, true, '_wysiwyg-enable'); } // disabled else { // enabled $document->mod->interface->appendChild ('modEditor_contextWisiwygDisable') ->url (true, true, '_wysiwyg-disable'); $document->contentEditable = true; } // enabled } // function enable public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; if (!$document->contentEditable) return; $control = $store->control->read ('modEditor_module'); $mod->data = $control; $mod->data['local']['ref_submit'] = $document->url (true, true, '_preload-wysiwyg'); $mod->enabled = true; } // function setModule } // class eclMod_modEditor //!eof:library/modEditor/eclMod_modEditor.php; //!file:library/modEditor/insert/eclMod_modEditor_insert.php; class eclMod_modEditor_insert { // class eclMod_modEditor_insert public $mode = false; public $enabled = false; public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; $me = $document->application; $control = $store->control->read ('modEditor_insert_module'); $mod->data = $control; foreach ($control['children'] as $childName) { // each child $child = $store->control->read ($childName); $item = $mod->appendChild ($child); if (isset ($child['local']['target'])) { // open dialog $pathway = array_slice ($me->pathway, 1); array_unshift ($pathway, $document->domain->name, '-personalite', $child['local']['personalite'], $child['local']['target']); $item->url ($pathway, true, '_return-tag') ->popUpOpen (400, 300); } // open dialog } // each child $mod->enabled = true; } // function setModule } // class eclMod_modEditor_insert //!eof:library/modEditor/insert/eclMod_modEditor_insert.php; //!file:library/modEditor/objects/eclMod_modEditor_objects.php; class eclMod_modEditor_objects { // class eclMod_modEditor_objects public $mode = false; public $enabled = false; public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; $render = $document->render; $me = $document->application; $base = array_slice ($me->pathway, 1); if (!$me->domainId or !isset ($me->data['mode']) or !$document->access (4)) return; switch ($me->data['mode']) { // switch mode case MODE_SECTION: $modeCaption = $store->control->read ('modEditor_objects_ofSection'); break; case MODE_POST: $modeCaption = $store->control->read ('modEditor_objects_ofPost'); break; default: $modeCaption = $store->control->read ('modEditor_objects_ofPage'); } // switch mode $documentObjects = array (); $contentObjects = array (); foreach ($me->data['extras'] as $field => $object) { // each object $parts = explode ('_', $field); if (count ($parts) < 2) continue; list ($target, $number) = $parts; switch ($target) { // switch target case 'audio': case 'box': case 'file': case 'html': case 'img': case 'table': case 'video': if ($number == '0') $documentObjects[$field] = $object; else $contentObjects[$field] = $object; } // switch target } // each object ksort ($documentObjects); ksort ($contentObjects); $row = $mod->appendChild (); foreach ($documentObjects as $field => $object) { // each document object $pathway = $base; array_unshift ($pathway, $document->domain->name, '-personalite', 'extras', $field); $caption = $store->control->read ('modEditor_objects_' . $target); $local['caption'] = $document->textMerge ($caption['text']['caption'], ' ', $modeCaption['text']['caption']); $row->appendChild ($local) ->url ($pathway) ->popUpOpen (); } // each document object foreach ($contentObjects as $field => $object) { // each content object list ($target, $number) = explode ('_', $field); $pathway = $base; array_unshift ($pathway, $document->domain->name, '-personalite', 'extras', $field); $caption = $store->control->read ('modEditor_objects_' . $target); $local['caption'] = $document->textMerge ($caption['text']['caption'], ' ' . $number); $row->appendChild ($local) ->url ($pathway) ->popUpOpen (); } // each content object if (!$row->children) return; $mod->data = array_replace ($render->block ('modules/system_menu'), $store->control->read ('modEditor_objects_module')); $mod->enabled = true; } // function setModule } // class eclMod_modEditor_objects //!eof:library/modEditor/objects/eclMod_modEditor_objects.php; //!file:library/modFile/eclMod_modFile.php; class eclMod_modFile { // class eclMod_modFile public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; // Procure a aplicação $me = $document->application->findModuleTarget ($document, $arguments); if (!$me) return; $number = $arguments[1]; // Procure o módulo dentro da aplicação if (isset ($me->data['extras']['file_' . $number])) { // module exists $file = $me->data['extras']['file_' . $number]; $mod->data = $file; $mod->enabled = true; } // module exists if ($document->access (4, $me->groups)) { // personalite $mod->enabled = true; $pathway = array_slice ($me->pathway, 1); array_unshift ($pathway, $document->domain->name, '-personalite', 'extras', 'file_' . $number); if (!isset ($file)) { // create $mod->data = $store->control->read ('modFile_create'); $mod->appendChild ($mod->data) ->url ($pathway) ->popUpOpen (); return; } // create $pathway = array_slice ($me->pathway, 1); array_unshift ($pathway, $document->domain->name, '-personalite', 'extras', 'file_' . $number); $mod->data['local']['personalite_url'] = $document->url ($pathway); $caption = $store->control->read ('modFile_edit'); $mod->data['local']['personalite_caption'] = $caption['text']['caption']; } // personalite $mod->data['local']['number'] = $number; $mod->data['local']['list'] = 'details'; $mod->data['local']['details'] = 'media_file'; if (!isset ($file)) return; $local['extras'] = array ('file_' . $number => $file); $local['pathway'] = $me->pathway; $mod->appendChild ($local); } // function setModule } // class eclMod_modFile //!eof:library/modFile/eclMod_modFile.php; //!file:library/modFooter/eclMod_modFooter.php; class eclMod_modFooter { // class eclMod_modFooter public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; $render = $document->render; if (!$document->domain->domainId) return; // Configurações $mod->data = $render->block ('modules/footer'); // Se o módulo pode ser editado if ($document->templateEditable and $document->access (4, $document->domain->groups)) { // reference $mod->enabled = true; $pathway = array ($document->domain->name, '-personalite', 'modules', 'footer'); if (!isset ($mod->data['text']['content'])) { // insert info $mod->data = $store->control->read ('modFooter_create'); $row = $mod->appendChild (); $row->appendChild ('modFooter_create') ->url ($pathway) ->popUpOpen (); return; } // insert info $mod->data['local']['personalite_url'] = $document->url ($pathway); $caption = $store->control->read ('modFooter_edit'); $mod->data['local']['personalite_caption'] = $caption['text']['caption']; } // reference if (!isset ($mod->data['text']['content'])) return; $mod->appendChild ($mod->data); $mod->enabled = true; } // function setModule } // class eclMod_modFooter //!eof:library/modFooter/eclMod_modFooter.php; //!file:library/modFormulary/eclMod_modFormulary.php; class eclMod_modFormulary { // class eclMod_modFormulary public function setModule () { // function setModule } // function setModule } // class eclMod_modFormulary //!eof:library/modFormulary/eclMod_modFormulary.php; //!file:library/modHits/eclMod_modHits.php; class eclMod_modHits { // class eclMod_modHits public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; $render = $document->render; // Condições if (!isset ($document->data['hits']) or !$document->data['hits']) return; // Configurações $mod->data = $render->block ('modules/hits'); // Itens da lista $mod->appendChild ($document->data); // Se o módulo pode ser editado if ($document->templateEditable and $document->access (4, $document->domain->groups)) { // reference $pathway = array ($document->domain->name, '-personalite', 'modules', 'hits'); $mod->data['local']['personalite_url'] = $document->url ($pathway); $caption = $store->control->read ('modHits_edit'); $mod->data['local']['personalite_caption'] = $caption['text']['caption']; } // reference $mod->enabled = true; } // function setModule } // class eclMod_modHits //!eof:library/modHits/eclMod_modHits.php; //!file:library/modHtml/eclMod_modHtml.php; class eclMod_modHtml { // class eclMod_modHtml public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; // Procure a aplicação $me = $document->application->findModuleTarget ($document, $arguments); if (!$me) return; $number = $arguments[1]; // Procure o módulo dentro da aplicação if (isset ($me->data['extras']['html_' . $number])) { // module exists $html = $me->data['extras']['html_' . $number]; $mod->data = $html; $mod->enabled = true; } // module exists if ($document->access (4, $me->groups)) { // personalite $mod->enabled = true; $pathway = array_slice ($me->pathway, 1); array_unshift ($pathway, $document->domain->name, '-personalite', 'extras', 'html_' . $number); if (!isset ($html)) { // empty $mod->data = $store->control->read ('modHtml_create'); $mod->appendChild ($mod->data) ->url ($pathway) ->popUpOpen (); return; } // empty $mod->data['local']['personalite_url'] = $document->url ($pathway); $caption = $store->control->read ('modHtml_edit'); $mod->data['local']['personalite_caption'] = $caption['text']['caption']; } // personalite if (!isset ($html)) return; $mod->data['local']['list'] = 'html'; $mod->appendChild ($html); } // function setModule } // class eclMod_modHtml //!eof:library/modHtml/eclMod_modHtml.php; //!file:library/modHumperstilshen/eclMod_modHumperstilshen.php; class eclMod_modHumperstilshen extends eclEngine_listItem { // class eclMod_modHumperstilshen public $children = array (); public $loginError = false; public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; $menu = $document->createListItem (array ('name' => 'menu', 'add_close_button' => 1)); if ( ($document->access (1) or $document->application->isDomain) and !$document->mod->context->help) { // application help $help = $document->application->applicationName . '_help'; if ($help == 'section_help' and isset ($document->application->data['flags']['section_type'])) $help = 'section' . ucfirst ($document->application->data['flags']['section_type']) . '_help'; $data = $store->control->read ($help); if ($data) { // context help found $document->mod->context->help ($help); } // context help found } // application help if ($document->application->isDomain) { // is domain $menu->appendChild (array ('name' => 'context')); } // is domain elseif ($document->access (1)) { // connected if ($document->domain->name == SYSTEM_ADMIN_URI) $menu_list = array ('context', 'user'); if ($document->domain->name == SYSTEM_ADMIN_URI) $menu_list = array ('context', 'user'); elseif ($document->application->userId) $menu_list = array ('context', 'user_tools', 'user'); elseif (!$document->contentEditable) $menu_list = array ('context', 'editor_objects', 'interface', 'toolbox', 'user'); else $menu_list = array ('context', 'interface', 'toolbox', 'user'); if (!$menu_list and $this->children) $menu_list = array ('context'); foreach ($menu_list as $menuName) { // each menu $menu->appendChild (false, array ('name' => $menuName)); } // each menu if ($document->contentEditable) { // editor menu $editor = $this->appendChild (array ('name' => 'editor', 'add_close_button' => 1)); $editor->appendChild (array ('name' => 'editor_document')); $editor->appendChild (array ('name' => 'editor_objects')); $editor->appendChild (array ('name' => 'editor_insert')); } // editor menu } // connected else { // login $menu->appendChild (array ('name' => 'login')); $menu->appendChild (array ('name' => 'user_welcome')); if ($this->loginError) $menu->data['alert'] = 1; } // login if (!$menu->children) return; // Refresh window $mod->data['local']['refresh'] = $document->url (); if ($document->access (1)) { // check session expiration $mod->data['local']['session_check_url'] = $document->url ($document->domain->pathway, true, '_session-check'); $mod->data['local']['session_refresh_url'] = $document->url ($document->domain->pathway, true, '_session-refresh'); $mod->data['local']['session_ttl'] = SYSTEM_SESSION_TTL; $formulary = $document->createFormulary ('modHumperstilshen_sessionCheck', array (), 'session_check'); $this->dialog ('modHumperstilshen_sessionCheck', array (), $formulary); $mod->data['local']['session_dialog'] = 'dialog_' . count ($this->children); } // check session expiration $mod->children = $this->children; $mod->appendChild ($menu); $mod->enabled = true; } // function setModule public function alert ($alert, $formulary=false) { // function alert $local = array ('alert' => 1); return $this->dialog ($alert, $local, $formulary); } // function alert public function dialog ($data, $local=array (), $formulary=false) { // function dialog global $store; if (is_string ($data)) $data = $store->control->read ($data); if (isset ($data['msg'])) $data = array_replace ($store->control->read ($data['msg']), $data); if ($local) $data = array_replace ($data, $local); $data['is_formulary'] = 1; $data['name'] = 'dialog_' . (1 + count ($this->children)); if (isset ($data['flags']['icon'])) $icon = $data['flags']['icon']; elseif (isset ($data['default_icon'])) $icon = $data['default_icon']; if (isset ($icon)) { // set icon $data['icon'] = $this->document->urlFiles ('icons/ecolabore-humperstilshen-' . $icon . '.png', true, '-shared'); $iconDescription = $store->control->read ('modHumperstilshen_icon' . ucfirst ($icon)); if (isset ($iconDescription['text']['caption'])) $data['icon_description'] = $iconDescription['text']['caption']; } // set icon $dialog = $this->document->createListItem ($data); if ($formulary) $dialog->childrenMerge ($formulary->create ()); elseif (isset ($data['url'])) $dialog->data['add_confirm_button'] = 1; else $dialog->data['add_close_button'] = 1; $this->children[] = $dialog; return "javascript:humperstilshen.dialogOpen('dialog_" . count ($this->children) . "')"; } // function dialog } // class eclMod_modHumperstilshen //!eof:library/modHumperstilshen/eclMod_modHumperstilshen.php; //!file:library/modImg/eclFilter_modImg.php; class eclFilter_modImg { // class eclFilter_modImg static function create ($fieldName, $control, $formulary) { // function create $local['name'] = $fieldName; $local['type'] = 'file'; // help if (isset ($control['flags']['help']) and !isset ($control['flags']['help_msg'])) $local['help_msg'] = 'system_msg_filterImgHelp'; $formulary->appendChild ($control, $local); } // function create static function save ($fieldName, $control, $formulary) { // function save global $io, $store; $flags = $formulary->flags; $received = $formulary->received; if ($formulary->errorMsg !== false) return; if (!$io->request->uploaded) { // error if (isset ($control['flags']['required'])) return $formulary->setRequiredMsg ($control, $fieldName, 'system_msg_filterImgNotUploaded'); return false; } // error $uploaded = reset ($io->request->uploaded); $uploaded = $uploaded[0]; if (!isset ($uploaded['type'])) { // error if (isset ($control['flags']['required'])) return $formulary->setRequiredMsg ($control, $fieldName, 'system_msg_filterImgNotUploaded'); return false; } // error isset ($flags['img_size']) or $flags['img_size'] = 3840; isset ($flags['img_mini_size']) or $flags['img_mini_size'] = 256; isset ($flags['img_interlace']) ? $flags['img_interlace'] = true : $flags['img_interlace'] = false; $uploaded = $uploaded['tmp_name']; if (@getimagesize ($uploaded) === false) { // error if (isset ($control['flags']['error'])) return $formulary->setErrorMsg ($control, $fieldName, 'system_msg_filterImgNotUploaded'); return false; } // error list ($width_orig, $height_orig, $type) = getimagesize ($uploaded); $ratio_orig = $width_orig / $height_orig; // Calculate big image size if ($width_orig > $flags['img_size'] or $height_orig > $flags['img_size']) { // resize big image $img_width = $flags['img_size']; $img_height = $flags['img_size']; if ($img_width / $img_height > $ratio_orig) $img_width = $img_height * $ratio_orig; else $img_height = $img_width / $ratio_orig; } // resize big image else { // keep image size $img_width = $width_orig; $img_height = $height_orig; } // keep image size settype ($img_width, 'int'); settype ($img_height, 'int'); // Calculate miniature size if ($width_orig > $flags['img_mini_size'] or $height_orig > $flags['img_mini_size']) { // resize miniature $mini_width = $flags['img_mini_size']; $mini_height = $flags['img_mini_size']; if ($mini_width / $mini_height > $ratio_orig) $mini_width = $mini_height * $ratio_orig; else $mini_height = $mini_width / $ratio_orig; } // resize miniature else { // keep image size $mini_width = $width_orig; $mini_height = $height_orig; } // keep image size settype ($mini_width, 'int'); settype ($mini_height, 'int'); // Suported formats are if ($type == 1) $ext = '.gif'; elseif ($type == 2) $ext = '.jpg'; elseif ($type == 3) $ext = '.png'; else return 'system_msg_alertImgWrongFormat'; // Opens received file if ($type == 1) $image_orig = @imagecreatefromgif ($uploaded); elseif ($type == 2) $image_orig = @imagecreatefromjpeg ($uploaded); elseif ($type == 3) $image_orig = @imagecreatefrompng ($uploaded); if (!$image_orig) return 'system_msg_alertImageError'; if (isset ($flags['target'])) $name = $formulary->application->data['name'] . CHR_FNS . $flags['target']; else $name = $formulary->data['name'] . CHR_FNS . 'img_0'; $filename = PATH_DOMAINS . $formulary->document->domain->name . '/' . $name; // Resample big image $image_big = imagecreatetruecolor ($img_width, $img_height); imagecopyresampled ($image_big, $image_orig, 0, 0, 0, 0, $img_width, $img_height, $width_orig, $height_orig); // save big image if ($type == 1) $saved = imagegif ($image_big, $filename . $ext); elseif ($type == 2) $saved = imagejpeg ($image_big, $filename . $ext, 100); elseif ($type == 3) { // png file $saved = move_uploaded_file ($uploaded['tmp_name'], $filename . $ext); $saved = true; // $saved = imagepng ($image_big, $filename . $ext); } // png file if (!$saved) return 'system_msg_alertImgError'; // Resample miniature $image_mini = imagecreatetruecolor ($mini_width, $mini_height); imagecopyresampled ($image_mini, $image_orig, 0, 0, 0, 0, $mini_width, $mini_height, $width_orig, $height_orig); // save miniature if ($type == 1) $saved = imagegif ($image_mini, $filename . CHR_FNS . 'mini.gif'); elseif ($type == 2) $saved = imagejpeg ($image_mini, $filename . CHR_FNS . 'mini.jpg', 100); elseif ($type == 3) { // png $saved = true; } // png if (!$saved) return 'system_msg_alertImgError'; // save image data if (isset ($flags['target'])) { // section image $data = &$formulary->data; } // section image else { // find target if (!isset ($formulary->data['extras'])) $formulary->data['extras'] = array (); if (!isset ($formulary->data['extras']['img_0'])) $formulary->data['extras']['img_0'] = array (); $data = &$formulary->data['extras']['img_0']; } // find target $data['files']['img'] = $name . $ext; $data['img_width'] = $img_width; $data['img_height'] = $img_height; if ($type == 3) { // png hack $data['files']['img_mini'] = $name . $ext; $data['img_mini_width'] = $img_width; $data['img_mini_height'] = $img_height; } // png hack else { // normal $data['files']['img_mini'] = $name . CHR_FNS . 'mini' . $ext; $data['img_mini_width'] = $mini_width; $data['img_mini_height'] = $mini_height; } // normal if ($width_orig < $height_orig) $data['portrait'] = 'portrait'; else $data['landscape'] = 'landscape'; } // function save } // class eclFilter_modImg //!eof:library/modImg/eclFilter_modImg.php; //!file:library/modImg/eclFilter_modImg_view.php; class eclFilter_modImg_view { // class eclFilter_modImg_view static function create ($fieldName, $control, $formulary) { // function create $document = $formulary->document; if (!isset ($formulary->data['extras']['img_0']['files']['img'])) return; // type if (isset ($control['flags']['type'])) $local['type'] = $control['flags']['type']; else $local['type'] = 'descriptive'; $local['text']['content']['pt'] = array ( TEXT_CONTENT => '
      ', TEXT_HTML => 2 ); $formulary->appendChild ($control, $local); } // function create static function save ($fieldName, $control, $formulary) { // function save } // function save } // class eclFilter_modImg_view //!eof:library/modImg/eclFilter_modImg_view.php; //!file:library/modImg/eclMod_modImg.php; class eclMod_modImg { // class eclMod_modImg public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; // Procure a aplicação $me = $document->application->findModuleTarget ($document, $arguments); if (!$me) return; $number = $arguments[1]; // Procure o módulo dentro da aplicação if (isset ($me->data['extras']['img_' . $number])) { // module exists $img = $me->data['extras']['img_' . $number]; $mod->data = $img; } // module exists if ($document->access (4, $me->groups)) { // personalite $mod->enabled = true; $pathway = array_slice ($me->pathway, 1); array_unshift ($pathway, $document->domain->name, '-personalite', 'extras', 'img_' . $number); if (!isset ($img)) { // creates a new image $mod->data = $store->control->read ('modImg_create'); $mod->appendChild ('modImg_create') ->url ($pathway) ->popUpOpen (); return; } // creates a new image $mod->data['local']['personalite_url'] = $document->url ($pathway); $caption = $store->control->read ('modImg_edit'); $mod->data['local']['personalite_caption'] = $caption['text']['caption']; } // personalite if (!isset ($img)) return; $mod->data['local']['list'] = 'details'; $mod->data['local']['details'] = 'img'; $local = $me->data; $local['extras']['img_0'] = $img; $mod->appendChild ($local); $mod->enabled = true; } // function setModule } // class eclMod_modImg //!eof:library/modImg/eclMod_modImg.php; //!file:library/modInstructor/eclInstructor_modInstructor_ava.php; class eclInstructor_modInstructor_ava { // class eclInstructor_modInstructor_ava static function route ($instructor) { // function route global $store; $document = $instructor->document; $me = $document->application; return false; } // function route } // class eclInstructor_modInstructor_ava //!eof:library/modInstructor/eclInstructor_modInstructor_ava.php; //!file:library/modInstructor/eclInstructor_modInstructor_welcome.php; class eclInstructor_modInstructor_welcome { // class eclInstructor_modInstructor_welcome static function route ($instructor) { // function route global $store; $document = $instructor->document; $me = $document->application; if ($me->applicationName != 'domain_empty') { // index page exists if ($me->applicationName == 'domainIndex' and $document->access (4) and !$store->domainContent->children ($me->domainId, MODE_SECTION, 0)) { // before new sections if (isset ($document->actions['login'])) goto WELCOME_RETURN; if ($document->actions ('first', 'edit', 'save')) goto WELCOME_DONE; if (!isset ($document->actions['instructor'])) goto WELCOME_DONE; } // before new sections return false; } // index page exists if ($document->access (4)) { // admin if (isset ($document->actions['login'])) goto WELCOME_EDIT; if ($document->mod->formulary->errorMsg) goto WELCOME_EDIT_ERROR; goto WELCOME_EDIT; } // admin if ($document->access (1)) goto WELCOME_ACCESS_DENIED; if ($document->mod->humperstilshen->loginError) goto WELCOME_LOGIN_ERROR; goto WELCOME_EMPTY; WELCOME_EMPTY: $instructor->addMessage ('domain_empty_help01empty'); $instructor->addMessage ('domain_empty_help01login'); return true; WELCOME_LOGIN_ERROR: $instructor->addMessage ('domain_empty_help01empty'); $instructor->addMessage ('domain_empty_help02loginError'); return true; WELCOME_ACCESS_DENIED: $instructor->addMessage ('domain_empty_help02accessDenied'); return true; WELCOME_EDIT: if (isset ($document->user->data['local']['gender']) and $document->user->data['local']['gender'] == 'female') $instructor->addMessage ('domain_empty_help02welcomeAdmin_f'); else $instructor->addMessage ('domain_empty_help02welcomeAdmin_m'); $instructor->addMessage ('domain_empty_help04index01edit'); return true; WELCOME_EDIT_ERROR: $instructor->addMessage ('domain_empty_help04index01edit'); $instructor->addMessage ('domain_empty_help04index01editError'); return true; WELCOME_DONE: $instructor->addMessage ('domain_empty_help04index02editDone') ->url (true, true, '_instructor-next'); return true; WELCOME_RETURN: $instructor->addMessage ('domain_empty_help04index02return') ->url (true, true, '_instructor-next'); return true; } // function route } // class eclInstructor_modInstructor_welcome //!eof:library/modInstructor/eclInstructor_modInstructor_welcome.php; //!file:library/modInstructor/eclMod_modInstructor.php; class eclMod_modInstructor { // class eclMod_modInstructor public $document; public $messages = array (); public function __construct ($document) { // function __construct global $store; $this->document = $document; if ($document->access (1)) { // context help $help = $document->application->applicationName . '_helpAbout'; if ($help == 'section_helpAbout' and isset ($document->application->data['flags']['section_type'])) $help = 'section' . ucfirst ($document->application->data['flags']['section_type']) . '_helpAbout'; $data = $store->control->read ($help); if ($data) { // context help found $document->mod->context->appendChild ($help) ->swapTitle () ->virtual () ->dialog ($help); } // context help found } // context help } // function __construct public function addMessage ($name, $formulary=false) { // function addMessage global $store; $document = $this->document; $data = $store->control->read ($name); if (!$data) return $document->createListItem (); // audio // if (isset ($data['local']['audio'])) // $data['audio'] = $document->urlFiles ($data['local']['audio'], true, '-media'); $data['audio'] = ''; // autoplay if (!isset ($document->session['modInstructor'][$name])) $data['instructor_autoplay'] = 1; $document->session['modInstructor'][$name] = true; // onload if (!isset ($data['local']['instructor_onmenuopen'])) $data['instructor_onload'] = 1; // name $data['name'] = 'message' . strval (count ($this->messages)); $message = $this->document->createListItem ($data); $this->messages[] = $message; if ($formulary) $message->childrenMerge ($formulary->create ()); return $message; } // function addMessage public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; if (!$document->domain->domainId) return; // Enable or disable instructor return; eclInstructor_modInstructor_welcome::route ($this) or eclInstructor_modInstructor_quality::route ($this) or eclInstructor_modInstructor_ava::route ($this); if (!$this->messages) return; $mod->data = $store->control->read ('modInstructor_module'); $mod->children = $this->messages; $mod->enabled = true; } // function setModule } // class eclMod_modInstructor //!eof:library/modInstructor/eclMod_modInstructor.php; //!file:library/modInstructor/quality/eclInstructor_modInstructor_quality.php; class eclInstructor_modInstructor_quality { // class eclInstructor_modInstructor_quality static function route ($instructor) { // function route global $store; $document = $instructor->document; $me = $document->application; if (!$document->access (4, $document->domain->groups)) return false; if ($instructor->messages) return true; $tasks = $store->control->read ('modInstructor_quality_index'); $length = count ($tasks); $last = array (); if ($me->name == '-new-section' and isset ($document->actions['create'][1]) and $store->control->read ('section' . ucfirst ($document->actions['create'][1]) . '_helpCreate')) return self::taskExec ($document, 'section' . ucfirst ($document->actions['create'][1]), $instructor, 'Create'); for ($index = 0; $index < $length; $index++) { // each task $task = $tasks[$index]; $next = isset ($tasks[$index + 1]) ? $tasks[$index + 1] : array (); if (self::taskIsDone ($document, $task)) { // task is done $last = $task; continue; } // task is done if (isset ($document->actions['login'])) { // login if (self::isInSection ($document, $last)) return self::taskExec ($document, $last, $instructor, 'Return', $task); return self::taskExec ($document, 'modInstructor_quality', $instructor, 'Redirect', $last); } // login if ($document->actions ('instructor', 'redirect')) return self::taskExec ($document, $last, $instructor, 'Return', $task); if (self::isCreating ($document, $task)) return self::taskExec ($document, $task, $instructor, 'Create'); if (self::isInSection ($document, $last)) return self::taskExec ($document, $last, $instructor, 'Done', $task); if ($document->actions ('instructor', 'message', 'create') and isset ($me->data['flags']['section_type']) and $store->control->read ('section' . ucfirst ($me->data['flags']['section_type']) . '_helpCreate')) return self::taskExec ($document, 'section' . ucfirst ($me->data['flags']['section_type']), $instructor, 'Create'); $name = $document->application->applicationName; if ($name == 'section' and isset ($document->application->data['flags']['section_type'])) $name = 'section' . ucfirst ($document->application->data['flags']['section_type']); if ($store->control->read ($name . '_helpNavigate')) { // navigation context help if ($document->application->isDomain) return self::taskExec ($document, $name, $instructor, 'Navigate'); return self::taskExec ($document, $name, $instructor, 'Navigate', $task); } // navigation context help return self::taskExec ($document, 'modInstructor_quality', $instructor, 'Navigate', $task); } // each task return false; } // function route static function taskIsDone ($document, $task) { // function taskIsDone global $store; $data = $store->control->read ($task . '_helpInstructor'); if (!isset ($data['check']) or !is_array ($data['check']) or !isset ($data['check']['mode'])) return true; switch ($data['check']['mode']) { // switch mode case 'section': return $store->domainContent->findMarker ($document->domain->domainId, $data['check']['marker'], MODE_SECTION); } // switch mode return false; } // function taskIsDone static function isInSection ($document, $task) { // function isInSection global $store; $me = $document->application; $data = $store->control->read ($task . '_helpInstructor'); if (!isset ($data['check']) or !is_array ($data['check']) or !isset ($data['check']['mode'])) return false; switch ($data['check']['mode']) { // switch mode case 'section': if (isset ($me->data['mode']) and $me->data['mode'] == MODE_SECTION and $me->data['marker'] == $data['check']['marker']) return true; return false; } // switch mode return false; } // function isInSection static function isCreating ($document, $task) { // function isCreating global $store; $me = $document->application; $data = $store->control->read ($task . '_helpInstructor'); if (!isset ($data['create']) or !is_array ($data['create']) or !isset ($data['create']['mode'])) return false; switch ($data['create']['mode']) { // switch mode case 'section': if (!isset ($data['create']['type'])) return false; if ($me->name == '-new-section' and $document->actions ('create', $data['create']['type'])) return true; return false; } // switch mode return false; } // function isCreating static function taskExec ($document, $task, $instructor, $type, $next=array ()) { // function taskExec global $store; $name = $task . '_help' . $type; $message = $instructor->addMessage ($name); if (!$next) return true; $data = $store->control->read ($next . '_helpInstructor'); if ($type == 'Redirect') { // redirect if (!isset ($data['check'])) return true; switch ($data['check']['mode']) { // switch mode case 'section': $id = $store->domainContent->findMarker ($document->domain->domainId, $data['check']['marker']); $message->url ($store->domainContent->pathway ($document->domain->domainId, $id), true, '_instructor-redirect'); return true; } // switch mode return true; } // redirect if (isset ($data['parent'])) { // goto parent switch ($data['parent']['mode']) { // switch mode case 'section': $id = $store->domainContent->findMarker ($document->domain->domainId, $data['parent']['marker']); if ($id) { // section found $pathway = $store->domainContent->pathway ($document->domain->domainId, $id); break; } // section found case 'index': $pathway = $document->domain->pathway; break; } // switch mode } // goto parent else $pathway = $document->domain->pathway; switch ($data['create']['mode']) { // switch creating mode case 'section': $pathway[] = '-new-section'; $message->url ($pathway, true, '_create-' . $data['create']['type']); return true; } // switch creating mode return true; } // function taskExec } // class eclInstructor_modInstructor_quality //!eof:library/modInstructor/quality/eclInstructor_modInstructor_quality.php; //!file:library/modInterface/eclMod_modInterface.php; class eclMod_modInterface extends eclEngine_listItem { // class eclMod_modInterface public $mode = false; public $enabled = true; public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; if (!$this->enabled) return; $document = $this->document; $render = $document->render; $row = $mod->appendChild (); $row->children = $this->children; foreach ($row->children as &$child) { // each child $child->data['virtual'] = 1; } // each child if ($document->access (4, $document->domain->groups) and $document->data['flags']['modLayout_from'] == 'domain') { // personalite layout /* * $row->appendChild ('dialogTemplate_edit') * ->virtual () * ->url (array ($document->domain->name, '-dialog', 'layout', 'scheme')) * ->popUpOpen (750, 550); * * $row->appendChild ('modLayout_advanced_content') * ->virtual () * ->url (array ($document->domain->name, '-dialog', 'advanced')) * ->popUpOpen (750, 550); */ $row->appendChild ('personalite_content') ->url (array ($document->domain->name, '-personalite')) ->popUpOpen (750, 550); } // personalite layout // Printable version $row->appendChild ('modLayout_print') ->virtual () ->url (true, true, '_layout-print'); if (!$row->children) return; $mod->data = array_replace ($render->block ('modules/system_menu'), $store->control->read ('modInterface_module')); $mod->enabled = true; } // function setModule } // class eclMod_modInterface //!eof:library/modInterface/eclMod_modInterface.php; //!file:library/modLanguages/eclMod_modLanguages.php; class eclMod_modLanguages { // class eclMod_modLanguages public $action = true; public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; $render = $document->render; $me = $document->application; // Condições if (!isset ($me->data['text']['caption'])) return; if ($document->printableLayout) return; if ($document->domain->domainId and !isset ($document->data['id'])) return; // Preparação if ($document->access (4)) $access = 1; else $access = 1; $languages = array (); if (isset ($document->domain->data['flags']['languages'])) { // set domain languages foreach (explode (CRLF, $document->domain->data['flags']['languages']) as $lang) { // each enabled language $languages[$lang] = $access; } // each enabled language } // set domain languages foreach ($me->data['text']['caption'] as $lang => $value) { // each document language $languages[$lang] = 2; } // each document language // Itens da lista $row = $mod->appendChild (); foreach ($languages as $lang => $access) { // each valid languages if ($lang == $document->lang) $active = 1; else $active = 0; if ($active or $access) { // valid language if ($access == 1) $virtual = 1; else $virtual = 0; $label = $store->control->read ('labels/lang/' . $lang); if (!isset ($label['text']['caption'])) continue; $caption = array (); if (isset ($label['text']['caption'][$lang])) $caption[$lang] = $label['text']['caption'][$lang]; else $caption = $label['text']['caption']; $local = array ( 'caption' => $caption, 'virtual' => $virtual, 'icon' => $document->urlFiles ('modLanguages/' . $lang . '.png', true, '-shared'), 'LANG' => strtoupper ($lang), 'lang' => $lang ); $row->appendChild ($local) ->active ($active) ->url (true, $lang, $this->action); } // valid language } // each valid languages if (count ($row->children) == 1 and $active) return; // Configurações $mod->data = $render->block ('modules/languages'); // Se o módulo pode ser editado if ($document->templateEditable and $document->access (4, $document->domain->groups)) { // reference $pathway = array ($document->domain->name, '-personalite', 'modules', 'languages'); $mod->data['local']['personalite_url'] = $document->url ($pathway); $caption = $store->control->read ('modLanguages_edit'); $mod->data['local']['personalite_caption'] = $caption['text']['caption']; } // reference $mod->enabled = true; } // function setModule } // class eclMod_modLanguages //!eof:library/modLanguages/eclMod_modLanguages.php; //!file:library/modLanguages/header/eclMod_modLanguages_header.php; class eclMod_modLanguages_header { // class eclMod_modLanguages_header public $action = true; public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; $render = $document->render; $me = $document->application; if (!isset ($me->data['text']['caption'])) return; if ($document->printableLayout) return; if (!isset ($me->data['text']['caption'][$document->lang])) { // no index, go canonical if (isset ($me->data['text']['caption'][$document->defaultLang])) $mod->data['local']['url_canonical'] = $document->url (true, $document->defaultLang); else { // first language $lang = key ($me->data['text']['caption']); $mod->data['local']['url_canonical'] = $document->url (true, $lang); } // first language } // no index, go canonical if ($me->name == '' and !isset ($me->parent->data['flags']['modRss_disable'])) { // rss if ($document->lang == $document->defaultLang) $mod->data['local']['url_rss'] = $document->url (array ($document->domain->name, 'rss.xml'), false, false); else $mod->data['local']['url_rss'] = $document->url (array ($document->domain->name, 'rss-' . $document->lang . '.xml'), false, false); $mod->data['local']['rss'] = $me->parent->data['text']['title']; } // rss foreach ($me->data['text']['caption'] as $lang => $text) { // each lang if ($lang == $document->lang) continue; $mod->appendChild (array ( 'lang' => $lang, 'url' => $document->url (true, $lang) )); } // each lang $mod->enabled = true; } // function setModule } // class eclMod_modLanguages_header //!eof:library/modLanguages/header/eclMod_modLanguages_header.php; //!file:library/modLayout/eclMod_modLayout.php; class eclMod_modLayout { // class eclMod_modLayout public $from = false; public $name = false; public $document; public $application; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $io, $store; $document = $this->document; $render = $document->render; $mod->enabled = true; if (!$this->from) $this->from = $document->data['flags']['modLayout_from']; if (!$this->name) $this->name = $document->data['flags']['modLayout_name']; switch ($this->from) { // switch from case 'shared': case 'templates': $data = $store->control->read ('layouts/' . $this->name); break; case 'control': $data = $store->control->read ($this->name); break; case 'application': $data = $this->application->data; break; case 'domain': if ($document->access (4, $document->domain->groups)) { // administrator access // switch personalite buttons on/off if (isset ($document->actions['personalite'][1])) { // switch personalite buttons if ($document->actions['personalite'][1] == 'on') $document->session['personalite'] = 1; else unset ($document->session['personalite']); } // switch personalite buttons // display Personalite buttons and context options if (isset ($document->session['personalite'])) { // personalite buttons on $document->templateEditable = true; $document->mod->interface->appendChild ('modLayout_personaliteOff') ->url (true, true, '_personalite-off'); } // personalite buttons on else { // personalite buttons off $document->mod->interface->appendChild ('modLayout_personaliteOn') ->url (true, true, '_personalite-on'); } // personalite buttons off } // administrator access $templates = $store->domainExtras->children ($document->domain->domainId, MODE_TEMPLATE, 0); $blocks = array (); foreach ($templates as $data) { // each template $blocks[$data['name']] = $data; } // each template if (isset ($blocks['layouts/default'])) $data = $blocks['layouts/default']; else $data = $store->control->read ('layouts/default'); if ($blocks) $data['blocks'] = $blocks; break; } // switch from if (!isset ($data) or !$data) $data = $store->control->read ('layouts/default'); if (isset ($data['flags'])) $document->data['flags'] = array_replace ($document->data['flags'], $data['flags']); if (isset ($data['blocks'])) { // blocks foreach ($data['blocks'] as $name => $block) { // each block if (is_string ($block)) $render->blocks[$name] = $store->control->read ($block); else $render->blocks[$name] = $block; } // each block } // blocks unset ($data['blocks']); $mod->data = $data; } // function setModule } // class eclMod_modLayout //!eof:library/modLayout/eclMod_modLayout.php; //!file:library/modList/eclApp_modList.php; class eclApp_modList { // class eclApp_modList static function is_child ($me, $name) { // function is_child if (substr ($name, 0, 8) == 'section_') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names () { // function get_children_names return array ('section'); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('modList_content'); $me->isDomain = true; } // function constructor_helper static function dispatch ($document) { // function dispatch global $store; @list ($section, $module, $preset, $name) = explode ('_', $document->application->name, 4); if (!strlen ($name)) return; $me = $document->application->findChild ($name); if (!$me) return; if (!$document->access (4, $me->groups)) return; // Restore default configurations if (isset ($document->received['save']) and $document->received['save'] == 'restore') { // restore default configurations unset ($me->data['extras'][$module]); return $document->dataReplace ('layouts/dialog_close'); } // restore default configurations if (isset ($me->data['extras'][$module])) $data = $me->data['extras'][$module]; elseif ($module == 'post') $data = $store->control->read ('modList_preset_' . $preset . 'Content'); else $data = $store->control->read ('modList_preset_' . $preset); if ($module == 'post') $formulary = $document->createFormulary ('modList_postEdit', $data); else $formulary = $document->createFormulary ('modList_edit', $data); if ($formulary->save ()) { // save formulary if (!isset ($formulary->data['local']['list'])) $formulary->data['local']['list'] = 'default'; $me->data['extras'][$module] = $formulary->data; $document->dataReplace ('layouts/dialog_close'); return; } // save formulary $document->mod->formulary = $formulary; if ($formulary->errorMsg) $document->mod->humperstilshen->alert ($formulary->errorMsg); $document->dataMerge ('dialog_tabs'); } // function dispatch } // class eclApp_modList //!eof:library/modList/eclApp_modList.php; //!file:library/modList/eclMod_modList.php; class eclMod_modList { // class eclMod_modList public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule } // function setModule } // class eclMod_modList //!eof:library/modList/eclMod_modList.php; //!file:library/modLogin/eclMod_modLogin.php; class eclMod_modLogin { // class eclMod_modLogin public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; $render = $document->render; if ($document->access (1) or (isset ($document->data['flags']['modLogin_enabled']) and !$document->data['flags']['modLogin_enabled'])) return; $mod->data = $render->block ('modules/login'); static $instances = 0; $instances++; $formulary = $document->createFormulary ('modLogin_login', array (), 'login' . $instances . 'fields'); if ($instances == 1) $formulary->action = '_login'; else $formulary->action = '_login-' . $instances; $mod->childrenMerge ($formulary->create ()); $mod->enabled = true; } // function setModule } // class eclMod_modLogin //!eof:library/modLogin/eclMod_modLogin.php; //!file:library/modNavbar/eclMod_modNavbar.php; class eclMod_modNavbar { // class eclMod_modNavbar public $document; public $showSublevel = false; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; $render = $document->render; // Condições if ($document->printableLayout) return; if ($document->pathway[0] == SYSTEM_PROFILES_URI) return $this->profileNavBar ($mod); // Vamos iniciar a partir da aplicação ativa neste documento $level = 1; $app[1] = $document->application; $names[1] = $app[1]->name; // Agora, vamos subir a escada, percorrendo o endereço reversamente while (!$app[$level]->isDomain and !$app[$level]->parent->isDomain) { // loop levels $level++; $app[$level] = $app[$level - 1]->parent; $names[$level] = $app[$level]->name; } // loop levels if ($app[$level]->parent->applicationName == 'domain') $isDomain = true; // Vamos criar as camadas static $menuIndex = 0; for ($i = $level; $i; $i--) { // loop each layer $children = $app[$i]->parent->menuChildren ($document, $names[$i]); if ($i == $level and count ($children) == 1) continue; if ($i == 1 and count ($children) == 1) continue; if (!count ($children)) break; $layer = $mod->appendChild (); foreach ($children as $index => $child) { // each child if (isset ($isDomain) and $i == $level and $index == 0 and !isset ($mod->data['local']['home_display'])) continue; $menu = $layer->appendChild ($child->data) ->url ($child->pathway) ->virtual ($child->access) ->active ($i == 1 and $child->name == $names[$i]) ->set ('editable', $i == 1 and $child->name == $names[$i] and $child->id and $document->contentEditable and $document->access (4, $child->groups)); if (isset ($child->data['flags']['section_type']) and $child->data['flags']['section_type'] == 'menu') { // submenu $menu->data['menu'] = 'menu' . (++$menuIndex); if ($document->access (4, $child->groups)) $menu->data['can_edit'] = 1; $menuItens = $child->menuChildren ($document); foreach ($menuItens as $menuItem) { // each menu item $menu->appendChild ($menuItem->data) ->url (array ($document->domain->name, $menuItem->name)) ->virtual ($child->access); } // each menu item } // submenu } // each child } // loop each layer if ($this->showSublevel) { // last level $lastLayer = $document->application->menuChildren ($document); if ($lastLayer) $layer = $mod->appendChild (); foreach ($lastLayer as $child) { // each child $layer->appendChild ($child) ->url ($child->pathway); } // each child } // last level if (!$mod->children) return; // Configurações $mod->data = $render->block ('modules/navbar'); // Se o módulo pode ser editado if ($document->templateEditable and $document->access (4, $document->domain->groups)) { // reference $pathway = array ($document->domain->name, '-personalite', 'modules', 'navbar'); $mod->data['local']['personalite_url'] = $document->url ($pathway); $caption = $store->control->read ('modNavbar_edit'); $mod->data['local']['personalite_caption'] = $caption['text']['caption']; } // reference $mod->enabled = true; } // function setModule private function profileNavBar ($mod) { // function profileNavBar global $store; $document = $this->document; $me = $document->application; while (!$me->parent->isDomain) { // find domain $me = $me->parent; } // find domain $row = $mod->appendChild (); foreach ($me->menuChildren ($document) as $child) { // each child $row->appendChild ($child->data) ->url ($child->pathway) ->active ($child->pathway == $document->pathway); } // each child if (!$row->children) return; $mod->data = $store->control->read ('modules/navbar'); $mod->enabled = true; } // function profileNavBar } // class eclMod_modNavbar //!eof:library/modNavbar/eclMod_modNavbar.php; //!file:library/modNavbottom/eclMod_modNavbottom.php; class eclMod_modNavbottom { // class eclMod_modNavbottom public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; $render = $document->render; // Condições if ($document->printableLayout) return; if (!$document->domain->domainId) return; $names = $store->domainContent->childrenNames ($document->domain->domainId, MODE_SECTION, 1); if (!$names) return; $row = $mod->appendChild (); foreach ($names as $name) { // each child $child = $document->domain->child ($name); if (!$child or !$document->access ($child->access, $child->groups)) continue; $row->appendChild ($child) ->url ($child->pathway) ->active ($child->pathway == $document->pathway); } // each child if (!$row->children) return; // Configurações $mod->data = $render->block ('modules/navbottom'); // Se o módulo pode ser editado if ($document->templateEditable and $document->access (4, $document->domain->groups)) { // reference $pathway = array ($document->domain->name, '-personalite', 'modules', 'navbottom'); $mod->data['local']['personalite_url'] = $document->url ($pathway); $caption = $store->control->read ('modNavbottom_edit'); $mod->data['local']['personalite_caption'] = $caption['text']['caption']; } // reference $mod->enabled = true; } // function setModule } // class eclMod_modNavbottom //!eof:library/modNavbottom/eclMod_modNavbottom.php; //!file:library/modNavmain/eclMod_modNavmain.php; class eclMod_modNavmain { // class eclMod_modNavmain public $document; public $showSublevel = false; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; $render = $document->render; // Condições if ($document->printableLayout) return; if ($document->pathway[0] == SYSTEM_PROFILES_URI) return $this->profileNavBar ($mod); $row = $mod->appendChild(); foreach ($document->domain->menuChildren ($document) as $child) { // each child $row->appendChild ($child) ->swapTitle() ->url ($child->pathway) ->active ($child->pathway == $document->pathway); } // each child if (!$row->children) return; // Configurações $mod->data = $render->block ('modules/navmain'); // Se o módulo pode ser editado if ($document->templateEditable and $document->access (4, $document->domain->groups)) { // reference $pathway = array ($document->domain->name, '-personalite', 'modules', 'navmain'); $mod->data['local']['personalite_url'] = $document->url ($pathway); $caption = $store->control->read ('modNavmain_edit'); $mod->data['local']['personalite_caption'] = $caption['text']['caption']; } // reference $mod->enabled = true; } // function setModule private function profileNavBar ($mod) { // function profileNavBar global $store; $document = $this->document; $me = $document->application; while (!$me->parent->isDomain) { // find domain $me = $me->parent; } // find domain $row = $mod->appendChild (); foreach ($me->menuChildren ($document) as $child) { // each child $row->appendChild ($child->data) ->url ($child->pathway) ->active ($child->pathway == $document->pathway); } // each child if (!$row->children) return; $mod->data = $store->control->read ('modules/navbar'); $mod->enabled = true; } // function profileNavBar } // class eclMod_modNavmain //!eof:library/modNavmain/eclMod_modNavmain.php; //!file:library/modPages/eclMod_modPages.php; class eclMod_modPages { // class eclMod_modPages public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule } // function setModule } // class eclMod_modPages //!eof:library/modPages/eclMod_modPages.php; //!file:library/modPanel/eclMod_modPanel.php; class eclMod_modPanel { // class eclMod_modPanel public $main = array ('content', 'list', 'formulary'); public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; $buffer = '['; foreach ($this->main as $modName) { // each child $buffer .= 'mod`' . $modName . '`;'; } // each child $mod->data['html'] = $buffer; $mod->enabled = true; } // function setModule } // class eclMod_modPanel //!eof:library/modPanel/eclMod_modPanel.php; //!file:library/modSearch/eclMod_modSearch.php; class eclMod_modSearch { // class eclMod_modSearch public $document; public $enabled = true; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; if (!$this->enabled) return; $document = $this->document; if ($document->application->isDomain) return; if ($document->printableLayout) return; $document = $this->document; $render = $document->render; $me = $document->application; $formulary = $document->createFormulary ('modSearch_search', array (), 'search'); if ($id = $store->domainContent->findMarker ($me->domainId, 3)) $formulary->pathway = $store->domainContent->pathway ($me->domainId, $id); else $formulary->pathway = array ($document->domain->name, '-search'); $data = array (); if (isset ($document->actions['tag'][1])) { // tag $search = $document->actions['tag']; array_shift ($search); $formulary->data['key'] = implode (' ', $search); $formulary->data['tags_only'] = 1; } // tag if (isset ($document->actions['search'][1])) { // tag $search = $document->actions['search']; array_shift ($search); $formulary->data['key'] = implode (' ', $search); } // tag else { // from formulary $formulary->save (); if (isset ($formulary->data['tags_only']) and $formulary->data['tags_only']) { // tags if (isset ($formulary->data['key'])) { // key exists $action = explode (' ', $formulary->data['key']); array_unshift ($action, 'tag'); $document->actions['tag'] = $action; } // key exists } // tags else { // key if (isset ($formulary->data['key'])) { // key exists $action = explode (' ', $formulary->data['key']); array_unshift ($action, 'search'); $document->actions['search'] = $action; } // key exists } // key } // from formulary $mod->childrenMerge ($formulary->create ()); $mod->data = $render->block ('modules/search'); // Se o módulo pode ser editado if ($document->templateEditable and $document->access (4, $document->domain->groups)) { // reference $pathway = array ($document->domain->name, '-personalite', 'modules', 'search'); $mod->data['local']['personalite_url'] = $document->url ($pathway); $caption = $store->control->read ('modSearch_edit'); $mod->data['local']['personalite_caption'] = $caption['text']['caption']; } // reference $mod->enabled = true; } // function setModule } // class eclMod_modSearch //!eof:library/modSearch/eclMod_modSearch.php; //!file:library/modSort/eclMod_modSort.php; class eclMod_modSort { // class eclMod_modSort public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule } // function setModule } // class eclMod_modSort //!eof:library/modSort/eclMod_modSort.php; //!file:library/modTable/eclApp_modTable.php; class eclApp_modTable { // class eclApp_modTable static function is_child ($me, $name) { // function is_child if ($name == 'table') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names () { // function get_children_names return array ('table'); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('modTable_content'); $me->ignoreSubfolders = true; $me->isDomain = true; } // function constructor_helper static function dispatch ($document) { // function dispatch global $store, $system; $pathway = $document->pathway; array_shift ($pathway); // domain array_shift ($pathway); // -dialog array_shift ($pathway); // table $name = array_pop ($pathway); $parts = explode (CHR_FNS, $name); if (count ($parts) == 2) list ($name, $number) = $parts; else $number = '0'; $pathway[] = $name; $me = $document->domain; foreach ($pathway as $name) { // each name $me = $me->child ($name); if ($me === false) return; } // each name if (!$document->access (4, $me->groups)) return; if (isset ($me->data['extras']['table_' . $number])) $data = $me->data['extras']['table_' . $number]; else { // empty $data = $store->control->read ('modTable_module'); $data['table'] = array (array ('', ''), array ('', '')); } // empty $formulary = $document->createFormulary ('modTable_edit', $data); $formulary->pathway = $document->pathway; if ($formulary->save ()) { // save formulary $me->data['extras']['table_' . $number] = $formulary->data; $document->dataReplace ('layouts/dialog_close'); return; } // save formulary $document->mod->formulary = $formulary; } // function dispatch } // class eclApp_modTable //!eof:library/modTable/eclApp_modTable.php; //!file:library/modTable/eclFilter_modTable.php; class eclFilter_modTable { // class eclFilter_modTable static function create ($fieldName, $control, $formulary) { // function create $document = $formulary->document; if (!isset ($control['flags']['target'])) return; $table = $formulary->appendChild ($control); $table->data['name'] = $fieldName; $array = $formulary->getField ($control['flags']['target']); if (!is_array ($array) or !$array) $array = array (array ('', ''), array ('', '')); // Descobre o número máximo de células por linha $maxCols = 0; $maxRows = 0; foreach ($array as $row) { // each row if (!is_array ($row)) continue; $maxRows++; if (count ($row) > $maxCols) $maxCols = count ($row); } // each row $formulary->hidden[$fieldName . '_maxRows'] = $maxRows; $formulary->hidden[$fieldName . '_maxCols'] = $maxCols; $numRow = - 1; foreach ($array as $line) { // each line if (!is_array ($line)) continue; $numRow++; $row = $table->appendChild (false, array ('row' => $numRow)); for ($i = 0; $i < $maxCols; $i++) { // each cell if (isset ($line[$i])) { // value exists $local['value'] = $formulary->htmlSpecialChars ($line[$i]); if ($document->charset != 'UTF-8') $local['value'] = mb_convert_encoding ($local['value'], $document->charset, 'UTF-8'); } // value exists else $local['value'] = ''; $local['name'] = $fieldName . '_' . $numRow . '_' . $i; $row->appendChild (false, $local); } // each cell } // each line } // function create static function save ($fieldName, $control, $formulary) { // function save $received = $formulary->received; $document = $formulary->document; if (!isset ($control['flags']['target'])) return; if (!isset ($received[$fieldName . '_maxRows'])) return; if (!isset ($received[$fieldName . '_maxCols'])) return; $numCols = $received[$fieldName . '_maxCols']; $numRows = $received[$fieldName . '_maxRows']; $table = array (); for ($r = 0; $r < $numRows; $r++) { // each row for ($c = 0; $c < $numCols; $c++) { // each col if (isset ($received[$fieldName . '_' . $r . '_' . $c])) $value = trim ($received[$fieldName . '_' . $r . '_' . $c]); if (!strlen ($value)) continue; if ($document->charset != 'UTF-8') $value = mb_convert_encoding ($value, 'UTF-8', $document->charset); if (!isset ($table[$r])) $table[$r] = array ($c => $value); else $table[$r][$c] = $value; } // each col } // each row $formulary->setField ($control['flags']['target'], $table); } // function save } // class eclFilter_modTable //!eof:library/modTable/eclFilter_modTable.php; //!file:library/modTable/eclMod_modTable.php; class eclMod_modTable { // class eclMod_modTable public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store, $system; $document = $this->document; // Encontre a aplicação $me = $document->application->findModuleTarget ($document, $arguments); if (!$me) return; $number = $arguments[1]; // A tabela não pode ser editada e está vazia if ($document->printableLayout or !$document->access (4, $me->groups)) { // user cant edit if (!isset ($me->data['extras']['table_' . $number]['table'])) return; } // user cant edit else { // user is admin // O documento está em modo de edição if ($document->contentEditable) { // content editable $editable = true; if (!isset ($me->data['extras']['table_' . $number])) $me->data['extras']['table_' . $number] = $store->control->read ('modTable_module'); if (!isset ($me->data['extras']['table_' . $number]['local']['list'])) $me->data['extras']['table_' . $number]['local']['list'] = 'table_simple'; if (!isset ($me->data['extras']['table_' . $number]['table'])) $me->data['extras']['table_' . $number]['table'] = array (array ('', ''), array ('', '')); } // content editable else { // wysiwyg disabled if (!isset ($me->data['extras']['table_' . $number])) $mod->data = $store->control->read ('modTable_moduleCreate'); } // wysiwyg disabled // anchor $pathway = array_slice ($me->pathway, 1); array_unshift ($pathway, $document->domain->name, '-personalite', 'tables', 'table_' . $number); $mod->data['local']['personalite_url'] = $document->url ($pathway); $caption = $store->control->read ('modTable_edit'); $mod->data['local']['personalite_caption'] = $caption['text']['caption']; } // user is admin $mod->enabled = true; if (!isset ($me->data['extras']['table_' . $number]['table'])) return; $mod->data = array_replace_recursive ($mod->data, $me->data['extras']['table_' . $number]); if (isset ($editable) and $editable and isset ($me->data['id'])) { // editable $mod->data['local']['editable'] = 1; $mod->data['local']['id'] = $me->data['id']; $mod->data['local']['number'] = $number; } // editable // count max cols $table = &$me->data['extras']['table_' . $number]['table']; $maxCols = 0; foreach ($table as $row) { // count columns if (count ($row) > $maxCols) $maxCols = count ($row); } // count columns $lang = $document->lang; foreach ($table as $rowData) { // each row $row = $mod->appendChild (); for ($index = 0; $index < $maxCols; $index++) { // each column if (isset ($rowData[$index])) $local['caption'][$lang] = array (1 => $rowData[$index], 4 => 1, 5 => 2, 6 => 1); else $local = array (); $row->appendChild ($local); } // each column } // each row } // function setModule } // class eclMod_modTable //!eof:library/modTable/eclMod_modTable.php; //!file:library/modTable/new/eclApp_modTable_new.php; class eclApp_modTable_new { // class eclApp_modTable_new static function is_child ($me, $name) { // function is_child if ($name == 'table_create') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names () { // function get_children_names return array ('table_create'); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('modTable_content'); $me->ignoreSubfolders = true; $me->isDomain = true; } // function constructor_helper static function dispatch ($document) { // function dispatch global $store, $system; $pathway = $document->pathway; array_shift ($pathway); // domain array_shift ($pathway); // -dialog array_shift ($pathway); // table $name = array_pop ($pathway); $parts = explode (CHR_FNS, $name); if (count ($parts) == 2) list ($name, $number) = $parts; else $number = '0'; $pathway[] = $name; $me = $document->domain; foreach ($pathway as $name) { // each name $me = $me->child ($name); if ($me === false) return; } // each name if (!$document->access (4, $me->groups)) return; $formulary = $document->createFormulary ('modTable_new_edit', array (), 'create'); $formulary->pathway = $document->pathway; $formulary->action = '_create'; if ($formulary->command ('cancel')) { // cancel $document->dataReplace ('layouts/dialog_close'); return; } // cancel if ($formulary->command ('save') and $formulary->save ()) { // save $alpha = array ('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'); $table = array (); for ($rows = 0; $rows < $formulary->data['rows']; $rows++) { // each row $table[$rows] = array (); for ($cols = 0; $cols < $formulary->data['cols']; $cols++) { // each column $table[$rows][$cols] = ''; } // each column } // each row unset ($formulary->data['rows']); unset ($formulary->data['cols']); $formulary->data['table'] = $table; $me->data['extras']['table_' . $number] = $formulary->data; $document->dataReplace ('layouts/dialog_close'); $document->data['module'] = 'table:' . $number; return; } // save $document->dataReplace ('modTable_new_content'); $document->mod->formulary = $formulary; if ($formulary->errorMsg) $document->mod->humperstilshen->alert ($formulary->errorMsg); } // function dispatch } // class eclApp_modTable_new //!eof:library/modTable/new/eclApp_modTable_new.php; //!file:library/modTitle/eclMod_modTitle.php; class eclMod_modTitle { // class eclMod_modTitle public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; $render = $document->render; // Condições if (!isset ($document->data['text']['title'])) return; // Configurações $mod->data = $render->block ('modules/title'); // Itens da lista $mod->appendChild ($document->data) ->set ('editable', $document->contentEditable); // Se o módulo pode ser editado if ($document->templateEditable and $document->access (4, $document->domain->groups)) { // reference $pathway = array ($document->domain->name, '-personalite', 'modules', 'title'); $mod->data['local']['personalite_url'] = $document->url ($pathway); $caption = $store->control->read ('modTitle_edit'); $mod->data['local']['personalite_caption'] = $caption['text']['caption']; } // reference $mod->enabled = true; } // function setModule } // class eclMod_modTitle //!eof:library/modTitle/eclMod_modTitle.php; //!file:library/modToolbox/eclMod_modToolbox.php; class eclMod_modToolbox { // class eclMod_modToolbox public $enabled = true; public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; $render = $document->render; if (isset ($document->data['flags']['modToolbox_enabled']) and $document->data['flags']['modToolbox_enabled'] == 0) return; $app = $document->application; while (!$app->isDomain) { // loop back $app = $app->parent; } // loop back $toolbox = $app->child ('-tools'); if ($toolbox === false) return; $row = $mod->appendChild (); foreach ($toolbox->menuChildren ($document) as $child) { // each child if (!isset ($child->data['text']['caption'])) continue; $local = array ( 'virtual' => 1, 'url' => "javaScript:humperstilshen.popUpOpen('" . $document->url ($child->pathway) . "', 400, 600)", 'caption' => $child->data['text']['caption'] ); $row->appendChild (false, $local); } // each child if (!$row->children) return; $mod->data = array_replace ($render->block ('modules/system_menu'), $store->control->read ('modToolbox_module')); $mod->enabled = true; } // function setModule } // class eclMod_modToolbox //!eof:library/modToolbox/eclMod_modToolbox.php; //!file:library/modUser/alerts/eclMod_modUser_alerts.php; class eclMod_modUser_alerts extends eclEngine_listItem { // class eclMod_modUser_alerts public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store, $system; $document = $this->document; $render = $document->render; if (!$document->access (1)) return; $row = $mod->appendChild (); $row->children = $this->children; if ($document->access (4, $system->groups)) { // webmaster if ($system->child (SYSTEM_ADMIN_URI) and $system->child (SYSTEM_ADMIN_URI)->child ('alerts')) { // exists $alerts = $system->child (SYSTEM_ADMIN_URI)->child ('alerts'); foreach ($alerts->children () as $child) { // each child $row->appendChild ($child->data) ->swapTitle () ->url ($child->pathway); } // each child } // alerts exists } // webmaster $alerts = $system->child (SYSTEM_PROFILES_URI)->child ($document->user->name)->child ('-alerts'); if ($alerts) { // user alerts foreach ($alerts->children () as $child) { // each child if (isset ($child->data['flags']['modUser_alerts_popUp'])) $row->appendChild ($child->data) ->url ($child->pathway) ->popUpOpen (); else $row->appendChild ($child->data) ->url ($child->pathway); } // each child } // user alerts foreach ($row->children as &$child) { // each child $child->data['virtual'] = 1; } // each child if (!$row->children) return; $mod->data = array_replace ($render->block ('modules/system_menu'), $store->control->read ('modUser_alerts_module')); $mod->enabled = true; } // function setModule } // class eclMod_modUser_alerts //!eof:library/modUser/alerts/eclMod_modUser_alerts.php; //!file:library/modUser/eclMod_modUser.php; class eclMod_modUser { // class eclMod_modUser public $enabled = false; public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store, $system; $document = $this->document; $render = $document->render; if (!$document->access (1)) return; if ($document->application->isDomain) return; if (isset ($document->data['flags']['modUser_enabled']) and !$document->data['flags']['modUser_enabled']) return; $row = $mod->appendChild (); // go to user profile main page $row->appendChild ('modUser_goMain') ->url (array (SYSTEM_PROFILES_URI, $document->user->name)) ->active (count ($document->application->pathway) > 1 and $document->application->pathway[0] == SYSTEM_PROFILES_URI and $document->application->pathway[1] == $document->user->name); // Go to admin area if ($document->access (4, $system->groups)) $row->appendChild ('modUser_goAdmin') ->url (array (SYSTEM_ADMIN_URI)) ->active ($document->application->pathway[0] == SYSTEM_ADMIN_URI); // Back to home if (SYSTEM_HOSTING_MODE == 0 and $document->application->pathway[0] != SYSTEM_DEFAULT_DOMAIN_NAME) $row->appendChild ('modUser_welcome_goHome') ->url (array (SYSTEM_DEFAULT_DOMAIN_NAME)); // logout $application = $document->application; while ($application->access) { // access denied $application = $application->parent; } // access denied $row->appendChild ('modUser_goLogout') ->virtual () ->url ($application->pathway, true, '_logout'); $mod->data = array_replace ($render->block ('modules/system_menu'), $store->control->read ('modUser_module')); $mod->enabled = true; } // function setModule } // class eclMod_modUser //!eof:library/modUser/eclMod_modUser.php; //!file:library/modUser/quoteoftheday/eclMod_modUser_quoteoftheday.php; class eclMod_modUser_quoteoftheday { // class eclMod_modUser_quoteoftheday public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; $mod->data = $store->control->read ('modUser_quoteoftheday_module'); $quotes = $store->control->read ('modUser_quoteoftheday_quotes'); if (!isset ($quotes['quotes'])) return; $max = count ($quotes['quotes']) - 1; $n = mt_rand (0, $max); if (!isset ($quotes['quotes'][$n])) return; $content = '
      ' . $quotes['quotes'][$n][0] . '

      (' . $quotes['quotes'][$n][1] . ')

      '; $data = array ('text' => array ('content' => array ($document->lang => array ( 1 => $content, 2 => 1, 5 => 2, 6 => 1 )))); $mod->appendChild ($data); $mod->enabled = true; } // function setModule } // class eclMod_modUser_quoteoftheday //!eof:library/modUser/quoteoftheday/eclMod_modUser_quoteoftheday.php; //!file:library/modUser/subscribe/eclMod_modUser_subscribe.php; class eclMod_modUser_subscribe { // class eclMod_modUser_subscribe public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store, $system; $document = $this->document; if ($document->access (1)) return; $domain = $document->domain; $main = $system->child (SYSTEM_DEFAULT_DOMAIN_NAME); if (!$main) return; // Recover password only if mails can be sent if (INTEGRATION_SMTP_ENABLE) { // recover password $mod->appendChild ('modUser_welcome_goPassword') ->url (array (SYSTEM_PROFILES_URI, '-recover-password')) ->popUpOpen (); } // recover password // subscribe if ($domain->child ('-join')) $mod->appendChild ('modUser_welcome_goSubscribe') ->url (array ($domain->name, '-join')) ->popUpOpen (); $mod->data = $store->control->read ('modUser_subscribe_module'); $mod->enabled = true; } // function setModule } // class eclMod_modUser_subscribe //!eof:library/modUser/subscribe/eclMod_modUser_subscribe.php; //!file:library/modUser/tools/eclMod_modUser_tools.php; class eclMod_modUser_tools { // class eclMod_modUser_tools public $enabled = false; public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store, $system; $document = $this->document; $render = $document->render; if (!$document->access (4)) return; if ($document->application->isDomain) return; $row = $mod->appendChild (); // personal data $row->appendChild ('modUser_tools_goPersonal') ->url (array (SYSTEM_PROFILES_URI, $document->user->name, '-personal')) ->popUpOpen (); $user = $store->user->open ($document->user->name); // Verify phone if (INTEGRATION_SMS_ENABLE) { // verify by SMS if ($user['phone'] == '') $row->appendChild ('userHome_phone_content') ->url (array (SYSTEM_PROFILES_URI, $document->user->name, '-phone')) ->popUpOpen (); else $row->appendChild ('userHome_phone_contentVerified') ->url (array (SYSTEM_PROFILES_URI, $document->user->name, '-phone')) ->popUpOpen (); } // verify by SMS // Verify mail if (INTEGRATION_SMTP_ENABLE) { // verify by SMTP if ($user['mail'] == '') $row->appendChild ('userHome_mail_content') ->url (array (SYSTEM_PROFILES_URI, $document->user->name, '-mail')) ->popUpOpen (); else $row->appendChild ('userHome_mail_contextVerified') ->url (array (SYSTEM_PROFILES_URI, $document->user->name, '-mail')) ->popUpOpen (); } // verify by SMTP // change password $row->appendChild ('modUser_tools_goPassword') ->url (array (SYSTEM_PROFILES_URI, $document->user->name, '-password')) ->popUpOpen (); $mod->data = array_replace ($render->block ('modules/system_menu'), $store->control->read ('modUser_tools_module')); $mod->enabled = true; } // function setModule } // class eclMod_modUser_tools //!eof:library/modUser/tools/eclMod_modUser_tools.php; //!file:library/modUser/welcome/eclMod_modUser_welcome.php; class eclMod_modUser_welcome { // class eclMod_modUser_welcome public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store, $system; $document = $this->document; if ($document->access (1)) return; if (isset ($document->data['flags']['modUser_enabled']) and !$document->data['flags']['modUser_enabled']) return; $row = $mod->appendChild (); $domain = $document->domain; $main = $system->child (SYSTEM_DEFAULT_DOMAIN_NAME); if ($main === false) $main = $domain; // Recover password only if mails can be sent if (INTEGRATION_SMTP_ENABLE) { // recover password $row->appendChild ('modUser_welcome_goPassword') ->url (array (SYSTEM_PROFILES_URI, '-recover-password')) ->popUpOpen (); } // recover password // subscribe if (SYSTEM_ENABLE_USER_SUBSCRIPTIONS and $domain->child ('-join')) $row->appendChild ('modUser_welcome_goSubscribe') ->url (array ($domain->name, '-join')) ->popUpOpen (); elseif (SYSTEM_ENABLE_USER_SUBSCRIPTIONS) $row->appendChild ('modUser_welcome_goSubscribe') ->url (array (SYSTEM_PROFILES_URI, '-join')) ->popUpOpen (); // info if ($domain->name != SYSTEM_PROFILES_URI and $domain->name != SYSTEM_ADMIN_URI and $store->domain->getStatus ($domain->name) >= 2) { // show info if ($id = $store->domainContent->findMarker ($domain->domainId, 6)) { // info page exists $pathway = $store->domainContent->pathway ($domain->domainId, $id); $row->appendChild ('modUser_welcome_goInfo') ->url ($pathway) ->active ($document->pathway == $pathway); } // info page exists else $row->appendChild ('modUser_welcome_goInfo') ->url (array ($domain->name, '-info')) ->active ($document->pathway == array ($domain->name, '-info')); } // show info // Organization identification if (SYSTEM_HOSTING_MODE and strlen (SYSTEM_PROJECT_URL) and $domain->name != SYSTEM_DEFAULT_DOMAIN_NAME) $row->appendChild ('modUser_welcome_goOrganization') ->set ('url', SYSTEM_PROJECT_URL); // Go to profiles page /* * $row->appendChild ('modUser_welcome_goProfiles') * ->url (array (SYSTEM_PROFILES_URI)) * ->active ($document->application->pathway[0] == SYSTEM_PROFILES_URI); */ // Back to home if (SYSTEM_HOSTING_MODE == 0 and $document->application->pathway[0] != SYSTEM_DEFAULT_DOMAIN_NAME) $row->appendChild ('modUser_welcome_goHome') ->url (array (SYSTEM_DEFAULT_DOMAIN_NAME)); // Abuse report /* * if ($domain->name != SYSTEM_DEFAULT_DOMAIN_NAME and (($document->application->domainId and $document->application->id) or $document->application->userId)) * $row->appendChild ('modUser_welcome_goReport') * ->url (true, true, '_alert-report') * ->active ($document->actions ('alert', 'report')); */ // Service terms if ($id = $store->domainContent->findMarker ($domain->domainId, 5)) { // this service terms $pathway = $store->domainContent->pathway ($domain->domainId, $id); $row->appendChild ('modUser_welcome_goServiceTerms') ->url ($pathway) ->active ($document->pathway == $pathway); } // this service terms elseif ($domain->name != SYSTEM_DEFAULT_DOMAIN_NAME and $id = $store->domainContent->findMarker ($main->domainId, 5)) { // global service terms $row->appendChild ('modUser_welcome_goServiceTerms') ->url ($store->domainContent->pathway ($main->domainId, $id)); } // global service terms // Privacy policy if ($id = $store->domainContent->findMarker ($domain->domainId, 7)) { // this privacy policy $pathway = $store->domainContent->pathway ($domain->domainId, $id); $row->appendChild ('modUser_welcome_goPrivacyPolicy') ->url ($pathway) ->active ($document->pathway == $pathway); } // this privacy policy elseif ($domain->name != SYSTEM_DEFAULT_DOMAIN_NAME and $id = $store->domainContent->findMarker ($main->domainId, 7)) { // global privacy policy $row->appendChild ('modUser_welcome_goPrivacyPolicy') ->url ($store->domainContent->pathway ($main->domainId, $id)); } // global privacy policy // About Ecolabore Engine $row->appendChild ('modUser_welcome_goEcolabore', array ('url' => SYSTEM_GENERATOR_URL)); $mod->data = array_replace ($document->render->block ('modules/system_menu'), $store->control->read ('modUser_welcome_module')); $mod->enabled = true; } // function setModule } // class eclMod_modUser_welcome //!eof:library/modUser/welcome/eclMod_modUser_welcome.php; //!file:library/modVideo/eclMod_modVideo.php; class eclMod_modVideo { // class eclMod_modVideo public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; // Procure a aplicação $me = $document->application->findModuleTarget ($document, $arguments); if (!$me) return; $number = $arguments[1]; // Procure o módulo dentro da aplicação if (isset ($me->data['extras']['video_' . $number])) { // module exists $video = $me->data['extras']['video_' . $number]; $mod->data = $video; $mod->enabled = true; } // module exists if ($document->access (4, $me->groups)) { // personalite $mod->enabled = true; if (isset ($video)) { // modify $pathway = array_slice ($me->pathway, 1); array_unshift ($pathway, $document->domain->name, '-personalite', 'extras', 'video_' . $number); $mod->data['local']['personalite_url'] = $document->url ($pathway); $caption = $store->control->read ('modVideo_edit'); $mod->data['local']['personalite_caption'] = $caption['text']['caption']; } // modify } // personalite $mod->data['local']['number'] = $number; $mod->data['local']['list'] = 'details'; $mod->data['local']['details'] = 'media_video'; if (isset ($video)) $local['extras'] = array ('video_' . $number => $video); $local['pathway'] = $me->pathway; $mod->appendChild ($local); } // function setModule } // class eclMod_modVideo //!eof:library/modVideo/eclMod_modVideo.php; //!file:library/personalite/eclApp_personalite.php; class eclApp_personalite { // class eclApp_personalite static function is_child ($me, $name) { // function is_child if ($name == '-personalite') return true; return false; } // function is_child static function get_menu_type ($me) { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names return array ('-personalite'); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('personalite_content'); $me->access = 4; $me->getMap (); $me->isDomain = true; } // function constructor_helper static function dispatch ($document) { // function dispatch $document->mod->list = new eclMod_sectionFolder_list ($document); } // function dispatch } // class eclApp_personalite //!eof:library/personalite/eclApp_personalite.php; //!file:library/personalite/eclFilter_personalite_flags.php; class eclFilter_personalite_flags { // class eclFilter_personalite_flags static function create ($fieldName, $control, $formulary) { // function create $local['name'] = $fieldName; // type if (isset ($control['flags']['type'])) $local['type'] = $control['flags']['type']; else $local['type'] = 'textarea'; if (isset ($formulary->data['flags'])) $local['value'] = $formulary->htmlSpecialChars (eclIo_file::array2string ($formulary->data['flags'])); $formulary->appendChild ($control, $local); } // function create static function save ($fieldName, $control, $formulary) { // function save if (isset ($formulary->received[$fieldName][0])) $formulary->data['flags'] = eclIo_file::string2array ($formulary->received[$fieldName]); else $formulary->data['flags'] = array (); } // function save } // class eclFilter_personalite_flags //!eof:library/personalite/eclFilter_personalite_flags.php; //!file:library/personalite/eclFilter_personalite_vars.php; class eclFilter_personalite_vars { // class eclFilter_personalite_vars static function create ($fieldName, $control, $formulary) { // function create $local['name'] = $fieldName; // type if (isset ($control['flags']['type'])) $local['type'] = $control['flags']['type']; else $local['type'] = 'textarea'; $buffer = CRLF; if (isset ($formulary->data['local'])) { // format output foreach ($formulary->data['local'] as $key => $value) { // each variable $buffer .= '$' . $key . ':' . $value . ';' . CRLF; } // each variable } // format output $local['value'] = $formulary->htmlSpecialChars ($buffer); $formulary->appendChild ($control, $local); } // function create static function save ($fieldName, $control, $formulary) { // function save if (isset ($formulary->received[$fieldName][0])) $buffer = $formulary->received[$fieldName]; else return $formulary->data['local'] = array (); $local = array (); foreach (explode (";", $buffer) as $line) { // each line $value = ''; $parts = explode (':', $line, 2); switch (count ($parts)) { // switch parts case 2: $value = trim ($parts[1]); case 1: $key = substr (trim ($parts[0]), 1); if (!is_string ($key) or !strlen ($key)) continue2; $local[$key] = $value; } // switch parts } // each line $formulary->data['local'] = $local; } // function save } // class eclFilter_personalite_vars //!eof:library/personalite/eclFilter_personalite_vars.php; //!file:library/personaliteApearance/color/eclApp_personaliteApearance_color.php; class eclApp_personaliteApearance_color { // class eclApp_personaliteApearance_color static function is_child ($me, $name) { // function is_child if ($name == 'color') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names () { // function get_children_names return array ('color'); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('personaliteApearance_color_content'); $me->access = 0; $me->isDomain = true; } // function constructor_helper static function dispatch ($document) { // function dispatch } // function dispatch } // class eclApp_personaliteApearance_color //!eof:library/personaliteApearance/color/eclApp_personaliteApearance_color.php; //!file:library/personaliteApearance/eclApp_personaliteApearance.php; class eclApp_personaliteApearance { // class eclApp_personaliteApearance static function is_child ($me, $name) { // function is_child if ($name == 'apearance') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'section'; } // function get_menu_type static function get_children_names () { // function get_children_names return array ('apearance'); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('personaliteApearance_content'); if (!$store->domainExtras->openChild ($me->domainId, MODE_TEMPLATE, 0, 'templates/default')) { // create user template $data = $store->control->read ('templates/default'); $data['mode'] = MODE_TEMPLATE; $data['name'] = 'templates/default'; $store->domainExtras->insert ($me->domainId, $data); } // create user template if (!$store->domainExtras->openChild ($me->domainId, MODE_TEMPLATE, 0, 'themes/user')) { // create user theme $data['mode'] = MODE_TEMPLATE; $data['name'] = 'themes/user'; $store->domainExtras->insert ($me->domainId, $data); } // create user theme $me->map = array ('personaliteApearance_color', 'personaliteApearance_font'); $me->isDomain = true; } // function constructor_helper static function dispatch ($document) { // function dispatch global $store; $me = $document->application; $template = &$store->domainExtras->openChild ($me->domainId, MODE_TEMPLATE, 0, 'templates/user'); $user = &$store->domainExtras->openChild ($me->domainId, MODE_TEMPLATE, 0, 'themes/user'); $preset = $store->control->read ('domainStyles_preset'); $palette = $document->render->block ('palettes/default'); if (isset ($palette['local'])) $preset['local'] = array_replace ($preset['local'], $palette['local']); $theme = $document->render->block ('themes/default'); if (isset ($theme['local'])) $preset['local'] = array_replace ($preset['local'], $theme['local']); $data['local'] = $user['local']; $data['defaults'] = $preset['local']; // Restore default configurations if (isset ($document->received['save']) and $document->received['save'] == 'restore') { // restore default configurations $user['local'] = array (); $template['updated'] = TIME; return $document->dataReplace ('layouts/dialog_close'); } // restore default configurations $formulary = $document->createFormulary ('personaliteApearance_scheme_edit', $data); if ($formulary->save ()) { // save $user['local'] = $formulary->data['local']; $template['updated'] = TIME; $document->dataReplace ('layouts/dialog_close'); return; } // save $document->mod->formulary = $formulary; $document->mod->fontfaces = new eclMod_personaliteApearance_fontfaces ($document); } // function dispatch } // class eclApp_personaliteApearance //!eof:library/personaliteApearance/eclApp_personaliteApearance.php; //!file:library/personaliteApearance/eclFilter_personaliteApearance_color.php; class eclFilter_personaliteApearance_color { // class eclFilter_personaliteApearance_color static function create ($fieldName, $control, $formulary) { // function create $local['url'] = $formulary->document->url (array ($formulary->document->domain->name, '-personalite', 'apearance', 'color')); // name $local['name'] = $fieldName; // type $local['type'] = 'color_testable'; // help if (isset ($control['flags']['help']) and !isset ($control['flags']['help_msg'])) $local['help_msg'] = 'system_msg_filterColorHelp'; // target if (isset ($control['flags']['target'])) $local['value'] = $formulary->getField ($control['flags']['target']); // default if (isset ($control['flags']['default'])) { // default $default = $formulary->getField ($control['flags']['default']); if ($default[0] == '$') $local['from'] = str_replace ('-', '_', substr ($default, 1)); else $local['default'] = $default; } // default // Current if (isset ($local['value'])) $local['current'] = $local['value']; elseif (isset ($local['default'])) $local['current'] = $local['default']; // property if (isset ($control['flags']['property'])) $local['property'] = $control['flags']['property']; // class if (isset ($control['flags']['field_name'])) { // class $local['class'] = $control['flags']['field_name']; $local['target'] = str_replace ('-', '_', $control['flags']['field_name']); } // class $formulary->appendChild ($control, $local); } // function create static function save ($fieldName, $control, $formulary) { // function save if (isset ($formulary->received[$fieldName]) and strlen ($formulary->received[$fieldName])) { // received value $value = $formulary->received[$fieldName]; if (!preg_match ('/^[a-zA-Z0-9\ #(),.]+$/', $value)) { // error // error if (isset ($control['flags']['error'])) $formulary->setErrorMsg ($control, $fieldName, 'system_msg_filterColorError', $value); else $value = false; } // error } // received value else $value = false; // required if ($value === false and isset ($control['flags']['required'])) return $formulary->setRequiredMsg ($control, $fieldName); // target if (isset ($control['flags']['target'])) $formulary->setField ($control['flags']['target'], $value); } // function save } // class eclFilter_personaliteApearance_color //!eof:library/personaliteApearance/eclFilter_personaliteApearance_color.php; //!file:library/personaliteApearance/eclFilter_personaliteApearance_font.php; /* * control_type = font * control_filter = font * control_field_name * control_target * font-family-enabled = 1 / 0 * font-weight-enabled, font-size-enabled, line-height-enabled * * This filter aways clears empty fields */ class eclFilter_personaliteApearance_font { // class eclFilter_personaliteApearance_font static function create ($fieldName, $control, $formulary) { // function create $local['url'] = $formulary->document->url (array ($formulary->document->domain->name, '-personalite', 'apearance', 'font')); // name $local['name'] = $fieldName; // Type $local['type'] = 'font_testable'; // help if (isset ($control['flags']['help']) and !isset ($control['flags']['help_msg'])) $local['help_msg'] = 'system_msg_filterFontHelp'; // target if (!isset ($control['flags']['target'])) return; $target = $control['flags']['target']; foreach (array ('font-name', 'font-weight', 'font-size', 'line-height') as $property) { // each property if (!isset ($control['flags'][$property . '-enable'])) { // disabled $local[$property . '-value'] = 'disabled'; continue; } // disabled $local[$property . '-enabled'] = 1; $local[$property . '-value'] = str_replace ('"', "'", $formulary->getField ('local/' . $target . '-' . $property)); // default $default = str_replace ('"', "'", $formulary->getField ('defaults/' . $target . '-' . $property)); if (isset ($default[0]) and $default[0] == '$') $local[$property . '-from'] = str_replace ('-', '_', substr ($default, 1)); else $local[$property . '-default'] = $default; // Current if (isset ($local[$property . '-value'])) $local[$property . '-current'] = $local[$property . '-value']; elseif (isset ($local[$property . '-default'])) $local[$property . '-current'] = $local[$property . '-default']; } // each property if (isset ($local['font-name-value'])) { // font family $font = $formulary->document->render->block ('fonts/' . $local['font-name-value']); if (isset ($font['local']['font-stack'])) $local['font-family-value'] = $font['local']['font-stack']; } // font family // class if (isset ($control['flags']['field_name'])) { // class $local['class'] = $control['flags']['field_name']; $local['target'] = str_replace ('-', '_', $control['flags']['field_name']); } // class $formulary->appendChild ($control, $local); } // function create static function save ($fieldName, $control, $formulary) { // function save if (!isset ($control['flags']['target'])) return; $received = $formulary->received; $target = $control['flags']['target']; foreach (array ('font-name', 'font-weight', 'font-size', 'line-height') as $property) { // each property if (!isset ($control['flags'][$property . '-enable'])) continue; $name = $fieldName . '_' . str_replace ('-', '_', $property); if (isset ($received[$name][0])) $formulary->setField ('local/' . $target . '-' . $property, $received[$name]); else $formulary->setField ('local/' . $target . '-' . $property, false); } // each property } // function save } // class eclFilter_personaliteApearance_font //!eof:library/personaliteApearance/eclFilter_personaliteApearance_font.php; //!file:library/personaliteApearance/eclFilter_personaliteApearance_select.php; /* * control_type = select_testable * control_filter = selectTestable * control_field_name * control_target * control_default * control_help_msg * * This filter aways clears empty fields */ class eclFilter_personaliteApearance_select { // class eclFilter_personaliteApearance_select static function create ($fieldName, $control, $formulary) { // function create global $store; $local['url'] = $formulary->document->url (array ($formulary->document->domain->name, '-dialog', 'color')); // name $local['name'] = $fieldName; // type $local['type'] = 'select_testable'; // target if (isset ($control['flags']['target'])) $value = $formulary->getField ($control['flags']['target']); else $value = false; // default if (isset ($control['flags']['default'])) $default = $formulary->getField ($control['flags']['default']); else $default = false; if (is_string ($default)) { // set default if ($default[0] == '$') { // default from target $local['from'] = str_replace ('-', '_', substr ($default, 1)); $default = false; } // default from target else $local['default'] = $default; } // set default if ($value === false or $value === '') $value = $default; if ($value === false) $value = ''; // property if (isset ($control['flags']['property'])) $local['property'] = $control['flags']['property']; // class if (isset ($control['flags']['field_name'])) { // class $local['class'] = $control['flags']['field_name']; $local['target'] = str_replace ('-', '_', $control['flags']['field_name']); } // class $select = $formulary->appendChild ($control, $local); if (!isset ($control['children'])) return; foreach ($control['children'] as $childName) { // each child $child = $store->control->read ($childName); if (!$child) continue; $currentValue = $child['flags']['value']; if ($currentValue === $value) $active = 'true'; else $active = ''; $select->appendChild ($child, array ( 'value' => $currentValue, 'active' => $active )); } // each child } // function create static function save ($fieldName, $control, $formulary) { // function save $default = false; if (isset ($control['flags']['default'])) $default = $formulary->getField ($control['flags']['default']); if (is_string ($default) and $default[0] == '$') $default = false; if (isset ($formulary->received[$fieldName]) and strlen ($formulary->received[$fieldName])) { // received $value = $formulary->received[$fieldName]; if (!preg_match ('/^[a-zA-Z0-9\ #(),.-]+$/', $value)) $value = false; } // received value else $value = false; if ($value === $default) $value = false; // target if (isset ($control['flags']['target'])) $formulary->setField ($control['flags']['target'], $value); } // function save } // class eclFilter_personaliteApearance_select //!eof:library/personaliteApearance/eclFilter_personaliteApearance_select.php; //!file:library/personaliteApearance/eclMod_personaliteApearance_fontfaces.php; class eclMod_personaliteApearance_fontfaces { // class eclMod_personaliteApearance_fontfaces public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; $me = $document->application; $folder = 'fonts/'; $length = strlen ($folder); $render = $document->render; $buffer = ''; $userDetails = array (); foreach ($store->domainExtras->children ($me->domainId, MODE_TEMPLATE, 0) as $data) { // each user detail if (substr ($data['name'], 0, $length) != $folder) continue; $userDetails[substr ($data['name'], $length)] = $data['id']; } // each user detail foreach ($store->control->scandir ('t', 'fonts') as $name) { // each detail if (isset ($userDetails[$name])) { // user detail $data = $store->domainExtras->openById ($me->domainId, $userDetails[$name]); unset ($userDetails[$name]); } // user detail else $data = $store->control->read ($folder . $name); if (!$data or !isset ($data['text']['caption'])) continue; if (isset ($data['local']['font-face'])) $buffer .= $data['local']['font-face'] . CRLF; } // each detail foreach ($userDetails as $name => $id) { // each user detail $data = $store->domainExtras->openById ($me->domainId, $id); if (isset ($data['local']['font-face'])) $buffer .= $data['local']['font-face'] . CRLF; } // each user detail if (strlen ($buffer)) $render->cuts['style'] = $buffer; } // function setModule } // class eclMod_personaliteApearance_fontfaces //!eof:library/personaliteApearance/eclMod_personaliteApearance_fontfaces.php; //!file:library/personaliteApearance/font/eclApp_personaliteApearance_font.php; class eclApp_personaliteApearance_font { // class eclApp_personaliteApearance_font static function is_child ($me, $name) { // function is_child if ($name == 'font') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names () { // function get_children_names return array ('font'); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('personaliteApearance_font_layout'); $me->access = 0; $me->isDomain = true; } // function constructor_helper static function dispatch ($document) { // function dispatch $document->mod->list = new eclMod_personaliteApearance_font_list ($document); } // function dispatch } // class eclApp_personaliteApearance_font //!eof:library/personaliteApearance/font/eclApp_personaliteApearance_font.php; //!file:library/personaliteApearance/font/eclMod_personaliteApearance_font_list.php; class eclMod_personaliteApearance_font_list { // class eclMod_personaliteApearance_font_list public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; $me = $document->application; $folder = 'fonts/'; $length = strlen ($folder); $render = $document->render; $userDetails = array (); foreach ($store->domainExtras->children ($me->domainId, MODE_TEMPLATE, 0) as $data) { // each user detail if (substr ($data['name'], 0, $length) != $folder) continue; $userDetails[substr ($data['name'], $length)] = $data['id']; } // each user detail foreach ($store->control->scandir ('t', 'fonts') as $name) { // each detail if (isset ($userDetails[$name])) { // user detail $data = $store->domainExtras->openById ($me->domainId, $userDetails[$name]); unset ($userDetails[$name]); } // user detail else $data = $store->control->read ($folder . $name); if (!$data or !isset ($data['text']['caption'])) continue; $data['name'] = $name; $mod->appendChild ($data); } // each detail foreach ($userDetails as $name => $id) { // each user detail $data = $store->domainExtras->openById ($me->domainId, $id); $data['name'] = $name; $mod->appendChild ($data); } // each user detail $mod->sort ('name'); $mod->enabled = true; } // function setModule } // class eclMod_personaliteApearance_font_list //!eof:library/personaliteApearance/font/eclMod_personaliteApearance_font_list.php; //!file:library/personaliteDetails/configure/eclApp_personaliteDetails_configure.php; class eclApp_personaliteDetails_configure { // class eclApp_personaliteDetails_configure static function is_child ($me, $name) { // function is_child return true; } // function is_child static function get_menu_type () { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names () { // function get_children_names return array (); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('personaliteDetails_configure_edit'); $me->access = 4; $me->isDomain = true; } // function constructor_helper static function dispatch ($document) { // function dispatch global $store; $me = $document->application; $saved = &$store->domainExtras->openChild ($me->domainId, MODE_TEMPLATE, 0, 'details/' . $me->name); if ($saved) $data = $saved; elseif ($store->control->read ('details/' . $me->name)) $data = $store->control->read ('details/' . $me->name); else $data = array (); // Restore default configurations if (isset ($document->received['save']) and $document->received['save'] == 'restore') { // restore default configurations if ($saved) $store->domainExtras->delete ($me->domainId, $saved['id']); $data = $store->control->read ('details/' . $me->name); $document->dataReplace ('layouts/dialog_close'); if ($data) { // update to default $caption = $document->selectLanguage ($data['text']['caption']); $identifier = $me->name; } // update to system default else { // remove $identifier = ''; $caption[1] = ''; } // remove $pathway = $me->parent->pathway; $pathway[] = $me->name; $url = $document->url ($pathway); $document->data['script'] = 'window.opener.listManager.update ("' . $me->name . '", "' . $identifier . '", "' . $caption[1] . '", "' . $url . '");'; return; } // restore default configurations $data['identifier'] = $me->name; $formulary = $document->createFormulary ('personaliteDetails_configure_edit', $data); if ($formulary->save ()) { // save formulary $data = $formulary->data; if (!isset ($data['identifier']) or !preg_match ('/^[a-z][a-z0-9_]*$/', $data['identifier'])) $data['identifier'] = $me->name; if ($data['identifier'] == $me->name and $saved) $saved = $formulary->data; else { // create saved modules if ($data['identifier'] != $me->name and $saved = &$store->domainExtras->openChild ($me->domainId, MODE_TEMPLATE, 0, $data['identifier'])) { // overwrite existing detail $saved['text'] = $data['text']; $saved['local'] = $data['local']; $saved['html'] = $data['html']; } // overwrite existing detail else { // create new detail $data['mode'] = MODE_TEMPLATE; $data['name'] = 'details/' . $data['identifier']; $store->domainExtras->insert ($me->domainId, $data); } // create new detail } // create saved modules $document->dataReplace ('layouts/dialog_close'); $caption = $document->selectLanguage ($data['text']['caption']); $pathway = $me->parent->pathway; $pathway[] = $data['identifier']; $url = $document->url ($pathway); $document->data['script'] = 'window.opener.listManager.update ("' . $me->name . '", "' . $data['identifier'] . '", "' . $caption[1] . '", "' . $url . '");'; return; } // save formulary $document->mod->formulary = $formulary; if ($formulary->errorMsg) $document->mod->humperstilshen->alert ($formulary->errorMsg); } // function dispatch } // class eclApp_personaliteDetails_configure //!eof:library/personaliteDetails/configure/eclApp_personaliteDetails_configure.php; //!file:library/personaliteDetails/eclApp_personaliteDetails.php; class eclApp_personaliteDetails { // class eclApp_personaliteDetails static function is_child ($me, $name) { // function is_child if ($name == 'details') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names () { // function get_children_names return array ('details'); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('personaliteDetails_main'); $me->map = array ('personaliteDetails_configure'); $me->isDomain = true; } // function constructor_helper static function dispatch ($document) { // function dispatch $document->mod->list = new eclMod_personaliteDetails_list ($document); } // function dispatch } // class eclApp_personaliteDetails //!eof:library/personaliteDetails/eclApp_personaliteDetails.php; //!file:library/personaliteDetails/eclFilter_personaliteDetails.php; /* * Valid control flags * control_type = manager * control_filter = personaliteDetails * control_field_name * control_target = local/details * control_help * control_help_msg */ class eclFilter_personaliteDetails { // class eclFilter_personaliteDetails static function create ($fieldName, $control, $formulary) { // function create global $io, $store; $document = $formulary->document; $me = $document->application; $item = $document->createListItem ($control); // name $item->data['name'] = $fieldName; // type if (isset ($control['flags']['type'])) $item->data['type'] = $control['flags']['type']; else $item->data['type'] = 'manager'; // help if (isset ($control['flags']['help']) and !isset ($control['flags']['help_msg'])) $item->data['help_msg'] = 'system_msg_filterDetailsHelp'; // references $pathway = array ($document->domain->name, '-personalite', 'details'); $item->data['url_add'] = $document->url ($pathway); $item->data['move-enable'] = 1; $item->data['remove-enable'] = 1; $item->data['edit-enable'] = 1; $userDetails = array (); foreach ($store->domainExtras->children ($me->domainId, MODE_TEMPLATE, 0) as $data) { // each user detail if (substr ($data['name'], 0, 8) != 'details/') continue; $userDetails[substr ($data['name'], 8)] = $data; } // each user detail $value = trim (strval ($formulary->getField ('local/details'))); $buffer = ''; foreach (explode (CRLF, $value) as $name) { // each line $name = trim ($name); if (!strlen ($name)) continue; if (isset ($userDetails[$name])) $data = $userDetails[$name]; else $data = $store->control->read ('details/' . $name); if (isset ($data['text']['caption'])) $caption = $data['text']['caption']; else $caption = $document->textMerge ($name); $p = $pathway; $p[] = $name; $buffer .= $name . CRLF; $item->appendChild (false, array ('value' => $name, 'caption' => $caption)) ->url ($p); } // each line $item->data['serialized'] = $buffer; return $item; } // function create static function save ($fieldName, $control, $formulary) { // function save global $store; $buffer = array (); if (isset ($formulary->received[$fieldName . '_serialized'])) { // received foreach (explode (LF, $formulary->received[$fieldName . '_serialized']) as $line) { // each line $line = trim ($line); if (preg_match ('/^[a-z][a-z0-9_]*$/', $line)) $buffer[] = $line; } // each line } // received if ($buffer) $buffer = implode (CRLF, $buffer); else $buffer = false; $formulary->setField ('local/details', $buffer); } // function save } // class eclFilter_personaliteDetails //!eof:library/personaliteDetails/eclFilter_personaliteDetails.php; //!file:library/personaliteDetails/eclMod_personaliteDetails_list.php; class eclMod_personaliteDetails_list { // class eclMod_personaliteDetails_list public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; $me = $document->application; $render = $document->render; $userDetails = array (); foreach ($store->domainExtras->children ($me->domainId, MODE_TEMPLATE, 0) as $data) { // each user detail if (substr ($data['name'], 0, 8) != 'details/') continue; $userDetails[substr ($data['name'], 8)] = $data['id']; } // each user detail foreach ($store->control->scandir ('t', 'details') as $name) { // each detail if (isset ($userDetails[$name])) { // user detail $data = $store->domainExtras->openById ($me->domainId, $userDetails[$name]); unset ($userDetails[$name]); } // user detail else $data = $store->control->read ('details/' . $name); if (!$data or !isset ($data['text']['caption'])) continue; $data['name'] = $name; $mod->appendChild ($data) ->appendFolder ($name); } // each detail foreach ($userDetails as $name => $id) { // each user detail $data = $store->domainExtras->openById ($me->domainId, $id); $data['name'] = $name; $mod->appendChild ($data) ->appendFolder ($name); } // each user detail $mod->enabled = true; } // function setModule } // class eclMod_personaliteDetails_list //!eof:library/personaliteDetails/eclMod_personaliteDetails_list.php; //!file:library/personaliteExport/eclApp_personaliteExport.php; class eclApp_personaliteExport { // class eclApp_personaliteExport static function is_child ($me, $name) { // function is_child if ($name == 'export') return true; return false; } // function is_child static function get_menu_type ($me) { // function get_menu_type return 'section'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names return array ('export'); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('personaliteExport_content'); $me->isDomain = true; } // function constructor_helper static function dispatch ($document) { // function dispatch global $io, $store; $data['ecolabore-template'] = '1.0'; $data['created'] = date ('Y-m-d'); $data['name'] = 'ecolabore-template+' . date ('Y-m-d') . '.zip'; $formulary = $document->createFormulary ('personaliteExport_edit', $data, 'export'); if ($formulary->command ('save') and $formulary->save ()) { // save and export return; } // save and export $document->mod->formulary = $formulary; } // function dispatch } // class eclApp_personaliteExport //!eof:library/personaliteExport/eclApp_personaliteExport.php; //!file:library/personaliteExport/eclFilter_personaliteExport_components.php; class eclFilter_personaliteExport_components { // class eclFilter_personaliteExport_components static function create ($fieldName, $control, $formulary) { // function create global $store; $document = $formulary->document; $me = $document->application; $children = $store->domainExtras->children ($me->domainId, MODE_TEMPLATE, 0); foreach ($children as $data) { // each child $local = array ( 'name' => $fieldName . '_' . $data['id'], 'type' => 'checkbox', 'caption' => $document->textMerge ($data['name'] . ' ', $data['text']['caption']) ); $formulary->appendChild ($local); } // each child $formulary->appendChild ('system_form_separator'); $sections = $store->domainContent->mode ($me->domainId, MODE_SECTION); array_unshift ($sections, $store->domainContent->open ($me->domainId, '-index')); foreach ($sections as $data) { // each section $local = array ( 'name' => $fieldName . '_' . $data['id'], 'type' => 'checkbox', 'caption' => $document->textMerge ($data['name'] . ' ', $data['text']['caption']) ); $formulary->appendChild ($local); } // each section } // function create static function save ($fieldName, $control, $formulary) { // function save global $io, $store; $document = $formulary->document; $me = $formulary->document->application; $received = $formulary->received; $zip = new ZipArchive (); $filename = PATH_DOMAINS . $document->domain->name . '/-export.zip'; if ($zip->open ($filename, ZIPARCHIVE::CREATE) !== TRUE) return; $children = $store->domainExtras->children ($me->domainId, MODE_TEMPLATE, 0); foreach ($children as $data) { // each child template if (!isset ($received[$fieldName . '_' . $data['id']])) continue; $component = array (); $component['name'] = $data['name']; if ($data['text']) $component['text'] = $data['text']; if ($data['local']) $component['local'] = $data['local']; if (isset ($data['html'][0])) $component['html'] = $data['html']; if (count ($component) == 1) continue; $name = '-' . str_replace ('/', '+', $data['name']) . '.json'; $content = eclIo_webservice::array2json ($component); $zip->addFromString ($name, $content); } // each child template $sections = $store->domainContent->mode ($me->domainId, MODE_SECTION); array_unshift ($sections, $store->domainContent->open ($me->domainId, '-index')); foreach ($sections as $data) { // each child section if (!isset ($received[$fieldName . '_' . $data['id']])) continue; $component = array (); foreach (array ('name', 'marker', 'access', 'text', 'local', 'flags', 'extras', 'keywords') as $field) { // copy each field if (isset ($data[$field]) and $data[$field]) $component[$field] = $data[$field]; } // copy each field if ($data['parent_id'] == 1) $component['parent_id'] = 1; elseif ($data['parent_id']) { // find parent $parent = $store->domainContent->openById ($me->domainId, $data['parent_id']); if (!$parent) continue; $data['parent_name'] = $parent['name']; } // find parent $name = $data['name'] . '.json'; $content = eclIo_webservice::array2json ($component); $zip->addFromString ($name, $content); foreach ($store->domainFile->scanPrefixedFiles ($me->domainId, $data['name']) as $name) { // each file $zip->addFromString ($name, file_get_contents (PATH_DOMAINS . $document->domain->name . '/' . $name)); } // each file } // each child section $zip->close (); $headers = array ( 'Content-Disposition' => 'attachment', 'Cache-Control' => 'no-cache', 'Filename' => $formulary->data['name'] ); $io->sendFile->send ($filename, $headers); } // function save } // class eclFilter_personaliteExport_components //!eof:library/personaliteExport/eclFilter_personaliteExport_components.php; //!file:library/personaliteExtras/eclApp_personaliteExtras.php; class eclApp_personaliteExtras { // class eclApp_personaliteExtras static function is_child ($me, $name) { // function is_child if ($name == 'extras') return true; if ($name == 'post') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names () { // function get_children_names return array ('extras'); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('personaliteExtras_edit'); $me->access = 4; $me->isDomain = true; $me->ignoreSubfolders = true; } // function constructor_helper static function dispatch ($document) { // function dispatch if (!self::find_target ($document, $me, $target, $prefix, $isBigFile)) return self::not_configurable ($document); // Save uploaded big files if ($isBigFile and $document->actions ('upload', 'save')) return self::save_uploaded_big_file ($document, $me, $target, $prefix); // Upload big files formulary if ($isBigFile and !isset ($me->data['extras'][$target]['files'])) return self::upload_big_file ($document, $me, $target, $prefix); // Restore default configurations if (isset ($document->received['save']) and $document->received['save'] == 'restore') return self::restore_default_configurations ($document, $me, $target); // get formulary data $data = self::get_formulary_data ($document, $me, $target, $prefix); // Create formulary $formulary = $document->createFormulary ($document->application->data, $data); $formulary->application = $me; $formulary->flags['target'] = $target; // Save formulary if ($formulary->save ()) { // save formulary $me->data['extras'][$target] = $formulary->data; $document->dataReplace ('layouts/dialog_close'); return; } // save formulary // Show formulary $document->mod->formulary = $formulary; if ($formulary->errorMsg) $document->mod->humperstilshen->alert ($formulary->errorMsg); $document->dataReplace ('layouts/dialog_tabs'); switch ($prefix) { // switch prefix case 'audio': case 'banner': case 'box': case 'file': case 'html': case 'img': case 'video': $document->data['local']['remove_object'] = 1; } // switch prefix } // function dispatch static function find_target ($document, &$me, &$target, &$prefix, &$isBigFile) { // function find_target global $store; $document->application->pathway = $document->pathway; $pathway = array_slice ($document->pathway, 3); $target = array_shift ($pathway); $me = $document->domain; if (!$pathway) $me = $me->child (''); else { // find child foreach ($pathway as $folder) { // each folder $me = $me->child ($folder); if ($me === false) return false; } // each folder } // find child if (!$document->access (4, $me->groups)) return false; $parts = explode ('_', $target); $prefix = $parts[0]; if ($document->application->name == 'post') $target = 'post_' . $target; $isBigFile = false; switch ($prefix) { // switch prefix case 'audio': case 'file': case 'video': $isBigFile = true; case 'banner': case 'box': case 'card': case 'dinamic': case 'formulary': case 'html': case 'img': case 'list': case 'pages': case 'sort': $document->application->data = $store->control->read ('mod' . ucfirst ($prefix) . '_edit'); return true; case 'post': $document->application->data = $store->control->read ('modContent_post'); return true; default: return false; } // switch prefix } // function find_target static function not_configurable ($document) { // function not_configurable $formulary = $document->createFormulary ('personaliteModules_contentNotConfigurable', array (), 'not_configurable'); if ($formulary->command ('cancel')) return $document->dataReplace ('layouts/dialog_cancel'); $document->mod->formulary = $formulary; $document->dataReplace ('layouts/dialog'); } // function not_configurable static function upload_big_file ($document, $me, $target, $prefix) { // function upload_big_file global $store; $formulary = $document->createFormulary ('personaliteExtras_upload_' . $prefix, array (), 'upload'); $formulary->action = '_upload-save'; $document->mod->formulary = $formulary; $document->application->data = $store->control->read ('personaliteExtras_upload_' . $prefix); $document->dataReplace ('personaliteExtras_upload_' . $prefix); } // function upload_big_file static function save_uploaded_big_file ($document, $me, $target, $prefix) { // function save_uploaded_big_file global $io; ini_set ('upload_max_filesize', '1024M'); ini_set ('post_max_size', '1024M'); $document->buffer = 'ok'; $uploaded = reset ($io->request->uploaded); if (!$uploaded) { // fail $document->buffer = 'fail'; return; } // fail $uploaded = $uploaded[0]; if ($uploaded['error']) return $document->buffer = 'fail'; $ext = strtolower (end (explode ('.', $uploaded['name']))); $filename = $me->data['name'] . CHR_FNS . $target . '.' . $ext; $path = PATH_DOMAINS . $document->domain->name . '/' . $filename; move_uploaded_file ($uploaded['tmp_name'], $path); $me->data['extras'][$target] = array ( 'files' => array ($prefix => $filename), 'size' => $uploaded['size'], 'play' => 0, 'downloads' => 0, 'type' => $uploaded['type'], 'filename' => $uploaded['name'] ); } // function save_uploaded_big_file static function restore_default_configurations ($document, $me, $target) { // function restore_default_configurations if (isset ($me->data['extras'][$target]['files'])) { // remove files foreach ($me->data['extras'][$target]['files'] as $name) { // each file $file = FOLDER_DOMAINS . $document->domain->name . '/' . $name; if (is_file ($file)) unlink ($file); } // each file } // remove files unset ($me->data['extras'][$target]); $document->dataReplace ('layouts/dialog_close'); } // function restore_default_configurations static function get_formulary_data ($document, $me, $target, $prefix) { // function get_formulary_data if (isset ($me->data['extras'][$target])) return $me->data['extras'][$target]; if ($document->application->name == 'post') { // try post if ($data = $document->render->block ('modules/' . $prefix . '_post')) return $data; return $document->render->block ('modules/' . $prefix); } // try post if (isset ($me->data['flags']['modList_preset'])) $preset = $me->data['flags']['modList_preset']; else $preset = 'blog'; if ($data = $document->render->block ('modules/' . $prefix . '_' . $preset)) return $data; if ($data = $document->render->block ('modules/' . $prefix . '_blog')) return $data; return $document->render->block ('modules/' . $prefix); } // function get_formulary_data } // class eclApp_personaliteExtras //!eof:library/personaliteExtras/eclApp_personaliteExtras.php; //!file:library/personaliteExtras/eclFilter_personaliteExtras_upload.php; class eclFilter_personaliteExtras_upload { // class eclFilter_personaliteExtras_upload static function create ($fieldName, $control, $formulary) { // function create $control['name'] = $fieldName; // type $control['type'] = 'file_big'; $control['url'] = $formulary->document->url ($formulary->document->pathway, true, '_upload-save', $formulary->protocol); $formulary->appendChild ($control); } // function create static function save ($fieldName, $control, $formulary) { // function save } // function save } // class eclFilter_personaliteExtras_upload //!eof:library/personaliteExtras/eclFilter_personaliteExtras_upload.php; //!file:library/personaliteFields/address/eclFilter_personaliteFields_address.php; class eclFilter_personaliteFields_address { // class eclFilter_personaliteFields_address static function create ($fieldName, $control, $formulary) { // function create $document = $formulary->document; $control['name'] = $fieldName; // type if (isset ($control['flags']['type'])) $control['type'] = $control['flags']['type']; else $control['type'] = 'address'; $list = array ('street', 'number', 'complement', 'district', 'city', 'state', 'postal_code', 'country'); if (!isset ($formulary->data['local']['address']) and isset ($control['local']['share_user_data']) and isset ($formulary->data['share_user_data'])) { // use user address foreach ($list as $item) { // each item if (!isset ($document->user->data['local']['address'][$item])) continue; $value = $document->user->data['local']['address'][$item]; if ($document->charset != 'UTF-8') $value = mb_convert_encoding ($value, $formulary->document->charset, 'UTF-8'); $control['address_' . $item] = $formulary->htmlSpecialChars ($value); } // each item } // use user address else { // from formulary foreach ($list as $item) { // each item $value = $formulary->getField ('local/address/' . $item); if ($value === false) continue; if ($document->charset != 'UTF-8') $value = mb_convert_encoding ($value, $formulary->document->charset, 'UTF-8'); $control['address_' . $item] = $formulary->htmlSpecialChars ($value); } // each item } // from formulary $formulary->appendChild ($control); } // function create static function save ($fieldName, $control, $formulary) { // function save unset ($formulary->data['local']['address']); $list = array ('street', 'number', 'complement', 'district', 'city', 'state', 'postal_code', 'country'); foreach ($list as $item) { // each item if (!isset ($formulary->received[$fieldName . '_' . $item])) $formulary->setField ('local/address/' . $item, false); continue; $value = $formulary->received[$fieldName . '_' . $item]; if ($formulary->document->charset != 'UTF-8') $value = mb_convert_encoding ($value, 'UTF-8', $formulary->document->charset); $formulary->setField ('local/address/' . $item, $value); } // each item } // function save static function view ($fieldName, $control, $formulary) { // function view $document = $formulary->document; $enabled = false; $list = array ('street', 'number', 'complement', 'district', 'city', 'state', 'postal_code', 'country'); foreach ($list as $field) { // verify each field if (isset ($formulary->data['local']['address'][$field][0])) { // found $enabled = true; break; } // found } // verify each field if (!$enabled) return; // type if (isset ($control['flags']['view_type'])) $control['type'] = $control['flags']['view_type']; else $control['type'] = 'view'; if (!isset ($formulary->data['local']['address'])) return; $address = $formulary->data['local']['address']; $list = array ('street', 'number', 'complement', 'district', 'city', 'state', 'postal_code', 'country'); $buffer = ''; $lines = array (); $line = array (); if (isset ($address['street'][0])) $line[] = $address['street']; if (isset ($address['number'][0])) $line[] = $address['number']; if (isset ($address['complement'][0])) $line[] = $address['complement']; if ($line) $lines[] = implode (', ', $line); if (isset ($address['district'][0])) $lines[] = $address['district']; $line = array (); if (isset ($address['city'][0])) $line[] = $address['city']; if (isset ($address['state'][0])) $line[] = $address['state']; if ($line) $lines[] = implode (' - ', $line); if (isset ($address['postal_code'][0])) $lines[] = $address['postal_code']; if (isset ($address['country'][0])) $lines[] = $address['country']; $buffer = implode ('
      ', $lines); $control['content'] = $document->textMerge ($buffer); $formulary->appendChild ($control); } // function view static function scope ($render) { // function scope $data['data'] = $render->getVar ('address'); return $data; } // function scope static function target ($document, $value, $arguments) { // function target if (count ($arguments) < 2) return; list ($id, $field) = $arguments; $me = $document->domain->findChild (intval ($id)); if (!$me or !$document->access (4, $me->groups)) return; if ($document->charset != 'UTF-8') $value = mb_convert_encoding ($value, 'UTF-8', $document->charset); $me->data['local']['address'][$field] = $value; } // function target static function column ($document, $control, $data) { // function column if (!isset ($formulary->data['local']['address'])) return array ('caption' => $document->textMerge ('-')); $enabled = false; $list = array ('street', 'number', 'complement', 'district', 'city', 'state', 'postal_code', 'country'); foreach ($list as $field) { // verify each field if (isset ($formulary->data['local']['address'][$field][0])) { // found $enabled = true; break; } // found } // verify each field if (!$enabled) return array ('caption' => $document->textMerge ('-')); $address = $data['local']['address']; $buffer = ''; $lines = array (); $line = array (); if (isset ($address['street'][0])) $line[] = $address['street']; if (isset ($address['number'][0])) $line[] = $address['number']; if (isset ($address['complement'][0])) $line[] = $address['complement']; if ($line) $lines[] = implode (', ', $line); if (isset ($address['district'][0])) $lines[] = $address['district']; $line = array (); if (isset ($address['city'][0])) $line[] = $address['city']; if (isset ($address['state'][0])) $line[] = $address['state']; if ($line) $lines[] = implode (' - ', $line); if (isset ($address['postal_code'][0])) $lines[] = $address['postal_code']; if (isset ($address['country'][0])) $lines[] = $address['country']; $buffer = implode ('
      ', $lines); return array ('caption' => $document->textMerge ($buffer)); } // function column } // class eclFilter_personaliteFields_address //!eof:library/personaliteFields/address/eclFilter_personaliteFields_address.php; //!file:library/personaliteFields/checkbox/eclFilter_personaliteFields_checkbox.php; class eclFilter_personaliteFields_checkbox { // class eclFilter_personaliteFields_checkbox static function create ($fieldName, $control, $formulary) { // function create $name = $control['flags']['field_name']; $local = $control; // type if (isset ($control['flags']['type'])) $control['type'] = $control['flags']['type']; else $control['type'] = 'checkbox'; $local['name'] = $fieldName; if (isset ($formulary->data['local'][$name]['value']) and $formulary->data['local'][$name]['value']) $local['value'] = 1; $formulary->appendChild ($local); } // function create static function save ($fieldName, $control, $formulary) { // function save $name = $control['flags']['field_name']; if (isset ($formulary->received[$fieldName])) $formulary->data['local'][$name]['value'] = 1; else $formulary->data['local'][$name]['value'] = 0; } // function save static function view ($fieldName, $control, $formulary) { // function view global $store; $name = $control['flags']['field_name']; $control['type'] = 'view'; if (isset ($formulary->data['local'][$name]['value']) and $formulary->data['local'][$name]['value']) $caption = $store->control->read ('personaliteFields_checkbox_valueYes'); else $caption = $store->control->read ('personaliteFields_checkbox_valueNo'); $control['content'] = $caption['text']['caption']; $formulary->appendChild ($control); } // function view static function column ($data, $name, $field, $url, $document) { // function column if (isset ($data['local'][$name]['value']) and $data['local'][$name]['value']) $caption = $store->control->read ('personaliteFields_checkbox_valueYes'); else $caption = $store->control->read ('personaliteFields_checkbox_valueNo'); return $caption['text']; } // function column } // class eclFilter_personaliteFields_checkbox //!eof:library/personaliteFields/checkbox/eclFilter_personaliteFields_checkbox.php; //!file:library/personaliteFields/created/eclFilter_personaliteFields_created.php; class eclFilter_personaliteFields_created { // class eclFilter_personaliteFields_created static function create ($fieldName, $control, $formulary) { // function create } // function create static function save ($fieldName, $control, $formulary) { // function save } // function save static function view ($fieldName, $control, $formulary) { // function view global $store; if (!isset ($formulary->data['created'])) return; $control['type'] = 'view'; $caption = $store->control->read ('personaliteFields_created_value'); $control['content'] = $caption['text']['caption']; $control['created'] = $formulary->data['created']; $formulary->appendChild ($control); } // function view static function column ($document, $data, $name, $field, $url) { // function column if ($document->printableLayout) return array ('caption' => $document->textMerge (date ('d-m-Y h:i', $data['created']))); return array ( 'caption' => $document->textMerge (date ('d-m-Y h:i', $data['created'])), 'url' => $url ); } // function column } // class eclFilter_personaliteFields_created //!eof:library/personaliteFields/created/eclFilter_personaliteFields_created.php; //!file:library/personaliteFields/descriptive/eclFilter_personaliteFields_descriptive.php; class eclFilter_personaliteFields_descriptive { // class eclFilter_personaliteFields_descriptive static function create ($fieldName, $control, $formulary) { // function create // type if (isset ($control['flags']['type'])) $control['type'] = $control['flags']['type']; else $control['type'] = 'descriptive'; $formulary->appendChild ($control); } // function create static function save ($fieldName, $control, $formulary) { // function save } // function save static function view ($fieldName, $control, $formulary) { // function view if (!isset ($control['local']['display_when_editing']) or !$control['local']['display_when_editing']) return; $control['type'] = 'descriptive'; $formulary->appendChild ($control); } // function view static function column ($data, $name, $field, $url, $document) { // function column return array (); } // function column } // class eclFilter_personaliteFields_descriptive //!eof:library/personaliteFields/descriptive/eclFilter_personaliteFields_descriptive.php; //!file:library/personaliteFields/eclApp_personaliteFields.php; class eclApp_personaliteFields { // class eclApp_personaliteFields static function is_child ($me, $name) { // function is_child if ($name == '-fields') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names () { // function get_children_names return array ('-fields'); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('personaliteFields_content'); $me->map = array ('personaliteFields_config'); $me->isDomain = true; } // function constructor_helper static function dispatch ($document) { // function dispatch $formulary = $document->createFormulary ('personaliteFields_add'); if ($formulary->command ('cancel')) return $document->dataReplace ('layouts/dialog_cancel'); $document->mod->formulary = $formulary; $document->mod->list = new eclMod_personaliteFields_list ($document); } // function dispatch } // class eclApp_personaliteFields //!eof:library/personaliteFields/eclApp_personaliteFields.php; //!file:library/personaliteFields/eclApp_personaliteFields_config.php; class eclApp_personaliteFields_config { // class eclApp_personaliteFields_config static function is_child ($me, $name) { // function is_child return true; } // function is_child static function get_menu_type () { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names () { // function get_children_names return array (); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('dialogFields_' . $me->name . '_content'); $me->isDomain = true; } // function constructor_helper static function dispatch ($document) { // function dispatch global $store; $name = $document->application->name; $me = $document->application->parent->parent; list ($filter) = explode ('_', $name, 2); if (isset ($me->data['extras']['formulary'][$name])) $data = &$me->data['extras']['formulary'][$name]; elseif ($filter == $name) $data = $store->control->read ('personaliteFields_' . $filter . '_preset'); else $data = array (); $formulary = $document->createFormulary ('personaliteFields_' . $filter . '_edit', $data, 'field'); if ($formulary->command ('cancel')) { // cancel $document->dataReplace ('layouts/dialog_cancel'); return; } // cancel if ($formulary->command ('save') and $formulary->save () and $formulary->data) { // save switch ($filter) { // switch filter case 'address': case 'created': case 'mail': case 'phone': $document->dataReplace ('layouts/dialog_close'); $url = $document->url ($document->pathway); $caption = $document->selectLanguage ($formulary->data['caption']); if (!isset ($me->data['extras']['formulary'])) $me->data['extras']['formulary'] = array (); $me->data['extras']['formulary'][$filter] = $formulary->data; $document->data['script'] = 'window.opener.listManager.update ("' . $name . '", "' . $name . '", "' . $caption[1] . '", "' . $url . '");'; return; } // switch filter if ($filter != $name) { // update $data = $formulary->data; $document->dataReplace ('layouts/dialog_close'); $url = $document->url ($document->pathway); $caption = $document->selectLanguage ($formulary->data['caption']); $document->data['script'] = 'window.opener.listManager.update ("' . $name . '", "' . $name . '", "' . $caption[1] . '", "' . $url . '");'; return; } // update if (!isset ($me->data['extras']['formulary'])) $me->data['extras']['formulary'] = array (); $index = 1; while (isset ($me->data['extras']['formulary'][$name . '_' . $index])) $index++; $me->data['extras']['formulary'][$name . '_' . $index] = $formulary->data; $document->dataReplace ('layouts/dialog_close'); $pathway = $document->application->parent->pathway; $pathway[] = $name . '_' . $index; $url = $document->url ($pathway); $caption = $document->selectLanguage ($formulary->data['caption']); $document->data['script'] = 'window.opener.listManager.append ("' . $name . '_' . $index . '", "' . $caption[1] . '", "' . $url . '");'; return; } // save $document->mod->formulary = $formulary; if ($formulary->errorMsg) $document->mod->humperstilshen->alert ($formulary->errorMsg); $document->dataReplace ('personaliteFields_' . $filter . '_content'); } // function dispatch } // class eclApp_personaliteFields_config //!eof:library/personaliteFields/eclApp_personaliteFields_config.php; //!file:library/personaliteFields/eclFilter_personaliteFields.php; class eclFilter_personaliteFields { // class eclFilter_personaliteFields static function create ($fieldName, $control, $formulary) { // function create global $io, $store; $document = $formulary->document; $me = $document->application; $item = $formulary->appendChild ($control); // name $item->data['name'] = $fieldName; // type if (isset ($control['flags']['type'])) $item->data['type'] = $control['flags']['type']; else $item->data['type'] = 'manager'; // help if (isset ($control['flags']['help']) and !isset ($control['flags']['help_msg'])) $item->data['help_msg'] = 'system_msg_filterDetailsHelp'; // references $pathway = $me->pathway; $pathway[] = '-fields'; $item->data['url_add'] = $document->url ($pathway); $item->data['move-enable'] = 1; $item->data['remove-enable'] = 1; $item->data['edit-enable'] = 1; if (!isset ($formulary->data['extras']['formulary'])) return; $buffer = ''; foreach ($formulary->data['extras']['formulary'] as $name => $field) { // each field $pathway = $me->pathway; $pathway[] = '-fields'; $pathway[] = $name; $local = array ( 'value' => $name, 'caption' => $field['caption'], 'url' => $document->url ($pathway) ); $item->appendChild ($local); } // each field $item->data['serialized'] = $buffer; } // function create static function save ($fieldName, $control, $formulary) { // function save if (!isset ($formulary->data['extras']['formulary'])) $formulary->data['extras']['formulary'] = array (); $original = $formulary->data['extras']['formulary']; unset ($formulary->data['extras']['formulary']); $fields = array (); if (!isset ($formulary->received[$fieldName . '_serialized'])) return $formulary->setRequiredMsg ($fieldName, $control); $index = 0; $serialized = $formulary->received[$fieldName . '_serialized']; foreach (explode (LF, $serialized) as $name) { // each line $name = trim ($name); if (isset ($original[$name])) { // exists $fields[$name] = $original[$name]; $fields[$name]['index'] = $index; $index++; } // exists } // each line $formulary->data['extras']['formulary'] = $fields; } // function save } // class eclFilter_personaliteFields //!eof:library/personaliteFields/eclFilter_personaliteFields.php; //!file:library/personaliteFields/eclFilter_personaliteFields_end.php; class eclFilter_personaliteFields_end { // class eclFilter_personaliteFields_end static function create ($fieldName, $control, $formulary) { // function create $local['name'] = $fieldName; $local['type'] = 'end'; $formulary->appendChild ($local); } // function create static function save ($fieldName, $control, $formulary) { // function save } // function save } // class eclFilter_personaliteFields_end //!eof:library/personaliteFields/eclFilter_personaliteFields_end.php; //!file:library/personaliteFields/eclFilter_personaliteFields_end_view.php; class eclFilter_personaliteFields_end_view { // class eclFilter_personaliteFields_end_view static function create ($fieldName, $control, $formulary) { // function create $local['name'] = $fieldName; $local['type'] = 'view_end'; $formulary->appendChild ($local); } // function create static function save ($fieldName, $control, $formulary) { // function save } // function save } // class eclFilter_personaliteFields_end_view //!eof:library/personaliteFields/eclFilter_personaliteFields_end_view.php; //!file:library/personaliteFields/eclFilter_personaliteFields_selectType.php; class eclFilter_personaliteFields_selectType { // class eclFilter_personaliteFields_selectType static function create ($fieldName, $control, $formulary) { // function create global $store; $document = $formulary->document; $me = $document->application; $control['name'] = $fieldName; $control['type'] = 'select'; $item = $formulary->appendChild ('personaliteFields_editType', $control); if (!isset ($control['flags']['search_filter'])) return; $filter = $control['flags']['search_filter']; $value = $formulary->getField ('type'); $userDetails = array (); foreach ($store->domainExtras->children ($me->domainId, MODE_TEMPLATE, 0) as $data) { // each user detail if (substr ($data['name'], 0, 7) != 'fields/') continue; $userDetails[substr ($data['name'], 7)] = $data['id']; } // each user detail foreach ($store->control->scandir ('t', 'fields') as $name) { // each detail if (isset ($userDetails[$name])) { // user detail $data = $store->domainExtras->openById ($me->domainId, $userDetails[$name]); unset ($userDetails[$name]); } // user detail else $data = $store->control->read ('fields/' . $name); if (!$data or !isset ($data['text']['caption'])) continue; if (!isset ($data['local']['filters'])) continue; foreach (explode (LF, $data['local']['filters']) as $line) { // each line if ($filter != trim ($line)) continue; $data['value'] = $name; if ($name == $value) $data['active'] = 1; $item->appendChild ($data); break; } // each line } // each detail foreach ($userDetails as $name => $id) { // each user detail $data = $store->domainExtras->openById ($me->domainId, $id); $data['value'] = $name; if (!isset ($data['local']['filters'])) continue; foreach (explode (LF, $data['local']['filters']) as $line) { // each line if ($filter != trim ($line)) continue; $data['name'] = $name; if ($name == $value) $data['active'] = 1; $item->appendChild ($data); break; } // each line } // each user detail } // function create static function save ($fieldName, $control, $formulary) { // function save if (isset ($formulary->received[$fieldName])) $formulary->data['type'] = $formulary->received[$fieldName]; } // function save } // class eclFilter_personaliteFields_selectType //!eof:library/personaliteFields/eclFilter_personaliteFields_selectType.php; //!file:library/personaliteFields/eclFilter_personaliteFields_start.php; class eclFilter_personaliteFields_start { // class eclFilter_personaliteFields_start static function create ($fieldName, $control, $formulary) { // function create $local['type'] = 'start'; $local['url'] = $formulary->document->url (true, true, $formulary->action); $local['prefix'] = $formulary->prefix; $local['time'] = TIME; $local['password'] = md5 (TIME . $formulary->prefix . ADMIN_PASSWORD . session_id ()); $formulary->appendChild ($local); } // function create static function save ($fieldName, $control, $formulary) { // function save if ($formulary->document->user->userId) return; // Hanney pot if (isset ($formulary->received[$formulary->prefix . '_command_mail']) and strlen ($formulary->received[$formulary->prefix . '_command_mail'])) return $formulary->setErrorMsg (false, array (), 'systemFormulary_alertRobotsPrevent'); if (!isset ($formulary->received[$formulary->prefix . '_command_time'])) return $formulary->setErrorMsg (false, array (), 'systemFormulary_alertRobotsPrevent'); $time = intval ($formulary->received[$formulary->prefix . '_command_time']); // Time left up to 60 minutes if ($time + SYSTEM_SESSION_TTL + 60 < TIME) return $formulary->setErrorMsg (false, array (), 'systemFormulary_alertRobotsPrevent'); // time left less than 5 seconds if ($time + 5 > TIME) return $formulary->setErrorMsg (false, array (), 'systemFormulary_alertRobotsPrevent'); // Probably javascript disabled if (!isset ($formulary->received[$formulary->prefix . '_command_password'])) return $formulary->setErrorMsg (false, array (), 'systemFormulary_alertRobotsPrevent'); $password = $formulary->received[$formulary->prefix . '_command_password']; if ($password != md5 ($time . $formulary->prefix . ADMIN_PASSWORD . session_id ())) return $formulary->setErrorMsg (false, array (), 'systemFormulary_alertRobotsPrevent'); // check IP tracking } // function save } // class eclFilter_personaliteFields_start //!eof:library/personaliteFields/eclFilter_personaliteFields_start.php; //!file:library/personaliteFields/eclFilter_personaliteFields_start_view.php; class eclFilter_personaliteFields_start_view { // class eclFilter_personaliteFields_start_view static function create ($fieldName, $control, $data, $formulary) { // function create $local['type'] = 'view_start'; $formulary->appendChild ($local); } // function create static function save ($fieldName, $control, $data, $formulary) { // function save } // function save } // class eclFilter_personaliteFields_start_view //!eof:library/personaliteFields/eclFilter_personaliteFields_start_view.php; //!file:library/personaliteFields/eclMod_personaliteFields_list.php; class eclMod_personaliteFields_list { // class eclMod_personaliteFields_list public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; $me = $document->application; $mod->data = $store->control->read ('modules/list'); $row = $mod->appendChild (); $list = array ( 'text', 'textarea', 'checkbox', 'select', 'radio', 'separator', 'descriptive', 'mail', 'address', 'created', 'status' ); foreach ($list as $type) { // each type $pathway = $me->pathway; $pathway[] = $type; $row->appendChild ('personaliteFields_' . $type . '_content') ->url ($pathway, true, '_add'); } // each type $mod->enabled = true; } // function setModule } // class eclMod_personaliteFields_list //!eof:library/personaliteFields/eclMod_personaliteFields_list.php; //!file:library/personaliteFields/mail/eclFilter_personaliteFields_mail.php; class eclFilter_personaliteFields_mail { // class eclFilter_personaliteFields_mail static function create ($fieldName, $control, $formulary) { // function create $document = $formulary->document; // type if (isset ($control['flags']['type'])) $control['type'] = $control['flags']['type']; else $control['type'] = 'text'; $control['name'] = $fieldName; if (isset ($formulary->data['local']['mail'])) $control['value'] = $formulary->htmlSpecialChars ($formulary->data['local']['mail']); elseif (isset ($control['local']['share_user_data']) and isset ($formulary->document->user->data['local']['mail']) and isset ($formulary->data['share_user_data'])) $control['value'] = $formulary->document->user->data['local']['mail']; $formulary->appendChild ($control); } // function create static function save ($fieldName, $control, $formulary) { // function save if (!isset ($formulary->received[$fieldName][0])) { // empty if (isset ($control['local']['required']) and $control['local']['required']) return $formulary->setRequiredMsg ($control, $fieldName); unset ($formulary->data['local']['mail']); return; } // empty $formulary->data['local']['mail'] = $formulary->received[$fieldName]; if (preg_match ('/^[a-zA-Z0-9._-]+[@][a-zA-Z0-9_-]+[.][a-zA-Z0-9._-]+[;].+/', $formulary->received[$fieldName])) $formulary->setErrorMsg ($control, $fieldName, 'personaliteFields_mail_alertMultipleNotAllowed'); if (!preg_match ('/^[a-zA-Z0-9._-]+[@][a-zA-Z0-9_-]+[.][a-zA-Z0-9._-]+$/', $formulary->received[$fieldName])) $formulary->setErrorMsg ($control, $fieldName, 'personaliteFields_mail_alertInvalidMail', $formulary->received[$fieldName]); } // function save static function view ($fieldName, $control, $formulary) { // function view $document = $formulary->document; if (!isset ($formulary->data['local']['mail'])) return; $control['type'] = 'view'; $mail = $formulary->data['local']['mail']; $mail = '' . $mail . ''; $content = ''; $control['content'] = $document->textMerge ($content); $formulary->appendChild ($control); } // function view static function column ($document, $data, $name, $field) { // function column if (!isset ($data['local']['mail'])) return array ('caption' => $document->textMerge ('-')); $mail = $data['local']['mail']; $mail = '' . $mail . ''; $content = ''; return array ('caption' => $document->textMerge ($content)); } // function column } // class eclFilter_personaliteFields_mail //!eof:library/personaliteFields/mail/eclFilter_personaliteFields_mail.php; //!file:library/personaliteFields/phone/eclFilter_personaliteFields_phone.php; class eclFilter_personaliteFields_phone { // class eclFilter_personaliteFields_phone static function create ($fieldName, $control, $formulary) { // function create $document = $formulary->document; $control['name'] = $fieldName; // type if (isset ($control['flags']['type'])) $control['type'] = $control['flags']['type']; else $control['type'] = 'phone'; $list = array ('country', 'area', 'number'); if (!isset ($formulary->data['phone']) and isset ($control['local']['share_user_data']) and isset ($formulary->data['share_user_data'])) { // use user phone foreach ($list as $item) { // each item if (!isset ($document->user->data['local']['phone'][$item])) continue; $value = $document->user->data['local']['phone'][$item]; if ($document->charset != 'UTF-8') $value = mb_convert_encoding ($value, $formulary->document->charset, 'UTF-8'); $control['phone_' . $item] = $formulary->htmlSpecialChars ($value); } // each item } // use user phone else { // from formulary foreach ($list as $item) { // each item $value = $formulary->getField ('local/phone/' . $item); if ($value === false) continue; $control['phone_' . $item] = $value; } // each item } // from formulary $formulary->appendChild ($control); } // function create static function save ($fieldName, $control, $formulary) { // function save unset ($formulary->data['local']['phone']); if (isset ($formulary->received[$fieldName . '_country'][0])) { // filter received country $value = $formulary->received[$fieldName . '_country']; if (!preg_match ('/^[+]?[0-9]+$/', $value)) $formulary->setErrorMsg ($control, $fieldName, 'personaliteFields_phone_alertInvalidCountryCode', $value); $formulary->setField ('local/phone/country', $value); } // received country if (isset ($formulary->received[$fieldName . '_area'][0])) { // filter received area $value = $formulary->received[$fieldName . '_area']; if (!preg_match ('/^[0-9]+$/', $value)) $formulary->setErrorMsg ($control, $fieldName, 'personaliteFields_phone_alertInvalidAreaCode', $value); $formulary->setField ('local/phone/area', $value); } // received area if (isset ($formulary->received[$fieldName . '_number'][0])) { // filter received number $value = $formulary->received[$fieldName . '_number']; if (!preg_match ('/^[0-9]+$/', $value)) $formulary->setErrorMsg ($control, $fieldName, 'personaliteFields_phone_alertInvalidNumber', $value); $formulary->setField ('local/phone/number', $value); } // received number } // function save static function view ($fieldName, $control, $formulary) { // function view $document = $formulary->document; // type $control['type'] = 'view'; if (!isset ($formulary->data['local']['phone'])) return; if (isset ($formulary->data['local']['phone']['country'])) $tel[] = $formulary->data['local']['phone']['country']; if (isset ($formulary->data['local']['phone']['area'])) $tel[] = $formulary->data['local']['phone']['area']; if (isset ($formulary->data['local']['phone']['number'])) $tel[] = $formulary->data['local']['phone']['number']; $control['content'] = $document->textMerge (implode (' ', $tel)); $control['url'] = 'tel:' . implode ('-', $tel); $formulary->appendChild ($control); } // function view static function column ($document, $data, $name, $field, $url) { // function column if (!isset ($formulary->data['local']['phone'])) return array ('caption' => $document->textMerge ('-')); if (isset ($formulary->data['local']['phone']['country'])) $tel[] = $formulary->data['local']['phone']['country']; if (isset ($formulary->data['local']['phone']['area'])) $tel[] = $formulary->data['local']['phone']['area']; if (isset ($formulary->data['local']['phone']['number'])) $tel[] = $formulary->data['local']['phone']['number']; return array ( 'caption' => $document->textMerge (implode (' ', $tel)), 'url' => 'tel:' . implode ('-', $tel) ); } // function column } // class eclFilter_personaliteFields_phone //!eof:library/personaliteFields/phone/eclFilter_personaliteFields_phone.php; //!file:library/personaliteFields/phone/eclFilter_personaliteFields_phone_view.php; class eclFilter_personaliteFields_phone_view { // class eclFilter_personaliteFields_phone_view static function create ($fieldName, $control, $formulary) { // function create $document = $formulary->document; $control['name'] = $fieldName; // type $control['type'] = 'view'; if (!isset ($formulary->data['local']['phone'])) return; if (isset ($formulary->data['local']['phone']['country'])) $tel[] = $formulary->data['local']['phone']['country']; if (isset ($formulary->data['local']['phone']['area'])) $tel[] = $formulary->data['local']['phone']['area']; if (isset ($formulary->data['local']['phone']['number'])) $tel[] = $formulary->data['local']['phone']['number']; $control['content'] = $document->textMerge (implode (' ', $tel)); $control['url'] = 'tel:' . implode ('-', $tel); $formulary->appendChild ($control); } // function create static function save ($fieldName, $control, $formulary) { // function save } // function save static function column ($data, $name, $field, $url, $document) { // function column return array (); } // function column } // class eclFilter_personaliteFields_phone_view //!eof:library/personaliteFields/phone/eclFilter_personaliteFields_phone_view.php; //!file:library/personaliteFields/radio/eclFilter_personaliteFields_radio.php; class eclFilter_personaliteFields_radio extends eclFilter_personaliteFields_select { // class eclFilter_personaliteFields_radio } // class eclFilter_personaliteFields_radio //!eof:library/personaliteFields/radio/eclFilter_personaliteFields_radio.php; //!file:library/personaliteFields/select/eclFilter_personaliteFields_select.php; class eclFilter_personaliteFields_select { // class eclFilter_personaliteFields_select static function create ($fieldName, $control, $formulary) { // function create $name = $control['flags']['field_name']; // type if (isset ($control['flags']['type'])) $control['type'] = $control['flags']['type']; else $control['type'] = 'select'; $control['name'] = $fieldName; if (isset ($formulary->data['local'][$name]['value'])) $value = $formulary->data['local'][$name]['value']; else $value = false; $select = $formulary->appendChild ($control); if (isset ($control['local']['options'])) { // options exists foreach ($control['local']['options'] as $index => $caption) { // each option $data = array ( 'name' => $fieldName, 'value' => strval ($index), 'caption' => $caption ); if ($index == $value) $data['active'] = 1; $select->appendChild ($data); } // each option } // options exists } // function create static function save ($fieldName, $control, $formulary) { // function save $name = $control['flags']['field_name']; if (isset ($formulary->received[$fieldName])) $formulary->data['local'][$name]['value'] = $formulary->received[$fieldName]; } // function save static function view ($fieldName, $control, $formulary) { // function view $name = $control['flags']['field_name']; $control['type'] = 'view'; if (isset ($formulary->data['local'][$name]['value'])) $value = $formulary->data['local'][$name]['value']; else $value = false; if (isset ($control['local']['options'])) { // options exists foreach ($control['local']['options'] as $index => $caption) { // each option if ($index != $value) continue; $control['content'] = $caption; $formulary->appendChild ($control); break; } // each option } // values exists } // function view static function column ($document, $data, $name, $field, $url) { // function column if (isset ($data['local'][$name])) $value = $data['local'][$name]['value']; else $value = false; if (isset ($field['options'])) { // options exists foreach ($field['options'] as $index => $caption) { // each option if ($index != $value) continue; return array ('caption' => $caption); } // each option } // values exists return array ('caption' => $document->textMerge ('-')); } // function column } // class eclFilter_personaliteFields_select //!eof:library/personaliteFields/select/eclFilter_personaliteFields_select.php; //!file:library/personaliteFields/select/eclFilter_personaliteFields_select_editFields.php; class eclFilter_personaliteFields_select_editFields { // class eclFilter_personaliteFields_select_editFields static function create ($fieldName, $control, $formulary) { // function create static $s = array ('&', '<', '"'); static $r = array ('&', '<', '"'); static $cs = array ('UTF-8', 'ISO-8859-1'); $document = $formulary->document; $lang = $document->lang; $charset = $document->charset; for ($index = 1; $index <= 30; $index++) { // each field $local = array ( 'caption' => $document->textMerge ('#' . $index), 'name' => $fieldName . $index, 'type' => 'text_small' ); $item = $formulary->appendChild ($local); if (!isset ($formulary->data['options'][$index])) continue; $text = $formulary->data['options'][$index]; if (isset ($text[$lang])) $found = $text[$lang]; else $found = current ($text); if (!isset ($found[TEXT_CONTENT])) continue; if (!isset ($found[TEXT_CHARSET])) $found[TEXT_CHARSET] = 0; if ($charset != $cs[$found[TEXT_CHARSET]]) $value = mb_convert_encoding ($found[TEXT_CONTENT], $charset, $cs[$found[TEXT_CHARSET]]); else $value = $found[TEXT_CONTENT]; $item->data['value'] = str_replace ($s, $r, $value); } // each field } // function create static function save ($fieldName, $control, $formulary) { // function save $document = $formulary->document; $received = $formulary->received; $formulary->data['options'] = array (); for ($index = 0; $index <= 30; $index++) { // each option if (!isset ($received[$fieldName . $index]) or !strlen ($received[$fieldName . $index])) continue; $formulary->data['options'][$index] = array ($document->lang => array (TEXT_CONTENT => $received[$fieldName . $index])); if ($document->charset == 'ISO-8859-1') $formulary->data['options'][$index][$document->lang][TEXT_CHARSET] = 1; } // each option } // function save static function view ($fieldName, $control, $formulary) { // function view $name = $control['flags']['field_name']; $control['type'] = 'view'; if (isset ($formulary->data[$name]['value'])) $value = $formulary->data[$name]['value']; else $value = false; if (isset ($control['local']['options'])) { // options exists foreach ($control['local']['options'] as $name => $caption) { // each option if ($name != $value) continue; $control['content'] = $caption; break; } // each option } // values exists $formulary->appendChild ($control); } // function view static function column ($document, $data, $name, $field, $url) { // function column if (isset ($data['local'][$name]['value'])) $value = $data['local'][$name]['value']; else $value = false; if (isset ($field['options'])) { // options exists foreach ($field['options'] as $name => $caption) { // each option if ($name != $value) continue; return array ('caption' => $caption); } // each option } // values exists return array ('caption' => $document->textMerge ('-')); } // function column } // class eclFilter_personaliteFields_select_editFields //!eof:library/personaliteFields/select/eclFilter_personaliteFields_select_editFields.php; //!file:library/personaliteFields/separator/eclFilter_personaliteFields_separator.php; class eclFilter_personaliteFields_separator { // class eclFilter_personaliteFields_separator static function create ($fieldName, $control, $formulary) { // function create // type if (isset ($control['flags']['type'])) $control['type'] = $control['flags']['type']; else $local['type'] = 'separator'; $formulary->appendChild ($local); } // function create static function save ($fieldName, $control, $formulary) { // function save } // function save static function view ($fieldName, $control, $formulary) { // function view $local['type'] = 'separator'; $formulary->appendChild ($local); } // function view static function column ($document, $data, $name, $field, $url) { // function column return false; } // function column } // class eclFilter_personaliteFields_separator //!eof:library/personaliteFields/separator/eclFilter_personaliteFields_separator.php; //!file:library/personaliteFields/separator/eclFilter_personaliteFields_separator_view.php; class eclFilter_personaliteFields_separator_view { // class eclFilter_personaliteFields_separator_view static function create ($fieldName, $control, $formulary) { // function create $local['type'] = 'separator'; $formulary->appendChild ($local); } // function create static function save ($fieldName, $control, $formulary) { // function save } // function save static function column ($data, $name, $field, $url, $document) { // function column return array (); } // function column } // class eclFilter_personaliteFields_separator_view //!eof:library/personaliteFields/separator/eclFilter_personaliteFields_separator_view.php; //!file:library/personaliteFields/status/eclFilter_personaliteFields_status.php; class eclFilter_personaliteFields_status { // class eclFilter_personaliteFields_status static function create ($fieldName, $control, $formulary) { // function create } // function create static function save ($fieldName, $control, $formulary) { // function save } // function save static function view ($fieldName, $control, $formulary) { // function view global $store; if (!isset ($formulary->data['status']) or !$formulary->data['status']) return; $control['type'] = 'view'; $caption = $store->control->read ('labels/status/' . $formulary->data['status']); if (!$caption) return; $control['content'] = $caption['text']['caption']; $formulary->appendChild ($control); } // function view static function column ($document, $data, $name, $field, $url) { // function column global $store; if (!isset ($data['status']) or !$data['status']) return array ('caption' => $document->textMerge (' ')); $caption = $store->control->read ('labels/status/' . $data['status']); if (!isset ($caption['text']['caption'])) return array ('caption' => $document->textMerge (' ')); return $caption; } // function column } // class eclFilter_personaliteFields_status //!eof:library/personaliteFields/status/eclFilter_personaliteFields_status.php; //!file:library/personaliteFields/text/eclFilter_personaliteFields_text.php; class eclFilter_personaliteFields_text { // class eclFilter_personaliteFields_text static function create ($fieldName, $control, $formulary) { // function create static $s = array ('&', '<', '"'); static $r = array ('&', '<', '"'); static $cs = array ('UTF-8', 'ISO-8859-1'); $document = $formulary->document; $lang = $document->lang; $charset = $document->charset; $name = $control['flags']['field_name']; // type if (isset ($control['flags']['type'])) $control['type'] = $control['flags']['type']; else $control['type'] = 'text'; $control['name'] = $fieldName; $item = $formulary->appendChild ($control); if (!isset ($formulary->data['text'][$name])) return; $text = $formulary->data['text'][$name]; if (isset ($text[$lang])) $found = $text[$lang]; else $found = current ($text); if (!isset ($found[TEXT_CONTENT])) return; if (!isset ($found[TEXT_CHARSET])) $found[TEXT_CHARSET] = 0; if ($charset != $cs[$found[TEXT_CHARSET]]) $value = mb_convert_encoding ($found[TEXT_CONTENT], $charset, $cs[$found[TEXT_CHARSET]]); else $value = $found[TEXT_CONTENT]; $item->data['value'] = str_replace ($s, $r, $value); } // function create static function save ($fieldName, $control, $formulary) { // function save if (!isset ($formulary->received[$fieldName][0])) { // empty if (isset ($control['local']['required']) and $control['local']['required']) $formulary->setRequiredMsg ($control, $fieldName); return; } // empty $name = $control['flags']['field_name']; $formulary->data['text'][$name] = array ($formulary->document->lang => array (TEXT_CONTENT => $formulary->received[$fieldName])); if ($formulary->document->charset == 'ISO-8859-1') $formulary->data['text'][$name][$formulary->document->lang][TEXT_CHARSET] = 1; } // function save static function view ($fieldName, $control, $formulary) { // function view $name = $control['flags']['field_name']; $control['type'] = 'view'; if (isset ($formulary->data['text'][$name])) $control['content'] = $formulary->data['text'][$name]; $formulary->appendChild ($control); } // function view static function column ($document, $data, $name, $field, $url) { // function column if (isset ($data['text'][$name])) return array ('caption' => $data['text'][$name]); return array ('caption' => $document->textMerge ('-')); } // function column } // class eclFilter_personaliteFields_text //!eof:library/personaliteFields/text/eclFilter_personaliteFields_text.php; //!file:library/personaliteFields/textarea/eclFilter_personaliteFields_textarea.php; class eclFilter_personaliteFields_textarea { // class eclFilter_personaliteFields_textarea static function create ($fieldName, $control, $formulary) { // function create static $s = array ('&', '<', '"'); static $r = array ('&', '<', '"'); static $cs = array ('UTF-8', 'ISO-8859-1'); $document = $formulary->document; $lang = $document->lang; $charset = $document->charset; $name = $control['flags']['field_name']; // type if (isset ($control['flags']['type'])) $control['type'] = $control['flags']['type']; else $control['type'] = 'textarea'; $control['name'] = $fieldName; $item = $formulary->appendChild ($control); if (!isset ($formulary->data['text'][$name])) return; $text = $formulary->data['text'][$name]; if (isset ($text[$lang])) $found = $text[$lang]; else $found = current ($text); if (!isset ($found[TEXT_CONTENT])) return; if (!isset ($found[TEXT_CHARSET])) $found[TEXT_CHARSET] = 0; if ($charset != $cs[$found[TEXT_CHARSET]]) $value = mb_convert_encoding ($found[TEXT_CONTENT], $charset, $cs[$found[TEXT_CHARSET]]); else $value = $found[TEXT_CONTENT]; $item->data['value'] = str_replace ($s, $r, $value); } // function create static function save ($fieldName, $control, $formulary) { // function save if (!isset ($formulary->received[$fieldName][0])) { // empty if (isset ($control['local']['required']) and $control['local']['required']) $formulary->setRequiredMsg ($control, $fieldName); return; } // empty $name = $control['flags']['field_name']; $formulary->data['text'][$name] = array ($formulary->document->lang => array ( TEXT_CONTENT => $formulary->received[$fieldName], TEXT_FORMAT => 2 )); if ($formulary->document->charset == 'ISO-8859-1') $formulary->data['text'][$name][$formulary->document->lang][TEXT_CHARSET] = 1; } // function save static function view ($fieldName, $control, $formulary) { // function view $name = $control['flags']['field_name']; $control['type'] = 'view'; if (isset ($formulary->data['text'][$name])) $control['content'] = $formulary->data['text'][$name]; $formulary->appendChild ($control); } // function view static function column () { // function column return false; } // function column } // class eclFilter_personaliteFields_textarea //!eof:library/personaliteFields/textarea/eclFilter_personaliteFields_textarea.php; //!file:library/personaliteInstall/eclApp_personaliteInstall.php; class eclApp_personaliteInstall { // class eclApp_personaliteInstall static function is_child ($me, $name) { // function is_child if ($name == 'install') return true; return false; } // function is_child static function get_menu_type ($me) { // function get_menu_type return 'section'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names return array ('install'); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('personaliteInstall_content'); $me->isDomain = true; } // function constructor_helper static function dispatch ($document) { // function dispatch global $io; if ($io->request->uploaded) self::action_install ($document); if (is_file (PATH_DOMAINS . $document->domain->name . '/-install.zip')) return self::action_select_components ($document); $formulary = $document->createFormulary ('personaliteInstall_edit', array (), 'install'); if ($formulary->command ('cancel')) return $document->dataReplace ('layouts/dialog_cancel'); $document->mod->formulary = $formulary; } // function dispatch static function action_install ($document) { // function action_install global $io, $store; $me = $document->application; foreach ($io->request->uploaded as $name => $files) { // each entry foreach ($files as $file) { // each file if ($file['size'] > 100000000 or $file['size'] < 3) continue; @list ($name, $ext) = explode ('.', $file['name']); if ($ext == 'zip') { // move install file $folder = PATH_DOMAINS . $document->domain->name . '/-install.zip'; move_uploaded_file ($file['tmp_name'], $folder); return; } // move install file } // each file } // each entry $filename = PATH_DOMAINS . $document->domain->name . '/-install.zip'; $zip = new ZipArchive (); if ($zip->open ($filename, ZIPARCHIVE::CREATE) !== TRUE) return; foreach ($io->request->uploaded as $name => $files) { // each entry foreach ($files as $file) { // each file if ($file['size'] > 100000000 or $file['size'] < 3) continue; $zip->addFile ($file['tmp_name'], '/' . $file['name']); } // each file } // each entry $zip->close (); } // function action_install static function action_select_components ($document) { // function action_select_components $formulary = $document->createFormulary ('personaliteInstall_select', array (), 'select'); if ($formulary->command ('cancel')) return $document->dataReplace ('layouts/dialog_cancel'); if ($formulary->command ('save') and $formulary->save ()) { // save if (isset ($formulary->data['saved'])) { // saved $fileName = PATH_DOMAINS . $document->domain->name . '/-install.zip'; if (is_file ($fileName)) unlink ($fileName); $document->dataReplace ('layouts/dialog_close'); return; } // saved } // save $document->mod->formulary = $formulary; } // function action_select_components } // class eclApp_personaliteInstall //!eof:library/personaliteInstall/eclApp_personaliteInstall.php; //!file:library/personaliteInstall/eclFilter_personaliteInstall_selectComponents.php; class eclFilter_personaliteInstall_selectComponents { // class eclFilter_personaliteInstall_selectComponents static function create ($fieldName, $control, $formulary) { // function create global $store; $document = $formulary->document; $me = $document->application; $templates = array (); $sections = array (); $all = array (); $filename = PATH_DOMAINS . $document->domain->name . '/-install.zip'; $zip = zip_open ($filename); if (!$zip) return; while ($zip_entry = zip_read ($zip)) { // each file $name = zip_entry_name ($zip_entry); if (substr ($name, - 5) != '.json') { // cancel zip_entry_close ($zip_entry); continue; } // cancel $buffer = zip_entry_read ($zip_entry, zip_entry_filesize ($zip_entry)); $data = eclIo_webservice::json2array ($buffer); if (!isset ($data['name'])) { // cancel zip_entry_close ($zip_entry); continue; } // cancel $all[$data['name']] = $data; if (strpos ($data['name'], '/') === false) { // section if ($store->domainContent->open ($me->domainId, $data['name'])) $sections[$data['name']] = 0; elseif (isset ($data['marker']) and $store->domainContent->findMarker ($me->domainId, $data['marker'])) $sections[$data['name']] = 0; else $sections[$data['name']] = 1; } // section else $templates[$data['name']] = 1; zip_entry_close ($zip_entry); } // each entry zip_close ($zip); if ($templates) { // create components checkboxes foreach ($templates as $name => $value) { // loop each component $data = $all[$name]; $local = array ( 'type' => 'checkbox', 'name' => $fieldName . '_' . md5 ($data['name']), 'value' => $value, 'caption' => $document->textMerge ($data['name'] . ' ', $data['text']['caption']) ); $formulary->appendChild ($local); } // loop each component } // create components checkboxes $formulary->appendChild (array ('type' => 'separator')); if ($sections) { // create sections checkboxes foreach ($sections as $name => $value) { // loop each section $data = $all[$name]; $local = array ( 'type' => 'checkbox', 'name' => $fieldName . '_' . md5 ($data['name']), 'value' => $value, 'caption' => $data['text']['caption'] ); $formulary->appendChild ($local); } // loop each section } // create section checkboxes } // function create static function save ($fieldName, $control, $formulary) { // function save global $store; $document = $formulary->document; $me = $formulary->document->application; $received = $formulary->received; $names = array (); $saved = array (); $filename = PATH_DOMAINS . $document->domain->name . '/-install.zip'; $zip = zip_open ($filename); if (!$zip) return; while ($zip_entry = zip_read ($zip)) { // each file $name = zip_entry_name ($zip_entry); if (substr ($name, - 5) == '.json') { // read json file $buffer = zip_entry_read ($zip_entry, zip_entry_filesize ($zip_entry)); $data = eclIo_webservice::json2array ($buffer); if (isset ($data['name']) and isset ($received[$fieldName . '_' . md5 ($data['name'])][0])) { // save file $names[$data['name']] = true; $saved[] = $data['name']; if (strpos ($data['name'], '/')) { // save template component $component = &$store->domainExtras->openChild ($me->domainId, MODE_TEMPLATE, 0, $name); if ($component) { // components exists $component = array_replace ($component, $data); unset ($component); } // components exists else { // create component $data['mode'] = MODE_TEMPLATE; $store->domainExtras->insert ($me->domainId, $data); } // create component } // save template component else { // save section if (isset ($data['marker']) and $id = $store->domainContent->findMarker ($me->domainId, $data['marker'])) { // marker found $section = $me->findChild ($id); if ($section) $section->remove (); } // marker found if ($sectionData = $store->domainContent->open ($me->domainId, $data['name'])) { // same name $section = $me->findChild ($sectionData['id']); $section->remove (); } // same name $data['mode'] = MODE_SECTION; $store->domainContent->insert ($me->domainId, $data); } // save section } // save file } // read json file zip_entry_close ($zip_entry); } // each entry zip_close ($zip); // second turn to save extra files $zip = zip_open ($filename); while ($zip_entry = zip_read ($zip)) { // each file $name = zip_entry_name ($zip_entry); list ($prefix) = explode ('.', $name); list ($prefix) = explode (CHR_FNS, $prefix); if (isset ($names[$prefix])) { // save extras file $saved[] = $name; $buffer = zip_entry_read ($zip_entry, zip_entry_filesize ($zip_entry)); file_put_contents (PATH_DOMAINS . $document->domain->name . '/' . $name, $buffer); } // save extras file zip_entry_close ($zip_entry); } // each entry zip_close ($zip); $formulary->data['saved'] = implode (CRLF, $saved); } // function save } // class eclFilter_personaliteInstall_selectComponents //!eof:library/personaliteInstall/eclFilter_personaliteInstall_selectComponents.php; //!file:library/personaliteModules/eclApp_personaliteModules.php; class eclApp_personaliteModules { // class eclApp_personaliteModules static function is_child ($me, $name) { // function is_child if ($name == 'modules') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names () { // function get_children_names return array ('modules'); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('personaliteModules_edit'); $me->access = 4; $me->isDomain = true; $me->ignoreSubfolders = true; } // function constructor_helper static function dispatch ($document) { // function dispatch global $store; $me = $document->application; $me->pathway = $document->pathway; $name = end ($document->pathway); list ($prefix) = explode ('_', $name); $controlName = 'mod' . ucfirst ($prefix) . '_edit'; $control = $store->control->read ($controlName); if ($control) { // set modules title if (!isset ($control['text']['title']) and isset ($control['text']['caption'])) $control['text']['title'] = $control['text']['caption']; $me->data['text']['title'] = $control['text']['title']; } // set modules title else { // no configurable $document->dataMerge ('personaliteModules_contentNotConfigurable'); $formulary = $document->createFormulary ('personaliteModules_contentNotConfigurable', array (), 'not_configurable'); if ($formulary->command ('cancel')) return $document->dataReplace ('layouts/dialog_cancel'); $document->mod->formulary = $formulary; return; } // no configurable $saved = &$store->domainExtras->openChild ($me->domainId, MODE_TEMPLATE, 0, 'modules/' . $name); if ($saved) $data = $saved; elseif ($store->control->read ('modules/' . $name)) $data = $store->control->read ('modules/' . $name); else $data = $store->control->read ('modules/' . $prefix); // Restore default configurations if (isset ($document->received['save']) and $document->received['save'] == 'restore') { // restore default configurations if ($saved) $store->domainExtras->delete ($me->domainId, $saved['id']); return $document->dataReplace ('layouts/dialog_close'); } // restore default configurations $formulary = $document->createFormulary ($controlName, $data); if ($formulary->save ()) { // save formulary if ($saved) $saved = $formulary->data; else { // create saved modules $data = $formulary->data; $data['mode'] = MODE_TEMPLATE; $data['name'] = 'modules/' . $name; $store->domainExtras->insert ($me->domainId, $data); } // create saved modules $document->dataReplace ('layouts/dialog_close'); return; } // save formulary $document->mod->formulary = $formulary; if ($formulary->errorMsg) $document->mod->humperstilshen->alert ($formulary->errorMsg); } // function dispatch } // class eclApp_personaliteModules //!eof:library/personaliteModules/eclApp_personaliteModules.php; //!file:library/personaliteTemplate/add/eclApp_personaliteTemplate_add.php; class eclApp_personaliteTemplate_add { // class eclApp_personaliteTemplate_add static function is_child ($me, $name) { // function is_child switch ($name) { // switch name case 'details': case 'fields': case 'fonts': case 'layouts': case 'lists': case 'icons': case 'modules': case 'palettes': case 'scripts': case 'styles': case 'themes': return true; default: return false; } // switch name } // function is_child static function get_menu_type () { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names () { // function get_children_names return array (); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('personaliteTemplate_add_content'); $me->map = array ('personaliteTemplate_configure'); $me->isDomain = true; } // function constructor_helper static function dispatch ($document) { // function dispatch $document->mod->list = new eclMod_personaliteTemplate_add_list ($document); } // function dispatch } // class eclApp_personaliteTemplate_add //!eof:library/personaliteTemplate/add/eclApp_personaliteTemplate_add.php; //!file:library/personaliteTemplate/add/eclMod_personaliteTemplate_add_list.php; class eclMod_personaliteTemplate_add_list { // class eclMod_personaliteTemplate_add_list public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; $me = $document->application; $render = $document->render; $folder = $me->name; foreach ($store->control->scandir ('t', $folder) as $name) { // each detail $data = $store->control->read ($folder . '/' . $name); if (!$data or !isset ($data['text']['caption'])) continue; $data['name'] = $name; $data['text']['caption'] = $document->textMerge ($data['name'], ' ', $data['text']['caption']); $mod->appendChild ($data) ->appendFolder ($name); } // each detail $mod->enabled = true; } // function setModule } // class eclMod_personaliteTemplate_add_list //!eof:library/personaliteTemplate/add/eclMod_personaliteTemplate_add_list.php; //!file:library/personaliteTemplate/configure/eclApp_personaliteTemplate_configure.php; class eclApp_personaliteTemplate_configure { // class eclApp_personaliteTemplate_configure static function is_child ($me, $name) { // function is_child return true; } // function is_child static function get_menu_type () { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names () { // function get_children_names return array (); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('personaliteTemplate_configure_' . $me->parent->name); $me->access = 4; $me->isDomain = true; } // function constructor_helper static function dispatch ($document) { // function dispatch global $store; $me = $document->application; $folder = $me->parent->name; $name = $folder . '/' . $me->name; $saved = &$store->domainExtras->openChild ($me->domainId, MODE_TEMPLATE, 0, $name); if ($saved) $data = $saved; elseif ($store->control->read ($name)) $data = $store->control->read ($name); else $data = array (); // Restore default configurations if (isset ($document->received['save']) and $document->received['save'] == 'restore') { // restore default configurations if ($saved) $store->domainExtras->delete ($me->domainId, $saved['id']); $data = $store->control->read ($name); $document->dataReplace ('layouts/dialog_close'); if ($data) { // update to default $caption = $document->selectLanguage ($data['text']['caption']); $identifier = $me->name; } // update to system default else { // remove $identifier = ''; $caption[1] = ''; } // remove $pathway = $me->parent->pathway; $pathway[] = $me->name; $url = $document->url ($pathway); $document->data['script'] = 'window.opener.listManager.update ("' . $me->name . '", "' . $identifier . '", "' . $caption[1] . '", "' . $url . '");'; return; } // restore default configurations $data['identifier'] = $me->name; $formulary = $document->createFormulary ('personaliteTemplate_configure_' . $me->parent->name, $data); if ($formulary->save ()) { // save formulary $data = $formulary->data; if (!isset ($data['identifier']) or !preg_match ('/^[a-z][a-z0-9_]*$/', $data['identifier'])) $data['identifier'] = $me->name; if ($data['identifier'] == $me->name and $saved) $saved = $formulary->data; else { // create saved modules if ($data['identifier'] != $me->name and $saved = &$store->domainExtras->openChild ($me->domainId, MODE_TEMPLATE, 0, $folder . '/' . $data['identifier'])) { // overwrite existing detail $saved['text'] = $data['text']; $saved['local'] = $data['local']; $saved['html'] = $data['html']; } // overwrite existing detail else { // create new detail $data['mode'] = MODE_TEMPLATE; $data['name'] = $folder . '/' . $data['identifier']; $store->domainExtras->insert ($me->domainId, $data); } // create new detail } // create saved modules $document->dataReplace ('layouts/dialog_close'); $caption = $document->selectLanguage ($data['text']['caption']); $pathway = $me->parent->pathway; $pathway[] = $data['identifier']; $url = $document->url ($pathway); $document->data['script'] = 'window.opener.listManager.update ("' . $me->name . '", "' . $data['identifier'] . '", "' . $caption[1] . '", "' . $url . '");'; return; } // save formulary $document->mod->formulary = $formulary; if ($formulary->errorMsg) $document->mod->humperstilshen->alert ($formulary->errorMsg); } // function dispatch } // class eclApp_personaliteTemplate_configure //!eof:library/personaliteTemplate/configure/eclApp_personaliteTemplate_configure.php; //!file:library/personaliteTemplate/configure/eclFilter_personaliteTemplate_configure_filters.php; class eclFilter_personaliteTemplate_configure_filters { // class eclFilter_personaliteTemplate_configure_filters static function create ($fieldName, $control, $formulary) { // function create global $io, $store; $document = $formulary->document; $item = $formulary->appendChild ($control); // name $item->data['name'] = $fieldName; // type if (isset ($control['flags']['type'])) $item->data['type'] = $control['flags']['type']; else $item->data['type'] = 'manager'; // help if (isset ($control['flags']['help']) and !isset ($control['flags']['help_msg'])) $item->data['help_msg'] = 'system_msg_filterDetailsHelp'; // references $pathway = array ($document->domain->name, '-personalite', 'template', '-filters'); $item->data['url_add'] = $document->url ($pathway); $item->data['move-enable'] = 1; $item->data['remove-enable'] = 1; $item->data['edit-enable'] = 0; $filters = $formulary->getField ('local/filters'); if (!isset ($filters[0])) return; $item->data['serialized'] = $filters; foreach (explode (CRLF, $filters) as $name) { // each filter $data = $store->control->read ('sectionBlog_post_edit' . ucfirst ($name)); if (!isset ($data['flags']['filters_manager'])) continue; $item->appendChild (array ( 'value' => $name, 'caption' => $data['text']['caption'], )); } // each line } // function create static function save ($fieldName, $control, $formulary) { // function save if (isset ($formulary->received[$fieldName . '_serialized'])) $formulary->data['local']['filters'] = $formulary->received[$fieldName . '_serialized']; else unset ($formulary->data['local']['filters']); } // function save } // class eclFilter_personaliteTemplate_configure_filters //!eof:library/personaliteTemplate/configure/eclFilter_personaliteTemplate_configure_filters.php; //!file:library/personaliteTemplate/eclApp_personaliteTemplate.php; class eclApp_personaliteTemplate { // class eclApp_personaliteTemplate static function is_child ($me, $name) { // function is_child if ($name == 'template') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'section'; } // function get_menu_type static function get_children_names () { // function get_children_names return array ('template'); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('personaliteTemplate_content'); $me->map = array ('personaliteTemplate_add', 'personaliteTemplate_labels', 'personaliteTemplate_filters'); $me->access = 4; $me->isDomain = true; } // function constructor_helper static function dispatch ($document) { // function dispatch global $store; if (isset ($document->actions['remove'][1])) return self::action_remove ($document); // Restore default configurations if (isset ($document->received['save']) and $document->received['save'] == 'restore') { // restore default configurations $domainId = $document->domain->domainId; foreach ($store->domainExtras->children ($domainId, MODE_TEMPLATE, 0) as $data) { // each block $store->domainExtras->delete ($domainId, $data['id']); } // each block return $document->dataReplace ('layouts/dialog_close'); } // restore default configurations $formulary = $document->createFormulary ('personaliteTemplate_edit', array (), 'template'); if ($formulary->save ()) return $document->dataReplace ('layouts/dialog_close'); $document->mod->formulary = $formulary; if ($formulary->errorMsg) $document->mod->humperstilshen->alert ($formulary->errorMsg); } // function dispatch static function action_remove ($document) { // function action_remove $id = intval ($document->actions['remove'][1]); if (!$id) return $document->buffer = 'error'; $data = $store->domainExtras->openById ($document->domain->domainId, $id); if (!$data) return $document->buffer = 'ok'; if ($data['mode'] != MODE_TEMPLATE) return $document->buffer = 'error'; $store->domainExtras->delete ($data['domain_id'], $data['id']); $document->buffer = 'ok'; } // function action_remove } // class eclApp_personaliteTemplate //!eof:library/personaliteTemplate/eclApp_personaliteTemplate.php; //!file:library/personaliteTemplate/eclFilter_personaliteTemplate_manager.php; class eclFilter_personaliteTemplate_manager { // class eclFilter_personaliteTemplate_manager static function create ($fieldName, $control, $formulary) { // function create global $io, $store; $document = $formulary->document; $me = $document->application; $folder = $control['flags']['folder']; $length = strlen ($folder); $item = $document->createListItem ($control); // name $item->data['name'] = $fieldName; // type if (isset ($control['flags']['type'])) $item->data['type'] = $control['flags']['type']; else $item->data['type'] = 'manager'; // help if (isset ($control['flags']['help']) and !isset ($control['flags']['help_msg'])) $item->data['help_msg'] = 'system_msg_filterDetailsHelp'; // references $pathway = array ($document->domain->name, '-personalite', 'template', $control['flags']['folder']); $item->data['url_add'] = $document->url ($pathway); $item->data['move-enable'] = 0; $item->data['remove-enable'] = 1; $item->data['edit-enable'] = 1; foreach ($store->domainExtras->children ($me->domainId, MODE_TEMPLATE, 0) as $data) { // each user detail if (substr ($data['name'], 0, $length) != $folder) continue; if (isset ($data['text']['caption'])) $caption = $document->textMerge ($data['name'], ' ', $data['text']['caption']); else $caption = $document->textMerge ($data['name']); $configure = $me->pathway; $configure[] = $data['name']; $item->appendChild (array ( 'value' => $data['name'], 'caption' => $caption, 'url' => $document->url ($configure), 'url_remove' => $document->url (true, true, '_remove-' . $data['id']) )); } // each line return $item; } // function create static function save ($fieldName, $control, $formulary) { // function save } // function save } // class eclFilter_personaliteTemplate_manager //!eof:library/personaliteTemplate/eclFilter_personaliteTemplate_manager.php; //!file:library/personaliteTemplate/filters/eclApp_personaliteTemplate_filters.php; class eclApp_personaliteTemplate_filters { // class eclApp_personaliteTemplate_filters static function is_child ($me, $name) { // function is_child if ($name == '-filters') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names () { // function get_children_names return array ('-filters'); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('personaliteTemplate_filters_content'); $me->access = 4; $me->isDomain = true; } // function constructor_helper static function dispatch ($document) { // function dispatch $document->mod->list = new eclMod_personaliteTemplate_filters_list ($document); } // function dispatch } // class eclApp_personaliteTemplate_filters //!eof:library/personaliteTemplate/filters/eclApp_personaliteTemplate_filters.php; //!file:library/personaliteTemplate/filters/eclMod_personaliteTemplate_filters_list.php; class eclMod_personaliteTemplate_filters_list { // class eclMod_personaliteTemplate_filters_list public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; $me = $document->application; $render = $document->render; foreach ($store->control->scandir ('c', 'sectionBlog/post') as $name) { // each detail $data = $store->control->read ('sectionBlog_post_' . $name); if (!isset ($data['flags']['filters_manager'])) continue; if (!$data or !isset ($data['text']['caption'])) continue; $data['name'] = $data['flags']['filters_manager']; $mod->appendChild ($data); } // each detail $mod->enabled = true; } // function setModule } // class eclMod_personaliteTemplate_filters_list //!eof:library/personaliteTemplate/filters/eclMod_personaliteTemplate_filters_list.php; //!file:library/personaliteTemplate/labels/eclApp_personaliteTemplate_labels.php; class eclApp_personaliteTemplate_labels { // class eclApp_personaliteTemplate_labels static function is_child ($me, $name) { // function is_child if ($name == 'labels') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names () { // function get_children_names return array (); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('personaliteTemplate_add_content'); $me->map = array ('personaliteTemplate_labels_add'); $me->isDomain = true; } // function constructor_helper static function dispatch ($document) { // function dispatch } // function dispatch } // class eclApp_personaliteTemplate_labels //!eof:library/personaliteTemplate/labels/eclApp_personaliteTemplate_labels.php; //!file:library/personaliteTemplate/labels/eclApp_personaliteTemplate_labels_add.php; class eclApp_personaliteTemplate_labels_add { // class eclApp_personaliteTemplate_labels_add static function is_child ($me, $name) { // function is_child switch ($name) { // switch name case 'action': case 'date': case 'field': case 'lang': case 'navigation': return true; default: return false; } // switch name } // function is_child static function get_menu_type () { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names () { // function get_children_names return array (); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('personaliteTemplate_add_content'); $me->map = array ('personaliteTemplate_labels_configure'); $me->isDomain = true; } // function constructor_helper static function dispatch ($document) { // function dispatch $document->mod->list = new eclMod_personaliteTemplate_labels_add ($document); } // function dispatch } // class eclApp_personaliteTemplate_labels_add //!eof:library/personaliteTemplate/labels/eclApp_personaliteTemplate_labels_add.php; //!file:library/personaliteTemplate/labels/eclApp_personaliteTemplate_labels_configure.php; class eclApp_personaliteTemplate_labels_configure { // class eclApp_personaliteTemplate_labels_configure static function is_child ($me, $name) { // function is_child return true; } // function is_child static function get_menu_type () { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names () { // function get_children_names return array (); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('personaliteTemplate_labels_edit'); $me->access = 4; $me->isDomain = true; } // function constructor_helper static function dispatch ($document) { // function dispatch global $store; $me = $document->application; $folder = 'labels/' . $me->parent->name; $name = $folder . '/' . $me->name; $saved = &$store->domainExtras->openChild ($me->domainId, MODE_TEMPLATE, 0, $name); if ($saved) $data = $saved; elseif ($store->control->read ($name)) $data = $store->control->read ($name); else $data = array (); // Restore default configurations if (isset ($document->received['save']) and $document->received['save'] == 'restore') { // restore default configurations if ($saved) $store->domainExtras->delete ($me->domainId, $saved['id']); $data = $store->control->read ($name); $document->dataReplace ('layouts/dialog_close'); if ($data) { // update to default $caption = $document->selectLanguage ($data['text']['caption']); $identifier = $me->name; } // update to system default else { // remove $identifier = ''; $caption[1] = ''; } // remove $pathway = $me->parent->pathway; $pathway[] = $me->name; $url = $document->url ($pathway); $document->data['script'] = 'window.opener.listManager.update ("' . $me->name . '", "' . $identifier . '", "' . $caption[1] . '", "' . $url . '");'; return; } // restore default configurations $data['identifier'] = $me->name; $formulary = $document->createFormulary ('personaliteTemplate_labels_edit', $data); if ($formulary->save ()) { // save formulary $data = $formulary->data; if (!isset ($data['identifier']) or !preg_match ('/^[a-z][a-z0-9_]*$/', $data['identifier'])) $data['identifier'] = $me->name; if ($data['identifier'] == $me->name and $saved) $saved = $formulary->data; else { // create saved modules if ($data['identifier'] != $me->name and $saved = &$store->domainExtras->openChild ($me->domainId, MODE_TEMPLATE, 0, $folder . '/' . $data['identifier'])) { // overwrite existing detail $saved['text'] = $data['text']; } // overwrite existing detail else { // create new detail $data['mode'] = MODE_TEMPLATE; $data['name'] = $folder . '/' . $data['identifier']; $store->domainExtras->insert ($me->domainId, $data); } // create new detail } // create saved modules $document->dataReplace ('layouts/dialog_close'); $caption = $document->selectLanguage ($data['text']['caption']); $pathway = $me->parent->pathway; $pathway[] = $data['identifier']; $url = $document->url ($pathway); $document->data['script'] = 'window.opener.listManager.update ("' . $me->name . '", "' . $data['identifier'] . '", "' . $caption[1] . '", "' . $url . '");'; return; } // save formulary $document->mod->formulary = $formulary; if ($formulary->errorMsg) $document->mod->humperstilshen->alert ($formulary->errorMsg); } // function dispatch } // class eclApp_personaliteTemplate_labels_configure //!eof:library/personaliteTemplate/labels/eclApp_personaliteTemplate_labels_configure.php; //!file:library/personaliteTemplate/labels/eclMod_personaliteTemplate_labels_add.php; class eclMod_personaliteTemplate_labels_add { // class eclMod_personaliteTemplate_labels_add public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; $me = $document->application; $render = $document->render; $folder = $me->parent->name . '/' . $me->name; foreach ($store->control->scandir ('t', $folder) as $name) { // each detail $data = $store->control->read ($folder . '/' . $name); if (!$data or !isset ($data['text']['caption'])) continue; $data['name'] = $name; $data['text']['caption'] = $document->textMerge ($data['name'], ' ', $data['text']['caption']); $mod->appendChild ($data) ->appendFolder ($name); } // each detail $mod->enabled = true; } // function setModule } // class eclMod_personaliteTemplate_labels_add //!eof:library/personaliteTemplate/labels/eclMod_personaliteTemplate_labels_add.php; //!file:library/section/create/eclApp_section_create.php; class eclApp_section_create { // class eclApp_section_create static function is_child ($me, $name) { // function is_child if ($name == '-new-section') return true; return false; } // function is_child static function get_menu_type ($me) { // function get_menu_type global $store; $data = $store->domainContent->open ($me->domainId, '-register'); if (isset ($data['flags']['section_createOnMenu'])) return 'section'; return 'post'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names return array ('-new-section'); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('section_create_content'); $me->ignoreSubfolders = true; $me->access = 4; $me->getMap (); } // function constructor_helper static function dispatch ($document) { // function dispatch global $io, $store; $me = $document->application; if (!isset ($document->actions['create'][1])) goto show_list; $type = $document->actions['create'][1]; if (!is_object ($document->application->child ($type))) goto show_list; $preset = $document->application->child ($type)->child ('-preset'); if (!is_object ($preset)) goto show_list; $data = $preset->data; unset ($data['text']); $formulary = $document->createFormulary ('section_create_edit', $data, 'sectionEdit'); if ($formulary->command ('cancel')) { // return to parent page $parent = $document->application->parent; if ($parent->isDomain) $parent = $parent->child (''); $document->application = $parent; $document->application->dispatch ($document); $document->reload = $document->url (); return; } // return to parent page // Salvar formulário e redespachar if ($formulary->command ('save') and $formulary->save (1)) { // save section $parent = $document->application->parent; $data = &$formulary->data; $data['mode'] = MODE_SECTION; $data['parent_id'] = $parent->id; $data['id'] = $store->domainContent->insert ($parent->domainId, $data); $me->id = $data['id']; $formulary->save (2); $io->database->commit (); $me->data = &$store->domainContent->openById ($me->domainId, $me->id); $me->data = $formulary->data; $store->domainExtras->createVersion ($me->domainId, $data, $document); $parent->reset (); $document->application = $parent->child ($data['name']); $document->reload = $document->url (); $document->application->dispatch ($document); return; } // save section // Sugestão de texto if (!isset ($formulary->data['text']) and isset ($preset->data['text'])) $formulary->data['text'] = $preset->data['text']; // Exibir formulário $formulary->action = '_create-' . $type; $document->mod->formulary = $formulary; if ($formulary->errorMsg) $document->mod->humperstilshen->alert ($formulary->errorMsg); $document->mod->languages->action = '_create-' . $type; $document->mod->instructor->addMessage ('section' . ucfirst ($type) . '_helpCreate'); return; // Exibir lista de opções show_list: unset ($document->actions['create']); $document->mod->list = new eclMod_section_create_list ($document); } // function dispatch } // class eclApp_section_create //!eof:library/section/create/eclApp_section_create.php; //!file:library/section/create/eclMod_section_create_list.php; class eclMod_section_create_list { // class eclMod_section_create_list public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $row = $mod->appendChild (); $pathway = $this->document->application->pathway; foreach ($this->document->application->children () as $child) { // each child $row->appendChild ($child) ->virtual (1) ->url ($pathway, true, '_create-' . $child->name); } // each child $mod->data = $store->control->read ('modules/list'); $mod->enabled = true; } // function setModule } // class eclMod_section_create_list //!eof:library/section/create/eclMod_section_create_list.php; //!file:library/section/eclApp_section.php; class eclApp_section { // class eclApp_section static function is_child ($me, $name) { // function is_child global $store; $data = $store->domainContent->openChild ($me->domainId, MODE_SECTION, $me->id, $name); if ($data) return true; if (!$me->isDomain) return false; $data = $store->domainContent->open ($me->domainId, $name); if (!$data or !$data['parent_id']) return false; if ($data['parent_id'] == 1) return true; $parent = $store->domainContent->openById ($me->domainId, $data['parent_id']); if (isset ($parent['flags']['section_type']) and $parent['flags']['section_type'] == 'menu') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'section'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names global $store; return $store->domainContent->childrenNames ($me->domainId, MODE_SECTION, $me->id); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = &$store->domainContent->open ($me->domainId, $me->name); $me->id = $me->data['id']; if ($me->data['access'] > $me->access) $me->access = $me->data['access']; if (isset ($me->data['flags']['section_type'])) $class = 'eclApp_section' . ucfirst ($me->data['flags']['section_type']); else $class = 'eclApp_sectionFolder'; $class::constructor_helper ($me); } // function constructor_helper static function dispatch ($document) { // function dispatch global $store; $me = $document->application; $view = true; if ($document->access (4)) { // user is admin if ($document->actions ('section', 'edit')) $view = self::action_edit ($document); elseif ($document->actions ('section', 'moveto')) $view = self::action_moveto ($document); elseif ($document->actions ('section', 'remove')) return self::action_remove ($document); elseif ($document->actions ('section', 'move')) self::action_move ($document); // Context Edit $document->mod->context->appendChild ('section_edit') ->active ($document->actions ('section', 'edit')) ->url (true, true, '_section-edit'); // Versioning $store->domainExtras->versioning ($document); // Context Remove $document->mod->context->appendChild ('section_remove') ->url (true, true, '_section-remove') ->confirm ('section_removeConfirm'); // Context Move up if ($me->data['index'] and ($me->data['parent_id'] == 1 or $me->data['parent_id'] == $me->parent->id)) $document->mod->context->appendChild ('section_moveUp') ->url (true, true, '_section-move-up'); // Context Move down if ($me->data['index'] < count ($store->domainContent->children ($me->domainId, MODE_SECTION, $me->data['parent_id'])) - 1 and ($me->data['parent_id'] == 1 or $me->data['parent_id'] == $me->parent->id)) $document->mod->context->appendChild ('section_moveDown') ->url (true, true, '_section-move-down'); // Context Move to... $document->mod->context->appendChild ('section_moveTo') ->url (true, true, '_section-moveto'); } // user is admin if ($view) { // view section if (!$document->access (3) and !isset ($me->data['flags']['modHits_disable'])) $me->data['hits']++; if (isset ($me->data['flags']['section_type'])) $class = 'eclApp_section' . ucfirst ($me->data['flags']['section_type']); else $class = 'eclApp_sectionFolder'; $class::dispatch ($document); } // view section } // function dispatch static function action_edit ($document) { // function action_edit global $store; $me = $document->application; $formulary = $document->createFormulary ('section_edit', $me->data, 'sectionEdit'); if ($formulary->command ('cancel')) { // cancel unset ($document->actions['section']); return true; } // cancel if ($formulary->command ('save') and $formulary->save ()) { // save formulary unset ($document->actions['section']); $me->data = $formulary->data; $me->data['updated'] = TIME; $store->domainExtras->createVersion ($me->domainId, $me->data, $document); $document->application->reset (); if ($document->application->name != $formulary->data['name']) { // update name $document->application->name = $formulary->data['name']; array_pop ($document->application->pathway); $document->application->pathway[] = $formulary->data['name']; $document->reload = $document->url (); } // update name else $document->dataReplace ($document->application->data); return true; } // save formulary $formulary->action = '_section-edit-save'; $document->mod->formulary = $formulary; if ($formulary->errorMsg) $document->mod->humperstilshen->alert ($formulary->errorMsg); $document->mod->languages->action = '_section-edit'; $document->dataMerge ('section_contentEdit'); return false; } // function action_edit static function action_remove ($document) { // function action_remove global $store, $io; $me = $document->application; unset ($document->actions['section']); $parent = $me->parent; $me->remove (); $parent->reset (); // reindex brothers $store->domainContent->childrenReindex ($parent->domainId, MODE_SECTION, $parent->id); if ($parent->isDomain) $document->application = $parent->child (''); else $document->application = $parent; $document->reload = $document->url (); $document->application->dispatch ($document); } // function action_remove static function action_move ($document) { // function action_move global $store; $parentId = $document->application->data['parent_id']; $name = $document->application->name; $parent = $document->application->parent; unset ($document->application); $parent->reset (); $store->domainContent->childrenReindex ($parent->domainId, MODE_SECTION, $parentId); $names = $store->domainContent->childrenNames ($parent->domainId, MODE_SECTION, $parentId); $index = array_search ($name, $names); $length = count ($names) - 1; if ($document->actions ('section', 'move', 'up') and $index) { // move up $move_up = &$store->domainContent->open ($parent->domainId, $names[$index]); $move_down = &$store->domainContent->open ($parent->domainId, $names[$index - 1]); $move_up['index']--; $move_down['index']++; } // move up elseif ($document->actions ('section', 'move', 'down') and $index < $length) { // move down $move_up = &$store->domainContent->open ($parent->domainId, $names[$index + 1]); $move_down = &$store->domainContent->open ($parent->domainId, $names[$index]); $move_up['index']--; $move_down['index']++; } // move down unset ($document->actions['section']); $document->application = $parent->child ($name); } // function action_move static function action_moveto ($document) { // function action_moveto global $store; unset ($document->actions['section']); $me = $document->application; $oldParentId = $me->data['parent_id']; $formulary = $document->createFormulary ('section_moveTo', $me->data, 'moveto'); $formulary->action = '_section-moveto'; if ($formulary->command ('cancel')) return true; if ($formulary->command ('save') and $formulary->save ()) { // save $newParentId = $formulary->data['parent_id']; if ($newParentId == $oldParentId) return true; $me->data['parent_id'] = $newParentId; unset ($store->domainContent->chargedMode[$me->domainId][MODE_SECTION]); $store->domainContent->childrenReindex ($me->domainId, MODE_SECTION, $newParentId); $me->data['index'] = count ($store->domainContent->children ($me->domainId, MODE_SECTION, $newParentId)); unset ($store->domainContent->indexByParent[$me->domainId][MODE_SECTION][$oldParentId][$me->id]); $store->domainContent->childrenReindex ($me->domainId, MODE_SECTION, $oldParentId); $store->domainContent->indexByParent[$me->domainId][MODE_SECTION][$newParentId][$me->id] = $me->id; unset ($store->domainContent->chargedParents[$me->domainId][MODE_SECTION][$oldParentId]); unset ($store->domainContent->chargedParents[$me->domainId][MODE_SECTION][$newParentId]); $document->reload = $document->url ($store->domainContent->pathway ($me->domainId, $me->id)); return false; } // save $document->mod->formulary = $formulary; $document->dataReplace ('section_moveTo'); return false; } // function action_moveto static function remove ($me) { // function remove if (isset ($me->data['flags']['section_type'])) $class = 'eclApp_section' . ucfirst ($me->data['flags']['section_type']); else $class = 'eclApp_sectionFolder'; if (is_callable ($class . '::remove')) $class::remove ($me); global $store; $store->domainContent->delete ($me->domainId, $me->id); $store->domainFile->deletePrefixedFiles ($me->domainId, $me->name); $store->domainExtras->deleteAllChildren ($me->domainId, $me->id); } // function remove } // class eclApp_section //!eof:library/section/eclApp_section.php; //!file:library/section/eclFilter_section_moveto.php; class eclFilter_section_moveto { // class eclFilter_section_moveto static function create ($fieldName, $control, $formulary) { // function create global $store; $control['type'] = 'list'; $control['name'] = $fieldName; $parentId = $formulary->data['parent_id']; $id = $formulary->data['id']; $item = $formulary->appendChild ($control); // Main menu $item->appendChild ('section_moveToMain') ->set ('value', '0') ->active ($parentId == 0); // Footer menu $item->appendChild ('section_moveToFooter') ->set ('value', '1') ->active ($parentId == 1); foreach ($store->domainContent->mode ($formulary->data['domain_id'], MODE_SECTION) as $data) { // each section if ($data['id'] == $id) continue; if (isset ($data['flags']['section_type']) and ($data['flags']['section_type'] == 'folder' or $data['flags']['section_type'] == 'menu')) $item->appendChild ($data) ->set ('value', $data['id']) ->active ($data['id'] == $parentId); } // each section } // function create static function save ($fieldName, $control, $formulary) { // function save global $store; if (!isset ($formulary->received[$fieldName])) return; $id = strval ($formulary->received[$fieldName]); if ($id == 0 or $id == 1) return $formulary->data['parent_id'] = $id; $data = $store->domainContent->openById ($formulary->data['domain_id'], $id); if (!$data or $data['mode'] != MODE_SECTION or !isset ($data['flags']['section_type'])) return; if ($data['flags']['section_type'] == 'folder' or $data['flags']['section_type'] == 'menu') $formulary->data['parent_id'] = $id; } // function save } // class eclFilter_section_moveto //!eof:library/section/eclFilter_section_moveto.php; //!file:library/section/eclFilter_section_selectGroup.php; class eclFilter_section_selectGroup { // class eclFilter_section_selectGroup static function create ($fieldName, $control, $formulary) { // function create global $store; $me = $formulary->document->application; $groups = $store->domainContent->mode ($me->domainId, MODE_GROUP); if (!$groups) return; $control['name'] = $fieldName; $control['type'] = 'select'; $item = $formulary->appendChild ($control); $value = $formulary->getField ('links/group'); $item->appendChild ('section_editGroupNone'); foreach ($groups as $data) { // each group $local = array ( 'caption' => $data['text']['title'], 'value' => $data['id'] ); $item->appendChild ($local) ->active ($data['id'] == $value); } // each group } // function create static function save ($fieldName, $control, $formulary) { // function save global $store; $me = $formulary->document->application; if (isset ($formulary->received[$fieldName])) $id = intval ($formulary->received[$fieldName]); else $id = false; if ($id) { // find group $data = $store->domainContent->openById ($me->domainId, $id); if (!$data or $data['mode'] != MODE_GROUP) $id = false; } // find group $formulary->setField ('links/group', $id); } // function save } // class eclFilter_section_selectGroup //!eof:library/section/eclFilter_section_selectGroup.php; //!file:library/section/eclFilter_section_specialFields.php; class eclFilter_section_specialFields { // class eclFilter_section_specialFields static function create ($fieldName, $control, $formulary) { // function create global $store; if (!isset ($formulary->data['flags']['section_type'])) return; if (!isset ($control['flags']['sufix'])) return; $special = $store->control->read ('section' . ucfirst ($formulary->data['flags']['section_type']) . $control['flags']['sufix']); if (isset ($special['children'])) $formulary->insertControlChildren ($special); } // function create static function save ($fieldName, $control, $formulary) { // function save global $store; if (!isset ($formulary->data['flags']['section_type'])) return; if (!isset ($control['flags']['sufix'])) return; $special = $store->control->read ('section' . ucfirst ($formulary->data['flags']['section_type']) . $control['flags']['sufix']); if (isset ($special['children'])) $formulary->insertControlChildren ($special); } // function save } // class eclFilter_section_specialFields //!eof:library/section/eclFilter_section_specialFields.php; //!file:library/section/preset/eclApp_section_preset.php; class eclApp_section_preset { // class eclApp_section_preset static function is_child ($me, $name) { // function is_child if (!isset ($me->data['flags']['preset'])) return false; if ($name == '-preset') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names return array ('-preset'); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ($me->parent->data['flags']['preset']); } // function constructor_helper static function dispatch ($document) { // function dispatch } // function dispatch } // class eclApp_section_preset //!eof:library/section/preset/eclApp_section_preset.php; //!file:library/sectionBlog/create/eclApp_sectionBlog_create.php; class eclApp_sectionBlog_create { // class eclApp_sectionBlog_create static function is_child ($me, $name) { // function is_child switch ($name) { // switch name case 'blog': case 'galery': case 'events': case 'news': case 'podcast': case 'products': case 'videocast': return true; } // switch name return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names global $store; $names = array ('blog', 'galery', 'news', 'events', 'podcast', 'videocast'); if ($store->domainContent->findMarker ($me->domainId, 12)) $names[] = 'products'; return $names; } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('sectionBlog_create_' . $me->name); $me->map = array ('section_preset'); } // function constructor_helper static function dispatch ($document) { // function dispatch } // function dispatch } // class eclApp_sectionBlog_create //!eof:library/sectionBlog/create/eclApp_sectionBlog_create.php; //!file:library/sectionBlog/eclApp_sectionBlog.php; class eclApp_sectionBlog { // class eclApp_sectionBlog static function constructor_helper ($me) { // function constructor_helper $me->map = array ('sectionBlog_post', 'sectionBlog_post_new'); } // function constructor_helper static function dispatch ($document) { // function dispatch $me = $document->application; if ($document->access (4)) { // admin // Context new post $pathway = $me->pathway; $pathway[] = '-new-post'; $document->mod->context->appendChild ('sectionBlog_post_contextNew') ->url ($pathway); $document->mod->editor->enable (); } // admin $document->mod->sort = new eclMod_sectionBlog_sort ($document); $document->mod->list = new eclMod_sectionBlog_list ($document); $document->mod->pages = new eclMod_sectionBlog_pages ($document); } // function dispatch static function remove ($me) { // function remove } // function remove } // class eclApp_sectionBlog //!eof:library/sectionBlog/eclApp_sectionBlog.php; //!file:library/sectionBlog/eclMod_sectionBlog_list.php; class eclMod_sectionBlog_list { // class eclMod_sectionBlog_list public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; $render = $document->render; $me = $document->application; // Procure o módulo dentro da aplicação if (isset ($me->data['extras']['list'])) $mod->data = $me->data['extras']['list']; else { // from preset if (isset ($me->data['flags']['modList_preset'])) $preset = $me->data['flags']['modList_preset']; else $preset = 'blog'; $mod->data = $render->block ('modules/list_' . $preset); if (!$mod->data) $mod->data = $render->block ('modules/list_blog'); } // from preset $mod->data['name'] = 'section_' . $me->name; // configurações de listagem $local = $mod->data['local']; isset ($local['list_sort']) or $local['list_sort'] = 'index'; isset ($local['list_direction']) or $local['list_direction'] = 'asc'; isset ($local['list_max']) or $local['list_max'] = 0; if (isset ($document->actions['sort'][1])) { // force sorting mode switch ($document->actions['sort'][1]) { // switch sorgting mode case 'cheaper': $local['list_sort'] = 'value'; $local['list_direction'] = 'asc'; break; case 'expensive': $local['list_sort'] = 'value'; $local['list_direction'] = 'desc'; break; case 'hits': $local['list_sort'] = 'hits'; $local['list_direction'] = 'desc'; break; case 'ratings': $local['list_sort'] = 'spotlight'; $local['list_direction'] = 'desc'; break; case 'recents': $local['list_sort'] = 'created'; $local['list_direction'] = 'desc'; break; case 'post': $local['list_sort'] = 'created'; $local['list_direction'] = 'asc'; break; case 'event': $local['list_sort'] = 'event_start'; $local['list_direction'] = 'asc'; break; case 'alphabetically': $local['list_sort'] = 'name'; $local['list_direction'] = 'asc'; break; } // switch sorting mode } // force sorting mode if ($local['list_max'] and isset ($document->actions['page'][1])) { // pagination $page = intval ($document->actions['page'][1]); if ($page <= 0) $page = 1; $offset = $local['list_max'] * intval ($document->actions['page'][1] - 1); } // pagination else $offset = 0; switch ($local['list_sort']) { // switch list sort case 'name': case 'created': case 'updated': case 'event_start': case 'coments_last_update': case 'hits': case 'value': case 'spotlight': $children = $store->domainContent->children ($me->domainId, MODE_POST, $me->id, 4, $local['list_max'], $offset, $local['list_sort'], $local['list_direction']); break; default: $children = $store->domainContent->children ($me->domainId, MODE_POST, $me->id, 4, $local['list_max'], $offset, 'index', $local['list_direction']); } // switch list sort $row = $mod->appendChild (); foreach ($children as $data) { // each child $row->appendChild ($me->child ($data['name'])) ->set ('editable', $document->contentEditable) ->url (); } // each child if (!$row->children) return; if ($document->templateEditable and $document->access (4)) { // personalite reference $pathway = array_slice ($me->pathway, 1); array_unshift ($pathway, $document->domain->name, '-personalite', 'extras', 'list'); $mod->data['local']['personalite_url'] = $document->url ($pathway); $caption = $store->control->read ('modList_edit'); $mod->data['local']['personalite_caption'] = $caption['text']['caption']; } // reference $mod->enabled = true; } // function setModule } // class eclMod_sectionBlog_list //!eof:library/sectionBlog/eclMod_sectionBlog_list.php; //!file:library/sectionBlog/eclMod_sectionBlog_pages.php; class eclMod_sectionBlog_pages { // class eclMod_sectionBlog_pages public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; $me = $document->application; isset ($me->data['extras']['list']['local']) ? $local = $me->data['extras']['list']['local'] : $local = array (); isset ($local['list_sort']) or $local['list_sort'] = 'index'; isset ($local['list_direction']) or $local['list_direction'] = 'asc'; isset ($local['list_max']) or $local['list_max'] = 0; $action = ''; if (isset ($document->actions['sort'][1])) { // force sorting mode $action = '_sort-' . $document->actions['sort'][1]; switch ($document->actions['sort'][1]) { // switch sorgting mode case 'cheaper': $local['list_sort'] = 'value'; $local['list_direction'] = 'asc'; break; case 'expensive': $local['list_sort'] = 'value'; $local['list_direction'] = 'desc'; break; case 'hits': $local['list_sort'] = 'hits'; $local['list_direction'] = 'desc'; break; case 'ratings': $local['list_sort'] = 'spotlight'; $local['list_direction'] = 'desc'; break; case 'recents': $local['list_sort'] = 'created'; $local['list_direction'] = 'desc'; break; case 'post': $local['list_sort'] = 'created'; $local['list_direction'] = 'asc'; break; case 'event': $local['list_sort'] = 'event_start'; $local['list_direction'] = 'asc'; break; case 'alphabetically': $local['list_sort'] = 'name'; $local['list_direction'] = 'asc'; break; default: $action = ''; } // switch sorting mode } // force sorting mode if (!$local['list_max']) return; if (isset ($document->actions['page'][1])) $page = intval ($document->actions['page'][1]); else $page = 1; if (!$page) $page = 1; $names = $store->domainContent->childrenNames ($me->domainId, MODE_POST, $me->id, true, 0, 0, $local['list_sort'], $local['list_direction']); $length = count ($names); if ($length <= $local['list_max']) return; $numPages = ceil ($length / $local['list_max']); $row = $mod->appendChild (); // First $row->appendChild ('labels/navigation/first') ->active ($page == 1) ->url (true, true, $action); for ($i = 1; $i <= $numPages; $i++) { // loop pages $caption['local']['caption'] = $document->textMerge (strval ($i)); $row->appendChild (false, $caption) ->active ($page == $i) ->url (true, true, $action . '_page-' . $i); } // loop pages // last $row->appendChild ('labels/navigation/last') ->active ($page == $numPages) ->url (true, true, $action . '_page-' . $numPages); if (isset ($me->data['extras']['pages'])) $mod->data = $me->data['extras']['pages']; else $mod->data = $document->render->block ('modules/pages'); if ($document->templateEditable and $document->access (4)) { // personalite reference $pathway = array ($document->domain->name, '-dialog', 'section_pages_pages_' . $me->name); $mod->data['local']['personalite_url'] = $document->url ($pathway); $caption = $store->control->read ('modPages_edit'); $mod->data['local']['personalite_caption'] = $caption['text']['caption']; } // reference $mod->enabled = true; } // function setModule } // class eclMod_sectionBlog_pages //!eof:library/sectionBlog/eclMod_sectionBlog_pages.php; //!file:library/sectionBlog/eclMod_sectionBlog_sort.php; class eclMod_sectionBlog_sort { // class eclMod_sectionBlog_sort public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; $me = $document->application; // Procure o módulo dentro da aplicação if (isset ($me->data['extras']['sort'])) $mod->data = $me->data['extras']['sort']; else { // from preset if (isset ($me->data['flags']['modList_preset'])) $preset = $me->data['flags']['modList_preset']; else $preset = 'blog'; $mod->data = $render->block ('modules/sort_' . $preset); if (!$mod->data) $mod->data = $render->block ('modules/sort_blog'); } // from preset $mod->data['name'] = 'sort_' . $me->name; // configurações de listagem $local = isset ($me->data['extras']['list']['local']) ? $me->data['extras']['list']['local'] : array (); $sort = isset ($local['list_sort']) ? $local['list_sort'] : 'index'; $direction = isset ($local['list_direction']) ? $local['list_direction'] : 'asc'; if (isset ($document->actions['sort'][1])) $value = $document->actions['sort'][1]; elseif ($sort == 'value' and $direction == 'asc') $value = 'cheaper'; elseif ($sort == 'value' and $direction == 'desc') $value = 'expensive'; elseif ($sort == 'hits') $value = 'hits'; elseif ($sort == 'spotlight') $value = 'ratings'; elseif ($sort == 'created' and $direction == 'desc') $value = 'recents'; elseif ($sort == 'created' and $direction == 'asc') $value = 'post'; elseif ($sort == 'event_start') $value = 'event'; elseif ($sort == 'name') $value = 'alphabetically'; else $value = ''; foreach (array ('cheaper', 'expensive', 'hits', 'ratings', 'recents', 'post', 'event', 'alphabetically') as $mode) { // each mode $mod->appendChild ('sectionBlog_sort' . ucfirst ($mode)) ->set ('value', $document->url (true, true, '_sort-' . $mode)) ->active ($value == $mode); } // each mode if ($document->templateEditable and $document->access (4)) { // personalite reference $pathway = array_slice ($me->pathway, 1); array_unshift ($pathway, $document->domain->name, '-personalite', 'extras', 'sort'); $mod->data['local']['personalite_url'] = $document->url ($pathway); $caption = $store->control->read ('modSort_edit'); $mod->data['local']['personalite_caption'] = $caption['text']['caption']; } // reference $mod->enabled = true; } // function setModule } // class eclMod_sectionBlog_sort //!eof:library/sectionBlog/eclMod_sectionBlog_sort.php; //!file:library/sectionBlog/post/eclApp_sectionBlog_post.php; class eclApp_sectionBlog_post { // class eclApp_sectionBlog_post static function is_child ($me, $name) { // function is_child global $store; if ($name[0] == '-') return false; $data = $store->domainContent->openChild ($me->domainId, MODE_POST, $me->id, $name); if ($data) return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'post'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names global $store; return $store->domainContent->childrenNames ($me->domainId, MODE_POST, $me->id); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = &$store->domainContent->open ($me->domainId, $me->name); $me->id = $me->data['id']; } // function constructor_helper static function dispatch ($document) { // function dispatch global $store; $view = true; if ($document->access (4)) { // user is admin if ($document->actions ('post', 'edit')) $view = self::action_edit ($document); elseif ($document->actions ('post', 'remove')) return self::action_remove ($document); // Edit $document->mod->context->appendChild ('sectionBlog_post_edit') ->active ($document->actions ('post', 'edit')) ->url (true, true, '_post-edit'); // Versioning $store->domainExtras->versioning ($document); // Context Remove $document->mod->context->appendChild ('sectionBlog_post_remove') ->url (true, true, '_post-remove') ->confirm ('sectionBlog_post_msgRemoveConfirm'); // Context new post $pathway = $document->application->parent->pathway; $pathway[] = '-new-post'; $document->mod->context->appendChild ('sectionBlog_post_contextNew') ->url ($pathway); } // user is admin if (!$view) return; // Hit counter if ($document->access (4)) $document->mod->editor->enable (); else $document->application->data['hits']++; $document->mod->content = new eclMod_sectionBlog_post_content ($document); $document->mod->pages = new eclMod_sectionBlog_post_pages ($document); $document->mod->comments->enable (); } // function dispatch static function action_edit ($document) { // function action_edit global $store; $me = $document->application; $formulary = $document->createFormulary ('sectionBlog_post_edit', $me->data, 'post'); if ($formulary->command ('cancel')) { // cancel unset ($document->actions['post']); return true; } // cancel if ($formulary->command ('save') and $formulary->save ()) { // save formulary unset ($document->actions['post']); $me->data = $formulary->data; if (!$me->data['owner_id']) $me->data['owner_id'] = $document->user->userId; // New version $store->domainExtras->createVersion ($me->domainId, $me->data, $document); $me->name = $formulary->data['name']; array_pop ($me->pathway); $me->pathway[] = $formulary->data['name']; $document->dataReplace ($me->data); return true; } // save formulary $formulary->action = '_post-edit-save'; $document->mod->formulary = $formulary; if ($formulary->errorMsg) $document->mod->humperstilshen->alert ($formulary->errorMsg); $document->mod->languages->action = '_post-edit'; $document->dataReplace ('sectionBlog_post_edit'); return false; } // function action_edit static function action_remove ($document) { // function action_remove global $io, $store; unset ($document->actions['post']); $me = $document->application; $parent = $me->parent; $me->remove (); // reindex brothers $store->domainContent->childrenReindex ($parent->domainId, MODE_POST, $parent->id); $parent->reset (); $document->application = $parent; $document->application->dispatch ($document); $document->reload = $document->url (); } // function action_remove static function remove ($me) { // function remove global $store; $store->domainContent->delete ($me->domainId, $me->id); $store->domainExtras->deleteAllChildren ($me->domainId, $me->id); $store->domainFile->deletePrefixedFiles ($me->domainId, $me->name); } // function remove } // class eclApp_sectionBlog_post //!eof:library/sectionBlog/post/eclApp_sectionBlog_post.php; //!file:library/sectionBlog/post/eclApp_sectionBlog_post_new.php; class eclApp_sectionBlog_post_new { // class eclApp_sectionBlog_post_new static function is_child ($me, $name) { // function is_child if ($name == '-new-post') return true; return false; } // function is_child static function get_menu_type ($me) { // function get_menu_type return 'post'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names return array ('-new-post'); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->access = 4; $me->data = $store->control->read ('sectionBlog_post_new'); } // function constructor_helper static function dispatch ($document) { // function dispatch global $store; $me = $document->application; $formulary = $document->createFormulary ('sectionBlog_post_new', array (), 'create'); if ($formulary->command ('cancel')) { // cancel $document->application = $me->parent; $document->application->dispatch ($document); $document->reload = $document->url (); return; } // cancel if ($formulary->command ('save') and $formulary->save (1)) { // save post $parent = $document->application->parent; $data = &$formulary->data; $data['mode'] = MODE_POST; $data['parent_id'] = $parent->id; $data['owner_id'] = $document->user->userId; $data['subscription_id'] = $document->subscription->id; $data['id'] = $store->domainContent->insert ($parent->domainId, $data); $me->id = $data['id']; $formulary->save (2); $store->domainExtras->createVersion ($me->domainId, $data, $document); unset ($document->application); $parent->reset (); $document->application = $parent->child ($data['name']); $document->application->dispatch ($document); $document->reload = $document->url (); return; } // save post $document->mod->formulary = $formulary; if ($formulary->errorMsg) $document->mod->humperstilshen->alert ($formulary->errorMsg); } // function dispatch } // class eclApp_sectionBlog_post_new //!eof:library/sectionBlog/post/eclApp_sectionBlog_post_new.php; //!file:library/sectionBlog/post/eclFilter_sectionBlog_post_product.php; class eclFilter_sectionBlog_post_product { // class eclFilter_sectionBlog_post_product static function create ($fieldName, $control, $formulary) { // function create $formulary->appendChild ('sectionBlog_post_specialProductPrice', array ( 'name' => $fieldName . '_price', 'value' => $formulary->getField ('local/product_price') )); } // function create static function save ($fieldName, $control, $formulary) { // function save $received = $formulary->received; if (isset ($received[$fieldName . '_price'])) { // save value $formulary->setField ('local/product_price', $received[$fieldName . '_price']); $formulary->setField ('value', intval ($received[$fieldName . '_price'])); } // save value else { // clear value $formulary->setField ('local/product_price', false); $formulary->setField ('value', 0); } // clear value } // function save } // class eclFilter_sectionBlog_post_product //!eof:library/sectionBlog/post/eclFilter_sectionBlog_post_product.php; //!file:library/sectionBlog/post/eclFilter_sectionBlog_post_specialFields.php; class eclFilter_sectionBlog_post_specialFields { // class eclFilter_sectionBlog_post_specialFields static function create ($fieldName, $control, $formulary) { // function create $formulary->insertControlChildren (self::findSpecialFields ($formulary)); } // function create static function save ($fieldName, $control, $formulary) { // function save $formulary->insertControlChildren (self::findSpecialFields ($formulary)); } // function save static function findSpecialFields ($formulary) { // function findSpecialFields global $store; $render = $formulary->document->render; $fields['title'] = true; foreach (array ('list', 'post') as $from) { // loop post and list $details = self::getDetails ($formulary->document, $from); foreach (explode (CRLF, $details) as $name) { // each detail $detail = $render->block ('details/' . $name); if (!isset ($detail['local']['filters'])) continue; foreach (explode (CRLF, $detail['local']['filters']) as $filter) { // each filter $fields[$filter] = true; } // each filter } // each detail } // loop post and list unset ($fields['title'], $fields['caption'], $fields['name'], $fields['specialFields']); $control = array (); foreach ($fields as $field => $notImportant) { // each field $control['children'][] = 'sectionBlog_post_edit' . ucfirst ($field); } // each field return $control; } // function findSpecialFields static function getDetails ($document, $from) { // function getDetails $render = $document->render; $me = $document->application->parent; if (isset ($me->data['extras'][$from]['local']['details'])) return $me->data['extras'][$from]['local']['details']; if (isset ($me->data['flags']['modList_preset'])) $preset = $me->data['flags']['modList_preset']; else $preset = 'blog'; $post = $render->block ('modules/' . $from . '_' . $preset); if (!$post) $post = $render->block ('modules/' . $from . '_blog'); if (isset ($post['local']['details'])) return $post['local']['details']; return array (); } // function getDetails } // class eclFilter_sectionBlog_post_specialFields //!eof:library/sectionBlog/post/eclFilter_sectionBlog_post_specialFields.php; //!file:library/sectionBlog/post/eclMod_sectionBlog_post_content.php; class eclMod_sectionBlog_post_content { // class eclMod_sectionBlog_post_content public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; $render = $document->render; $me = $document->application->parent; // Procure o módulo dentro da aplicação if (isset ($me->data['extras']['post'])) $data = $me->data['extras']['post']; else { // from preset if (isset ($me->data['flags']['modList_preset'])) $preset = $me->data['flags']['modList_preset']; else $preset = 'blog'; $data = $render->block ('modules/post_' . $preset); if (!$data) $data = $render->block ('modules/post_blog'); } // from preset $mod->data = $render->block ('modules/content'); $mod->data = array_replace_recursive ($mod->data, $data); // Itens da lista $mod->appendChild ($document->application) ->set ('editable', $document->contentEditable); // Se o módulo pode ser editado if ($document->templateEditable and $document->access (4, $me->groups)) { // reference $pathway = array_slice ($me->pathway, 1); array_unshift ($pathway, $document->domain->name, '-personalite', 'extras', 'post'); $mod->data['local']['personalite_url'] = $document->url ($pathway); $caption = $store->control->read ('modContent_edit'); $mod->data['local']['personalite_caption'] = $caption['text']['caption']; } // reference $mod->enabled = true; } // function setModule } // class eclMod_sectionBlog_post_content //!eof:library/sectionBlog/post/eclMod_sectionBlog_post_content.php; //!file:library/sectionBlog/post/eclMod_sectionBlog_post_pages.php; class eclMod_sectionBlog_post_pages { // class eclMod_sectionBlog_post_pages public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; $me = $document->application->parent; $row = $mod->appendChild (); if (isset ($me->data['extras']['list'])) $list = $me->data['extras']['list']; elseif (isset ($me->data['flags']['modList_preset'])) $list = $document->render->block ('modules/list_' . $me->data['flags']['modList_preset']); else $list = $document->render->block ('modules/list_blog'); $sort = isset ($list['local']['list_sort']) ? $list['local']['list_sort'] : 'index'; $direction = isset ($list['local']['list_direction']) ? $list['local']['list_direction'] : 'asc'; switch ($sort) { // switch list sort case 'name': case 'created': case 'updated': case 'event_start': case 'coments_last_update': case 'hits': case 'value': case 'spotlight': $names = $store->domainContent->childrenNames ($me->domainId, MODE_POST, $me->id, 4, 0, 0, $sort, $direction); break; default: $names = $store->domainContent->childrenNames ($me->domainId, MODE_POST, $me->id, 4, 0, 0, 'index', $direction); } // switch list sort $index = array_search ($document->application->name, $names); if ($index === false) return; $length = count ($names); if ($length < 2) return; if ($index) { // previous $pathway = $me->pathway; $pathway[] = $names[$index - 1]; $row->appendChild ('labels/layout/previous') ->url ($pathway); } // previous if ($index < $length - 1) { // next $pathway = $me->pathway; $pathway[] = $names[$index + 1]; $row->appendChild ('labels/layout/next') ->url ($pathway); } // next if (isset ($me->data['extras']['post_pages'])) $mod->data = $me->data['extras']['post_pages']; else $mod->data = $document->render->block ('modules/pages_post'); if ($document->templateEditable and $document->access (4)) { // personalite reference $pathway = array_slice ($me->pathway, 1); array_unshift ($pathway, $document->domain->name, '-personalite', 'post', 'pages'); $mod->data['local']['personalite_url'] = $document->url ($pathway); $caption = $store->control->read ('modPages_edit'); $mod->data['local']['personalite_caption'] = $caption['text']['caption']; } // reference $mod->enabled = true; } // function setModule } // class eclMod_sectionBlog_post_pages //!eof:library/sectionBlog/post/eclMod_sectionBlog_post_pages.php; //!file:library/sectionCart/create/eclApp_sectionCart_create.php; class eclApp_sectionCart_create { // class eclApp_sectionCart_create static function is_child ($me, $name) { // function is_child global $store; if ($me->parent->access) return false; if (!$store->domainContent->findMarker ($me->domainId, 12) and $name == 'cart') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names ($parent) { // function get_children_names global $store; if ($parent->parent->access) return array (); if (!$store->domainContent->findMarker ($parent->domainId, 12)) return array ('cart'); return array (); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('sectionCart_create_content'); $me->map = array ('section_preset'); } // function constructor_helper static function dispatch ($document) { // function dispatch } // function dispatch } // class eclApp_sectionCart_create //!eof:library/sectionCart/create/eclApp_sectionCart_create.php; //!file:library/sectionCart/eclApp_sectionCart.php; class eclApp_sectionCart { // class eclApp_sectionCart static function constructor_helper ($me) { // function constructor_helper $me->map = array ('financialAccount'); } // function constructor_helper static function dispatch ($document) { // function dispatch if ($document->access (4)) { // admin $document->mod->editor->enable (); } // admin if (!$document->access (1)) { // please connect $document->mod->panel->main = array ('content', 'login', 'user_subscribe'); $document->dataMerge ('sectionCart_contentPleaseConnect'); return; } // please connect if (isset ($document->session['order'])) return self::action_view_order ($document); } // function dispatch static function action_view_order ($document) { // function action_view_order $formulary = $document->createFormulary ('sectionCart_choosePaymentMethod', array (), 'method'); if ($formulary->command ('next') and $formulary->save ()) { // next $document->application = $document->application->child ($formulary->data['account'])->child ($formulary->data['method']); $document->application->dispatch ($document); return; } // next $document->mod->list = new eclMod_sectionCart_order ($document); $document->mod->formulary = $formulary; } // function action_view_order static function remove ($me) { // function remove } // function remove } // class eclApp_sectionCart //!eof:library/sectionCart/eclApp_sectionCart.php; //!file:library/sectionCart/eclApp_sectionCart_preload.php; class eclApp_sectionCart_preload { // class eclApp_sectionCart_preload static function is_child ($me, $name) { // function is_child if ($name == 'cart') return true; return false; } // function is_child static function get_menu_type ($me) { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names return array (); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper } // function constructor_helper static function dispatch ($document) { // function dispatch global $store; if ($document->actions ('cart', 'timeout')) { // cart timeout unset ($document->session['cart_' . $document->domain->name]); if (isset ($document->domain->data['flags']['modCart_type']) and $document->domain->data['flags']['modCart_type'] == 'bag') $bag = 1; else $bag = ''; $document->mod->humperstilshen->dialog ('sectionCart_alertTimeout', array ('alert' => 1, 'bag' => $bag)); return; } // cart timeout $received = $document->received; if (!isset ($received['id']) or !intval ($received['id'])) return; $data = $store->domainContent->openById ($document->domain->domainId, intval ($received['id'])); if (!$data or !$data['value'] or !isset ($data['local']['product_price'])) return; if (isset ($received['quantity']) and intval ($received['quantity'])) $quantity = $received['quantity']; else $quantity = 1; preg_match ('/([0-9]+)[,][0]?([0-9]+)/', $data['local']['product_price'], $match); $value = floatval ($match[1]) + (floatval ($match[2]) / 100); $cart = 'cart_' . $document->domain->name; if (!isset ($document->session[$cart])) $document->session[$cart] = array(); if (!isset ($document->session[$cart]['start_time'])) $document->session[$cart]['start_time'] = TIME; if (!isset ($document->session[$cart]['order'])) $document->session[$cart]['order'] = array(); $document->session[$cart]['order'][] = array ( 'domain_id' => $data['domain_id'], 'id' => $data['id'], 'caption' => $data['text']['caption'], 'value' => $value, 'quantity' => $quantity ); } // function dispatch } // class eclApp_sectionCart_preload //!eof:library/sectionCart/eclApp_sectionCart_preload.php; //!file:library/sectionCart/eclMod_sectionCart_order.php; class eclMod_sectionCart_order { // class eclMod_sectionCart_order public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; $me = $document->application; $mod->data['local']['list'] = 'table_simple'; $row = $mod->appendChild (); $row->appendChild ('sectionCart_listCode'); $row->appendChild ('sectionCart_listDescription'); $row->appendChild ('sectionCart_listPrice'); $row->appendChild ('sectionCart_listQuantity'); $row->appendChild ('sectionCart_listValue'); $row->appendChild ('sectionCart_listAction'); $order = $document->session['order']; $remove = 0; if (isset ($document->actions['product'][2]) and $document->actions['product'][1] == 'remove' and intval ($document->actions['product'][2])) $remove = $document->actions['product'][2]; $total = 0; foreach ($order as $key => $product) { // each product if ($remove and $product['id'] == $remove) { // remove product unset ($document->session['order'][$key]); continue; } // remove product $data = $store->domainContent->openById ($product['domain_id'], $product['id']); if (!isset ($data['local']['product_price'])) { // remove product unset ($document->session['order'][$key]); continue; } // remove product $price = $data['local']['product_price']; $total += $price * $product['quantity']; $row = $mod->appendChild (); if (isset ($data['local']['product_code'])) $row->appendChild (array ( 'caption' => $document->textMerge ($data['local']['code']) )); else $row->appendChild (array ( 'caption' => $document->textMerge ('-') )); $row->appendChild (array ( 'caption' => $data['text']['title'] )); $row->appendChild (array ( 'caption' => $document->textMerge ($price) )); $row->appendChild (array ( 'caption' => $document->textMerge ($product['quantity']) )); $row->appendChild (array ( 'caption' => $document->textMerge ($product['quantity'] * $price) )); $row->appendChild ('labels/action/remove') ->url (true, true, '_product-remove-' . $product['id']); } // each product // total $row = $mod->appendChild (); $row->appendChild ('sectionCart_listTotal', array ( 'rowspan' => 4 )); $row->appendChild (array ( 'caption' => $document->textMerge ($total) )); $mod->enabled = true; } // function setModule } // class eclMod_sectionCart_order //!eof:library/sectionCart/eclMod_sectionCart_order.php; //!file:library/sectionCart/order/eclApp_sectionCart_order.php; class eclApp_sectionCart_order { // class eclApp_sectionCart_order static function is_child ($me, $name) { // function is_child global $store; $data = $store->domainComplement->openById ($me->domainId, intval ($name)); if ($data and $data['mode'] == MODE_ORDER) return true; return false; } // function is_child static function get_menu_type ($me) { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names return array (); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper } // function constructor_helper static function dispatch ($document) { // function dispatch } // function dispatch } // class eclApp_sectionCart_order //!eof:library/sectionCart/order/eclApp_sectionCart_order.php; //!file:library/sectionFolder/create/eclApp_sectionFolder_create.php; class eclApp_sectionFolder_create { // class eclApp_sectionFolder_create static function is_child ($me, $name) { // function is_child if (count ($me->pathway) < 5 and $name == 'folder') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names if (count ($me->pathway) < 5) return array ('folder'); return array (); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('sectionFolder_create_content'); $me->map = array ('section_preset'); } // function constructor_helper static function dispatch ($document) { // function dispatch } // function dispatch } // class eclApp_sectionFolder_create //!eof:library/sectionFolder/create/eclApp_sectionFolder_create.php; //!file:library/sectionFolder/eclApp_sectionFolder.php; class eclApp_sectionFolder { // class eclApp_sectionFolder static function constructor_helper ($me) { // function constructor_helper $me->map = array ('section', 'section_create'); } // function constructor_helper static function dispatch ($document) { // function dispatch $me = $document->application; if ($document->access (4)) { // admin $document->mod->editor->enable (); $pathway = $me->pathway; $pathway[] = '-new-section'; $document->mod->context->appendChild ('section_create_contextNew') ->url ($pathway); } // admin $document->mod->list = new eclMod_sectionFolder_list ($document); } // function dispatch static function remove ($me) { // function remove } // function remove } // class eclApp_sectionFolder //!eof:library/sectionFolder/eclApp_sectionFolder.php; //!file:library/sectionFolder/eclMod_sectionFolder_list.php; class eclMod_sectionFolder_list { // class eclMod_sectionFolder_list public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; $me = $document->application; if (isset ($me->data['extras']['list'])) $mod->data = $me->data['extras']['list']; else $mod->data = $document->render->block ('modules/list'); $mod->data['name'] = 'section_' . $me->name; $row = $mod->appendChild (); foreach ($me->menuChildren ($document) as $child) { // each child $row->appendChild ($child->data) ->virtual ($child->access) ->set ('editable', $document->contentEditable) ->swapTitle () ->url ($child->pathway); } // each child if (!$row->children) return; if ($document->templateEditable and $document->access (4)) { // personalite reference $pathway = array_slice ($me->pathway, 1); array_unshift ($pathway, $document->domain->name, '-personalite', 'extras', 'list'); $mod->data['local']['personalite_url'] = $document->url ($pathway); $caption = $store->control->read ('modList_edit'); $mod->data['local']['personalite_caption'] = $caption['text']['caption']; } // reference $mod->enabled = true; } // function setModule } // class eclMod_sectionFolder_list //!eof:library/sectionFolder/eclMod_sectionFolder_list.php; //!file:library/sectionFormulary/create/eclApp_sectionFormulary_create.php; class eclApp_sectionFormulary_create { // class eclApp_sectionFormulary_create static function is_child ($me, $name) { // function is_child if ($name == 'formulary') return true; if ($name == 'contact') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names global $store; if ($store->domainContent->findMarker ($me->domainId, 4)) return array ('formulary'); return array ('contact', 'formulary'); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('sectionFormulary_create_' . $me->name); $me->map = array ('section_preset'); } // function constructor_helper static function dispatch ($document) { // function dispatch } // function dispatch } // class eclApp_sectionFormulary_create //!eof:library/sectionFormulary/create/eclApp_sectionFormulary_create.php; //!file:library/sectionFormulary/done/eclApp_sectionFormulary_done.php; class eclApp_sectionFormulary_done { // class eclApp_sectionFormulary_done static function is_child ($me, $name) { // function is_child if ($name == '-done') return true; return false; } // function is_child static function get_menu_type ($me) { // function get_menu_type return 'section'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names return array ('-done'); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; if ($store->domainContent->open ($me->domainId, '-' . $me->parent->id . '-done')) { // custom content $me->data = &$store->domainContent->open ($me->domainId, '-' . $me->parent->id . '-done'); $me->id = $me->data['id']; } // custom content else $me->data = $store->control->read ('sectionFormulary_done_content'); $me->access = 4; } // function constructor_helper static function dispatch ($document) { // function dispatch global $store; $me = $document->application; $view = $me->id ? 'custom' : 'default'; if ($document->access (4)) { // admin access // Restore to default message if ($view == 'custom' and $document->actions ('message', 'restore')) $view = self::action_restore ($document); // Edit custom message elseif ($view == 'custom' and $document->actions ('message', 'edit')) $view = self::action_edit ($document); // Edit default message elseif ($view == 'default' and $document->actions ('message', 'custom')) $view = self::action_custom ($document); // Create a custom message to save Wysiwyg edition elseif ($view == 'default' and $document->actions ('wysiwyg', 'save')) $view = self::action_wysiwyg_save ($document); if ($view == 'default' or $document->actions ('message', 'custom')) { // default tools // Context custom message $document->mod->context->appendChild ('sectionFormulary_done_custom') ->active ($document->actions ('message', 'custom')) ->url (true, true, '_message-custom'); } // default tools else { // custom tools // context edit $document->mod->context->appendChild ('sectionFormulary_done_edit') ->active ($document->actions ('message', 'edit')) ->url (true, true, '_message-edit'); // Versioning $store->domainExtras->versioning ($document); // context restore $document->mod->context->appendChild ('sectionFormulary_done_restore') ->url (true, true, '_message-restore'); } // custom tools if ($view != 'form') $document->mod->editor->enable (); } // admin access } // function dispatch static function action_wysiwyg_save ($document) { // function action_wysiwyg_save global $store; $me = $document->application; $data = $me->data; $data['name'] = 'm' . TIME; $data['mode'] = MODE_QUESTION; $data['parent_id'] = $me->parent->id; $me->id = $store->domainContent->insert ($me->domainId, $data); $me->data = &$store->domainContent->openById ($me->domainId, $me->id); return 'custom'; } // function action_wysiwyg_save static function action_custom ($document) { // function action_custom global $store; $me = $document->application; $formulary = $document->createFormulary ('sectionFormulary_done_edit', $store->control->read ('sectionFormulary_done_content')); $formulary->action = '_message-custom'; if ($formulary->command ('cancel')) { // cancel unset ($document->actions['message']); return 'default'; } // cancel if ($formulary->command ('save') and $formulary->save ()) { // save unset ($document->actions['message']); $data = $formulary->data; $data['name'] = 'm' . TIME; $data['mode'] = MODE_QUESTION; $data['parent_id'] = $me->parent->id; $me->id = $store->domainContent->insert ($me->domainId, $data); $me->data = $data; $store->domainExtras->createVersion ($me->domainId, $me->data, $document); $document->dataReplace ($me->data); return 'custom'; } // save $document->dataReplace ('sectionFormulary_done_custom'); $document->mod->formulary = $formulary; if ($formulary->errorMsg) $document->mod->humperstilshen->alert ($formulary->errorMsg); $document->mod->languages->action = '_message-custom'; return 'form'; } // function action_custom static function action_edit ($document) { // function action_edit global $store; $me = $document->application; $formulary = $document->createFormulary ('sectionFormulary_done_edit', $me->data); $formulary->action = '_message-edit'; if ($formulary->command ('cancel')) { // cancel unset ($document->actions['message']); return 'custom'; } // cancel if ($formulary->command ('save') and $formulary->save ()) { // save unset ($document->actions['message']); $me->data = $formulary->data; $store->domainExtras->createVersion ($me->domainId, $me->data, $document); $document->dataReplace ($me->data); return 'custom'; } // save $document->dataReplace ('sectionFormulary_done_edit'); $document->mod->formulary = $formulary; if ($formulary->errorMsg) $document->mod->humperstilshen->alert ($formulary->errorMsg); $document->mod->languages->action = '_message-edit'; return 'form'; } // function action_edit static function action_restore ($document) { // function action_restore global $store; $me = $document->application; unset ($document->actions['message']); $store->domainContent->delete ($me->domainId, $me->id); $store->domainFile->deletePrefixedFiles ($me->domainId, $me->data['name']); $store->domainExtras->deleteAllChildren ($me->domainId, $me->id); $document->dataReplace ('sectionFormulary_done_content'); $me->id = 0; return 'default'; } // function action_restore static function remove ($me) { // function remove global $store; if ($me->id) $store->domainContent->delete ($me->domainId, $me->id); $store->domainFile->deletePrefixedFiles ($me->domainId, $me->data['name']); } // function remove } // class eclApp_sectionFormulary_done //!eof:library/sectionFormulary/done/eclApp_sectionFormulary_done.php; //!file:library/sectionFormulary/eclApp_sectionFormulary.php; class eclApp_sectionFormulary { // class eclApp_sectionFormulary static function constructor_helper ($me) { // function constructor_helper $me->map = array ('sectionFormulary_received', 'sectionFormulary_removed', 'sectionFormulary_statistics', 'sectionFormulary_done', 'sectionFormulary_selectColumns', 'personaliteFields'); } // function constructor_helper static function dispatch ($document) { // function dispatch $me = $document->application; $view = true; if ($document->access (4)) { // admin access // edit fields if ($document->actions ('fields', 'edit') or !isset ($me->data['extras']['formulary'])) $view = self::action_edit_fields ($document); // context edit fields $document->mod->context->appendChild ('sectionFormulary_fields') ->url (true, true, '_fields-edit') ->active ($document->actions ('fields', 'edit') or !isset ($me->data['extras']['formulary'])); // security if ($document->actions ('security', 'edit')) $view = self::action_edit_security ($document); // context edit security $document->mod->context->appendChild ('sectionFormulary_security') ->url (true, true, '_security-edit') ->active ($document->actions ('security', 'edit')); } // admin access if (!$view) return; if (isset ($document->actions['review'][1])) $view = self::action_review ($document); elseif (isset ($me->data['extras']['formulary'])) $view = self::action_formulary ($document); if (!$view) return; if ($document->access (4)) $document->mod->editor->enable (); $document->mod->list = new eclMod_sectionFolder_list ($document); } // function dispatch static function action_edit_fields ($document) { // function action_edit_fields $me = $document->application; $formulary = $document->createFormulary ('sectionFormulary_fields', $me->data, 'editfields'); $formulary->action = '_fields-edit'; if ($formulary->command ('cancel')) { // cancel unset ($document->actions['fields']); return true; } // cancel if ($formulary->command ('save') and $formulary->save ()) { // save unset ($document->actions['fields']); $me->data = $formulary->data; return true; } // save $document->dataReplace ('sectionFormulary_fields'); $document->mod->formulary = $formulary; if ($formulary->errorMsg) $document->mod->humperstilshen->alert ($formulary->errorMsg); return false; } // function action_edit_fields static function action_edit_security ($document) { // function action_edit_security $me = $document->application; $formulary = $document->createFormulary ('sectionFormulary_security', $me->data, 'editsecurity'); $formulary->action = '_security-edit'; if ($formulary->command ('cancel')) { // cancel unset ($document->actions['security']); return true; } // cancel if ($formulary->command ('save') and $formulary->save ()) { // save unset ($document->actions['security']); $me->data = $formulary->data; return true; } // save $document->dataReplace ('sectionFormulary_security'); $document->mod->formulary = $formulary; if ($formulary->errorMsg) $document->mod->humperstilshen->alert ($formulary->errorMsg); return false; } // function action_edit_security static function action_formulary ($document) { // function action_formulary $me = $document->application; if (isset ($document->actions['review'][1]) and $token = $document->actions['review'][1] and isset ($document->session['form_' . $token])) $data = $document->session['form_' . $token]; elseif ($document->actions ('share', 'user', 'data', 'enable')) { // share user data $data = array ('share_user_data' => true); } // share user data elseif ($document->user->userId and !$document->received) { // user is connected $data = array (); foreach ($me->data['extras']['formulary'] as $field) { // each field if (isset ($field['share_user_data'])) { // share request $local = array ( 'alert' => 1, 'url' => $document->url (true, true, '_share-user-data-enable') ); $document->mod->humperstilshen->dialog ('personaliteFields_alertShareUserDataRequest', $local); break; } // share request } // each field } // user is connected else $data = array (); $formulary = $document->createFormulary ('sectionFormulary_formulary', $data, 'page0'); if ($formulary->command ('cancel')) { // cancel $formulary->data = array (); } // cancel if ($formulary->command ('save') and $formulary->save ()) { // save $token = md5 (TIME . session_id ()); $document->actions['review'] = array ('review', $token); $document->session['form_' . $token] = $formulary->data; if (isset ($document->application->data['flags']['form_review'])) return self::action_review ($document); return self::action_done ($document); } // save if ($formulary->errorMsg) $document->mod->humperstilshen->alert ($formulary->errorMsg); $document->mod->formulary = $formulary; $document->mod->panel->main = array ('content', 'formulary', 'list'); return true; } // function action_formulary static function action_review ($document) { // function action_review $token = $document->actions['review'][1]; if (isset ($document->session['form_' . $token])) $data = $document->session['form_' . $token]; else return false; $formulary = $document->createFormulary ('sectionFormulary_review', $data, 'review'); if ($formulary->command ('previous')) return self::action_formulary ($document); if ($formulary->command ('save')) return self::action_done ($document); $formulary->action = '_review-' . $token; $document->mod->formulary = $formulary; $document->mod->panel->main = array ('content', 'formulary', 'list'); return false; } // function action_review static function action_done ($document) { // function action_done global $store; $me = $document->application; $token = $document->actions['review'][1]; $data = $document->session['form_' . $token]; $data['domain_id'] = $me->domainId; $data['mode'] = MODE_FORM; $data['parent_id'] = $me->id; $data['owner_id'] = $document->user->userId; $data['status'] = 720; $id = $store->domainExtras->insert ($me->domainId, $data); unset ($document->actions['review']); unset ($document->session['form_' . $token]); $message = $me->child ('-done'); $document->dataReplace ($message->data); if (!isset ($me->data['local']['mail']) or !INTEGRATION_SMTP_ENABLE) return false; $template = clone $document; $template->application = $me->child ('-received')->child ($id); $template->application->access = 0; $template->dispatch (); $template->data['flags']['modLayout_base'] = 'mail'; $template->charset = 'UTF-8'; $template->render (); $subject = $template->selectLanguage ($template->textMerge ($document->domain->data['text']['title'], ' -> ', $me->data['text']['caption'])); $mail = $document->createMail () ->subject ($subject[1]) ->to ($me->data['local']['mail']) ->contentHTML ($template->buffer); $errorMsg = $mail->send (); if ($errorMsg) $document->mod->humperstilshen->alert ($errorMsg); return false; } // function action_done static function remove ($me) { // function remove } // function remove } // class eclApp_sectionFormulary //!eof:library/sectionFormulary/eclApp_sectionFormulary.php; //!file:library/sectionFormulary/eclFilter_sectionFormulary_fields.php; class eclFilter_sectionFormulary_fields { // class eclFilter_sectionFormulary_fields static function create ($fieldName, $control, $formulary) { // function create $fields['children'] = self::getFields ($formulary->document->application); $formulary->insertControlChildren ($fields); } // function create static function save ($fieldName, $control, $formulary) { // function save $fields['children'] = self::getFields ($formulary->document->application); $formulary->insertControlChildren ($fields); } // function save static function getFields ($me) { // function getFields if (!isset ($me->data['extras']['formulary'])) return array (); $index = 0; $formulary = $me->data['extras']['formulary']; $sorted = array (); $fields = array (); foreach ($formulary as $name => $field) { // sort fields if (isset ($field[$index])) $sorted[$index][] = $name; else $sorted[100000][] = $name; } // sort fields ksort ($sorted); foreach ($sorted as $group) { // each group foreach ($group as $name) { // each field $field = $formulary[$name]; list ($filter) = explode ('_', $name, 2); if (!isset ($field['caption'])) continue; $flags = array ( 'field_name' => $name, 'filter' => 'personaliteFields_' . $filter ); if (isset ($field['type'])) $flags['type'] = $field['type']; $fields[] = array ( 'flags' => $flags, 'text' => array ('caption' => $field['caption']), 'local' => $field ); } // each field } // each group return $fields; } // function getFields } // class eclFilter_sectionFormulary_fields //!eof:library/sectionFormulary/eclFilter_sectionFormulary_fields.php; //!file:library/sectionFormulary/eclFilter_sectionFormulary_fieldsView.php; class eclFilter_sectionFormulary_fieldsView { // class eclFilter_sectionFormulary_fieldsView static function create ($fieldName, $control, $formulary) { // function create $me = $formulary->document->application; if ($me->applicationName == 'sectionFormulary_record') $me = $me->parent->parent; $fields['children'] = self::getFields ($me); $formulary->insertControlChildren ($fields); } // function create static function save ($fieldName, $control, $formulary) { // function save } // function save static function getFields ($me) { // function getFields if (!isset ($me->data['extras']['formulary'])) return array (); $fields = array (); foreach ($me->data['extras']['formulary'] as $name => $field) { // each field if (!isset ($field['caption'])) continue; list ($filter) = explode ('_', $name, 2); $flags = array ( 'field_name' => $name, 'filter' => 'personaliteFields_' . $filter, 'view' => true ); $fields[] = array ( 'flags' => $flags, 'text' => array ('caption' => $field['caption']), 'local' => $field ); } // each field return $fields; } // function getFields } // class eclFilter_sectionFormulary_fieldsView //!eof:library/sectionFormulary/eclFilter_sectionFormulary_fieldsView.php; //!file:library/sectionFormulary/eclMod_sectionFormulary.php; class eclMod_sectionFormulary { // class eclMod_sectionFormulary public $document; public $formulary; public function __construct ($document, $formulary) { // function __construct $this->document = $document; $this->formulary = $formulary; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; $me = $document->application; $mod->children = $this->formulary->create (); // Procure o módulo dentro da aplicação if (isset ($me->data['extras']['formulary'])) $mod->data = $me->data['extras']['formulary']; else { // from preset if (isset ($me->data['flags']['modFormulary_preset'])) $preset = $me->data['flags']['modFormulary_preset']; else $preset = 'edit'; $mod->data = $render->block ('modules/formulary_' . $preset); if (!$mod->data) $mod->data = $render->block ('modules/formulary'); } // from preset $mod->data['name'] = 'section_' . $me->name; if ($document->templateEditable and $document->access (4)) { // personalite reference $pathway = array_slice ($me->pathway, 1); array_unshift ($pathway, $document->domain->name, '-personalite', 'extras', 'formulary'); $mod->data['local']['personalite_url'] = $document->url ($pathway); $caption = $store->control->read ('modList_edit'); $mod->data['local']['personalite_caption'] = $caption['text']['caption']; } // reference $mod->enabled = true; } // function setModule } // class eclMod_sectionFormulary //!eof:library/sectionFormulary/eclMod_sectionFormulary.php; //!file:library/sectionFormulary/received/eclApp_sectionFormulary_received.php; class eclApp_sectionFormulary_received { // class eclApp_sectionFormulary_received static function is_child ($me, $name) { // function is_child if ($name == '-received') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'section'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names return array ('-received'); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->access = 4; $me->data = $store->control->read ('sectionFormulary_received_content'); $me->map = array ('sectionFormulary_record'); $children = $store->domainExtras->children ($me->domainId, MODE_FORM, $me->parent->id); $num = 0; foreach ($children as $data) { // each children if (!$data['status'] or $data['status'] == 720) $num++; } // each children $me->data['num_children'] = $num; } // function constructor_helper static function dispatch ($document) { // function dispatch global $store; $me = $document->application; $view = true; if (isset ($document->actions['selectcolumns'])) $view = self::action_selectcolumns ($document); $document->mod->context->appendChild ('sectionFormulary_received_selectColumns') ->active (isset ($document->actions['selectcolumns'])) ->url (true, true, '_selectcolumns'); if (!$view) return; $document->mod->list = new eclMod_sectionFormulary_received_list ($document); } // function dispatch static function action_selectcolumns ($document) { // function action_selectcolumns $formulary = $document->createFormulary ('sectionFormulary_received_selectColumns', array (), 'selectcolumns'); $formulary->action = '_selectcolumns'; if ($formulary->command ('cancel')) { // cancel unset ($document->actions['selectcolumns']); return true; } // cancel if ($formulary->command ('save') and $formulary->save ()) { // save unset ($document->actions['selectcolumns']); return true; } // save $document->mod->formulary = $formulary; $document->dataReplace ('sectionFormulary_received_selectColumns'); return false; } // function action_selectcolumns } // class eclApp_sectionFormulary_received //!eof:library/sectionFormulary/received/eclApp_sectionFormulary_received.php; //!file:library/sectionFormulary/received/eclFilter_sectionFormulary_received_selectColumns.php; class eclFilter_sectionFormulary_received_selectColumns { // class eclFilter_sectionFormulary_received_selectColumns static function create ($fieldName, $control, $formulary) { // function create global $store; $document = $formulary->document; $me = $document->application->parent; $control['name'] = $fieldName; $control['type'] = 'manager'; $item = $formulary->appendChild ($control); // references $pathway = $me->pathway; $pathway[] = '-columns'; $item->data['url_add'] = $document->url ($pathway); $item->data['move-enable'] = 1; $item->data['remove-enable'] = 1; $item->data['edit-enable'] = 0; if (!isset ($me->data['extras']['formulary'])) return; $sorted = array (); foreach ($me->data['extras']['formulary'] as $name => $field) { // each field switch ($field['filter']) { // switch filter case 'checkbox': case 'created': case 'mail': case 'radio': case 'select': case 'text': if (isset ($field['list_index'])) $sorted[$field['list_index']][] = array ($name, $field); } // switch filter } // each field ksort ($sorted); $buffer = ''; foreach ($sorted as $group) { // each group foreach ($group as $column) { // each column list ($name, $field) = $column; $buffer .= $name . CRLF; // $pathway = $me->pathway; // $pathway[] = '-columns'; // $pathway[] = $name; $local = array ( 'value' => $name, 'caption' => $field['caption'], // 'url' => $document->url ($pathway) ); $item->appendChild ($local); } // each column } // each group $item->data['serialized'] = $buffer; } // function create static function save ($fieldName, $control, $formulary) { // function save $me = $formulary->document->application->parent; if (!isset ($me->data['extras']['formulary'])) return; if (!isset ($formulary->received[$fieldName . '_serialized'])) return $formulary->setRequiredMsg ($fieldName, $control); foreach ($me->data['extras']['formulary'] as &$field) { // clear each field unset ($field['list_index']); } // clear each field unset ($field); $serialized = $formulary->received[$fieldName . '_serialized']; $index = 0; foreach (explode (LF, $serialized) as $name) { // each line $index++; $name = trim ($name); if (isset ($me->data['extras']['formulary'][$name])) $me->data['extras']['formulary'][$name]['list_index'] = $index; } // each line } // function save } // class eclFilter_sectionFormulary_received_selectColumns //!eof:library/sectionFormulary/received/eclFilter_sectionFormulary_received_selectColumns.php; //!file:library/sectionFormulary/received/eclMod_sectionFormulary_received_list.php; class eclMod_sectionFormulary_received_list { // class eclMod_sectionFormulary_received_list public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; $me = $document->application; $mod->data = $store->control->read ('sectionFormulary_received_list'); // Conditions if (!isset ($me->parent->data['extras']['formulary'])) return; $from = &$me->parent->data['extras']['formulary']; // Get listable fields $sorted = array (); foreach ($from as $name => $field) { // sort fields if (isset ($field['list_index'])) $sorted[$field['list_index']] = $name; } // sort fields ksort ($sorted); if (!$sorted) { // append created column $from['created'] = $store->control->read ('personaliteFields_created_preset'); $sorted[] = 'created'; } // append created column // Table headers $row = $mod->appendChild (); foreach ($sorted as $name) { // each field $row->appendChild ($from[$name]); } // each field // list received forms $children = $store->domainExtras->children ($me->domainId, MODE_FORM, $me->parent->id); foreach ($children as $data) { // each child if ($data['status'] != 0 and ($data['status'] < 720 or $data['status'] > 729)) continue; $pathway = $me->pathway; $pathway[] = $data['id']; $url = $document->url ($pathway); $row = $mod->appendChild (); foreach ($sorted as $name) { // each column list ($filter) = explode ('_', $name, 2); if (!preg_match ('/[a-z]+/', $filter)) { // error $row->appendChild (); continue; } // error $class = 'eclFilter_personaliteFields_' . $filter; $local = $class::column ($document, $data, $name, $from[$name], $url); if (!$local) continue; $row->appendChild ($local); } // each column } // each child $mod->enabled = true; } // function setModule } // class eclMod_sectionFormulary_received_list //!eof:library/sectionFormulary/received/eclMod_sectionFormulary_received_list.php; //!file:library/sectionFormulary/record/eclApp_sectionFormulary_record.php; class eclApp_sectionFormulary_record { // class eclApp_sectionFormulary_record static function is_child ($me, $name) { // function is_child global $store; if ($name[0] == '-') return false; $data = $store->domainExtras->openById ($me->domainId, intval ($name)); if ($data and $data['mode'] == MODE_FORM and $data['parent_id'] == $me->parent->id) return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'post'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names global $store; return array (); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = &$store->domainExtras->openById ($me->domainId, intval ($me->name)); $me->id = $me->data['id']; } // function constructor_helper static function dispatch ($document) { // function dispatch global $store; $me = $document->application; if ($me->parent->name == '-received') $me->data['status'] = 721; if ($document->actions ('record', 'remove')) return self::action_remove ($document); // context remove $document->mod->context->appendChild ('sectionFormulary_record_remove') ->url (true, true, '_record-remove'); $data = $store->control->read ('sectionFormulary_record_content'); $document->dataMerge ($data); $formulary = $document->createFormulary ('sectionFormulary_view', $me->data, 'form'); $document->mod->formulary = $formulary; } // function dispatch static function action_remove ($document) { // function action_remove $me = $document->application; if ($me->parent->name == '-received') $me->data['status'] = 730; else $me->remove (); $parent = $me->parent; $parent->reset (); $document->application = $parent; $document->application->dispatch ($document); $document->reload = $document->url ($parent->pathway); return; } // function action_remove static function remove ($me) { // function remove global $store; $store->domainExtras->delete ($me->domainId, $me->id); $store->domainFile->deletePrefixedFiles ($me->domainId, $me->name); } // function remove } // class eclApp_sectionFormulary_record //!eof:library/sectionFormulary/record/eclApp_sectionFormulary_record.php; //!file:library/sectionFormulary/removed/eclApp_sectionFormulary_removed.php; class eclApp_sectionFormulary_removed { // class eclApp_sectionFormulary_removed static function is_child ($me, $name) { // function is_child if ($name == '-removed') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'section'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names global $store; $children = $store->domainExtras->children ($me->domainId, MODE_FORM, $me->parent->id); foreach ($children as $data) { // each children if ($data['status'] >= 730) return array ('-removed'); } // each data return array (); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->access = 4; $me->data = $store->control->read ('sectionFormulary_removed_content'); $me->map = array ('sectionFormulary_record'); } // function constructor_helper static function dispatch ($document) { // function dispatch global $store; $me = $document->application; $children = $store->domainExtras->children ($me->domainId, MODE_FORM, $me->parent->id); $document->mod->list = new eclMod_sectionFormulary_removed_list ($document); } // function dispatch } // class eclApp_sectionFormulary_removed //!eof:library/sectionFormulary/removed/eclApp_sectionFormulary_removed.php; //!file:library/sectionFormulary/removed/eclMod_sectionFormulary_removed_list.php; class eclMod_sectionFormulary_removed_list { // class eclMod_sectionFormulary_removed_list public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; $me = $document->application; $mod->data = $store->control->read ('sectionFormulary_received_list'); $fieldsList = array ( 'created' => 'created' ); $children = $store->domainExtras->children ($me->domainId, MODE_FORM, $me->parent->id); foreach ($children as $data) { // each child if ($data['status'] < 730 or $data['status'] > 739) continue; $pathway = $me->pathway; $pathway[] = $data['id']; $row = $mod->appendChild (); foreach ($fieldsList as $fieldName => $fieldType) { // each field switch ($fieldType) { // switch type case 'created': $local['caption'] = $document->textMerge (date ('d-m-Y h:i', $data['created'])); $row->appendChild ($local) ->url ($pathway); break; } // switch type } // each field } // each child $mod->enabled = true; } // function setModule } // class eclMod_sectionFormulary_removed_list //!eof:library/sectionFormulary/removed/eclMod_sectionFormulary_removed_list.php; //!file:library/sectionFormulary/selectColumns/eclApp_sectionFormulary_selectColumns.php; class eclApp_sectionFormulary_selectColumns { // class eclApp_sectionFormulary_selectColumns static function is_child ($me, $name) { // function is_child if ($name == '-columns') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names () { // function get_children_names return array ('-columns'); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('sectionFormulary_selectColumns_content'); $me->isDomain = true; } // function constructor_helper static function dispatch ($document) { // function dispatch $document->mod->list = new eclMod_sectionFormulary_selectColumns_list ($document); } // function dispatch } // class eclApp_sectionFormulary_selectColumns //!eof:library/sectionFormulary/selectColumns/eclApp_sectionFormulary_selectColumns.php; //!file:library/sectionFormulary/selectColumns/eclMod_sectionFormulary_selectColumns_list.php; class eclMod_sectionFormulary_selectColumns_list { // class eclMod_sectionFormulary_selectColumns_list public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; $me = $document->application->parent; $mod->data = $store->control->read ('modules/list'); if (!isset ($me->data['extras']['formulary'])) return; foreach ($me->data['extras']['formulary'] as $name => $field) { // each field if (!isset ($field['filter'])) continue; switch ($field['filter']) { // switch filter case 'address': case 'checkbox': case 'created': case 'mail': case 'phone': case 'radio': case 'select': case 'text': case 'user': case 'status': $mod->appendChild ($field, array ('name' => $name)); } // switch filter } // each field $mod->enabled = true; } // function setModule } // class eclMod_sectionFormulary_selectColumns_list //!eof:library/sectionFormulary/selectColumns/eclMod_sectionFormulary_selectColumns_list.php; //!file:library/sectionFormulary/statistics/eclApp_sectionFormulary_statistics.php; class eclApp_sectionFormulary_statistics { // class eclApp_sectionFormulary_statistics static function is_child ($me, $name) { // function is_child if ($name == '-statistics') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'section'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names if (!isset ($me->data['extras']['formulary'])) return array (); foreach ($me->data['extras']['formulary'] as $name => $field) { // each field list ($filter) = explode ('_', $name); if ($filter == 'radio' or $filter == 'checkbox' or $filter == 'select') return array ('-statistics'); } // each field return array (); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->access = 4; $me->data = $store->control->read ('sectionFormulary_statistics_content'); } // function constructor_helper static function dispatch ($document) { // function dispatch global $store; $document->mod->list = new eclMod_sectionFormulary_statistics_list ($document); } // function dispatch } // class eclApp_sectionFormulary_statistics //!eof:library/sectionFormulary/statistics/eclApp_sectionFormulary_statistics.php; //!file:library/sectionFormulary/statistics/eclMod_sectionFormulary_statistics_list.php; class eclMod_sectionFormulary_statistics_list { // class eclMod_sectionFormulary_statistics_list public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; $me = $document->application->parent; $mod->data = $store->control->read ('sectionFormulary_statistics_list'); if (!isset ($me->data['extras']['formulary'])) return; $children = array (); foreach ($store->domainContent->children ($me->domainId, MODE_FORM, $me->id) as $child) { // each child if ($child['marker'] == 255) continue; $children[] = $child; } // each child if (!$children) return; $total = count ($children); foreach ($me->data['extras']['formulary'] as $fieldName => $field) { // each field switch ($field['filter']) { // switch filter case 'checkbox': $counter = 0; foreach ($children as $child) { // each child if (isset ($child['local']['form'][$fieldName]['value']) and $child['local']['form'][$fieldName]['value']) $counter++; } // each child $item = $mod->appendChild (); $item->data['caption'] = $field['caption']; $item->data['units'] = strval ($counter); $item->data['percent'] = strval (round ( ($counter / $total) * 100, 1)); break; case 'select': case 'radio': $values = array (); foreach ($children as $child) { // each child if (isset ($child['local']['form'][$fieldName]['value'])) { // set value if (isset ($values[$child['local']['form'][$fieldName]['value']])) $values[$child['local']['form'][$fieldName]['value']]++; else $values[$child['local']['form'][$fieldName]['value']] = 1; } // set value } // each child $select = $mod->appendChild ($field); $select->data['header'] = 1; foreach ($field['options'] as $value => $caption) { // each option $option = $select->appendChild (); $option->data['caption'] = $caption; if (isset ($values[$value])) { // set values $option->data['units'] = strval ($values[$value]); $option->data['percent'] = strval (round ( ($values[$value] / $total) * 100, 1)); } // set values else { // empty $option->data['units'] = '0'; $option->data['percent'] = '0'; } // empty } // each option } // switch filter } // each field $mod->enabled = true; } // function setModule } // class eclMod_sectionFormulary_statistics_list //!eof:library/sectionFormulary/statistics/eclMod_sectionFormulary_statistics_list.php; //!file:library/sectionGlossary/create/eclApp_sectionGlossary_create.php; class eclApp_sectionGlossary_create { // class eclApp_sectionGlossary_create static function is_child ($me, $name) { // function is_child global $store; if ($me->parent->access) return false; if (!$store->domainContent->findMarker ($me->domainId, 1) and $name == 'glossary') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names ($parent) { // function get_children_names global $store; if ($parent->parent->access) return array (); if (!$store->domainContent->findMarker ($parent->domainId, 1)) return array ('glossary'); return array (); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('sectionGlossary_create_content'); $me->map = array ('section_preset'); } // function constructor_helper static function dispatch ($document) { // function dispatch } // function dispatch } // class eclApp_sectionGlossary_create //!eof:library/sectionGlossary/create/eclApp_sectionGlossary_create.php; //!file:library/sectionGlossary/eclApp_sectionGlossary.php; class eclApp_sectionGlossary { // class eclApp_sectionGlossary static function constructor_helper ($me) { // function constructor_helper $me->map = array ('domainGlossary_keyword'); } // function constructor_helper static function dispatch ($document) { // function dispatch if ($document->access (4)) $document->mod->editor->enable (); $document->mod->list = new eclMod_domainGlossary_list ($document); } // function dispatch static function remove ($me) { // function remove global $store; $data = &$store->domainContent->open ($me->domainId, '-register'); unset ($data['links']['sectionGlossary']); } // function remove } // class eclApp_sectionGlossary //!eof:library/sectionGlossary/eclApp_sectionGlossary.php; //!file:library/sectionInfo/create/eclApp_sectionInfo_create.php; class eclApp_sectionInfo_create { // class eclApp_sectionInfo_create static function is_child ($me, $name) { // function is_child global $store; if ($me->parent->access) return false; if (!$store->domainContent->findMarker ($me->domainId, 6) and $name == 'info') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names ($parent) { // function get_children_names global $store; if ($parent->parent->access) return array (); if (!$store->domainContent->findMarker ($parent->domainId, 6)) return array ('info'); return array (); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('sectionInfo_create_content'); $me->map = array ('section_preset'); } // function constructor_helper } // class eclApp_sectionInfo_create //!eof:library/sectionInfo/create/eclApp_sectionInfo_create.php; //!file:library/sectionInfo/eclApp_sectionInfo.php; class eclApp_sectionInfo { // class eclApp_sectionInfo static function constructor_helper ($me) { // function constructor_helper } // function constructor_helper static function dispatch ($document) { // function dispatch if ($document->access (4)) $document->mod->editor->enable (); $document->mod->formulary = $document->createFormulary ('domainInfo_view', $document->domain->data); $document->mod->list = new eclMod_domainInfo_listAdministrators ($document); } // function dispatch static function remove ($me) { // function remove } // function remove } // class eclApp_sectionInfo //!eof:library/sectionInfo/eclApp_sectionInfo.php; //!file:library/sectionMenu/create/eclApp_sectionMenu_create.php; class eclApp_sectionMenu_create { // class eclApp_sectionMenu_create static function is_child ($me, $name) { // function is_child if (count ($me->pathway) < 3 and $name == 'menu') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names if (count ($me->pathway) < 3) return array ('menu'); return array (); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('sectionMenu_create_menu'); $me->map = array ('section_preset'); } // function constructor_helper static function dispatch ($document) { // function dispatch } // function dispatch } // class eclApp_sectionMenu_create //!eof:library/sectionMenu/create/eclApp_sectionMenu_create.php; //!file:library/sectionMenu/eclApp_sectionMenu.php; class eclApp_sectionMenu { // class eclApp_sectionMenu static function constructor_helper ($me) { // function constructor_helper $me->map = array ('section', 'section_create'); } // function constructor_helper static function dispatch ($document) { // function dispatch $me = $document->application; if ($document->access (4)) { // admin $pathway = $me->pathway; $pathway[] = '-new-section'; $document->mod->context->appendChild ('section_create_contextNew') ->url ($pathway); } // admin $document->mod->list = new eclMod_sectionMenu_list ($document); } // function dispatch static function remove ($me) { // function remove } // function remove } // class eclApp_sectionMenu //!eof:library/sectionMenu/eclApp_sectionMenu.php; //!file:library/sectionMenu/eclMod_sectionMenu_list.php; class eclMod_sectionMenu_list { // class eclMod_sectionMenu_list public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; $me = $document->application; if (isset ($me->data['extras']['list'])) $mod->data = $me->data['extras']['list']; else $mod->data = $document->render->block ('modules/list'); $mod->data['name'] = 'section_' . $me->name; $row = $mod->appendChild (); foreach ($me->menuChildren ($document) as $child) { // each child $row->appendChild ($child->data) ->virtual ($child->access) ->set ('editable', $document->contentEditable) ->swapTitle () ->url ($child->pathway); } // each child if (!$row->children) return; if ($document->templateEditable and $document->access (4)) { // personalite reference $pathway = array ($document->domain->name, '-dialog', 'section_list_menu_' . $me->name); $mod->data['local']['personalite_url'] = $document->url ($pathway); $caption = $store->control->read ('modList_edit'); $mod->data['local']['personalite_caption'] = $caption['text']['caption']; } // reference $mod->enabled = true; } // function setModule } // class eclMod_sectionMenu_list //!eof:library/sectionMenu/eclMod_sectionMenu_list.php; //!file:library/sectionPrivacyPolicy/create/eclApp_sectionPrivacyPolicy_create.php; class eclApp_sectionPrivacyPolicy_create { // class eclApp_sectionPrivacyPolicy_create static function is_child ($me, $name) { // function is_child global $store; if (!$store->domainContent->findMarker ($me->domainId, 7) and $name == 'privacypolicy') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names global $store; $domain = $me; while (!$domain->isDomain and $domain = $domain->parent); if ($domain->name != SYSTEM_DEFAULT_DOMAIN_NAME) return array (); if (!$store->domainContent->findMarker ($me->domainId, 7)) return array ('privacypolicy'); return array (); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('sectionPrivacyPolicy_create_content'); $me->map = array ('section_preset'); } // function constructor_helper static function dispatch ($document) { // function dispatch } // function dispatch } // class eclApp_sectionPrivacyPolicy_create //!eof:library/sectionPrivacyPolicy/create/eclApp_sectionPrivacyPolicy_create.php; //!file:library/sectionPrivacyPolicy/eclApp_sectionPrivacyPolicy.php; class eclApp_sectionPrivacyPolicy { // class eclApp_sectionPrivacyPolicy static function constructor_helper ($me) { // function constructor_helper } // function constructor_helper static function dispatch ($document) { // function dispatch if ($document->access (4)) $document->mod->editor->enable (); } // function dispatch static function remove ($me) { // function remove } // function remove } // class eclApp_sectionPrivacyPolicy //!eof:library/sectionPrivacyPolicy/eclApp_sectionPrivacyPolicy.php; //!file:library/sectionRedirect/create/eclApp_sectionRedirect_create.php; class eclApp_sectionRedirect_create { // class eclApp_sectionRedirect_create static function is_child ($me, $name) { // function is_child global $store; if ($name == 'redirect') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names global $store; return array ('redirect'); return array (); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('sectionRedirect_create_content'); $me->map = array ('section_preset'); } // function constructor_helper static function dispatch ($document) { // function dispatch } // function dispatch } // class eclApp_sectionRedirect_create //!eof:library/sectionRedirect/create/eclApp_sectionRedirect_create.php; //!file:library/sectionRedirect/eclApp_sectionRedirect.php; class eclApp_sectionRedirect { // class eclApp_sectionRedirect static function constructor_helper ($me) { // function constructor_helper $me->data['hits']++; $me->access = 0; } // function constructor_helper static function dispatch ($document) { // function dispatch global $io; if ($document->access (4)) { // admin $document->dataMerge ('sectionRedirect_content'); return; } // admin $me = $document->application; if (!isset ($me->data['local']['url']) or !$me->data['local']['url']) return; $me->data['value']++; $document->reload = $me->data['local']['url']; $io->log->silent = true; } // function dispatch static function remove ($me) { // function remove } // function remove } // class eclApp_sectionRedirect //!eof:library/sectionRedirect/eclApp_sectionRedirect.php; //!file:library/sectionSearch/create/eclApp_sectionSearch_create.php; class eclApp_sectionSearch_create { // class eclApp_sectionSearch_create static function is_child ($me, $name) { // function is_child global $store; if ($me->parent->access) return false; if (!$store->domainContent->findMarker ($me->domainId, 3) and $name == 'search') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names ($parent) { // function get_children_names global $store; if ($parent->parent->access) return array (); if (!$store->domainContent->findMarker ($parent->domainId, 3)) return array ('search'); return array (); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('sectionSearch_create_content'); $me->map = array ('section_preset'); } // function constructor_helper static function dispatch ($document) { // function dispatch } // function dispatch } // class eclApp_sectionSearch_create //!eof:library/sectionSearch/create/eclApp_sectionSearch_create.php; //!file:library/sectionSearch/eclApp_sectionSearch.php; class eclApp_sectionSearch { // class eclApp_sectionSearch static function constructor_helper ($me) { // function constructor_helper } // function constructor_helper static function dispatch ($document) { // function dispatch if ($document->access (4)) $document->mod->editor->enable (); $document->mod->panel->main = array ('content', 'formulary', 'list'); $document->mod->formulary = new eclMod_domainSearch_formulary ($document); $document->mod->list = new eclMod_domainSearch_list ($document); } // function dispatch static function remove ($me) { // function remove } // function remove } // class eclApp_sectionSearch //!eof:library/sectionSearch/eclApp_sectionSearch.php; //!file:library/sectionSubdomains/create/eclApp_sectionSubdomains_create.php; class eclApp_sectionSubdomains_create { // class eclApp_sectionSubdomains_create static function is_child ($me, $name) { // function is_child global $store; if (!$store->domainContent->findMarker ($me->domainId, 91) and $name == 'subdomains') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names global $store; $domain = $me; while (!$domain->isDomain and $domain = $domain->parent); if ($domain->name != SYSTEM_DEFAULT_DOMAIN_NAME) return array (); if (!$store->domainContent->findMarker ($me->domainId, 91)) return array ('subdomains'); return array (); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('sectionSubdomains_create_content'); $me->map = array ('section_preset'); } // function constructor_helper static function dispatch ($document) { // function dispatch } // function dispatch } // class eclApp_sectionSubdomains_create //!eof:library/sectionSubdomains/create/eclApp_sectionSubdomains_create.php; //!file:library/sectionSubdomains/eclApp_sectionSubdomains.php; class eclApp_sectionSubdomains { // class eclApp_sectionSubdomains static function constructor_helper ($me) { // function constructor_helper } // function constructor_helper static function dispatch ($document) { // function dispatch if ($document->access (4)) $document->mod->editor->enable (); $document->mod->list = new eclMod_sectionSubdomains_list ($document); } // function dispatch static function remove ($me) { // function remove } // function remove } // class eclApp_sectionSubdomains //!eof:library/sectionSubdomains/eclApp_sectionSubdomains.php; //!file:library/sectionSubdomains/eclMod_sectionSubdomains_list.php; class eclMod_sectionSubdomains_list { // class eclMod_sectionSubdomains_list public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; $me = $document->application; $row = $mod->appendChild (); foreach ($store->domain->childrenNames () as $name) { // each domain $domainId = $store->domain->getId ($name); $status = $store->domain->getStatus ($name); if ($status != 2) continue; $data = $store->domainContent->open ($domainId, '-register'); $row->appendChild ($data) ->swapTitle () ->url (array ($name)); } // each domain if (!$row->children) return; if (isset ($me->data['extras']['list'])) $mod->data = $me->data['extras']['list']; else $mod->data = $document->render->block ('modules/list'); $mod->data['name'] = 'section_' . $me->name; if ($document->templateEditable and $document->access (4)) { // personalite reference $pathway = array_slice ($me->pathway, 1); array_unshift ($pathway, $document->domain->name, '-personalite', 'extras', 'list'); $mod->data['local']['personalite_url'] = $document->url ($pathway); $caption = $store->control->read ('modList_edit'); $mod->data['local']['personalite_caption'] = $caption['text']['caption']; } // reference $mod->enabled = true; } // function setModule } // class eclMod_sectionSubdomains_list //!eof:library/sectionSubdomains/eclMod_sectionSubdomains_list.php; //!file:library/sectionTeam/create/eclApp_sectionTeam_create.php; class eclApp_sectionTeam_create { // class eclApp_sectionTeam_create static function is_child ($me, $name) { // function is_child global $store; if (!$store->domainContent->findMarker ($me->domainId, 30) and $name == 'team') return true; if (!$store->domainContent->findMarker ($me->domainId, 31) and $name == 'partners') return true; if (!$store->domainContent->findMarker ($me->domainId, 32) and $name == 'students') return true; if (!$store->domainContent->findMarker ($me->domainId, 33) and $name == 'subscriptions') return true; if (!$store->domainContent->findMarker ($me->domainId, 34) and $name == 'suppliers') return true; if (!$store->domainContent->findMarker ($me->domainId, 35) and $name == 'clients') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names global $store; $names = array (); if (!$store->domainContent->findMarker ($me->domainId, 30)) $names[] = 'team'; if (!$store->domainContent->findMarker ($me->domainId, 31)) $names[] = 'partners'; if (!$store->domainContent->findMarker ($me->domainId, 32)) $names[] = 'students'; if (!$store->domainContent->findMarker ($me->domainId, 33)) $names[] = 'subscriptions'; if (!$store->domainContent->findMarker ($me->domainId, 34)) $names[] = 'suppliers'; if (!$store->domainContent->findMarker ($me->domainId, 35)) $names[] = 'clients'; return $names; } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('sectionTeam_create_' . $me->name); $me->map = array ('section_preset'); } // function constructor_helper static function dispatch ($document) { // function dispatch } // function dispatch } // class eclApp_sectionTeam_create //!eof:library/sectionTeam/create/eclApp_sectionTeam_create.php; //!file:library/sectionTeam/eclApp_sectionTeam.php; class eclApp_sectionTeam { // class eclApp_sectionTeam static function constructor_helper ($me) { // function constructor_helper $me->map = array ('sectionTeam_group', 'sectionTeam_group_new', 'sectionTeam_member', 'sectionTeam_member_import', 'sectionTeam_member_inactive', 'sectionTeam_member_new'); } // function constructor_helper static function dispatch ($document) { // function dispatch if ($document->access (4)) $document->mod->editor->enable (); $document->mod->panel->main = array ('content', 'listmembers', 'listgroups'); $document->mod->listmembers = new eclMod_sectionTeam_listAllMembers ($document); $document->mod->listgroups = new eclMod_sectionTeam_listAllGroups ($document); } // function dispatch static function remove ($me) { // function remove } // function remove } // class eclApp_sectionTeam //!eof:library/sectionTeam/eclApp_sectionTeam.php; //!file:library/sectionTeam/eclMod_sectionTeam_listAllGroups.php; class eclMod_sectionTeam_listAllGroups { // class eclMod_sectionTeam_listAllGroups public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; $me = $document->application; $marker = $me->data['marker']; $mod->data = array_replace_recursive ( $store->control->read ('modules/list_card'), $store->control->read ('sectionTeam_listAllGroups') ); $row = $mod->appendChild (); $sectors = $store->domainContent->children ($me->domainId, MODE_GROUP, 0); foreach ($sectors as $sector) { // each sector if ($sector['marker'] != $marker) continue; $pathway = $me->pathway; $pathway[] = $sector['name']; $row->appendChild ($sector) ->url ($pathway); } // each sector if ($document->access (4)) { // admin access if ($row->children) $row = $mod->appendChild (); $pathway = $me->pathway; $pathway[] = '-new-group'; $row->appendChild ('sectionTeam_group_new') ->url ($pathway); } // admin access if ($row->children) $mod->enabled = true; } // function setModule } // class eclMod_sectionTeam_listAllGroups //!eof:library/sectionTeam/eclMod_sectionTeam_listAllGroups.php; //!file:library/sectionTeam/eclMod_sectionTeam_listAllMembers.php; class eclMod_sectionTeam_listAllMembers { // class eclMod_sectionTeam_listAllMembers public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; $me = $document->application; $marker = $me->data['marker']; if ($marker == 30) $mod->data = $store->control->read ('sectionTeam_listAllMembers'); elseif ($marker == 31) $mod->data = $store->control->read ('sectionTeam_listAllPartners'); elseif ($marker == 32) $mod->data = $store->control->read ('sectionTeam_listAllStudents'); elseif ($marker == 33) $mod->data = $store->control->read ('sectionTeam_listAllSubscriptions'); elseif ($marker == 34) $mod->data = $store->control->read ('sectionTeam_listAllSuppliers'); elseif ($marker == 35) $mod->data = $store->control->read ('sectionTeam_listAllClients'); $mod->data = array_replace_recursive ($store->control->read ('modules/list_card'), $mod->data); $where = array ( 'domain_id' => $me->domainId, 'mode' => MODE_SUBSCRIPTION, 'marker' => $marker, ); $members = $store->domainContent->search ($where, 255, 0, 0, 'name', 'desc'); $row = $mod->appendChild (); foreach ($members as $member) { // each member if ($member['access'] > 4) { // inactive $inactive = true; continue; } // inactive $pathway = $me->pathway; $pathway[] = $member['name']; $row->appendChild ($member) ->swapTitle () ->url ($pathway) ->popUpOpen (); } // each member if ($document->access (4)) { // add new member if ($row->children) $row = $mod->appendChild (); // inactive if (isset ($inactive)) { // inactive member $pathway = $me->pathway; $pathway[] = '-inactive-member'; $row->appendChild ('sectionTeam_member_inactive') ->url ($pathway) ->popUpOpen (); } // inactive member // new $pathway = $me->pathway; $pathway[] = '-new-member'; $row->appendChild ('sectionTeam_member_new') ->url ($pathway) ->popUpOpen (); // import existing profile $pathway = $me->pathway; $pathway[] = '-import-profile'; $row->appendChild ('sectionTeam_member_import') ->url ($pathway) ->popUpOpen (); } // add new member if ($row->children) $mod->enabled = true; } // function setModule } // class eclMod_sectionTeam_listAllMembers //!eof:library/sectionTeam/eclMod_sectionTeam_listAllMembers.php; //!file:library/sectionTeam/group/eclApp_sectionTeam_group.php; class eclApp_sectionTeam_group { // class eclApp_sectionTeam_group static function is_child ($me, $name) { // function is_child global $store; $data = $store->domainContent->openChild ($me->domainId, MODE_GROUP, 0, $name); if ($data) return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'post'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names global $store; return array (); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = &$store->domainContent->open ($me->domainId, $me->name); $me->id = $me->data['id']; $me->access = 4; } // function constructor_helper static function dispatch ($document) { // function dispatch $view = true; // Action remove if ($document->actions ('group', 'remove')) return self::action_remove ($document); // action edit if ($document->actions ('group', 'edit')) $view = self::action_edit ($document); // context edit $document->mod->context->appendChild ('sectionTeam_group_edit') ->active ($document->actions ('group', 'edit')) ->url (true, true, '_group-edit'); // Context remove $document->mod->context->appendChild ('sectionTeam_group_remove') ->url (true, true, '_group-remove') ->confirm ('sectionTeam_group_removeConfirm'); if ($view) { // view $document->mod->editor->enable (); $document->mod->list = new eclMod_sectionTeam_group_listMembers ($document); } // view } // function dispatch static function action_edit ($document) { // function action_edit $me = $document->application; $formulary = $document->createFormulary ('sectionTeam_group_edit', $me->data, 'group_edit'); $formulary->action = '_group-edit'; if ($formulary->command ('cancel')) { // cancel unset ($document->actions['group']); return true; } // cancel if ($formulary->command ('save') and $formulary->save ()) { // save unset ($document->actions['group']); $me->data = $formulary->data; $document->dataReplace ($me->data); return true; } // save $document->mod->formulary = $formulary; if ($formulary->errorMsg) $document->mod->humperstilshen->alert ($formulary->errorMsg); return false; } // function action_edit static function action_remove ($document) { // function action_remove global $store; $me = $document->application; unset ($document->actions['group']); $parent = $me->parent; $store->domainContent->delete ($me->domainId, $me->id); $store->domainFile->deletePrefixedFiles ($me->domainId, $me->name); $parent->reset (); // reindex brothers $store->domainContent->childrenReindex ($parent->domainId, MODE_group, $parent->id); $document->application = $parent; $document->reload = $document->url (); $document->application->dispatch ($document); } // function action_remove static function remove ($me) { // function remove global $store; /* * Do not remove by parent */ } // function remove } // class eclApp_sectionTeam_group //!eof:library/sectionTeam/group/eclApp_sectionTeam_group.php; //!file:library/sectionTeam/group/eclApp_sectionTeam_group_new.php; class eclApp_sectionTeam_group_new { // class eclApp_sectionTeam_group_new static function is_child ($me, $name) { // function is_child if ($name == '-new-group') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'section'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names return array ('-new-group'); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->access = 4; $me->data = $store->control->read ('sectionTeam_group_new'); } // function constructor_helper static function dispatch ($document) { // function dispatch global $store; $me = $document->application; $formulary = $document->createFormulary ('sectionTeam_group_edit', array (), 'new_group'); if ($formulary->command ('save') and $formulary->save ()) { // save $data = $formulary->data; $data['domain_id'] = $me->domainId; $data['mode'] = MODE_GROUP; $data['marker'] = $me->parent->data['marker']; $store->domainContent->insert ($me->domainId, $data); $parent = $me->parent; $parent->reset (); $document->application = $parent->child ($data['name']); $document->application->dispatch ($document); $document->reload = $document->url (); return; } // save $document->mod->formulary = $formulary; if ($formulary->errorMsg) $document->mod->humperstilshen->alert ($formulary->errorMsg); } // function dispatch } // class eclApp_sectionTeam_group_new //!eof:library/sectionTeam/group/eclApp_sectionTeam_group_new.php; //!file:library/sectionTeam/group/eclMod_sectionTeam_group_listMembers.php; class eclMod_sectionTeam_group_listMembers { // class eclMod_sectionTeam_group_listMembers public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; $me = $document->application; $marker = $me->data['marker']; if ($marker == 30) $mod->data = $store->control->read ('sectionTeam_listAllMembers'); elseif ($marker == 31) $mod->data = $store->control->read ('sectionTeam_listAllPartners'); elseif ($marker == 32) $mod->data = $store->control->read ('sectionTeam_listAllStudents'); elseif ($marker == 33) $mod->data = $store->control->read ('sectionTeam_listAllSubscriptions'); elseif ($marker == 34) $mod->data = $store->control->read ('sectionTeam_listAllSuppliers'); elseif ($marker == 35) $mod->data = $store->control->read ('sectionTeam_listAllClients'); $mod->data = array_replace_recursive ($store->control->read ('modules/list_card'), $mod->data); $members = $store->domainContent->children ($me->domainId, MODE_SUBSCRIPTION, $me->id);; $row = $mod->appendChild (); foreach ($members as $member) { // each member if ($member['access'] > 4) { // inactive $inactive = true; continue; } // inactive $pathway = $me->parent->pathway; $pathway[] = $member['name']; $row->appendChild ($member) ->swapTitle () ->url ($pathway) ->popUpOpen (); } // each member if ($document->access (4)) { // add new member if ($row->children) $row = $mod->appendChild (); // inactive if (isset ($inactive)) { // inactive member $pathway = $me->parent->pathway; $pathway[] = '-inactive-member'; $row->appendChild ('sectionTeam_member_inactive') ->url ($pathway) ->popUpOpen (); } // inactive member // new $pathway = $me->parent->pathway; $pathway[] = '-new-member'; $row->appendChild ('sectionTeam_member_new') ->url ($pathway) ->popUpOpen (); // import existing profile $pathway = $me->parent->pathway; $pathway[] = '-import-profile'; $row->appendChild ('sectionTeam_member_import') ->url ($pathway) ->popUpOpen (); } // add new member if ($row->children) $mod->enabled = true; } // function setModule } // class eclMod_sectionTeam_group_listMembers //!eof:library/sectionTeam/group/eclMod_sectionTeam_group_listMembers.php; //!file:library/sectionTeam/member/eclApp_sectionTeam_member.php; class eclApp_sectionTeam_member { // class eclApp_sectionTeam_member static function is_child ($me, $name) { // function is_child global $store; if (substr ($name, 0, 6) != '-user-') $name = '-user-' . $name; $data = $store->domainContent->open ($me->domainId, $name); if ($data and $data['mode'] == MODE_SUBSCRIPTION and $data['marker'] == $me->data['marker']) return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'post'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names global $store; $names = array (); $where = array ( 'domain_id' => $me->domainId, 'mode' => MODE_SUBSCRIPTION, 'marker' => $me->data['marker'] ); foreach ($store->domainContent->search ($where) as $data) { // each group $names[] = $data['name']; } // each group asort ($names); return $names; } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; switch ($me->parent->data['marker']) { // switch marker case 30: $me->data = $store->control->read ('sectionTeam_member_contentMember'); break; case 31: $me->data = $store->control->read ('sectionTeam_member_contentPartner'); break; case 32: $me->data = $store->control->read ('sectionTeam_member_contentStudant'); break; case 33: $me->data = $store->control->read ('sectionTeam_member_contentSubscription'); break; case 34: $me->data = $store->control->read ('sectionTeam_member_contentSuplier'); break; case 35: $me->data = $store->control->read ('sectionTeam_member_contentClient'); break; } // switch marker $me->access = 2; $me->isDomain = true; } // function constructor_helper static function dispatch ($document) { // function dispatch global $store; $me = $document->application; if (substr ($me->name, 0, 6) != '-user-') $data = &$store->domainContent->open ($me->domainId, '-user-' . $me->name); else $data = &$store->domainContent->open ($me->domainId, $me->name); if ($document->access (4)) { // admin access $formulary = $document->createFormulary ('sectionTeam_member_edit', $data); if ($formulary->command ('remove') or $document->actions ('member', 'unlink')) { // remove self::action_unlink ($document, $data); return; } // remove if ($data['marker'] <= 245) $document->mod->context->appendChild ('sectionTeam_member_unlink') ->url (true, true, '_member-unlink'); if ($formulary->command ('save') and $formulary->save ()) { // save $data = $formulary->data; $document->dataReplace ('layouts/dialog_close'); return; } // save } // admin access else $formulary = $document->createFormulary ('sectionTeam_member_view', $data); if ($formulary->command ('cancel') or $formulary->command ('close')) { // close $document->dataReplace ('layouts/dialog_cancel'); return; } // close if ($formulary->errorMsg) $document->mod->humperstilshen->alert ($formulary->errorMsg); $document->mod->formulary = $formulary; } // function dispatch static function action_unlink ($document, &$data) { // function action_unlink if ($data['marker'] == 0) $document->mod->humperstilshen->alert ('sectionTeam_member_unlinkMember'); else $document->mod->humperstilshen->alert ('sectionTeam_member_unlinkMessage'); $data['parent_id'] = 0; $data['master_id'] = 0; $data['marker'] = 246; $data['updated'] = TIME; $formulary = $document->createFormulary ('sectionTeam_member_view', $data, 'view'); $document->mod->formulary = $formulary; } // function action_unlink } // class eclApp_sectionTeam_member //!eof:library/sectionTeam/member/eclApp_sectionTeam_member.php; //!file:library/sectionTeam/member/eclApp_sectionTeam_member_import.php; class eclApp_sectionTeam_member_import { // class eclApp_sectionTeam_member_import static function is_child ($me, $name) { // function is_child if ($name == '-import-profile') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'post'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names return array ('-import-profile'); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('sectionTeam_member_import'); $me->access = 4; $me->isDomain = true; } // function constructor_helper static function dispatch ($document) { // function dispatch global $store; $me = $document->application; $formulary = $document->createFormulary ('sectionTeam_member_import'); if ($formulary->command ('cancel')) { // cancel $document->dataReplace ('layouts/dialog_close'); return; } // cancel if ($formulary->command ('save') and $formulary->save ()) { // save $data = $formulary->data; $name = $data['name']; $userId = $store->user->getId ($name); $data['name'] = '-user-' . $name; $data['mode'] = MODE_SUBSCRIPTION; $data['marker'] = $me->parent->data['marker']; $data['owner_id'] = $userId; $store->domainContent->insert ($me->domainId, $data); $document->dataReplace ('layouts/dialog_close'); return; } // save $document->mod->formulary = $formulary; if ($formulary->errorMsg) $document->mod->humperstilshen->alert ($formulary->errorMsg); } // function dispatch } // class eclApp_sectionTeam_member_import //!eof:library/sectionTeam/member/eclApp_sectionTeam_member_import.php; //!file:library/sectionTeam/member/eclApp_sectionTeam_member_inactive.php; class eclApp_sectionTeam_member_inactive { // class eclApp_sectionTeam_member_inactive static function is_child ($me, $name) { // function is_child if ($name == '-inactive-member') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'post'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names return array ('-inactive-member'); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('sectionTeam_member_inactive'); $me->access = 4; $me->isDomain = true; } // function constructor_helper static function dispatch ($document) { // function dispatch global $store; $me = $document->application; $formulary = $document->createFormulary ('sectionTeam_member_inactive'); if ($formulary->command ('cancel')) { // cancel $document->dataReplace ('layouts/dialog_close'); return; } // cancel if ($formulary->command ('save') and $formulary->save ()) { // save $data = &$store->domainContent->open ($me->domainId, $formulary->data['name']); $data['parent_id'] = 0; $data['master_id'] = 0; $data['marker'] = $me->parent->data['marker']; $document->dataReplace ('layouts/dialog_close'); return; } // save $document->mod->formulary = $formulary; if ($formulary->errorMsg) $document->mod->humperstilshen->alert ($formulary->errorMsg); } // function dispatch } // class eclApp_sectionTeam_member_inactive //!eof:library/sectionTeam/member/eclApp_sectionTeam_member_inactive.php; //!file:library/sectionTeam/member/eclApp_sectionTeam_member_new.php; class eclApp_sectionTeam_member_new { // class eclApp_sectionTeam_member_new static function is_child ($me, $name) { // function is_child if ($name == '-new-member') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'post'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names return array ('-new-member'); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('sectionTeam_member_new'); $me->access = 4; $me->isDomain = true; } // function constructor_helper static function dispatch ($document) { // function dispatch global $store; $me = $document->application; $formulary = $document->createFormulary ('sectionTeam_member_new'); if ($formulary->command ('cancel')) { // cancel $document->dataReplace ('layouts/dialog_close'); return; } // cancel if ($formulary->command ('save') and $formulary->save ()) { // save $user['name'] = $formulary->data['name']; $user['password'] = $formulary->data['password']; $user['status'] = 1; $userId = $store->user->insert ($user); $data = $formulary->data; $data['mode'] = MODE_DOMAIN; $data['parent_id'] = 0; $data['name'] = '-register'; $store->userContent->insert ($userId, $data); $data = $formulary->data; $name = $data['name']; $data['name'] = '-user-' . $name; $data['mode'] = MODE_SUBSCRIPTION; $data['master_id'] = 0; $data['marker'] = $me->parent->data['marker']; $data['owner_id'] = $userId; $store->domainContent->insert ($me->domainId, $data); $document->dataReplace ('layouts/dialog_close'); return; } // save $document->mod->formulary = $formulary; if ($formulary->errorMsg) $document->mod->humperstilshen->alert ($formulary->errorMsg); } // function dispatch } // class eclApp_sectionTeam_member_new //!eof:library/sectionTeam/member/eclApp_sectionTeam_member_new.php; //!file:library/sectionTeam/member/eclFilter_sectionTeam_member_importList.php; class eclFilter_sectionTeam_member_importList { // class eclFilter_sectionTeam_member_importList static function create ($fieldName, $control, $formulary) { // function create global $io, $store; $document = $formulary->document; $me = $document->application; $item = $formulary->appendChild ($control); // name $item->data['name'] = $fieldName; // type if (isset ($control['flags']['type'])) $item->data['type'] = $control['flags']['type']; else $item->data['type'] = 'list'; $item->data['size'] = 15; $users = $store->domainGroup->getDomainSubscribedUsers ($me->domainId); foreach ($store->user->childrenNames () as $name) { // each user $userId = $store->user->getId ($name); if (isset ($users[$userId])) continue; $data = $store->userContent->open ($userId, '-register'); if (isset ($data['text']['title'])) $caption = $data['text']['title']; elseif (isset ($data['text']['caption'])) $caption = $data['text']['caption']; else $caption = $document->textMerge ('unknown'); $item->appendChild (false, array ( 'value' => $name, 'caption' => $caption )); } // each user } // function create static function save ($fieldName, $control, $formulary) { // function save global $store; if (!isset ($formulary->received[$fieldName])) goto ERROR; if (!strlen ($formulary->received[$fieldName])) goto ERROR; $name = $formulary->received[$fieldName]; $userId = $store->user->getId ($name); if (!$userId) goto ERROR; $formulary->data = $store->userContent->open ($userId, '-register'); $formulary->data['name'] = $name; return; ERROR: $formulary->setErrorMsg ($control, $fieldName, 'sectionTeam_member_importListError'); } // function save } // class eclFilter_sectionTeam_member_importList //!eof:library/sectionTeam/member/eclFilter_sectionTeam_member_importList.php; //!file:library/sectionTeam/member/eclFilter_sectionTeam_member_inactiveList.php; class eclFilter_sectionTeam_member_inactiveList { // class eclFilter_sectionTeam_member_inactiveList static function create ($fieldName, $control, $formulary) { // function create global $store; $document = $formulary->document; $me = $document->application; $item = $formulary->appendChild ($control); // name $item->data['name'] = $fieldName; // type if (isset ($control['flags']['type'])) $item->data['type'] = $control['flags']['type']; else $item->data['type'] = 'list'; $item->data['size'] = 15; $where = array ( 'domain_id' => $me->domainId, 'mode' => MODE_SUBSCRIPTION, 'marker' => $me->parent->data['marker'], 'access' => '> 200' ); $profiles = $store->domainContent->search ($where, 255, 0, 0, 'name', 'asc'); foreach ($profiles as $data) { // each user $item->appendChild ($data, array ('value' => $data['name'])); } // each user } // function create static function save ($fieldName, $control, $formulary) { // function save global $store; $me = $formulary->document->application; if (!isset ($formulary->received[$fieldName])) goto ERROR; if (!strlen ($formulary->received[$fieldName])) goto ERROR; $name = $formulary->received[$fieldName]; $data = &$store->domainContent->open ($me->domainId, $name); if ($data['mode'] != MODE_SUBSCRIPTION or $data['marker'] < 245) goto ERROR; $formulary->data = $data; return; ERROR: $formulary->setErrorMsg ($control, $fieldName, 'sectionTeam_member_importListError'); } // function save } // class eclFilter_sectionTeam_member_inactiveList //!eof:library/sectionTeam/member/eclFilter_sectionTeam_member_inactiveList.php; //!file:library/sectionTeam/member/eclFilter_sectionTeam_member_selectGroup.php; class eclFilter_sectionTeam_member_selectGroup { // class eclFilter_sectionTeam_member_selectGroup static function create ($fieldName, $control, $formulary) { // function create global $io, $store; $document = $formulary->document; $me = $document->application; $marker = $me->parent->data['marker']; $item = $formulary->appendChild ($control); // name $item->data['name'] = $fieldName; // type if (isset ($control['flags']['type'])) $item->data['type'] = $control['flags']['type']; else $item->data['type'] = 'select'; $item->appendChild ('sectionTeam_member_editGroupNone'); // value $id = $formulary->getField ('parent_id'); $groups = $store->domainContent->children ($me->domainId, MODE_GROUP, 0); foreach ($groups as $data) { // each user if ($data['marker'] != $marker) continue; $item->appendChild (false, array ( 'value' => $data['id'], 'caption' => $data['text']['caption'] )) ->active ($data['id'] == $id); } // each user } // function create static function save ($fieldName, $control, $formulary) { // function save global $store; $me = $formulary->document->application; if (!isset ($formulary->received[$fieldName][0])) return $formulary->data['parent_id'] = 0; $id = intval ($formulary->received[$fieldName]); if (!$id) return $formulary->data['parent_id'] = 0; $data = $store->domainContent->openById ($me->domainId, $id); if (!$data or $data['mode'] != MODE_GROUP) return $formulary->data['parent_id'] = 0; $formulary->data['parent_id'] = $id; } // function save } // class eclFilter_sectionTeam_member_selectGroup //!eof:library/sectionTeam/member/eclFilter_sectionTeam_member_selectGroup.php; //!file:library/sectionTerms/create/eclApp_sectionTerms_create.php; class eclApp_sectionTerms_create { // class eclApp_sectionTerms_create static function is_child ($me, $name) { // function is_child global $store; if (!$store->domainContent->findMarker ($me->domainId, 5) and $name == 'terms') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names global $store; $domain = $me; while (!$domain->isDomain and $domain = $domain->parent); if ($domain->name != SYSTEM_DEFAULT_DOMAIN_NAME) return array (); if (!$store->domainContent->findMarker ($me->domainId, 5)) return array ('terms'); return array (); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('sectionTerms_create_content'); $me->map = array ('section_preset'); } // function constructor_helper static function dispatch ($document) { // function dispatch } // function dispatch } // class eclApp_sectionTerms_create //!eof:library/sectionTerms/create/eclApp_sectionTerms_create.php; //!file:library/sectionTerms/eclApp_sectionTerms.php; class eclApp_sectionTerms { // class eclApp_sectionTerms static function constructor_helper ($me) { // function constructor_helper } // function constructor_helper static function dispatch ($document) { // function dispatch if ($document->access (4)) $document->mod->editor->enable (); } // function dispatch static function remove ($me) { // function remove } // function remove } // class eclApp_sectionTerms //!eof:library/sectionTerms/eclApp_sectionTerms.php; //!file:library/system/eclApp_system.php; class eclApp_system { // class eclApp_system static function get_menu_type () { // function get_menu_type return 'domain'; } // function get_menu_type static function constructor_helper ($me) { // function constructor_helper global $io, $store; // Set default layout $me->data['flags'] = array ( 'modLayout_base' => 'responsive', 'modLayout_from' => 'domain', 'modLayout_name' => 'default' ); // Default settings $me->data['generator'] = SYSTEM_GENERATOR; $me->data['version'] = SYSTEM_VERSION; $me->data['release'] = SYSTEM_RELEASE; // Project name and reference $me->data['text']['caption'][SYSTEM_DEFAULT_LANGUAGE][TEXT_CONTENT] = SYSTEM_PROJECT_CAPTION; if (SYSTEM_DEFAULT_CHARSET == 'ISO-8859-1') $me->data['text']['caption'][SYSTEM_DEFAULT_LANGUAGE][TEXT_CHARSET] = 1; $me->data['url'] = SYSTEM_PROJECT_URL; $me->getMap (); $me->isDomain = true; $me->groups[] = new eclGroup_system (); } // function constructor_helper } // class eclApp_system //!eof:library/system/eclApp_system.php; //!file:library/system/eclGroup_system.php; class eclGroup_system { // class eclGroup_system public function check ($document) { // function check if (!defined ('ADMIN_IDENTIFIER')) return 0; if ($document->user->name == ADMIN_IDENTIFIER) return 4; if (defined ('ADMIN_HELPERS') and strlen (ADMIN_HELPERS) and in_array ($document->user->name, explode (' ', ADMIN_HELPERS))) return 4; return 0; } // function check } // class eclGroup_system //!eof:library/system/eclGroup_system.php; //!file:library/systemAccessDenied/eclApp_systemAccessDenied.php; class eclApp_systemAccessDenied { // class eclApp_systemAccessDenied static function is_child ($me, $name) { // function is_child if ($name == '-access-denied') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names () { // function get_children_names return array ('-access-denied'); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('systemAccessDenied_content'); $me->ignoreSubfolders = true; } // function constructor_helper static function dispatch ($document) { // function dispatch global $io; $document->base = 'system_message'; if ($document->pathway[0] == SYSTEM_PROFILES_URI) $document->dataMerge ('systemAccessDenied_contentProfile'); $io->request->header ('HTTP/1.1 503 Service Temporarily Unavailable'); $io->request->header ('X-Robots-Tag: noindex'); $io->request->header ('Retry-After: 86400'); } // function dispatch } // class eclApp_systemAccessDenied //!eof:library/systemAccessDenied/eclApp_systemAccessDenied.php; //!file:library/systemDefault/eclApp_systemDefault.php; class eclApp_systemDefault { // class eclApp_systemDefault static function is_child ($me, $name) { // function is_child if ($name == '-default') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'domain'; } // function get_menu_type static function get_children_names () { // function get_children_names return array ('-default'); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('systemDefault_content'); $me->ignoreSubfolders = true; $me->isDomain = true; } // function constructor_helper static function dispatch ($document) { // function dispatch $document->base = 'system_message'; } // function dispatch } // class eclApp_systemDefault //!eof:library/systemDefault/eclApp_systemDefault.php; //!file:library/systemInstallation/eclApp_systemInstallation.php; class eclApp_systemInstallation { // class eclApp_systemInstallation static function is_child ($parent, $name) { // function is_child if (!defined ('ADMIN_IDENTIFIER')) return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'domain'; } // function get_menu_type static function get_children_names () { // function get_children_names return array (); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('systemInstallation_index'); $me->map = array ('systemInstallation_index'); $me->isDomain = true; } // function constructor_helper } // class eclApp_systemInstallation //!eof:library/systemInstallation/eclApp_systemInstallation.php; //!file:library/systemInstallation/eclApp_systemInstallation_index.php; class eclApp_systemInstallation_index { // class eclApp_systemInstallation_index static function is_child ($parent, $name) { // function is_child if ($name == '') return true; if ($name == '-default') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names ($parent) { // function get_children_names return array (''); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; // As subpastas deverão ser ignoradas $me->ignoreSubfolders = true; $me->data = $store->control->read ('systemInstallation_index'); unset ($me->pathway[1]); $me->isDomain = true; } // function constructor_helper static function dispatch ($document) { // function dispatch global $store; if (!is_file (PATH_ROOT . SYSTEM_CONFIG_FILE)) { // config file not found $n = @file_put_contents (PATH_ROOT . SYSTEM_CONFIG_FILE, 'dataMerge ('systemInstallation_accessDenied'); return; } // unable to write unlink (PATH_ROOT . SYSTEM_CONFIG_FILE); } // config file not found if (!isset ($document->session['systemInstallation'])) { // presets $document->session['systemInstallation'] = $store->control->read ('systemInstallation_templateForConfig'); if ($document->protocol == 'https') $document->session['systemInstallation']['SYSTEM_HTTPS_REDIRECT'] = true; if ($document->rewriteEngine or strpos (' ' . strtolower ($_SERVER['SERVER_SOFTWARE']), 'apache')) $document->session['systemInstallation']['SYSTEM_REWRITE_ENGINE'] = true; } // presets if (!isset ($document->session['systemInstallation_page'])) $document->session['systemInstallation_page'] = 0; PROCESS_PAGE: $page = $document->session['systemInstallation_page']; $formulary = $document->createFormulary ('systemInstallation_' . $page, $document->session['systemInstallation'], 'page' . $page); if (!$document->rewriteEngine and strpos (' ' . strtolower ($_SERVER['SERVER_SOFTWARE']), 'apache')) $formulary->flags['rewrite_engine_choose'] = true; if ($formulary->command ('next') and $formulary->save ()) { // next $document->session['systemInstallation'] = $formulary->data; $document->session['systemInstallation_page']++; if ($document->session['systemInstallation_page'] == 3) return self::finish_installation ($document); goto PROCESS_PAGE; } // next elseif ($formulary->command ('previous')) { // previous $formulary->save (); $document->session['systemInstallation'] = $formulary->data; $document->session['systemInstallation_page']--; goto PROCESS_PAGE; } // previous $document->mod->formulary = $formulary; if ($formulary->errorMsg) $document->mod->humperstilshen->alert ($formulary->errorMsg); $document->data['url'] = $document->url (); $document->data['folder'] = PATH_ROOT; } // function dispatch static function finish_installation ($document) { // function finish_installation $constants = $document->session['systemInstallation']; if ($constants['SYSTEM_HOSTING_MODE'] == 0) { // set default configuration $constants['DATABASE_ENABLED'] = true; $constants['DATABASE_CLIENT'] = 'sqlite'; $constants['SYSTEM_DEFAULT_DOMAIN_NAME'] = 'ecolabore'; $constants['SYSTEM_DEFAULT_LANGUAGE'] = $document->lang; } // set default configuration ksort ($constants); $buffer = ' $value) { // each constant $buffer .= "define ('" . $key . "', "; if ($value === false) $buffer .= 'false'; elseif ($value === true) $buffer .= 'true'; elseif (is_int ($value)) $buffer .= strval ($value); elseif (is_string ($value)) $buffer .= "'" . str_replace ("'", CHR_BSLASH . CHR_TIC, $value) . "'"; $buffer .= ");" . CRLF; } // each constant $buffer .= CRLF . '?>'; header ('Content-type: application/force-download'); header ('Content-Disposition: attachment; filename="config.php"'); print $buffer; $document->session = array (); exit; } // function finish_installation } // class eclApp_systemInstallation_index //!eof:library/systemInstallation/eclApp_systemInstallation_index.php; //!file:library/systemInstallation/eclFilter_systemInstallation_password.php; /* * Control flags * control_type * control_filter = password * control_target * control_field_name * control_required * control_error_msg */ class eclFilter_systemInstallation_password { // class eclFilter_systemInstallation_password static function create ($fieldName, $control, $formulary) { // function create $local['name'] = $fieldName; // type if (isset ($control['flags']['type'])) $local['type'] = $control['flags']['type']; else $local['type'] = 'text_password'; $formulary->appendChild ($control, $local); $local['name'] .= '_repeat'; $formulary->appendChild ('labels/field/user_repeat_password', $local); } // function create static function save ($fieldName, $control, $formulary) { // function save isset ($formulary->received[$fieldName]) ? $password = $formulary->received[$fieldName] : $password = false; isset ($formulary->received[$fieldName . '_repeat']) ? $password2 = $formulary->received[$fieldName . '_repeat'] : $password2 = false; if (!$password and $password !== '0') $password = false; // required if ($password === false and isset ($control['flags']['required'])) return $formulary->setRequiredMsg ($control, $fieldName, 'adminUsers_add_msgPasswordRequired'); // no password, no required if (!$password) return; if ($password != $password2) return $formulary->setErrorMsg ($control, $fieldName, 'adminUsers_add_msgPasswordRepeatError'); foreach (str_split ($password) as $char) { // each char if (ord ($char) < 32 or ord ($char) > 127) return $formulary->setErrorMsg ($control, $fieldName, 'adminUsers_add_msgPasswordInvalidCharacter'); } // each char // md5 if (isset ($control['flags']['password_md5'])) $password = md5 ($password); // target if (isset ($control['flags']['target'])) $formulary->setField ($control['flags']['target'], $password); } // function save } // class eclFilter_systemInstallation_password //!eof:library/systemInstallation/eclFilter_systemInstallation_password.php; //!file:library/systemPreload/eclApp_systemPreload.php; class eclApp_systemPreload { // class eclApp_systemPreload static function is_child ($me, $name) { // function is_child if ($name == '-preload') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names () { // function get_children_names return array ('-preload'); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper $me->getMap (); } // function constructor_helper static function dispatch ($document) { // function dispatch } // function dispatch } // class eclApp_systemPreload //!eof:library/systemPreload/eclApp_systemPreload.php; //!file:library/systemShared/eclApp_systemShared.php; class eclApp_systemShared { // class eclApp_systemShared static function is_child ($me, $name) { // function is_child global $io; if (in_array ('-shared', $io->request->pathway)) return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names () { // function get_children_names return array (); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper $me->name = '-shared'; $me->ignoreSubfolders = true; $me->ignoreSession (true); } // function constructor_helper static function dispatch ($document) { // function dispatch global $components, $dataMap, $io; $me = $document->application; $pathway = $document->pathway; while (array_shift ($pathway) != $me->name); if (count ($pathway) < 2) exit; if (isset ($components[$pathway[0]])) { // find component shared file $component = $pathway[0]; $file = PATH_COMPONENTS . $component . '/' . $components[$component] . '/shared/' . $pathway[1]; if (!is_file ($file)) exit; $headers = array ( 'Content-Disposition' => 'inline', 'Cache-Control' => 'public, only-if-cached, max-age=2592000' ); $io->sendFile->send ($file, $headers); exit; } // find component shared file static $mime = array ( 'css' => 'text/css', 'gif' => 'image/gif', 'html' => 'text/html', 'htm' => 'text/html', 'jpg' => 'image/jpeg', 'js' => 'text/javascript', 'mp3' => 'audio/mpeg', 'png' => 'image/png', 'svg' => 'image/svg+xml', 'txt' => 'text/plain', 'ttf' => 'font/ttf' ); $folders = $pathway; $name = array_pop ($folders); $path = implode ('/', $folders); if (isset ($dataMap['f'][$path][$name])) { // embeded @list (, $extension) = explode ('.', $name, 2); if (!isset ($mime[$extension])) { // bad request header ('HTTP/1.0 400 Bad Request'); exit; } // bad request if (SYSTEM_TIME_LIMIT) set_time_limit (0); error_reporting (0); while (@ob_end_clean ()); $headers = is_callable ('apache_request_headers') ? apache_request_headers () : array (); header_remove ('Pragma'); header_remove ('Expires'); header_remove ('X-Powered-By'); $buffer = $io->cachedControls->file ($path, $name); $size = strval (strlen ($buffer)); $eTag = md5 ($name . SYSTEM_PACKED_DATE); if (isset ($headers['ETag']) and $headers['ETag'] == $eTag) { // not modified header ('HTTP/1.1 304 Not Modified'); exit; } // not modified if (isset ($headers['If-Modified-Since']) and $headers['If-Modified-Since'] == SYSTEM_PACKED_DATE) { // not modified header ('HTTP/1.1 304 Not Modified'); exit; } // not modified header ('HTTP/1.1 200 OK'); header ('Access-Control-Allow-Origin: *'); header ('Cache-Control: public, only-if-cached, max-age=172800'); header ('Last-Modified: ' . SYSTEM_PACKED_DATE); header ('ETag: "' . $eTag . '"'); header ('Content-type: ' . $mime[$extension]); header ('Content-Length: ' . $size); header ('Connection: close'); print $buffer; exit; } // embeded $path = PATH_SHARED . implode ('/', $pathway); $headers = array ( 'Content-Disposition' => 'inline', 'Cache-Control' => 'public, only-if-cached, max-age=2592000' ); $io->sendFile->send ($path, $headers); exit; } // function dispatch } // class eclApp_systemShared //!eof:library/systemShared/eclApp_systemShared.php; //!file:library/tool/eclApp_tool.php; class eclApp_tool { // class eclApp_tool static function is_child ($parent, $name) { // function is_child if ($name == '-tools') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names () { // function get_children_names return array ('-tools'); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('tool_content'); $me->access = 4; $me->getMap (); $me->isDomain = true; } // function constructor_helper static function dispatch ($document) { // function dispatch } // function dispatch } // class eclApp_tool //!eof:library/tool/eclApp_tool.php; //!file:library/toolConfig/about/eclApp_toolConfig_about.php; class eclApp_toolConfig_about { // class eclApp_toolConfig_about static function is_child ($parent, $name) { // function is_child if ($name == 'about') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'section'; } // function get_menu_type static function get_children_names () { // function get_children_names return array ('about'); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('toolConfig_about_content'); } // function constructor_helper static function dispatch ($document) { // function dispatch global $store; $me = $document->application; $data = &$store->domainContent->open ($me->domainId, '-register'); $formulary = $document->createFormulary ('toolConfig_about_edit', $data); if ($formulary->command ('save') and $formulary->save ()) { // save $data = $formulary->data; } // save $document->mod->formulary = $formulary; } // function dispatch } // class eclApp_toolConfig_about //!eof:library/toolConfig/about/eclApp_toolConfig_about.php; //!file:library/toolConfig/eclApp_toolConfig.php; class eclApp_toolConfig { // class eclApp_toolConfig const name = 'config'; const menuType = 'section'; const dataFrom = 'toolConfig_content'; const map = 'toolConfig_about toolConfig_languages toolConfig_versioning toolConfig_market'; const isDomain = true; static function dispatch ($document) { // function dispatch $document->mod->list = new eclMod_admin_list ($document); } // function dispatch } // class eclApp_toolConfig //!eof:library/toolConfig/eclApp_toolConfig.php; //!file:library/toolConfig/languages/eclApp_toolConfig_languages.php; class eclApp_toolConfig_languages { // class eclApp_toolConfig_languages static function is_child ($parent, $name) { // function is_child if ($name == 'languages') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'section'; } // function get_menu_type static function get_children_names () { // function get_children_names return array ('languages'); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('toolConfig_languages_content'); $me->map = array ('toolConfig_languages_select', 'toolConfig_languages_currencies'); } // function constructor_helper static function dispatch ($document) { // function dispatch global $store; $me = $document->application; $data = &$store->domainContent->open ($me->domainId, '-register'); $formulary = $document->createFormulary ('toolConfig_languages_edit', $data); if ($formulary->command ('save') and $formulary->save ()) { // save $data = $formulary->data; } // save $document->mod->formulary = $formulary; } // function dispatch } // class eclApp_toolConfig_languages //!eof:library/toolConfig/languages/eclApp_toolConfig_languages.php; //!file:library/toolConfig/languages/eclApp_toolConfig_languages_currencies.php; class eclApp_toolConfig_languages_currencies { // class eclApp_toolConfig_languages_currencies static function is_child ($parent, $name) { // function is_child if ($name == 'currencies') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names () { // function get_children_names return array ('currencies'); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('toolConfig_languages_currencies'); $me->isDomain = true; } // function constructor_helper static function dispatch ($document) { // function dispatch $document->mod->list = new eclMod_toolConfig_languages_currencies ($document); } // function dispatch } // class eclApp_toolConfig_languages_currencies //!eof:library/toolConfig/languages/eclApp_toolConfig_languages_currencies.php; //!file:library/toolConfig/languages/eclApp_toolConfig_languages_select.php; class eclApp_toolConfig_languages_select { // class eclApp_toolConfig_languages_select static function is_child ($parent, $name) { // function is_child if ($name == 'select') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names () { // function get_children_names return array ('select'); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('toolConfig_languages_select'); $me->isDomain = true; } // function constructor_helper static function dispatch ($document) { // function dispatch $document->mod->list = new eclMod_toolConfig_languages_select ($document); } // function dispatch } // class eclApp_toolConfig_languages_select //!eof:library/toolConfig/languages/eclApp_toolConfig_languages_select.php; //!file:library/toolConfig/languages/eclFilter_toolConfig_languages_currenciesManager.php; class eclFilter_toolConfig_languages_currenciesManager { // class eclFilter_toolConfig_languages_currenciesManager static function create ($fieldName, $control, $formulary) { // function create global $io, $store; $document = $formulary->document; $me = $document->application; $item = $document->createListItem ($control); // name $item->data['name'] = $fieldName; // type if (isset ($control['flags']['type'])) $item->data['type'] = $control['flags']['type']; else $item->data['type'] = 'manager'; // help if (isset ($control['flags']['help']) and !isset ($control['flags']['help_msg'])) $item->data['help_msg'] = 'system_msg_filterDetailsHelp'; // references $pathway = array ($document->domain->name, '-tools', 'config', 'languages', 'currencies'); $item->data['url_add'] = $document->url ($pathway); $item->data['move-enable'] = 1; $item->data['remove-enable'] = 1; // $item->data['edit-enable'] = 1; $value = $formulary->getField ('flags/currencies'); $buffer = ''; foreach (explode (CRLF, $value) as $currency) { // each line $currency = trim ($currency); if (!isset ($currency[0])) continue; $data = $store->control->read ('labels/currency/' . $currency); if (isset ($data['text']['caption'])) $caption = $data['text']['caption']; else $caption = $document->textMerge ($currency); $buffer .= $currency . CRLF; $item->appendChild (false, array ('value' => $currency, 'caption' => $caption)); } // each line $item->data['serialized'] = $buffer; return $item; } // function create static function save ($fieldName, $control, $formulary) { // function save global $store; $buffer = array (); if (isset ($formulary->received[$fieldName . '_serialized'])) { // received foreach (explode (LF, $formulary->received[$fieldName . '_serialized']) as $line) { // each line $line = trim ($line); if (preg_match ('/^[a-z][a-z]$/', $line)) $buffer[] = $line; } // each line } // received if ($buffer) $buffer = implode (CRLF, $buffer); else $buffer = false; $formulary->setField ('flags/currencies', $buffer); } // function save } // class eclFilter_toolConfig_languages_currenciesManager //!eof:library/toolConfig/languages/eclFilter_toolConfig_languages_currenciesManager.php; //!file:library/toolConfig/languages/eclFilter_toolConfig_languages_manager.php; class eclFilter_toolConfig_languages_manager { // class eclFilter_toolConfig_languages_manager static function create ($fieldName, $control, $formulary) { // function create global $io, $store; $document = $formulary->document; $me = $document->application; $item = $document->createListItem ($control); // name $item->data['name'] = $fieldName; // type if (isset ($control['flags']['type'])) $item->data['type'] = $control['flags']['type']; else $item->data['type'] = 'manager'; // help if (isset ($control['flags']['help']) and !isset ($control['flags']['help_msg'])) $item->data['help_msg'] = 'system_msg_filterDetailsHelp'; // references $pathway = array ($document->domain->name, '-tools', 'config', 'languages', 'select'); $item->data['url_add'] = $document->url ($pathway); $item->data['move-enable'] = 1; $item->data['remove-enable'] = 1; // $item->data['edit-enable'] = 1; $value = $formulary->getField ('flags/languages'); $buffer = ''; foreach (explode (CRLF, $value) as $lang) { // each line $lang = trim ($lang); if (!isset ($lang[0])) continue; $data = $store->control->read ('labels/lang/' . $lang); if (isset ($data['text']['caption'])) $caption = $data['text']['caption']; else $caption = $document->textMerge ($lang); $buffer .= $lang . CRLF; $item->appendChild (false, array ('value' => $lang, 'caption' => $caption)); } // each line $item->data['serialized'] = $buffer; return $item; } // function create static function save ($fieldName, $control, $formulary) { // function save global $store; $buffer = array (); if (isset ($formulary->received[$fieldName . '_serialized'])) { // received foreach (explode (LF, $formulary->received[$fieldName . '_serialized']) as $line) { // each line $line = trim ($line); if (preg_match ('/^[a-z][a-z]$/', $line)) $buffer[] = $line; } // each line } // received if ($buffer) $buffer = implode (CRLF, $buffer); else $buffer = false; $formulary->setField ('flags/languages', $buffer); } // function save } // class eclFilter_toolConfig_languages_manager //!eof:library/toolConfig/languages/eclFilter_toolConfig_languages_manager.php; //!file:library/toolConfig/languages/eclMod_toolConfig_languages_currencies.php; class eclMod_toolConfig_languages_currencies { // class eclMod_toolConfig_languages_currencies public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; $me = $document->application; $render = $document->render; $names = $store->control->scandir ('t', 'labels/currency'); foreach ($names as $currency) { // each currency $data = $store->control->read ('labels/currency/' . $currency); $mod->appendChild ($data, array ('name' => $currency)); } // each currency $mod->enabled = true; } // function setModule } // class eclMod_toolConfig_languages_currencies //!eof:library/toolConfig/languages/eclMod_toolConfig_languages_currencies.php; //!file:library/toolConfig/languages/eclMod_toolConfig_languages_select.php; class eclMod_toolConfig_languages_select { // class eclMod_toolConfig_languages_select public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; $me = $document->application; $render = $document->render; $names = $store->control->scandir ('t', 'labels/lang'); foreach ($names as $lang) { // each lang $data = $store->control->read ('labels/lang/' . $lang); $mod->appendChild ($data, array ('name' => $lang)); } // each lang $mod->enabled = true; } // function setModule } // class eclMod_toolConfig_languages_select //!eof:library/toolConfig/languages/eclMod_toolConfig_languages_select.php; //!file:library/toolConfig/market/eclApp_toolConfig_market.php; class eclApp_toolConfig_market { // class eclApp_toolConfig_market const name = 'market'; const menuType = 'section'; const dataFrom = 'toolConfig_market_content'; static function dispatch ($document) { // function dispatch global $store; $me = $document->application; $data = &$store->domainContent->open ($me->domainId, '-register'); $formulary = $document->createFormulary ('toolConfig_market_edit', $data); if ($formulary->command ('save') and $formulary->save ()) { // save $data = $formulary->data; } // save $document->mod->formulary = $formulary; } // function dispatch } // class eclApp_toolConfig_market //!eof:library/toolConfig/market/eclApp_toolConfig_market.php; //!file:library/toolConfig/versioning/eclApp_toolConfig_versioning.php; class eclApp_toolConfig_versioning { // class eclApp_toolConfig_versioning const name = 'versioning'; const menuType = 'section'; const dataFrom = 'toolConfig_versioning_content'; static function dispatch ($document) { // function dispatch global $store; $me = $document->application; $data = &$store->domainContent->open ($me->domainId, '-register'); $formulary = $document->createFormulary ('toolConfig_versioning_edit', $data); if ($formulary->command ('clear')) { // clear cache } // clear cache if ($formulary->command ('save') and $formulary->save ()) { // save $data = $formulary->data; } // save $document->mod->formulary = $formulary; } // function dispatch } // class eclApp_toolConfig_versioning //!eof:library/toolConfig/versioning/eclApp_toolConfig_versioning.php; //!file:library/toolMediaGalery/eclApp_toolMediaGalery.php; class eclApp_toolMediaGalery { // class eclApp_toolMediaGalery const name = 'media'; const menuType = 'section'; const dataFrom = 'toolMediaGalery_content'; const map = 'toolMediaGalery_images toolMediaGalery_audios toolMediaGalery_videos'; const isDomain = true; static function dispatch ($document) { // function dispatch $document->mod->list = new eclMod_toolImageGalery_list ($document); } // function dispatch } // class eclApp_toolMediaGalery //!eof:library/toolMediaGalery/eclApp_toolMediaGalery.php; //!file:library/user/eclApp_user.php; class eclApp_user { // class eclApp_user static function is_child ($me, $name) { // function is_child if ($name == SYSTEM_PROFILES_URI) return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'domain'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names return array (SYSTEM_PROFILES_URI); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('user_content'); $me->groups = array (); $me->getMap (); $me->isDomain = true; } // function constructor_helper } // class eclApp_user //!eof:library/user/eclApp_user.php; //!file:library/user/eclGroup_user.php; class eclGroup_user { // class eclGroup_user private $userId; public function __construct ($userId) { // function __construct $this->userId = $userId; } // function __construct public function check ($document) { // function check if ($this->userId == $document->user->userId) return 4; if (defined ('ADMIN_IDENTIFIER') and $document->user->name == ADMIN_IDENTIFIER) return 1; elseif (!$document->user->userId) return 0; return 1; } // function check } // class eclGroup_user //!eof:library/user/eclGroup_user.php; //!file:library/userAdmin/eclApp_userAdmin.php; class eclApp_userAdmin { // class eclApp_userAdmin static function is_child ($me, $name) { // function is_child global $store; if (!defined ('ADMIN_IDENTIFIER')) return false; if ($name != ADMIN_IDENTIFIER) return false; if ($store->user->getId ($name)) return false; return true; } // function is_child static function get_menu_type () { // function get_menu_type return 'post'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names return array (); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $io, $store; $me->name = ADMIN_IDENTIFIER; $me->map = array ('userAdmin_index', 'userHome_welcome'); $me->data = &$io->session->cache; $me->data['text']['caption'] = array ('en' => array (1 => ADMIN_CAPTION)); $me->data['text']['title'] = array ('en' => array (1 => ADMIN_CAPTION)); $me->data['name'] = ADMIN_IDENTIFIER; $me->data['local']['mail'] = ADMIN_MAIL; $me->data['local']['gender'] = ADMIN_GENDER; } // function constructor_helper static function dispatch ($document) { // function dispatch $document->application = $document->application->child ('-index'); $document->application->dispatch ($document); } // function dispatch } // class eclApp_userAdmin //!eof:library/userAdmin/eclApp_userAdmin.php; //!file:library/userAdmin/eclApp_userAdmin_index.php; class eclApp_userAdmin_index { // class eclApp_userAdmin_index static function is_child ($me, $name) { // function is_child if ($name == '' or $name == '-index') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'section'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names return array (''); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('userAdmin_content'); array_pop ($me->pathway); } // function constructor_helper static function dispatch ($document) { // function dispatch } // function dispatch } // class eclApp_userAdmin_index //!eof:library/userAdmin/eclApp_userAdmin_index.php; //!file:library/userAnonimous/eclApp_userAnonimous.php; class eclApp_userAnonimous { // class eclApp_userAnonimous static function is_child ($me, $name) { // function is_child if ($name == '-anonimous') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'post'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names return array ('-anonimous'); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('userAnonimous_content'); } // function constructor_helper static function dispatch ($document) { // function dispatch } // function dispatch } // class eclApp_userAnonimous //!eof:library/userAnonimous/eclApp_userAnonimous.php; //!file:library/userDefault/eclApp_userDefault.php; class eclApp_userDefault { // class eclApp_userDefault static function is_child ($me, $name) { // function is_child if ($name == '-default') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'post'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names return array ('-default'); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('userDefault_content'); $me->ignoreSubfolders = true; } // function constructor_helper static function dispatch ($document) { // function dispatch } // function dispatch } // class eclApp_userDefault //!eof:library/userDefault/eclApp_userDefault.php; //!file:library/userHome/alerts/eclApp_userHome_alerts.php; class eclApp_userHome_alerts { // class eclApp_userHome_alerts static function is_child ($me, $name) { // function is_child if ($name == '-alerts') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names return array ('-alerts'); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('userHome_alerts_content'); $me->isDomain = true; $me->getMap (); $me->access = 4; } // function constructor_helper static function dispatch ($document) { // function dispatch $document->mod->list = new eclMod_user_alerts ($document); } // function dispatch } // class eclApp_userHome_alerts //!eof:library/userHome/alerts/eclApp_userHome_alerts.php; //!file:library/userHome/alerts/eclApp_userHome_alerts_mail.php; class eclApp_userHome_alerts_mail { // class eclApp_userHome_alerts_mail static function is_child ($me, $name) { // function is_child if (INTEGRATION_SMTP_ENABLE and $name == '-mail') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names global $store; if (!INTEGRATION_SMTP_ENABLE) return array (); $name = $me->pathway[1]; $user = $store->user->open ($name); if (!$user['mail']) return array ('-mail'); else return array (); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('userHome_alerts_mail'); $me->pathway = array_slice ($me->pathway, 0, - 2); $me->pathway[] = $me->name; $me->isDomain = true; $me->access = 4; } // function constructor_helper static function dispatch ($document) { // function dispatch } // function dispatch } // class eclApp_userHome_alerts_mail //!eof:library/userHome/alerts/eclApp_userHome_alerts_mail.php; //!file:library/userHome/alerts/eclApp_userHome_alerts_phone.php; class eclApp_userHome_alerts_phone { // class eclApp_userHome_alerts_phone static function is_child ($me, $name) { // function is_child if (INTEGRATION_SMS_ENABLE and $name == '-phone') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names global $store; if (!INTEGRATION_SMS_ENABLE) return array (); $name = $me->pathway[1]; $user = $store->user->open ($name); if (!$user['phone']) return array ('-phone'); else return array (); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('userHome_alerts_phone'); $me->pathway = array_slice ($me->pathway, 0, - 2); $me->pathway[] = $me->name; $me->isDomain = true; $me->access = 4; } // function constructor_helper static function dispatch ($document) { // function dispatch } // function dispatch } // class eclApp_userHome_alerts_phone //!eof:library/userHome/alerts/eclApp_userHome_alerts_phone.php; //!file:library/userHome/default/eclApp_userHome_default.php; class eclApp_userHome_default { // class eclApp_userHome_default static function is_child ($me, $name) { // function is_child if ($name == '-default') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names return array ('-default'); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('userHome_default_content'); $me->ignoreSubfolders = true; } // function constructor_helper static function dispatch ($document) { // function dispatch } // function dispatch } // class eclApp_userHome_default //!eof:library/userHome/default/eclApp_userHome_default.php; //!file:library/userHome/eclApp_userHome.php; class eclApp_userHome { // class eclApp_userHome static function is_child ($me, $name) { // function is_child global $store; if (!strlen ($name) or $name[0] == '-') return false; if ($store->user->getId ($name)) return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'post'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names return array (); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->userId = $store->user->getId ($me->name); $me->getMap (); $me->groups = array ( new eclGroup_user ($me->userId)); $me->data = &$store->userContent->open ($me->userId, '-register'); } // function constructor_helper static function dispatch ($document) { // function dispatch $document->application = $document->application->child ('-index'); $document->pathway = $document->application->pathway; $document->application->dispatch ($document); } // function dispatch } // class eclApp_userHome //!eof:library/userHome/eclApp_userHome.php; //!file:library/userHome/index/eclApp_userHome_index.php; class eclApp_userHome_index { // class eclApp_userHome_index static function is_child ($me, $name) { // function is_child if ($name == '-index') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'section'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names return array ('-index'); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('userHome_index_content'); $me->data['text']['profile'] = $me->parent->data['text']['caption']; } // function constructor_helper static function dispatch ($document) { // function dispatch $document->mod->list1 = new eclMod_userHome_index_domains ($document); $document->mod->list2 = new eclMod_userHome_index_recents ($document); $document->mod->panel->main = array ('content', 'list1', 'list2'); } // function dispatch } // class eclApp_userHome_index //!eof:library/userHome/index/eclApp_userHome_index.php; //!file:library/userHome/index/eclMod_userHome_index_domains.php; class eclMod_userHome_index_domains { // class eclMod_userHome_index_domains public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $io, $store, $system; $document = $this->document; $me = $document->application; $mod->data = array_replace ($store->control->read ('modules/list_card'), $store->control->read ('userHome_index_domains')); $row = $mod->appendChild (); $where = array ( 'user_id' => $me->userId, 'group_id' => 1 ); $groups = $io->database->select ($store->domainGroup, $where); if (!$groups) return; $names = array (); foreach ($groups as $group) { // each group $name = $store->domain->getName ($group['domain_id']); $status = $store->domain->getStatus ($name); if ($status == 2 or $status == 4) $names[] = $name; } // each group if (!$names) return; asort ($names); foreach ($names as $name) { // list domains $domain = $system->child ($name); $row->appendChild ($domain->data) ->swapTitle () ->url ($domain->pathway); } // list domains $mod->enabled = true; } // function setModule } // class eclMod_userHome_index_domains //!eof:library/userHome/index/eclMod_userHome_index_domains.php; //!file:library/userHome/index/eclMod_userHome_index_recents.php; class eclMod_userHome_index_recents { // class eclMod_userHome_index_recents public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store, $system; $document = $this->document; $me = $document->application; $mod->data = array_replace ($store->control->read ('modules/list_card'), $store->control->read ('userHome_index_recents')); $row = $mod->appendChild (); $where = array ( 'mode' => MODE_POST, 'owner_id' => $me->userId ); $recents = $store->domainContent->search ($where); $recents = array_reverse ($recents); $index = 0; foreach ($recents as $data) { // each recent post $pathway = $store->domainContent->pathway ($data['domain_id'], $data['name']); $levels = $pathway; $post = $system; TEST_NEXT_LEVEL: $post = $post->child (array_shift ($levels)); if ($post->access) continue; if ($levels) goto TEST_NEXT_LEVEL; $row->appendChild ($data) ->url ($pathway); $index++; if ($index == 10) break; } // each recent post if ($index) $mod->enabled = true; } // function setModule } // class eclMod_userHome_index_recents //!eof:library/userHome/index/eclMod_userHome_index_recents.php; //!file:library/userHome/mail/eclApp_userHome_mail.php; class eclApp_userHome_mail { // class eclApp_userHome_mail static function is_child ($me, $name) { // function is_child if (!INTEGRATION_SMTP_ENABLE) return false; if ($name == '-mail') return true; if ($name == '-mail-check') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names if (INTEGRATION_SMTP_ENABLE) return array ('-mail'); return array (); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('userHome_mail_content'); $me->isDomain = true; if ($me->name == '-mail-check') $me->access = 0; else $me->access = 4; } // function constructor_helper static function dispatch ($document) { // function dispatch global $store; if ($document->application->name == '-mail-check') return self::action_mail_check ($document); if ($document->actions ('mail', 'input')) return self::action_mail_input ($document); $me = $document->application->parent; $user = $store->user->open ($me->name); if (isset ($me->data['flags']['userHome_mail_key'])) return self::action_mail_sent ($document); if ($user['mail'] == '') return self::action_mail_input ($document); } // function dispatch static function action_mail_input ($document) { // function action_mail_input $me = $document->application->parent; $formulary = $document->createFormulary ('userHome_mail_input', $me->data, 'input'); $formulary->action = '_mail-input'; if ($formulary->command ('next') and $formulary->save ()) { // save $key = mt_rand (1000000, 9999999); $me->data = $formulary->data; $me->data['flags']['userHome_mail_key'] = $key; $template = clone $document; $template->user = $me; $template->charset = 'UTF-8'; $template->dataReplace ('userHome_mail_messageTemplate'); $template->data['url'] = $document->url (array (SYSTEM_PROFILES_URI, $me->name, '-mail-check'), true, '_key-' . $key); $template->render (); $subject = $template->selectLanguage ($template->textMerge ($template->data['text']['title'], ' ', $me->data['text']['caption'])); $mail = $document->createMail () ->subject ($subject[1]) ->to ($me->data['local']['mail']) ->contentHTML ($template->buffer); $errorMsg = $mail->send (); if ($errorMsg) { // mail error $document->mod->humperstilshen->alert ($errorMsg); $document->mod->formulary = $formulary; return; } // mail error self::action_mail_sent ($document); return; } // save $document->mod->formulary = $formulary; if ($formulary->errorMsg) $document->mod->humperstilshen->alert ($formulary->errorMsg); } // function action_mail_input static function action_mail_sent ($document) { // function action_mail_sent $formulary = $document->createFormulary ('userHome_mail_sent', array (), 'sent'); if ($formulary->command ('cancel')) return $document->dataReplace ('layouts/dialog_cancel'); if ($formulary->command ('update')) return self::action_mail_input ($document); $document->mod->formulary = $formulary; $document->dataMerge ('userHome_mail_contentMailSent'); } // function action_mail_sent static function action_mail_check ($document) { // function action_mail_check global $store; $me = $document->application->parent; $document->dataReplace ('userHome_mail_content'); if (!isset ($document->actions['key'][1])) return $document->dataMerge ('userHome_mail_contentFail'); if (!isset ($me->data['flags']['userHome_mail_key'])) { // just verified or an error occurred $user = &$store->user->open ($me->name); if ($user['mail'] == '') return $document->dataMerge ('userHome_mail_contentFail'); if ($document->user->name == $me->name) return $document->dataMerge ('userHome_mail_contentVerified'); $document->user = $me; return $document->dataMerge ('userHome_mail_contentReady'); } // verified or error $key = $document->actions['key'][1]; if ($key == $me->data['flags']['userHome_mail_key']) { // success $user = &$store->user->open ($me->name); $user['mail'] = $me->data['local']['mail']; unset ($me->data['flags']['userHome_mail_key']); $document->user = $me; $document->dataMerge ('userHome_mail_contentVerified'); return; } // success } // function action_mail_check } // class eclApp_userHome_mail //!eof:library/userHome/mail/eclApp_userHome_mail.php; //!file:library/userHome/password/eclApp_userHome_password.php; class eclApp_userHome_password { // class eclApp_userHome_password static function is_child ($me, $name) { // function is_child if ($name == '-password') return true; if ($name == '-recover-password') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names return array ('-password'); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('userHome_password_content'); $me->isDomain = true; if ($me->name == '-recover-password') $me->access = 0; else $me->access = 4; } // function constructor_helper static function dispatch ($document) { // function dispatch global $store; $me = $document->application; if ($me->name == '-recover-password') { // test token $document->user = $me->parent; if (!isset ($document->actions['token'][1])) return $document->dataMerge ('userHome_password_msgInvalidToken'); if (!isset ($me->parent->data['flags']['userRecoverPassword_token'])) return $document->dataMerge ('userHome_password_msgInvalidToken'); if ($document->actions['token'][1] != $me->parent->data['flags']['userRecoverPassword_token']) return $document->dataMerge ('userHome_password_msgInvalidToken'); $formulary = $document->createFormulary ('userHome_password_editRecoverPassword', $me->parent->data, 'change'); $formulary->action = '_token-' . $document->actions['token'][1]; } // test token else $formulary = $document->createFormulary ('userHome_password_edit', $me->parent->data, 'change'); if ($formulary->command ('cancel')) { // close pop up $document->dataReplace ('layouts/dialog_cancel'); } // close pop up if ($formulary->command ('save') and $formulary->save ()) { // change password $user = &$store->user->open ($document->user->name); $user['password'] = $formulary->data['password']; if ($me->name == '-recover-password') { // close dialog $document->dataReplace ('userHome_password_msgPasswordRecovered'); unset ($me->parent->data['flags']['userRecoverPassword_token']); return; } // close dialog $document->mod->humperstilshen->alert ('userHome_password_alertPasswordChanged'); } // change password if ($formulary->errorMsg) $document->mod->humperstilshen->alert ($formulary->errorMsg); $document->mod->formulary = $formulary; } // function dispatch } // class eclApp_userHome_password //!eof:library/userHome/password/eclApp_userHome_password.php; //!file:library/userHome/personal/eclApp_userHome_personal.php; class eclApp_userHome_personal { // class eclApp_userHome_personal static function is_child ($me, $name) { // function is_child if ($name == '-personal') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names return array ('-personal'); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('userHome_personal_content'); $me->access = 4; $me->isDomain = true; } // function constructor_helper static function dispatch ($document) { // function dispatch global $store; $me = $document->application->parent; $formulary = $document->createFormulary ('userHome_personal_edit', $me->data, 'personal'); if ($formulary->command ('cancel')) { // close pop up $document->dataReplace ('layouts/dialog_cancel'); } // close pop up if ($formulary->command ('save') and $formulary->save ()) { // save $me->data = $formulary->data; $document->mod->humperstilshen->alert ('userHome_personal_alertDataUpdated'); } // save if ($formulary->errorMsg) $document->mod->humperstilshen->alert ($formulary->errorMsg); $document->mod->formulary = $formulary; } // function dispatch } // class eclApp_userHome_personal //!eof:library/userHome/personal/eclApp_userHome_personal.php; //!file:library/userHome/phone/eclApp_userHome_phone.php; class eclApp_userHome_phone { // class eclApp_userHome_phone static function is_child ($me, $name) { // function is_child if (INTEGRATION_SMS_ENABLE and $name == '-phone') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names if (INTEGRATION_SMS_ENABLE) return array ('-phone'); return array (); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('userHome_phone_content'); $me->isDomain = true; $me->access = 4; } // function constructor_helper static function dispatch ($document) { // function dispatch global $store; $me = $document->application->parent; $user = $store->user->open ($document->user->name); if ($document->actions ('phone', 'input')) return self::action_phone_input ($document); if ($user['phone'] == '' and !isset ($me->data['flags']['userHome_phone_check'])) return self::action_phone_input ($document); if ($user['phone'] == '' and isset ($me->data['flags']['userHome_phone_check'])) return self::action_phone_check ($document); self::action_phone_verified ($document); } // function dispatch static function action_phone_input ($document) { // function action_phone_input global $io, $store; $me = $document->user; $formulary = $document->createFormulary ('userHome_phone_input', $me->data, 'input'); $formulary->action = '_phone-input'; if ($formulary->command ('next') and $formulary->save ()) { // save $user = &$store->user->open ($document->user->name); $me->data = $formulary->data; $newNumber = $me->data['local']['phone_area'] . $me->data['local']['phone_number']; if ($newNumber == $user['phone']) return self::action_phone_verified ($document); $user['phone'] = ''; $code = mt_rand (1000, 9999); $me->data['flags']['userHome_phone_check'] = $code; $io->sms->send (array ( 'number' => $newNumber, 'message' => strval ($code) )); return self::action_phone_check ($document); } // save $document->mod->formulary = $formulary; if ($formulary->errorMsg) $document->mod->humperstilshen->alert ($formulary->errorMsg); } // function action_phone_input static function action_phone_check ($document) { // function action_phone_check global $store; $me = $document->user; $formulary = $document->createFormulary ('userHome_phone_check', array (), 'check'); if ($formulary->command ('next') and $formulary->save ()) { // save if ($formulary->data['code'] == $me->data['flags']['userHome_phone_check']) { // verified $user = &$store->user->open ($me->name); $user['phone'] = $me->data['local']['phone_area'] . $me->data['local']['phone_number']; unset ($me->data['flags']['userHome_phone_check']); return self::action_phone_verified ($document); } // verified $document->mod->humperstilshen->alert ('userHome_phone_alertInvalidCode'); } // save $document->mod->formulary = $formulary; if ($formulary->errorMsg) $document->mod->humperstilshen->alert ($formulary->errorMsg); } // function action_phone_check static function action_phone_verified ($document) { // function action_phone_verified global $store; $me = $document->user; $formulary = $document->createFormulary ('userHome_phone_verified', array (), 'verified'); if ($formulary->command ('cancel')) return $document->dataReplace ('layouts/dialog_cancel'); if ($formulary->command ('update')) return self::action_phone_input ($document); $document->mod->formulary = $formulary; $document->dataReplace ('userHome_phone_verified'); $document->data['number'] = $me->data['local']['phone_area'] . ' - ' . $me->data['local']['phone_number']; } // function action_phone_verified } // class eclApp_userHome_phone //!eof:library/userHome/phone/eclApp_userHome_phone.php; //!file:library/userHome/welcome/eclApp_userHome_welcome.php; class eclApp_userHome_welcome { // class eclApp_userHome_welcome static function is_child ($me, $name) { // function is_child if ($name == '-welcome') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names return array (); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper $me->access = 4; } // function constructor_helper static function dispatch ($document) { // function dispatch global $store, $system; $me = $document->user; if (isset ($me->data['local']['gender']) and $document->user->data['local']['gender'] == 'female') $gender = 'F'; else $gender = 'M'; if ($me->name == ADMIN_IDENTIFIER) $status = STATUS_ADMIN; else $status = $store->user->getStatus ($me->name); if ($status == STATUS_REMOVED and !$document->access (4, $system->groups)) { // disabled $document->session = array ('session_time' => TIME); $document->mod->humperstilshen->alert ('userHome_welcome_disabled' . $gender); } // disabled else { // welcome if ($document->pathway[0] == SYSTEM_PROFILES_URI) $document->mod->humperstilshen->alert ('userHome_welcome_welcomeToProfile'); else $document->mod->humperstilshen->alert ('userHome_welcome_welcome'); } // welcome } // function dispatch } // class eclApp_userHome_welcome //!eof:library/userHome/welcome/eclApp_userHome_welcome.php; //!file:library/userIndex/eclApp_userIndex.php; class eclApp_userIndex { // class eclApp_userIndex static function is_child ($me, $name) { // function is_child if ($name == '') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'section'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names return array (''); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('userIndex_content'); unset ($me->pathway[1]); } // function constructor_helper static function dispatch ($document) { // function dispatch $document->mod->list = new eclMod_userIndex_list ($document); } // function dispatch } // class eclApp_userIndex //!eof:library/userIndex/eclApp_userIndex.php; //!file:library/userIndex/eclMod_userIndex_list.php; class eclMod_userIndex_list { // class eclMod_userIndex_list public $document; public function __construct ($document) { // function __construct $this->document = $document; } // function __construct public function setModule ($mod, $arguments) { // function setModule global $store; $document = $this->document; $names = $store->user->childrenNames (); $userId; $name; $data; $pathway; $row = $mod->appendChild (); foreach ($names as $name) { // each name $userId = $store->user->getId ($name); $data = $store->userContent->open ($userId, '-register'); if (!$data) $data = $store->userContent->open ($userId, '-index'); $pathway = array (SYSTEM_PROFILES_URI, $name); $row->appendChild ($data) ->swapTitle () ->url ($pathway); } // each name $mod->data = $store->control->read ('modules/list'); $mod->enabled = true; } // function setModule } // class eclMod_userIndex_list //!eof:library/userIndex/eclMod_userIndex_list.php; //!file:library/userJoin/eclApp_userJoin.php; class eclApp_userJoin { // class eclApp_userJoin static function is_child ($me, $name) { // function is_child if ($name == '-join') return true; return false; } // function is_child static function get_menu_type ($me) { // function get_menu_type return 'hidden'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names return array ('-join'); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('userJoin_content'); $me->isDomain = true; } // function constructor_helper static function dispatch ($document) { // function dispatch $session = &$document->session; if (!isset ($session['page'])) $document->session['page'] = 0; do { // process pages $process = 'page' . $document->session['page']; } // process pages while (self::$process ($document) != 'stop'); } // function dispatch static function page0 ($document) { // function page0 global $store; if ($domainId = $store->domain->getId (SYSTEM_DEFAULT_DOMAIN_NAME) and $id = $store->domainContent->findMarker ($domainId, 5)) { // service terms found $formulary = $document->createFormulary ('userJoin_page0', $document->session, 'page0'); if ($formulary->command ('next') and $formulary->save () and isset ($formulary->data['agree'])) { // go page 1 $document->session = $formulary->data; $document->session['page'] = 1; return 'go next'; } // go page 1 $document->dataReplace ('userJoin_page0'); $document->mod->formulary = $formulary; return 'stop'; } // service terms found $document->session['page'] = 1; return 'go next'; } // function page0 static function page1 ($document) { // function page1 global $store, $system; if (isset ($document->session['agree'])) $formulary = $document->createFormulary ('userJoin_page1previous', $document->session, 'page1'); else $formulary = $document->createFormulary ('userJoin_page1', $document->session, 'page1'); if ($formulary->command ('previous')) { // previous $formulary->save (); $document->session = $formulary->data; $document->session['page'] = 0; return 'go next'; } // previous if ($formulary->command ('next') and $formulary->save ()) { // next $user['name'] = $formulary->data['name']; $user['password'] = $formulary->data['password']; $user['status'] = 1; $userId = $store->user->insert ($user); $data = $formulary->data; $data['mode'] = MODE_DOMAIN; $data['name'] = '-register'; $store->userContent->insert ($userId, $data); // login $document->session['user_id'] = $userId; $document->session['user_name'] = $user['name']; $document->session['time'] = TIME; $document->user = $system->child (SYSTEM_PROFILES_URI)->child ($document->session['user_name']); $document->mod->humperstilshen->alert ('userJoin_alertWelcome'); $document->session['page'] = 2; return 'go next'; } // next $document->dataReplace ('userJoin_page1'); $document->mod->formulary = $formulary; if ($formulary->errorMsg) $document->mod->humperstilshen->alert ($formulary->errorMsg); return 'stop'; } // function page1 static function page2 ($document) { // function page2 global $store; $formulary = $document->createFormulary ('userJoin_page2', $document->user->data, 'page2'); if ($formulary->command ('cancel') and $formulary->save ()) { // close $document->user->data = $formulary->data; $document->dataReplace ('layouts/dialog_close'); return 'stop'; } // close $document->dataReplace ('userJoin_page2'); $document->mod->formulary = $formulary; if ($formulary->errorMsg) $document->mod->humperstilshen->alert ($formulary->errorMsg); return 'stop'; } // function page2 } // class eclApp_userJoin //!eof:library/userJoin/eclApp_userJoin.php; //!file:library/userJoin/eclFilter_userJoin_termsView.php; class eclFilter_userJoin_termsView { // class eclFilter_userJoin_termsView static function create ($fieldName, $control, $formulary) { // function create global $store; $control['type'] = 'content'; if ($domainId = $store->domain->getId (SYSTEM_DEFAULT_DOMAIN_NAME) and $id = $store->domainContent->findMarker ($domainId, 5)) { // terms found $data = $store->domainContent->openById ($domainId, $id); $formulary->appendChild ($control, $data); } // terms found } // function create static function save ($fieldName, $control, $formulary) { // function save } // function save } // class eclFilter_userJoin_termsView //!eof:library/userJoin/eclFilter_userJoin_termsView.php; //!file:library/userRecoverPassword/eclApp_userRecoverPassword.php; class eclApp_userRecoverPassword { // class eclApp_userRecoverPassword static function is_child ($me, $name) { // function is_child if (INTEGRATION_SMTP_ENABLE and $name == '-recover-password') return true; return false; } // function is_child static function get_menu_type () { // function get_menu_type return 'post'; } // function get_menu_type static function get_children_names ($me) { // function get_children_names if (INTEGRATION_SMTP_ENABLE) return array ('-recover-password'); return array (); } // function get_children_names static function constructor_helper ($me) { // function constructor_helper global $store; $me->data = $store->control->read ('userRecoverPassword_content'); $me->isDomain = true; } // function constructor_helper static function dispatch ($document) { // function dispatch global $system; $formulary = $document->createFormulary ('userRecoverPassword_edit'); if ($formulary->save ()) { // save formulary $token = md5 (mt_rand () . TIME); $user = $system->child (SYSTEM_PROFILES_URI)->child ($formulary->data['identifier']); $user->data['flags']['userRecoverPassword_token'] = $token; $template = clone $document; $template->user = $user; $template->charset = 'UTF-8'; $template->dataReplace ('userRecoverPassword_messageTemplate'); $template->data['url'] = $document->url (array (SYSTEM_PROFILES_URI, $template->user->name, '-recover-password'), true, '_token-' . $token); $template->render (); $subject = $template->selectLanguage ($template->textMerge ($template->data['text']['title'], ' ', $user->data['text']['caption'])); $mail = $document->createMail () ->subject ($subject[1]) ->to ($formulary->data['local']['mail']) ->contentHTML ($template->buffer); $errorMsg = $mail->send (); if ($errorMsg) { // mail error $document->mod->humperstilshen->alert ($errorMsg); return; } // mail error $document->dataMerge ('userRecoverPassword_msgMailSent'); $document->data['mail_from'] = INTEGRATION_SMTP_FROM; return; } // save formulary $document->mod->formulary = $formulary; if ($formulary->errorMsg) $document->mod->humperstilshen->alert ($formulary->errorMsg); } // function dispatch } // class eclApp_userRecoverPassword //!eof:library/userRecoverPassword/eclApp_userRecoverPassword.php; //!file:library/userRecoverPassword/eclFilter_userRecoverPassword_identifier.php; class eclFilter_userRecoverPassword_identifier { // class eclFilter_userRecoverPassword_identifier static function create ($fieldName, $control, $formulary) { // function create $control['name'] = $fieldName; // type if (isset ($control['flags']['type'])) $control['type'] = $control['flags']['type']; else $control['type'] = 'text'; $formulary->appendChild ($control); } // function create static function save ($fieldName, $control, $formulary) { // function save global $store; if (!isset ($formulary->received[$fieldName]) or !preg_match ('/^[a-z0-9_-]+$/', $formulary->received[$fieldName])) return $formulary->setRequiredMsg ($control, $fieldName, 'userRecoverPassword_editAdminNotFound'); $userId = $store->user->getId ($formulary->received[$fieldName]); // required if (!$userId) return $formulary->setRequiredMsg ($control, $fieldName, 'userRecoverPassword_editAdminNotFound'); $data = $store->userContent->open ($userId, '-register'); if (!$data or !isset ($data['local']['mail'])) return $formulary->setRequiredMsg ($control, $fieldName, 'userRecoverPassword_editAdminMailNotFound'); $formulary->data = $data; $formulary->data['identifier'] = $formulary->received[$fieldName]; } // function save } // class eclFilter_userRecoverPassword_identifier //!eof:library/userRecoverPassword/eclFilter_userRecoverPassword_identifier.php; //!packager:end_of_files // Input and output drivers $io = new eclEngine_io (); // Data managers $store = new eclEngine_store(); // Applications tre $system = new eclEngine_application (); // The document $document = new eclEngine_document (); $document->route($io->request); $document->sessionStart ($document->application->ignoreSession ()); $document->dispatch(); $document->render(); $store->close(); $io->close(); $io->request->giveBack ($document); __HALT_COMPILER();a:2:{s:5:"flags";a:3:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:9:"templates";s:14:"modLayout_name";s:7:"default";}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:3:{i:1;s:39:"Administração do [text $system.caption]";i:2;i:1;i:6;i:1;}s:2:"en";a:3:{i:1;s:37:"[text $system.caption] Administration";i:2;i:1;i:6;i:1;}}s:5:"title";a:2:{s:2:"pt";a:3:{i:1;s:39:"Administração do [text $system.caption]";i:2;i:1;i:6;i:1;}s:2:"en";a:3:{i:1;s:37:"[text $system.caption] Administration";i:2;i:1;i:6;i:1;}}s:11:"description";a:1:{s:2:"pt";a:3:{i:1;s:81:"Oferece um conjunto de ferramentas para a administração do [text $system.caption]";i:2;i:1;i:6;i:1;}}}}a:2:{s:5:"flags";a:6:{s:4:"type";s:10:"text_small";s:6:"filter";s:20:"admin_constants_flag";s:6:"target";s:13:"ADMIN_CAPTION";s:10:"field_name";s:13:"ADMIN_CAPTION";s:10:"value_cast";s:4:"free";s:4:"help";i:1;}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:4:"Nome";i:2;i:1;}s:2:"en";a:1:{i:1;s:4:"Name";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:4:"Nome";i:2;i:1;}s:2:"en";a:1:{i:1;s:4:"Name";}}s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:35:"Nome ou apelido do administrador.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:3:{s:5:"flags";a:6:{s:4:"type";s:6:"select";s:6:"filter";s:22:"admin_constants_select";s:6:"target";s:12:"ADMIN_GENDER";s:10:"field_name";s:12:"ADMIN_GENDER";s:10:"value_cast";s:6:"string";s:4:"help";i:1;}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:19:"Forma de tratamento";i:2;i:1;}s:2:"en";a:1:{i:1;s:6:"Gender";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:19:"Forma de tratamento";i:2;i:1;}s:2:"en";a:1:{i:1;s:6:"Gender";}}s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:140:"A forma como o administrador ou a administradora prefere ser tratado - não necessariamente o sexo constante no seu registro de nascimento!#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}s:8:"children";a:2:{i:0;s:16:"~adminGenderMale";i:1;s:18:"~adminGenderFemale";}}a:2:{s:5:"flags";a:1:{s:5:"value";s:6:"female";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:7:"Senhora";i:2;i:1;}s:2:"en";a:2:{i:1;s:3:"Mis";i:2;i:1;}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:4:"male";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Senhor";i:2;i:1;}s:2:"en";a:2:{i:1;s:6:"Mister";i:2;i:1;}}}}a:2:{s:5:"flags";a:6:{s:4:"type";s:4:"text";s:6:"filter";s:20:"admin_constants_flag";s:6:"target";s:13:"ADMIN_HELPERS";s:10:"field_name";s:13:"ADMIN_HELPERS";s:10:"value_cast";s:6:"string";s:4:"help";i:1;}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"Ajudantes";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Helpers";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:9:"Ajudantes";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Helpers";}}s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:383:"#r#nCaso tenha cadastrado outros usuários e deseja dar-lhes status de administrador do sistema, escreva neste campo o identificador ou uma lista de identificadores separados por espaço.#r#n#r#nLembre que o status de administrador permite acesso a todos os ambientes e ferramentas do sistema. Caso queira que algum usuário administre um domínio, inscreva-o como administrador do domínio.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:2:{s:5:"flags";a:6:{s:4:"type";s:10:"text_small";s:6:"filter";s:20:"admin_constants_flag";s:6:"target";s:16:"ADMIN_IDENTIFIER";s:10:"field_name";s:16:"ADMIN_IDENTIFIER";s:10:"value_cast";s:6:"string";s:4:"help";i:1;}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"Identificador";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"Identifier";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:13:"Identificador";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"Identifier";}}s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:250:"Este é o identificador que o administrador deverá informar ao conectar-se.#r#n#r#nLembre-se de que o administrador possui direitos privilegiados em todos os módulos do sistema. Previna que pessoas não autorizadas utilizem esta informação indevidamente.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:2:{s:5:"flags";a:6:{s:4:"type";s:4:"text";s:6:"filter";s:20:"admin_constants_flag";s:6:"target";s:10:"ADMIN_MAIL";s:10:"field_name";s:10:"ADMIN_MAIL";s:10:"value_cast";s:4:"free";s:4:"help";i:1;}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"E-mail";i:2;i:1;}s:2:"en";a:1:{i:1;s:6:"E-mail";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:6:"E-mail";i:2;i:1;}s:2:"en";a:1:{i:1;s:6:"E-mail";}}s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:461:"O endereço de e-mail utilizado para contatar o administrador.#r#n#r#nCaso seja configurada uma conta de correio eletrônico para que o sistema possa enviar mensagens via SMTP, o administrador poderá receber alertas automáticos do sistema.#r#n#r#nCertifique-se de que o endereço de e-mail seja informado corretamente. Lembre-se de que, para receber mensagens do sistema, sua caixa de mensagens não pode estar cheia nem poderá ter as mensagens bloqueadas pelo anti-spam.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:2:{s:5:"flags";a:5:{s:4:"type";s:13:"text_password";s:6:"filter";s:24:"admin_constants_password";s:6:"target";s:14:"ADMIN_PASSWORD";s:10:"field_name";s:14:"ADMIN_PASSWORD";s:4:"help";i:1;}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:5:"Senha";i:2;i:1;}s:2:"en";a:1:{i:1;s:8:"Password";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:5:"Senha";i:2;i:1;}s:2:"en";a:1:{i:1;s:8:"Password";}}s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:375:"Esta será a senha que o administrador deverá utilizar ao conectar-se ao sistema.#r#n#r#nA senha não pode conter caracteres especiais, pois isto poderá acarretar problemas ao tentar conectar-se ao sistema utilizando um conjunto de caracteres diferente do atual.#r#n#r#nTodavia, recomendamos misturar letras maiúsculas, letras minúsculas e números, evitando o uso de palavras comuns.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"Repetir senha";i:2;i:1;}s:2:"en";a:1:{i:1;s:15:"Repeat password";}}}}a:2:{s:5:"flags";a:6:{s:4:"type";s:9:"text_tiny";s:6:"filter";s:20:"admin_constants_flag";s:6:"target";s:7:"CHR_FNS";s:10:"field_name";s:7:"CHR_FNS";s:10:"value_cast";s:6:"string";s:4:"help";i:1;}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:29:"Separador em nome de arquivos";i:2;i:1;}s:2:"en";a:1:{i:1;s:23:"Separator for filenames";}}s:5:"title";a:1:{s:2:"pt";a:2:{i:1;s:30:"Separador em nomes de arquivos";i:2;i:1;}}s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:101:"#r#nUm servidor Microsoft não aceitou o caractére "+" na URL.#r#n#r#nA solução foi substituí-lo por "__".#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:3:{s:5:"flags";a:6:{s:4:"type";s:6:"select";s:6:"filter";s:20:"admin_constants_flag";s:6:"target";s:15:"DATABASE_CLIENT";s:10:"field_name";s:15:"DATABASE_CLIENT";s:10:"value_cast";s:6:"string";s:4:"help";i:1;}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:7:"Cliente";i:2;i:1;}s:2:"en";a:1:{i:1;s:6:"Client";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:6:"Client";i:2;i:1;}s:2:"en";a:1:{i:1;s:6:"Client";}}s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:251:"O cliente de banco de dados disponível no servidor.#r#n#r#nO sistema utiliza a abstração de banco de dados DBO do PHP. Porém, apenas o MySQL foi testado.#r#n#r#nPara suporte a outros clientes de banco de dados, atualizações no sistema podem ser necessárias.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}s:8:"children";a:2:{i:0;s:21:"~databaseClientSqlite";i:1;s:20:"~databaseClientMysql";}}a:2:{s:5:"flags";a:1:{s:5:"value";s:5:"mysql";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:5:"MySQL";i:2;i:1;}s:2:"en";a:2:{i:1;s:5:"MySQL";i:2;i:1;}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:6:"sqlite";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"SQLite";i:2;i:1;}s:2:"en";a:2:{i:1;s:6:"SQLite";i:2;i:1;}}}}a:2:{s:5:"flags";a:5:{s:4:"type";s:10:"text_small";s:6:"filter";s:20:"admin_constants_flag";s:6:"target";s:11:"DATABASE_DB";s:10:"field_name";s:11:"DATABASE_DB";s:10:"value_cast";s:6:"string";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:14:"Banco de dados";i:2;i:1;}s:2:"en";a:1:{i:1;s:8:"Database";}}}}a:2:{s:5:"flags";a:6:{s:4:"type";s:8:"checkbox";s:6:"filter";s:20:"admin_constants_flag";s:6:"target";s:23:"DATABASE_DISPLAY_ERRORS";s:10:"field_name";s:23:"DATABASE_DISPLAY_ERRORS";s:10:"value_cast";s:4:"bool";s:4:"help";i:1;}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:42:"Enviar mensagens de erros para o navegador";i:2;i:1;}s:2:"en";a:2:{i:1;s:35:"Send errors messages to the browser";i:2;i:1;}}s:5:"title";a:1:{s:2:"pt";a:2:{i:1;s:42:"Enviar mensagens de erros para o navegador";i:2;i:1;}}s:7:"content";a:1:{s:2:"pt";a:3:{i:1;s:351:"#r#nQuando ativada, esta configuração faz com que qualquer erro do banco de dados seja impresso diretamente no navegador.#r#n#r#nIsto facilita o desenvolvimento. Porém, em ambientes de produção, recomendamos desativar esta opção.#r#n#r#nAs mensagens de erro podem expor informações importantes do seu sistema, que poderão ser exploradas em ataques contra ele.#r#n";i:2;i:1;i:4;i:1;}}}}a:2:{s:5:"flags";a:6:{s:4:"type";s:8:"checkbox";s:6:"filter";s:20:"admin_constants_flag";s:6:"target";s:16:"DATABASE_ENABLED";s:10:"field_name";s:16:"DATABASE_ENABLED";s:10:"value_cast";s:4:"bool";s:4:"help";i:1;}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:23:"Ativar o banco de dados";i:2;i:1;}s:2:"en";a:1:{i:1;s:15:"Database enable";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:23:"Ativar o banco de dados";i:2;i:1;}s:2:"en";a:1:{i:1;s:15:"Database enable";}}s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:418:"Ativa ou desativa o uso de banco de dados.#r#n#r#nO banco de dados é necessário para armazenar o conteúdo das páginas dos usuários. Desativando esta opção, recursos importantes do sistema não estarão disponíveis.#r#n#r#nAs informações sobre a conexão com o banco de dados devem ser fornecidas pelo serviço de hospedagem. Caso não possua estas informações, entre em contato com o suporte técnico do seu serviço de hospedagem.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:2:{s:5:"flags";a:1:{s:4:"icon";s:7:"default";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:25:"Banco de dados desativado";i:2;i:1;}s:2:"en";a:1:{i:1;s:17:"Database disabled";}}s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:147:"O acesso ao banco de dados está desativado.#r#n#r#nAlguns recursos do [text $system.caption] que dependem do banco de dados permanecerão desativados.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:2:{s:5:"flags";a:1:{s:4:"icon";s:5:"crash";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:16:"A conexão falhou";i:2;i:1;}s:2:"en";a:1:{i:1;s:20:"The connection fails";}}s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:114:"O [text $system.caption] não foi capaz de conectar-se ao banco de dados utilizando as informações do formulário.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:2:{s:5:"flags";a:1:{s:4:"icon";s:5:"happy";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Sucesso!";i:2;i:1;}s:2:"en";a:1:{i:1;s:8:"Success!";}}s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:70:"O [text $system.caption] conectou-se ao banco de dados corretamente.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:2:{s:5:"flags";a:5:{s:4:"type";s:10:"text_small";s:6:"filter";s:20:"admin_constants_flag";s:6:"target";s:13:"DATABASE_HOST";s:10:"field_name";s:13:"DATABASE_HOST";s:10:"value_cast";s:6:"string";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:4:"Host";i:2;i:1;}s:2:"en";a:1:{i:1;s:4:"Host";}}}}a:2:{s:5:"flags";a:6:{s:4:"type";s:8:"checkbox";s:6:"filter";s:20:"admin_constants_flag";s:6:"target";s:19:"DATABASE_LOG_ERRORS";s:10:"field_name";s:19:"DATABASE_LOG_ERRORS";s:10:"value_cast";s:4:"bool";s:4:"help";i:1;}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:33:"Registrar erros no arquivo de log";i:2;i:1;}s:2:"en";a:2:{i:1;s:33:"Register errors into the log file";i:2;i:1;}}s:5:"title";a:1:{s:2:"pt";a:2:{i:1;s:33:"Registrar erros no arquivo de log";i:2;i:1;}}s:7:"content";a:1:{s:2:"pt";a:3:{i:1;s:75:"Esta configuração registra qualquer erro do banco de dados em um arquivo.#r#n";i:2;i:1;i:4;i:1;}}}}a:2:{s:5:"flags";a:5:{s:4:"type";s:10:"text_small";s:6:"filter";s:20:"admin_constants_flag";s:6:"target";s:17:"DATABASE_PASSWORD";s:10:"field_name";s:17:"DATABASE_PASSWORD";s:10:"value_cast";s:6:"string";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:5:"Senha";i:2;i:1;}s:2:"en";a:1:{i:1;s:8:"Password";}}}}a:2:{s:5:"flags";a:6:{s:4:"type";s:10:"text_small";s:6:"filter";s:20:"admin_constants_flag";s:6:"target";s:15:"DATABASE_PREFIX";s:10:"field_name";s:15:"DATABASE_PREFIX";s:10:"value_cast";s:6:"string";s:4:"help";i:1;}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:19:"Prefixo das tabelas";i:2;i:1;}s:2:"en";a:1:{i:1;s:13:"Tables prefix";}}s:5:"title";a:1:{s:2:"pt";a:2:{i:1;s:20:"Prefixos das tabelas";i:2;i:1;}}s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:426:"#r#nAcrescentando um prefixo aos nomes de tabelas, você poderá evitar conflitos com outras instalações do [text $system.caption] compartilhando um mesmo banco de dados.#r#n#r#nUtilize o mesmo prefixo de uma instalação anterior caso queira reutilizar os dados das tabelas já existentes. Neste caso, certifique-se de que os formatos das tabelas utilizadas na outra instalação são compatíveis à versão que você está instalando agora.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:2:{s:5:"flags";a:5:{s:4:"type";s:10:"text_small";s:6:"filter";s:20:"admin_constants_flag";s:6:"target";s:13:"DATABASE_USER";s:10:"field_name";s:13:"DATABASE_USER";s:10:"value_cast";s:6:"string";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:7:"Usuário";i:2;i:1;}s:2:"en";a:1:{i:1;s:4:"User";}}}}a:2:{s:5:"flags";a:1:{s:4:"icon";s:5:"error";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:14:"Valor inválido";i:2;i:1;}s:2:"en";a:1:{i:1;s:13:"Invalid value";}}s:7:"content";a:1:{s:2:"pt";a:5:{i:1;s:180:"O valor informado "[$value]" não é um valor válido para o campo "[text $field_caption]".#r#n#r#nUtilize somente letras minúsculas (a-z) não acentuadas, números e os caractéres _ e -.#r#n";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:2:{s:5:"flags";a:1:{s:4:"icon";s:5:"error";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:22:"Nome de pasta inválido";i:2;i:1;}s:2:"en";a:1:{i:1;s:19:"Invalid folder name";}}s:7:"content";a:1:{s:2:"pt";a:5:{i:1;s:120:"O valor informado "[$value]" não é um nome de pasta válido.#r#n#r#nUtilize somente letras minúsculas (a-z) não acentuadas.#r#n";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:2:{s:5:"flags";a:1:{s:4:"icon";s:5:"error";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:22:"Nome de pasta inválido";i:2;i:1;}s:2:"en";a:1:{i:1;s:19:"Invalid folder name";}}s:7:"content";a:1:{s:2:"pt";a:5:{i:1;s:141:"Uma pasta com o nome "[$value]" está sendo utilizada para outra finalidade.#r#n#r#nEscolha um novo nome para a pasta "[text $field_caption]".#r#n#r#n";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:2:{s:5:"flags";a:5:{s:4:"type";s:10:"text_small";s:6:"filter";s:22:"admin_constants_folder";s:6:"target";s:17:"FOLDER_COMPONENTS";s:10:"field_name";s:17:"FOLDER_COMPONENTS";s:4:"help";i:1;}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:11:"Componentes";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"Components";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:11:"Componentes";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"Components";}}s:7:"content";a:1:{s:2:"pt";a:3:{i:1;s:253:"Nesta pasta ficarão armazenados os componentes instalados.#r#n#r#nO nome original desta pasta é "components/".#r#n#r#nAntes de remover algum componente ou a pasta de componentes, verifique se os componentes em uso necessitam de ações prévias antes da remoção.#r#n";i:2;i:1;i:4;i:1;}}}}a:2:{s:5:"flags";a:5:{s:4:"type";s:10:"text_small";s:6:"filter";s:22:"admin_constants_folder";s:6:"target";s:15:"FOLDER_DATABASE";s:10:"field_name";s:15:"FOLDER_DATABASE";s:4:"help";i:1;}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:14:"Banco de dados";i:2;i:1;}s:2:"en";a:1:{i:1;s:8:"Database";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:14:"Banco de dados";i:2;i:1;}s:2:"en";a:1:{i:1;s:8:"Database";}}s:7:"content";a:1:{s:2:"pt";a:3:{i:1;s:339:"Esta pasta é utilizada para armazenar arquivos relacionados ao banco de dados.#r#n#r#nO nome original desta pasta é "database/".#r#n#r#nSe você escolher utilizar SQLite para gerir seus dados, os arquivos de dados ficarão armazenados nesta pasta. Portanto, removendo-se esta pasta, dados de usuários e dos domínios serão permanentemente perdidos.#r#n";i:2;i:1;i:4;i:1;}}}}a:2:{s:5:"flags";a:5:{s:4:"type";s:10:"text_small";s:6:"filter";s:22:"admin_constants_folder";s:6:"target";s:14:"FOLDER_DOMAINS";s:10:"field_name";s:14:"FOLDER_DOMAINS";s:4:"help";i:1;}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Domínios";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Domains";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:8:"Domínios";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Domains";}}s:7:"content";a:1:{s:2:"pt";a:3:{i:1;s:226:"Esta pasta acomoda os arquivos dos domínios.#r#n#r#nDentro desta pasta são criadas subpastas, uma para cada subdomínio.#r#n#r#nO nome das subpastas correspondem aos nomes dos subdomínios.#r#n#r#nO nome original desta pasta é "domains/".#r#n";i:2;i:1;i:4;i:1;}}}}a:2:{s:5:"flags";a:5:{s:4:"type";s:10:"text_small";s:6:"filter";s:22:"admin_constants_folder";s:6:"target";s:13:"FOLDER_ENGINE";s:10:"field_name";s:13:"FOLDER_ENGINE";s:4:"help";i:1;}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:26:"Engine (núcleo do sistema)";i:2;i:1;}s:2:"en";a:1:{i:1;s:22:"Engine (system kernel)";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:26:"Engine (núcleo do sistema)";i:2;i:1;}s:2:"en";a:1:{i:1;s:22:"Engine (system kernel)";}}s:7:"content";a:1:{s:2:"pt";a:3:{i:1;s:201:"Nesta pasta são armazenados os scripts principais do sistema.#r#n#r#nO nome original desta pasta é "engine/".#r#n#r#nSe o sistema estiver "empacotado", esta pasta pode não estar presente ou pode estar vazia.#r#n";i:2;i:1;i:4;i:1;}}}}a:2:{s:5:"flags";a:5:{s:4:"type";s:10:"text_small";s:6:"filter";s:22:"admin_constants_folder";s:6:"target";s:14:"FOLDER_LIBRARY";s:10:"field_name";s:14:"FOLDER_LIBRARY";s:4:"help";i:1;}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:21:"Biblioteca de módulos";i:2;i:1;}s:2:"en";a:1:{i:1;s:15:"Modules library";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:21:"Biblioteca de módulos";i:2;i:1;}s:2:"en";a:1:{i:1;s:15:"Modules library";}}s:7:"content";a:1:{s:2:"pt";a:3:{i:1;s:270:"Nesta pasta são armazenados os scripts dos módulos.#r#n#r#nVocê poderá acrescentar novos módulos ao sistema adicionando-os nesta pasta.#r#n#r#nO nome original desta pasta é "library/".#r#nSe o sistema estiver "empacotado", esta pasta pode não estar presente ou pode estar vazia.#r#n";i:2;i:1;i:4;i:1;}}}}a:2:{s:5:"flags";a:5:{s:4:"type";s:10:"text_small";s:6:"filter";s:22:"admin_constants_folder";s:6:"target";s:15:"FOLDER_PROFILES";s:10:"field_name";s:15:"FOLDER_PROFILES";s:4:"help";i:1;}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:18:"Perfis de usuários";i:2;i:1;}s:2:"en";a:1:{i:1;s:14:"Users profiles";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:18:"Perfis de usuários";i:2;i:1;}s:2:"en";a:1:{i:1;s:14:"Users profiles";}}s:7:"content";a:1:{s:2:"pt";a:3:{i:1;s:235:"Esta pasta acomoda os arquivos dos usuários.#r#n#r#nDentro desta pasta serão criadas subpastas, uma para cada usuário.#r#n#r#nOs nomes das subpastas correspondem aos identificadores dos usuários.#r#n#r#nO nome original desta pasta é "profiles/".#r#n";i:2;i:1;i:4;i:1;}}}}a:2:{s:5:"flags";a:5:{s:4:"type";s:10:"text_small";s:6:"filter";s:22:"admin_constants_folder";s:6:"target";s:13:"FOLDER_SHARED";s:10:"field_name";s:13:"FOLDER_SHARED";s:4:"help";i:1;}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:23:"Arquivos compartilhados";i:2;i:1;}s:2:"en";a:1:{i:1;s:12:"Shared files";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:23:"Arquivos compartilhados";i:2;i:1;}s:2:"en";a:1:{i:1;s:12:"Shared files";}}s:7:"content";a:1:{s:2:"pt";a:3:{i:1;s:375:"Os arquivos compartilhados podem ser utilizados como complementos para a construção de layouts e como multi-mídia auxiliar para todos os domínios.#r#n#r#nVocê poderá acrescentar novos layouts e mídias ao sistema adicionando-os nesta pasta.#r#n#r#nO nome original desta pasta é "shared/".#r#n#r#nSe o sistema estiver "empacotado", esta pasta pode não estar presente ou pode estar vazia.#r#n";i:2;i:1;i:4;i:1;}}}}a:2:{s:5:"flags";a:5:{s:4:"type";s:10:"text_small";s:6:"filter";s:22:"admin_constants_folder";s:6:"target";s:16:"FOLDER_TEMPLATES";s:10:"field_name";s:16:"FOLDER_TEMPLATES";s:4:"help";i:1;}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:19:"Arquivos de modelos";i:2;i:1;}s:2:"en";a:1:{i:1;s:14:"Template files";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:19:"Arquivos de modelos";i:2;i:1;}s:2:"en";a:1:{i:1;s:14:"Template files";}}s:7:"content";a:1:{s:2:"pt";a:3:{i:1;s:498:"#r#nÉ possível criar, instalar ou editar seus próprios blocos para a construção dos documentos em cada ambiente. Noentanto, na falta de algum bloco ou mesmo na ausência total de blocos personalizados, o sistema usará seus próprios blocos, disponíveis nesta pasta. #r#n#r#nVocê poderá acrescentar novos blocos de construção ao sistema adicionando-os nesta pasta.#r#n#r#nO nome original desta pasta é "templates/".#r#n#r#nSe o sistema estiver "empacotado", esta pasta pode não estar presente ou pode estar vazia.#r#n";i:2;i:1;i:4;i:1;}}}}a:2:{s:5:"flags";a:6:{s:4:"type";s:10:"text_small";s:6:"filter";s:20:"admin_constants_flag";s:6:"target";s:16:"SYSTEM_ADMIN_URI";s:10:"field_name";s:16:"SYSTEM_ADMIN_URI";s:10:"value_cast";s:6:"string";s:4:"help";i:1;}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:3:{i:1;s:54:"Caminho para "Administração do [text $system.caption]"";i:2;i:1;i:6;i:1;}s:2:"en";a:2:{i:1;s:48:"Path to "[text $profile.caption] Administration"";i:6;i:1;}}s:5:"title";a:2:{s:2:"pt";a:3:{i:1;s:54:"Caminho para "Administração do [text $system.caption]"";i:2;i:1;i:6;i:1;}s:2:"en";a:2:{i:1;s:48:"Path to "[text $profile.caption] Administration"";i:6;i:1;}}s:7:"content";a:1:{s:2:"pt";a:3:{i:1;s:594:"#r#nEste é o caminho para a área administrativa da Ecolabore Engine. Inicialmente o caminho é "admin".#r#n#r#nPara acessar o painel administrativo em diferentes configurações, veja os exemplos abaixo:#r#n#r#n* Em modo "Portal": www.admin.dominio.com#r#n* Em modo "Múltiplos ambientes": www.dominio.com/admin ou localhost/admin#r#n* Em "Ambiente único": www.dominio.com/-admin ou localhost/-admin#r#n#r#nUtilizando o sistema em uma subpasta:#r#n#r#n* Em modo "Múltiplos ambientes": www.dominio.com/pasta/admin ou localhost/pasta/admin#r#n* Em "Ambiente único": www.dominio.com/pasta/-admin ou localhost/pasta/-admin#r#n#r#n";i:2;i:1;i:4;i:1;}}}}a:3:{s:5:"flags";a:6:{s:4:"type";s:6:"select";s:6:"filter";s:22:"admin_constants_select";s:6:"target";s:22:"SYSTEM_DEFAULT_CHARSET";s:10:"field_name";s:22:"SYSTEM_DEFAULT_CHARSET";s:10:"value_cast";s:6:"string";s:4:"help";i:1;}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:25:"Codificação de caracteres";i:2;i:1;}s:2:"en";a:2:{i:1;s:19:"Characters encoding";i:2;i:1;}}s:5:"title";a:1:{s:2:"pt";a:2:{i:1;s:25:"Codificação de caracteres";i:2;i:1;}}s:7:"content";a:1:{s:2:"pt";a:3:{i:1;s:526:"#r#nEsta será a codificação de caracteres utilizada pela Ecolabore Engine ao enviar dados para o navegador.#r#n#r#nCaso os dados estejam armazenados em outra codificação, os dados serão convertidos automaticamente no momento de composição do documento.#r#n#r#nSe você escolher um conjunto de caracteres mais restrito que a codificação de algum conteúdo armazenado previamente, alguns caracteres especiais poderão não ser convertidos corretamente.#r#n#r#nCada ambiente poderá ser configurado para ter sua própria codificação de caracteres.#r#n";i:2;i:1;i:4;i:1;}}}s:8:"children";a:2:{i:0;s:25:"~systemDefaultCharsetUtf8";i:1;s:29:"~systemDefaultCharsetIso88591";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:28:"Europeu ocidental ISO-8859-1";i:2;i:1;}s:2:"en";a:2:{i:1;s:27:"Western European ISO-8859-1";i:2;i:1;}}}s:5:"flags";a:1:{s:5:"value";s:10:"ISO-8859-1";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:2:{i:1;s:13:"Unicode UTF-8";i:2;i:1;}}}s:5:"flags";a:1:{s:5:"value";s:5:"UTF-8";}}a:2:{s:5:"flags";a:6:{s:4:"type";s:6:"select";s:6:"filter";s:30:"admin_constants_selectCurrency";s:6:"target";s:23:"SYSTEM_DEFAULT_CURRENCY";s:10:"field_name";s:23:"SYSTEM_DEFAULT_CURRENCY";s:10:"value_cast";s:6:"string";s:4:"help";i:1;}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:12:"Moeda padrão";i:2;i:1;}s:2:"en";a:1:{i:1;s:16:"Default currency";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:12:"Moeda padrão";i:2;i:1;}s:2:"en";a:1:{i:1;s:16:"Default currency";}}s:7:"content";a:1:{s:2:"pt";a:3:{i:1;s:145:"#r#nEsta será a moeda utilizada por padrão ao exibir valores monetários.#r#n#r#nCada ambiente poderá ser configurado para utilizar sua própria moeda.#r#n";i:2;i:1;i:4;i:1;}}}}a:2:{s:5:"flags";a:6:{s:4:"type";s:10:"text_small";s:6:"filter";s:20:"admin_constants_flag";s:6:"target";s:26:"SYSTEM_DEFAULT_DOMAIN_NAME";s:10:"field_name";s:26:"SYSTEM_DEFAULT_DOMAIN_NAME";s:10:"value_cast";s:6:"string";s:4:"help";i:1;}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:14:"Domínio padrão";i:2;i:1;}s:2:"en";a:1:{i:1;s:14:"Default domain";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:14:"Domínio padrão";i:2;i:1;}s:2:"en";a:1:{i:1;s:14:"Default domain";}}s:7:"content";a:1:{s:2:"pt";a:3:{i:1;s:477:"#r#nCaso o sistema esteja trabalhando em modo "Portal", este será o ambiente aberto quando nenhum subdomínio for informado na requisição.#r#n#r#nCaso o sistema esteja trabalhando com subdomínios em subpastas, este será o ambiente padrão quando nenhuma subpasta for informada na requisição.#r#n#r#nCaso o sistema esteja configurado para trabalhar com um único ambiente, o nome deste campo deverá coincidir com o nome do ambiente em uso. Neste modo outros ambientes não ficam acessíveis.#r#n";i:2;i:1;i:4;i:1;}}}}a:2:{s:5:"flags";a:6:{s:4:"type";s:6:"select";s:6:"filter";s:26:"admin_constants_selectLang";s:6:"target";s:23:"SYSTEM_DEFAULT_LANGUAGE";s:10:"field_name";s:23:"SYSTEM_DEFAULT_LANGUAGE";s:10:"value_cast";s:6:"string";s:4:"help";i:1;}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"Idioma padrão";i:2;i:1;}s:2:"en";a:1:{i:1;s:16:"Default language";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:13:"Idioma padrão";i:2;i:1;}s:2:"en";a:1:{i:1;s:16:"Default language";}}s:7:"content";a:1:{s:2:"pt";a:3:{i:1;s:158:"#r#nEste será o idioma utilizado quando nenhum idioma for informado na requisição.#r#n#r#nCada ambiente poderá ser configurado para ter seu próprio idioma padrão.#r#n";i:2;i:1;i:4;i:1;}}}}a:2:{s:5:"flags";a:6:{s:4:"type";s:8:"checkbox";s:6:"filter";s:20:"admin_constants_flag";s:6:"target";s:21:"SYSTEM_DISPLAY_ERRORS";s:10:"field_name";s:21:"SYSTEM_DISPLAY_ERRORS";s:10:"value_cast";s:4:"bool";s:4:"help";i:1;}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:42:"Enviar mensagens de erros para o navegador";i:2;i:1;}s:2:"en";a:2:{i:1;s:35:"Send errors messages to the browser";i:2;i:1;}}s:5:"title";a:1:{s:2:"pt";a:2:{i:1;s:42:"Enviar mensagens de erros para o navegador";i:2;i:1;}}s:7:"content";a:1:{s:2:"pt";a:3:{i:1;s:340:"#r#nQuando ativada, esta configuração faz com que o PHP imprima as mensagens de erro diretamente no navegador.#r#n#r#nIsto facilita o desenvolvimento. Porém, em ambientes de produção, recomendamos desativar esta opção.#r#n#r#nAs mensagens de erro podem expor informações importantes do seu sistema, que poderão ser exploradas em ataques contra ele.#r#n";i:2;i:1;i:4;i:1;}}}}a:2:{s:5:"flags";a:6:{s:4:"type";s:8:"checkbox";s:6:"filter";s:20:"admin_constants_flag";s:6:"target";s:26:"SYSTEM_ENABLE_USER_DOMAINS";s:10:"field_name";s:26:"SYSTEM_ENABLE_USER_DOMAINS";s:10:"value_cast";s:4:"bool";s:4:"help";i:1;}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:45:"Permitir aos usuários criarem novos ambientes";i:2;i:1;}s:2:"en";a:1:{i:1;s:34:"Enable users to create new domains";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:45:"Permitir aos usuários criarem novos ambientes";i:2;i:1;}s:2:"en";a:1:{i:1;s:34:"Enable users to create new domains";}}s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:111:"#r#nAtivando esta opção, qualquer usuário pode iniciar a construção de um novo ambiente caso este esteja livre.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:2:{s:5:"flags";a:6:{s:4:"type";s:8:"checkbox";s:6:"filter";s:20:"admin_constants_flag";s:6:"target";s:32:"SYSTEM_ENABLE_USER_SUBSCRIPTIONS";s:10:"field_name";s:32:"SYSTEM_ENABLE_USER_SUBSCRIPTIONS";s:10:"value_cast";s:4:"bool";s:4:"help";i:1;}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:42:"Permitir aos usuários criarem novos perfis";i:2;i:1;}s:2:"en";a:1:{i:1;s:35:"Enable users to create new profiles";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:42:"Permitir aos usuários criarem novos perfis";i:2;i:1;}s:2:"en";a:1:{i:1;s:35:"Enable users to create new profiles";}}s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:125:"#r#nAtivando esta opção, um link é adicionado no menu de "Boas vindas", permitindo aos usuários criarem seus próprios perfis.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:2:{s:5:"flags";a:6:{s:4:"type";s:10:"text_small";s:6:"filter";s:20:"admin_constants_flag";s:6:"target";s:11:"SYSTEM_HOST";s:10:"field_name";s:11:"SYSTEM_HOST";s:10:"value_cast";s:6:"string";s:4:"help";i:1;}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:4:"Host";i:2;i:1;}s:2:"en";a:1:{i:1;s:4:"Host";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:4:"Host";i:2;i:1;}s:2:"en";a:1:{i:1;s:4:"Host";}}s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:180:"#r#nO host no qual o [text $system.caption] está instalado.#r#n#r#nEste é o domínio principal que deverá ser utilizado quando o sistema estiver utilizando subdomínios em "Modo Portal".#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:3:{s:5:"flags";a:6:{s:4:"type";s:6:"select";s:6:"filter";s:20:"admin_constants_flag";s:6:"target";s:19:"SYSTEM_HOSTING_MODE";s:10:"field_name";s:19:"SYSTEM_HOSTING_MODE";s:10:"value_cast";s:3:"int";s:4:"help";i:1;}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:18:"Modo de hospedagem";i:2;i:1;}s:2:"en";a:1:{i:1;s:12:"Hosting mode";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:18:"Modo de hospedagem";i:2;i:1;}s:2:"en";a:1:{i:1;s:12:"Hosting mode";}}s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:1181:"#r#nO [text $system.caption] é capaz de gerenciar múltiplos ambientes independentes entre si. Podem ser acessados como subpastas ou como subdomínios, de acordo com a configuração escolhida e das capacidades do servidor.#r#n#r#nPara utilizar o modo "Portal", em que os múltiplos ambientes sejam acessados como subdomínios, certifique-se de:#r#n#r#n* O servidor deve ser Apache e deve ter o módulo "rewriteEngine" habilitado#r#n* O servidor deve estar configurado para aceitar qualquer subdomínio#r#n* Todo o sistema deve estar na raiz do domínio#r#n* O arquivo ".htdocs" correto deve ser colocado na raiz do seu sistema#r#n* Você deve certificar-se de que outras aplicações não entrem em conflito com o [text $system.caption].#r#n#r#nEm modo "ambientes como subpastas" você pode acessar os diversos ambientes como se fossem subpastas do seu domínio. Neste caso, todo o sistema poderá ser colocado dentro de uma subpasta do seu domínio, caso você queira evitar conflito com outras aplicações. Este modo permite acesso local através de "localhost".#r#n#r#nO modo "Ambiente único" permite o acesso a um único ambiente, porém, sem restringir o acesso à área de configuração do sistema e aos perfis de usuários.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}s:8:"children";a:3:{i:0;s:24:"~systemHostingModeSingle";i:1;s:28:"~systemHostingModeSubfolders";i:2;s:24:"~systemHostingModePortal";}}a:2:{s:5:"flags";a:1:{s:5:"value";i:2;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:11:"Modo portal";i:2;i:1;}s:2:"en";a:2:{i:1;s:11:"Portal mode";i:2;i:1;}}}}a:2:{s:5:"flags";a:1:{s:5:"value";i:0;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:14:"Ambiente único";i:2;i:1;}s:2:"en";a:2:{i:1;s:11:"Single site";i:2;i:1;}}}}a:2:{s:5:"flags";a:1:{s:5:"value";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:19:"Múltiplos ambientes";i:2;i:1;}s:2:"en";a:2:{i:1;s:14:"Multiple sites";i:2;i:1;}}}}a:2:{s:5:"flags";a:6:{s:4:"type";s:8:"checkbox";s:6:"filter";s:20:"admin_constants_flag";s:6:"target";s:21:"SYSTEM_HTTPS_REDIRECT";s:10:"field_name";s:21:"SYSTEM_HTTPS_REDIRECT";s:10:"value_cast";s:4:"bool";s:4:"help";i:1;}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:73:"Redirecionar conexões http para conexões seguras utilizando SSL via https";i:2;i:1;}s:2:"en";a:1:{i:1;s:58:"Redirect http connections to secure socket layer via https";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:32:"Sempre utilizar conexões seguras";i:2;i:1;}s:2:"en";a:1:{i:1;s:28:"Aways use secure connections";}}s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:544:"#r#nSe seu domínio possui uma assinatura digital, você pode configurar o [text $system.caption] para mudar de uma conexão aberta para uma conexão segura automaticamente.#r#n#r#nCaso não possua uma assinatura digital e os usuários tentem conectar-se utilizando o protocolo https, os navegadores irão exibir mensagens desencorajadoras de falhas na autenticidade. Normalmente é possível utilizar criptografia em todos os servidores, porém, caso os usuários não saibam o que as mensagens significam, poderão acreditar que você está tentando enganá-los.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:2:{s:5:"flags";a:6:{s:4:"type";s:8:"checkbox";s:6:"filter";s:20:"admin_constants_flag";s:6:"target";s:17:"SYSTEM_LOG_ERRORS";s:10:"field_name";s:17:"SYSTEM_LOG_ERRORS";s:10:"value_cast";s:4:"bool";s:4:"help";i:1;}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:33:"Registrar erros no arquivo de log";i:2;i:1;}s:2:"en";a:2:{i:1;s:33:"Register errors into the log file";i:2;i:1;}}s:5:"title";a:1:{s:2:"pt";a:2:{i:1;s:33:"Registrar erros no arquivo de log";i:2;i:1;}}s:7:"content";a:1:{s:2:"pt";a:3:{i:1;s:194:"Esta configuração força o PHP a registrar os erros da Ecolabore Engine em um arquivo de log próprio.#r#n#r#nEstas informações não serão incluídas em logs de erros de outras aplicações do servidor.#r#n";i:2;i:1;i:4;i:1;}}}}a:2:{s:5:"flags";a:6:{s:4:"type";s:8:"checkbox";s:6:"filter";s:20:"admin_constants_flag";s:6:"target";s:23:"SYSTEM_PACKED_MAP_FIRST";s:10:"field_name";s:23:"SYSTEM_PACKED_MAP_FIRST";s:10:"value_cast";s:4:"bool";s:4:"help";i:1;}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:47:"Mapas de aplicações empacotados têm preferência";i:2;i:1;}s:2:"en";a:1:{i:1;s:39:"Applications maps packed has preference";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:47:"Mapas de aplicações empacotados têm preferência";i:2;i:1;}s:2:"en";a:1:{i:1;s:39:"Applications maps packed has preference";}}s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:603:"Esta opção - ativada por padrão - verifica se o mapa da aplicação requisitado está dentro do pacote. Caso não o encontre, será criado o link para o arquivo correspondente fora do pacote.#r#n#r#nDesativando esta opção o comportamento se inverte, forçando o sistema a checar a presença do arquivo solicitado fora do pacote. Caso não exista, então o arquivo interno será utilizado. Isto permite extender o sistema sem desempacotá-lo.#r#n#r#nLembre-se que não é possível atualizar algum módulo com o sistema empacotado, pois os arquivos externos que possuírem equivalentes dentro do pacote nunca serão utilizados.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:2:{s:5:"flags";a:6:{s:4:"type";s:8:"checkbox";s:6:"filter";s:20:"admin_constants_flag";s:6:"target";s:26:"SYSTEM_PACKED_SHARED_FIRST";s:10:"field_name";s:26:"SYSTEM_PACKED_SHARED_FIRST";s:10:"value_cast";s:4:"bool";s:4:"help";i:1;}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:51:"Arquivos compartilhados empacotados têm preferência";i:2;i:1;}s:2:"en";a:1:{i:1;s:34:"Shared files packed has preference";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:51:"Arquivos compartilhados empacotados têm preferência";i:2;i:1;}s:2:"en";a:1:{i:1;s:34:"Shared files packed has preference";}}s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:521:"Esta opção - ativada por padrão - verifica se o arquivo requisitado está dentro do pacote. Caso não o encontre, será criado o link para o arquivo correspondente fora do pacote.#r#n#r#nDesativando esta opção o comportamento se inverte, forçando o sistema a checar a presença do arquivo solicitado fora do pacote. Caso não exista, então o arquivo interno será utilizado. Isto lhe permitirá extender ou atualizar arquivos compartilhados sem desempacotar o sistema. Observe porém que isto implicará uma perda de desempenho.#r#n#r#n#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:2:{s:5:"flags";a:6:{s:4:"type";s:10:"text_small";s:6:"filter";s:20:"admin_constants_flag";s:6:"target";s:19:"SYSTEM_PROFILES_URI";s:10:"field_name";s:19:"SYSTEM_PROFILES_URI";s:10:"value_cast";s:6:"string";s:4:"help";i:1;}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:3:{i:1;s:33:"Caminho para "Perfis de usuários"";i:2;i:1;i:6;i:1;}s:2:"en";a:2:{i:1;s:24:"Path to "Users profiles"";i:6;i:1;}}s:5:"title";a:2:{s:2:"pt";a:3:{i:1;s:33:"Caminho para "Perfis de usuários"";i:2;i:1;i:6;i:1;}s:2:"en";a:2:{i:1;s:24:"Path to "Users profiles"";i:6;i:1;}}s:7:"content";a:1:{s:2:"pt";a:3:{i:1;s:604:"#r#nEste é o caminho para a área social da Ecolabore Engine. Inicialmente o caminho é "profiles".#r#n#r#nPara acessar a área social em diferentes configurações, veja os exemplos abaixo:#r#n#r#n* Em modo "Portal": www.profiles.dominio.com#r#n* Em modo "Múltiplos ambientes": www.dominio.com/profiles ou localhost/profiles#r#n* Em "Ambiente único": www.dominio.com/-profiles ou localhost/-profiles#r#n#r#nUtilizando o sistema em uma subpasta:#r#n#r#n* Em modo "Múltiplos ambientes": www.dominio.com/pasta/profiles ou localhost/pasta/profiles#r#n* Em "Ambiente único": www.dominio.com/pasta/-profiles ou localhost/pasta/-profiles#r#n";i:2;i:1;i:4;i:1;}}}}a:2:{s:5:"flags";a:6:{s:4:"type";s:4:"text";s:6:"filter";s:20:"admin_constants_flag";s:6:"target";s:22:"SYSTEM_PROJECT_CAPTION";s:10:"field_name";s:22:"SYSTEM_PROJECT_CAPTION";s:10:"value_cast";s:4:"free";s:4:"help";i:1;}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:11:"Organização";i:2;i:1;}s:2:"en";a:1:{i:1;s:12:"Organization";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:11:"Organização";i:2;i:1;}s:2:"en";a:1:{i:1;s:12:"Organization";}}s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:198:"#r#nCaso o Portal Ecolabore esteja configurado para administrar diversos ambientes, você pode especificar o nome e o endereço (url) da sua organização para que seja exibida no menu de "Boas vindas".#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:2:{s:5:"flags";a:6:{s:4:"type";s:4:"text";s:6:"filter";s:20:"admin_constants_flag";s:6:"target";s:18:"SYSTEM_PROJECT_URL";s:10:"field_name";s:18:"SYSTEM_PROJECT_URL";s:10:"value_cast";s:4:"free";s:4:"help";i:1;}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:28:"Endereço da página principal";i:2;i:1;}s:2:"en";a:1:{i:1;s:13:"Main page URL";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:28:"Endereço da página principal";i:2;i:1;}s:2:"en";a:1:{i:1;s:13:"Main page URL";}}s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:198:"#r#nCaso o Portal Ecolabore esteja configurado para administrar diversos ambientes, você pode especificar o nome e o endereço (url) da sua organização para que seja exibida no menu de "Boas vindas".#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:2:{s:5:"flags";a:7:{s:9:"condition";s:16:"server_is_apache";s:4:"type";s:8:"checkbox";s:6:"filter";s:20:"admin_constants_flag";s:6:"target";s:21:"SYSTEM_REWRITE_ENGINE";s:10:"field_name";s:21:"SYSTEM_REWRITE_ENGINE";s:10:"value_cast";s:4:"bool";s:4:"help";i:1;}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:129:"Ativar endereços elegantes utilizando o módulo Rewrite Engine do Apache (Poderá causar o bloqueio de outros serviços nesta pasta)";i:2;i:1;}s:2:"en";a:1:{i:1;s:118:" Enable elegant addresses using the Apache Rewrite Engine module (May cause blocking of other services in this folder)";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:19:"Endereços elegantes";i:2;i:1;}s:2:"en";a:1:{i:1;s:17:"Elegant addresses";}}s:7:"content";a:2:{s:2:"pt";a:4:{i:1;s:715:"#r#nO [text $system.caption] detectou que este servidor é Apache e pode tentar ativar o módulo RewriteEngine.#r#n#r#nUma vez que todas as requisições feitas ao [text $system.caption] são sempre direcionadas para "index.php", o módulo Rewrite Engine pode redirecionar todas as requisições desta pasta para o "index.php", mesmo que "index.php" não esteja presente na requisição do usuário.#r#n#r#nIsto torna o sistema mais seguro e os endereços (URLs) mais amigáveis aos usuários. Porém, outros serviços que porventura possam estar disponíveis nesta pasta ou em subpastas poderão se tornar inacessíveis.#r#n#r#nCaso você queira oferecer outros serviços junto ao [text $system.caption], não o coloque na pasta raiz do seu domínio.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}s:2:"en";a:3:{i:1;s:656:"#r#n[Text $ system.caption] has detected that this server is Apache, and you can try to activate the RewriteEngine module.#r#n#r#nSince all requests made to [text $ system.caption] are always directed to "index.php", the Rewrite Engine module can redirect all requests from this folder to "index.php", even though "index.php" is not present in the user#ss request.#r#n#r#nThis makes the system more secure and addresses (URLs) more friendly. However, other services that may be available in this folder or in subfolders may become inaccessible.#r#n#r#nIf you want to offer other services next to [text $ system.caption], do not put it in the root folder of your domain.#r#n";i:4;i:1;i:6;i:1;}}}}a:2:{s:5:"flags";a:6:{s:4:"type";s:10:"text_small";s:6:"filter";s:20:"admin_constants_flag";s:6:"target";s:27:"SYSTEM_SESSION_CACHE_EXPIRE";s:10:"field_name";s:27:"SYSTEM_SESSION_CACHE_EXPIRE";s:10:"value_cast";s:3:"int";s:4:"help";i:1;}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:37:"Limpar cache de sessão após (minutos)";i:2;i:1;}s:2:"en";a:1:{i:1;s:35:"Clear session cache after (minutes)";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:22:"Limpar cache de sessão";i:2;i:1;}s:2:"en";a:1:{i:1;s:19:"Clear session cache";}}s:7:"content";a:1:{s:2:"pt";a:3:{i:1;s:406:"#r#nMesmo após expirar, a sessão do usuário permanece em cache, permitindo que o usuário se reconnecte e continue algum trabalho pendente.#r#n#r#nQuando o usuário submete um formulário após o período de validade da sessão, os dados recebidos são guardados na sessão. Caso o usuário se reconnecte imediatamente, será possível concluir a operação.#r#n#r#nO cache será extinto após o período especificado neste campo.#r#n";i:2;i:1;i:4;i:1;}}}}a:2:{s:5:"flags";a:6:{s:4:"type";s:10:"text_small";s:6:"filter";s:20:"admin_constants_flag";s:6:"target";s:18:"SYSTEM_SESSION_TTL";s:10:"field_name";s:18:"SYSTEM_SESSION_TTL";s:10:"value_cast";s:3:"int";s:4:"help";i:1;}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:35:"Desconectar usuário após (segundos)";i:2;i:1;}s:2:"en";a:1:{i:1;s:31:"Disconnect user after (seconds)";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:28:"Duração da sessão do usuário";i:2;i:1;}s:2:"en";a:1:{i:1;s:21:"User session lifetime";}}s:7:"content";a:1:{s:2:"pt";a:3:{i:1;s:152:"#r#nPara maior segurança, a sessão do usuário é extinta após o tempo limite dado neste campo.#r#n#r#nA cada nova requisição do usuário o timer é reiniciado.#r#n";i:2;i:1;i:4;i:1;}}}}a:2:{s:5:"flags";a:6:{s:4:"type";s:10:"text_small";s:6:"filter";s:20:"admin_constants_flag";s:6:"target";s:17:"SYSTEM_TIME_LIMIT";s:10:"field_name";s:17:"SYSTEM_TIME_LIMIT";s:10:"value_cast";s:3:"int";s:4:"help";i:1;}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:41:"Suspender execução do PHP após (segundos)";i:2;i:1;}s:2:"en";a:2:{i:1;s:35:"Halt PHP execution before (seconds)";i:2;i:1;}}s:5:"title";a:1:{s:2:"pt";a:2:{i:1;s:28:"Suspender a execussão do PHP";i:2;i:1;}}s:7:"content";a:1:{s:2:"pt";a:3:{i:1;s:295:"#r#nLimita o tempo de execussão dos scripts PHP para cada requisição.#r#n#r#nEsta configuração afeta somente a Ecolabore Engine, não interferindo em qualquer outra aplicação PHP do servidor.#r#n#r#nObserve que algumas aplicações especiais poderão exigir mais tempo, portanto, irão ignorar esta diretiva.#r#n";i:2;i:1;i:4;i:1;}}}}a:4:{s:5:"flags";a:6:{s:4:"type";s:6:"select";s:6:"filter";s:29:"admin_constants_selectOptions";s:6:"target";s:15:"SYSTEM_TIMEZONE";s:10:"field_name";s:15:"SYSTEM_TIMEZONE";s:10:"value_cast";s:6:"string";s:4:"help";i:1;}s:5:"local";a:1:{s:4:"size";s:2:"30";}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:12:"Zona horária";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"Time zones";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:14:"Zonas horárias";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"Time zones";}}s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:397:"#r#nAjusta o fuso-horário para a zona horária especificada.#r#n#r#nEsta configuração afeta somente a Ecolabore Engine, não interferindo no relógio do servidor ou qualquer outra aplicação PHP.#r#n#r#nA lista de nomes dados foi produzida a partir de localidades importantes, sem necessariamente uma correspondência política, já que grandes cidades não mudam com tanta frequência quanto alterações políticas.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}s:7:"options";a:422:{i:0;s:14:"Africa/Abidjan";i:1;s:12:"Africa/Accra";i:2;s:18:"Africa/Addis_Ababa";i:3;s:14:"Africa/Algiers";i:4;s:13:"Africa/Asmara";i:5;s:13:"Africa/Bamako";i:6;s:13:"Africa/Bangui";i:7;s:13:"Africa/Banjul";i:8;s:13:"Africa/Bissau";i:9;s:15:"Africa/Blantyre";i:10;s:18:"Africa/Brazzaville";i:11;s:16:"Africa/Bujumbura";i:12;s:12:"Africa/Cairo";i:13;s:17:"Africa/Casablanca";i:14;s:12:"Africa/Ceuta";i:15;s:14:"Africa/Conakry";i:16;s:12:"Africa/Dakar";i:17;s:20:"Africa/Dar_es_Salaam";i:18;s:15:"Africa/Djibouti";i:19;s:13:"Africa/Douala";i:20;s:15:"Africa/El_Aaiun";i:21;s:15:"Africa/Freetown";i:22;s:15:"Africa/Gaborone";i:23;s:13:"Africa/Harare";i:24;s:19:"Africa/Johannesburg";i:25;s:11:"Africa/Juba";i:26;s:14:"Africa/Kampala";i:27;s:15:"Africa/Khartoum";i:28;s:13:"Africa/Kigali";i:29;s:15:"Africa/Kinshasa";i:30;s:12:"Africa/Lagos";i:31;s:17:"Africa/Libreville";i:32;s:11:"Africa/Lome";i:33;s:13:"Africa/Luanda";i:34;s:17:"Africa/Lubumbashi";i:35;s:13:"Africa/Lusaka";i:36;s:13:"Africa/Malabo";i:37;s:13:"Africa/Maputo";i:38;s:13:"Africa/Maseru";i:39;s:14:"Africa/Mbabane";i:40;s:16:"Africa/Mogadishu";i:41;s:15:"Africa/Monrovia";i:42;s:14:"Africa/Nairobi";i:43;s:15:"Africa/Ndjamena";i:44;s:13:"Africa/Niamey";i:45;s:17:"Africa/Nouakchott";i:46;s:18:"Africa/Ouagadougou";i:47;s:17:"Africa/Porto-Novo";i:48;s:15:"Africa/Sao_Tome";i:49;s:14:"Africa/Tripoli";i:50;s:12:"Africa/Tunis";i:51;s:15:"Africa/Windhoek";i:52;s:12:"America/Adak";i:53;s:17:"America/Anchorage";i:54;s:16:"America/Anguilla";i:55;s:15:"America/Antigua";i:56;s:17:"America/Araguaina";i:57;s:30:"America/Argentina/Buenos_Aires";i:58;s:27:"America/Argentina/Catamarca";i:59;s:25:"America/Argentina/Cordoba";i:60;s:23:"America/Argentina/Jujuy";i:61;s:26:"America/Argentina/La_Rioja";i:62;s:25:"America/Argentina/Mendoza";i:63;s:30:"America/Argentina/Rio_Gallegos";i:64;s:23:"America/Argentina/Salta";i:65;s:26:"America/Argentina/San_Juan";i:66;s:26:"America/Argentina/San_Luis";i:67;s:25:"America/Argentina/Tucuman";i:68;s:25:"America/Argentina/Ushuaia";i:69;s:13:"America/Aruba";i:70;s:16:"America/Asuncion";i:71;s:16:"America/Atikokan";i:72;s:13:"America/Bahia";i:73;s:22:"America/Bahia_Banderas";i:74;s:16:"America/Barbados";i:75;s:13:"America/Belem";i:76;s:14:"America/Belize";i:77;s:20:"America/Blanc-Sablon";i:78;s:17:"America/Boa_Vista";i:79;s:14:"America/Bogota";i:80;s:13:"America/Boise";i:81;s:21:"America/Cambridge_Bay";i:82;s:20:"America/Campo_Grande";i:83;s:14:"America/Cancun";i:84;s:15:"America/Caracas";i:85;s:15:"America/Cayenne";i:86;s:14:"America/Cayman";i:87;s:15:"America/Chicago";i:88;s:17:"America/Chihuahua";i:89;s:18:"America/Costa_Rica";i:90;s:15:"America/Creston";i:91;s:14:"America/Cuiaba";i:92;s:15:"America/Curacao";i:93;s:20:"America/Danmarkshavn";i:94;s:14:"America/Dawson";i:95;s:20:"America/Dawson_Creek";i:96;s:14:"America/Denver";i:97;s:15:"America/Detroit";i:98;s:16:"America/Dominica";i:99;s:16:"America/Edmonton";i:100;s:16:"America/Eirunepe";i:101;s:19:"America/El_Salvador";i:102;s:19:"America/Fort_Nelson";i:103;s:17:"America/Fortaleza";i:104;s:17:"America/Glace_Bay";i:105;s:15:"America/Godthab";i:106;s:17:"America/Goose_Bay";i:107;s:18:"America/Grand_Turk";i:108;s:15:"America/Grenada";i:109;s:18:"America/Guadeloupe";i:110;s:17:"America/Guatemala";i:111;s:17:"America/Guayaquil";i:112;s:14:"America/Guyana";i:113;s:15:"America/Halifax";i:114;s:14:"America/Havana";i:115;s:18:"America/Hermosillo";i:116;s:28:"America/Indiana/Indianapolis";i:117;s:20:"America/Indiana/Knox";i:118;s:23:"America/Indiana/Marengo";i:119;s:26:"America/Indiana/Petersburg";i:120;s:25:"America/Indiana/Tell_City";i:121;s:21:"America/Indiana/Vevay";i:122;s:25:"America/Indiana/Vincennes";i:123;s:23:"America/Indiana/Winamac";i:124;s:14:"America/Inuvik";i:125;s:15:"America/Iqaluit";i:126;s:15:"America/Jamaica";i:127;s:14:"America/Juneau";i:128;s:27:"America/Kentucky/Louisville";i:129;s:27:"America/Kentucky/Monticello";i:130;s:18:"America/Kralendijk";i:131;s:14:"America/La_Paz";i:132;s:12:"America/Lima";i:133;s:19:"America/Los_Angeles";i:134;s:21:"America/Lower_Princes";i:135;s:14:"America/Maceio";i:136;s:15:"America/Managua";i:137;s:14:"America/Manaus";i:138;s:15:"America/Marigot";i:139;s:18:"America/Martinique";i:140;s:17:"America/Matamoros";i:141;s:16:"America/Mazatlan";i:142;s:17:"America/Menominee";i:143;s:14:"America/Merida";i:144;s:18:"America/Metlakatla";i:145;s:19:"America/Mexico_City";i:146;s:16:"America/Miquelon";i:147;s:15:"America/Moncton";i:148;s:17:"America/Monterrey";i:149;s:18:"America/Montevideo";i:150;s:18:"America/Montserrat";i:151;s:14:"America/Nassau";i:152;s:16:"America/New_York";i:153;s:15:"America/Nipigon";i:154;s:12:"America/Nome";i:155;s:15:"America/Noronha";i:156;s:27:"America/North_Dakota/Beulah";i:157;s:27:"America/North_Dakota/Center";i:158;s:30:"America/North_Dakota/New_Salem";i:159;s:15:"America/Ojinaga";i:160;s:14:"America/Panama";i:161;s:19:"America/Pangnirtung";i:162;s:18:"America/Paramaribo";i:163;s:15:"America/Phoenix";i:164;s:22:"America/Port-au-Prince";i:165;s:21:"America/Port_of_Spain";i:166;s:19:"America/Porto_Velho";i:167;s:19:"America/Puerto_Rico";i:168;s:19:"America/Rainy_River";i:169;s:20:"America/Rankin_Inlet";i:170;s:14:"America/Recife";i:171;s:14:"America/Regina";i:172;s:16:"America/Resolute";i:173;s:18:"America/Rio_Branco";i:174;s:16:"America/Santarem";i:175;s:16:"America/Santiago";i:176;s:21:"America/Santo_Domingo";i:177;s:17:"America/Sao_Paulo";i:178;s:20:"America/Scoresbysund";i:179;s:13:"America/Sitka";i:180;s:21:"America/St_Barthelemy";i:181;s:16:"America/St_Johns";i:182;s:16:"America/St_Kitts";i:183;s:16:"America/St_Lucia";i:184;s:17:"America/St_Thomas";i:185;s:18:"America/St_Vincent";i:186;s:21:"America/Swift_Current";i:187;s:19:"America/Tegucigalpa";i:188;s:13:"America/Thule";i:189;s:19:"America/Thunder_Bay";i:190;s:15:"America/Tijuana";i:191;s:15:"America/Toronto";i:192;s:15:"America/Tortola";i:193;s:17:"America/Vancouver";i:194;s:18:"America/Whitehorse";i:195;s:16:"America/Winnipeg";i:196;s:15:"America/Yakutat";i:197;s:19:"America/Yellowknife";i:198;s:16:"Antarctica/Casey";i:199;s:16:"Antarctica/Davis";i:200;s:25:"Antarctica/DumontDUrville";i:201;s:20:"Antarctica/Macquarie";i:202;s:17:"Antarctica/Mawson";i:203;s:18:"Antarctica/McMurdo";i:204;s:17:"Antarctica/Palmer";i:205;s:18:"Antarctica/Rothera";i:206;s:16:"Antarctica/Syowa";i:207;s:16:"Antarctica/Troll";i:208;s:17:"Antarctica/Vostok";i:209;s:20:" Arctic/Longyearbyen";i:210;s:9:"Asia/Aden";i:211;s:11:"Asia/Almaty";i:212;s:10:"Asia/Amman";i:213;s:11:"Asia/Anadyr";i:214;s:10:"Asia/Aqtau";i:215;s:11:"Asia/Aqtobe";i:216;s:13:"Asia/Ashgabat";i:217;s:12:"Asia/Baghdad";i:218;s:12:"Asia/Bahrain";i:219;s:9:"Asia/Baku";i:220;s:12:"Asia/Bangkok";i:221;s:12:"Asia/Barnaul";i:222;s:11:"Asia/Beirut";i:223;s:12:"Asia/Bishkek";i:224;s:11:"Asia/Brunei";i:225;s:10:"Asia/Chita";i:226;s:15:"Asia/Choibalsan";i:227;s:12:"Asia/Colombo";i:228;s:13:"Asia/Damascus";i:229;s:10:"Asia/Dhaka";i:230;s:9:"Asia/Dili";i:231;s:10:"Asia/Dubai";i:232;s:13:"Asia/Dushanbe";i:233;s:14:"Asia/Famagusta";i:234;s:9:"Asia/Gaza";i:235;s:11:"Asia/Hebron";i:236;s:16:"Asia/Ho_Chi_Minh";i:237;s:14:"Asia/Hong_Kong";i:238;s:9:"Asia/Hovd";i:239;s:12:"Asia/Irkutsk";i:240;s:12:"Asia/Jakarta";i:241;s:13:"Asia/Jayapura";i:242;s:14:"Asia/Jerusalem";i:243;s:10:"Asia/Kabul";i:244;s:14:"Asia/Kamchatka";i:245;s:12:"Asia/Karachi";i:246;s:14:"Asia/Kathmandu";i:247;s:13:"Asia/Khandyga";i:248;s:12:"Asia/Kolkata";i:249;s:16:"Asia/Krasnoyarsk";i:250;s:17:"Asia/Kuala_Lumpur";i:251;s:12:"Asia/Kuching";i:252;s:11:"Asia/Kuwait";i:253;s:10:"Asia/Macau";i:254;s:12:"Asia/Magadan";i:255;s:13:"Asia/Makassar";i:256;s:11:"Asia/Manila";i:257;s:11:"Asia/Muscat";i:258;s:12:"Asia/Nicosia";i:259;s:17:"Asia/Novokuznetsk";i:260;s:16:"Asia/Novosibirsk";i:261;s:9:"Asia/Omsk";i:262;s:9:"Asia/Oral";i:263;s:15:"Asia/Phnom_Penh";i:264;s:14:"Asia/Pontianak";i:265;s:14:"Asia/Pyongyang";i:266;s:10:"Asia/Qatar";i:267;s:14:"Asia/Qyzylorda";i:268;s:11:"Asia/Riyadh";i:269;s:13:"Asia/Sakhalin";i:270;s:14:"Asia/Samarkand";i:271;s:10:"Asia/Seoul";i:272;s:13:"Asia/Shanghai";i:273;s:14:"Asia/Singapore";i:274;s:18:"Asia/Srednekolymsk";i:275;s:11:"Asia/Taipei";i:276;s:13:"Asia/Tashkent";i:277;s:12:"Asia/Tbilisi";i:278;s:11:"Asia/Tehran";i:279;s:12:"Asia/Thimphu";i:280;s:10:"Asia/Tokyo";i:281;s:10:"Asia/Tomsk";i:282;s:16:"Asia/Ulaanbaatar";i:283;s:11:"Asia/Urumqi";i:284;s:13:"Asia/Ust-Nera";i:285;s:14:"Asia/Vientiane";i:286;s:16:"Asia/Vladivostok";i:287;s:12:"Asia/Yakutsk";i:288;s:11:"Asia/Yangon";i:289;s:18:"Asia/Yekaterinburg";i:290;s:12:"Asia/Yerevan";i:291;s:16:" Atlantic/Azores";i:292;s:16:"Atlantic/Bermuda";i:293;s:15:"Atlantic/Canary";i:294;s:19:"Atlantic/Cape_Verde";i:295;s:14:"Atlantic/Faroe";i:296;s:16:"Atlantic/Madeira";i:297;s:18:"Atlantic/Reykjavik";i:298;s:22:"Atlantic/South_Georgia";i:299;s:18:"Atlantic/St_Helena";i:300;s:16:"Atlantic/Stanley";i:301;s:19:" Australia/Adelaide";i:302;s:18:"Australia/Brisbane";i:303;s:21:"Australia/Broken_Hill";i:304;s:16:"Australia/Currie";i:305;s:16:"Australia/Darwin";i:306;s:15:"Australia/Eucla";i:307;s:16:"Australia/Hobart";i:308;s:18:"Australia/Lindeman";i:309;s:19:"Australia/Lord_Howe";i:310;s:19:"Australia/Melbourne";i:311;s:15:"Australia/Perth";i:312;s:16:"Australia/Sydney";i:313;s:16:"Europe/Amsterdam";i:314;s:14:"Europe/Andorra";i:315;s:16:"Europe/Astrakhan";i:316;s:13:"Europe/Athens";i:317;s:15:"Europe/Belgrade";i:318;s:13:"Europe/Berlin";i:319;s:17:"Europe/Bratislava";i:320;s:15:"Europe/Brussels";i:321;s:16:"Europe/Bucharest";i:322;s:15:"Europe/Budapest";i:323;s:15:"Europe/Busingen";i:324;s:15:"Europe/Chisinau";i:325;s:17:"Europe/Copenhagen";i:326;s:13:"Europe/Dublin";i:327;s:16:"Europe/Gibraltar";i:328;s:15:"Europe/Guernsey";i:329;s:15:"Europe/Helsinki";i:330;s:18:"Europe/Isle_of_Man";i:331;s:15:"Europe/Istanbul";i:332;s:13:"Europe/Jersey";i:333;s:18:"Europe/Kaliningrad";i:334;s:11:"Europe/Kiev";i:335;s:12:"Europe/Kirov";i:336;s:13:"Europe/Lisbon";i:337;s:16:"Europe/Ljubljana";i:338;s:13:"Europe/London";i:339;s:17:"Europe/Luxembourg";i:340;s:13:"Europe/Madrid";i:341;s:12:"Europe/Malta";i:342;s:16:"Europe/Mariehamn";i:343;s:12:"Europe/Minsk";i:344;s:13:"Europe/Monaco";i:345;s:13:"Europe/Moscow";i:346;s:11:"Europe/Oslo";i:347;s:12:"Europe/Paris";i:348;s:16:"Europe/Podgorica";i:349;s:13:"Europe/Prague";i:350;s:11:"Europe/Riga";i:351;s:11:"Europe/Rome";i:352;s:13:"Europe/Samara";i:353;s:17:"Europe/San_Marino";i:354;s:15:"Europe/Sarajevo";i:355;s:17:"Europe/Simferopol";i:356;s:13:"Europe/Skopje";i:357;s:12:"Europe/Sofia";i:358;s:16:"Europe/Stockholm";i:359;s:14:"Europe/Tallinn";i:360;s:13:"Europe/Tirane";i:361;s:16:"Europe/Ulyanovsk";i:362;s:15:"Europe/Uzhgorod";i:363;s:12:"Europe/Vaduz";i:364;s:14:"Europe/Vatican";i:365;s:13:"Europe/Vienna";i:366;s:14:"Europe/Vilnius";i:367;s:16:"Europe/Volgograd";i:368;s:13:"Europe/Warsaw";i:369;s:13:"Europe/Zagreb";i:370;s:17:"Europe/Zaporozhye";i:371;s:13:"Europe/Zurich";i:372;s:20:" Indian/Antananarivo";i:373;s:13:"Indian/Chagos";i:374;s:16:"Indian/Christmas";i:375;s:12:"Indian/Cocos";i:376;s:13:"Indian/Comoro";i:377;s:16:"Indian/Kerguelen";i:378;s:11:"Indian/Mahe";i:379;s:15:"Indian/Maldives";i:380;s:16:"Indian/Mauritius";i:381;s:14:"Indian/Mayotte";i:382;s:14:"Indian/Reunion";i:383;s:12:"Pacific/Apia";i:384;s:16:"Pacific/Auckland";i:385;s:20:"Pacific/Bougainville";i:386;s:15:"Pacific/Chatham";i:387;s:13:"Pacific/Chuuk";i:388;s:14:"Pacific/Easter";i:389;s:13:"Pacific/Efate";i:390;s:17:"Pacific/Enderbury";i:391;s:15:"Pacific/Fakaofo";i:392;s:12:"Pacific/Fiji";i:393;s:16:"Pacific/Funafuti";i:394;s:17:"Pacific/Galapagos";i:395;s:15:"Pacific/Gambier";i:396;s:19:"Pacific/Guadalcanal";i:397;s:12:"Pacific/Guam";i:398;s:16:"Pacific/Honolulu";i:399;s:16:"Pacific/Johnston";i:400;s:18:"Pacific/Kiritimati";i:401;s:14:"Pacific/Kosrae";i:402;s:17:"Pacific/Kwajalein";i:403;s:14:"Pacific/Majuro";i:404;s:17:"Pacific/Marquesas";i:405;s:14:"Pacific/Midway";i:406;s:13:"Pacific/Nauru";i:407;s:12:"Pacific/Niue";i:408;s:15:"Pacific/Norfolk";i:409;s:14:"Pacific/Noumea";i:410;s:17:"Pacific/Pago_Pago";i:411;s:13:"Pacific/Palau";i:412;s:16:"Pacific/Pitcairn";i:413;s:15:"Pacific/Pohnpei";i:414;s:20:"Pacific/Port_Moresby";i:415;s:17:"Pacific/Rarotonga";i:416;s:14:"Pacific/Saipan";i:417;s:14:"Pacific/Tahiti";i:418;s:14:"Pacific/Tarawa";i:419;s:17:"Pacific/Tongatapu";i:420;s:12:"Pacific/Wake";i:421;s:14:"Pacific/Wallis";}}a:2:{s:5:"flags";a:6:{s:4:"type";s:8:"checkbox";s:6:"filter";s:20:"admin_constants_flag";s:6:"target";s:15:"TRACKING_ENABLE";s:10:"field_name";s:15:"TRACKING_ENABLE";s:10:"value_cast";s:4:"bool";s:4:"help";i:1;}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:19:"Ativar rastreamento";i:2;i:1;}s:2:"en";a:1:{i:1;s:15:"Tracking enable";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:19:"Ativar rastreamento";i:2;i:1;}s:2:"en";a:1:{i:1;s:15:"Tracking enable";}}s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:950:"Esta opção faz com que o [text $system.caption] colete dados do usuário.#r#n#r#nOs seguintes dados serão registrados:#r#n#r#n* Ip do usuário#r#n* Data e hora da requisição#r#n* Página alvo da requisição#r#n* Link a partir de onde o usuário veio#r#n* Agente do usuário (navegador e sistema operacional)#r#n* Status do usuário (se o mesmo está conectado e possui direitos administrativos)#r#n#r#n=== Observações ===#r#n#r#n#c Para economia de espaço, registros consecutivos de mesma procedência deixarão de lado dados repetidos ou inúteis.#r#n#c Páginas administrativas geradas pelo sistema não são registradas no log.#r#n#c Desativar o rastreamento não irá interferir na contagem de visitas das páginas.#r#n#c Você pode configurar para que outros dados sejam armazenados no log.#r#n#c Recomendamos que você cuide para que o arquivo de log não se torne muito grande. Você pode movê-lo para um local de backup e outro arquivo será gerado automaticamente. O nome do arquivo é ".tracking.db".#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:3:{s:5:"flags";a:6:{s:4:"type";s:6:"select";s:6:"filter";s:22:"admin_constants_select";s:6:"target";s:20:"TRACKING_GEOIP_CACHE";s:10:"field_name";s:20:"TRACKING_GEOIP_CACHE";s:10:"value_cast";s:3:"int";s:4:"help";i:1;}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:32:"Cache de dados de geolocalização";i:2;i:1;}s:2:"en";a:1:{i:1;s:22:"Geolocation data cache";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:32:"Cache de dados de geolocalização";i:2;i:1;}s:2:"en";a:1:{i:1;s:22:"Geolocation data cache";}}s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:100:"O período em que os dados de geolocalização devem permanecer armazenados antes de serem excluídos.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}s:8:"children";a:4:{i:0;s:27:"~trackingGeoipCacheNoExpire";i:1;s:25:"~trackingGeoipCache1month";i:2;s:26:"~trackingGeoipCache3months";i:3;s:26:"~trackingGeoipCache6months";}}a:2:{s:5:"flags";a:1:{s:5:"value";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:5:"1 mês";i:2;i:1;}s:2:"en";a:2:{i:1;s:7:"1 month";i:2;i:1;}}}}a:2:{s:5:"flags";a:1:{s:5:"value";i:3;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:7:"3 meses";i:2;i:1;}s:2:"en";a:2:{i:1;s:8:"3 months";i:2;i:1;}}}}a:2:{s:5:"flags";a:1:{s:5:"value";i:6;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:7:"6 meses";i:2;i:1;}s:2:"en";a:2:{i:1;s:8:"6 months";i:2;i:1;}}}}a:2:{s:5:"flags";a:1:{s:5:"value";i:0;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:10:"Permanente";i:2;i:1;}s:2:"en";a:2:{i:1;s:9:"Permanent";i:2;i:1;}}}}a:2:{s:5:"flags";a:6:{s:4:"type";s:8:"checkbox";s:6:"filter";s:20:"admin_constants_flag";s:6:"target";s:21:"TRACKING_GEOIP_ENABLE";s:10:"field_name";s:21:"TRACKING_GEOIP_ENABLE";s:10:"value_cast";s:4:"bool";s:4:"help";i:1;}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:31:"Rastrear localização do usuário";i:2;i:1;}s:2:"en";a:1:{i:1;s:19:"Track user location";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:31:"Rastrear localização do usuário";i:2;i:1;}s:2:"en";a:1:{i:1;s:19:"Track user location";}}s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:236:"#r#nAtivando esta opção, o [text $system.caption] irá utilizar um serviço externo para adquirir informações sobre a localização geográfica do usuário baseada no endereço IP da requisição.#r#n#r#nEstas informações serão armazenadas em cache.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:2:{s:5:"flags";a:6:{s:4:"type";s:4:"text";s:6:"filter";s:20:"admin_constants_flag";s:6:"target";s:22:"TRACKING_GEOIP_SERVICE";s:10:"field_name";s:22:"TRACKING_GEOIP_SERVICE";s:10:"value_cast";s:4:"free";s:4:"help";i:1;}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:28:"Serviço de Geolocalização IP";i:2;i:1;}s:2:"en";a:1:{i:1;s:22:"IP Geolocation service";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:28:"Serviço de Geolocalização IP";i:2;i:1;}s:2:"en";a:1:{i:1;s:22:"IP Geolocation service";}}s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:397:"#r#nO serviço freegeoip.net é gratuito e está configurado por padrão no [text $system.caption].#r#n#r#nCaso você queira utilizar este serviço, considere fazer uma doação.#r#n#r#nO serviço da freegeoip.net possui limitações de tráfego. Consulte a página do projeto para mais informações.#r#n#r#nVocê pode baixar esta ferramenta e instalá-la em seu servidor, então você terá de alterar o endereço deste serviço.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:2:{s:5:"flags";a:6:{s:4:"type";s:8:"checkbox";s:6:"filter";s:20:"admin_constants_flag";s:6:"target";s:22:"TRACKING_REMOVED_PAGES";s:10:"field_name";s:22:"TRACKING_REMOVED_PAGES";s:10:"value_cast";s:4:"bool";s:4:"help";i:1;}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:28:"Não apagar páginas excluídas";i:2;i:1;}s:2:"en";a:1:{i:1;s:28:"Do not remove excluded pages";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:29:"Não remover páginas excluídas";i:2;i:1;}s:2:"en";a:1:{i:1;s:28:"Do not remove excluded pages";}}s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:80:"#r#nEsta opção irá marcar as páginas excluídas sem removê-las do banco de dados.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:2:{s:5:"flags";a:6:{s:4:"type";s:8:"checkbox";s:6:"filter";s:20:"admin_constants_flag";s:6:"target";s:29:"TRACKING_STORE_FULL_BACKTRACE";s:10:"field_name";s:29:"TRACKING_STORE_FULL_BACKTRACE";s:10:"value_cast";s:4:"bool";s:4:"help";i:1;}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:34:"Armazenar todos os dados recebidos";i:2;i:1;}s:2:"en";a:1:{i:1;s:23:"Store all received data";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:34:"Armazenar todos os dados recebidos";i:2;i:1;}s:2:"en";a:1:{i:1;s:23:"Store all received data";}}s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:424:"#r#nArmazenar todos os dados recebidos via POST permite refazer todas as atividades dos usuários no sistema.#r#n#r#nEsta opção deve ser utilizada com cautela, pois o arquivo de log pode se tornar muito grande rapidamente.#r#n#r#nRecomendamos esta opção para rastrear casos específicos de usuários mal intensionados.#r#n#r#nSe esta opção for ativada, um "backtrace" poderá ser acessada pelos administradores em cada página separadamente.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:1:{s:4:"text";a:3:{s:7:"caption";a:1:{s:2:"pt";a:3:{i:1;s:6:"Avisos";i:2;i:1;i:6;i:1;}}s:5:"title";a:1:{s:2:"pt";a:3:{i:1;s:24:"Sobre o quadro de avisos";i:2;i:1;i:6;i:1;}}s:7:"content";a:1:{s:2:"pt";a:5:{i:1;s:253:"#r#nNesta página são reunidos todos os avisos gerados por diferentes ferramentas.#r#n#r#nAcionando um item da lista você será direcionad[gender:o|a] para a ferramenta que produziu a mensagem.#r#n#r#nProblemas solucionados são removidos automaticamente da lista.#r#n";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:1:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Avisos";i:2;i:1;}s:2:"en";a:2:{i:1;s:6:"Alerts";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:17:"Avisos do sistema";i:2;i:1;}s:2:"en";a:2:{i:1;s:13:"System alerts";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"content";a:2:{s:2:"pt";a:3:{i:1;s:14:"Não há avisos.";i:2;i:1;i:4;i:1;}s:2:"en";a:3:{i:1;s:18:"There#ss no alerts.";i:2;i:1;i:4;i:1;}}}}a:1:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:43:"Mensagens de erros no log do banco de dados";i:2;i:1;}s:2:"en";a:2:{i:1;s:31:"Messages in database errors log";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:46:"Há mensagens no log de erros do banco de dados";i:2;i:1;}s:2:"en";a:2:{i:1;s:31:"Messages in database errors log";i:2;i:1;}}}}a:1:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:32:"O banco de dados está desativado";i:2;i:1;}s:2:"en";a:2:{i:1;s:24:"The database is disabled";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:32:"O banco de dados está desativado";i:2;i:1;}s:2:"en";a:2:{i:1;s:24:"The database is disabled";i:2;i:1;}}}}a:1:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:24:"Erros de execução do PHP";i:2;i:1;}s:2:"en";a:2:{i:1;s:19:"PHP execution error";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:35:"Há mensagens no log de erros do PHP";i:2;i:1;}s:2:"en";a:2:{i:1;s:26:"Messages in PHP errors log";i:2;i:1;}}}}a:1:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:22:"Nova versão disponível";i:2;i:1;}s:2:"en";a:2:{i:1;s:21:"New version available";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:22:"Nova versão disponível";i:2;i:1;}s:2:"en";a:2:{i:1;s:21:"New version available";i:2;i:1;}}}}a:1:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:11:"Componentes";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"Components";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:11:"Componentes";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"Components";}}}}a:1:{s:4:"text";a:1:{s:7:"content";a:2:{s:2:"pt";a:4:{i:1;s:125:"Nenhum componente está disponível.#r#n#r#nInstale novos componentes para expandir as funcionalidades do [text $system.caption].#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}s:2:"en";a:3:{i:1;s:22:"There#ss no components.";i:2;i:1;i:4;i:1;}}}}a:1:{s:8:"children";a:4:{i:0;s:6:"_start";i:1;s:15:"~editComponents";i:2;s:5:"_save";i:3;s:4:"_end";}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:1:{i:1;s:12:"Desabilitado";}s:2:"en";a:1:{i:1;s:8:"Disabled";}}}}a:1:{s:5:"flags";a:2:{s:6:"filter";s:29:"adminComponents_selectVersion";s:10:"field_name";s:9:"component";}}a:1:{s:8:"children";a:5:{i:0;s:6:"_start";i:1;s:10:"~folderMsg";i:2;s:30:"admin_constants_pathComponents";i:3;s:13:"~folderSubmit";i:4;s:4:"_end";}}a:2:{s:5:"flags";a:1:{s:6:"filter";s:29:"personaliteFields_descriptive";}s:4:"text";a:1:{s:7:"content";a:2:{s:2:"pt";a:3:{i:1;s:161:"#r#nAntes de instalar componentes, é necessário criar uma pasta para acomodar os componentes instalados.#r#n#r#nPara criar esta pasta agora, clique em "Criar pasta".#r#n";i:2;i:1;i:4;i:1;}s:2:"en";a:2:{i:1;s:152:"#r#nBefore installing components, you must create a folder to accommodate the installed components.#r#n#r#nTo create this folder now, click "Create folder".#r#n";i:4;i:1;}}}}a:2:{s:5:"flags";a:2:{s:6:"filter";s:6:"submit";s:10:"field_name";s:6:"create";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:11:"Criar pasta";i:2;i:1;}s:2:"en";a:1:{i:1;s:13:"Create folder";}}}}a:1:{s:4:"text";a:3:{s:7:"caption";a:1:{s:2:"pt";a:2:{i:1;s:11:"Componentes";i:2;i:1;}}s:5:"title";a:1:{s:2:"pt";a:2:{i:1;s:10:"Components";i:2;i:1;}}s:7:"content";a:1:{s:2:"pt";a:5:{i:1;s:311:"#r#nAqui estão os componentes que poderão ser ativados pelo [text $system.caption] para possibilitar mais funcionalidades.#r#n#r#nCada componente precisa ser configurado individualmente, e pode ser necessário o cadastro e o pagamento de taxas para seu uso.#r#n#r#nEncontre mais informações na página de cada componente.#r#n";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:1:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Ativar";i:2;i:1;}s:2:"en";a:1:{i:1;s:8:"Activate";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:31:"Ativar ou desativar componentes";i:2;i:1;}s:2:"en";a:1:{i:1;s:34:"Activate or desactivate components";}}}}a:1:{s:4:"text";a:1:{s:7:"content";a:2:{s:2:"pt";a:4:{i:1;s:125:"Nenhum componente está disponível.#r#n#r#nInstale novos componentes para expandir as funcionalidades do [text $system.caption].#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}s:2:"en";a:3:{i:1;s:22:"There#ss no components.";i:2;i:1;i:4;i:1;}}}}a:1:{s:4:"text";a:3:{s:7:"caption";a:1:{s:2:"pt";a:2:{i:1;s:11:"Componentes";i:2;i:1;}}s:5:"title";a:1:{s:2:"pt";a:2:{i:1;s:10:"Components";i:2;i:1;}}s:7:"content";a:1:{s:2:"pt";a:5:{i:1;s:311:"#r#nAqui estão os componentes que poderão ser ativados pelo [text $system.caption] para possibilitar mais funcionalidades.#r#n#r#nCada componente precisa ser configurado individualmente, e pode ser necessário o cadastro e o pagamento de taxas para seu uso.#r#n#r#nEncontre mais informações na página de cada componente.#r#n";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:1:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:14:"Banco de dados";i:2;i:1;}s:2:"en";a:2:{i:1;s:8:"Database";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:14:"Banco de dados";i:2;i:1;}s:2:"en";a:2:{i:1;s:8:"Database";i:2;i:1;}}}}a:1:{s:8:"children";a:5:{i:0;s:6:"_start";i:1;s:8:"~editMsg";i:2;s:28:"admin_constants_pathDatabase";i:3;s:11:"~editSubmit";i:4;s:4:"_end";}}a:2:{s:5:"flags";a:1:{s:6:"filter";s:29:"personaliteFields_descriptive";}s:4:"text";a:1:{s:7:"content";a:2:{s:2:"pt";a:3:{i:1;s:182:"#r#nAntes de configurar o banco de dados, é necessário criar uma pasta para acomodar arquivos relacionados ao banco de dados.#r#n#r#nPara criar esta pasta agora, clique em "Criar pasta".#r#n";i:2;i:1;i:4;i:1;}s:2:"en";a:2:{i:1;s:159:"#r#nBefore adding users, it#ss necessary to create a folder to accommodate the personal files of each user.#r#n#r#nTo create this folder now, click "Create folder".#r#n";i:4;i:1;}}}}a:2:{s:5:"flags";a:2:{s:6:"filter";s:6:"submit";s:10:"field_name";s:6:"create";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:11:"Criar pasta";i:2;i:1;}s:2:"en";a:1:{i:1;s:13:"Create folder";}}}}a:1:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:27:"Configurar o Banco de dados";i:2;i:1;}s:2:"en";a:2:{i:1;s:22:"Database configuration";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:27:"Configurar o banco de dados";i:2;i:1;}s:2:"en";a:2:{i:1;s:22:"Database configuration";i:2;i:1;}}}}a:1:{s:8:"children";a:11:{i:0;s:6:"_start";i:1;s:31:"admin_constants_databaseEnabled";i:2;s:30:"admin_constants_databaseClient";i:3;s:12:"~editMessage";i:4;s:28:"admin_constants_databaseHost";i:5;s:28:"admin_constants_databaseUser";i:6;s:32:"admin_constants_databasePassword";i:7;s:26:"admin_constants_databaseDb";i:8;s:30:"admin_constants_databasePrefix";i:9;s:7:"_submit";i:10;s:4:"_end";}}a:2:{s:5:"flags";a:1:{s:6:"filter";s:29:"personaliteFields_descriptive";}s:4:"text";a:1:{s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:143:"#r#nO uso do SQLite (recomendável) não requer configurações.#r#n#r#nPara os demais serviços, preencha os campos abaixo de acordo com a necessidade:#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:1:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:12:"Criptografia";i:2;i:1;}s:2:"en";a:2:{i:1;s:10:"Encryption";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:12:"Criptografia";i:2;i:1;}s:2:"en";a:2:{i:1;s:10:"Encryption";i:2;i:1;}}}}a:1:{s:4:"text";a:2:{s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:11:"Gerar chave";i:2;i:1;}s:2:"en";a:1:{i:1;s:12:"Generate key";}}s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:735:"#r#nA chave utilizada para criptografar os dados é a única forma de recuperar esses dados. Portanto, recomendamos que você guarde esta chave em local muito seguro para o caso de vir a ser necessário recuperar ou exportar seu banco de dados no futuro.#r#n#r#nAdicionalmente, informe uma senha que será utilizada para criptografar a chave a ser exportada.#r#n#r#nCaso venha a ser necessário importar esta chave no futuro, lhe será solicitada esta mesma senha.#r#n#r#nNão utilize a senha do administrador para esta operação.#r#n#r#n== Atenção! ==#r#n#r#nCaso você esteja tentando recuperar os dados de um banco de dados previamente criptografado, por exemplo se você estiver reinstalando o sistema, retroceda para o passo anterior e escolha "Importar chave".#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:1:{s:4:"text";a:2:{s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:14:"Importar chave";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"Import key";}}s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:271:"#r#nSe o banco de dados já possui dados criptografados, será necessário informar a mesma chave utilizada anteriormente.#r#n#r#nSe você não possui esta chave e seu banco de dados está criptografado, e se seu escritório fica acima do décimo andar, considere saltar pela janela!#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:202:"#r#nA criptografia é essencial para proteger dados sensíveis no banco de dados. Noentanto, antes que o [text $system.caption] possa operar dados criptografados, é necessário informar ou criar uma chave.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:2:{s:5:"flags";a:1:{s:6:"filter";s:29:"personaliteFields_descriptive";}s:4:"text";a:1:{s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:727:"#r#nPara criptografar as informações sensíveis do seu banco de dados, você precisa escolher o tipo de criptografia e informar a chave a serem utilizados.#r#n#r#nA chave deve estar codificada em base64.#r#n#r#nCaso você precise acessar dados previamente criptografados no banco de dados, o tipo de criptografia e a chave devem ser exatamente os mesmos.#r#n#r#nSe o banco de dados não estiver criptografado, você pode escolher o tipo de criptografia a ser utilizada e gerar uma chave acionando o botão "Gerar nova chave".#r#n#r#n=== Atenção! ===#r#n#r#nA chave é a única forma de recuperar os dados do seu banco de dados. Guarde a chave em uso em local muito seguro. Ela pode ser a única chance de recuperar os dados em caso de um ataque ao sistema.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:1:{s:8:"children";a:6:{i:0;s:6:"_start";i:1;s:18:"~generateAlgorithm";i:2;s:17:"~generatePassword";i:3;s:23:"~generateRepeatPassword";i:4;s:13:"_previousNext";i:5;s:4:"_end";}}a:2:{s:5:"flags";a:4:{s:6:"filter";s:32:"adminDatabase_encrypt_algorithms";s:10:"field_name";s:9:"algorythm";s:6:"target";s:9:"algorithm";s:8:"required";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"Algorítmo";i:2;i:1;}s:2:"en";a:1:{i:1;s:9:"Algorithm";}}}}a:1:{s:8:"children";a:3:{i:0;s:6:"_start";i:1;s:13:"_previousNext";i:2;s:4:"_end";}}a:1:{s:8:"children";a:4:{i:0;s:6:"_start";i:1;s:10:"~keyMethod";i:2;s:5:"_next";i:3;s:4:"_end";}}a:3:{s:5:"flags";a:5:{s:4:"type";s:5:"radio";s:6:"filter";s:6:"select";s:10:"field_name";s:4:"mode";s:6:"target";s:4:"mode";s:8:"required";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:21:"Chave de criptografia";i:2;i:1;}s:2:"en";a:1:{i:1;s:16:"Cryptography key";}}}s:8:"children";a:2:{i:0;s:18:"~keyMethodGenerate";i:1;s:16:"~keyMethodImport";}}a:2:{s:5:"flags";a:1:{s:5:"value";s:8:"generate";}s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:2:{i:1;s:117:"Gerar uma nova chave de segurança - aconselhável se o seu banco de dados não possua dados previamente criptografados.";i:2;i:1;}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:6:"import";}s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:2:{i:1;s:128:"Importar uma chave de segurança previamente salva - necessário caso o banco de dados já possua dados previamente criptografados.";i:2;i:1;}}}}a:1:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:12:"Log de erros";i:2;i:1;}s:2:"en";a:2:{i:1;s:9:"error log";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:30:"Log de erros do banco de dados";i:2;i:1;}s:2:"en";a:2:{i:1;s:18:"Database error log";i:2;i:1;}}}}a:1:{s:8:"children";a:8:{i:0;s:6:"_start";i:1;s:37:"admin_constants_databaseDisplayErrors";i:2;s:33:"admin_constants_databaseLogErrors";i:3;s:7:"_submit";i:4;s:10:"_separator";i:5;s:12:"~editLogView";i:6;s:13:"~editLogClear";i:7;s:4:"_end";}}a:2:{s:5:"flags";a:3:{s:4:"type";s:6:"submit";s:6:"filter";s:6:"submit";s:10:"field_name";s:9:"clear_log";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:10:"Limpar log";i:2;i:1;}s:2:"en";a:1:{i:1;s:9:"Clear log";}}}}a:2:{s:5:"flags";a:3:{s:4:"type";s:8:"textarea";s:6:"filter";s:17:"adminDatabase_log";s:10:"field_name";s:3:"log";}s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:2:{i:1;s:9:"error_log";i:2;i:1;}}}}a:1:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:12:"Consulta SQL";i:2;i:1;}s:2:"en";a:2:{i:1;s:9:"SQL query";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:12:"Consulta SQL";i:2;i:1;}s:2:"en";a:2:{i:1;s:9:"SQL query";i:2;i:1;}}}}a:1:{s:8:"children";a:5:{i:0;s:6:"_start";i:1;s:11:"~editResult";i:2;s:10:"~editInput";i:3;s:7:"_submit";i:4;s:4:"_end";}}a:2:{s:5:"flags";a:2:{s:4:"type";s:14:"textarea_small";s:10:"field_name";s:11:"query_input";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Consulta";i:2;i:1;}s:2:"en";a:2:{i:1;s:11:"Query input";i:2;i:1;}}}}a:2:{s:5:"flags";a:3:{s:4:"type";s:8:"textarea";s:6:"filter";s:27:"adminDatabase_query_command";s:10:"field_name";s:5:"query";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:21:"Resultado da consulta";i:2;i:1;}s:2:"en";a:2:{i:1;s:12:"Query result";i:2;i:1;}}}}a:1:{s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"en";a:2:{i:1;s:14:"Page not found";i:2;i:1;}s:2:"pt";a:2:{i:1;s:21:"Página não encontrada";i:2;i:1;}}s:5:"title";a:2:{s:2:"en";a:2:{i:1;s:14:"Page not found";i:2;i:1;}s:2:"pt";a:2:{i:1;s:21:"Página não encontrada";i:2;i:1;}}s:7:"content";a:2:{s:2:"en";a:5:{i:1;s:72:"The address you provided does not match a valid address in this server. ";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}s:2:"pt";a:5:{i:1;s:66:"O endereço que você forneceu não corresponde a um endereço válido.";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:1:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Domínios";i:2;i:1;}s:2:"en";a:2:{i:1;s:7:"Domains";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:8:"Domínios";i:2;i:1;}s:2:"en";a:2:{i:1;s:7:"Domains";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"content";a:2:{s:2:"pt";a:4:{i:1;s:146:"Este recurso está desativado.#r#n#r#n[if $document.user_is_admin]#r#n#r#nPara ativar este recurso é necessário configurar o banco de dados.#r#n#r#n[} // if]#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}s:2:"en";a:3:{i:1;s:130:"This resource is disabled.#r#n#r#n[if $document.user_is_admin]#r#n#r#nTo enable this resource, set the database connection.#r#n#r#n[} // if]#r#n";i:4;i:1;i:6;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"content";a:2:{s:2:"pt";a:3:{i:1;s:28:"Não há domínios cadastrados.";i:2;i:1;i:4;i:1;}s:2:"en";a:2:{i:1;s:30:"There#ss no registered domains.";i:4;i:1;}}}}a:1:{s:8:"children";a:5:{i:0;s:6:"_start";i:1;s:8:"~editMsg";i:2;s:27:"admin_constants_pathDomains";i:3;s:11:"~editSubmit";i:4;s:4:"_end";}}a:2:{s:5:"flags";a:1:{s:6:"filter";s:29:"personaliteFields_descriptive";}s:4:"text";a:1:{s:7:"content";a:2:{s:2:"pt";a:3:{i:1;s:174:"#r#nAntes de adicionar domínios, é necessário criar uma pasta para acomodar os arquivos particulares de cada domínio.#r#n#r#nPara criar esta pasta agora, clique em "Criar pasta".#r#n";i:2;i:1;i:4;i:1;}s:2:"en";a:2:{i:1;s:159:"#r#nBefore adding users, it#ss necessary to create a folder to accommodate the personal files of each user.#r#n#r#nTo create this folder now, click "Create folder".#r#n";i:4;i:1;}}}}a:2:{s:5:"flags";a:2:{s:6:"filter";s:6:"submit";s:10:"field_name";s:6:"create";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:11:"Criar pasta";i:2;i:1;}s:2:"en";a:1:{i:1;s:13:"Create folder";}}}}a:1:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:17:"Adicionar domínio";i:2;i:1;}s:2:"en";a:2:{i:1;s:10:"Add domain";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:17:"Adicionar domínio";i:2;i:1;}s:2:"en";a:2:{i:1;s:10:"Add domain";i:2;i:1;}}}}a:1:{s:8:"children";a:10:{i:0;s:6:"_start";i:1;s:9:"~editName";i:2;s:10:"~editTitle";i:3;s:16:"~editDescription";i:4;s:19:"adminUsers_editMail";i:5;s:20:"adminUsers_editPhone";i:6;s:20:"~editDefaultLanguage";i:7;s:10:"~editAdmin";i:8;s:7:"_submit";i:9;s:4:"_end";}}a:2:{s:5:"flags";a:6:{s:4:"type";s:10:"text_small";s:6:"filter";s:6:"~admin";s:6:"target";s:5:"admin";s:10:"field_name";s:5:"admin";s:8:"required";i:1;s:9:"error_msg";s:29:"adminDomains_msgAdminRequired";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"Administrador";i:2;i:1;}s:2:"en";a:2:{i:1;s:13:"Administrator";i:2;i:1;}}}}a:2:{s:5:"flags";a:1:{s:4:"icon";s:5:"error";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:16:"Usuário inválido";i:2;i:1;}s:2:"en";a:2:{i:1;s:12:"Invalid user";i:2;i:1;}}s:7:"content";a:2:{s:2:"pt";a:2:{i:1;s:47:"O nome de usuário informado não foi encontrado.";i:2;i:1;}s:2:"en";a:5:{i:1;s:28:"The user name was not found.";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:2:{s:5:"flags";a:3:{s:6:"filter";s:23:"adminDomains_selectLang";s:6:"target";s:18:"flags/default_lang";s:10:"field_name";s:12:"default_lang";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"Idioma padrão";i:2;i:1;}s:2:"en";a:2:{i:1;s:16:"Default language";i:2;i:1;}}}}a:1:{s:5:"flags";a:6:{s:4:"type";s:4:"text";s:6:"filter";s:4:"text";s:6:"target";s:16:"text/description";s:10:"field_name";s:11:"description";s:8:"required";i:1;s:7:"caption";s:24:"labels/field/description";}}a:2:{s:5:"flags";a:5:{s:4:"type";s:10:"text_small";s:6:"filter";s:5:"~name";s:6:"target";s:4:"name";s:10:"field_name";s:4:"name";s:8:"required";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:7:"Domínio";i:2;i:1;}s:2:"en";a:2:{i:1;s:6:"Domain";i:2;i:1;}}}}a:2:{s:5:"flags";a:1:{s:4:"icon";s:5:"error";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:24:"Nome de domínio inválido";i:2;i:1;}s:2:"en";a:2:{i:1;s:19:"Invalid domain name";i:2;i:1;}}s:7:"content";a:2:{s:2:"pt";a:2:{i:1;s:35:"Um domínio com este nome já existe.";i:2;i:1;}s:2:"en";a:5:{i:1;s:39:"A domain with this name already exists.";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:2:{s:5:"flags";a:1:{s:4:"icon";s:5:"error";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:24:"Nome de domínio inválido";i:2;i:1;}s:2:"en";a:2:{i:1;s:19:"Invalid domain name";i:2;i:1;}}s:7:"content";a:2:{s:2:"pt";a:2:{i:1;s:112:"Um nome de domínio pode conter apenas letras minúsculas, números e os caractéres sublinhado ("_") e hifem ("-").";i:2;i:1;}s:2:"en";a:5:{i:1;s:107:"A domain name can only contain small letters, numbers and the characters underscore ("_") and hiffem ("-").";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:2:{s:5:"flags";a:1:{s:4:"icon";s:5:"error";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:24:"Nome de domínio inválido";i:2;i:1;}s:2:"en";a:2:{i:1;s:19:"Invalid domain name";i:2;i:1;}}s:7:"content";a:2:{s:2:"pt";a:2:{i:1;s:55:"Escolha um nome de domínio com no máximo 18 caracteres.";i:2;i:1;}s:2:"en";a:5:{i:1;s:49:"Choose a domain name witch 18 characters or less.";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:2:{s:5:"flags";a:5:{s:4:"type";s:4:"text";s:6:"filter";s:4:"text";s:6:"target";s:10:"text/title";s:10:"field_name";s:5:"title";s:8:"required";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:15:"Nome do website";i:2;i:1;}s:2:"en";a:2:{i:1;s:12:"Website name";i:2;i:1;}}}}a:2:{s:5:"flags";a:1:{s:4:"icon";s:5:"error";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:16:"Usuário inválido";i:2;i:1;}s:2:"en";a:2:{i:1;s:12:"Invalid user";i:2;i:1;}}s:7:"content";a:2:{s:2:"pt";a:2:{i:1;s:49:"Este usuário já é um administrador deste domínio.";i:2;i:1;}s:2:"en";a:5:{i:1;s:52:"The user is already an administrator of this domain.";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:2:{s:5:"flags";a:1:{s:4:"icon";s:8:"question";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:18:"Quem devo remover?";i:2;i:1;}s:2:"en";a:2:{i:1;s:20:"Who should I remove?";i:2;i:1;}}s:7:"content";a:2:{s:2:"pt";a:2:{i:1;s:58:"Para remover um administrador, selecione um nome da lista.";i:2;i:1;}s:2:"en";a:5:{i:1;s:52:"To remove an administrator, select one item of list.";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:2:{s:5:"flags";a:2:{s:4:"icon";s:5:"crash";s:7:"caption";s:33:"system_msg_alertOperationCanceled";}s:4:"text";a:1:{s:7:"content";a:2:{s:2:"pt";a:2:{i:1;s:44:"Um erro ocorreu ao tentar remover o usuário.";i:2;i:1;}s:2:"en";a:5:{i:1;s:50:"An error occurred while trying to remove the user.";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:2:{s:5:"flags";a:2:{s:4:"icon";s:5:"error";s:7:"caption";s:33:"system_msg_alertOperationCanceled";}s:4:"text";a:1:{s:7:"content";a:2:{s:2:"pt";a:3:{i:1;s:113:"Este domínio precisa de pelo menos um administrador.#r#n#r#nAcrescente um novo administrador antes de remover este.#r#n";i:2;i:1;i:4;i:1;}s:2:"en";a:5:{i:1;s:98:"This domain needs at least one administrator.#r#n#r#nAdd a new administrator before removing this one.";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:2:{s:5:"flags";a:1:{s:4:"icon";s:5:"error";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:16:"Usuário inválido";i:2;i:1;}s:2:"en";a:2:{i:1;s:12:"Invalid user";i:2;i:1;}}s:7:"content";a:2:{s:2:"pt";a:2:{i:1;s:47:"O nome de usuário informado não foi encontrado.";i:2;i:1;}s:2:"en";a:5:{i:1;s:28:"The user name was not found.";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:1:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:19:"Detalhes do domínio";i:2;i:1;}s:2:"en";a:2:{i:1;s:14:"Domain details";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:19:"Detalhes do domínio";i:2;i:1;}s:2:"en";a:2:{i:1;s:14:"Domain details";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:15:"Remover domínio";i:2;i:1;}s:2:"en";a:2:{i:1;s:13:"Remove domain";i:2;i:1;}}}}a:3:{s:5:"flags";a:2:{s:6:"action";s:14:"_domain-remove";s:4:"icon";s:8:"question";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:15:"Remover domínio";i:2;i:1;}s:2:"en";a:2:{i:1;s:15:"Remover domínio";i:2;i:1;}}s:7:"content";a:2:{s:2:"pt";a:4:{i:1;s:258:"Esta operação irá remover o domínio e todos os vínculos a ele relacionados.#r#n#r#n===Atenção!===#r#n#r#nEsta operação é irreversível. Ao invés de remover os dados, você pode bloquear um domínio alterando o status.#r#n#r#nTenha certeza de que esta operação é adequada.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}s:2:"en";a:5:{i:1;s:247:"This operation will remove the domain and all the links related to it.#r#n#r#n=== Attention! ===#r#n#r#nThis operation is irreversible. Instead of removing the data, you can block a domain changing the status.#r#n#r#nMake sure that this operation is adequate.";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}s:8:"children";a:5:{i:0;s:6:"_start";i:1;s:23:"~contextRemoveConfirmOk";i:2;s:10:"_separator";i:3;s:37:"modHumperstilshen_submitConfirmCancel";i:4;s:4:"_end";}}a:2:{s:5:"flags";a:2:{s:4:"icon";s:5:"crash";s:7:"caption";s:33:"system_msg_alertOperationCanceled";}s:4:"text";a:1:{s:7:"content";a:2:{s:2:"pt";a:3:{i:1;s:96:"#r#nO texto que você digitou não se parece com "ok".#r#n#r#nOs dados do domínio não foram removidos.#r#n";i:2;i:1;i:4;i:1;}s:2:"en";a:5:{i:1;s:81:"The text you entered does not look like "ok".#r#n#r#nThe domain data was not removed.";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:2:{s:5:"flags";a:3:{s:6:"filter";s:8:"admin_ok";s:10:"field_name";s:10:"confirm_ok";s:9:"error_msg";s:26:"~contextRemoveConfirmError";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:11:"Digite "ok"";i:2;i:1;}s:2:"en";a:1:{i:1;s:9:"Type "ok"";}}}}a:1:{s:8:"children";a:18:{i:0;s:6:"_start";i:1;s:9:"~editName";i:2;s:10:"~editTitle";i:3;s:12:"~editCaption";i:4;s:16:"~editDescription";i:5;s:19:"adminUsers_editMail";i:6;s:20:"adminUsers_editPhone";i:7;s:22:"adminUsers_editAddress";i:8;s:20:"~editDefaultLanguage";i:9;s:11:"~editStatus";i:10;s:11:"~editUpdate";i:11;s:10:"_separator";i:12;s:20:"~editAdminRemoveList";i:13;s:22:"~editAdminRemoveSubmit";i:14;s:10:"_separator";i:15;s:17:"~editAdminAddName";i:16;s:19:"~editAdminAddSubmit";i:17;s:4:"_end";}}a:2:{s:5:"flags";a:4:{s:4:"type";s:10:"text_small";s:6:"filter";s:9:"~adminAdd";s:6:"target";s:10:"admin_name";s:10:"field_name";s:10:"admin_name";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:24:"Adicionar administrador ";i:2;i:1;}s:2:"en";a:2:{i:1;s:17:"Add administrator";i:2;i:1;}}}}a:1:{s:5:"flags";a:4:{s:4:"type";s:6:"submit";s:6:"filter";s:6:"submit";s:10:"field_name";s:9:"admin_add";s:7:"caption";s:17:"labels/action/add";}}a:3:{s:5:"flags";a:4:{s:4:"type";s:4:"list";s:6:"filter";s:12:"~adminSelect";s:6:"target";s:12:"admin_select";s:10:"field_name";s:12:"admin_select";}s:5:"local";a:1:{s:4:"size";i:4;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:15:"Administradores";i:2;i:1;}s:2:"en";a:2:{i:1;s:14:"Administrators";i:2;i:1;}}}}a:1:{s:5:"flags";a:4:{s:4:"type";s:6:"submit";s:6:"filter";s:6:"submit";s:10:"field_name";s:12:"admin_remove";s:7:"caption";s:20:"labels/action/remove";}}a:2:{s:5:"flags";a:5:{s:4:"type";s:4:"text";s:6:"filter";s:4:"text";s:6:"target";s:12:"text/caption";s:10:"field_name";s:7:"caption";s:8:"required";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:11:"Organização";i:2;i:1;}s:2:"en";a:2:{i:1;s:12:"Organization";i:2;i:1;}}}}a:2:{s:5:"flags";a:3:{s:6:"filter";s:27:"adminDomains_selectCurrency";s:6:"target";s:14:"flags/currency";s:10:"field_name";s:8:"currency";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:5:"Moeda";i:2;i:1;}s:2:"en";a:2:{i:1;s:8:"Currency";i:2;i:1;}}}}a:2:{s:5:"flags";a:3:{s:6:"filter";s:23:"adminDomains_selectLang";s:6:"target";s:18:"flags/default_lang";s:10:"field_name";s:12:"default_lang";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"Idioma padrão";i:2;i:1;}s:2:"en";a:2:{i:1;s:16:"Default language";i:2;i:1;}}}}a:1:{s:5:"flags";a:6:{s:4:"type";s:4:"text";s:6:"filter";s:4:"text";s:6:"target";s:16:"text/description";s:10:"field_name";s:11:"description";s:8:"required";i:1;s:7:"caption";s:24:"labels/field/description";}}a:2:{s:5:"flags";a:4:{s:4:"type";s:4:"view";s:6:"filter";s:4:"view";s:6:"target";s:4:"name";s:10:"field_name";s:4:"name";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:7:"Domínio";i:2;i:1;}s:2:"en";a:1:{i:1;s:6:"domain";}}}}a:3:{s:5:"flags";a:4:{s:4:"type";s:6:"select";s:6:"filter";s:6:"select";s:6:"target";s:6:"status";s:10:"field_name";s:6:"status";}s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:2:{i:1;s:6:"Status";i:2;i:1;}}}s:8:"children";a:5:{i:0;s:18:"~editStatusWaiting";i:1;s:18:"~editStatusDefault";i:2;s:16:"~editStatusAlert";i:3;s:19:"~editStatusReserved";i:4;s:19:"~editStatusDisabled";}}a:2:{s:5:"flags";a:1:{s:5:"value";s:1:"3";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Alerta";i:2;i:1;}s:2:"en";a:2:{i:1;s:5:"Alert";i:2;i:1;}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:1:"2";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:5:"Ativo";i:2;i:1;}s:2:"en";a:2:{i:1;s:6:"Active";i:2;i:1;}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:1:"5";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"Bloqueado";i:2;i:1;}s:2:"en";a:2:{i:1;s:7:"Blocked";i:2;i:1;}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:1:"4";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:14:"Área reservada";i:2;i:1;}s:2:"en";a:2:{i:1;s:13:"Reserved area";i:2;i:1;}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:1:"1";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:22:"Aguardando atualização";i:2;i:1;}s:2:"en";a:2:{i:1;s:15:"Awaiting update";i:2;i:1;}}}}a:2:{s:5:"flags";a:5:{s:4:"type";s:4:"text";s:6:"filter";s:4:"text";s:6:"target";s:10:"text/title";s:10:"field_name";s:5:"title";s:8:"required";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:15:"Nome do website";i:2;i:1;}s:2:"en";a:2:{i:1;s:12:"Website name";i:2;i:1;}}}}a:1:{s:5:"flags";a:4:{s:4:"type";s:6:"submit";s:6:"filter";s:6:"submit";s:10:"field_name";s:4:"save";s:7:"caption";s:20:"labels/action/update";}}a:1:{s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Início";i:2;i:1;}s:2:"en";a:2:{i:1;s:4:"Home";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:3:{i:1;s:39:"Administração do [text $system.caption]";i:2;i:1;i:6;i:1;}s:2:"en";a:3:{i:1;s:37:"[text $system.caption] Administration";i:2;i:1;i:6;i:1;}}s:7:"content";a:2:{s:2:"pt";a:4:{i:1;s:355:"#r#n[if $document.user_is_admin{]#r#nOlá [text $user.caption],#r#n#r#nBem-vind[gender:o|a] como administrador[gender:|a].#r#n#r#n[}elseif $document.user_is_connected{]#r#n#r#nPrezad[gender:o|a] [text $user.caption],#r#n#r#nSua credencial não lhe dá direito de acesso à estas ferramentas.#r#n#r#n[}else{]#r#n#r#nSe você é um administrador, conecte-se para obter acesso.#r#n#r#n[} // if]#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}s:2:"en";a:5:{i:1;s:309:"[if $document.user_is_admin{]#r#nHello [text $user.caption],#r#n#r#nWelcome as administrator.#r#n#r#n[}elseif $document.user_is_connected{]#r#n#r#nDear [text $user.caption],#r#n#r#nYour profile does not give you right of access to these tools.#r#n#r#n[}else{]#r#n#r#nIf you are an administrator, connect to guive access.#r#n#r#n[} // if]#r#n";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:1:{s:4:"text";a:3:{s:7:"caption";a:1:{s:2:"pt";a:3:{i:1;s:39:"Administração do [text $system.caption]";i:2;i:1;i:6;i:1;}}s:5:"title";a:1:{s:2:"pt";a:3:{i:1;s:39:"Sobre a página inicial da administração";i:2;i:1;i:6;i:1;}}s:7:"content";a:1:{s:2:"pt";a:5:{i:1;s:401:"#r#nEste é o ambiente administrativo do [text$system.caption].#r#n#r#nAqui encontram-se reunidas diversas ferramentas que englobam todos os ambientes criados neste sistema.#r#n#r#nPara obter informações sobre as ferramentas deste administrador, procure ajuda no menu de contexto em cada página.#r#n#r#nAjuda mais específica também pode ser obtida acionando os ícones presentes ao lado dos campos dos formulários.#r#n";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:1:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Serviços";i:2;i:1;}s:2:"en";a:1:{i:1;s:8:"Services";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:8:"Serviços";i:2;i:1;}s:2:"en";a:1:{i:1;s:8:"Services";}}}}a:1:{s:4:"text";a:1:{s:7:"content";a:2:{s:2:"pt";a:4:{i:1;s:119:"Nenhum serviço está disponível.#r#n#r#nInstale novos serviços para expandir as funcionalidades do [text $system.caption].#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}s:2:"en";a:3:{i:1;s:20:"There#ss no services.";i:2;i:1;i:4;i:1;}}}}a:1:{s:4:"text";a:3:{s:7:"caption";a:1:{s:2:"pt";a:2:{i:1;s:11:"Integrações";i:2;i:1;}}s:5:"title";a:1:{s:2:"pt";a:2:{i:1;s:11:"Integrações";i:2;i:1;}}s:7:"content";a:1:{s:2:"pt";a:5:{i:1;s:302:"#r#nAqui estão os serviços que poderão ser ativados pelo [text $system.caption] para possibilitar mais funcionalidades.#r#n#r#nCada serviço precisa ser configurado individualmente, e pode ser necessário o cadastro e o pagamento de taxas para seu uso.#r#n#r#nEncontre mais informações na página de cada serviço.#r#n";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:1:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:7:"Sistema";i:2;i:1;}s:2:"en";a:2:{i:1;s:6:"System";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:7:"Sistema";i:2;i:1;}s:2:"en";a:2:{i:1;s:6:"System";i:2;i:1;}}}}a:1:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"Administrador";i:2;i:1;}s:2:"en";a:2:{i:1;s:13:"Administrator";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:13:"Administrador";i:2;i:1;}s:2:"en";a:2:{i:1;s:13:"Administrator";i:2;i:1;}}}}a:1:{s:8:"children";a:10:{i:0;s:6:"_start";i:1;s:31:"admin_constants_adminIdentifier";i:2;s:28:"admin_constants_adminCaption";i:3;s:25:"admin_constants_adminMail";i:4;s:27:"admin_constants_adminGender";i:5;s:29:"admin_constants_adminPassword";i:6;s:30:"admin_constants_adminPassword2";i:7;s:28:"admin_constants_adminHelpers";i:8;s:7:"_submit";i:9;s:4:"_end";}}a:1:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Executar";i:2;i:1;}s:2:"en";a:2:{i:1;s:20:"Run PHP instructions";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:23:"Executar instruções PHP";i:2;i:1;}s:2:"en";a:2:{i:1;s:20:"Run PHP instructions";i:2;i:1;}}}}a:1:{s:8:"children";a:4:{i:0;s:6:"_start";i:1;s:14:"~editEvalInput";i:2;s:7:"_submit";i:3;s:4:"_end";}}a:2:{s:5:"flags";a:3:{s:4:"type";s:12:"textarea_big";s:6:"filter";s:10:"~evalInput";s:10:"field_name";s:4:"eval";}s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:2:{i:1;s:4:"eval";i:2;i:1;}}}}a:1:{s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:12:"Desempacotar";i:2;i:1;}s:2:"en";a:1:{i:1;s:13:"Unpack system";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:20:"Desempacotar sistema";i:2;i:1;}s:2:"en";a:1:{i:1;s:13:"Unpack system";}}s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:639:"#r#nO sistema está empacotado. Isto significa que todos os componentes necessários para o seu funcionamento estão reunidos em um único arquivo.#r#n#r#nPara editar scripts, adicionar ou remover componentes, você pode desempacotar o sistema, extraindo os componentes em arquivos distintos.#r#n#r#nIsto acarretará uma perda significativa no desempenho, e arquivos de controle do sistema poderão estar expostos aos usuários. Por isto, não recomendamos manter o sistema desempacotado em um ambiente de produção.#r#n#r#nPosteriormente você poderá empacotar novamente o sistema, facilitando a transferência, aumentando a segurança e melhorando o desempenho.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:1:{s:8:"children";a:19:{i:0;s:6:"_start";i:1;s:39:"admin_constants_systemPackedSharedFirst";i:2;s:36:"admin_constants_systemPackedMapFirst";i:3;s:5:"_save";i:4;s:10:"_separator";i:5;s:26:"admin_constants_pathEngine";i:6;s:27:"admin_constants_pathLibrary";i:7;s:26:"admin_constants_pathShared";i:8;s:29:"admin_constants_pathTemplates";i:9;s:10:"_separator";i:10;s:11:"~editNlMode";i:11;s:16:"~editIndentStart";i:12;s:17:"~editIndentString";i:13;s:18:"~editDataExtension";i:14;s:24:"~editScriptAccessibility";i:15;s:17:"~editCreateBackup";i:16;s:19:"~editBackupFilename";i:17;s:11:"~editSubmit";i:18;s:4:"_end";}}a:2:{s:5:"flags";a:8:{s:4:"type";s:10:"text_small";s:6:"filter";s:8:"filename";s:6:"target";s:8:"filename";s:10:"field_name";s:8:"filename";s:14:"file_extension";s:3:"php";s:13:"default_value";s:11:"install.php";s:8:"required";i:1;s:5:"error";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:25:"Nome do arquivo de backup";i:2;i:1;}s:2:"en";a:1:{i:1;s:16:"Backup file name";}}}}a:2:{s:5:"flags";a:4:{s:6:"filter";s:8:"checkbox";s:6:"target";s:13:"create_backup";s:10:"field_name";s:13:"create_backup";s:5:"clear";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:34:"Criar backup do sistema empacotado";i:2;i:1;}s:2:"en";a:1:{i:1;s:34:"Create a backup of packaged system";}}}}a:3:{s:5:"flags";a:4:{s:13:"conttrol_type";s:6:"select";s:6:"filter";s:6:"select";s:6:"target";s:26:"output_data_file_extension";s:10:"field_name";s:14:"file_extension";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:27:"Formato de arquivo de dados";i:2;i:1;}s:2:"en";a:1:{i:1;s:16:"Data file format";}}}s:8:"children";a:3:{i:0;s:22:"~editDataExtensionJson";i:1;s:21:"~editDataExtensionEcl";i:2;s:24:"~editDataExtensionEclPhp";}}a:2:{s:5:"flags";a:1:{s:5:"value";s:4:".ecl";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:27:"Formato Simplificado (.ecl)";i:2;i:1;}s:2:"en";a:1:{i:1;s:24:"Simplified format (.ecl)";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:5:".json";}s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"en";a:2:{i:1;s:34:"JavaScript Object Notation (.json)";i:2;i:1;}}}}a:3:{s:5:"flags";a:4:{s:13:"conttrol_type";s:6:"select";s:6:"filter";s:6:"select";s:6:"target";s:19:"script_indent_start";s:10:"field_name";s:19:"script_indent_start";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:26:"Indentar a partir do nível";i:2;i:1;}s:2:"en";a:1:{i:1;s:18:"Indent after level";}}}s:8:"children";a:3:{i:0;s:17:"~editIndentStart1";i:1;s:17:"~editIndentStart2";i:2;s:17:"~editIndentStart3";}}a:2:{s:5:"flags";a:1:{s:5:"value";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:11:"1 - Classes";i:2;i:1;}s:2:"en";a:1:{i:1;s:11:"1 - Classes";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";i:2;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:11:"2 - Métodos";i:2;i:1;}s:2:"en";a:1:{i:1;s:11:"2 - Methods";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";i:3;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:26:"3 - Estruturas de controle";i:2;i:1;}s:2:"en";a:1:{i:1;s:22:"3 - Control structures";}}}}a:3:{s:5:"flags";a:4:{s:13:"conttrol_type";s:6:"select";s:6:"filter";s:6:"select";s:6:"target";s:13:"script_indent";s:10:"field_name";s:13:"script_indent";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:18:"Modo de indentação";i:2;i:1;}s:2:"en";a:1:{i:1;s:16:"Indentation mode";}}}s:8:"children";a:3:{i:0;s:20:"~editIndentStringTab";i:1;s:24:"~editIndentString4spaces";i:2;s:24:"~editIndentString2spaces";}}a:2:{s:5:"flags";a:1:{s:5:"value";s:5:"32,32";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"2 Espaços";i:2;i:1;}s:2:"en";a:1:{i:1;s:8:"2 Spaces";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:11:"32,32,32,32";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"4 Espaços";i:2;i:1;}s:2:"en";a:1:{i:1;s:8:"4 Spaces";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:1:"9";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:3:"Tab";i:2;i:1;}s:2:"en";a:1:{i:1;s:3:"Tab";}}}}a:3:{s:5:"flags";a:4:{s:13:"conttrol_type";s:6:"select";s:6:"filter";s:6:"select";s:6:"target";s:9:"script_nl";s:10:"field_name";s:9:"script_nl";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:15:"Quebra de linha";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"Line break";}}}s:8:"children";a:2:{i:0;s:18:"~editNlModeWindows";i:1;s:16:"~editNlModeLinux";}}a:2:{s:5:"flags";a:1:{s:5:"value";s:2:"LF";}s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:2:{i:1;s:10:"Linux (LF)";i:2;i:1;}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:4:"CRLF";}s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:2:{i:1;s:14:"Windows (CRLF)";i:2;i:1;}}}}a:2:{s:5:"flags";a:4:{s:6:"filter";s:8:"checkbox";s:6:"target";s:20:"script_accessibility";s:10:"field_name";s:20:"script_accessibility";s:5:"clear";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:37:"Não indentar scripts (Modo acessível)";i:2;i:1;}s:2:"en";a:1:{i:1;s:38:"No indent scripts (Accessibility mode)";}}}}a:2:{s:5:"flags";a:2:{s:6:"filter";s:6:"submit";s:10:"field_name";s:7:"extract";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:20:"Desempacotar sistema";i:2;i:1;}s:2:"en";a:1:{i:1;s:13:"Unpack system";}}}}a:1:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:10:"Hospedagem";i:2;i:1;}s:2:"en";a:2:{i:1;s:7:"Hosting";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:10:"Hospedagem";i:2;i:1;}s:2:"en";a:2:{i:1;s:7:"Hosting";i:2;i:1;}}}}a:1:{s:8:"children";a:12:{i:0;s:6:"_start";i:1;s:33:"admin_constants_systemHostingMode";i:2;s:26:"admin_constants_systemHost";i:3;s:39:"admin_constants_systemDefaultDomainName";i:4;s:30:"admin_constants_systemAdminUri";i:5;s:33:"admin_constants_systemProfilesUri";i:6;s:36:"admin_constants_systemProjectCaption";i:7;s:32:"admin_constants_systemProjectRef";i:8;s:45:"admin_constants_systemEnableUserSubscriptions";i:9;s:39:"admin_constants_systemEnableUserDomains";i:10;s:7:"_submit";i:11;s:4:"_end";}}a:1:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:5:"Erros";i:2;i:1;}s:2:"en";a:2:{i:1;s:13:"PHP error log";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:19:"Log de erros do PHP";i:2;i:1;}s:2:"en";a:2:{i:1;s:13:"PHP error log";i:2;i:1;}}}}a:1:{s:8:"children";a:9:{i:0;s:6:"_start";i:1;s:31:"admin_constants_systemTimeLimit";i:2;s:35:"admin_constants_systemDisplayErrors";i:3;s:31:"admin_constants_systemLogErrors";i:4;s:7:"_submit";i:5;s:10:"_separator";i:6;s:12:"~editLogView";i:7;s:13:"~editLogClear";i:8;s:4:"_end";}}a:2:{s:5:"flags";a:3:{s:4:"type";s:6:"submit";s:6:"filter";s:6:"submit";s:10:"field_name";s:9:"clear_log";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:10:"Limpar log";i:2;i:1;}s:2:"en";a:1:{i:1;s:9:"Clear log";}}}}a:2:{s:5:"flags";a:3:{s:4:"type";s:8:"textarea";s:6:"filter";s:8:"~logView";s:10:"field_name";s:3:"log";}s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:2:{i:1;s:9:"error_log";i:2;i:1;}}}}a:2:{s:5:"flags";a:1:{s:4:"icon";s:5:"happy";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:17:"Empacotar sistema";i:2;i:1;}s:2:"en";a:1:{i:1;s:11:"Pack system";}}s:7:"content";a:2:{s:2:"pt";a:3:{i:1;s:24:"O sistema foi empacotado";i:2;i:1;i:4;i:1;}s:2:"en";a:2:{i:1;s:21:"The system was packed";i:4;i:1;}}}}a:1:{s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"Empacotar";i:2;i:1;}s:2:"en";a:1:{i:1;s:11:"Pack system";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:17:"Empacotar sistema";i:2;i:1;}s:2:"en";a:1:{i:1;s:11:"Pack system";}}s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:322:"#r#nAtualmente o sistema está distribuído em diversos arquivos. Isto facilita a manutenção e o desenvolvimento. Porém, este modo não é indicado para ambientes de produção.#r#n#r#nVocê pode empacotar todos os componentes em um único arquivo, facilitando a transferência, elevando o nível de segurança e melhorando o desempenho.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:1:{s:8:"children";a:6:{i:0;s:6:"_start";i:1;s:19:"~editPackMediaFiles";i:2;s:16:"~editClearServer";i:3;s:19:"~editExportFilename";i:4;s:11:"~editSubmit";i:5;s:4:"_end";}}a:2:{s:5:"flags";a:4:{s:6:"filter";s:8:"checkbox";s:6:"target";s:18:"clear_source_files";s:10:"field_name";s:10:"clearfiles";s:5:"clear";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:26:"Remover arquivos de origem";i:2;i:1;}s:2:"en";a:1:{i:1;s:19:"Remove source files";}}}}a:2:{s:5:"flags";a:8:{s:4:"type";s:10:"text_small";s:6:"filter";s:8:"filename";s:6:"target";s:8:"filename";s:10:"field_name";s:8:"filename";s:14:"file_extension";s:3:"php";s:13:"default_value";s:11:"install.php";s:8:"required";i:1;s:5:"error";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:15:"Nome do arquivo";i:2;i:1;}s:2:"en";a:1:{i:1;s:9:"File name";}}}}a:2:{s:5:"flags";a:4:{s:6:"filter";s:8:"checkbox";s:6:"target";s:16:"pack_media_files";s:10:"field_name";s:16:"pack_media_files";s:5:"clear";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:43:"Empacotar arquivos de mídia (áudio e vídeo)";i:2;i:1;}s:2:"en";a:1:{i:1;s:34:"Pack media files (audio and video)";}}}}a:2:{s:5:"flags";a:2:{s:6:"filter";s:6:"submit";s:10:"field_name";s:4:"pack";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:17:"Empacotar sistema";i:2;i:1;}s:2:"en";a:1:{i:1;s:11:"Pack system";}}}}a:1:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Servidor";i:2;i:1;}s:2:"en";a:2:{i:1;s:6:"Server";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:8:"Servidor";i:2;i:1;}s:2:"en";a:2:{i:1;s:6:"Server";i:2;i:1;}}}}a:1:{s:8:"children";a:6:{i:0;s:6:"_start";i:1;s:35:"admin_constants_systemHttpsRedirect";i:2;s:35:"admin_constants_systemRewriteEngine";i:3;s:22:"admin_constants_chrFns";i:4;s:7:"_submit";i:5;s:4:"_end";}}a:1:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"Configurações";i:2;i:1;}s:2:"en";a:2:{i:1;s:14:"Configurations";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:32:"Configurações básicas do sistema";i:2;i:1;}s:2:"en";a:2:{i:1;s:26:"Basic system configuration";i:2;i:1;}}}}a:1:{s:8:"children";a:9:{i:0;s:6:"_start";i:1;s:37:"admin_constants_systemDefaultLanguage";i:2;s:36:"admin_constants_systemDefaultCharset";i:3;s:37:"admin_constants_systemDefaultCurrency";i:4;s:30:"admin_constants_systemTimezone";i:5;s:32:"admin_constants_systemSessionTTL";i:6;s:40:"admin_constants_systemSessionCacheExpire";i:7;s:7:"_submit";i:8;s:4:"_end";}}a:1:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:12:"Atualizações";i:2;i:1;}s:2:"en";a:2:{i:1;s:7:"Updates";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:12:"Atualizações";i:2;i:1;}s:2:"en";a:2:{i:1;s:7:"Updates";i:2;i:1;}}}}a:1:{s:8:"children";a:7:{i:0;s:6:"_start";i:1;s:19:"~viewCurrentVersion";i:2;s:19:"~viewCurrentRelease";i:3;s:21:"~viewLastVerification";i:4;s:13:"~editCheckNow";i:5;s:24:"~viewNewVersionAvailable";i:6;s:4:"_end";}}a:2:{s:5:"flags";a:2:{s:6:"filter";s:6:"submit";s:10:"field_name";s:5:"check";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:21:"Procurar atualizações";i:2;i:1;}s:2:"en";a:1:{i:1;s:13:"Check updates";}}}}a:2:{s:5:"flags";a:2:{s:6:"filter";s:6:"submit";s:10:"field_name";s:6:"update";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:15:"Atualizar agora";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"Update now";}}}}a:2:{s:5:"flags";a:1:{s:6:"filter";s:37:"adminSystem_update_viewCurrentRelease";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:10:"Lançamento";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Release";}}}}a:2:{s:5:"flags";a:1:{s:6:"filter";s:37:"adminSystem_update_viewCurrentVersion";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:12:"Versão atual";i:2;i:1;}s:2:"en";a:1:{i:1;s:15:"Current version";}}}}a:2:{s:5:"flags";a:1:{s:6:"filter";s:39:"adminSystem_update_viewLastVerification";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:18:"Última verificação";i:2;i:1;}s:2:"en";a:1:{i:1;s:17:"Last verification";}}}}a:2:{s:5:"flags";a:1:{s:6:"filter";s:42:"adminSystem_update_viewNewVersionAvailable";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:22:"Nova versão disponível";i:2;i:1;}s:2:"en";a:1:{i:1;s:21:"New version available";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:15:"Notas da versão";i:2;i:1;}s:2:"en";a:1:{i:1;s:13:"Release notes";}}}}a:2:{s:5:"local";a:1:{s:4:"type";s:11:"descriptive";}s:4:"text";a:1:{s:7:"content";a:2:{s:2:"pt";a:3:{i:1;s:63:"A versão instalada parece ser a versão mais recente disponível.";i:2;i:1;i:4;i:1;}s:2:"en";a:2:{i:1;s:65:"The installed version appears to be the latest version available.";i:4;i:1;}}}}a:1:{s:8:"children";a:4:{i:0;s:6:"_start";i:1;s:16:"~adminProfileMsg";i:2;s:19:"~adminProfileButtom";i:3;s:4:"_end";}}a:2:{s:5:"flags";a:2:{s:6:"filter";s:6:"submit";s:10:"field_name";s:6:"create";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:29:"Criar perfil do administrador";i:2;i:1;}s:2:"en";a:1:{i:1;s:20:"Create admin profile";}}}}a:2:{s:5:"flags";a:1:{s:6:"filter";s:29:"personaliteFields_descriptive";}s:4:"text";a:1:{s:7:"content";a:2:{s:2:"pt";a:4:{i:1;s:321:"#r#n=== Atenção ===#r#n#r#nO administrador [text $user.caption] não possui um perfil para si.#r#n#r#nAo criar um perfil com o mesmo identificador do administrador, ambos possuirão os mesmos direitos de acesso.#r#n#r#nPor isso recomendamos fortemente que você crie um perfil para o administrador antes que acidentalmente outro o faça!#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}s:2:"en";a:3:{i:1;s:321:"#r#n=== Attention ===#r#n#r#nThe administrator [text $ user.caption] does not have a profile for him.#r#n#r#nWhen creating a profile with the same administrator identifier, both will have the same access rights.#r#n#r#nSo we strongly recommend that you create a profile for the administrator before someone else accidentally does it!#r#n";i:4;i:1;i:6;i:1;}}}}a:2:{s:5:"flags";a:1:{s:4:"icon";s:5:"error";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:3:{i:1;s:14:"Senha inválida";i:2;i:1;i:5;i:2;}s:2:"en";a:2:{i:1;s:16:"Invalid password";i:2;i:1;}}s:7:"content";a:2:{s:2:"pt";a:4:{i:1;s:184:"Não é permitido utilizar caractéres extendidos (como letras acentuadas). #r#n#r#nIsto poderá impedir a conexão caso se esteja utilizando uma codificação de caracteres diferente da atual.#r#n";i:2;i:1;i:4;i:1;i:5;i:2;}s:2:"en";a:5:{i:1;s:162:"You may not use extended characters (such as accented letters).#r#n#r#nThis may prevent the connection if you are using a different character encoding of the current.";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:2:{s:5:"flags";a:1:{s:4:"icon";s:5:"error";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:3:{i:1;s:13:"Repetir senha";i:2;i:1;i:5;i:2;}s:2:"en";a:2:{i:1;s:15:"Repeat password";i:2;i:1;}}s:7:"content";a:2:{s:2:"pt";a:2:{i:1;s:39:"As senhas informadas não são idênticas.";i:2;i:1;}s:2:"en";a:5:{i:1;s:41:"The informed passwords are not identical.";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:2:{s:5:"flags";a:1:{s:4:"icon";s:8:"question";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"Cadê a senha?";i:2;i:1;}s:2:"en";a:2:{i:1;s:21:"Where#ss the password?";i:2;i:1;}}s:7:"content";a:2:{s:2:"pt";a:2:{i:1;s:32:"É necessário informar uma senha.";i:2;i:1;}s:2:"en";a:5:{i:1;s:26:"You must enter a password.";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:2:{s:5:"flags";a:1:{s:4:"icon";s:5:"alert";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:22:"Identificador inválido";i:2;i:1;}s:2:"en";a:2:{i:1;s:18:"Invalid identifier";i:2;i:1;}}s:7:"content";a:2:{s:2:"pt";a:4:{i:1;s:52:"Um usuário com o identificador "[$value]" já existe.";i:2;i:1;i:4;i:1;i:6;i:1;}s:2:"en";a:5:{i:1;s:53:"A user with the identifier "[$value]" already exists.";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:2:{s:5:"flags";a:1:{s:4:"icon";s:5:"error";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:3:{i:1;s:22:"Identificador inválido";i:2;i:1;i:5;i:2;}s:2:"en";a:2:{i:1;s:18:"Invalid identifier";i:2;i:1;}}s:7:"content";a:2:{s:2:"pt";a:4:{i:1;s:158:"#r#nO identificador "[$value]" não é válido#r#n#r#nUm identificador pode conter somente letras minúsculas, números e os caractéres sublinhado ("_") e hifem ("-").#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}s:2:"en";a:5:{i:1;s:151:"#r#nThe identifier "[$value]" is invalid.#r#n#r#nAn identifier can contain only lowercase letters, numbers and underscore characters ("_") and hyphen ( "-").";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:2:{s:5:"flags";a:1:{s:4:"icon";s:8:"question";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:3:{i:1;s:21:"Cadê o identificador?";i:2;i:1;i:5;i:1;}s:2:"en";a:2:{i:1;s:23:"Where#ss the identifier?";i:2;i:1;}}s:7:"content";a:2:{s:2:"pt";a:3:{i:1;s:168:"Não foi possível encontrar um identificador válido.#r#n#r#nUm identificador pode conter somente letras minúsculas, números e os caractéres sublinhado ("_") e hifem ("-").#r#n";i:2;i:1;i:4;i:1;}s:2:"en";a:5:{i:1;s:146:"Could not find a valid identifier.#r#n#r#nAn identifier can contain only lowercase letters, numbers and underscore characters ("_") and hyphen ( "-").";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:1:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Usuários";i:2;i:1;}s:2:"en";a:2:{i:1;s:5:"Users";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:8:"Usuários";i:2;i:1;}s:2:"en";a:2:{i:1;s:5:"Users";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"content";a:2:{s:2:"pt";a:4:{i:1;s:146:"Este recurso está desativado.#r#n#r#n[if $document.user_is_admin]#r#n#r#nPara ativar este recurso é necessário configurar o banco de dados.#r#n#r#n[} // if]#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}s:2:"en";a:3:{i:1;s:130:"This resource is disabled.#r#n#r#n[if $document.user_is_admin]#r#n#r#nTo enable this resource, set the database connection.#r#n#r#n[} // if]#r#n";i:4;i:1;i:6;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"content";a:2:{s:2:"pt";a:3:{i:1;s:28:"Não há usuários cadastrados.";i:2;i:1;i:4;i:1;}s:2:"en";a:2:{i:1;s:28:"There#ss no registered users.";i:4;i:1;}}}}a:1:{s:8:"children";a:5:{i:0;s:6:"_start";i:1;s:16:"~createFolderMsg";i:2;s:28:"admin_constants_pathProfiles";i:3;s:19:"~createFolderButtom";i:4;s:4:"_end";}}a:2:{s:5:"flags";a:2:{s:6:"filter";s:6:"submit";s:10:"field_name";s:6:"create";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:11:"Criar pasta";i:2;i:1;}s:2:"en";a:1:{i:1;s:13:"Create folder";}}}}a:2:{s:5:"flags";a:1:{s:6:"filter";s:29:"personaliteFields_descriptive";}s:4:"text";a:1:{s:7:"content";a:2:{s:2:"pt";a:3:{i:1;s:170:"#r#nAntes de adicionar usuários, é necessário criar uma pasta para acomodar os arquivos pessoais de cada usuário.#r#n#r#nPara criar esta pasta agora, clique em "Criar pasta".#r#n";i:2;i:1;i:4;i:1;}s:2:"en";a:2:{i:1;s:159:"#r#nBefore adding users, it#ss necessary to create a folder to accommodate the personal files of each user.#r#n#r#nTo create this folder now, click "Create folder".#r#n";i:4;i:1;}}}}a:2:{s:5:"flags";a:3:{s:4:"type";s:16:"address_buscacep";s:6:"filter";s:25:"personaliteFields_address";s:10:"field_name";s:7:"address";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Endereço";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Address";}}}}a:2:{s:5:"flags";a:4:{s:4:"type";s:10:"text_small";s:6:"filter";s:4:"free";s:10:"field_name";s:9:"born_date";s:6:"target";s:19:"local/document/born";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:18:"Data de nascimento";i:2;i:1;}s:2:"en";a:1:{i:1;s:9:"Born date";}}}}a:2:{s:5:"flags";a:6:{s:4:"type";s:10:"text_small";s:6:"filter";s:4:"text";s:6:"target";s:12:"text/caption";s:10:"field_name";s:7:"caption";s:8:"required";i:1;s:8:"monolang";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:15:"Nome ou apelido";i:2;i:1;}s:2:"en";a:1:{i:1;s:9:"Nick name";}}}}a:2:{s:5:"flags";a:4:{s:4:"type";s:10:"text_small";s:6:"filter";s:4:"free";s:10:"field_name";s:3:"cpf";s:6:"target";s:18:"local/document/cpf";}s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:2:{i:1;s:3:"CPF";i:2;i:1;}}}}a:2:{s:5:"flags";a:4:{s:4:"type";s:4:"text";s:6:"filter";s:4:"text";s:10:"field_name";s:11:"description";s:6:"target";s:16:"text/description";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:21:"Frase de apresentação";i:2;i:1;}s:2:"en";a:1:{i:1;s:28:"Presentation humorous phrase";}}}}a:3:{s:5:"flags";a:4:{s:4:"type";s:6:"select";s:6:"filter";s:6:"select";s:6:"target";s:12:"local/gender";s:10:"field_name";s:6:"gender";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:19:"Forma de tratamento";i:2;i:1;}s:2:"en";a:1:{i:1;s:6:"Gender";}}}s:8:"children";a:3:{i:0;s:20:"~editGenderUndefined";i:1;s:17:"~editGenderFemale";i:2;s:15:"~editGenderMale";}}a:2:{s:5:"flags";a:1:{s:5:"value";s:6:"female";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:7:"Senhora";i:2;i:1;}s:2:"en";a:1:{i:1;s:4:"Miss";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:4:"male";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Senhor";i:2;i:1;}s:2:"en";a:1:{i:1;s:6:"Mister";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:9:"undefined";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:18:"(Não especificado)";i:2;i:1;}s:2:"en";a:1:{i:1;s:15:"(Not specified)";}}}}a:2:{s:5:"flags";a:3:{s:4:"type";s:4:"text";s:6:"filter";s:22:"personaliteFields_mail";s:10:"field_name";s:4:"mail";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:5:"Email";i:2;i:1;}s:2:"en";a:1:{i:1;s:5:"Email";}}}}a:2:{s:5:"flags";a:5:{s:4:"type";s:10:"text_small";s:6:"filter";s:15:"adminUsers_name";s:6:"target";s:4:"name";s:10:"field_name";s:4:"name";s:8:"required";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"Identificador";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"Identifier";}}}}a:1:{s:5:"flags";a:6:{s:4:"type";s:13:"text_password";s:6:"filter";s:19:"adminUsers_password";s:6:"target";s:8:"password";s:10:"field_name";s:8:"password";s:7:"caption";s:26:"labels/field/user_password";s:8:"required";i:1;}}a:1:{s:5:"flags";a:4:{s:4:"type";s:13:"text_password";s:10:"field_name";s:15:"password_repeat";s:8:"required";i:1;s:7:"caption";s:33:"labels/field/user_repeat_password";}}a:2:{s:5:"flags";a:3:{s:4:"type";s:5:"phone";s:6:"filter";s:23:"personaliteFields_phone";s:10:"field_name";s:5:"phone";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Telefone";i:2;i:1;}s:2:"en";a:1:{i:1;s:5:"Phone";}}}}a:2:{s:5:"flags";a:4:{s:4:"type";s:4:"text";s:6:"filter";s:4:"text";s:10:"field_name";s:9:"full_name";s:6:"target";s:10:"text/title";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"Nome completo";i:2;i:1;}s:2:"en";a:1:{i:1;s:9:"Full name";}}}}a:1:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:17:"Adicionar usuário";i:2;i:1;}s:2:"en";a:2:{i:1;s:8:"Add user";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:17:"Adicionar usuário";i:2;i:1;}s:2:"en";a:2:{i:1;s:8:"Add user";i:2;i:1;}}}}a:2:{s:5:"flags";a:1:{s:6:"action";s:10:"_user-edit";}s:8:"children";a:10:{i:0;s:6:"_start";i:1;s:19:"adminUsers_editName";i:2;s:22:"adminUsers_editCaption";i:3;s:20:"adminUsers_editTitle";i:4;s:19:"adminUsers_editMail";i:5;s:21:"adminUsers_editGender";i:6;s:23:"adminUsers_editPassword";i:7;s:24:"adminUsers_editPassword2";i:8;s:7:"_submit";i:9;s:4:"_end";}}a:1:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:19:"Detalhes do usuário";i:2;i:1;}s:2:"en";a:2:{i:1;s:12:"User details";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:19:"Detalhes do usuário";i:2;i:1;}s:2:"en";a:2:{i:1;s:12:"User details";i:2;i:1;}}}}a:2:{s:5:"flags";a:1:{s:6:"action";s:10:"_user-edit";}s:8:"children";a:12:{i:0;s:6:"_start";i:1;s:9:"~editName";i:2;s:22:"adminUsers_editCaption";i:3;s:20:"adminUsers_editTitle";i:4;s:19:"adminUsers_editMail";i:5;s:21:"adminUsers_editGender";i:6;s:24:"~editPasswordDescription";i:7;s:13:"~editPassword";i:8;s:24:"adminUsers_editPassword2";i:9;s:13:"~editComments";i:10;s:7:"_submit";i:11;s:4:"_end";}}a:2:{s:5:"flags";a:4:{s:4:"type";s:14:"textarea_small";s:6:"filter";s:4:"text";s:6:"target";s:13:"text/comments";s:10:"field_name";s:8:"comments";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:11:"Observações";i:2;i:1;}s:2:"en";a:1:{i:1;s:12:"Observations";}}}}a:1:{s:5:"flags";a:5:{s:4:"type";s:4:"view";s:6:"filter";s:4:"view";s:6:"target";s:4:"name";s:10:"field_name";s:4:"name";s:7:"caption";s:28:"labels/field/user_identifier";}}a:1:{s:5:"flags";a:5:{s:4:"type";s:13:"text_password";s:6:"filter";s:19:"adminUsers_password";s:6:"target";s:8:"password";s:10:"field_name";s:8:"password";s:7:"caption";s:26:"labels/field/user_password";}}a:2:{s:5:"flags";a:1:{s:4:"type";s:11:"descriptive";}s:4:"text";a:1:{s:7:"content";a:2:{s:2:"pt";a:2:{i:1;s:65:"Para alterar a senha, especifique a nova senha nos campos abaixo:";i:2;i:1;}s:2:"en";a:5:{i:1;s:69:"To change the password, specify the new password in the fields below:";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:2:{s:5:"flags";a:2:{s:4:"icon";s:5:"crash";s:7:"caption";s:33:"system_msg_alertOperationCanceled";}s:4:"text";a:1:{s:7:"content";a:2:{s:2:"pt";a:3:{i:1;s:96:"#r#nO texto que você digitou não se parece com "ok".#r#n#r#nOs dados da usuária não foram removidos.#r#n";i:2;i:1;i:4;i:1;}s:2:"en";a:5:{i:1;s:79:"The text you entered does not look like "ok".#r#n#r#nThe user data was not removed.";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:2:{s:5:"flags";a:2:{s:4:"icon";s:5:"crash";s:7:"caption";s:33:"system_msg_alertOperationCanceled";}s:4:"text";a:1:{s:7:"content";a:2:{s:2:"pt";a:3:{i:1;s:96:"#r#nO texto que você digitou não se parece com "ok".#r#n#r#nOs dados do usuário não foram removidos.#r#n";i:2;i:1;i:4;i:1;}s:2:"en";a:5:{i:1;s:79:"The text you entered does not look like "ok".#r#n#r#nThe user data was not removed.";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:3:{s:5:"flags";a:2:{s:6:"action";s:12:"_user-remove";s:4:"icon";s:8:"question";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:15:"Remover usuária";i:2;i:1;}s:2:"en";a:2:{i:1;s:11:"Remove user";i:2;i:1;}}s:7:"content";a:2:{s:2:"pt";a:4:{i:1;s:259:"Esta operação irá remover a usuária e todos os vínculos a ela relacionados.#r#n#r#n===Atenção!===#r#n#r#nEsta operação é irreversível. Ao invés de remover os dados, você pode bloquear uma usuária alterando o status.#r#n#r#nTenha certeza de que esta operação é adequada.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}s:2:"en";a:5:{i:1;s:242:"This operation will remove the user and all links related to it.#r#n#r#n=== Attention! ===#r#n#r#nThis operation is irreversible. Instead of removing the data, you can block a user by changing the status.#r#n#r#nMake sure that this operation is adequate.";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}s:8:"children";a:5:{i:0;s:6:"_start";i:1;s:17:"~removeConfirmOkF";i:2;s:10:"_separator";i:3;s:37:"modHumperstilshen_submitConfirmCancel";i:4;s:4:"_end";}}a:3:{s:5:"flags";a:2:{s:6:"action";s:12:"_user-remove";s:4:"icon";s:8:"question";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:15:"Remover usuário";i:2;i:1;}s:2:"en";a:2:{i:1;s:11:"Remove user";i:2;i:1;}}s:7:"content";a:2:{s:2:"pt";a:4:{i:1;s:256:"Esta operação irá remover o usuário e todos os vínculos a ele relacionados.#r#n#r#n===Atenção!===#r#n#r#nEsta operação é irreversível. Ao invés de remover os dados, você pode bloquear um usuário alterando o status.#r#n#r#nTenha certeza de que esta operação é adequada.";i:2;i:1;i:4;i:1;i:6;i:1;}s:2:"en";a:5:{i:1;s:242:"This operation will remove the user and all links related to it.#r#n#r#n=== Attention! ===#r#n#r#nThis operation is irreversible. Instead of removing the data, you can block a user by changing the status.#r#n#r#nMake sure that this operation is adequate.";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}s:8:"children";a:5:{i:0;s:6:"_start";i:1;s:17:"~removeConfirmOkM";i:2;s:10:"_separator";i:3;s:37:"modHumperstilshen_submitConfirmCancel";i:4;s:4:"_end";}}a:2:{s:5:"flags";a:3:{s:6:"filter";s:8:"admin_ok";s:10:"field_name";s:10:"confirm_ok";s:9:"error_msg";s:20:"~removeConfirmErrorF";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:11:"Digite "ok"";i:2;i:1;}s:2:"en";a:1:{i:1;s:9:"Type "ok"";}}}}a:2:{s:5:"flags";a:3:{s:6:"filter";s:8:"admin_ok";s:10:"field_name";s:10:"confirm_ok";s:9:"error_msg";s:20:"~removeConfirmErrorM";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:11:"Digite "ok"";i:2;i:1;}s:2:"en";a:1:{i:1;s:9:"Type "ok"";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:15:"Remover usuária";i:2;i:1;}s:2:"en";a:2:{i:1;s:11:"Remove user";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:15:"Remover usuário";i:2;i:1;}s:2:"en";a:2:{i:1;s:11:"Remove user";i:2;i:1;}}}}a:2:{s:5:"flags";a:2:{s:14:"modLayout_from";s:9:"templates";s:14:"modLayout_name";s:7:"default";}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Início";i:2;i:1;}s:2:"en";a:2:{i:1;s:5:"Start";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:17:"Domínio bloqueado";i:2;i:1;}s:2:"en";a:2:{i:1;s:14:"Blocked domain";i:2;i:1;}}s:7:"content";a:2:{s:2:"pt";a:4:{i:1;s:234:"#r#nOlá [text $user.caption],#r#n#r#nPor motivos de segurança este domínio está temporariamente bloqueado.#r#n#r#nSe você é um administrador deste domínio, favor entrar em contato com a equipe do [text $system.caption] o mais rápido possível.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}s:2:"en";a:5:{i:1;s:201:"Hello [text $user.caption],#r#n#r#nFor security reasons this domain is temporarily locked.#r#n#r#nIf you are an administrator of this domain, please contact the [text $system.caption] team as soon as possible.";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:2:{s:4:"text";a:4:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Início";i:2;i:1;}s:2:"en";a:2:{i:1;s:4:"Home";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:35:"Aguardando a publicação de conteúdo";i:2;i:1;}s:2:"en";a:2:{i:1;s:30:"Waiting for publishing content";i:2;i:1;}}s:11:"description";a:1:{s:2:"pt";a:2:{i:1;s:0:"";i:2;i:1;}}s:7:"content";a:2:{s:2:"pt";a:4:{i:1;s:285:"#r#n#r#n[if $document.user_is_admin]#r#n#r#n#r#n[}elseif $document.user_is_connected]#r#n#r#nOlá [text $user.caption],#r#n#r#nSua credencial não lhe dá direito a editar esta página.#r#n#r#n[}else{]#r#n#r#nSe você é um administrador deste domínio, conecte-se e comece a criar seu site agora mesmo!#r#n#r#n[} // if]#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}s:2:"en";a:5:{i:1;s:289:"#r#n[if $document.user_is_admin]#r#n#r#n[}elseif $document.user_is_connected]#r#n#r#nHello [text $user.caption],#r#n#r#nYour credential does not give you access to edit this page.#r#n#r#n[}else{]#r#n#r#nIf you are an administrator of this domain, log in and start creating your website right now!#r#n#r#n[} // if]#r#n";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}s:5:"flags";a:1:{s:20:"personalite_disabled";i:1;}}a:2:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:22:"Criar a página inicial";i:2;i:1;}s:2:"en";a:2:{i:1;s:20:"Create the home page";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:22:"Criar a página inicial";i:2;i:1;}s:2:"en";a:2:{i:1;s:20:"Create the home page";i:2;i:1;}}}s:8:"children";a:13:{i:0;s:6:"_start";i:1;s:24:"domain_setRecognizeFlags";i:2;s:10:"~editTitle";i:3;s:12:"~editCaption";i:4;s:16:"~editDescription";i:5;s:13:"~editKeywords";i:6;s:12:"~editContent";i:7;s:24:"~editRecognizeParagraphs";i:8;s:18:"~editRecognizeHTML";i:9;s:23:"~editRecognizeEcolabore";i:10;s:17:"~editKeywordsPack";i:11;s:5:"_save";i:12;s:4:"_end";}}a:2:{s:5:"flags";a:5:{s:4:"type";s:10:"text_small";s:6:"filter";s:4:"text";s:6:"target";s:12:"text/caption";s:10:"field_name";s:7:"caption";s:8:"required";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:49:"Legenda (como será apresentada no menu de seções)";i:2;i:1;}s:2:"en";a:2:{i:1;s:39:"Caption (as it will appear on the menu)";i:2;i:1;}}}}a:2:{s:5:"flags";a:7:{s:4:"type";s:8:"textarea";s:6:"filter";s:4:"text";s:6:"target";s:12:"text/content";s:10:"field_name";s:7:"content";s:13:"format_enable";i:1;s:11:"html_enable";i:1;s:16:"ecolabore_enable";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:50:"Texto de apresentação da página inicial (opcional)";i:2;i:1;}s:2:"en";a:2:{i:1;s:46:"Presentation text for the home page (optional)";i:2;i:1;}}}}a:2:{s:5:"flags";a:5:{s:4:"type";s:14:"textarea_small";s:6:"filter";s:4:"text";s:6:"target";s:16:"text/description";s:10:"field_name";s:11:"description";s:8:"required";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:27:"Breve descrição do seu site";i:2;i:1;}s:2:"en";a:2:{i:1;s:30:"Short description of your site";i:2;i:1;}}}}a:1:{s:5:"flags";a:6:{s:9:"condition";s:20:"section_editKeywords";s:4:"type";s:4:"text";s:6:"filter";s:4:"text";s:10:"field_name";s:8:"keywords";s:6:"target";s:13:"text/keywords";s:7:"caption";s:21:"labels/field/keywords";}}a:1:{s:5:"flags";a:3:{s:4:"type";s:4:"none";s:6:"filter";s:8:"keywords";s:6:"target";s:8:"keywords";}}a:2:{s:5:"flags";a:5:{s:4:"type";s:4:"text";s:6:"filter";s:4:"text";s:6:"target";s:10:"text/title";s:10:"field_name";s:10:"page_title";s:7:"caption";s:18:"labels/field/title";}s:4:"text";a:1:{s:7:"content";a:2:{s:2:"pt";a:2:{i:1;s:242:"Edite aqui o título da página inicial.#r#n#r#nO título não é obrigatório. Ao invés disto, você poderá preferir uma figura em seu lugar.#r#n#r#nNeste caso, não se esqueça de fornecer uma descrição para a figura correspondente ao título do documento.#r#n";i:2;i:1;}s:2:"en";a:5:{i:1;s:241:"Edit here the title for the home page#r#n#r#nO título não é obrigatório. Ao invés disto, você poderá preferir uma figura em seu lugar.#r#n#r#nNeste caso, não se esqueça de fornecer uma descrição para a figura correspondente ao título do documento.#r#n";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:1:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:16:"Portal Ecolabore";i:2;i:1;}s:2:"en";a:2:{i:1;s:16:"Ecolabore Portal";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:16:"Portal Ecolabore";i:2;i:1;}s:2:"en";a:2:{i:1;s:16:"Ecolabore Portal";i:2;i:1;}}}}a:2:{s:5:"flags";a:1:{s:14:"modLayout_from";s:9:"templates";}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"Domínio livre";i:2;i:1;}s:2:"en";a:2:{i:1;s:11:"Free domain";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:13:"Domínio livre";i:2;i:1;}s:2:"en";a:2:{i:1;s:11:"Free domain";i:2;i:1;}}s:7:"content";a:1:{s:2:"pt";a:5:{i:1;s:788:"#r#nEste domínio não está sendo utilizado no momento.#r#n#r#n[if($document.enable_user_domains){]#r#n#r#nSe você gostou do endereço [$document.ref] e deseja acomodar sua organização no [text $system.caption], basta conectar-se.#r#n#r#nPara conectar-se, acione o ícone no canto superior direito da página. Se não possui um cadastro no [text $system.caption], #r#n[if($document.enable_user_subscriptions){]#r#nacione "Não é cadastrado?" logo abaixo da caixa de login.#r#n[}else{]#r#nsolicite aos administradores.#r#n[}]#r#n#r#n[}else{]#r#n#r#nSe você gostou do endereço [$document.ref] e deseja acomodar sua organização no [text $system.caption], entre em contato com os administradores.#r#n#r#n[}]#r#n#r#n[if($system.ref){]#r#n#r#nPara mais informações, visite nosso projeto em [$system.ref].#r#n#r#n[}]#r#n#r#n";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:2:{s:5:"flags";a:1:{s:14:"modLayout_from";s:9:"templates";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:19:"Criar novo ambiente";i:2;i:1;}s:2:"en";a:2:{i:1;s:19:"Creating new domain";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:19:"Criar novo ambiente";i:2;i:1;}s:2:"en";a:2:{i:1;s:19:"Creating new domain";i:2;i:1;}}}}a:1:{s:8:"children";a:9:{i:0;s:6:"_start";i:1;s:12:"~editCaption";i:2;s:10:"~editTitle";i:3;s:16:"~editDescription";i:4;s:19:"adminUsers_editMail";i:5;s:20:"adminUsers_editPhone";i:6;s:22:"adminUsers_editAddress";i:7;s:7:"_create";i:8;s:4:"_end";}}a:2:{s:5:"flags";a:6:{s:4:"type";s:4:"text";s:6:"filter";s:4:"text";s:10:"field_name";s:7:"caption";s:6:"target";s:12:"text/caption";s:8:"required";i:1;s:4:"help";i:1;}s:4:"text";a:3:{s:7:"caption";a:1:{s:2:"pt";a:2:{i:1;s:19:"Nome da organização";i:2;i:1;}}s:5:"title";a:1:{s:2:"pt";a:2:{i:1;s:19:"Nome da organização";i:2;i:1;}}s:7:"content";a:1:{s:2:"pt";a:5:{i:1;s:126:"#r#nO nome como sua organização foi oficialmente registrada.#r#n#r#nPara páginas pessoais, este deve ser o nome oficial da página.#r#n";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:2:{s:5:"flags";a:6:{s:4:"type";s:14:"textarea_small";s:6:"filter";s:4:"text";s:10:"field_name";s:11:"description";s:6:"target";s:16:"text/description";s:8:"required";i:1;s:4:"help";i:1;}s:4:"text";a:3:{s:7:"caption";a:1:{s:2:"pt";a:2:{i:1;s:9:"Descrição";i:2;i:1;}}s:5:"title";a:1:{s:2:"pt";a:2:{i:1;s:9:"Descrição";i:2;i:1;}}s:7:"content";a:1:{s:2:"pt";a:5:{i:1;s:98:"#r#nDescreva em poucas palavras o ramo de atividade da sua organização ou o propósito do seu site.#r#n";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:2:{s:5:"flags";a:6:{s:4:"type";s:4:"text";s:6:"filter";s:4:"text";s:10:"field_name";s:5:"title";s:6:"target";s:10:"text/title";s:8:"required";i:1;s:4:"help";i:1;}s:4:"text";a:3:{s:7:"caption";a:1:{s:2:"pt";a:2:{i:1;s:13:"Nome fantasia";i:2;i:1;}}s:5:"title";a:1:{s:2:"pt";a:2:{i:1;s:13:"Nome fantasia";i:2;i:1;}}s:7:"content";a:1:{s:2:"pt";a:5:{i:1;s:65:"#r#nEste será o nome apresentado no topo das páginas do ambiente.#r#n";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:1:{s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:21:"Página não encontrada";i:2;i:1;}s:2:"en";a:2:{i:1;s:14:"Page not found";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:21:"Página não encontrada";i:2;i:1;}s:2:"en";a:2:{i:1;s:14:"Page not found";i:2;i:1;}}s:7:"content";a:2:{s:2:"pt";a:4:{i:1;s:108:"#r#nOlá [text $user.caption],#r#n#r#nA página que você procura não existe. Ela pode ter sido movida ou removida.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}s:2:"en";a:5:{i:1;s:101:"Hello [text $user.caption],#r#n#r#n#r#nThe page you requested does not exist. It can be moved or removed.#r#n";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:1:{s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:21:"Personalizar mensagem";i:2;i:1;}s:2:"en";a:2:{i:1;s:14:"Custom message";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:21:"Personalizar mensagem";i:2;i:1;}s:2:"en";a:2:{i:1;s:14:"Custom message";i:2;i:1;}}s:7:"content";a:0:{}}}a:2:{s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:29:"Editar mensagem personalizada";i:2;i:1;}s:2:"en";a:2:{i:1;s:23:"Edit customized message";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:29:"Editar mensagem personalizada";i:2;i:1;}s:2:"en";a:2:{i:1;s:23:"Edit customized message";i:2;i:1;}}s:7:"content";a:0:{}}s:8:"children";a:12:{i:0;s:6:"_start";i:1;s:24:"domain_setRecognizeFlags";i:2;s:12:"~editCaption";i:3;s:10:"~editTitle";i:4;s:12:"~editContent";i:5;s:24:"~editRecognizeParagraphs";i:6;s:18:"~editRecognizeHtml";i:7;s:23:"~editRecognizeEcolabore";i:8;s:12:"~editUpdated";i:9;s:11:"_saveCancel";i:10;s:17:"_required_message";i:11;s:4:"_end";}}a:2:{s:5:"flags";a:5:{s:4:"type";s:4:"text";s:6:"filter";s:4:"text";s:6:"target";s:12:"text/caption";s:10:"field_name";s:7:"caption";s:8:"required";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:35:"Legenda (como será exibida no menu)";i:2;i:1;}s:2:"en";a:2:{i:1;s:38:"Caption (as it will apear on the menu)";i:2;i:1;}}}}a:2:{s:5:"flags";a:8:{s:4:"type";s:8:"textarea";s:6:"filter";s:4:"text";s:6:"target";s:12:"text/content";s:10:"field_name";s:7:"content";s:8:"required";i:1;s:13:"format_enable";i:1;s:11:"html_enable";i:1;s:16:"ecolabore_enable";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Conteúdo";i:2;i:1;}s:2:"en";a:2:{i:1;s:7:"Content";i:2;i:1;}}}}a:1:{s:5:"flags";a:7:{s:9:"condition";s:21:"text_ecolabore_choose";s:4:"type";s:8:"checkbox";s:6:"filter";s:8:"checkbox";s:10:"field_name";s:14:"text_ecolabore";s:6:"target";s:20:"flags/text_ecolabore";s:6:"invert";i:1;s:7:"caption";s:32:"labels/field/recognize_ecolabore";}}a:1:{s:5:"flags";a:6:{s:9:"condition";s:16:"text_html_choose";s:4:"type";s:8:"checkbox";s:6:"filter";s:8:"checkbox";s:10:"field_name";s:9:"text_html";s:6:"target";s:15:"flags/text_html";s:7:"caption";s:27:"labels/field/recognize_html";}}a:1:{s:5:"flags";a:7:{s:9:"condition";s:18:"text_format_choose";s:4:"type";s:8:"checkbox";s:6:"filter";s:8:"checkbox";s:10:"field_name";s:11:"text_format";s:6:"target";s:17:"flags/text_format";s:6:"invert";i:1;s:7:"caption";s:33:"labels/field/recognize_paragraphs";}}a:2:{s:5:"flags";a:5:{s:4:"type";s:4:"text";s:6:"filter";s:4:"text";s:6:"target";s:10:"text/title";s:10:"field_name";s:5:"title";s:8:"required";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Título";i:2;i:1;}s:2:"en";a:2:{i:1;s:5:"Title";i:2;i:1;}}}}a:1:{s:5:"flags";a:5:{s:13:"field_display";s:5:"never";s:4:"type";s:4:"none";s:6:"filter";s:9:"timestamp";s:10:"field_name";s:7:"updated";s:6:"target";s:7:"updated";}}a:1:{s:4:"text";a:2:{s:7:"caption";a:1:{s:2:"pt";a:2:{i:1;s:40:"Sobre a mensagem "Página não encontrada"";i:2;i:1;}}s:7:"content";a:1:{s:2:"pt";a:5:{i:1;s:289:"#r#nA mensagem "Página não encontrada" é exibida quando o endereço fornecido pelo usuário não corresponde a um endereço válido.#r#n#r#n[if($document.user_is_admin){]#r#n#r#nVocê pode personalizar esta mensagem, alterando o título, o conteúdo e inserindo figuras, tabelas e outros elementos.#r#n#r#n[}]#r#n";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:1:{s:4:"text";a:2:{s:7:"caption";a:1:{s:2:"pt";a:2:{i:1;s:31:"Dica para página não encontrada";i:2;i:1;}}s:7:"content";a:1:{s:2:"pt";a:5:{i:1;s:403:"#r#n[if($document.user_is_admin){]#r#n#r#nEsta é a mensagem apresentada aos visitantes quando uma página não é localizada.#r#n#r#nPersonalize esta mensagem adicionando figuras, listas, tabelas e outros elementos ao seu conteúdo.#r#n#r#n[}else{]#r#n#r#nSeja bem-vind[gender:o|a].#r#n#r#nSe você é um administrador, conecte-se para iniciar seu trabalho.#r#n#r#nSe não é cadastrado, cadastre-se e crie seu próprio ambiente.#r#n#r#n[}]#r#n";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:1:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:27:"Restaurar mensagem original";i:2;i:1;}s:2:"en";a:2:{i:1;s:24:"Restore original message";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:27:"Restaurar mensagem original";i:2;i:1;}s:2:"en";a:2:{i:1;s:24:"Restore original message";i:2;i:1;}}}}a:1:{s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"Glossário";i:2;i:1;}s:2:"en";a:2:{i:1;s:8:"Glossary";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:9:"Glossário";i:2;i:1;}s:2:"en";a:2:{i:1;s:8:"Glossary";i:2;i:1;}}s:7:"content";a:2:{s:2:"pt";a:4:{i:1;s:94:"#r#nNesta seção você encontra a lista completa de palavras-chaves utilizadas neste ambiente.#r#n#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}s:2:"en";a:5:{i:1;s:67:"#r#nIn this section you can find all keywords used in this ambient.#r#n";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:2:{s:5:"flags";a:1:{s:4:"icon";s:3:"tip";}s:4:"text";a:3:{s:7:"caption";a:1:{s:2:"pt";a:2:{i:1;s:9:"Glossário";i:2;i:1;}}s:5:"title";a:1:{s:2:"pt";a:2:{i:1;s:17:"Sobre o glossário";i:2;i:1;}}s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:271:"#r#nAqui temos uma lista de todas as palavras-chave utilizadas neste ambiente.#r#n#r#nEsta página não pode ser editada.#r#n#r#nPara criar um glossário personalizado, crie uma nova seção do tipo "Glossário". Todas as palavras-chave listadas aqui serão automaticamente listadas lá.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:1:{s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:15:"A criar verbete";i:2;i:1;}s:2:"en";a:2:{i:1;s:15:"To create entry";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:15:"A criar verbete";i:2;i:1;}s:2:"en";a:2:{i:1;s:15:"To create entry";i:2;i:1;}}s:7:"content";a:2:{s:2:"pt";a:4:{i:1;s:135:"#r#n[if(!$document.user_is_admin){]#r#n#r#nOoops!#r#n#r#nEsta página ainda não recebeu seu conteúdo.#r#n#r#nDesculpa-nos pelo inconveniente.#r#n#r#n[}]#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}s:2:"en";a:5:{i:1;s:139:"#r#n[if(!$document.user_is_admin){]#r#n#r#nOoops!#r#n#r#n This page has not yet received its content.#r#n#r#nWe apologize for the inconvenience.#r#n#r#n[}]#r#n";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:2:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:14:"Editar verbete";i:2;i:1;}s:2:"en";a:2:{i:1;s:10:"Edit entry";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:14:"Editar verbete";i:2;i:1;}s:2:"en";a:2:{i:1;s:10:"Edit entry";i:2;i:1;}}}s:8:"children";a:8:{i:0;s:6:"_start";i:1;s:10:"~editTitle";i:2;s:12:"~editCaption";i:3;s:12:"~editContent";i:4;s:17:"~editKeywordsPack";i:5;s:12:"~editUpdated";i:6;s:11:"_saveCancel";i:7;s:4:"_end";}}a:1:{s:5:"flags";a:4:{s:13:"field_display";s:4:"none";s:6:"filter";s:7:"caption";s:10:"field_name";s:7:"caption";s:6:"target";s:12:"text/caption";}}a:2:{s:5:"flags";a:8:{s:4:"type";s:8:"textarea";s:6:"filter";s:4:"text";s:6:"target";s:12:"text/content";s:10:"field_name";s:7:"content";s:8:"required";i:1;s:12:"format_force";i:1;s:10:"html_force";i:2;s:15:"ecolabore_force";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Conteúdo";i:2;i:1;}s:2:"en";a:2:{i:1;s:7:"Content";i:2;i:1;}}}}a:1:{s:5:"flags";a:1:{s:6:"filter";s:8:"keywords";}}a:2:{s:5:"flags";a:5:{s:4:"type";s:4:"text";s:6:"filter";s:4:"text";s:6:"target";s:10:"text/title";s:10:"field_name";s:5:"title";s:8:"required";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Título";i:2;i:1;}s:2:"en";a:2:{i:1;s:5:"Title";i:2;i:1;}}}}a:1:{s:5:"flags";a:5:{s:13:"field_display";s:5:"never";s:4:"type";s:4:"none";s:6:"filter";s:9:"timestamp";s:10:"field_name";s:7:"updated";s:6:"target";s:7:"updated";}}a:2:{s:5:"flags";a:1:{s:4:"icon";s:3:"tip";}s:4:"text";a:3:{s:7:"caption";a:1:{s:2:"pt";a:2:{i:1;s:13:"Palavra-chave";i:2;i:1;}}s:5:"title";a:1:{s:2:"pt";a:2:{i:1;s:35:"Sobre a definição de palavras-chave";i:2;i:1;}}s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:585:"#r#nQuando você precisa explicar um termo de um conteúdo qualquer, englobe o termo entre duplos colchetes, como em [][]Banana]].#r#n#r#nAo salvar a página, este termo se tornará um link apontando para uma página de palavra-chave.#r#n#r#nSe a página não existir, você poderá editá-la.#r#n#r#nVocê pode inserir diversas referências para a mesma palavra-chave em qualquer parte do conteúdo de todo o ambiente.#r#n#r#nSe quiser oferecer aos visitantes uma lista com todas as palavras-chave, crie uma seção do tipo "Glossário". Lá será apresentada a lista de todas as palavras que já tenham sido definidas.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:15:"Remover verbete";i:2;i:1;}s:2:"en";a:2:{i:1;s:12:"Remove entry";i:2;i:1;}}}}a:3:{s:5:"flags";a:2:{s:4:"icon";s:8:"question";s:7:"caption";s:34:"renderLabels_msg_operation_confirm";}s:4:"text";a:1:{s:7:"content";a:2:{s:2:"pt";a:3:{i:1;s:104:"Esta operação irá remover permanentemente este verbete e todo o seu conteúdo.#r#n#r#nDeseja mesmo continuar?";i:2;i:1;i:4;i:1;}s:2:"en";a:5:{i:1;s:78:"This operation will delete permanently this entry.#r#n#r#nDo you wich to continue?";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}s:8:"children";a:4:{i:0;s:6:"_start";i:1;s:10:"_separator";i:2;s:37:"modHumperstilshen_submitConfirmCancel";i:3;s:4:"_end";}}a:1:{s:4:"html";s:307:"#r#n#r#n#r#n[list{loop{ ]#r#n#r#n#r#n[$html]#r#n#r#n[}}]#r#n#r#n";}a:1:{s:4:"text";a:3:{s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:23:"Editar a página inicial";i:2;i:1;}s:2:"en";a:2:{i:1;s:18:"Edit the home page";i:2;i:1;}}s:11:"description";a:0:{}s:7:"content";a:0:{}}}a:2:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:23:"Editar a página inicial";i:2;i:1;}s:2:"en";a:2:{i:1;s:18:"Edit the home page";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:23:"Editar a página inicial";i:2;i:1;}s:2:"en";a:2:{i:1;s:18:"Edit the home page";i:2;i:1;}}}s:8:"children";a:13:{i:0;s:6:"_start";i:1;s:10:"~editTitle";i:2;s:12:"~editCaption";i:3;s:16:"~editDescription";i:4;s:13:"~editKeywords";i:5;s:12:"~editContent";i:6;s:9:"~editList";i:7;s:17:"~editListSections";i:8;s:16:"~editListRecents";i:9;s:17:"~editKeywordsPack";i:10;s:12:"~editUpdated";i:11;s:11:"_saveCancel";i:12;s:4:"_end";}}a:2:{s:5:"flags";a:5:{s:4:"type";s:10:"text_small";s:6:"filter";s:4:"text";s:6:"target";s:12:"text/caption";s:10:"field_name";s:7:"caption";s:8:"required";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:49:"Legenda (como será apresentada no menu de seções)";i:2;i:1;}s:2:"en";a:2:{i:1;s:39:"Caption (as it will appear on the menu)";i:2;i:1;}}}}a:2:{s:5:"flags";a:7:{s:4:"type";s:8:"textarea";s:6:"filter";s:4:"text";s:6:"target";s:12:"text/content";s:10:"field_name";s:7:"content";s:13:"format_enable";i:1;s:11:"html_enable";i:1;s:16:"ecolabore_enable";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:50:"Texto de apresentação da página inicial (opcional)";i:2;i:1;}s:2:"en";a:2:{i:1;s:46:"Presentation text for the home page (optional)";i:2;i:1;}}}}a:2:{s:5:"flags";a:5:{s:4:"type";s:14:"textarea_small";s:6:"filter";s:4:"text";s:6:"target";s:16:"text/description";s:10:"field_name";s:11:"description";s:8:"required";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:27:"Breve descrição do seu site";i:2;i:1;}s:2:"en";a:2:{i:1;s:30:"Short description of your site";i:2;i:1;}}}}a:1:{s:5:"flags";a:5:{s:4:"type";s:4:"text";s:6:"filter";s:4:"text";s:10:"field_name";s:8:"keywords";s:6:"target";s:13:"text/keywords";s:7:"caption";s:21:"labels/field/keywords";}}a:1:{s:5:"flags";a:3:{s:4:"type";s:4:"none";s:6:"filter";s:8:"keywords";s:6:"target";s:8:"keywords";}}a:2:{s:5:"flags";a:1:{s:6:"filter";s:29:"personaliteFields_descriptive";}s:4:"text";a:1:{s:7:"content";a:2:{s:2:"pt";a:2:{i:1;s:58:"Acrescente painéis com conteúdo dinâmico à página inicial:";i:2;i:1;}s:2:"en";a:1:{i:1;s:49:"Add panels with dinamic contents to the main page";}}}}a:2:{s:5:"flags";a:4:{s:6:"filter";s:8:"checkbox";s:10:"field_name";s:12:"list_recents";s:6:"target";s:17:"local/listRecents";s:5:"clear";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:21:"Exibir posts recentes";i:2;i:1;}s:2:"en";a:1:{i:1;s:20:"Display recent posts";}}}}a:2:{s:5:"flags";a:4:{s:6:"filter";s:8:"checkbox";s:10:"field_name";s:18:"list_main_sections";s:6:"target";s:18:"local/listSections";s:5:"clear";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:24:"Exibir seções principais";i:2;i:1;}s:2:"en";a:1:{i:1;s:21:"Display main sections";}}}}a:2:{s:5:"flags";a:5:{s:4:"type";s:4:"text";s:6:"filter";s:4:"text";s:6:"target";s:10:"text/title";s:10:"field_name";s:10:"page_title";s:7:"caption";s:18:"labels/field/title";}s:4:"text";a:1:{s:7:"content";a:2:{s:2:"pt";a:2:{i:1;s:242:"Edite aqui o título da página inicial.#r#n#r#nO título não é obrigatório. Ao invés disto, você poderá preferir uma figura em seu lugar.#r#n#r#nNeste caso, não se esqueça de fornecer uma descrição para a figura correspondente ao título do documento.#r#n";i:2;i:1;}s:2:"en";a:5:{i:1;s:241:"Edit here the title for the home page#r#n#r#nO título não é obrigatório. Ao invés disto, você poderá preferir uma figura em seu lugar.#r#n#r#nNeste caso, não se esqueça de fornecer uma descrição para a figura correspondente ao título do documento.#r#n";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:1:{s:5:"flags";a:5:{s:13:"field_display";s:5:"never";s:4:"type";s:4:"none";s:6:"filter";s:9:"timestamp";s:10:"field_name";s:7:"updated";s:6:"target";s:7:"updated";}}a:1:{s:4:"text";a:2:{s:7:"caption";a:1:{s:2:"pt";a:2:{i:1;s:22:"Sobre a página inicial";i:2;i:1;}}s:7:"content";a:1:{s:2:"pt";a:5:{i:1;s:425:"#r#nVocê está na página inicial.#r#n#r#n[if($document.user_is_admin){]#r#n#r#nEsta é a página apresentada aos visitantes quando eles chegam a este ambiente.#r#n#r#n[if($document.editor_is_enabled){]#r#n#r#nVocê pode adicionar figuras, listas, tabelas e outros elementos clicando nos botões na barra à direita.#r#n#r#n[}else{]#r#n#r#nPara editar seu conteúdo, acione o ícone do sistema e, no menu "Contexto" escolha "Editar a página inicial".#r#n#r#n[}}]#r#n";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:2:{s:5:"local";a:1:{s:14:"instructor_img";s:33:"instructor/quality/instructor.jpg";}s:4:"text";a:1:{s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:203:"#r#nEsta é a página inicial deste ambiente.#r#n#r#nVocê pode editar seu conteúdo e adicionar figuras, tabelas e outros elementos.#r#n#r#nQuando quiser seguir para a próxima tarefa do instrutor, acione "Avançar".#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:1:{s:4:"text";a:2:{s:7:"caption";a:1:{s:2:"pt";a:2:{i:1;s:24:"Dica para página inicial";i:2;i:1;}}s:7:"content";a:1:{s:2:"pt";a:5:{i:1;s:444:"#r#n[if($document.user_is_admin){]#r#n#r#nEsta é a página apresentada aos visitantes quando eles chegam a este ambiente.#r#n#r#nApresente sua organização adicionando figuras, listas, tabelas e outros elementos ao seu conteúdo.#r#n#r#n[}else{]#r#n#r#nEsta é a página inicial deste ambiente.#r#n#r#nSeja bem-vind[gender:o|a].#r#n#r#nSe você é um administrador, conecte-se para iniciar seu trabalho.#r#n#r#nSe não é cadastrado, cadastre-se e crie seu próprio ambiente.#r#n#r#n[}]#r#n";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:17:"Seções principais";i:2;i:1;}s:2:"en";a:2:{i:1;s:13:"Main sections";i:2;i:1;}}}s:5:"local";a:16:{s:8:"position";s:6:"center";s:5:"wd-sm";s:2:"12";s:5:"wd-lg";s:2:"12";s:8:"relative";s:9:"relative-";s:7:"padding";s:6:"0.5rem";s:10:"margin-top";s:4:"2rem";s:13:"margin-bottom";s:6:"0.5rem";s:4:"list";s:7:"default";s:7:"details";s:24:"img_mini_circle#r#ncaption";s:9:"list-type";s:4:"grid";s:10:"list-align";s:6:"center";s:7:"columns";s:1:"6";s:13:"wd-lg-columns";s:1:"4";s:16:"vertical-spacing";s:3:"050";s:18:"horizontal-spacing";s:3:"050";s:14:"vertical-align";s:6:"bottom";}}a:1:{s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:15:"Sobre este site";i:2;i:1;}s:2:"en";a:2:{i:1;s:15:"About this site";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:15:"Sobre este site";i:2;i:1;}s:2:"en";a:2:{i:1;s:15:"About this site";i:2;i:1;}}s:7:"content";a:2:{s:2:"pt";a:5:{i:1;s:323:"#r#nEste site pertence ao projeto [text $system.caption], e foi construído utilizando as ferramentas do gerenciador de conteúdos "Portal Ecolabore".#r#n#r#nSaiba mais sobre o [text $system.caption].#r#n#r#nConheça e seja bem-vind[gender:o|a] ao Portal Ecolabore.#r#n#r#n";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}s:2:"en";a:5:{i:1;s:260:"#r#nThis site is a part of [text $system.caption] project, and was created using the "Portal Ecolabore" CMS tools.#r#n#r#nKnow more about [text $system.caption].#r#n#r#nWelcome to the Ecolabore Portal.#r#n";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:15:"Administradores";i:2;i:1;}s:2:"en";a:1:{i:1;s:14:"Administrators";}}}}a:2:{s:5:"flags";a:1:{s:19:"modFormulary_preset";s:4:"view";}s:8:"children";a:8:{i:0;s:10:"_startView";i:1;s:10:"~viewTitle";i:2;s:12:"~viewCaption";i:3;s:16:"~viewDescription";i:4;s:9:"~viewMail";i:5;s:10:"~viewPhone";i:6;s:12:"~viewAddress";i:7;s:8:"_endView";}}a:2:{s:5:"flags";a:3:{s:6:"filter";s:25:"personaliteFields_address";s:10:"field_name";s:7:"address";s:4:"view";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Endereço";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Address";}}}}a:2:{s:5:"flags";a:2:{s:6:"filter";s:4:"view";s:6:"target";s:12:"text/caption";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:11:"Organização";i:2;i:1;}s:2:"en";a:1:{i:1;s:12:"Organization";}}}}a:2:{s:5:"flags";a:2:{s:6:"filter";s:4:"view";s:6:"target";s:16:"text/description";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"Descrição";i:2;i:1;}s:2:"en";a:1:{i:1;s:11:"Description";}}}}a:2:{s:5:"flags";a:4:{s:4:"type";s:4:"view";s:6:"filter";s:22:"personaliteFields_mail";s:10:"field_name";s:4:"mail";s:4:"view";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:5:"Email";i:2;i:1;}s:2:"en";a:1:{i:1;s:5:"Email";}}}}a:2:{s:5:"flags";a:3:{s:6:"filter";s:23:"personaliteFields_phone";s:10:"field_name";s:5:"phone";s:4:"view";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Telefone";i:2;i:1;}s:2:"en";a:1:{i:1;s:5:"Phone";}}}}a:2:{s:5:"flags";a:2:{s:6:"filter";s:4:"view";s:6:"target";s:10:"text/title";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:12:"Nome do site";i:2;i:1;}s:2:"en";a:1:{i:1;s:9:"Site name";}}}}a:1:{s:4:"text";a:1:{s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:22:"Publicado recentemente";i:2;i:1;}s:2:"en";a:2:{i:1;s:12:"Recent posts";i:2;i:1;}}}}a:1:{s:4:"text";a:2:{s:7:"caption";a:1:{s:2:"pt";a:2:{i:1;s:23:"Sobre os itens recentes";i:2;i:1;}}s:7:"content";a:1:{s:2:"pt";a:5:{i:1;s:182:"#r#nAqui são listadas as publicações mais recentes.#r#n#r#nEsta lista inclui todos os posts de todos os tipos de blogs, incluindo galeria de figuras, podcasts, calendário de eventos etc.#r#n";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:1:{s:4:"text";a:2:{s:7:"caption";a:1:{s:2:"pt";a:2:{i:1;s:32:"Dica para as últimas publicações";i:2;i:1;}}s:7:"content";a:1:{s:2:"pt";a:5:{i:1;s:236:"#r#nCrie um painel dinâmico para listar as últimas publicações do seu site na página inicial.#r#n#r#ncopie o código seguinte e cole no conteúdo da página inicial, onde deseja que o painel seja exibido:#r#n#r#n[code]#r#n[dinamic:-recents]#r#n[/code]#r#n";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:2:{s:5:"flags";a:3:{s:6:"filter";s:18:"domainRecents_link";s:10:"field_name";s:7:"recents";s:10:"posteriori";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:40:"Adicionar à lista "Publicações recentes"";i:2;i:1;}s:2:"en";a:2:{i:1;s:26:"Add to "Recent posts" list";i:2;i:1;}}}}a:1:{s:4:"html";s:610:"#r#n#r#n#r#n#r#n[scope(`home`){]#r#n[text $title]#r#n[$url]#r#n[text $description]#r#n[}]#r#n[$document.lang]#r#n[$pubDate]#r#n[list{loop{]#r#n#r#n[text $title]#r#n[$url]#r#n[$url]#r#n[$pubDate]#r#n[if($description){]#r#n[text $description]#r#n[}]#r#n#r#n[}}]#r#n#r#n";}a:1:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"Pesquisar";i:2;i:1;}s:2:"en";a:2:{i:1;s:6:"Search";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:9:"Pesquisar";i:2;i:1;}s:2:"en";a:2:{i:1;s:6:"Search";i:2;i:1;}}}}a:2:{s:5:"flags";a:1:{s:4:"icon";s:3:"tip";}s:4:"text";a:3:{s:7:"caption";a:1:{s:2:"pt";a:2:{i:1;s:9:"Pesquisar";i:2;i:1;}}s:5:"title";a:1:{s:2:"pt";a:2:{i:1;s:19:"Sobre o pesquisador";i:2;i:1;}}s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:478:"#r#nNesta página é possível realizar pesquisas em palavras-chave.#r#n#r#nAs pesquisas poderão incluir palavras encontradas nos títulos e outros campos relevantes.#r#n#r#nO pesquisador não realiza pesquisas em todo o conteúdo das páginas. Utilize portais de busca para isto.#r#n#r#nVocê pode criar uma página personalizada para o pesquisador, criando uma seção do tipo "Pesquisar".#r#n#r#nTodas as buscas realizadas neste ambiente serão automaticamente direcionadas para a seção criada por você.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:1:{s:4:"text";a:1:{s:5:"title";a:2:{s:2:"pt";a:3:{i:1;s:46:"Nenhum resultado encontrado para "[$keywords]"";i:2;i:1;i:6;i:1;}s:2:"en";a:3:{i:1;s:34:"Any result found for "[$keywords]"";i:2;i:1;i:6;i:1;}}}}a:1:{s:8:"children";a:5:{i:0;s:6:"_start";i:1;s:12:"~searchInput";i:2;s:14:"~searchTagOnly";i:3;s:13:"~searchSubmit";i:4;s:4:"_end";}}a:2:{s:5:"flags";a:4:{s:4:"type";s:10:"text_small";s:6:"filter";s:4:"free";s:10:"field_name";s:5:"input";s:6:"target";s:3:"key";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:12:"Sua pesquisa";i:2;i:1;}s:2:"en";a:2:{i:1;s:11:"Your search";i:2;i:1;}}}}a:2:{s:5:"flags";a:2:{s:6:"filter";s:6:"submit";s:10:"field_name";s:6:"submit";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:2:"Ir";i:2;i:1;}s:2:"en";a:2:{i:1;s:2:"Go";i:2;i:1;}}}}a:2:{s:5:"flags";a:3:{s:6:"filter";s:8:"checkbox";s:10:"field_name";s:9:"tags_only";s:6:"target";s:9:"tags_only";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:22:"Pesquisar somente tags";i:2;i:1;}s:2:"en";a:2:{i:1;s:16:"Search tags only";i:2;i:1;}}}}a:1:{s:4:"html";s:228:"#r#n#r#n[list{loop{]#r#n#r#n[$url]#r#n[$date]#r#n[$priority]#r#n#r#n[}}]#r#n ";}a:1:{s:5:"local";a:535:{s:6:"// 100";s:0:"";s:6:"// 101";s:13:"Basic lengths";s:15:"mod-padding-top";s:4:"1rem";s:17:"mod-padding-right";s:4:"1rem";s:18:"mod-padding-bottom";s:1:"0";s:16:"mod-padding-left";s:4:"1rem";s:11:"box-padding";s:4:"1rem";s:17:"box-border-radius";s:1:"0";s:10:"box-shadow";s:4:"none";s:12:"list-row-gap";s:4:"1rem";s:15:"list-column-gap";s:4:"2rem";s:15:"img-smoke-width";s:4:"1rem";s:12:"media-sm-max";s:5:"380px";s:12:"media-md-min";s:5:"381px";s:12:"media-md-max";s:5:"780px";s:12:"media-lg-min";s:5:"781px";s:12:"media-lg-max";s:6:"1180px";s:12:"media-xl-min";s:6:"1181px";s:10:"bar-height";s:4:"4rem";s:6:"// 200";s:0:"";s:6:"// 201";s:20:"Fonts and paragraphs";s:19:"paragraph-font-name";s:14:"century-gothic";s:19:"paragraph-font-size";s:5:"1.2em";s:24:"paragraph-letter-spacing";s:6:"normal";s:21:"paragraph-text-shadow";s:4:"none";s:20:"paragraph-text-align";s:7:"justify";s:21:"paragraph-line-height";s:5:"1.6em";s:23:"paragraph-margin-bottom";s:4:"1rem";s:21:"paragraph-margin-left";s:1:"0";s:21:"paragraph-text-indent";s:1:"0";s:6:"// 210";s:0:"";s:15:"label-font-name";s:20:"$paragraph-font-name";s:17:"label-font-weight";s:6:"normal";s:15:"label-font-size";s:7:"0.875em";s:20:"label-letter-spacing";s:25:"$paragraph-letter-spacing";s:17:"label-text-shadow";s:22:"$paragraph-text-shadow";s:16:"label-text-align";s:21:"$paragraph-text-align";s:17:"label-line-height";s:5:"1.8em";s:19:"label-margin-bottom";s:1:"0";s:17:"label-margin-left";s:1:"0";s:17:"label-text-indent";s:22:"$paragraph-text-indent";s:6:"// 220";s:0:"";s:20:"blockquote-font-name";s:20:"$paragraph-font-name";s:20:"blockquote-font-size";s:20:"$paragraph-font-size";s:25:"blockquote-letter-spacing";s:25:"$paragraph-letter-spacing";s:22:"blockquote-text-shadow";s:22:"$paragraph-text-shadow";s:21:"blockquote-text-align";s:21:"$paragraph-text-align";s:22:"blockquote-line-height";s:22:"$paragraph-line-height";s:24:"blockquote-margin-bottom";s:24:"$paragraph-margin-bottom";s:22:"blockquote-margin-left";s:3:"4em";s:22:"blockquote-text-indent";s:22:"$paragraph-text-indent";s:6:"// 230";s:0:"";s:16:"legend-font-name";s:20:"$paragraph-font-name";s:18:"legend-font-weight";s:6:"normal";s:16:"legend-font-size";s:20:"$paragraph-font-size";s:21:"legend-letter-spacing";s:25:"$paragraph-letter-spacing";s:18:"legend-text-shadow";s:22:"$paragraph-text-shadow";s:17:"legend-text-align";s:6:"center";s:18:"legend-line-height";s:22:"$paragraph-line-height";s:20:"legend-margin-bottom";s:24:"$paragraph-margin-bottom";s:18:"legend-margin-left";s:22:"$paragraph-margin-left";s:18:"legend-text-indent";s:22:"$paragraph-text-indent";s:6:"// 240";s:0:"";s:14:"link-font-name";s:20:"$paragraph-font-name";s:16:"link-font-weight";s:4:"bold";s:14:"link-font-size";s:20:"$paragraph-font-size";s:19:"link-letter-spacing";s:25:"$paragraph-letter-spacing";s:16:"link-text-shadow";s:22:"$paragraph-text-shadow";s:6:"// 250";s:0:"";s:16:"header-font-name";s:20:"$paragraph-font-name";s:18:"header-font-weight";s:4:"bold";s:21:"header-letter-spacing";s:25:"$paragraph-letter-spacing";s:18:"header-text-shadow";s:22:"$paragraph-text-shadow";s:17:"header-text-align";s:21:"$paragraph-text-align";s:18:"header-line-height";s:22:"$paragraph-line-height";s:20:"header-margin-bottom";s:24:"$paragraph-margin-bottom";s:18:"header-margin-left";s:22:"$paragraph-margin-left";s:18:"header-text-indent";s:22:"$paragraph-text-indent";s:6:"// 260";s:0:"";s:17:"caption-font-name";s:17:"$header-font-name";s:19:"caption-font-weight";s:19:"$header-font-weight";s:17:"caption-font-size";s:20:"$paragraph-font-size";s:22:"caption-letter-spacing";s:22:"$header-letter-spacing";s:19:"caption-text-shadow";s:19:"$header-text-shadow";s:18:"caption-text-align";s:18:"$header-text-align";s:19:"caption-line-height";s:19:"$header-line-height";s:21:"caption-margin-bottom";s:21:"$header-margin-bottom";s:19:"caption-margin-left";s:19:"$header-margin-left";s:19:"caption-text-indent";s:19:"$header-text-indent";s:6:"// 270";s:0:"";s:13:"bar-font-name";s:17:"$header-font-name";s:15:"bar-font-weight";s:19:"$header-font-weight";s:13:"bar-font-size";s:20:"$paragraph-font-size";s:18:"bar-letter-spacing";s:22:"$header-letter-spacing";s:15:"bar-text-shadow";s:19:"$header-text-shadow";s:14:"bar-text-align";s:4:"left";s:15:"bar-line-height";s:14:"$bar-font-size";s:17:"bar-margin-bottom";s:1:"0";s:15:"bar-margin-left";s:1:"0";s:15:"bar-text-indent";s:1:"0";s:6:"// 280";s:0:"";s:13:"pre-font-name";s:8:"consolas";s:15:"pre-font-weight";s:6:"normal";s:13:"pre-font-size";s:20:"$paragraph-font-size";s:18:"pre-letter-spacing";s:25:"$paragraph-letter-spacing";s:15:"pre-text-shadow";s:22:"$paragraph-text-shadow";s:14:"pre-text-align";s:4:"left";s:15:"pre-line-height";s:22:"$paragraph-line-height";s:17:"pre-margin-bottom";s:1:"0";s:15:"pre-margin-left";s:1:"0";s:15:"pre-text-indent";s:1:"0";s:6:"// 290";s:0:"";s:10:"h1-sm-size";s:3:"3em";s:10:"h2-sm-size";s:5:"2.5em";s:10:"h3-sm-size";s:3:"2em";s:10:"h4-sm-size";s:5:"1.7em";s:10:"h5-sm-size";s:5:"1.4em";s:10:"h6-sm-size";s:5:"1.2em";s:10:"h1-xl-size";s:3:"2em";s:10:"h2-xl-size";s:5:"1.8em";s:10:"h3-xl-size";s:5:"1.6em";s:10:"h4-xl-size";s:5:"1.4em";s:10:"h5-xl-size";s:5:"1.2em";s:10:"h6-xl-size";s:3:"1em";s:6:"// 300";s:0:"";s:6:"// 301";s:7:"Schemes";s:19:"document-text-color";s:4:"#c000";s:25:"document-background-color";s:4:"#cfff";s:21:"document-border-color";s:4:"#c666";s:21:"document-header-color";s:3:"666";s:22:"document-caption-color";s:22:"$document-header-color";s:19:"document-link-color";s:15:"$document-color";s:26:"document-link-active-color";s:20:"$document-link-color";s:6:"// 311";s:0:"";s:25:"document-button-font-name";s:17:"$header-font-name";s:27:"document-button-font-weight";s:19:"$header-font-weight";s:25:"document-button-font-size";s:20:"$paragraph-font-size";s:30:"document-button-letter-spacing";s:22:"$header-letter-spacing";s:29:"document-button-border-radius";s:1:"0";s:27:"document-button-line-height";s:26:"$document-button-font-size";s:34:"document-button-horizontal-padding";s:4:"2rem";s:32:"document-button-vertical-padding";s:4:"1rem";s:21:"document-button-color";s:7:"#cffffff";s:32:"document-button-background-color";s:7:"#c666666";s:27:"document-button-text-shadow";s:19:"$header-text-shadow";s:26:"document-button-transition";s:7:"initial";s:28:"document-button-border-color";s:4:"#cccc";s:28:"document-button-border-width";s:1:"0";s:28:"document-button-border-style";s:5:"solid";s:26:"document-button-box-shadow";s:4:"none";s:28:"document-button-active-color";s:7:"#cffffff";s:39:"document-button-active-background-color";s:7:"#c999999";s:34:"document-button-active-text-shadow";s:28:"$document-button-text-shadow";s:35:"document-button-active-border-color";s:29:"$document-button-border-color";s:35:"document-button-active-border-width";s:29:"$document-button-border-width";s:35:"document-button-active-border-style";s:29:"$document-button-border-style";s:33:"document-button-active-box-shadow";s:27:"$document-button-box-shadow";s:6:"// 312";s:0:"";s:24:"document-input-font-name";s:20:"$paragraph-font-name";s:26:"document-input-font-weight";s:6:"normal";s:24:"document-input-font-size";s:3:"1em";s:29:"document-input-letter-spacing";s:25:"$paragraph-letter-spacing";s:28:"document-input-border-radius";s:1:"0";s:26:"document-input-line-height";s:5:"1.5em";s:33:"document-input-horizontal-padding";s:5:"0.5em";s:31:"document-input-vertical-padding";s:5:"0.5em";s:20:"document-input-color";s:4:"#c000";s:31:"document-input-background-color";s:4:"#cccc";s:26:"document-input-text-shadow";s:22:"$paragraph-text-shadow";s:25:"document-input-transition";s:47:"box-shadow 0.5s, border-color 0.25s ease-in-out";s:27:"document-input-border-color";s:7:"#ccacaca";s:27:"document-input-border-width";s:9:"0.0625rem";s:27:"document-input-border-style";s:5:"solid";s:25:"document-input-box-shadow";s:37:"inset 0 1px 2px rgba(10, 10, 10, 0.1)";s:27:"document-input-active-color";s:4:"#c000";s:38:"document-input-active-background-color";s:4:"#cddd";s:33:"document-input-active-text-shadow";s:27:"$document-input-text-shadow";s:34:"document-input-active-border-color";s:7:"#c8a8a8a";s:34:"document-input-active-border-width";s:28:"$document-input-border-width";s:34:"document-input-active-border-style";s:28:"$document-input-border-style";s:32:"document-input-active-box-shadow";s:15:"0 0 5px #ccacaca";s:6:"// 320";s:0:"";s:17:"system-text-color";s:4:"#cfff";s:23:"system-background-color";s:4:"#c369";s:19:"system-border-color";s:4:"#cfff";s:19:"system-header-color";s:4:"#cfff";s:20:"system-caption-color";s:20:"$system-header-color";s:17:"system-link-color";s:13:"$system-color";s:24:"system-link-active-color";s:18:"$system-link-color";s:18:"system-box-padding";s:12:"$box-padding";s:24:"system-box-border-radius";s:18:"$box-border-radius";s:17:"system-box-shadow";s:11:"$box-shadow";s:6:"// 321";s:0:"";s:23:"system-button-font-name";s:26:"$document-button-font-name";s:25:"system-button-font-weight";s:28:"$document-button-font-weight";s:23:"system-button-font-size";s:26:"$document-button-font-size";s:28:"system-button-letter-spacing";s:31:"$document-button-letter-spacing";s:27:"system-button-border-radius";s:30:"$document-button-border-radius";s:25:"system-button-line-height";s:28:"$document-button-line-height";s:32:"system-button-horizontal-padding";s:35:"$document-button-horizontal-padding";s:30:"system-button-vertical-padding";s:33:"$document-button-vertical-padding";s:19:"system-button-color";s:22:"$document-button-color";s:30:"system-button-background-color";s:33:"$document-button-background-color";s:25:"system-button-text-shadow";s:28:"$document-button-text-shadow";s:24:"system-button-transition";s:27:"$document-button-transition";s:26:"system-button-border-color";s:29:"$document-button-border-color";s:26:"system-button-border-width";s:29:"$document-button-border-width";s:26:"system-button-border-style";s:29:"$document-button-border-style";s:24:"system-button-box-shadow";s:27:"$document-button-box-shadow";s:26:"system-button-active-color";s:29:"$document-button-active-color";s:37:"system-button-active-background-color";s:40:"$document-button-active-background-color";s:32:"system-button-active-text-shadow";s:35:"$document-button-active-text-shadow";s:33:"system-button-active-border-color";s:36:"$document-button-active-border-color";s:33:"system-button-active-border-width";s:36:"$document-button-active-border-width";s:33:"system-button-active-border-style";s:36:"$document-button-active-border-style";s:31:"system-button-active-box-shadow";s:34:"$document-button-active-box-shadow";s:6:"// 322";s:0:"";s:22:"system-input-font-name";s:25:"$document-input-font-name";s:24:"system-input-font-weight";s:27:"$document-input-font-weight";s:22:"system-input-font-size";s:25:"$document-input-font-size";s:27:"system-input-letter-spacing";s:30:"$document-input-letter-spacing";s:26:"system-input-border-radius";s:29:"$document-input-border-radius";s:24:"system-input-line-height";s:27:"$document-input-line-height";s:31:"system-input-horizontal-padding";s:34:"$document-input-horizontal-padding";s:29:"system-input-vertical-padding";s:32:"$document-input-vertical-padding";s:18:"system-input-color";s:21:"$document-input-color";s:29:"system-input-background-color";s:32:"$document-input-background-color";s:24:"system-input-text-shadow";s:27:"$document-input-text-shadow";s:23:"system-input-transition";s:26:"$document-input-transition";s:25:"system-input-border-color";s:28:"$document-input-border-color";s:25:"system-input-border-width";s:28:"$document-input-border-width";s:25:"system-input-border-style";s:28:"$document-input-border-style";s:23:"system-input-box-shadow";s:26:"$document-input-box-shadow";s:25:"system-input-active-color";s:28:"$document-input-active-color";s:36:"system-input-active-background-color";s:39:"$document-input-active-background-color";s:31:"system-input-active-text-shadow";s:34:"$document-input-active-text-shadow";s:32:"system-input-active-border-color";s:35:"$document-input-active-border-color";s:32:"system-input-active-border-width";s:35:"$document-input-active-border-width";s:32:"system-input-active-border-style";s:35:"$document-input-active-border-style";s:30:"system-input-active-box-shadow";s:33:"$document-input-active-box-shadow";s:6:"// 330";s:0:"";s:16:"panel-text-color";s:20:"$document-text-color";s:22:"panel-background-color";s:26:"$document-background-color";s:18:"panel-border-color";s:22:"$document-border-color";s:18:"panel-header-color";s:23:"#c$document-header-color";s:19:"panel-caption-color";s:19:"$panel-header-color";s:16:"panel-link-color";s:12:"$panel-color";s:23:"panel-link-active-color";s:17:"$panel-link-color";s:17:"panel-box-padding";s:12:"$box-padding";s:23:"panel-box-border-radius";s:18:"$box-border-radius";s:16:"panel-box-shadow";s:11:"$box-shadow";s:6:"// 331";s:0:"";s:22:"panel-button-font-name";s:26:"$document-button-font-name";s:24:"panel-button-font-weight";s:28:"$document-button-font-weight";s:22:"panel-button-font-size";s:26:"$document-button-font-size";s:27:"panel-button-letter-spacing";s:31:"$document-button-letter-spacing";s:26:"panel-button-border-radius";s:30:"$document-button-border-radius";s:24:"panel-button-line-height";s:28:"$document-button-line-height";s:31:"panel-button-horizontal-padding";s:35:"$document-button-horizontal-padding";s:29:"panel-button-vertical-padding";s:33:"$document-button-vertical-padding";s:18:"panel-button-color";s:22:"$document-button-color";s:29:"panel-button-background-color";s:33:"$document-button-background-color";s:24:"panel-button-text-shadow";s:28:"$document-button-text-shadow";s:23:"panel-button-transition";s:27:"$document-button-transition";s:25:"panel-button-border-color";s:29:"$document-button-border-color";s:25:"panel-button-border-width";s:29:"$document-button-border-width";s:25:"panel-button-border-style";s:29:"$document-button-border-style";s:23:"panel-button-box-shadow";s:27:"$document-button-box-shadow";s:25:"panel-button-active-color";s:29:"$document-button-active-color";s:36:"panel-button-active-background-color";s:40:"$document-button-active-background-color";s:31:"panel-button-active-text-shadow";s:35:"$document-button-active-text-shadow";s:32:"panel-button-active-border-color";s:36:"$document-button-active-border-color";s:32:"panel-button-active-border-width";s:36:"$document-button-active-border-width";s:32:"panel-button-active-border-style";s:36:"$document-button-active-border-style";s:30:"panel-button-active-box-shadow";s:34:"$document-button-active-box-shadow";s:6:"// 332";s:0:"";s:21:"panel-input-font-name";s:25:"$document-input-font-name";s:23:"panel-input-font-weight";s:27:"$document-input-font-weight";s:21:"panel-input-font-size";s:25:"$document-input-font-size";s:26:"panel-input-letter-spacing";s:30:"$document-input-letter-spacing";s:25:"panel-input-border-radius";s:29:"$document-input-border-radius";s:23:"panel-input-line-height";s:27:"$document-input-line-height";s:30:"panel-input-horizontal-padding";s:34:"$document-input-horizontal-padding";s:28:"panel-input-vertical-padding";s:32:"$document-input-vertical-padding";s:17:"panel-input-color";s:21:"$document-input-color";s:28:"panel-input-background-color";s:32:"$document-input-background-color";s:23:"panel-input-text-shadow";s:27:"$document-input-text-shadow";s:22:"panel-input-transition";s:26:"$document-input-transition";s:24:"panel-input-border-color";s:28:"$document-input-border-color";s:24:"panel-input-border-width";s:28:"$document-input-border-width";s:24:"panel-input-border-style";s:28:"$document-input-border-style";s:22:"panel-input-box-shadow";s:26:"$document-input-box-shadow";s:24:"panel-input-active-color";s:28:"$document-input-active-color";s:35:"panel-input-active-background-color";s:39:"$document-input-active-background-color";s:30:"panel-input-active-text-shadow";s:34:"$document-input-active-text-shadow";s:31:"panel-input-active-border-color";s:35:"$document-input-active-border-color";s:31:"panel-input-active-border-width";s:35:"$document-input-active-border-width";s:31:"panel-input-active-border-style";s:35:"$document-input-active-border-style";s:29:"panel-input-active-box-shadow";s:33:"$document-input-active-box-shadow";s:6:"// 340";s:0:"";s:14:"nav-text-color";s:20:"$document-text-color";s:20:"nav-background-color";s:26:"$document-background-color";s:16:"nav-border-color";s:22:"$document-border-color";s:16:"nav-header-color";s:22:"$document-header-color";s:17:"nav-caption-color";s:17:"$nav-header-color";s:14:"nav-link-color";s:10:"$nav-color";s:21:"nav-link-active-color";s:15:"$nav-link-color";s:15:"nav-box-padding";s:12:"$box-padding";s:21:"nav-box-border-radius";s:18:"$box-border-radius";s:14:"nav-box-shadow";s:11:"$box-shadow";s:6:"// 341";s:0:"";s:20:"nav-button-font-name";s:26:"$document-button-font-name";s:22:"nav-button-font-weight";s:28:"$document-button-font-weight";s:20:"nav-button-font-size";s:26:"$document-button-font-size";s:25:"nav-button-letter-spacing";s:31:"$document-button-letter-spacing";s:24:"nav-button-border-radius";s:30:"$document-button-border-radius";s:22:"nav-button-line-height";s:28:"$document-button-line-height";s:29:"nav-button-horizontal-padding";s:35:"$document-button-horizontal-padding";s:27:"nav-button-vertical-padding";s:33:"$document-button-vertical-padding";s:16:"nav-button-color";s:22:"$document-button-color";s:27:"nav-button-background-color";s:33:"$document-button-background-color";s:22:"nav-button-text-shadow";s:28:"$document-button-text-shadow";s:21:"nav-button-transition";s:27:"$document-button-transition";s:23:"nav-button-border-color";s:29:"$document-button-border-color";s:23:"nav-button-border-width";s:29:"$document-button-border-width";s:23:"nav-button-border-style";s:29:"$document-button-border-style";s:21:"nav-button-box-shadow";s:27:"$document-button-box-shadow";s:23:"nav-button-active-color";s:29:"$document-button-active-color";s:34:"nav-button-active-background-color";s:40:"$document-button-active-background-color";s:29:"nav-button-active-text-shadow";s:35:"$document-button-active-text-shadow";s:30:"nav-button-active-border-color";s:36:"$document-button-active-border-color";s:30:"nav-button-active-border-width";s:36:"$document-button-active-border-width";s:30:"nav-button-active-border-style";s:36:"$document-button-active-border-style";s:28:"nav-button-active-box-shadow";s:34:"$document-button-active-box-shadow";s:6:"// 342";s:0:"";s:19:"nav-input-font-name";s:25:"$document-input-font-name";s:21:"nav-input-font-weight";s:27:"$document-input-font-weight";s:19:"nav-input-font-size";s:25:"$document-input-font-size";s:24:"nav-input-letter-spacing";s:30:"$document-input-letter-spacing";s:23:"nav-input-border-radius";s:29:"$document-input-border-radius";s:21:"nav-input-line-height";s:27:"$document-input-line-height";s:28:"nav-input-horizontal-padding";s:34:"$document-input-horizontal-padding";s:26:"nav-input-vertical-padding";s:32:"$document-input-vertical-padding";s:15:"nav-input-color";s:21:"$document-input-color";s:26:"nav-input-background-color";s:32:"$document-input-background-color";s:21:"nav-input-text-shadow";s:27:"$document-input-text-shadow";s:20:"nav-input-transition";s:26:"$document-input-transition";s:22:"nav-input-border-color";s:28:"$document-input-border-color";s:22:"nav-input-border-width";s:28:"$document-input-border-width";s:22:"nav-input-border-style";s:28:"$document-input-border-style";s:20:"nav-input-box-shadow";s:26:"$document-input-box-shadow";s:22:"nav-input-active-color";s:28:"$document-input-active-color";s:33:"nav-input-active-background-color";s:39:"$document-input-active-background-color";s:28:"nav-input-active-text-shadow";s:34:"$document-input-active-text-shadow";s:29:"nav-input-active-border-color";s:35:"$document-input-active-border-color";s:29:"nav-input-active-border-width";s:35:"$document-input-active-border-width";s:29:"nav-input-active-border-style";s:35:"$document-input-active-border-style";s:27:"nav-input-active-box-shadow";s:33:"$document-input-active-box-shadow";s:6:"// 350";s:0:"";s:20:"spotlight-text-color";s:20:"$document-text-color";s:26:"spotlight-background-color";s:26:"$document-background-color";s:22:"spotlight-border-color";s:22:"$document-border-color";s:22:"spotlight-header-color";s:22:"$document-header-color";s:23:"spotlight-caption-color";s:23:"$spotlight-header-color";s:20:"spotlight-link-color";s:16:"$spotlight-color";s:27:"spotlight-link-active-color";s:21:"$spotlight-link-color";s:21:"spotlight-box-padding";s:12:"$box-padding";s:27:"spotlight-box-border-radius";s:18:"$box-border-radius";s:20:"spotlight-box-shadow";s:11:"$box-shadow";s:6:"// 351";s:0:"";s:26:"spotlight-button-font-name";s:26:"$document-button-font-name";s:28:"spotlight-button-font-weight";s:28:"$document-button-font-weight";s:26:"spotlight-button-font-size";s:26:"$document-button-font-size";s:31:"spotlight-button-letter-spacing";s:31:"$document-button-letter-spacing";s:30:"spotlight-button-border-radius";s:30:"$document-button-border-radius";s:28:"spotlight-button-line-height";s:28:"$document-button-line-height";s:35:"spotlight-button-horizontal-padding";s:35:"$document-button-horizontal-padding";s:33:"spotlight-button-vertical-padding";s:33:"$document-button-vertical-padding";s:22:"spotlight-button-color";s:22:"$document-button-color";s:33:"spotlight-button-background-color";s:33:"$document-button-background-color";s:28:"spotlight-button-text-shadow";s:28:"$document-button-text-shadow";s:27:"spotlight-button-transition";s:27:"$document-button-transition";s:29:"spotlight-button-border-color";s:29:"$document-button-border-color";s:29:"spotlight-button-border-width";s:29:"$document-button-border-width";s:29:"spotlight-button-border-style";s:29:"$document-button-border-style";s:27:"spotlight-button-box-shadow";s:27:"$document-button-box-shadow";s:29:"spotlight-button-active-color";s:29:"$document-button-active-color";s:40:"spotlight-button-active-background-color";s:40:"$document-button-active-background-color";s:35:"spotlight-button-active-text-shadow";s:35:"$document-button-active-text-shadow";s:36:"spotlight-button-active-border-color";s:36:"$document-button-active-border-color";s:36:"spotlight-button-active-border-width";s:36:"$document-button-active-border-width";s:36:"spotlight-button-active-border-style";s:36:"$document-button-active-border-style";s:34:"spotlight-button-active-box-shadow";s:34:"$document-button-active-box-shadow";s:6:"// 352";s:0:"";s:25:"spotlight-input-font-name";s:25:"$document-input-font-name";s:27:"spotlight-input-font-weight";s:27:"$document-input-font-weight";s:25:"spotlight-input-font-size";s:25:"$document-input-font-size";s:30:"spotlight-input-letter-spacing";s:30:"$document-input-letter-spacing";s:29:"spotlight-input-border-radius";s:29:"$document-input-border-radius";s:27:"spotlight-input-line-height";s:27:"$document-input-line-height";s:34:"spotlight-input-horizontal-padding";s:34:"$document-input-horizontal-padding";s:32:"spotlight-input-vertical-padding";s:32:"$document-input-vertical-padding";s:21:"spotlight-input-color";s:21:"$document-input-color";s:32:"spotlight-input-background-color";s:32:"$document-input-background-color";s:27:"spotlight-input-text-shadow";s:27:"$document-input-text-shadow";s:26:"spotlight-input-transition";s:26:"$document-input-transition";s:28:"spotlight-input-border-color";s:28:"$document-input-border-color";s:28:"spotlight-input-border-width";s:28:"$document-input-border-width";s:28:"spotlight-input-border-style";s:28:"$document-input-border-style";s:26:"spotlight-input-box-shadow";s:26:"$document-input-box-shadow";s:28:"spotlight-input-active-color";s:28:"$document-input-active-color";s:39:"spotlight-input-active-background-color";s:39:"$document-input-active-background-color";s:34:"spotlight-input-active-text-shadow";s:34:"$document-input-active-text-shadow";s:35:"spotlight-input-active-border-color";s:35:"$document-input-active-border-color";s:35:"spotlight-input-active-border-width";s:35:"$document-input-active-border-width";s:35:"spotlight-input-active-border-style";s:35:"$document-input-active-border-style";s:33:"spotlight-input-active-box-shadow";s:33:"$document-input-active-box-shadow";s:6:"// 360";s:0:"";s:20:"formulary-text-color";s:20:"$document-text-color";s:26:"formulary-background-color";s:26:"$document-background-color";s:22:"formulary-border-color";s:22:"$document-border-color";s:22:"formulary-header-color";s:22:"$document-header-color";s:23:"formulary-caption-color";s:23:"$formulary-header-color";s:20:"formulary-link-color";s:16:"$formulary-color";s:27:"formulary-link-active-color";s:21:"$formulary-link-color";s:21:"formulary-box-padding";s:12:"$box-padding";s:27:"formulary-box-border-radius";s:18:"$box-border-radius";s:20:"formulary-box-shadow";s:11:"$box-shadow";s:6:"// 361";s:0:"";s:26:"formulary-button-font-name";s:26:"$document-button-font-name";s:28:"formulary-button-font-weight";s:28:"$document-button-font-weight";s:26:"formulary-button-font-size";s:26:"$document-button-font-size";s:31:"formulary-button-letter-spacing";s:31:"$document-button-letter-spacing";s:30:"formulary-button-border-radius";s:30:"$document-button-border-radius";s:28:"formulary-button-line-height";s:28:"$document-button-line-height";s:35:"formulary-button-horizontal-padding";s:35:"$document-button-horizontal-padding";s:33:"formulary-button-vertical-padding";s:33:"$document-button-vertical-padding";s:22:"formulary-button-color";s:22:"$document-button-color";s:33:"formulary-button-background-color";s:33:"$document-button-background-color";s:28:"formulary-button-text-shadow";s:28:"$document-button-text-shadow";s:27:"formulary-button-transition";s:27:"$document-button-transition";s:29:"formulary-button-border-color";s:29:"$document-button-border-color";s:29:"formulary-button-border-width";s:29:"$document-button-border-width";s:29:"formulary-button-border-style";s:29:"$document-button-border-style";s:27:"formulary-button-box-shadow";s:27:"$document-button-box-shadow";s:29:"formulary-button-active-color";s:29:"$document-button-active-color";s:40:"formulary-button-active-background-color";s:40:"$document-button-active-background-color";s:35:"formulary-button-active-text-shadow";s:35:"$document-button-active-text-shadow";s:36:"formulary-button-active-border-color";s:36:"$document-button-active-border-color";s:36:"formulary-button-active-border-width";s:36:"$document-button-active-border-width";s:36:"formulary-button-active-border-style";s:36:"$document-button-active-border-style";s:34:"formulary-button-active-box-shadow";s:34:"$document-button-active-box-shadow";s:6:"// 362";s:0:"";s:25:"formulary-input-font-name";s:25:"$document-input-font-name";s:27:"formulary-input-font-weight";s:27:"$document-input-font-weight";s:25:"formulary-input-font-size";s:25:"$document-input-font-size";s:30:"formulary-input-letter-spacing";s:30:"$document-input-letter-spacing";s:29:"formulary-input-border-radius";s:29:"$document-input-border-radius";s:27:"formulary-input-line-height";s:27:"$document-input-line-height";s:34:"formulary-input-horizontal-padding";s:34:"$document-input-horizontal-padding";s:32:"formulary-input-vertical-padding";s:32:"$document-input-vertical-padding";s:21:"formulary-input-color";s:21:"$document-input-color";s:32:"formulary-input-background-color";s:32:"$document-input-background-color";s:27:"formulary-input-text-shadow";s:27:"$document-input-text-shadow";s:26:"formulary-input-transition";s:26:"$document-input-transition";s:28:"formulary-input-border-color";s:28:"$document-input-border-color";s:28:"formulary-input-border-width";s:28:"$document-input-border-width";s:28:"formulary-input-border-style";s:28:"$document-input-border-style";s:26:"formulary-input-box-shadow";s:26:"$document-input-box-shadow";s:28:"formulary-input-active-color";s:28:"$document-input-active-color";s:39:"formulary-input-active-background-color";s:39:"$document-input-active-background-color";s:34:"formulary-input-active-text-shadow";s:34:"$document-input-active-text-shadow";s:35:"formulary-input-active-border-color";s:35:"$document-input-active-border-color";s:35:"formulary-input-active-border-width";s:35:"$document-input-active-border-width";s:35:"formulary-input-active-border-style";s:35:"$document-input-active-border-style";s:33:"formulary-input-active-box-shadow";s:33:"$document-input-active-box-shadow";s:6:"// 370";s:0:"";s:15:"card-text-color";s:20:"$document-text-color";s:21:"card-background-color";s:26:"$document-background-color";s:17:"card-border-color";s:22:"$document-border-color";s:17:"card-header-color";s:22:"$document-header-color";s:18:"card-caption-color";s:18:"$card-header-color";s:15:"card-link-color";s:11:"$card-color";s:22:"card-link-active-color";s:16:"$card-link-color";s:16:"card-box-padding";s:12:"$box-padding";s:22:"card-box-border-radius";s:18:"$box-border-radius";s:15:"card-box-shadow";s:11:"$box-shadow";s:6:"// 371";s:0:"";s:21:"card-button-font-name";s:26:"$document-button-font-name";s:23:"card-button-font-weight";s:28:"$document-button-font-weight";s:21:"card-button-font-size";s:26:"$document-button-font-size";s:26:"card-button-letter-spacing";s:31:"$document-button-letter-spacing";s:25:"card-button-border-radius";s:30:"$document-button-border-radius";s:23:"card-button-line-height";s:28:"$document-button-line-height";s:30:"card-button-horizontal-padding";s:35:"$document-button-horizontal-padding";s:28:"card-button-vertical-padding";s:33:"$document-button-vertical-padding";s:17:"card-button-color";s:22:"$document-button-color";s:28:"card-button-background-color";s:33:"$document-button-background-color";s:23:"card-button-text-shadow";s:28:"$document-button-text-shadow";s:22:"card-button-transition";s:27:"$document-button-transition";s:24:"card-button-border-color";s:29:"$document-button-border-color";s:24:"card-button-border-width";s:29:"$document-button-border-width";s:24:"card-button-border-style";s:29:"$document-button-border-style";s:22:"card-button-box-shadow";s:27:"$document-button-box-shadow";s:24:"card-button-active-color";s:29:"$document-button-active-color";s:35:"card-button-active-background-color";s:40:"$document-button-active-background-color";s:30:"card-button-active-text-shadow";s:35:"$document-button-active-text-shadow";s:31:"card-button-active-border-color";s:36:"$document-button-active-border-color";s:31:"card-button-active-border-width";s:36:"$document-button-active-border-width";s:31:"card-button-active-border-style";s:36:"$document-button-active-border-style";s:29:"card-button-active-box-shadow";s:34:"$document-button-active-box-shadow";s:6:"// 372";s:0:"";s:20:"card-input-font-name";s:25:"$document-input-font-name";s:22:"card-input-font-weight";s:27:"$document-input-font-weight";s:20:"card-input-font-size";s:25:"$document-input-font-size";s:25:"card-input-letter-spacing";s:30:"$document-input-letter-spacing";s:24:"card-input-border-radius";s:29:"$document-input-border-radius";s:22:"card-input-line-height";s:27:"$document-input-line-height";s:29:"card-input-horizontal-padding";s:34:"$document-input-horizontal-padding";s:27:"card-input-vertical-padding";s:32:"$document-input-vertical-padding";s:16:"card-input-color";s:21:"$document-input-color";s:27:"card-input-background-color";s:32:"$document-input-background-color";s:22:"card-input-text-shadow";s:27:"$document-input-text-shadow";s:21:"card-input-transition";s:26:"$document-input-transition";s:23:"card-input-border-color";s:28:"$document-input-border-color";s:23:"card-input-border-width";s:28:"$document-input-border-width";s:23:"card-input-border-style";s:28:"$document-input-border-style";s:21:"card-input-box-shadow";s:26:"$document-input-box-shadow";s:23:"card-input-active-color";s:28:"$document-input-active-color";s:34:"card-input-active-background-color";s:39:"$document-input-active-background-color";s:29:"card-input-active-text-shadow";s:34:"$document-input-active-text-shadow";s:30:"card-input-active-border-color";s:35:"$document-input-active-border-color";s:30:"card-input-active-border-width";s:35:"$document-input-active-border-width";s:30:"card-input-active-border-style";s:35:"$document-input-active-border-style";s:28:"card-input-active-box-shadow";s:33:"$document-input-active-box-shadow";}}a:2:{s:5:"flags";a:3:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:9:"templates";s:14:"modLayout_name";s:12:"dialog_basic";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"Administração";i:2;i:1;}s:2:"en";a:1:{i:1;s:14:"Administration";}}s:5:"title";a:2:{s:2:"pt";a:3:{i:1;s:13:"Administração";i:2;i:1;i:6;i:1;}s:2:"en";a:3:{i:1;s:14:"Administration";i:2;i:1;i:6;i:1;}}}}a:1:{s:4:"text";a:3:{s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:12:"Editar conta";i:2;i:1;}s:2:"en";a:2:{i:1;s:12:"Edit account";i:2;i:1;}}s:11:"description";a:0:{}s:7:"content";a:0:{}}}a:2:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:12:"Editar conta";i:2;i:1;}s:2:"en";a:2:{i:1;s:12:"Edit account";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:12:"Editar conta";i:2;i:1;}s:2:"en";a:2:{i:1;s:12:"Edit account";i:2;i:1;}}}s:8:"children";a:9:{i:0;s:6:"_start";i:1;s:10:"~editTitle";i:2;s:12:"~editCaption";i:3;s:9:"~editName";i:4;s:16:"~editDescription";i:5;s:10:"_separator";i:6;s:20:"~specialFieldsOnEdit";i:7;s:11:"_saveCancel";i:8;s:4:"_end";}}a:2:{s:5:"flags";a:6:{s:4:"type";s:10:"text_small";s:6:"filter";s:7:"caption";s:10:"field_name";s:7:"caption";s:6:"target";s:12:"text/caption";s:8:"required";i:1;s:9:"error_msg";s:27:"section_editCaptionRequired";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:35:"Legenda (como será exibida no menu)";i:2;i:1;}s:2:"en";a:2:{i:1;s:39:"Caption (as it will appear on the menu)";i:2;i:1;}}}}a:2:{s:5:"flags";a:2:{s:4:"icon";s:5:"error";s:7:"caption";s:31:"renderLabels_msg_required_field";}s:4:"text";a:1:{s:7:"content";a:2:{s:2:"pt";a:3:{i:1;s:99:"Esta seção precisa de uma legenda.#r#n#r#nSem legenda, não é possível apresentá-la no menu de seções.#r#n";i:2;i:1;i:4;i:1;}s:2:"en";a:5:{i:1;s:95:"This section needs a caption.#r#n#r#nWithout caption, it can not be displayed in the sections menu.";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:2:{s:5:"flags";a:8:{s:9:"condition";s:8:"!wysiwyg";s:4:"type";s:8:"textarea";s:6:"filter";s:4:"text";s:10:"field_name";s:7:"content";s:6:"target";s:12:"text/content";s:12:"format_force";i:1;s:10:"html_force";i:2;s:15:"ecolabore_force";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Conteúdo";i:2;i:1;}s:2:"en";a:2:{i:1;s:7:"Content";i:2;i:1;}}}}a:1:{s:5:"flags";a:5:{s:4:"type";s:14:"textarea_small";s:6:"filter";s:4:"text";s:10:"field_name";s:11:"description";s:6:"target";s:16:"text/description";s:7:"caption";s:24:"labels/field/description";}}a:1:{s:5:"flags";a:6:{s:4:"type";s:10:"text_small";s:6:"filter";s:11:"domain_name";s:10:"field_name";s:4:"name";s:6:"target";s:4:"name";s:8:"required";i:1;s:7:"caption";s:19:"labels/field_folder";}}a:1:{s:5:"flags";a:6:{s:4:"type";s:4:"text";s:6:"filter";s:4:"text";s:10:"field_name";s:5:"title";s:6:"target";s:10:"text/title";s:8:"required";i:1;s:7:"caption";s:18:"labels/field/title";}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:16:"Mover para baixo";i:2;i:1;}s:2:"en";a:1:{i:1;s:9:"Move down";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:15:"Mover para cima";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Move up";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"Remover conta";i:2;i:1;}s:2:"en";a:2:{i:1;s:14:"Remove account";i:2;i:1;}}}}a:3:{s:5:"flags";a:3:{s:6:"action";s:15:"_section-remove";s:4:"icon";s:8:"question";s:7:"caption";s:34:"renderLabels_msg_operation_confirm";}s:4:"text";a:1:{s:7:"content";a:2:{s:2:"pt";a:3:{i:1;s:119:"Esta operação irá remover permanentemente esta conta e todas as transações vinculadas a ela.#r#n#r#nDeseja mesmo continuar?";i:2;i:1;i:4;i:1;}s:2:"en";a:5:{i:1;s:108:"This operation will remove permanently this account and all linked transactions.#r#n#r#nDo you wich to continue?";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}s:8:"children";a:4:{i:0;s:6:"_start";i:1;s:10:"_separator";i:2;s:37:"modHumperstilshen_submitConfirmCancel";i:3;s:4:"_end";}}a:1:{s:5:"flags";a:2:{s:6:"filter";s:30:"financialAccount_specialFields";s:5:"sufix";s:20:"_specialFieldsOnEdit";}}a:1:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:10:"Nova conta";i:2;i:1;}s:2:"en";a:2:{i:1;s:11:"New account";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:16:"Criar nova conta";i:2;i:1;}s:2:"en";a:2:{i:1;s:18:"Create new account";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:10:"Nova conta";i:2;i:1;}s:2:"en";a:1:{i:1;s:11:"New account";}}}}a:2:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:10:"Nova seção";i:2;i:1;}s:2:"en";a:2:{i:1;s:11:"New section";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:10:"Nova seção";i:2;i:1;}s:2:"en";a:2:{i:1;s:11:"New section";i:2;i:1;}}}s:8:"children";a:10:{i:0;s:6:"_start";i:1;s:10:"~editTitle";i:2;s:18:"~editCaptionHidden";i:3;s:15:"~editNameHidden";i:4;s:16:"~editDescription";i:5;s:10:"_separator";i:6;s:22:"~specialFieldsOnCreate";i:7;s:25:"~specialFieldsAfterCreate";i:8;s:11:"_saveCancel";i:9;s:4:"_end";}}a:1:{s:5:"flags";a:3:{s:13:"field_display";s:5:"never";s:6:"filter";s:7:"caption";s:6:"target";s:12:"text/caption";}}a:1:{s:5:"flags";a:5:{s:4:"type";s:14:"textarea_small";s:6:"filter";s:4:"text";s:10:"field_name";s:11:"description";s:6:"target";s:16:"text/description";s:7:"caption";s:24:"labels/field/description";}}a:1:{s:5:"flags";a:4:{s:13:"field_display";s:5:"never";s:6:"filter";s:11:"domain_name";s:10:"field_name";s:4:"name";s:6:"target";s:4:"name";}}a:1:{s:5:"flags";a:6:{s:4:"type";s:4:"text";s:6:"filter";s:4:"text";s:10:"field_name";s:5:"title";s:6:"target";s:10:"text/title";s:8:"required";i:1;s:7:"caption";s:18:"labels/field/title";}}a:1:{s:5:"flags";a:3:{s:6:"filter";s:30:"financialAccount_specialFields";s:5:"sufix";s:25:"_specialFieldsAfterCreate";s:10:"posteriori";i:1;}}a:1:{s:5:"flags";a:2:{s:6:"filter";s:30:"financialAccount_specialFields";s:5:"sufix";s:22:"_specialFieldsOnCreate";}}a:2:{s:5:"flags";a:4:{s:6:"filter";s:8:"checkbox";s:10:"field_name";s:11:"pay_machine";s:6:"target";s:17:"flags/pay/machine";s:5:"clear";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:59:"Esta conta recebe pagamento através de maquininha de cartão";i:2;i:1;}s:2:"en";a:1:{i:1;s:50:"This account receives payment through card machine";}}}}a:2:{s:5:"flags";a:4:{s:6:"filter";s:8:"checkbox";s:10:"field_name";s:11:"pay_deposit";s:6:"target";s:17:"flags/pay/deposit";s:5:"clear";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:62:"Permitir depósito em conta aguardando o comprovante do cliente";i:2;i:1;}s:2:"en";a:1:{i:1;s:54:"Allow deposit into account awaiting customer#ss receipt";}}}}a:2:{s:5:"flags";a:4:{s:6:"filter";s:8:"checkbox";s:10:"field_name";s:8:"pay_slip";s:6:"target";s:14:"flags/pay/slip";s:5:"clear";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:118:"Esta conta permite a emissão de boleto, porém, a emissão deverá ser realizada manualmente através do serviço bancário.";i:2;i:1;}s:2:"en";a:1:{i:1;s:112:"This account allows the issue of a ticket, however, the issue must be done manually through the banking service.";}}}}a:1:{s:4:"text";a:3:{s:5:"title";a:1:{s:2:"pt";a:2:{i:1;s:14:"Conta bancária";i:2;i:1;}}s:7:"caption";a:1:{s:2:"pt";a:3:{i:1;s:38:"Sobre a conta "[text$document.caption]";i:2;i:1;i:6;i:1;}}s:7:"content";a:1:{s:2:"pt";a:5:{i:1;s:490:"#r#nEsta conta representa uma conta bancária sem integração direta.#r#n#r#nIsto quer dizer que os valores apresentados são estimados de acordo com as transações registradas.#r#n#r#nMovimentações bancárias nesta conta que não forem registradas neste sistema poderão fazer com que os valores apresentados aqui não correspondam ao valor verdadeiro na conta.#r#n#r#nSempre que possível, registre aqui as transações realizadas fora do sistema e atualize o valor real da conta para evitar grandes defazagens.#r#n";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:1:{s:8:"children";a:3:{i:0;s:15:"~editPayDeposit";i:1;s:12:"~editPaySlip";i:2;s:19:"~editPayCardMachine";}}a:1:{s:8:"children";a:3:{i:0;s:15:"~editPayDeposit";i:1;s:12:"~editPaySlip";i:2;s:19:"~editPayCardMachine";}}a:2:{s:5:"flags";a:1:{s:6:"preset";s:14:"~contentPreset";}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:5:"Banco";i:2;i:1;}s:2:"en";a:2:{i:1;s:4:"Bank";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:19:"Nova conta bancária";i:2;i:1;}s:2:"en";a:2:{i:1;s:16:"New bank account";i:2;i:1;}}s:11:"description";a:1:{s:2:"pt";a:2:{i:1;s:84:"Gerencia transações básicas tais como depósitos, transferências e emissão de boletos";i:2;i:1;}}}}a:2:{s:5:"flags";a:1:{s:21:"financialAccount_type";s:4:"bank";}s:4:"text";a:1:{s:5:"title";a:1:{s:2:"pt";a:2:{i:1;s:14:"Conta bancária";i:2;i:1;}}}}a:1:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:3:{i:1;s:27:"Depósito em [text $account]";i:2;i:1;i:6;i:1;}s:2:"en";a:2:{i:1;s:26:"Deposit in [text $account]";i:6;i:1;}}s:5:"title";a:2:{s:2:"pt";a:3:{i:1;s:27:"Depósito em [text $account]";i:2;i:1;i:6;i:1;}s:2:"en";a:3:{i:1;s:26:"Deposit in [text $account]";i:2;i:1;i:6;i:1;}}}}a:2:{s:5:"flags";a:4:{s:6:"filter";s:8:"checkbox";s:10:"field_name";s:8:"pay_cash";s:6:"target";s:14:"flags/pay/cash";s:5:"clear";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:54:"Permitir o pagamento em dinheiro na entrega do produto";i:2;i:1;}s:2:"en";a:1:{i:1;s:39:"Accept cash payment on product delivery";}}}}a:1:{s:4:"text";a:3:{s:5:"title";a:1:{s:2:"pt";a:2:{i:1;s:5:"Caixa";i:2;i:1;}}s:7:"caption";a:1:{s:2:"pt";a:3:{i:1;s:38:"Sobre a conta "[text$document.caption]";i:2;i:1;i:6;i:1;}}s:7:"content";a:1:{s:2:"pt";a:5:{i:1;s:505:"#r#nEsta é uma conta do tipo "Caixa".#r#n#r#nUm caixa gerencia dinheiro vivo.#r#n#r#nO gerenciamento desta conta requer muito cuidado, porque as transações feitas em dinheiro poderão não ser registradas no sistema.#r#n#r#nIsso facilmente poderá gerar uma defasagem entre o valor estimado em caixa e o valor de fato existente.#r#n#r#nRecomendamos que você mantenha pouco dinheiro em caixa, transferindo periodicamente os valores recolhidos para outras contas onde o sistema possa manter um acompanhamento mais preciso.#r#n#r#n#r#n";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:1:{s:8:"children";a:1:{i:0;s:12:"~editPayCash";}}a:1:{s:8:"children";a:1:{i:0;s:12:"~editPayCash";}}a:1:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:21:"Pagamento em dinheiro";i:2;i:1;}s:2:"en";a:1:{i:1;s:12:"Cash payment";}}s:5:"title";a:2:{s:2:"pt";a:3:{i:1;s:21:"Pagamento em dinheiro";i:2;i:1;i:6;i:1;}s:2:"en";a:3:{i:1;s:13:"Money payment";i:2;i:1;i:6;i:1;}}}}a:2:{s:5:"flags";a:1:{s:6:"preset";s:14:"~contentPreset";}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Dinheiro";i:2;i:1;}s:2:"en";a:2:{i:1;s:4:"Cash";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:10:"Novo caixa";i:2;i:1;}s:2:"en";a:2:{i:1;s:16:"New cash manager";i:2;i:1;}}s:11:"description";a:1:{s:2:"pt";a:2:{i:1;s:122:"Oferece ferramentas para gerenciar dinheiro vivo, tal como o gerenciamento de pagamentos em dinheiro na entrega do produto";i:2;i:1;}}}}a:2:{s:5:"flags";a:1:{s:21:"financialAccount_type";s:4:"cash";}s:4:"text";a:1:{s:5:"title";a:1:{s:2:"pt";a:2:{i:1;s:17:"Dinheiro em caixa";i:2;i:1;}}}}a:2:{s:5:"flags";a:3:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:9:"templates";s:14:"modLayout_name";s:7:"default";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"Cobranças";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Charges";}}s:5:"title";a:2:{s:2:"pt";a:3:{i:1;s:9:"Cobranças";i:2;i:1;i:6;i:1;}s:2:"en";a:3:{i:1;s:7:"Charges";i:2;i:1;i:6;i:1;}}}}a:1:{s:8:"children";a:9:{i:0;s:6:"_start";i:1;s:24:"domainCreate_editCaption";i:2;s:22:"domainCreate_editTitle";i:3;s:28:"domainCreate_editDescription";i:4;s:24:"domainCreate_editAddress";i:5;s:22:"domainCreate_editPhone";i:6;s:21:"domainCreate_editMail";i:7;s:5:"_save";i:8;s:4:"_end";}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:19:"Solicitar pagamento";i:2;i:1;}s:2:"en";a:1:{i:1;s:14:"Request charge";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"Descrição";i:2;i:1;}s:2:"en";a:1:{i:1;s:11:"Description";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:10:"Vencimento";i:2;i:1;}s:2:"en";a:1:{i:1;s:3:"Due";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:7:"Cliente";i:2;i:1;}s:2:"en";a:1:{i:1;s:6:"Client";}}}}a:2:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:24:"Editar pasta de receitas";i:2;i:1;}s:2:"en";a:2:{i:1;s:20:"Edit incoming folder";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:24:"Editar pasta de receitas";i:2;i:1;}s:2:"en";a:2:{i:1;s:20:"Edit incoming folder";i:2;i:1;}}}s:8:"children";a:5:{i:0;s:6:"_start";i:1;s:10:"~editTitle";i:2;s:18:"~editCaptionHidden";i:3;s:11:"_saveCancel";i:4;s:4:"_end";}}a:2:{s:5:"flags";a:5:{s:4:"type";s:10:"text_small";s:13:"field_display";s:5:"never";s:6:"filter";s:7:"caption";s:10:"field_name";s:7:"caption";s:6:"target";s:12:"text/caption";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:35:"Legenda (como será exibida no menu)";i:2;i:1;}s:2:"en";a:2:{i:1;s:39:"Caption (as it will appear on the menu)";i:2;i:1;}}}}a:1:{s:5:"flags";a:6:{s:4:"type";s:4:"text";s:6:"filter";s:4:"text";s:10:"field_name";s:5:"title";s:6:"target";s:10:"text/title";s:7:"caption";s:18:"labels/field/title";s:8:"required";i:1;}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Grupos";i:2;i:1;}s:2:"en";a:2:{i:1;s:6:"Groups";i:2;i:1;}}}}a:1:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Receitas";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Incomes";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:8:"Receitas";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Incomes";}}}}a:2:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:24:"Editar pasta de despesas";i:2;i:1;}s:2:"en";a:2:{i:1;s:20:"Edit outgoing folder";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:24:"Editar pasta de despesas";i:2;i:1;}s:2:"en";a:2:{i:1;s:20:"Edit outgoing folder";i:2;i:1;}}}s:8:"children";a:5:{i:0;s:6:"_start";i:1;s:10:"~editTitle";i:2;s:18:"~editCaptionHidden";i:3;s:11:"_saveCancel";i:4;s:4:"_end";}}a:2:{s:5:"flags";a:5:{s:4:"type";s:10:"text_small";s:13:"field_display";s:5:"never";s:6:"filter";s:7:"caption";s:10:"field_name";s:7:"caption";s:6:"target";s:12:"text/caption";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:35:"Legenda (como será exibida no menu)";i:2;i:1;}s:2:"en";a:2:{i:1;s:39:"Caption (as it will appear on the menu)";i:2;i:1;}}}}a:1:{s:5:"flags";a:6:{s:4:"type";s:4:"text";s:6:"filter";s:4:"text";s:10:"field_name";s:5:"title";s:6:"target";s:10:"text/title";s:7:"caption";s:18:"labels/field/title";s:8:"required";i:1;}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Grupos";i:2;i:1;}s:2:"en";a:2:{i:1;s:6:"Groups";i:2;i:1;}}}}a:1:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Despesas";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Outgoes";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:8:"Despesas";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Outgoes";}}}}a:2:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:24:"Editar pasta de projetos";i:2;i:1;}s:2:"en";a:2:{i:1;s:20:"Edit projects folder";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:24:"Editar pasta de projetos";i:2;i:1;}s:2:"en";a:2:{i:1;s:20:"Edit projects folder";i:2;i:1;}}}s:8:"children";a:5:{i:0;s:6:"_start";i:1;s:10:"~editTitle";i:2;s:18:"~editCaptionHidden";i:3;s:11:"_saveCancel";i:4;s:4:"_end";}}a:2:{s:5:"flags";a:5:{s:4:"type";s:10:"text_small";s:13:"field_display";s:5:"never";s:6:"filter";s:7:"caption";s:10:"field_name";s:7:"caption";s:6:"target";s:12:"text/caption";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:35:"Legenda (como será exibida no menu)";i:2;i:1;}s:2:"en";a:2:{i:1;s:39:"Caption (as it will appear on the menu)";i:2;i:1;}}}}a:1:{s:5:"flags";a:6:{s:4:"type";s:4:"text";s:6:"filter";s:4:"text";s:10:"field_name";s:5:"title";s:6:"target";s:10:"text/title";s:7:"caption";s:18:"labels/field/title";s:8:"required";i:1;}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Projetos";i:2;i:1;}s:2:"en";a:2:{i:1;s:8:"Projects";i:2;i:1;}}}}a:1:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Projetos";i:2;i:1;}s:2:"en";a:1:{i:1;s:8:"Projects";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:8:"Projetos";i:2;i:1;}s:2:"en";a:1:{i:1;s:8:"Projects";}}}}a:2:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:24:"Editar pasta de recursos";i:2;i:1;}s:2:"en";a:2:{i:1;s:21:"Edit resources folder";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:24:"Editar pasta de recursos";i:2;i:1;}s:2:"en";a:2:{i:1;s:21:"Edit resources folder";i:2;i:1;}}}s:8:"children";a:5:{i:0;s:6:"_start";i:1;s:10:"~editTitle";i:2;s:18:"~editCaptionHidden";i:3;s:11:"_saveCancel";i:4;s:4:"_end";}}a:2:{s:5:"flags";a:5:{s:4:"type";s:10:"text_small";s:13:"field_display";s:5:"never";s:6:"filter";s:7:"caption";s:10:"field_name";s:7:"caption";s:6:"target";s:12:"text/caption";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:35:"Legenda (como será exibida no menu)";i:2;i:1;}s:2:"en";a:2:{i:1;s:39:"Caption (as it will appear on the menu)";i:2;i:1;}}}}a:1:{s:5:"flags";a:6:{s:4:"type";s:4:"text";s:6:"filter";s:4:"text";s:10:"field_name";s:5:"title";s:6:"target";s:10:"text/title";s:7:"caption";s:18:"labels/field/title";s:8:"required";i:1;}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Contas";i:2;i:1;}s:2:"en";a:2:{i:1;s:8:"Accounts";i:2;i:1;}}}}a:1:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Recursos";i:2;i:1;}s:2:"en";a:1:{i:1;s:9:"Resources";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:8:"Recursos";i:2;i:1;}s:2:"en";a:1:{i:1;s:9:"Resources";}}}}a:1:{s:4:"text";a:3:{s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:10:"Editar aba";i:2;i:1;}s:2:"en";a:2:{i:1;s:8:"Edit tab";i:2;i:1;}}s:11:"description";a:0:{}s:7:"content";a:0:{}}}a:2:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:10:"Editar aba";i:2;i:1;}s:2:"en";a:2:{i:1;s:8:"Edit tab";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:10:"Editar aba";i:2;i:1;}s:2:"en";a:2:{i:1;s:8:"Edit tab";i:2;i:1;}}}s:8:"children";a:12:{i:0;s:6:"_start";i:1;s:10:"~editTitle";i:2;s:12:"~editCaption";i:3;s:9:"~editName";i:4;s:16:"~editDescription";i:5;s:8:"~editImg";i:6;s:20:"~specialFieldsOnEdit";i:7;s:11:"~editAccess";i:8;s:10:"~editGroup";i:9;s:12:"~editUpdated";i:10;s:11:"_saveCancel";i:11;s:4:"_end";}}a:3:{s:5:"flags";a:6:{s:4:"type";s:6:"select";s:6:"filter";s:6:"select";s:10:"field_name";s:6:"access";s:6:"target";s:6:"access";s:13:"default_value";i:0;s:4:"cast";s:3:"int";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:15:"Permitir acesso";i:2;i:1;}s:2:"en";a:2:{i:1;s:12:"Allow access";i:2;i:1;}}}s:8:"children";a:4:{i:0;s:14:"~editAccessAll";i:1;s:21:"~editAccessSubscribed";i:2;s:17:"~editAccessMember";i:3;s:16:"~editAccessAdmin";}}a:2:{s:5:"flags";a:1:{s:5:"value";s:1:"4";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:23:"Somente administradores";i:2;i:1;}s:2:"en";a:2:{i:1;s:19:"Administrators only";i:2;i:1;}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:1:"0";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:5:"Todos";i:2;i:1;}s:2:"en";a:2:{i:1;s:3:"All";i:2;i:1;}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:1:"3";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:27:"Somente membros deste grupo";i:2;i:1;}s:2:"en";a:2:{i:1;s:26:"Members of this group only";i:2;i:1;}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:1:"2";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:20:"Usuários cadastrados";i:2;i:1;}s:2:"en";a:2:{i:1;s:16:"Subscribed users";i:2;i:1;}}}}a:2:{s:5:"flags";a:6:{s:4:"type";s:10:"text_small";s:6:"filter";s:7:"caption";s:10:"field_name";s:7:"caption";s:6:"target";s:12:"text/caption";s:8:"required";i:1;s:9:"error_msg";s:27:"section_editCaptionRequired";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:35:"Legenda (como será exibida no menu)";i:2;i:1;}s:2:"en";a:2:{i:1;s:39:"Caption (as it will appear on the menu)";i:2;i:1;}}}}a:2:{s:5:"flags";a:2:{s:4:"icon";s:5:"error";s:7:"caption";s:31:"renderLabels_msg_required_field";}s:4:"text";a:1:{s:7:"content";a:2:{s:2:"pt";a:3:{i:1;s:99:"Esta seção precisa de uma legenda.#r#n#r#nSem legenda, não é possível apresentá-la no menu de seções.#r#n";i:2;i:1;i:4;i:1;}s:2:"en";a:5:{i:1;s:95:"This section needs a caption.#r#n#r#nWithout caption, it can not be displayed in the sections menu.";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:2:{s:5:"flags";a:8:{s:9:"condition";s:8:"!wysiwyg";s:4:"type";s:8:"textarea";s:6:"filter";s:4:"text";s:10:"field_name";s:7:"content";s:6:"target";s:12:"text/content";s:12:"format_force";i:1;s:10:"html_force";i:2;s:15:"ecolabore_force";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Conteúdo";i:2;i:1;}s:2:"en";a:2:{i:1;s:7:"Content";i:2;i:1;}}}}a:1:{s:5:"flags";a:5:{s:4:"type";s:14:"textarea_small";s:6:"filter";s:4:"text";s:10:"field_name";s:11:"description";s:6:"target";s:16:"text/description";s:7:"caption";s:24:"labels/field/description";}}a:2:{s:5:"flags";a:2:{s:6:"filter";s:19:"section_selectGroup";s:10:"field_name";s:5:"group";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:5:"Grupo";i:2;i:1;}s:2:"en";a:2:{i:1;s:5:"Group";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"(Nenhum)";i:2;i:1;}s:2:"en";a:2:{i:1;s:6:"(None)";i:2;i:1;}}}}a:2:{s:5:"flags";a:2:{s:6:"filter";s:21:"personaliteExtras_img";s:10:"field_name";s:3:"img";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Imagem";i:2;i:1;}s:2:"en";a:2:{i:1;s:5:"Image";i:2;i:1;}}}}a:1:{s:5:"flags";a:5:{s:4:"type";s:4:"text";s:6:"filter";s:4:"text";s:10:"field_name";s:8:"keywords";s:6:"target";s:13:"text/keywords";s:7:"caption";s:21:"labels/field/keywords";}}a:1:{s:5:"flags";a:1:{s:6:"filter";s:8:"keywords";}}a:1:{s:5:"flags";a:6:{s:4:"type";s:10:"text_small";s:6:"filter";s:11:"domain_name";s:10:"field_name";s:4:"name";s:6:"target";s:4:"name";s:8:"required";i:1;s:7:"caption";s:18:"section_editFolder";}}a:1:{s:5:"flags";a:6:{s:4:"type";s:4:"text";s:6:"filter";s:4:"text";s:10:"field_name";s:5:"title";s:6:"target";s:10:"text/title";s:8:"required";i:1;s:7:"caption";s:18:"labels/field/title";}}a:1:{s:5:"flags";a:5:{s:13:"field_display";s:5:"never";s:4:"type";s:4:"none";s:6:"filter";s:9:"timestamp";s:10:"field_name";s:7:"updated";s:6:"target";s:7:"updated";}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:20:"Mover para a direita";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"Move right";}}}}a:2:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"Mover para...";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"Move to...";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:11:"Mover seção";i:2;i:1;}s:2:"en";a:1:{i:1;s:12:"Move section";}}}s:8:"children";a:4:{i:0;s:6:"_start";i:1;s:11:"~moveToList";i:2;s:11:"_saveCancel";i:3;s:4:"_end";}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:14:"Menu de rodapé";i:2;i:1;}s:2:"en";a:1:{i:1;s:11:"Footer menu";}}}}a:2:{s:5:"flags";a:2:{s:6:"filter";s:14:"section_moveto";s:10:"field_name";s:8:"position";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:24:"Escolha uma nova posição";i:2;i:1;}s:2:"en";a:1:{i:1;s:21:"Choose a new position";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:14:"Menu principal";i:2;i:1;}s:2:"en";a:1:{i:1;s:9:"Main menu";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:21:"Mover para a esquerda";i:2;i:1;}s:2:"en";a:1:{i:1;s:9:"Move left";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"Remover seção";i:2;i:1;}s:2:"en";a:2:{i:1;s:14:"Remove section";i:2;i:1;}}}}a:3:{s:5:"flags";a:3:{s:6:"action";s:15:"_section-remove";s:4:"icon";s:8:"question";s:7:"caption";s:34:"renderLabels_msg_operation_confirm";}s:4:"text";a:1:{s:7:"content";a:2:{s:2:"pt";a:3:{i:1;s:102:"Esta operação irá remover permanentemente esta seção e todo o seu conteúdo.#r#n#r#nDeseja mesmo continuar?";i:2;i:1;i:4;i:1;}s:2:"en";a:5:{i:1;s:100:"This operation will remove permanently this section and all hes content.#r#n#r#nDo you wich to continue?";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}s:8:"children";a:4:{i:0;s:6:"_start";i:1;s:10:"_separator";i:2;s:37:"modHumperstilshen_submitConfirmCancel";i:3;s:4:"_end";}}a:1:{s:5:"flags";a:2:{s:6:"filter";s:18:"home_specialFields";s:5:"sufix";s:20:"_specialFieldsOnEdit";}}a:1:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Nova aba";i:2;i:1;}s:2:"en";a:2:{i:1;s:7:"New tab";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:14:"Criar nova aba";i:2;i:1;}s:2:"en";a:2:{i:1;s:14:"Create new tab";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Nova aba";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"New tab";}}}}a:2:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:10:"Nova seção";i:2;i:1;}s:2:"en";a:2:{i:1;s:11:"New section";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:10:"Nova seção";i:2;i:1;}s:2:"en";a:2:{i:1;s:11:"New section";i:2;i:1;}}}s:8:"children";a:10:{i:0;s:6:"_start";i:1;s:10:"~editTitle";i:2;s:18:"~editCaptionHidden";i:3;s:15:"~editNameHidden";i:4;s:16:"~editDescription";i:5;s:22:"~specialFieldsOnCreate";i:6;s:17:"~editKeywordsPack";i:7;s:25:"~specialFieldsAfterCreate";i:8;s:11:"_saveCancel";i:9;s:4:"_end";}}a:1:{s:5:"flags";a:3:{s:13:"field_display";s:5:"never";s:6:"filter";s:7:"caption";s:6:"target";s:12:"text/caption";}}a:1:{s:5:"flags";a:5:{s:4:"type";s:14:"textarea_small";s:6:"filter";s:4:"text";s:10:"field_name";s:11:"description";s:6:"target";s:16:"text/description";s:7:"caption";s:24:"labels/field/description";}}a:1:{s:5:"flags";a:1:{s:6:"filter";s:8:"keywords";}}a:1:{s:5:"flags";a:4:{s:13:"field_display";s:5:"never";s:6:"filter";s:11:"domain_name";s:10:"field_name";s:4:"name";s:6:"target";s:4:"name";}}a:1:{s:5:"flags";a:6:{s:4:"type";s:4:"text";s:6:"filter";s:4:"text";s:10:"field_name";s:5:"title";s:6:"target";s:10:"text/title";s:8:"required";i:1;s:7:"caption";s:18:"labels/field/title";}}a:1:{s:4:"text";a:1:{s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:737:"#r#nTemos aqui uma lista com os diferentes tipos de seção que podem ser criadas.#r#n#r#nCada tipo de seção oferece funcionalidades especiais, mas é importante observar a seção do tipo "Pasta", pois dentro dela é possível criar subseções de qualquer tipo. Inclusive subseções do tipo "Pasta".#r#n#r#nPortanto, antes de adicionar seções ao seu ambiente, pense na disposição desejada para as ferramentas.#r#n#r#nNovas seções são acrescentadas sempre ao final do menu, mas você pode alterar a ordem na qual elas serão listadas. Basta abrir a seção que precisa mudar de lugar e escolher, no menu de contexto, "Mover para cima" ou "Mover para baixo".#r#n#r#nClaro que em um menu horizontal elas serão movidas para a esquerda ou para a direita respectivamente.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:1:{s:5:"flags";a:3:{s:6:"filter";s:18:"home_specialFields";s:5:"sufix";s:25:"_specialFieldsAfterCreate";s:10:"posteriori";i:1;}}a:1:{s:5:"flags";a:2:{s:6:"filter";s:18:"home_specialFields";s:5:"sufix";s:22:"_specialFieldsOnCreate";}}a:1:{s:8:"children";a:0:{}}a:1:{s:8:"children";a:0:{}}a:2:{s:5:"flags";a:1:{s:6:"preset";s:14:"~contentPreset";}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"Conversas";i:2;i:1;}s:2:"en";a:2:{i:1;s:4:"Chat";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:9:"Conversas";i:2;i:1;}s:2:"en";a:2:{i:1;s:4:"Chat";i:2;i:1;}}s:11:"description";a:1:{s:2:"pt";a:2:{i:1;s:44:"Acessa as conversas das quais você faz parte";i:2;i:1;}}}}a:4:{s:6:"marker";i:3;s:6:"access";i:4;s:5:"flags";a:1:{s:9:"home_type";s:4:"chat";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"Conversas";i:2;i:1;}s:2:"en";a:1:{i:1;s:4:"Chat";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:9:"Conversas";i:2;i:1;}s:2:"en";a:1:{i:1;s:4:"Chat";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:35:"Remover da minha lista de conversas";i:2;i:1;}s:2:"en";a:1:{i:1;s:24:"Remove from my chat list";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:15:"Limpar conversa";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"Clear chat";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:35:"Remover da minha lista de conversas";i:2;i:1;}s:2:"en";a:1:{i:1;s:24:"Remove from my chat list";}}}}a:1:{s:8:"children";a:4:{i:0;s:6:"_start";i:1;s:12:"~formComment";i:2;s:7:"_submit";i:3;s:4:"_end";}}a:2:{s:5:"flags";a:8:{s:4:"type";s:14:"textarea_small";s:6:"filter";s:4:"text";s:10:"field_name";s:7:"message";s:6:"target";s:12:"text/content";s:8:"required";i:1;s:12:"format_force";i:1;s:10:"html_force";i:1;s:15:"ecolabore_force";i:0;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:10:"Comentário";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Comment";}}}}a:1:{s:8:"children";a:1:{i:0;s:16:"home_editContent";}}a:1:{s:8:"children";a:1:{i:0;s:16:"home_editContent";}}a:2:{s:5:"flags";a:1:{s:6:"preset";s:14:"~contentPreset";}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:11:"Publicações";i:2;i:1;}s:2:"en";a:2:{i:1;s:12:"Publications";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:11:"Publicações";i:2;i:1;}s:2:"en";a:2:{i:1;s:12:"Publications";i:2;i:1;}}s:11:"description";a:1:{s:2:"pt";a:2:{i:1;s:54:"Lista todas as suas postagens nos blogs da comunidade.";i:2;i:1;}}}}a:4:{s:6:"access";i:0;s:6:"marker";i:2;s:5:"flags";a:1:{s:9:"home_type";s:12:"publications";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:11:"Publicações";i:2;i:1;}s:2:"en";a:1:{i:1;s:12:"Publications";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:11:"Publicações";i:2;i:1;}s:2:"en";a:1:{i:1;s:12:"Publications";}}}}a:2:{s:5:"flags";a:3:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:9:"templates";s:14:"modLayout_name";s:7:"default";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Serviços";i:2;i:1;}s:2:"en";a:1:{i:1;s:8:"Services";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:8:"Serviços";i:2;i:1;}s:2:"en";a:1:{i:1;s:8:"Services";}}}}a:1:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:17:"Google Webmasters";i:2;i:1;}s:2:"en";a:2:{i:1;s:17:"Google Webmasters";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:41:"Verificar autoridade no Google Webmasters";i:2;i:1;}s:2:"en";a:2:{i:1;s:37:"Verify authority on Google Webmasters";i:2;i:1;}}}}a:1:{s:8:"children";a:4:{i:0;s:6:"_start";i:1;s:11:"~createFile";i:2;s:7:"_submit";i:3;s:4:"_end";}}a:2:{s:5:"flags";a:2:{s:4:"type";s:4:"file";s:10:"field_name";s:17:"verification_file";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:22:"Arquivo de verificação";i:2;i:1;}s:2:"en";a:2:{i:1;s:17:"Verification file";i:2;i:1;}}}}a:1:{s:8:"children";a:5:{i:0;s:6:"_start";i:1;s:13:"~viewFileName";i:2;s:16:"~viewFileContent";i:3;s:7:"_remove";i:4;s:4:"_end";}}a:2:{s:5:"flags";a:2:{s:6:"filter";s:4:"view";s:6:"target";s:18:"local/file_content";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:19:"Conteúdo do arquivo";i:2;i:1;}s:2:"en";a:2:{i:1;s:12:"File content";i:2;i:1;}}}}a:2:{s:5:"flags";a:2:{s:6:"filter";s:4:"view";s:6:"target";s:15:"local/file_name";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:30:"Nome do arquivo de verificação";i:2;i:1;}s:2:"en";a:2:{i:1;s:22:"Verification file name";i:2;i:1;}}}}a:1:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:3:"RSS";i:2;i:1;}s:2:"en";a:1:{i:1;s:3:"RSS";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:31:"Geração automática de feeds RSS";i:2;i:1;}s:2:"en";a:1:{i:1;s:30:"RSS Feeds automatic generation";}}}}a:1:{s:8:"children";a:5:{i:0;s:6:"_start";i:1;s:14:"~editRssEnable";i:2;s:11:"~editRssMax";i:3;s:7:"_submit";i:4;s:4:"_end";}}a:2:{s:5:"flags";a:6:{s:4:"type";s:8:"checkbox";s:6:"filter";s:8:"checkbox";s:10:"field_name";s:6:"enable";s:6:"target";s:20:"flags/modRss_disable";s:6:"invert";i:1;s:5:"clear";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:27:"Ativar geração de feeds RSS";i:2;i:1;}s:2:"en";a:2:{i:1;s:27:"Enable RSS feeds generation";i:2;i:1;}}}}a:2:{s:5:"flags";a:8:{s:4:"type";s:9:"text_tiny";s:6:"filter";s:7:"integer";s:10:"field_name";s:3:"max";s:6:"target";s:16:"flags/modRss_max";s:13:"default_value";i:20;s:9:"min_input";i:1;s:9:"max_input";i:20;s:5:"clear";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"Itens no feed";i:2;i:1;}s:2:"en";a:2:{i:1;s:10:"Feed items";i:2;i:1;}}}}a:1:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:3:"SMS";i:2;i:1;}s:2:"en";a:1:{i:1;s:3:"SMS";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:26:"Envio de mensagens por SMS";i:2;i:1;}s:2:"en";a:1:{i:1;s:22:"Message sending by SMS";}}}}a:1:{s:4:"text";a:1:{s:7:"content";a:2:{s:2:"pt";a:3:{i:1;s:33:"Este serviço está desabilitado.#r#n";i:2;i:1;i:4;i:1;}s:2:"en";a:2:{i:1;s:25:"This service is disabled.";i:4;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"content";a:2:{s:2:"pt";a:3:{i:1;s:31:"Este serviço está habilitado.#r#n";i:2;i:1;i:4;i:1;}s:2:"en";a:2:{i:1;s:24:"This service is enabled.";i:4;i:1;}}}}a:1:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:10:"Configurar";i:2;i:1;}s:2:"en";a:2:{i:1;s:9:"Configure";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:38:"Configurar conta padrão para envio SMS";i:2;i:1;}s:2:"en";a:2:{i:1;s:37:"Configure SMS default sending account";i:2;i:1;}}}}a:1:{s:8:"children";a:6:{i:0;s:6:"_start";i:1;s:18:"~editServiceEnable";i:2;s:9:"~editUser";i:3;s:9:"~editPass";i:4;s:5:"_save";i:5;s:4:"_end";}}a:2:{s:5:"flags";a:5:{s:4:"type";s:10:"text_small";s:6:"filter";s:20:"admin_constants_flag";s:6:"target";s:25:"INTEGRATION_PAPO_SMS_PASS";s:10:"field_name";s:25:"INTEGRATION_PAPO_SMS_PASS";s:10:"value_cast";s:6:"string";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:5:"Senha";i:2;i:1;}s:2:"en";a:1:{i:1;s:8:"Password";}}}}a:2:{s:5:"flags";a:6:{s:4:"type";s:8:"checkbox";s:6:"filter";s:20:"admin_constants_flag";s:6:"target";s:27:"INTEGRATION_PAPO_SMS_ENABLE";s:10:"field_name";s:27:"INTEGRATION_PAPO_SMS_ENABLE";s:10:"value_cast";s:4:"bool";s:4:"help";i:1;}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:25:"Ativar envio SMS via Papo";i:2;i:1;}s:2:"en";a:1:{i:1;s:26:"Enable SMS sending by Papo";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:28:"Ativar envio de SMS via Papo";i:2;i:1;}s:2:"en";a:1:{i:1;s:26:"Enable SMS sending by Papo";}}s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:436:"Ativa ou desativa o envio de SMS pelo serviço Papo#r#n#r#nPara enviar SMS via Papo, é necessário que você possua uma conta ativa neste serviço.#r#n#r#nO serviço Papo é tarifado.#r#n#r#nCadastre-se e consulte preços e condições no site:#r#n#r#n[https://www.paposms.com/]#r#n#r#nO envio de SMS é necessário para o funcionamento de alguns serviços do [text $system.caption], como a verificação de números de telefone ou alertar os usuários sobre pendências.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:2:{s:5:"flags";a:5:{s:4:"type";s:10:"text_small";s:6:"filter";s:20:"admin_constants_flag";s:6:"target";s:25:"INTEGRATION_PAPO_SMS_USER";s:10:"field_name";s:25:"INTEGRATION_PAPO_SMS_USER";s:10:"value_cast";s:6:"string";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:7:"Usuário";i:2;i:1;}s:2:"en";a:1:{i:1;s:4:"User";}}}}a:1:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Testar";i:2;i:1;}s:2:"en";a:2:{i:1;s:4:"Test";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:24:"Testar envio de mensagem";i:2;i:1;}s:2:"en";a:2:{i:1;s:19:"Send a test message";i:2;i:1;}}}}a:1:{s:8:"children";a:6:{i:0;s:6:"_start";i:1;s:18:"~editServiceEnable";i:2;s:9:"~editUser";i:3;s:9:"~editPass";i:4;s:5:"_save";i:5;s:4:"_end";}}a:2:{s:5:"flags";a:5:{s:4:"type";s:10:"text_small";s:6:"filter";s:20:"admin_constants_flag";s:6:"target";s:25:"INTEGRATION_PAPO_SMS_PASS";s:10:"field_name";s:25:"INTEGRATION_PAPO_SMS_PASS";s:10:"value_cast";s:6:"string";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:5:"Senha";i:2;i:1;}s:2:"en";a:1:{i:1;s:8:"Password";}}}}a:2:{s:5:"flags";a:6:{s:4:"type";s:8:"checkbox";s:6:"filter";s:20:"admin_constants_flag";s:6:"target";s:27:"INTEGRATION_PAPO_SMS_ENABLE";s:10:"field_name";s:27:"INTEGRATION_PAPO_SMS_ENABLE";s:10:"value_cast";s:4:"bool";s:4:"help";i:1;}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:25:"Ativar envio SMS via Papo";i:2;i:1;}s:2:"en";a:1:{i:1;s:26:"Enable SMS sending by Papo";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:28:"Ativar envio de SMS via Papo";i:2;i:1;}s:2:"en";a:1:{i:1;s:26:"Enable SMS sending by Papo";}}s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:436:"Ativa ou desativa o envio de SMS pelo serviço Papo#r#n#r#nPara enviar SMS via Papo, é necessário que você possua uma conta ativa neste serviço.#r#n#r#nO serviço Papo é tarifado.#r#n#r#nCadastre-se e consulte preços e condições no site:#r#n#r#n[https://www.paposms.com/]#r#n#r#nO envio de SMS é necessário para o funcionamento de alguns serviços do [text $system.caption], como a verificação de números de telefone ou alertar os usuários sobre pendências.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:2:{s:5:"flags";a:5:{s:4:"type";s:10:"text_small";s:6:"filter";s:20:"admin_constants_flag";s:6:"target";s:25:"INTEGRATION_PAPO_SMS_USER";s:10:"field_name";s:25:"INTEGRATION_PAPO_SMS_USER";s:10:"value_cast";s:6:"string";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:7:"Usuário";i:2;i:1;}s:2:"en";a:1:{i:1;s:4:"User";}}}}a:1:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:4:"SMTP";i:2;i:1;}s:2:"en";a:2:{i:1;s:4:"SMTP";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:26:"Envio de mensagen via SMTP";i:2;i:1;}s:2:"en";a:2:{i:1;s:20:"Mail sending by SMTP";i:2;i:1;}}}}a:2:{s:5:"flags";a:1:{s:4:"icon";s:7:"default";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:18:"Serviço desativado";i:2;i:1;}s:2:"en";a:2:{i:1;s:16:"Disabled service";i:2;i:1;}}s:7:"content";a:2:{s:2:"pt";a:4:{i:1;s:156:"#r#nO serviço de envio de mensagens por SMTP está desativado neste servidor.#r#n#r#nPara mais informações, contate os administradores do [text $system.caption].#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}s:2:"en";a:4:{i:1;s:131:"#r#nThe SMTP service is disabled in this server.#r#n#r#nFor more information, please contact the [text $system.caption] administrators.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:2:{s:5:"flags";a:1:{s:4:"icon";s:5:"crash";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:19:"Autenticação negada";i:2;i:1;}s:2:"en";a:2:{i:1;s:21:"Authentication denied";i:2;i:1;}}s:7:"content";a:2:{s:2:"pt";a:4:{i:1;s:121:"O [text $system.caption] não pôde conectar-se ao servidor "[$server]".#r#n#r#nO usuário "[$user]" não pôde ser autenticado.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}s:2:"en";a:4:{i:1;s:113:"The Ecolabore Portal could not connect to server "[$server]".#r#n#r#nThe user "[$user]" could not be authenticated.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:2:{s:5:"flags";a:1:{s:4:"icon";s:5:"crash";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:18:"Problemas no envio";i:2;i:1;}s:2:"en";a:2:{i:1;s:16:"Sending problems";i:2;i:1;}}s:7:"content";a:2:{s:2:"pt";a:4:{i:1;s:60:"#r#nUm problema ocorreu ao enviar uma mensagem para "[$to]".#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}s:2:"en";a:3:{i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:2:{s:5:"flags";a:1:{s:4:"icon";s:5:"crash";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:20:"Serviço indisponível";i:2;i:1;}s:2:"en";a:2:{i:1;s:19:"Unavailable service";i:2;i:1;}}s:7:"content";a:2:{s:2:"pt";a:4:{i:1;s:114:"O [text $system.caption] não pôde conectar-se ao servidor "[$server]".#r#n#r#nPor favor, tente novamente mais tarde.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}s:2:"en";a:4:{i:1;s:97:"The [text $system.caption] could not connect to server "[$server]".#r#n#r#nPlease, try again later.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:2:{s:5:"flags";a:1:{s:4:"icon";s:5:"error";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:18:"Problemas no envio";i:2;i:1;}s:2:"en";a:2:{i:1;s:16:"Sending problems";i:2;i:1;}}s:7:"content";a:2:{s:2:"pt";a:4:{i:1;s:69:"#r#nUm ou mais destinatários desta mensagem foram recusados:#r#n#r#n[$to]#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}s:2:"en";a:3:{i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:1:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:10:"Configurar";i:2;i:1;}s:2:"en";a:2:{i:1;s:9:"Configure";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:39:"Configurar conta padrão para envio SMTP";i:2;i:1;}s:2:"en";a:2:{i:1;s:38:"Configure SMTP default sending account";i:2;i:1;}}}}a:1:{s:8:"children";a:10:{i:0;s:6:"_start";i:1;s:22:"~integrationSmtpEnable";i:2;s:20:"~integrationSmtpHost";i:3;s:20:"~integrationSmtpPort";i:4;s:20:"~integrationSmtpUser";i:5;s:24:"~integrationSmtpPassword";i:6;s:20:"~integrationSmtpFrom";i:7;s:19:"~integrationSmtpTTL";i:8;s:7:"_submit";i:9;s:4:"_end";}}a:2:{s:5:"flags";a:6:{s:4:"type";s:8:"checkbox";s:6:"filter";s:20:"admin_constants_flag";s:6:"target";s:23:"INTEGRATION_SMTP_ENABLE";s:10:"field_name";s:23:"INTEGRATION_SMTP_ENABLE";s:10:"value_cast";s:4:"bool";s:4:"help";i:1;}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:21:"Ativar envio via SMTP";i:2;i:1;}s:2:"en";a:1:{i:1;s:19:"Enable SMTP sending";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:21:"Ativar envio via SMTP";i:2;i:1;}s:2:"en";a:1:{i:1;s:19:"Enable SMTP sending";}}s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:326:"Ativa ou desativa o envio de emails via SMTP.#r#n#r#nPara enviar emails via SMTP, é necessário que você possua uma conta de emails ativa.#r#n#r#nO envio de emails é necessário para o funcionamento de alguns serviços do [text $system.caption], como a verificação de endereços de emails válidos ou a recuperação de senha dos usuários.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:2:{s:5:"flags";a:5:{s:4:"type";s:10:"text_small";s:6:"filter";s:20:"admin_constants_flag";s:6:"target";s:21:"INTEGRATION_SMTP_FROM";s:10:"field_name";s:21:"INTEGRATION_SMTP_FROM";s:10:"value_cast";s:6:"string";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"Remetente";i:2;i:1;}s:2:"en";a:1:{i:1;s:4:"From";}}}}a:2:{s:5:"flags";a:5:{s:4:"type";s:10:"text_small";s:6:"filter";s:20:"admin_constants_flag";s:6:"target";s:21:"INTEGRATION_SMTP_HOST";s:10:"field_name";s:21:"INTEGRATION_SMTP_HOST";s:10:"value_cast";s:6:"string";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Servidor";i:2;i:1;}s:2:"en";a:1:{i:1;s:4:"Host";}}}}a:2:{s:5:"flags";a:5:{s:4:"type";s:10:"text_small";s:6:"filter";s:20:"admin_constants_flag";s:6:"target";s:25:"INTEGRATION_SMTP_PASSWORD";s:10:"field_name";s:25:"INTEGRATION_SMTP_PASSWORD";s:10:"value_cast";s:6:"string";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:5:"Senha";i:2;i:1;}s:2:"en";a:1:{i:1;s:8:"Password";}}}}a:2:{s:5:"flags";a:5:{s:4:"type";s:10:"text_small";s:6:"filter";s:20:"admin_constants_flag";s:6:"target";s:21:"INTEGRATION_SMTP_PORT";s:10:"field_name";s:21:"INTEGRATION_SMTP_PORT";s:10:"value_cast";s:6:"string";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:5:"Porta";i:2;i:1;}s:2:"en";a:1:{i:1;s:4:"Port";}}}}a:2:{s:5:"flags";a:5:{s:4:"type";s:9:"text_tiny";s:6:"filter";s:20:"admin_constants_flag";s:6:"target";s:20:"INTEGRATION_SMTP_TTL";s:10:"field_name";s:20:"INTEGRATION_SMTP_TTL";s:10:"value_cast";s:6:"string";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:23:"Tempo limite (segundos)";i:2;i:1;}s:2:"en";a:1:{i:1;s:20:"Time limit (seconds)";}}}}a:2:{s:5:"flags";a:5:{s:4:"type";s:10:"text_small";s:6:"filter";s:20:"admin_constants_flag";s:6:"target";s:21:"INTEGRATION_SMTP_USER";s:10:"field_name";s:21:"INTEGRATION_SMTP_USER";s:10:"value_cast";s:6:"string";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:7:"Usuário";i:2;i:1;}s:2:"en";a:1:{i:1;s:4:"User";}}}}a:1:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Testar";i:2;i:1;}s:2:"en";a:2:{i:1;s:4:"Test";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:24:"Testar envio de mensagem";i:2;i:1;}s:2:"en";a:2:{i:1;s:19:"Send a test message";i:2;i:1;}}}}a:1:{s:8:"children";a:9:{i:0;s:6:"_start";i:1;s:7:"~editTo";i:2;s:7:"~editCc";i:3;s:8:"~editBcc";i:4;s:12:"~editSubject";i:5;s:9:"~editText";i:6;s:9:"~editHtml";i:7;s:7:"_submit";i:8;s:4:"_end";}}a:2:{s:5:"flags";a:5:{s:4:"type";s:4:"text";s:6:"filter";s:4:"free";s:10:"field_name";s:3:"bcc";s:6:"target";s:3:"bcc";s:5:"clear";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:12:"Cópia oculta";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"Blind copy";}}}}a:2:{s:5:"flags";a:5:{s:4:"type";s:4:"text";s:6:"filter";s:4:"free";s:10:"field_name";s:2:"cc";s:6:"target";s:2:"cc";s:5:"clear";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"Cópia carbono";i:2;i:1;}s:2:"en";a:1:{i:1;s:11:"Carbon copy";}}}}a:2:{s:5:"flags";a:5:{s:4:"type";s:8:"textarea";s:6:"filter";s:4:"free";s:10:"field_name";s:4:"html";s:6:"target";s:4:"html";s:5:"clear";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:16:"Mensagem em HTML";i:2;i:1;}s:2:"en";a:1:{i:1;s:12:"HTML message";}}}}a:2:{s:5:"flags";a:5:{s:4:"type";s:4:"text";s:6:"filter";s:4:"free";s:10:"field_name";s:7:"subject";s:6:"target";s:7:"subject";s:5:"clear";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:7:"Assunto";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Subject";}}}}a:2:{s:5:"flags";a:5:{s:4:"type";s:8:"textarea";s:6:"filter";s:4:"free";s:10:"field_name";s:4:"text";s:6:"target";s:4:"text";s:5:"clear";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:17:"Mensagem em texto";i:2;i:1;}s:2:"en";a:1:{i:1;s:18:"Plain text message";}}}}a:2:{s:5:"flags";a:5:{s:4:"type";s:4:"text";s:6:"filter";s:4:"free";s:10:"field_name";s:2:"to";s:6:"target";s:2:"to";s:5:"clear";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:4:"Para";i:2;i:1;}s:2:"en";a:1:{i:1;s:2:"To";}}}}a:1:{s:8:"children";a:4:{i:0;s:6:"_start";i:1;s:8:"~viewLog";i:2;s:5:"_back";i:3;s:4:"_end";}}a:2:{s:5:"flags";a:4:{s:4:"type";s:8:"textarea";s:6:"filter";s:4:"free";s:10:"field_name";s:3:"log";s:6:"target";s:3:"log";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:16:"Comunicação SMTP";i:2;i:1;}s:2:"en";a:1:{i:1;s:18:"SMTP communication";}}}}a:3:{s:5:"flags";a:1:{s:9:"multipart";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:24:"Configurações para áudio";i:2;i:1;}s:2:"en";a:1:{i:1;s:24:"Configurations for audio";}}}s:8:"children";a:6:{i:0;s:6:"_start";i:1;s:9:"~tabAudio";i:2;s:11:"~tabCaption";i:3;s:30:"personaliteModules_tabPosition";i:4;s:9:"~tabStyle";i:5;s:4:"_end";}}a:2:{s:5:"flags";a:2:{s:6:"filter";s:8:"modAudio";s:10:"field_name";s:5:"audio";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"Áudio (*.mp3)";i:2;i:1;}s:2:"en";a:1:{i:1;s:13:"Audio (*.mp3)";}}}}a:2:{s:5:"flags";a:4:{s:4:"type";s:14:"textarea_small";s:6:"filter";s:4:"text";s:10:"field_name";s:11:"description";s:6:"target";s:16:"text/description";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"Descrição";i:2;i:1;}s:2:"en";a:1:{i:1;s:11:"Description";}}}}a:3:{s:5:"flags";a:1:{s:6:"filter";s:9:"formulary";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:5:"Áudio";i:2;i:1;}s:2:"en";a:1:{i:1;s:5:"Audio";}}}s:8:"children";a:2:{i:0;s:10:"~editAudio";i:1;s:16:"~editDescription";}}a:3:{s:5:"flags";a:1:{s:6:"filter";s:9:"formulary";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:7:"Legenda";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Caption";}}}s:8:"children";a:3:{i:0;s:26:"personaliteModules_caption";i:1;s:33:"personaliteModules_captionDisplay";i:2;s:32:"personaliteModules_captionLegend";}}a:3:{s:5:"flags";a:1:{s:6:"filter";s:9:"formulary";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Estilo";i:2;i:1;}s:2:"en";a:1:{i:1;s:5:"Style";}}}s:8:"children";a:4:{i:0;s:28:"personaliteModules_boxScheme";i:1;s:29:"personaliteModules_boxPadding";i:2;s:28:"personaliteModules_boxShadow";i:3;s:29:"personaliteModules_boxRounded";}}a:2:{s:4:"text";a:2:{s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:14:"Inserir banner";i:2;i:1;}s:2:"en";a:1:{i:1;s:13:"Insert banner";}}s:11:"description";a:2:{s:2:"pt";a:2:{i:1;s:62:"Acione a âncora no canto desta caixa para adicionar uma figura";i:2;i:1;}s:2:"en";a:1:{i:1;s:58:"Click the anchor in the corner of this box to add an image";}}}s:5:"local";a:12:{s:12:"mod-position";s:6:"center";s:5:"wd-sm";s:2:"12";s:5:"wd-lg";s:2:"12";s:10:"box-scheme";s:4:"card";s:11:"box-padding";s:6:".25rem";s:11:"box-rounded";s:1:"0";s:10:"box-shadow";s:12:"border-doted";s:4:"list";s:7:"details";s:9:"list-type";s:6:"inline";s:10:"list-align";s:6:"center";s:7:"details";s:20:"title_3#r#ndescription";s:24:"details-horizontal-align";s:6:"center";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"Editar banner";i:2;i:1;}s:2:"en";a:1:{i:1;s:11:"Edit banner";}}}s:8:"children";a:8:{i:0;s:6:"_start";i:1;s:13:"modImg_tabImg";i:2;s:17:"modImg_tabCaption";i:3;s:30:"personaliteModules_tabPosition";i:4;s:15:"modImg_tabStyle";i:5;s:17:"modImg_tabFilters";i:6;s:29:"personaliteModules_tabEffects";i:7;s:4:"_end";}}a:2:{s:5:"flags";a:3:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:7:"control";s:14:"modLayout_name";s:18:"dialog_tabsObjects";}s:4:"text";a:1:{s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:21:"Editar caixa de texto";i:2;i:1;}s:2:"en";a:1:{i:1;s:13:"Edit text box";}}}}a:2:{s:4:"text";a:2:{s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:14:"Caixa de texto";i:2;i:1;}s:2:"en";a:1:{i:1;s:8:"Text box";}}s:11:"description";a:2:{s:2:"pt";a:2:{i:1;s:52:"Acione a âncora no canto desta caixa para configurar";i:2;i:1;}s:2:"en";a:1:{i:1;s:55:"Click the anchor in the corner of this box to configure";}}}s:5:"local";a:12:{s:12:"mod-position";s:6:"inline";s:5:"wd-sm";s:1:"6";s:5:"wd-lg";s:1:"6";s:12:"box-position";s:6:"inline";s:10:"box-scheme";s:4:"card";s:11:"box-padding";s:6:".25rem";s:11:"box-rounded";s:1:"0";s:10:"box-shadow";s:12:"border-doted";s:4:"list";s:7:"default";s:9:"list-type";s:6:"inline";s:10:"list-align";s:6:"center";s:7:"details";s:7:"title_3";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:21:"Editar caixa de texto";i:2;i:1;}s:2:"en";a:1:{i:1;s:13:"Edit text box";}}}s:8:"children";a:6:{i:0;s:6:"_start";i:1;s:11:"~tabContent";i:2;s:11:"~tabCaption";i:3;s:30:"personaliteModules_tabPosition";i:4;s:27:"personaliteModules_tabStyle";i:5;s:4:"_end";}}a:2:{s:5:"flags";a:7:{s:4:"type";s:8:"textarea";s:6:"filter";s:4:"text";s:10:"field_name";s:7:"content";s:6:"target";s:12:"text/content";s:12:"format_force";i:1;s:10:"html_force";i:2;s:15:"ecolabore_force";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Conteúdo";i:2;i:1;}s:2:"en";a:2:{i:1;s:7:"Content";i:2;i:1;}}}}a:3:{s:5:"flags";a:1:{s:6:"filter";s:9:"formulary";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:7:"Legenda";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Caption";}}}s:8:"children";a:2:{i:0;s:26:"personaliteModules_caption";i:1;s:33:"personaliteModules_captionDisplay";}}a:3:{s:5:"flags";a:2:{s:6:"filter";s:9:"formulary";s:6:"target";s:5:"table";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Conteúdo";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Content";}}}s:8:"children";a:1:{i:0;s:12:"~editContent";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:29:"Personalizar menu breadcrumbs";i:2;i:1;}s:2:"en";a:1:{i:1;s:23:"Custom breadcrumbs menu";}}}s:8:"children";a:8:{i:0;s:6:"_start";i:1;s:29:"personaliteModules_tabCaption";i:2;s:30:"personaliteModules_tabPosition";i:3;s:27:"personaliteModules_tabStyle";i:4;s:26:"personaliteModules_tabList";i:5;s:29:"personaliteModules_tabDetails";i:6;s:29:"personaliteModules_tabEffects";i:7;s:4:"_end";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:19:"Personalizar cartão";i:2;i:1;}s:2:"en";a:1:{i:1;s:11:"Custom card";}}}s:8:"children";a:3:{i:0;s:6:"_start";i:1;s:27:"personaliteModules_tabStyle";i:2;s:4:"_end";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:32:"Personalizar carrinho de compras";i:2;i:1;}s:2:"en";a:1:{i:1;s:20:"Custom shopping cart";}}}s:8:"children";a:6:{i:0;s:6:"_start";i:1;s:29:"personaliteModules_tabCaption";i:2;s:30:"personaliteModules_tabPosition";i:3;s:27:"personaliteModules_tabStyle";i:4;s:29:"personaliteModules_tabEffects";i:5;s:4:"_end";}}a:1:{s:4:"html";s:279:"[list{]#r#n
      #r#n#r#n
      #r#nR$[$product_price]#r#n#r#n#r#n
      #r#n
      #r#n[}]";}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:33:"Personalizar lista de comentários";i:2;i:1;}s:2:"en";a:1:{i:1;s:20:"Custom comments list";}}}s:8:"children";a:8:{i:0;s:6:"_start";i:1;s:29:"personaliteModules_tabCaption";i:2;s:30:"personaliteModules_tabPosition";i:3;s:27:"personaliteModules_tabStyle";i:4;s:26:"personaliteModules_tabList";i:5;s:29:"personaliteModules_tabDetails";i:6;s:29:"personaliteModules_tabEffects";i:7;s:4:"_end";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:32:"Personalizar formulário comentar";i:2;i:1;}s:2:"en";a:1:{i:1;s:24:"Custom comment formulary";}}}s:8:"children";a:6:{i:0;s:6:"_start";i:1;s:29:"personaliteModules_tabCaption";i:2;s:30:"personaliteModules_tabPosition";i:3;s:27:"personaliteModules_tabStyle";i:4;s:31:"personaliteModules_tabFormulary";i:5;s:4:"_end";}}a:1:{s:8:"children";a:4:{i:0;s:6:"_start";i:1;s:12:"~formComment";i:2;s:7:"_submit";i:3;s:4:"_end";}}a:1:{s:8:"children";a:7:{i:0;s:6:"_start";i:1;s:9:"~formName";i:2;s:9:"~formMail";i:3;s:11:"~formGender";i:4;s:12:"~formComment";i:5;s:7:"_submit";i:6;s:4:"_end";}}a:2:{s:5:"flags";a:8:{s:4:"type";s:14:"textarea_small";s:6:"filter";s:4:"text";s:10:"field_name";s:7:"message";s:6:"target";s:12:"text/content";s:8:"required";i:1;s:12:"format_force";i:1;s:10:"html_force";i:1;s:15:"ecolabore_force";i:0;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:10:"Comentário";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Comment";}}}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:34:"Personalizar container do conteúdo";i:2;i:1;}s:2:"en";a:1:{i:1;s:24:"Custom content container";}}}s:8:"children";a:6:{i:0;s:6:"_start";i:1;s:29:"personaliteModules_tabCaption";i:2;s:30:"personaliteModules_tabPosition";i:3;s:27:"personaliteModules_tabStyle";i:4;s:29:"personaliteModules_tabDetails";i:5;s:4:"_end";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:29:"Personalizar exibição do post";i:2;i:1;}s:2:"en";a:1:{i:1;s:19:"Custom post display";}}}s:8:"children";a:3:{i:0;s:6:"_start";i:1;s:29:"personaliteModules_tabDetails";i:2;s:4:"_end";}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:3:{i:1;s:36:"Conversar com [text $friend_caption]";i:2;i:1;i:6;i:1;}s:2:"en";a:2:{i:1;s:32:"Chat with [text $friend_caption]";i:6;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:3:{i:1;s:30:"Sobre "[text $document.title]"";i:2;i:1;i:6;i:1;}s:2:"en";a:2:{i:1;s:30:"About "[text $document.title]"";i:6;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"O que é isto?";i:2;i:1;}s:2:"en";a:1:{i:1;s:11:"What is it?";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Contexto";i:2;i:1;}s:2:"en";a:2:{i:1;s:7:"Context";i:2;i:1;}}}}a:3:{s:5:"flags";a:3:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:7:"control";s:14:"modLayout_name";s:18:"dialog_tabsObjects";}s:5:"local";a:1:{s:6:"scheme";s:6:"system";}s:4:"text";a:2:{s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:28:"Personalizar painel dinâmico";i:2;i:1;}s:2:"en";a:1:{i:1;s:21:"Custom dinamic pannel";}}s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:28:"Personalizar painel dinâmico";i:2;i:1;}s:2:"en";a:1:{i:1;s:21:"Custom dinamic pannel";}}}}a:2:{s:4:"text";a:2:{s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:15:"Painel dinâmico";i:2;i:1;}s:2:"en";a:1:{i:1;s:13:"Dinamic panel";}}s:11:"description";a:2:{s:2:"pt";a:2:{i:1;s:61:"Acione a âncora no canto desta caixa para configurar o painel";i:2;i:1;}s:2:"en";a:1:{i:1;s:65:"Click the anchor in the corner of this box to configure the panel";}}}s:5:"local";a:12:{s:12:"mod-position";s:6:"inline";s:5:"wd-sm";s:1:"6";s:5:"wd-lg";s:1:"6";s:12:"box-position";s:6:"inline";s:10:"box-scheme";s:4:"card";s:11:"box-padding";s:6:".25rem";s:11:"box-rounded";s:1:"0";s:10:"box-shadow";s:12:"border-doted";s:4:"list";s:7:"default";s:9:"list-type";s:6:"inline";s:10:"list-align";s:6:"center";s:7:"details";s:7:"title_3";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:28:"Personalizar painel dinâmico";i:2;i:1;}s:2:"en";a:1:{i:1;s:21:"Custom dinamic pannel";}}}s:8:"children";a:9:{i:0;s:6:"_start";i:1;s:29:"personaliteModules_tabCaption";i:2;s:30:"personaliteModules_tabPosition";i:3;s:27:"personaliteModules_tabStyle";i:4;s:26:"personaliteModules_tabList";i:5;s:8:"~tabSort";i:6;s:29:"personaliteModules_tabDetails";i:7;s:29:"personaliteModules_tabEffects";i:8;s:4:"_end";}}a:3:{s:5:"flags";a:3:{s:6:"filter";s:6:"select";s:6:"target";s:20:"local/list_direction";s:10:"field_name";s:14:"list_direction";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:7:"Direção";i:2;i:1;}s:2:"en";a:1:{i:1;s:9:"Direction";}}}s:8:"children";a:2:{i:0;s:17:"~listDirectionAsc";i:1;s:18:"~listDirectionDesc";}}a:2:{s:5:"flags";a:1:{s:5:"value";s:3:"asc";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:10:"Ascendente";i:2;i:1;}s:2:"en";a:1:{i:1;s:9:"Ascendant";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:4:"desc";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:11:"Descendente";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"Descendant";}}}}a:3:{s:5:"flags";a:3:{s:6:"filter";s:6:"select";s:6:"target";s:17:"local/list_filter";s:10:"field_name";s:11:"list_filter";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:17:"Filtrar elementos";i:2;i:1;}s:2:"en";a:1:{i:1;s:15:"Filter elements";}}}s:8:"children";a:3:{i:0;s:15:"~listFilterNone";i:1;s:21:"~listFilterNextEvents";i:2;s:20:"~listFilterSpotlight";}}a:2:{s:5:"flags";a:1:{s:5:"value";s:11:"next_events";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:16:"Próximos eventos";i:2;i:1;}s:2:"en";a:1:{i:1;s:11:"Next events";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:0:"";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"(Não filtrar)";i:2;i:1;}s:2:"en";a:1:{i:1;s:11:"(No filter)";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:9:"spotlight";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:17:"Itens em destaque";i:2;i:1;}s:2:"en";a:1:{i:1;s:14:"Featured items";}}}}a:2:{s:5:"flags";a:4:{s:6:"filter";s:7:"integer";s:6:"target";s:14:"local/list_max";s:10:"field_name";s:8:"list_max";s:13:"default_value";i:5;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:22:"Quantidade (0 = todos)";i:2;i:1;}s:2:"en";a:1:{i:1;s:18:"Quantity (0 = all)";}}}}a:3:{s:5:"flags";a:4:{s:6:"filter";s:7:"integer";s:6:"target";s:17:"local/list_offset";s:10:"field_name";s:11:"list_offset";s:13:"default_value";i:0;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:18:"Correção de offset";i:2;i:1;}s:2:"en";a:1:{i:1;s:17:"Offset correction";}}}s:8:"children";a:9:{i:0;s:14:"~sortByCreated";i:1;s:14:"~sortByUpdated";i:2;s:11:"~sortByName";i:3;s:12:"~sortByIndex";i:4;s:13:"~sortShuffled";i:5;s:18:"~sortByLastComment";i:6;s:17:"~sortByEventStart";i:7;s:11:"~sortByHits";i:8;s:12:"~sortByValue";}}a:3:{s:5:"flags";a:3:{s:6:"filter";s:6:"select";s:6:"target";s:17:"local/list_update";s:10:"field_name";s:11:"list_update";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:11:"Atualização";i:2;i:1;}s:2:"en";a:1:{i:1;s:8:"Updating";}}}s:8:"children";a:6:{i:0;s:15:"~listUpdateAuto";i:1;s:15:"~listUpdateHits";i:2;s:15:"~listUpdateHour";i:3;s:14:"~listUpdateDay";i:4;s:15:"~listUpdateWeek";i:5;s:16:"~listUpdateMonth";}}a:2:{s:5:"flags";a:1:{s:5:"value";s:4:"auto";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:10:"Automática";i:2;i:1;}s:2:"en";a:1:{i:1;s:9:"Automatic";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:3:"day";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:10:"A cada dia";i:2;i:1;}s:2:"en";a:1:{i:1;s:11:"On each day";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:4:"hits";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"A cada visita";i:2;i:1;}s:2:"en";a:1:{i:1;s:13:"On each visit";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:4:"hour";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:11:"A cada hora";i:2;i:1;}s:2:"en";a:1:{i:1;s:12:"On each hour";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:5:"month";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:10:"A cada mês";i:2;i:1;}s:2:"en";a:1:{i:1;s:13:"On each month";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:4:"week";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"A cada semana";i:2;i:1;}s:2:"en";a:1:{i:1;s:13:"On each month";}}}}a:3:{s:5:"flags";a:3:{s:6:"filter";s:6:"select";s:6:"target";s:15:"local/list_sort";s:10:"field_name";s:9:"list_sort";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:11:"Ordenar por";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Sort by";}}}s:8:"children";a:9:{i:0;s:14:"~sortByCreated";i:1;s:14:"~sortByUpdated";i:2;s:11:"~sortByName";i:3;s:12:"~sortByIndex";i:4;s:13:"~sortShuffled";i:5;s:18:"~sortByLastComment";i:6;s:17:"~sortByEventStart";i:7;s:11:"~sortByHits";i:8;s:12:"~sortByValue";}}a:2:{s:5:"flags";a:1:{s:5:"value";s:7:"created";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:15:"Data de criação";i:2;i:1;}s:2:"en";a:1:{i:1;s:13:"Creation date";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:11:"event_start";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:16:"Início do evento";i:2;i:1;}s:2:"en";a:1:{i:1;s:14:"Event starting";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:4:"hits";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:23:"Número de visualizações";i:2;i:1;}s:2:"en";a:1:{i:1;s:13:"Hits of views";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:5:"index";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"Índice manual";i:2;i:1;}s:2:"en";a:1:{i:1;s:12:"Manual index";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:19:"comment_last_update";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:17:"Último comentário";i:2;i:1;}s:2:"en";a:1:{i:1;s:12:"Last comment";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:4:"name";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:4:"Nome";i:2;i:1;}s:2:"en";a:1:{i:1;s:4:"Name";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:7:"updated";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:19:"Data de atualização";i:2;i:1;}s:2:"en";a:1:{i:1;s:13:"Updating date";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:5:"value";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:5:"Preço";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Pricing";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:7:"shuffle";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"Aleatório";i:2;i:1;}s:2:"en";a:1:{i:1;s:8:"Shuffled";}}}}a:3:{s:5:"flags";a:1:{s:6:"filter";s:9:"formulary";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"Ordenação";i:2;i:1;}s:2:"en";a:1:{i:1;s:8:"Ordering";}}}s:8:"children";a:6:{i:0;s:5:"~sort";i:1;s:14:"~listDirection";i:2;s:8:"~listMax";i:3;s:11:"~listUpdate";i:4;s:11:"~listOffset";i:5;s:11:"~listFilter";}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:24:"Desativar edição on-line";i:2;i:1;}s:2:"en";a:1:{i:1;s:23:"Disable on-line edition";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:21:"Ativar edição on-line";i:2;i:1;}s:2:"en";a:1:{i:1;s:22:"Enable on-line edition";}}}}a:1:{s:4:"html";s:1074:"[cut:headerlinks]#r#n#r#n[/cut]#r#n[script]#r#nEcolaboreEditor = new EcolaboreEditorClass ();#r#n#r#ndocument.addEventListener ("keydown", EcolaboreEditor.eventKeyDown);#r#ndocument.addEventListener ("keyup", EcolaboreEditor.eventKeyUp);#r#n#r#nhumperstilshen.refresh = function ()#r#n{ // refresh#r#nEcolaboreEditor.eventSubmit();#r#n} // refresh#r#n[/script]#r#n
      #r#n
      #r#n[cut:editor_icon]#r#n#r#n#r#n[text:navigation_editor_flag_green]#r#n#r#n#r#n[/cut]#r#n[style]#r#n.editor-empty-field { display:inline-block; width:1em; height:1em; background-image:url("[shared:icons/editor/pen.png]"); background-repeat:no-repeat; background-size:1em 1em; }#r#n.editor-empty-field[]title]:after { display:inline-block; position:relative; padding-left:1em; content:"(" attr(title) ")"; opacity:.7; }#r#n[/style]#r#n";}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"Documento";i:2;i:1;}s:2:"en";a:2:{i:1;s:8:"Document";i:2;i:1;}}}s:5:"local";a:9:{s:15:"caption-display";i:1;s:12:"mod-semantic";s:3:"nav";s:12:"mod-position";s:4:"left";s:10:"margin-top";s:4:"auto";s:12:"margin-right";s:4:"auto";s:13:"margin-bottom";s:4:"auto";s:11:"margin-left";s:4:"auto";s:4:"list";s:20:"menu_simple_vertical";s:7:"details";s:7:"caption";}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:17:"Salvar alterações";i:2;i:1;}s:2:"en";a:2:{i:1;s:12:"Save changes";i:2;i:1;}}}}a:3:{s:4:"html";s:609:"#r#n[style]#r#n#clayout_panel_main { right:2rem; }#r#n.ecl-editor-button { width:2em; height:2rem; }#r#n.editor-empty-field { display:inline-block; width:1em; height:1em; background-image:url("[shared:icons/editor/pen.svg]"); background-repeat:no-repeat; background-size:1em 1em; }#r#n/* .editor-empty-field[data-placeholder]:after { content:"(" attr(data-placeholder) ")"; opacity:.8; } */#r#n[/style]#r#n#r#n
      #r#n[text]#r#n[list{ loop{]#r#n#r#n[text]#r#n#r#n[}}]#r#n
      #r#n#r#n#r#n";s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:7:"Inserir";i:2;i:1;}s:2:"en";a:1:{i:1;s:6:"Insert";}}}s:8:"children";a:16:{i:0;s:9:"~editorH2";i:1;s:9:"~editorH3";i:2;s:9:"~editorH4";i:3;s:8:"~editorP";i:4;s:9:"~editorLO";i:5;s:9:"~editorLA";i:6;s:9:"~editorLU";i:7;s:9:"~editorHR";i:8;s:8:"~editorA";i:9;s:10:"~editorImg";i:10;s:10:"~editorBox";i:11;s:12:"~editorTable";i:12;s:12:"~editorVideo";i:13;s:12:"~editorAudio";i:14;s:11:"~editorFile";i:15;s:11:"~editorHtml";}}a:2:{s:5:"local";a:3:{s:11:"personalite";s:4:"link";s:6:"target";s:3:"new";s:4:"icon";s:12:"insert_a.svg";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"Hyperlink";i:2;i:1;}s:2:"en";a:1:{i:1;s:9:"Hyperlink";}}}}a:2:{s:5:"local";a:2:{s:11:"personalite";s:6:"object";s:6:"target";s:5:"audio";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:5:"Áudio";i:2;i:1;}s:2:"en";a:1:{i:1;s:5:"Audio";}}}}a:2:{s:5:"local";a:2:{s:11:"personalite";s:6:"extras";s:6:"target";s:3:"box";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:17:"Caixa de destaque";i:2;i:1;}s:2:"en";a:1:{i:1;s:13:"Spotlight box";}}}}a:2:{s:5:"local";a:2:{s:11:"personalite";s:6:"object";s:6:"target";s:4:"file";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:7:"Arquivo";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Arquivo";}}}}a:2:{s:5:"local";a:2:{s:3:"url";s:49:"javascript:EcolaboreEditor.insertParagraph (#sh1#s)";s:4:"icon";s:13:"insert_h1.svg";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Título 1";i:2;i:1;}s:2:"en";a:1:{i:1;s:8:"Header 1";}}}}a:2:{s:5:"local";a:2:{s:3:"url";s:49:"javascript:EcolaboreEditor.insertParagraph (#sh2#s)";s:4:"icon";s:13:"insert_h2.svg";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Título 2";i:2;i:1;}s:2:"en";a:1:{i:1;s:8:"Header 2";}}}}a:2:{s:5:"local";a:2:{s:3:"url";s:49:"javascript:EcolaboreEditor.insertParagraph (#sh3#s)";s:4:"icon";s:13:"insert_h3.svg";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Título 3";i:2;i:1;}s:2:"en";a:1:{i:1;s:8:"Header 3";}}}}a:2:{s:5:"local";a:2:{s:3:"url";s:49:"javascript:EcolaboreEditor.insertParagraph (#sh4#s)";s:4:"icon";s:13:"insert_h4.svg";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Título 4";i:2;i:1;}s:2:"en";a:1:{i:1;s:8:"Header 4";}}}}a:2:{s:5:"local";a:2:{s:3:"url";s:49:"javascript:EcolaboreEditor.insertParagraph (#sh5#s)";s:4:"icon";s:13:"insert_h5.svg";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Título 5";i:2;i:1;}s:2:"en";a:1:{i:1;s:8:"Header 5";}}}}a:2:{s:5:"local";a:2:{s:3:"url";s:49:"javascript:EcolaboreEditor.insertParagraph (#sh6#s)";s:4:"icon";s:13:"insert_h6.svg";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Título 6";i:2;i:1;}s:2:"en";a:1:{i:1;s:8:"Header 6";}}}}a:2:{s:5:"local";a:2:{s:3:"url";s:44:"javascript:EcolaboreEditor.insertSeparator()";s:4:"icon";s:13:"insert_hr.svg";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"Separador";i:2;i:1;}s:2:"en";a:1:{i:1;s:9:"Separator";}}}}a:2:{s:5:"local";a:2:{s:11:"personalite";s:6:"extras";s:6:"target";s:4:"html";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:11:"Código HTML";i:2;i:1;}s:2:"en";a:1:{i:1;s:9:"HTML code";}}}}a:2:{s:5:"local";a:2:{s:11:"personalite";s:6:"object";s:6:"target";s:3:"img";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Figura";i:2;i:1;}s:2:"en";a:1:{i:1;s:5:"Image";}}}}a:2:{s:5:"local";a:2:{s:3:"url";s:43:"javascript:EcolaboreEditor.insertList (#s@#s)";s:4:"icon";s:13:"insert_la.svg";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:16:"Lista alfabética";i:2;i:1;}s:2:"en";a:1:{i:1;s:15:"Alphabetic list";}}}}a:2:{s:5:"local";a:2:{s:3:"url";s:43:"javascript:EcolaboreEditor.insertList (#s#c#s)";s:4:"icon";s:13:"insert_lo.svg";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:14:"Lista numerada";i:2;i:1;}s:2:"en";a:1:{i:1;s:13:"Numbered list";}}}}a:2:{s:5:"local";a:2:{s:3:"url";s:43:"javascript:EcolaboreEditor.insertList (#s*#s)";s:4:"icon";s:13:"insert_lu.svg";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:20:"Lista com marcadores";i:2;i:1;}s:2:"en";a:1:{i:1;s:13:"Bulleted list";}}}}a:2:{s:5:"local";a:2:{s:3:"url";s:48:"javascript:EcolaboreEditor.insertParagraph (#sp#s)";s:4:"icon";s:12:"insert_p.svg";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"Parágrafo";i:2;i:1;}s:2:"en";a:1:{i:1;s:9:"Paragraph";}}}}a:2:{s:5:"local";a:2:{s:11:"personalite";s:5:"table";s:6:"target";s:5:"table";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Tabela";i:2;i:1;}s:2:"en";a:1:{i:1;s:5:"Table";}}}}a:2:{s:5:"local";a:2:{s:11:"personalite";s:6:"object";s:6:"target";s:5:"video";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:5:"Vídeo";i:2;i:1;}s:2:"en";a:1:{i:1;s:5:"Video";}}}}a:3:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:7:"Inserir";i:2;i:1;}s:2:"en";a:2:{i:1;s:6:"Insert";i:2;i:1;}}}s:5:"local";a:9:{s:15:"caption-display";i:1;s:12:"mod-semantic";s:3:"nav";s:12:"mod-position";s:4:"left";s:10:"margin-top";s:4:"auto";s:12:"margin-right";s:4:"auto";s:13:"margin-bottom";s:4:"auto";s:11:"margin-left";s:4:"auto";s:4:"list";s:20:"menu_simple_vertical";s:7:"details";s:7:"caption";}s:8:"children";a:16:{i:0;s:9:"~editorH2";i:1;s:9:"~editorH3";i:2;s:9:"~editorH4";i:3;s:8:"~editorP";i:4;s:9:"~editorLO";i:5;s:9:"~editorLA";i:6;s:9:"~editorLU";i:7;s:9:"~editorHR";i:8;s:8:"~editorA";i:9;s:10:"~editorImg";i:10;s:10:"~editorBox";i:11;s:12:"~editorTable";i:12;s:12:"~editorVideo";i:13;s:12:"~editorAudio";i:14;s:11:"~editorFile";i:15;s:11:"~editorHtml";}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:5:"Áudio";i:2;i:1;}s:2:"en";a:2:{i:1;s:5:"Audio";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:14:"Caixa de texto";i:2;i:1;}s:2:"en";a:2:{i:1;s:8:"Text box";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:7:"Arquivo";i:2;i:1;}s:2:"en";a:2:{i:1;s:4:"File";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"Inserção HTML";i:2;i:1;}s:2:"en";a:2:{i:1;s:14:"HTML insertion";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Figura";i:2;i:1;}s:2:"en";a:2:{i:1;s:5:"Image";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:17:"Objetos inseridos";i:2;i:1;}s:2:"en";a:2:{i:1;s:16:"Inserted objects";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:16:"Figura do banner";i:2;i:1;}s:2:"en";a:2:{i:1;s:15:"Image of banner";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"da página";i:2;i:1;}s:2:"en";a:2:{i:1;s:7:"of page";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:7:"do post";i:2;i:1;}s:2:"en";a:2:{i:1;s:7:"of post";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"da seção";i:2;i:1;}s:2:"en";a:2:{i:1;s:10:"of section";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Tabela";i:2;i:1;}s:2:"en";a:2:{i:1;s:5:"Table";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:5:"Vídeo";i:2;i:1;}s:2:"en";a:2:{i:1;s:5:"Video";i:2;i:1;}}}}a:3:{s:5:"flags";a:3:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:7:"control";s:14:"modLayout_name";s:18:"dialog_tabsObjects";}s:5:"local";a:1:{s:6:"scheme";s:6:"system";}s:4:"text";a:1:{s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:26:"Configurações para arquivo";i:2;i:1;}s:2:"en";a:1:{i:1;s:23:"Configurations for file";}}}}a:2:{s:4:"text";a:2:{s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:15:"Inserir arquivo";i:2;i:1;}s:2:"en";a:1:{i:1;s:11:"Insert file";}}s:11:"description";a:2:{s:2:"pt";a:2:{i:1;s:62:"Acione a âncora no canto desta caixa para adicionar um arquivo";i:2;i:1;}s:2:"en";a:1:{i:1;s:56:"Click the anchor in the corner of this box to add a file";}}}s:5:"local";a:8:{s:12:"mod-position";s:6:"inline";s:12:"box-position";s:6:"inline";s:10:"box-scheme";s:6:"system";s:11:"box-padding";s:6:".25rem";s:11:"box-rounded";s:1:"0";s:10:"box-shadow";s:12:"border-doted";s:4:"list";s:7:"details";s:7:"details";s:7:"title_3";}}a:3:{s:5:"flags";a:1:{s:9:"multipart";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:26:"Configurações para arquivo";i:2;i:1;}s:2:"en";a:1:{i:1;s:23:"Configurations for file";}}}s:8:"children";a:6:{i:0;s:6:"_start";i:1;s:8:"~tabFile";i:2;s:11:"~tabCaption";i:3;s:30:"personaliteModules_tabPosition";i:4;s:9:"~tabStyle";i:5;s:4:"_end";}}a:2:{s:5:"flags";a:4:{s:4:"type";s:14:"textarea_small";s:6:"filter";s:4:"text";s:10:"field_name";s:11:"description";s:6:"target";s:16:"text/description";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"Descrição";i:2;i:1;}s:2:"en";a:1:{i:1;s:11:"Description";}}}}a:2:{s:5:"flags";a:2:{s:6:"filter";s:7:"modFile";s:10:"field_name";s:4:"file";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"Arquivo (*.*)";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"File (*.*)";}}}}a:1:{s:5:"local";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:7:"Arquivo";i:2;i:1;}s:2:"en";a:2:{i:1;s:4:"File";i:2;i:1;}}s:4:"list";s:7:"details";s:7:"details";s:10:"media_file";}}a:3:{s:5:"flags";a:1:{s:6:"filter";s:9:"formulary";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:7:"Legenda";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Caption";}}}s:8:"children";a:3:{i:0;s:26:"personaliteModules_caption";i:1;s:33:"personaliteModules_captionDisplay";i:2;s:32:"personaliteModules_captionLegend";}}a:3:{s:5:"flags";a:1:{s:6:"filter";s:9:"formulary";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:7:"Arquivo";i:2;i:1;}s:2:"en";a:1:{i:1;s:4:"File";}}}s:8:"children";a:2:{i:0;s:9:"~editFile";i:1;s:16:"~editDescription";}}a:3:{s:5:"flags";a:1:{s:6:"filter";s:9:"formulary";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Estilo";i:2;i:1;}s:2:"en";a:1:{i:1;s:5:"Style";}}}s:8:"children";a:4:{i:0;s:28:"personaliteModules_boxScheme";i:1;s:29:"personaliteModules_boxPadding";i:2;s:28:"personaliteModules_boxShadow";i:3;s:29:"personaliteModules_boxRounded";}}a:2:{s:5:"flags";a:2:{s:6:"filter";s:8:"file_big";s:10:"field_name";s:4:"file";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"Arquivo (*.*)";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"File (*.*)";}}}}a:2:{s:4:"text";a:1:{s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:29:"Inserir informações de rodapé";i:2;i:1;}s:2:"en";a:1:{i:1;s:18:"Insert footer info";}}}s:5:"local";a:12:{s:12:"mod-position";s:6:"center";s:5:"wd-sm";s:2:"12";s:5:"wd-lg";s:2:"12";s:10:"box-scheme";s:4:"card";s:11:"box-padding";s:6:".25rem";s:11:"box-rounded";s:1:"0";s:10:"box-shadow";s:12:"border-doted";s:4:"list";s:7:"default";s:9:"list-type";s:6:"inline";s:10:"list-align";s:6:"center";s:7:"details";s:7:"title_3";s:24:"details-horizontal-align";s:6:"center";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:34:"Personalizar informações de rodapé";i:2;i:1;}s:2:"en";a:1:{i:1;s:18:"Custom footer info";}}}s:8:"children";a:6:{i:0;s:6:"_start";i:1;s:11:"~tabContent";i:2;s:29:"personaliteModules_tabCaption";i:3;s:30:"personaliteModules_tabPosition";i:4;s:27:"personaliteModules_tabStyle";i:5;s:4:"_end";}}a:2:{s:5:"flags";a:7:{s:4:"type";s:8:"textarea";s:6:"filter";s:4:"text";s:10:"field_name";s:7:"content";s:6:"target";s:12:"text/content";s:12:"format_force";i:1;s:10:"html_force";i:2;s:15:"ecolabore_force";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Conteúdo";i:2;i:1;}s:2:"en";a:2:{i:1;s:7:"Content";i:2;i:1;}}}}a:3:{s:5:"flags";a:2:{s:6:"filter";s:9:"formulary";s:6:"target";s:5:"table";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Conteúdo";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Content";}}}s:8:"children";a:1:{i:0;s:12:"~editContent";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:23:"Personalizar formulário";i:2;i:1;}s:2:"en";a:1:{i:1;s:16:"Custom formulary";}}}s:8:"children";a:6:{i:0;s:6:"_start";i:1;s:29:"personaliteModules_tabCaption";i:2;s:30:"personaliteModules_tabPosition";i:3;s:27:"personaliteModules_tabStyle";i:4;s:31:"personaliteModules_tabFormulary";i:5;s:4:"_end";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:30:"Personalizar exibição de dados";i:2;i:1;}s:2:"en";a:1:{i:1;s:16:"Custom data view";}}}s:8:"children";a:6:{i:0;s:6:"_start";i:1;s:29:"personaliteModules_tabCaption";i:2;s:30:"personaliteModules_tabPosition";i:3;s:27:"personaliteModules_tabStyle";i:4;s:31:"personaliteModules_tabFormulary";i:5;s:4:"_end";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:29:"Personalizar grade de cartões";i:2;i:1;}s:2:"en";a:1:{i:1;s:17:"Custom cards grid";}}}s:8:"children";a:5:{i:0;s:6:"_start";i:1;s:30:"personaliteModules_tabPosition";i:2;s:27:"personaliteModules_tabStyle";i:3;s:26:"personaliteModules_tabList";i:4;s:4:"_end";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:32:"Personalizar contador de visitas";i:2;i:1;}s:2:"en";a:1:{i:1;s:19:"Custom hits counter";}}}s:8:"children";a:7:{i:0;s:6:"_start";i:1;s:29:"personaliteModules_tabCaption";i:2;s:30:"personaliteModules_tabPosition";i:3;s:27:"personaliteModules_tabStyle";i:4;s:29:"personaliteModules_tabDetails";i:5;s:29:"personaliteModules_tabEffects";i:6;s:4:"_end";}}a:3:{s:5:"flags";a:3:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:7:"control";s:14:"modLayout_name";s:18:"dialog_tabsObjects";}s:5:"local";a:1:{s:6:"scheme";s:6:"system";}s:4:"text";a:1:{s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:13:"Inserção HTML";i:2;i:1;}s:2:"en";a:1:{i:1;s:14:"HTML insertion";}}}}a:2:{s:4:"text";a:2:{s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:12:"Inserir HTML";i:2;i:1;}s:2:"en";a:2:{i:1;s:11:"Insert HTML";i:2;i:1;}}s:11:"description";a:2:{s:2:"pt";a:1:{i:1;s:63:"Acione a âncora no canto desta caixa para adicionar código HTML";}s:2:"en";a:1:{i:1;s:59:"Click the anchor in the corner of this box to add HTML code";}}}s:5:"local";a:10:{s:12:"mod-position";s:6:"inline";s:5:"wd-sm";s:1:"6";s:5:"wd-lg";s:1:"6";s:12:"box-position";s:6:"inline";s:10:"box-scheme";s:6:"system";s:11:"box-padding";s:6:".25rem";s:11:"box-rounded";s:1:"0";s:10:"box-shadow";s:12:"border-doted";s:4:"list";s:7:"details";s:7:"details";s:7:"title_3";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"Inserção HTML";i:2;i:1;}s:2:"en";a:1:{i:1;s:14:"HTML insertion";}}}s:8:"children";a:6:{i:0;s:6:"_start";i:1;s:8:"~tabHtml";i:2;s:11:"~tabCaption";i:3;s:30:"personaliteModules_tabPosition";i:4;s:27:"personaliteModules_tabStyle";i:5;s:4:"_end";}}a:2:{s:5:"flags";a:4:{s:4:"type";s:8:"textarea";s:6:"filter";s:4:"free";s:10:"field_name";s:4:"html";s:6:"target";s:10:"local/html";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:4:"HTML";i:2;i:1;}s:2:"en";a:1:{i:1;s:4:"HTML";}}}}a:3:{s:5:"flags";a:1:{s:6:"filter";s:9:"formulary";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:7:"Legenda";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Caption";}}}s:8:"children";a:3:{i:0;s:26:"personaliteModules_caption";i:1;s:33:"personaliteModules_captionDisplay";i:2;s:32:"personaliteModules_captionInline";}}a:3:{s:5:"flags";a:1:{s:6:"filter";s:9:"formulary";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:4:"HTML";i:2;i:1;}s:2:"en";a:1:{i:1;s:4:"HTML";}}}s:8:"children";a:1:{i:0;s:9:"~editHtml";}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:39:"Duende Humperstilshen chama sua atenção";i:2;i:1;}s:2:"en";a:2:{i:1;s:41:"Dwarf Humperstilshen calls your attemtion";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:37:"Duende Humperstilshen está aborrecido";i:2;i:1;}s:2:"en";a:2:{i:1;s:29:"Dwarf Humperstilshen is bored";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:21:"Duende Humperstilshen";i:2;i:1;}s:2:"en";a:2:{i:1;s:20:"Dwarf Humperstilshen";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:46:"Duende Humperstilshen encontrou um probleminha";i:2;i:1;}s:2:"en";a:2:{i:1;s:44:"Dwarf Humperstilshen founds a little problem";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:37:"Duende Humperstilshen está satisfeito";i:2;i:1;}s:2:"en";a:2:{i:1;s:33:"Dwarf Humperstilshen is satisfied";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:42:"Duende Humperstilshen está lhe perguntando";i:2;i:1;}s:2:"en";a:2:{i:1;s:34:"Dwarf Humperstilshen is asking you";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:33:"Duende Humperstilshen dá uma dica";i:2;i:1;}s:2:"en";a:2:{i:1;s:32:"Dwarf Humperstilshen gives a tip";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:43:"Duende Humperstilshen lhe dá as boas vindas";i:2;i:1;}s:2:"en";a:2:{i:1;s:33:"Dwarf Humperstilshen welcomes you";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:38:"Duende Humperstilshen está trabalhando";i:2;i:1;}s:2:"en";a:2:{i:1;s:31:"Dwarf Humperstilshen is working";i:2;i:1;}}}}a:2:{s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:20:"Manter-se conectado?";i:2;i:1;}s:2:"en";a:2:{i:1;s:15:"Keep connected?";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:20:"Manter-se conectado?";i:2;i:1;}s:2:"en";a:2:{i:1;s:15:"Keep connected?";i:2;i:1;}}s:7:"content";a:1:{s:2:"pt";a:5:{i:1;s:178:"#r#nSua sessão está prestes a expirar!#r#n#r#n#r#n#r#nPara manter-se conectado, acione o botão a seguir:#r#n#r#n#r#n";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}s:8:"children";a:4:{i:0;s:10:"_startView";i:1;s:10:"_separator";i:2;s:19:"~sessionCheckSubmit";i:3;s:8:"_endView";}}a:2:{s:5:"flags";a:1:{s:6:"filter";s:6:"submit";}s:8:"children";a:2:{i:0;s:26:"~sessionCheckSubmitConfirm";i:1;s:13:"~submitCancel";}}a:3:{s:5:"flags";a:2:{s:6:"filter";s:6:"submit";s:10:"field_name";s:4:"save";}s:5:"local";a:1:{s:7:"onclick";s:31:"humperstilshen.sessionRefresh()";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:19:"Manter-me conectado";i:2;i:1;}s:2:"en";a:1:{i:1;s:14:"Keep connected";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:29:"Exibir mensagem do assistente";i:2;i:1;}s:2:"en";a:2:{i:1;s:22:"Show assistant message";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:25:"Exibir dica do assistente";i:2;i:1;}s:2:"en";a:2:{i:1;s:18:"Show assistant tip";i:2;i:1;}}}}a:2:{s:5:"flags";a:4:{s:6:"filter";s:6:"submit";s:10:"field_name";s:5:"close";s:5:"reset";i:1;s:7:"caption";s:20:"labels/action/cancel";}s:5:"local";a:1:{s:7:"onclick";s:28:"humperstilshen.dialogClose()";}}a:1:{s:5:"flags";a:3:{s:6:"filter";s:6:"submit";s:10:"field_name";s:4:"save";s:7:"caption";s:21:"labels/action/confirm";}}a:2:{s:5:"flags";a:1:{s:6:"filter";s:6:"submit";}s:8:"children";a:2:{i:0;s:14:"~submitConfirm";i:1;s:13:"~submitCancel";}}a:3:{s:5:"flags";a:3:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:7:"control";s:14:"modLayout_name";s:18:"dialog_tabsObjects";}s:5:"local";a:1:{s:6:"scheme";s:6:"system";}s:4:"text";a:1:{s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:13:"Editar imagem";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"Edit image";}}}}a:2:{s:4:"text";a:2:{s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:14:"Inserir figura";i:2;i:1;}s:2:"en";a:1:{i:1;s:12:"Insert image";}}s:11:"description";a:2:{s:2:"pt";a:2:{i:1;s:62:"Acione a âncora no canto desta caixa para adicionar uma figura";i:2;i:1;}s:2:"en";a:1:{i:1;s:58:"Click the anchor in the corner of this box to add an image";}}}s:5:"local";a:10:{s:12:"mod-position";s:6:"inline";s:5:"wd-sm";s:1:"6";s:5:"wd-lg";s:1:"3";s:12:"box-position";s:6:"inline";s:10:"box-scheme";s:6:"system";s:11:"box-padding";s:6:".25rem";s:11:"box-rounded";s:1:"0";s:10:"box-shadow";s:12:"border-doted";s:4:"list";s:7:"details";s:7:"details";s:7:"title_3";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"Editar imagem";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"Edit image";}}}s:8:"children";a:8:{i:0;s:6:"_start";i:1;s:7:"~tabImg";i:2;s:11:"~tabCaption";i:3;s:30:"personaliteModules_tabPosition";i:4;s:9:"~tabStyle";i:5;s:11:"~tabFilters";i:6;s:29:"personaliteModules_tabEffects";i:7;s:4:"_end";}}a:2:{s:5:"flags";a:4:{s:4:"type";s:14:"textarea_small";s:6:"filter";s:4:"text";s:10:"field_name";s:11:"description";s:6:"target";s:16:"text/description";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"Descrição";i:2;i:1;}s:2:"en";a:1:{i:1;s:11:"Description";}}}}a:3:{s:5:"flags";a:2:{s:6:"filter";s:6:"modImg";s:10:"field_name";s:3:"img";}s:5:"local";a:1:{s:6:"accept";s:7:"image/*";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:28:"Imagem (*.gif, *.jpg, *.png)";i:2;i:1;}s:2:"en";a:1:{i:1;s:27:"Image (*.gif, *.jpg, *.png)";}}}}a:2:{s:5:"flags";a:9:{s:4:"type";s:5:"range";s:6:"filter";s:7:"integer";s:10:"field_name";s:21:"img_filter_brightness";s:6:"target";s:27:"local/img-filter-brightness";s:9:"min_input";i:0;s:9:"max_input";i:200;s:4:"step";i:5;s:13:"default_value";i:100;s:19:"clear_default_value";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Brilho";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"Brightness";}}}}a:2:{s:5:"flags";a:9:{s:4:"type";s:5:"range";s:6:"filter";s:7:"integer";s:10:"field_name";s:19:"img_filter_contrast";s:6:"target";s:25:"local/img-filter-contrast";s:9:"min_input";i:0;s:9:"max_input";i:200;s:4:"step";i:5;s:13:"default_value";i:100;s:19:"clear_default_value";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"Contraste";i:2;i:1;}s:2:"en";a:1:{i:1;s:8:"Contrast";}}}}a:2:{s:5:"flags";a:9:{s:4:"type";s:5:"range";s:6:"filter";s:7:"integer";s:10:"field_name";s:21:"img_filter_hui_rotate";s:6:"target";s:27:"local/img-filter-hue-rotate";s:9:"min_input";i:0;s:9:"max_input";i:360;s:4:"step";i:3;s:13:"default_value";i:0;s:5:"clear";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:14:"Rotação de cor";i:2;i:1;}s:2:"en";a:1:{i:1;s:14:"Color rotation";}}}}a:2:{s:5:"flags";a:9:{s:4:"type";s:5:"range";s:6:"filter";s:7:"integer";s:10:"field_name";s:19:"img_filter_saturate";s:6:"target";s:25:"local/img-filter-saturate";s:9:"min_input";i:0;s:9:"max_input";i:200;s:4:"step";i:5;s:13:"default_value";i:100;s:19:"clear_default_value";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"Saturação";i:2;i:1;}s:2:"en";a:1:{i:1;s:8:"Saturate";}}}}a:3:{s:5:"flags";a:1:{s:6:"filter";s:9:"formulary";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:7:"Legenda";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Caption";}}}s:8:"children";a:3:{i:0;s:26:"personaliteModules_caption";i:1;s:33:"personaliteModules_captionDisplay";i:2;s:32:"personaliteModules_captionLegend";}}a:3:{s:5:"flags";a:1:{s:6:"filter";s:9:"formulary";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:7:"Filtros";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Filters";}}}s:8:"children";a:4:{i:0;s:20:"~imgFilterBrightness";i:1;s:18:"~imgFilterContrast";i:2;s:18:"~imgFilterSaturate";i:3;s:19:"~imgFilterHueRotate";}}a:3:{s:5:"flags";a:1:{s:6:"filter";s:9:"formulary";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Imagem";i:2;i:1;}s:2:"en";a:1:{i:1;s:5:"Image";}}}s:8:"children";a:2:{i:0;s:8:"~editImg";i:1;s:16:"~editDescription";}}a:3:{s:5:"flags";a:1:{s:6:"filter";s:9:"formulary";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Estilo";i:2;i:1;}s:2:"en";a:1:{i:1;s:5:"Style";}}}s:8:"children";a:4:{i:0;s:28:"personaliteModules_boxScheme";i:1;s:29:"personaliteModules_boxPadding";i:2;s:28:"personaliteModules_boxShadow";i:3;s:29:"personaliteModules_boxRounded";}}a:1:{s:4:"html";s:1992:"[cut:headerlinks]#r#n#r#n[/cut]#r#n[script]#r#n#r#ninstructor = new instructorClass("[$mod.name]");#r#ninstructor.captionPlay = "[text:action_play]";#r#ninstructor.captionPause = "[text:action_pause]";#r#ninstructor.captionRepeat = "[text:action_repeat]";#r#n[/script]#r#n[list{loop{]#r#n[script]#r#nmessage = instructor.messageAdd ("[$name]");#r#n[if($audio){]#r#nmessage.audioAdd ("[$audio]");#r#n[} if($instructor_autoplay){]#r#nmessage.autoplay = true;#r#n[}if($instructor_onload){]#r#nhumperstilshen.onLoad = function(){#r#ninstructor.open ("[$name]");#r#n}#r#n[}elseif($instructor_onalert){]#r#nhumperstilshen.onAlert = function(){#r#ninstructor.open ("[$name]");#r#n}#r#n[}elseif($instructor_onmenuopen){]#r#nhumperstilshen.onMenuOpen = function(){#r#ninstructor.open ("[$name]");#r#n}#r#n[}]#r#n[/script]#r#n[cut:instructor_icon]#r#n#r#n#r#n#r#n#r#n[/cut]#r#n#r#n#r#n#r#n#r#n[}}]#r#n";}a:2:{s:5:"local";a:1:{s:14:"instructor_img";s:33:"instructor/quality/instructor.jpg";}s:4:"text";a:1:{s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:124:"#r#nNão há instruções para a realização desta tarefa.#r#n#r#nAo concluir, acione "Avançar" para seguirmos para a próxima tarefa.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:2:{s:5:"local";a:2:{s:5:"audio";s:40:"modInstructor/quality/00helloConnect.mp3";s:14:"instructor_img";s:33:"instructor/quality/instructor.jpg";}s:4:"text";a:1:{s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:161:"#r#nOlá,#r#n#r#nNa última vez que nos encontramos, estávamos organizando o ambiente da qualidade.#r#n#r#nAcione "Continuar" para seguirmos ao ponto onde havíamos parado.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:14:{i:0;s:21:"modInstructor_quality";i:1;s:12:"sectionAbout";i:2;s:13:"sectionBranch";i:3;s:14:"sectionMembers";i:4;s:12:"sectionAdmin";i:5;s:12:"sectionChart";i:6;s:19:"sectionChart_sector";i:7;s:19:"sectionChart_office";i:8;s:19:"sectionChart_member";i:9;s:10:"sectionDoc";i:10;s:18:"sectionDoc_version";i:11;s:17:"sectionDoc_folder";i:12;s:14:"sectionDoc_doc";i:13;s:12:"sectionAudit";}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"Interface";i:2;i:1;}s:2:"en";a:2:{i:1;s:9:"Interface";i:2;i:1;}}}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:28:"Personalizar menu de idiomas";i:2;i:1;}s:2:"en";a:1:{i:1;s:21:"Custom languages menu";}}}s:8:"children";a:8:{i:0;s:6:"_start";i:1;s:29:"personaliteModules_tabCaption";i:2;s:30:"personaliteModules_tabPosition";i:3;s:27:"personaliteModules_tabStyle";i:4;s:26:"personaliteModules_tabList";i:5;s:29:"personaliteModules_tabDetails";i:6;s:29:"personaliteModules_tabEffects";i:7;s:4:"_end";}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:15:"Ocultar âncoras";i:2;i:1;}s:2:"en";a:2:{i:1;s:12:"Hide anchors";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:23:"Exibir todas as Âncoras";i:2;i:1;}s:2:"en";a:2:{i:1;s:16:"Show all anchors";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:21:"Layout para impressão";i:2;i:1;}s:2:"en";a:2:{i:1;s:16:"Printable layout";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:30:"Personalizar lista desta seção";i:2;i:1;}s:2:"en";a:1:{i:1;s:27:"Custom list of this section";}}}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:30:"Personalizar lista desta seção";i:2;i:1;}s:2:"en";a:1:{i:1;s:27:"Custom list of this section";}}}s:8:"children";a:9:{i:0;s:6:"_start";i:1;s:29:"personaliteModules_tabCaption";i:2;s:30:"personaliteModules_tabPosition";i:3;s:27:"personaliteModules_tabStyle";i:4;s:26:"personaliteModules_tabList";i:5;s:8:"~tabSort";i:6;s:29:"personaliteModules_tabDetails";i:7;s:29:"personaliteModules_tabEffects";i:8;s:4:"_end";}}a:3:{s:5:"flags";a:3:{s:6:"filter";s:6:"select";s:6:"target";s:20:"local/list_direction";s:10:"field_name";s:14:"list_direction";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:7:"Direção";i:2;i:1;}s:2:"en";a:1:{i:1;s:9:"Direction";}}}s:8:"children";a:2:{i:0;s:17:"~listDirectionAsc";i:1;s:18:"~listDirectionDesc";}}a:2:{s:5:"flags";a:1:{s:5:"value";s:3:"asc";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:10:"Ascendente";i:2;i:1;}s:2:"en";a:1:{i:1;s:9:"Ascendant";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:4:"desc";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:11:"Descendente";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"Descendant";}}}}a:2:{s:5:"flags";a:4:{s:6:"filter";s:7:"integer";s:6:"target";s:14:"local/list_max";s:10:"field_name";s:8:"list_max";s:13:"default_value";i:0;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:28:"Itens por página (0 = todos)";i:2;i:1;}s:2:"en";a:1:{i:1;s:24:"Itens per page (0 = all)";}}}}a:3:{s:5:"flags";a:3:{s:6:"filter";s:6:"select";s:6:"target";s:15:"local/list_sort";s:10:"field_name";s:9:"list_sort";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:11:"Ordenar por";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Sort by";}}}s:8:"children";a:8:{i:0;s:14:"~sortByCreated";i:1;s:14:"~sortByUpdated";i:2;s:11:"~sortByName";i:3;s:12:"~sortByIndex";i:4;s:18:"~sortByLastComment";i:5;s:17:"~sortByEventStart";i:6;s:11:"~sortByHits";i:7;s:12:"~sortByValue";}}a:2:{s:5:"flags";a:1:{s:5:"value";s:7:"created";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:15:"Data de criação";i:2;i:1;}s:2:"en";a:1:{i:1;s:13:"Creation date";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:11:"event_start";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:16:"Início do evento";i:2;i:1;}s:2:"en";a:1:{i:1;s:14:"Event starting";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:4:"hits";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:23:"Número de visualizações";i:2;i:1;}s:2:"en";a:1:{i:1;s:13:"Hits of views";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:5:"index";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"Índice manual";i:2;i:1;}s:2:"en";a:1:{i:1;s:12:"Manual index";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:19:"comment_last_update";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:17:"Último comentário";i:2;i:1;}s:2:"en";a:1:{i:1;s:12:"Last comment";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:4:"name";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:4:"Nome";i:2;i:1;}s:2:"en";a:1:{i:1;s:4:"Name";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:7:"updated";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:19:"Data de atualização";i:2;i:1;}s:2:"en";a:1:{i:1;s:13:"Updating date";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:5:"value";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:5:"Preço";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Pricing";}}}}a:3:{s:5:"flags";a:1:{s:6:"filter";s:9:"formulary";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"Ordenação";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Sorting";}}}s:8:"children";a:3:{i:0;s:5:"~sort";i:1;s:14:"~listDirection";i:2;s:8:"~listMax";}}a:2:{s:5:"flags";a:1:{s:4:"icon";s:5:"crash";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:16:"Falha na conexão";i:2;i:1;}s:2:"en";a:1:{i:1;s:18:"Connection failure";}}s:7:"content";a:1:{s:2:"pt";a:3:{i:1;s:123:"#r#nNão foi possível estabelecer uma conexão com seu navegador.#r#n#r#nVerifique se Cookies estão habilitados em seu navegador.#r#n";i:2;i:1;i:4;i:1;}}}}a:2:{s:5:"flags";a:1:{s:16:"audiodescription";s:14:"modLogin_error";}s:4:"text";a:1:{s:7:"content";a:2:{s:2:"pt";a:5:{i:1;s:90:"Não foi possível conectar com o nome e a senha informadas.#r#n#r#n[mod:login]#r#n[mod:welcome]#r#n";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}s:2:"en";a:5:{i:1;s:86:"Unable to connect with the informed name and password.#r#n#r#n[mod:login]#r#n[mod:welcome]#r#n";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:1:{i:1;s:9:"Visitante";}s:2:"en";a:2:{i:1;s:7:"Visitor";i:2;i:1;}}}}a:2:{s:5:"flags";a:1:{s:10:"field_name";s:5:"login";}s:8:"children";a:5:{i:0;s:6:"_start";i:1;s:10:"~loginName";i:2;s:14:"~loginPassword";i:3;s:12:"~loginSubmit";i:4;s:4:"_end";}}a:1:{s:5:"flags";a:3:{s:4:"type";s:10:"text_small";s:10:"field_name";s:4:"name";s:7:"caption";s:28:"labels/field/user_identifier";}}a:1:{s:5:"flags";a:3:{s:4:"type";s:13:"text_password";s:10:"field_name";s:8:"password";s:7:"caption";s:26:"labels/field/user_password";}}a:2:{s:5:"flags";a:3:{s:4:"type";s:6:"submit";s:6:"filter";s:6:"submit";s:10:"field_name";s:6:"submit";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:11:"Conectar-se";i:2;i:1;}s:2:"en";a:2:{i:1;s:7:"Connect";i:2;i:1;}}}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:30:"Personalizar menu de navegação";i:2;i:1;}s:2:"en";a:1:{i:1;s:22:"Custom navigation menu";}}}s:8:"children";a:9:{i:0;s:6:"_start";i:1;s:29:"personaliteModules_tabCaption";i:2;s:11:"~tabSpecial";i:3;s:30:"personaliteModules_tabPosition";i:4;s:27:"personaliteModules_tabStyle";i:5;s:26:"personaliteModules_tabList";i:6;s:29:"personaliteModules_tabDetails";i:7;s:29:"personaliteModules_tabEffects";i:8;s:4:"_end";}}a:2:{s:5:"flags";a:5:{s:4:"type";s:8:"checkbox";s:6:"filter";s:8:"checkbox";s:10:"field_name";s:12:"home_display";s:6:"target";s:18:"local/home_display";s:5:"clear";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:31:"Exibir link para página inicial";i:2;i:1;}s:2:"en";a:1:{i:1;s:30:"Display link for the home page";}}}}a:3:{s:5:"flags";a:1:{s:6:"filter";s:9:"formulary";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Especial";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Special";}}}s:8:"children";a:1:{i:0;s:19:"~specialHomeDisplay";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:27:"Personalizar menu de rodapé";i:2;i:1;}s:2:"en";a:1:{i:1;s:18:"Custom footer menu";}}}s:8:"children";a:8:{i:0;s:6:"_start";i:1;s:29:"personaliteModules_tabCaption";i:2;s:30:"personaliteModules_tabPosition";i:3;s:27:"personaliteModules_tabStyle";i:4;s:26:"personaliteModules_tabList";i:5;s:29:"personaliteModules_tabDetails";i:6;s:29:"personaliteModules_tabEffects";i:7;s:4:"_end";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:27:"Personalizar menu principal";i:2;i:1;}s:2:"en";a:1:{i:1;s:16:"Custom main menu";}}}s:8:"children";a:8:{i:0;s:6:"_start";i:1;s:29:"personaliteModules_tabCaption";i:2;s:30:"personaliteModules_tabPosition";i:3;s:27:"personaliteModules_tabStyle";i:4;s:26:"personaliteModules_tabList";i:5;s:29:"personaliteModules_tabDetails";i:6;s:29:"personaliteModules_tabEffects";i:7;s:4:"_end";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:30:"Personalizar menu de paginação";i:2;i:1;}s:2:"en";a:1:{i:1;s:22:"Custom pagination menu";}}}s:8:"children";a:8:{i:0;s:6:"_start";i:1;s:29:"personaliteModules_tabCaption";i:2;s:30:"personaliteModules_tabPosition";i:3;s:27:"personaliteModules_tabStyle";i:4;s:26:"personaliteModules_tabList";i:5;s:29:"personaliteModules_tabDetails";i:6;s:29:"personaliteModules_tabEffects";i:7;s:4:"_end";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:30:"Personalizar caixa de pesquisa";i:2;i:1;}s:2:"en";a:1:{i:1;s:17:"Custom search box";}}}s:8:"children";a:5:{i:0;s:6:"_start";i:1;s:29:"personaliteModules_tabCaption";i:2;s:30:"personaliteModules_tabPosition";i:3;s:27:"personaliteModules_tabStyle";i:4;s:4:"_end";}}a:1:{s:8:"children";a:4:{i:0;s:6:"_start";i:1;s:24:"domainSearch_searchInput";i:2;s:25:"domainSearch_searchSubmit";i:3;s:4:"_end";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:32:"Personalizar opções de ordenação";i:2;i:1;}s:2:"en";a:1:{i:1;s:22:"Custom sorting options";}}}s:8:"children";a:6:{i:0;s:6:"_start";i:1;s:12:"~editOptions";i:2;s:29:"personaliteModules_tabCaption";i:3;s:30:"personaliteModules_tabPosition";i:4;s:27:"personaliteModules_tabStyle";i:5;s:4:"_end";}}a:4:{s:5:"flags";a:3:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:7:"control";s:14:"modLayout_name";s:16:"modTable_content";}s:5:"local";a:1:{s:6:"scheme";s:6:"system";}s:4:"text";a:1:{s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:13:"Editar tabela";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"Edit table";}}}s:4:"html";s:4277:"#r#n[style]#r#n#cpanel_left { position:absolute; width:15em; top:4rem; right:auto; bottom:4em; left:0.5em; vertical-align:middle; }#r#n#cpanel_main { position:absolute; top:4rem; right:0.5em; bottom:4em; left:16em; overflow:auto; }#r#n#cpanel_bottom { position:absolute; top:auto; right:0.5em; bottom:0.5em; left:0.5em; height:3em; text-align:center; vertical-align:middle; }#r#n#cselect_tab { width:100%; }#r#n[/style]#r#n[script]#r#n#r#n// changes dialog tab#r#ntabOld = 2;#r#n#r#nfunction changeTab(){#r#nvar tabIndex = 2 + document.controls.select_tab.selectedIndex;#r#ndocument.getElementById(#stab_content_#s+tabOld).style.display = #snone#s;#r#ndocument.getElementById(#stab_content_#s+tabIndex).style.display = #sblock#s;#r#ntabOld = tabIndex;#r#n}#r#n#r#n// submit configurations#r#nfunction dialogOk(){#r#ndocument.controls.submit();#r#n}#r#n#r#n// Restore default configurations#r#nfunction dialogRestore(){#r#ndocument.controls.save.value = #srestore#s;#r#ndocument.controls.submit();#r#n}#r#n#r#n// closes dialog window#r#nfunction dialogClose(){#r#nwindow.close();#r#n}#r#n#r#ndocument.controls.select_tab.focus();#r#n[/script]#r#n#r#n#r#n
      #r#n[mod:title{ list{]#r#n[text $title]#r#n[}}]#r#n
      #r#n#r#n#r#n[mod:formulary{ list{]#r#n
      #r#n[next]#r#n#r#n#r#n
      #r#n
      #r#n#r#n#r#n
      #r#n#r#n#r#n#r#n
      #r#n#r#n[cut:tab_option]#r#n#r#n[/cut]#r#n#r#n
      #r#n[text]#r#n[script]#r#n#r#nfunction tableClass ()#r#n{ // tableClass#r#n#r#nthis.addCell = function (r, c)#r#n{ // addCell#r#nvar tr = document.getElementById (#srow_#s+r);#r#nvar td = document.createElement (#std#s);#r#nvar textarea = document.createElement (#stextarea#s);#r#n#r#ntextarea.setAttribute (#sid#s, #s[$name]_#s + r + #s_#s + c);#r#ntextarea.setAttribute (#sname#s, #s[$name]_#s + r + #s_#s + c);#r#ntd.appendChild (textarea);#r#ntr.appendChild (td);#r#n} // addCell#r#n#r#nthis.addCol = function ()#r#n{ // addCol#r#nvar maxCols = document.getElementById (#s[$name]_maxCols#s);#r#nvar maxRows = document.getElementById (#s[$name]_maxRows#s);#r#nvar c = maxCols.value;#r#nmaxCols.value ++;#r#n#r#nfor (var r = 0; r < maxRows.value; r++)#r#n{ // each row#r#nthis.addCell (r, c);#r#n} // each row#r#n} // addCol#r#n#r#nthis.addRow = function ()#r#n{ // addRow#r#nvar maxCols = document.getElementById (#s[$name]_maxCols#s);#r#nvar maxRows = document.getElementById (#s[$name]_maxRows#s);#r#nvar r = maxRows.value;#r#nmaxRows.value ++;#r#n#r#nvar tr = document.createElement (#str#s);#r#ntr.setAttribute (#sid#s, #srow_#s+r);#r#nvar table = document.getElementById (#s[$name]_table#s);#r#ntable.appendChild (tr);#r#n#r#nfor (var c = 0; c < maxCols.value; c++)#r#n{ // each row#r#nthis.addCell (r, c);#r#n} // each row#r#n} // addRow#r#n#r#n} // tableClass#r#n#r#nvar table = new tableClass();#r#n#r#n[/script]#r#nAdicionar coluna • #r#nAdicionar linha#r#n#r#n[script]#r#n#r#n// points to the html table#r#nvar tableName = #s[$name]#s;#r#n[/script]#r#n[list{ loop{]#r#n#r#n[list{ loop{]#r#n#r#n[}}]#r#n#r#n[}}]#r#n
      #r#n#r#n
      #r#n
      #r#n#r#n#r#n[next]#r#n[loop{#r#nif(!$last){#r#ncut:tab_option]#r#n#r#n[/cut]#r#n#r#n#r#n#r#n#r#n[}else{]#r#n[list{ loop{ ]#r#n#r#n[}}#r#n} // if#r#n}}]#r#n#r#n
      #r#n#r#n#r#n
      #r#n#r#n
      #r#n

      #r#n#r#n#r#n
      #r#n#r#n#r#n#r#n[}]#r#n";}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"Editar tabela";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"Edit table";}}}s:8:"children";a:7:{i:0;s:6:"_start";i:1;s:11:"~tabContent";i:2;s:11:"~tabCaption";i:3;s:30:"personaliteModules_tabPosition";i:4;s:27:"personaliteModules_tabStyle";i:5;s:13:"~tabApearance";i:6;s:4:"_end";}}a:2:{s:5:"flags";a:5:{s:6:"filter";s:4:"list";s:6:"target";s:10:"local/list";s:10:"field_name";s:9:"list_type";s:13:"default_value";s:12:"table_simple";s:9:"list_type";s:5:"table";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:16:"Modelo de tabela";i:2;i:1;}s:2:"en";a:1:{i:1;s:11:"Table model";}}}}a:1:{s:5:"local";a:1:{s:4:"list";s:12:"table_simple";}}a:2:{s:4:"text";a:2:{s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:14:"Inserir tabela";i:2;i:1;}s:2:"en";a:1:{i:1;s:12:"Insert table";}}s:11:"description";a:2:{s:2:"pt";a:2:{i:1;s:62:"Acione a âncora no canto desta caixa para adicionar uma tabela";i:2;i:1;}s:2:"en";a:1:{i:1;s:57:"Click the anchor in the corner of this box to add a table";}}}s:5:"local";a:13:{s:12:"mod-position";s:6:"inline";s:5:"wd-sm";s:1:"6";s:5:"wd-lg";s:1:"6";s:12:"box-position";s:6:"inline";s:10:"box-scheme";s:4:"card";s:11:"box-padding";s:6:".25rem";s:11:"box-rounded";s:1:"0";s:10:"box-shadow";s:12:"border-doted";s:4:"list";s:7:"default";s:9:"list-type";s:6:"inline";s:10:"list-align";s:6:"center";s:7:"details";s:7:"title_3";s:24:"details-vertical-spacing";s:3:"100";}}a:3:{s:5:"flags";a:1:{s:6:"filter";s:9:"formulary";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"Aparência";i:2;i:1;}s:2:"en";a:1:{i:1;s:9:"Apearance";}}}s:8:"children";a:1:{i:0;s:5:"~list";}}a:3:{s:5:"flags";a:1:{s:6:"filter";s:9:"formulary";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:7:"Legenda";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Caption";}}}s:8:"children";a:3:{i:0;s:30:"personaliteModules_captionEdit";i:1;s:33:"personaliteModules_captionDisplay";i:2;s:34:"personaliteModules_captionIsLegend";}}a:2:{s:5:"flags";a:3:{s:6:"filter";s:8:"modTable";s:10:"field_name";s:5:"table";s:6:"target";s:5:"table";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Conteúdo";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Content";}}}}a:4:{s:5:"flags";a:3:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:7:"control";s:14:"modLayout_name";s:20:"modTable_new_content";}s:5:"local";a:1:{s:6:"scheme";s:6:"system";}s:4:"text";a:1:{s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:14:"Inserir tabela";i:2;i:1;}s:2:"en";a:1:{i:1;s:12:"Insert table";}}}s:4:"html";s:15:"[mod:formulary]";}a:1:{s:8:"children";a:6:{i:0;s:6:"_start";i:1;s:9:"~editCols";i:2;s:9:"~editRows";i:3;s:9:"~editList";i:4;s:11:"_saveCancel";i:5;s:4:"_end";}}a:2:{s:5:"flags";a:5:{s:4:"type";s:9:"text_tiny";s:6:"filter";s:7:"integer";s:6:"target";s:4:"cols";s:10:"field_name";s:4:"cols";s:13:"default_value";i:2;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:7:"Colunas";i:2;i:1;}s:2:"en";a:1:{i:1;s:4:"Cols";}}}}a:2:{s:5:"flags";a:5:{s:6:"filter";s:4:"list";s:6:"target";s:10:"local/list";s:10:"field_name";s:9:"list_type";s:13:"default_value";s:12:"table_simple";s:9:"list_type";s:5:"table";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:16:"Modelo de tabela";i:2;i:1;}s:2:"en";a:1:{i:1;s:11:"Table model";}}}}a:2:{s:5:"flags";a:5:{s:4:"type";s:9:"text_tiny";s:6:"filter";s:7:"integer";s:6:"target";s:4:"rows";s:10:"field_name";s:4:"rows";s:13:"default_value";i:2;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Linhas";i:2;i:1;}s:2:"en";a:1:{i:1;s:4:"Rows";}}}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:32:"Personalizar container do título";i:2;i:1;}s:2:"en";a:1:{i:1;s:22:"Custom title container";}}}s:8:"children";a:5:{i:0;s:6:"_start";i:1;s:29:"personaliteModules_tabCaption";i:2;s:30:"personaliteModules_tabPosition";i:3;s:27:"personaliteModules_tabStyle";i:4;s:4:"_end";}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:11:"Ferramentas";i:2;i:1;}s:2:"en";a:2:{i:1;s:7:"Toolbox";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:3:{i:1;s:39:"Administração do [text $system.caption]";i:2;i:1;i:6;i:1;}s:2:"en";a:3:{i:1;s:37:"[text $system.caption] administration";i:2;i:1;i:6;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:11:"Desconectar";i:2;i:1;}s:2:"en";a:2:{i:1;s:10:"Disconnect";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:3:{i:1;s:30:"Perfil de [text $user.caption]";i:2;i:1;i:6;i:1;}s:2:"en";a:3:{i:1;s:30:"[text $user.caption]#ss profile";i:2;i:1;i:6;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:4:{i:1;s:18:"Usuári[gender:o|a]";i:2;i:1;i:5;i:2;i:6;i:1;}s:2:"en";a:3:{i:1;s:4:"User";i:2;i:1;i:5;i:2;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Avisos";i:2;i:1;}s:2:"en";a:2:{i:1;s:6:"Alerts";i:2;i:1;}}}}a:3:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:4:{i:1;s:12:"Frase do dia";i:2;i:1;i:5;i:2;i:6;i:1;}s:2:"en";a:3:{i:1;s:16:"Quote of the day";i:2;i:1;i:5;i:2;}}}s:5:"local";a:2:{s:4:"list";s:7:"details";s:7:"details";s:7:"content";}s:6:"blocks";a:1:{s:19:"lists/quoteoftheday";a:1:{s:4:"html";s:78:"#r#n

      "[text $content]"

      #r#n

      ([text $author])

      #r#n";}}}a:1:{s:6:"quotes";a:289:{i:0;a:2:{i:0;s:178:"O sucesso nasce do querer, da determinação e persistência em se chegar a um objetivo. Mesmo não atingindo o alvo, quem busca e vence obstáculos, no mínimo fará coisas admiráveis.";i:1;s:15:"José de Alencar";}i:1;a:2:{i:0;s:36:"A persistência é o caminho do êxito.";i:1;s:15:"Charles Chaplin";}i:2;a:2:{i:0;s:243:"Agir, eis a inteligência verdadeira. Serei o que quiser. Mas tenho que querer o que for. O êxito está em ter êxito, e não em ter condições de êxito. Condições de palácio tem qualquer terra larga, mas onde estará o palácio se não o fizerem ali?";i:1;s:15:"Fernando Pessoa";}i:3;a:2:{i:0;s:256:"Determinação, coragem e auto-confiança são fatores decisivos para o sucesso. Se estamos possuídos por uma inabalável determinação, conseguiremos superá-los. Independentemente das circunstâncias, devemos ser sempre humildes, recatados e despidos de orgulho.";i:1;s:10:"Dalai Lama";}i:4;a:2:{i:0;s:96:"A vitalidade é demonstrada não apenas pela persistência, mas pela capacidade de começar de novo.";i:1;s:19:"F. Scott Fitzgerald";}i:5;a:2:{i:0;s:93:"O homem não teria alcançado o possível se, repetidas vezes, não tivesse tentado o impossível.";i:1;s:9:"Max Weber";}i:6;a:2:{i:0;s:75:"Só se pode alcançar um grande êxito quando nos mantemos fiéis a nós mesmos.";i:1;s:19:"Friedrich Nietzsche";}i:7;a:2:{i:0;s:121:"Todo mundo é capaz de sentir os sofrimentos de um amigo. Ver com agrado os seus êxitos exige uma natureza muito delicada.";i:1;s:11:"Oscar Wilde";}i:8;a:2:{i:0;s:169:"Lute com determinação, abrace a vida com paixão, perca com classe e vença com ousadia, porque o mundo pertence a quem se atreve e a vida é muito para ser insignificante.";i:1;s:14:"Augusto Branco";}i:9;a:2:{i:0;s:137:"As únicas grandes companhias que conseguirão ter êxito são aquelas que consideram os seus produtos obsoletos antes que os outros o façam.";i:1;s:10:"Bill Gates";}i:10;a:2:{i:0;s:92:"Talento é dom, é graça. E sucesso nada tem haver com sorte, mas com determinação e trabalho.";i:1;s:14:"Augusto Branco";}i:11;a:2:{i:0;s:89:"Para ter um negócio de sucesso, alguém, algum dia, teve que tomar uma atitude de coragem.";i:1;s:13:"Peter Drucker";}i:12;a:2:{i:0;s:62:"Estar decidido, acima de qualquer coisa, é o segredo do êxito.";i:1;s:10:"Henry Ford";}i:13;a:2:{i:0;s:70:"Para obter êxito no mundo temos de parecer loucos mas sermos espertos.";i:1;s:20:"Barão de Montesquieu";}i:14;a:2:{i:0;s:30:"A disciplina é a mãe do êxito.";i:1;s:7:"Ésquilo";}i:15;a:2:{i:0;s:123:"A disciplina é a alma de um exército; torna grandes os pequenos contingentes, proporciona êxito aos fracos, e estima todos.";i:1;s:17:"George Washington";}i:16;a:2:{i:0;s:109:"O segredo do êxito na vida de um homem está em preparar-se para aproveitar a ocasião quando ela se apresenta.";i:1;s:17:"Benjamin Disraeli";}i:17;a:2:{i:0;s:103:"O êxito começa no exato momento em que o homem decide o que quer e começa a trabalhar para consegui-lo.";i:1;s:23:"Roberto Flávio C. Silva";}i:18;a:2:{i:0;s:94:"Persistência é a irmã gêmea da excelência. Uma é a mãe da qualidade, a outra é a mãe do tempo.";i:1;s:14:"Marabel Morgan";}i:19;a:2:{i:0;s:104:"Suba o primeiro degrau com fé. Não é necessário que você veja toda a escada. Apenas dê o primeiro passo.";i:1;s:18:"Martin Luther King";}i:20;a:2:{i:0;s:57:"As pessoas não carecem de força, carecem de determinação.";i:1;s:11:"Victor Hugo";}i:21;a:2:{i:0;s:61:"Só existe um êxito: a capacidade de levar a vida que se quer.";i:1;s:17:"Cristopher Morley";}i:22;a:2:{i:0;s:69:"Tudo deveria se tornar o mais simples possível, mas não simplificado.";i:1;s:15:"Albert Einstein";}i:23;a:2:{i:0;s:106:"Comece fazendo o que é necessário, depois o que é possível, e de repente você estará fazendo o impossível.";i:1;s:22:"São Francisco de Assis";}i:24;a:2:{i:0;s:83:"O erro acontece de vários modos, enquanto ser correto é possível apenas de um modo.";i:1;s:11:"Aristóteles";}i:25;a:2:{i:0;s:35:"Não é possível ser bom pela metade.";i:1;s:12:"Leon Tolstói";}i:26;a:2:{i:0;s:97:"Tudo o que um sonho precisa para ser realizado é alguém que acredite que ele possa ser realizado.";i:1;s:19:"Roberto Shinyashiki";}i:27;a:2:{i:0;s:53:"A impaciência é um grande obstáculo para o bom êxito.";i:1;s:18:"Napoleão Bonaparte";}i:28;a:2:{i:0;s:48:"O êxito é fácil de obter. O difícil é merecê-lo.";i:1;s:12:"Albert Camus";}i:29;a:2:{i:0;s:63:"Não procure ser um homem com êxito, e sim um homem com valores.";i:1;s:15:"Albert Einstein";}i:30;a:2:{i:0;s:92:"O êxito na vida não significa apenas ser bem sucedido, mas também sobrepor-se aos fracassos.";i:1;s:13:"Maxwell Maltz";}i:31;a:2:{i:0;s:223:"As pessoas que resolviam as coisas em geral tinham muita persistência e um pouco de sorte. Se a gente persistisse o bastante, a sorte em geral chegava. Mas a maioria das pessoas não podia esperar a sorte, por isso desistia.";i:1;s:16:"Charles Bukowski";}i:32;a:2:{i:0;s:112:"A nossa maior glória não reside no fato de nunca cairmos, mas sim em levantarmo-nos sempre depois de cada queda.";i:1;s:16:"Oliver Goldsmith";}i:33;a:2:{i:0;s:68:"Transportai um punhado de terra todos os dias e fareis uma montanha.";i:1;s:8:"Confúcio";}i:34;a:2:{i:0;s:134:"Seja como os pássaros que, ao pousarem um instante sobre ramos muito leves, sentem-nos ceder, mas cantam! Eles sabem que possuem asas.";i:1;s:11:"Victor Hugo";}i:35;a:2:{i:0;s:73:"A força não provém da capacidade física. Provém de uma vontade indomável.";i:1;s:14:"Mahatma Gandhi";}i:36;a:2:{i:0;s:60:"O número dos que nos invejam confirma as nossas capacidades.";i:1;s:11:"Oscar Wilde";}i:37;a:2:{i:0;s:115:"Quem sabe concentrar-se numa coisa e insistir nela como único objetivo, obtém a capacidade de fazer qualquer coisa.";i:1;s:14:"Mahatma Gandhi";}i:38;a:2:{i:0;s:31:"É capaz quem pensa que é capaz.";i:1;s:4:"Buda";}i:39;a:2:{i:0;s:106:"Acredite em si próprio e chegará um dia em que os outros não terão outra escolha senão acreditar com você.";i:1;s:14:"Cynthia Kersey";}i:40;a:2:{i:0;s:71:"Quer você acredite que consiga fazer uma coisa ou não, você está certo.";i:1;s:10:"Henry Ford";}i:41;a:2:{i:0;s:180:"Todos os dias Deus nos dá um momento em que é possível mudar tudo que nos deixa infelizes. O instante mágico é o momento em que um sim ou um não pode mudar toda a nossa existência.";i:1;s:12:"Paulo Coelho";}i:42;a:2:{i:0;s:92:"Sempre que possível, seja claro. Mas que sua clareza não seja o motivo para ferir os outros.";i:1;s:12:"Paulo Coelho";}i:43;a:2:{i:0;s:176:"Jamais desista das pessoas que ama. Jamais desista de ser feliz. Lute sempre pelos seus sonhos. Seja profundamente apaixonado pela vida. Pois a vida é um espetáculo imperdível.";i:1;s:12:"Augusto Cury";}i:44;a:2:{i:0;s:96:"Maravilhas nunca faltaram ao mundo; o que sempre falta é a capacidade de senti-las e admirá-las.";i:1;s:14:"Mario Quintana";}i:45;a:2:{i:0;s:52:"Inteligência é a capacidade de se adaptar à mudança.";i:1;s:15:"Stephen Hawking";}i:46;a:2:{i:0;s:105:"Motivação é a arte de fazer as pessoas fazerem o que você quer que elas façam porque elas o querem fazer.";i:1;s:17:"Dwight Eisenhower";}i:47;a:2:{i:0;s:70:"Tato é a capacidade de se descrever os outros tal como eles se julgam.";i:1;s:15:"Abraham Lincoln";}i:48;a:2:{i:0;s:105:"A sabedoria dos homens é proporcional não à sua experiência mas à sua capacidade de adquirir experiência.";i:1;s:19:"George Bernard Shaw";}i:49;a:2:{i:0;s:160:"A marca de uma inteligência de primeira ordem é a capacidade de ter duas ideias opostas presentes no espírito ao mesmo tempo e nem por isso deixar de funcionar.";i:1;s:19:"F. Scott Fitzgerald";}i:50;a:2:{i:0;s:73:"A genialidade é a capacidade de realizar aquilo que existe no pensamento.";i:1;s:19:"F. Scott Fitzgerald";}i:51;a:2:{i:0;s:94:"Usa a capacidade que tens. A floresta ficaria mais silenciosa se só o melhor pássaro cantasse.";i:1;s:14:"Henry Van Dyke";}i:52;a:2:{i:0;s:64:"O amor é a capacidade de perceber o semelhante no dessemelhante.";i:1;s:15:"Theodore Adorno";}i:53;a:2:{i:0;s:56:"Imagine uma nova história para sua vida e acredite nela.";i:1;s:12:"Paulo Coelho";}i:54;a:2:{i:0;s:200:"Desconfie do destino e acredite em você. Gaste mais horas realizando que sonhando, fazendo que planejando, vivendo que esperando porque, embora quem quase morre esteja vivo, quem quase vive já morreu.";i:1;s:14:"Sarah Westphal";}i:55;a:2:{i:0;s:105:"Alguns pensam que para se ser amigo basta querê-lo, como se para se estar são bastasse desejar a saúde...";i:1;s:11:"Aristóteles";}i:56;a:2:{i:0;s:60:"Querer vencer significa já ter percorrido metade do caminho.";i:1;s:10:"Paderewsky";}i:57;a:2:{i:0;s:62:"Felicidade não é ter o que você quer, é querer o que você tem.";i:1;s:15:"Spencer Johnson";}i:58;a:2:{i:0;s:96:"Você tem que acordar cada manhã com determinação se você pretende ir para a cama com satisfação.";i:1;s:14:"George Lorimer";}i:59;a:2:{i:0;s:110:"Se A é o sucesso, então A é igual a X mais Y mais Z. O trabalho é X; Y é o lazer; e Z é manter a boca fechada.";i:1;s:15:"Albert Einstein";}i:60;a:2:{i:0;s:61:"O sucesso é ir de fracasso em fracasso sem perder entusiasmo.";i:1;s:17:"Winston Churchill";}i:61;a:2:{i:0;s:219:"Viver é ser outro. Nem sentir é possível se hoje se sente como ontem se sentiu: sentir hoje o mesmo que ontem não é sentir - é lembrar hoje o que se sentiu ontem, ser hoje o cadáver vivo do que ontem foi a vida perdida.";i:1;s:15:"Fernando Pessoa";}i:62;a:2:{i:0;s:65:"A única forma de chegar ao impossível é acreditar que é possível.";i:1;s:28:"Alice no País das Maravilhas";}i:63;a:2:{i:0;s:93:"Não se pode ensinar nada a um homem; só é possivel ajudá-lo a encontrar a coisa dentro de si.";i:1;s:15:"Galileu Galilei";}i:64;a:2:{i:0;s:51:"Só é possível ensinar uma criança a amar, amando-a.";i:1;s:13:"Johann Goethe";}i:65;a:2:{i:0;s:78:"Por sabedoria entendo a arte de tornar a vida mais agradável e feliz possível.";i:1;s:19:"Arthur Schopenhauer";}i:66;a:2:{i:0;s:78:"A um homem bom não é possível que ocorra nenhum mal, nem em vida nem em morte.";i:1;s:8:"Sócrates";}i:67;a:2:{i:0;s:137:"O homem que empenha todo o seu trabalho e imaginação em oferecer por um dólar o mais possível em vez de menos, está condenado ao sucesso.";i:1;s:10:"Henry Ford";}i:68;a:2:{i:0;s:196:"Sem amor por si mesmo, o amor pelos outros também não é possível. O ódio por si mesmo é exatamente idêntico ao flagrante egoísmo e, no final, conduz ao mesmo isolamento cruel e ao mesmo desespero.";i:1;s:13:"Hermann Hesse";}i:69;a:2:{i:0;s:83:" É inútil dizer estamos a fazer o possível. Precisamos de fazer o que é necessário.";i:1;s:17:"Winston Churchill";}i:70;a:2:{i:0;s:100:"É possível mudar nossas vidas e a atitude daqueles que nos cercam simplesmente mudando a nós mesmos.";i:1;s:15:"Rudolf Dreikurs";}i:71;a:2:{i:0;s:58:"Para que resulte o possível deve ser tentado o impossível.";i:1;s:13:"Hermann Hesse";}i:72;a:2:{i:0;s:126:"Sem passar da porta de casa, é possível saber o que acontece no mundo... Quanto mais longe se busca o saber, menos se aprende.";i:1;s:7:"Lao-Tsé";}i:73;a:2:{i:0;s:110:"Basta ajuizar bem para bem fazer, e julgar o melhor que nos seja possível para fazermos também o nosso melhor.";i:1;s:14:"René Descartes";}i:74;a:2:{i:0;s:85:"Contra os ataques é possível nos defendermos: contra o elogio não se pode fazer nada.";i:1;s:13:"Sigmund Freud";}i:75;a:2:{i:0;s:70:"O que mais desespera não é o impossível. Mas o possível não alcançado.";i:1;s:13:"Robert Mallet";}i:76;a:2:{i:0;s:65:"É-nos possível viver sozinhos, desde que seja à espera de alguém.";i:1;s:15:"Gilbert Cesbron";}i:77;a:2:{i:0;s:127:"Com leis ruins e funcionários bons ainda é possível governar. Mas com funcionários ruins as melhores leis não servem para nada.";i:1;s:17:"Otto von Bismarck";}i:78;a:2:{i:0;s:137:"Ama-se a vitória difícil, porque a derrota lhe preenchia quase todo o espaço possível. E foi com o que restava que se venceu em todo ele.";i:1;s:17:"Vergílio Ferreira";}i:79;a:2:{i:0;s:105:"O sucesso é um professor perverso. Ele seduz as pessoas inteligentes e as faz pensar que jamais vão cair.";i:1;s:10:"Bill Gates";}i:80;a:2:{i:0;s:239:"Os nossos pais amam-nos porque somos seus filhos, é um fato inalterável. Nos momentos de sucesso isso pode parecer irrelevante, mas nas ocasiões de fracasso, oferecem um consolo e uma segurança que não se encontram em qualquer outro lugar.";i:1;s:16:"Bertrand Russell";}i:81;a:2:{i:0;s:59:"O termômetro do sucesso é apenas a inveja dos descontentes.";i:1;s:13:"Salvador Dalí";}i:82;a:2:{i:0;s:47:"O sucesso é uma consequência e não um objetivo.";i:1;s:16:"Gustave Flaubert";}i:83;a:2:{i:0;s:88:"Para ter sucesso neste mundo não basta ser estúpido, é preciso também ter boas maneiras.";i:1;s:8:"Voltaire";}i:84;a:2:{i:0;s:49:"O segredo do sucesso é a constância do propósito.";i:1;s:17:"Benjamin Disraeli";}i:85;a:2:{i:0;s:109:"Uma paixão forte por qualquer objetivo assegurará o sucesso, porque o desejo pelo objetivo mostrará os meios.";i:1;s:15:"William Hazlitt";}i:86;a:2:{i:0;s:101:"O sucesso torna as pessoas modestas, amigáveis e tolerantes; é o fracasso que as faz ásperas e ruins.";i:1;s:19:"W. Somerset Maugham";}i:87;a:2:{i:0;s:59:"Saber quando se deve esperar é o grande segredo do sucesso.";i:1;s:14:"Xavier Maistre";}i:88;a:2:{i:0;s:56:"Levei vinte anos para fazer sucesso da noite para o dia.";i:1;s:12:"Eddie Cantor";}i:89;a:2:{i:0;s:88:"Tudo o que é preciso na vida é ignorância e confiança; depois, o sucesso está garantido.";i:1;s:10:"Mark Twain";}i:90;a:2:{i:0;s:82:"Eu preferiria ser um fracasso em algo que amo do que um sucesso em algo que odeio.";i:1;s:12:"George Burns";}i:91;a:2:{i:0;s:103:"Que sua colheita seja abundante e eterna e o sorriso da felicidade e do sucesso enfeite os seus lábios.";i:1;s:14:"Lauro Trevisan";}i:92;a:2:{i:0;s:78:"A chave do sucesso da Sony e para tudo nos negócios é... não seguir os outros.";i:1;s:12:"Masura Ibuki";}i:93;a:2:{i:0;s:48:"O sucesso é uma viagem, não um ponto de destino.";i:1;s:13:"Bem Sweetland";}i:94;a:2:{i:0;s:39:"O sucesso e o amor preferem o corajoso.";i:1;s:6:"Ovídio";}i:95;a:2:{i:0;s:66:"Recompense o sucesso e o fracasso igualmente - puna a inatividade.";i:1;s:12:"David Kelley";}i:96;a:2:{i:0;s:61:"Perseguir, sem cessar, uma meta: Este é o segredo do sucesso.";i:1;s:12:"Anna Pavlova";}i:97;a:2:{i:0;s:83:"Você nunca alcança o sucesso verdadeiro a menos que você goste do que está fazendo.";i:1;s:13:"Dale Carnegie";}i:98;a:2:{i:0;s:116:"Eu sei o preço do sucesso: dedicação, trabalho duro, e uma incessante devoção às coisas que você quer ver acontecer.";i:1;s:18:"Frank Lloyd Wright";}i:99;a:2:{i:0;s:86:"Um dos segredos do sucesso é se recusar a deixar que reveses temporários nos derrotem.";i:1;s:8:"Mary Kay";}i:100;a:2:{i:0;s:51:"O sucesso é construído de 99 por cento de fracasso.";i:1;s:14:"Soichiro Honda";}i:101;a:2:{i:0;s:58:"O sucesso encoraja-os: eles podem porque pensam que podem.";i:1;s:8:"Virgílio";}i:102;a:2:{i:0;s:101:"Mesmo desacreditado e ignorado por todos, não posso desistir, pois para mim, vencer é nunca desistir.";i:1;s:15:"Albert Einstein";}i:103;a:2:{i:0;s:75:"Coragem é a resistência ao medo, domínio do medo, e não a ausência do medo.";i:1;s:10:"Mark Twain";}i:104;a:2:{i:0;s:90:"Um cavalo nunca corre tão rápido quanto corre quando tem outros para acompanhar e superar.";i:1;s:6:"Ovídio";}i:105;a:2:{i:0;s:94:"O amor é uma flor delicada, mas é preciso ter coragem de ir colhê-la à beira de um precipício.";i:1;s:8:"Stendhal";}i:106;a:2:{i:0;s:90:"Ser profundamente amado por alguém nos dá força; amar alguém profundamente nos dá coragem.";i:1;s:7:"Lao-Tsé";}i:107;a:2:{i:0;s:77:"A coragem é a primeira das qualidades humanas porque garante todas as outras.";i:1;s:11:"Aristóteles";}i:108;a:2:{i:0;s:55:"Saber o que é correto e não o fazer é falta de coragem.";i:1;s:8:"Confúcio";}i:109;a:2:{i:0;s:102:"Quem perde seus bens perde muito; quem perde um amigo perde mais; mas quem perde a coragem perde tudo.";i:1;s:19:"Miguel de Cervantes";}i:110;a:2:{i:0;s:106:"Os homens semeiam na terra o que colherão na vida espiritual: os frutos da sua coragem ou da sua fraqueza.";i:1;s:12:"Allan Kardec";}i:111;a:2:{i:0;s:92:"Todos os homens têm medo. Quem não tem medo não é normal; isso nada tem a ver com a coragem.";i:1;s:16:"Jean-Paul Sartre";}i:112;a:2:{i:0;s:119:"Você ganha força, coragem e confiança através de cada experiência em que você realmente para e encara o medo de frente.";i:1;s:17:"Eleanor Roosevelt";}i:113;a:2:{i:0;s:78:"É preciso impor a si mesmo algumas metas para se ter a coragem de alcançá-las.";i:1;s:16:"Benito Mussolini";}i:114;a:2:{i:0;s:67:"A maior prova de coragem é suportar as derrotas sem perder o ânimo.";i:1;s:16:"Robert Ingersoll";}i:115;a:2:{i:0;s:47:"A coragem conduz às estrelas, e o medo à morte.";i:1;s:6:"Sêneca";}i:116;a:2:{i:0;s:59:"A bravura provém do sangue, a coragem provém do pensamento.";i:1;s:18:"Napoleão Bonaparte";}i:117;a:2:{i:0;s:90:"Frequentemente é necessário mais coragem para ousar fazer certo do que temer fazer errado.";i:1;s:15:"Abraham Lincoln";}i:118;a:2:{i:0;s:93:"Eu não tenho nenhuma coragem, mas procedo como se a tivesse, o que talvez venha dar no mesmo.";i:1;s:16:"Gustave Flaubert";}i:119;a:2:{i:0;s:275:"Um homem pode ser tão grande quanto ele queira ser. Se você acredita em si mesmo e tem coragem, determinação, dedicação, iniciativa competitiva e se você está disposto a sacrificar as pequenas coisas da vida e pagar o preço pelas coisas que valem a pena, isso pode ser feito.";i:1;s:14:"Vince Lombardi";}i:120;a:2:{i:0;s:83:"A coragem significa um forte desejo de viver sob a forma de disposição para morrer.";i:1;s:16:"G. K. Chesterton";}i:121;a:2:{i:0;s:59:"Muitos talentos se perdem por falta de um pouco de coragem.";i:1;s:12:"Sydney Smith";}i:122;a:2:{i:0;s:77:"Quem tem coragem para enfrentar os perigos vence-os antes que eles o ameacem.";i:1;s:11:"Públio Siro";}i:123;a:2:{i:0;s:76:"Pouco nos importa o êxito. Trata-se de sermos grandes e não de o parecermos.";i:1;s:14:"Romain Rolland";}i:124;a:2:{i:0;s:118:"Não é um notável talento o que se exige para assegurar o êxito em qualquer empreendimento, mas sim um firme propósito.";i:1;s:15:"Thomas Atkinson";}i:125;a:2:{i:0;s:113:"Não existe comparação entre aquilo que é perdido por não se obter êxito e aquilo que é perdido por não se tentar.";i:1;s:13:"Francis Bacon";}i:126;a:2:{i:0;s:45:"A vida é maravilhosa se não se tem medo dela.";i:1;s:15:"Charles Chaplin";}i:127;a:2:{i:0;s:81:"Há noites que eu não posso dormir de remorso por tudo o que eu deixei de cometer.";i:1;s:14:"Mario Quintana";}i:128;a:2:{i:0;s:203:"Daqui a vinte anos você estará mais arrependido pelas coisas que não fez do que pelas que fez. Então solte suas amarras. Afaste-se do porto seguro. Agarre o vento em suas velas. Explore. Sonhe. Descubra.";i:1;s:19:"H. Jackson Brown Jr";}i:129;a:2:{i:0;s:184:"Concedei-nos Senhor, serenidade necessária para aceitar as coisas que não podemos modificar, coragem para modificar aquelas que podemos, e sabedoria para distinguirmos umas das outras.";i:1;s:16:"Reinhold Niebuhr";}i:130;a:2:{i:0;s:48:"O medo tem alguma utilidade, mas a covardia não.";i:1;s:14:"Mahatma Gandhi";}i:131;a:2:{i:0;s:111:"Combater e morrer, é pela morte derrotar a morte, mas temer e morrer é fazer-lhe homenagem com um sopro servil.";i:1;s:19:"William Shakespeare";}i:132;a:2:{i:0;s:129:"Tente a sua sorte! A vida é feita de oportunidades. O homem que vai mais longe é quase sempre aquele que tem coragem de arriscar.";i:1;s:13:"Dale Carnegie";}i:133;a:2:{i:0;s:131:"É a esta força que mantém sempre a opinião justa e legítima sobre o que é necessário temer e não temer, que chamo e defino coragem.";i:1;s:6:"Platão";}i:134;a:2:{i:0;s:62:"Acredite que você pode, assim você já está no meio do caminho.";i:1;s:18:"Theodore Roosevelt";}i:135;a:2:{i:0;s:67:"Acredite, existem pessoas que não procuram beleza, mas sim coração.";i:1;s:6:"Cazuza";}i:136;a:2:{i:0;s:50:"Está bem que você acredite em Deus. Mas vai armado";i:1;s:16:"Millôr Fernandes";}i:137;a:2:{i:0;s:97:"A felicidade não se resume na ausência de problemas, mas sim na sua capacidade de lidar com eles.";i:1;s:15:"Albert Einstein";}i:138;a:2:{i:0;s:143:"Todo mundo é um gênio. Mas, se você julgar um peixe por sua capacidade de subir em árvores, vai perder sua vida acreditando que ele é estúpido.";i:1;s:15:"Albert Einstein";}i:139;a:2:{i:0;s:106:"Quando você tem a capacidade de não falar, não ligar e não se importar, está aprendendo o que é ser forte.";i:1;s:12:"Renato Russo";}i:140;a:2:{i:0;s:133:"Quando eu perder a capacidade de indignar-me ante a hipocrisia e as injustiças deste mundo, enterre-me: por certo que já estou morto.";i:1;s:14:"Augusto Branco";}i:141;a:2:{i:0;s:94:"A soma de barulho que uma pessoa pode suportar está na razão inversa de sua capacidade mental.";i:1;s:19:"Arthur Schopenhauer";}i:142;a:2:{i:0;s:104:"Ele tem mulheres mais bonitas e o que tenho de melhor ele nem tem muita capacidade mental pra valorizar.";i:1;s:15:"Martha Medeiros";}i:143;a:2:{i:0;s:152:"Nossa força maior não está na capacidade de pensar, mas em algo mais poderoso: o poder de controlar e direcionar nossos pensamentos para onde quisermos.";i:1;s:13:"Napoleon Hill";}i:144;a:2:{i:0;s:118:"A liberdade é a capacidade do homem de assumir seu próprio desenvolvimento. É nossa capacidade de moldar a nós mesmos.";i:1;s:9:"Rollo May";}i:145;a:2:{i:0;s:75:"O insucesso é apenas uma oportunidade para recomeçar com mais inteligência.";i:1;s:10:"Henry Ford";}i:146;a:2:{i:0;s:65:"O futuro pertence àqueles que acreditam na beleza de seus sonhos.";i:1;s:17:"Eleanor Roosevelt";}i:147;a:2:{i:0;s:51:"Querer a verdade é confessar-se incapaz de a criar.";i:1;s:19:"Friedrich Nietzsche";}i:148;a:2:{i:0;s:199:"É preciso querer ser feliz e contribuir para isso. Se ficarmos na posição do espectador impassível, deixando para a felicidade apenas a entrada livre e as portas abertas, será a tristeza que entrará.";i:1;s:22:"Émile-Auguste Chartier";}i:149;a:2:{i:0;s:75:"Uma coisa é querer aprender. Outra é querer garantias de que não vai errar.";i:1;s:26:"Geraldo Eustáquio de Souza";}i:150;a:2:{i:0;s:52:"A vida vai ficando cada vez mais dura perto do topo.";i:1;s:19:"Friedrich Nietzsche";}i:151;a:2:{i:0;s:78:"O descontentamento é o primeiro passo na evolução de um homem ou de uma nação.";i:1;s:11:"Oscar Wilde";}i:152;a:2:{i:0;s:57:"É necessário ter o caos cá dentro para gerar uma estrela.";i:1;s:19:"Friedrich Nietzsche";}i:153;a:2:{i:0;s:124:"Se vives de acordo com as leis da natureza, nunca serás pobre; se vives de acordo com as opiniões alheias, nunca serás rico.";i:1;s:6:"Sêneca";}i:154;a:2:{i:0;s:103:"Eu acredito demais na sorte. E tenho constatado que, quanto mais duro eu trabalho, mais sorte eu tenho.";i:1;s:11:"Coleman Cox";}i:155;a:2:{i:0;s:90:"Cada hora de tempo perdida na mocidade é uma possibilidade a menos nos sucessos do futuro.";i:1;s:18:"Napoleão Bonaparte";}i:156;a:2:{i:0;s:83:"Quanto mais um homem se aproxima de suas metas, tanto mais crescem as dificuldades.";i:1;s:13:"Johann Goethe";}i:157;a:2:{i:0;s:79:"O importante para uma pessoa não são os seus sucessos mas sim quanto os deseja.";i:1;s:13:"Khalil Gibran";}i:158;a:2:{i:0;s:102:"Não devemos ter medo das novas idéias! Elas podem significar a diferença entre o triunfo e o fracasso.";i:1;s:13:"Napoleon Hill";}i:159;a:2:{i:0;s:65:"Sonhe, Lute, Conquiste, Tudo é possível, Você nasceu para Vencer.";i:1;s:12:"Andy Orlando";}i:160;a:2:{i:0;s:60:"Amar é querer estar perto, se longe; e mais perto, se perto.";i:1;s:18:"Vinicius de Moraes";}i:161;a:2:{i:0;s:39:"Tudo é aliado do homem que sabe querer.";i:1;s:16:"Machado de Assis";}i:162;a:2:{i:0;s:275:"Seja você quem for, seja qual for a posição social que você tenha na vida, a mais alta ou a mais baixa, tenha sempre como meta muita força, muita determinação e sempre faça tudo com muito amor e com muita fé em Deus, que um dia você chega lá. De alguma maneira você chega lá.";i:1;s:12:"Ayrton Senna";}i:163;a:2:{i:0;s:137:"A causa da derrota não está nos obstáculos ou no rigor das circunstâncias, está na falta de determinação e desistência da própria pessoa.";i:1;s:4:"Buda";}i:164;a:2:{i:0;s:31:"Mudar é difícil mas é possível.";i:1;s:12:"Paulo Freire";}i:165;a:2:{i:0;s:162:"Muitas pessoas pensam que a felicidade somente será possível depois de alcançar algo, mas a verdade é que deixar para ser feliz amanhã é uma forma de ser infeliz.";i:1;s:19:"Roberto Shinyashiki";}i:166;a:2:{i:0;s:169:"Torne o resto da sua vida tão significativo quanto possível. Consiste apenas em agir levando os outros em consideração. Assim, encontrará paz e felicidade para si mesmo.";i:1;s:10:"Dalai Lama";}i:167;a:2:{i:0;s:127:"Não é possível destruir o passado para reconstruir o presente, mas é possível reconstruir o presente para reescrever o passado.";i:1;s:12:"Augusto Cury";}i:168;a:2:{i:0;s:275:"Não precisamos de mais dinheiro, não precisamos de mais sucesso ou fama, não precisamos do corpo perfeito, nem mesmo do parceiro perfeito. Agora mesmo, neste momento exato, dispomos da mente, que é todo o equipamento básico de que precisamos para alcançar a plena felicidade.";i:1;s:10:"Dalai Lama";}i:169;a:2:{i:0;s:191:"Para se ter sucesso, é necessário amar de verdade o que se faz. Caso contrário, levando em conta apenas o lado racional, você simplesmente desiste. É o que acontece com a maioria das pessoas.";i:1;s:10:"Steve Jobs";}i:170;a:2:{i:0;s:82:"O único modo de escapar da corrupção causada pelo sucesso é continuar trabalhando.";i:1;s:15:"Albert Einstein";}i:171;a:2:{i:0;s:56:"O segredo do sucesso é saber algo que ninguém mais sabe.";i:1;s:11:"Aristóteles";}i:172;a:2:{i:0;s:86:"O mais importante ingrediente na fórmula do sucesso é saber como lidar com as pessoas.";i:1;s:18:"Theodore Roosevelt";}i:173;a:2:{i:0;s:106:"Um homem é um sucesso se pula da cama de manhã e vai dormir à noite, e, nesse meio tempo, faz o que gosta.";i:1;s:9:"Bob Dylan";}i:174;a:2:{i:0;s:81:"O sucesso não é a chave para a felicidade. A felicidade é a chave para o sucesso.";i:1;s:17:"Albert Schweitzer";}i:175;a:2:{i:0;s:75:"Lembra-te de que falando ou silenciando, sempre é possível fazer algum bem.";i:1;s:12:"Chico Xavier";}i:176;a:2:{i:0;s:220:"Mesmo que tenham cometidos erros gravíssimos no passado, é possível que essas pessoas se recuperem e evoluam de modo surpreendente, bastando que encontrem ambiente favorável e, no sorriso das pessoas, uma segunda chance.";i:1;s:14:"Augusto Branco";}i:177;a:2:{i:0;s:254:"Tente uma, duas, três vezes e se possível tente a quarta, a quinta e quantas vezes for necessário. Só não desista nas primeiras tentativas, a persistência é amiga da conquista. Se você quer chegar a onde a maioria não chega, faça o que a maioria não faz.";i:1;s:10:"Bill Gates";}i:178;a:2:{i:0;s:99:"Lutei para escapar da infância o mais cedo possível. E assim que consegui, voltei correndo pra ela.";i:1;s:12:"Orson Welles";}i:179;a:2:{i:0;s:44:"Não saber é o que torna nossa vida possível.";i:1;s:8:"Lya Luft";}i:180;a:2:{i:0;s:54:"Seja gentil quando for possível.... Sempre é possível.";i:1;s:10:"Dalai Lama";}i:181;a:2:{i:0;s:187:"A escolha é possível, em certo sentido, porém o que não é possível é não escolher. Eu posso sempre escolher, mas devo estar ciente de que, se não escolher, assim mesmo estarei escolhendo.";i:1;s:16:"Jean-Paul Sartre";}i:182;a:2:{i:0;s:193:"Sábio é o ser humano que tem coragem de ir diante do espelho da sua alma para reconhecer seus erros e fracassos e utilizá-los para plantar as mais belas sementes no terreno de sua inteligência.";i:1;s:12:"Augusto Cury";}i:183;a:2:{i:0;s:185:"Quando alguém encontra seu caminho precisa ter coragem suficiente para dar passos errados. As decepções, as derrotas, o desânimo são ferramentas que Deus utiliza para mostrar a estrada.";i:1;s:12:"Paulo Coelho";}i:184;a:2:{i:0;s:97:"O mundo está nas mãos daqueles que têm a coragem de sonhar e correr o risco de viver seus sonhos.";i:1;s:12:"Paulo Coelho";}i:185;a:2:{i:0;s:227:"Desenvolver força, coragem e paz interior demanda tempo. Não espere resultados rápidos e imediatos sob o pretexto de que decidiu mudar. Cada ação que você executa permite que essa decisão se torne efetiva dentro de seu coração.";i:1;s:10:"Dalai Lama";}i:186;a:2:{i:0;s:91:"O homem que tem coragem de desperdiçar uma hora do seu tempo não descobriu o valor da vida.";i:1;s:14:"Charles Darwin";}i:187;a:2:{i:0;s:144:"A esperança tem duas filhas lindas, a indignação e a coragem; a indignação nos ensina a não aceitar as coisas como estão; a coragem, a mudá-las.";i:1;s:15:"Santo Agostinho";}i:188;a:2:{i:0;s:229:"Em minhas preces de todo dia, sempre peço coragem e paciência. Coragem para continuar superando as dificuldades do caminho naqueles que não me compreendem. E paciência para não me entregar ao desânimo diante das minhas fraquezas!";i:1;s:12:"Chico Xavier";}i:189;a:2:{i:0;s:185:"Assumir nossos erros exige muita coragem em um mundo que parece feito de pessoas que sempre ganham todas... Assumir nossa ignorância exige muita humildade nesse mundo de quem sabe tudo.";i:1;s:19:"Roberto Shinyashiki";}i:190;a:2:{i:0;s:91:"A verdadeira coragem é ir atrás de seu sonho mesmo quando todos dizem que ele é impossível.";i:1;s:13:"Cora Coralina";}i:191;a:2:{i:0;s:113:"Assumir a responsabilidade por nossos atos, com coragem e disposição, nos coloca a favor da vida e ela nos apóia.";i:1;s:16:"Zíbia Gasparetto";}i:192;a:2:{i:0;s:72:"Devemos gerar coragem igual ao tamanho das dificuldades que enfrentamos.";i:1;s:10:"Dalai Lama";}i:193;a:2:{i:0;s:90:"A coragem é a primeira das qualidades humanas, porque é a qualidade que garante as demais.";i:1;s:17:"Winston Churchill";}i:194;a:2:{i:0;s:96:"É preciso coragem para levantar-se e falar, mas também é preciso coragem para sentar-se e ouvir.";i:1;s:17:"Winston Churchill";}i:195;a:2:{i:0;s:98:"Todo mundo gostaria de se mudar para um lugar mágico. Mas são poucos os que têm coragem de tentar.";i:1;s:11:"Rubem Alves";}i:196;a:2:{i:0;s:153:"Aprendi que a coragem não é a ausência do medo, mas o triunfo sobre ele. O homem corajoso não é aquele que não sente medo, mas o que conquista esse medo.";i:1;s:14:"Nelson Mandela";}i:197;a:2:{i:0;s:52:"Tem direito de criticar o que tem coragem de ajudar.";i:1;s:15:"Abraham Lincoln";}i:198;a:2:{i:0;s:175:"Tenha coragem para as grandes adversidades da vida e paciência para as pequenas, e quando tiver cumprido laboriosamente sua tarefa diária vá dormir em paz. Deus está acordado.";i:1;s:11:"Victor Hugo";}i:199;a:2:{i:0;s:264:"Não negue, apareça. Seja forte. Porque é preciso coragem para se arriscar num futuro incerto. Não posso esperar. Tenho tudo pronto dentro de mim e uma alma que só sabe viver presentes. Sem esperas, sem amarras, sem receios, sem cobertas, sem sentido, sem passados.";i:1;s:19:"Caio Fernando Abreu";}i:200;a:2:{i:0;s:70:"Guarde seus medos para si mesmo; com os outros, compartilhe a coragem.";i:1;s:16:"Robert Stevenson";}i:201;a:2:{i:0;s:79:"A vida é para quem topa qualquer parada. Não para quem para em qualquer topada.";i:1;s:10:"Bob Marley";}i:202;a:2:{i:0;s:116:"Construí amigos, enfrentei derrotas, venci obstáculos, bati na porta da vida e disse-lhe: Não tenho medo de vivê-la.";i:1;s:12:"Augusto Cury";}i:203;a:2:{i:0;s:150:"Os dois testes mais duros no caminho espiritual são a paciência para esperar o momento certo e a coragem de não nos decepcionar com o que encontramos.";i:1;s:12:"Paulo Coelho";}i:204;a:2:{i:0;s:232:"Não deixe o barulho da opinião dos outros abafar sua voz interior. E mais importante, tenha a coragem de seguir seu coração e sua intuição. Eles de alguma forma já sabem o que você realmente quer se tornar. Tudo o mais é secundário.";i:1;s:10:"Steve Jobs";}i:205;a:2:{i:0;s:73:"Um covarde é incapaz de demonstrar amor. Isso é privilégio dos corajosos.";i:1;s:14:"Mahatma Gandhi";}i:206;a:2:{i:0;s:106:"Evite desencorajar-se: mantenha ocupações e faça do otimismo a maneira de viver. Isso restaura a fé em si.";i:1;s:12:"Lucille Ball";}i:207;a:2:{i:0;s:228:"Para cultivar a sabedoria, é preciso força interior. Sem crescimento interno, é difícil conquistar a autoconfiança e a coragem necessárias. Sem elas, nossa vida se complica. O impossível torna-se possível com a força de vontade.";i:1;s:10:"Dalai Lama";}i:208;a:2:{i:0;s:94:"Viver é enfrentar desafios. Quem nunca enfrentou desafios, apenas passou pela vida, não viveu.";i:1;s:14:"Augusto Branco";}i:209;a:2:{i:0;s:137:"Que as outras pessoas e o medo nunca te vençam. Seja apenas tu a derrotar a ti mesmo, pela graça de teres superado todos os teus limites!";i:1;s:14:"Augusto Branco";}i:210;a:2:{i:0;s:220:"O Condor é uma ave que desde seu nascimento está destinado a alcançar as maiores altitudes, mas jamais conseguirá isso se enquanto ainda jovem e frágil não tiver a coragem para lançar-se ao espaço e alçar o primeiro vôo.";i:1;s:14:"Augusto Branco";}i:211;a:2:{i:0;s:138:"Ame, acredite, pense, grite, sonhe, conquiste, lute, batalhe, tenha força, tenha foco, tenha fé. Sorria e agradeça a Deus por mais um dia.";i:1;s:13:"Bruna Martins";}i:212;a:2:{i:0;s:175:"Amar alguém é viver o exercício de não querer fazer do outro o que a gente gostaria que ele fosse. A experiência de amar e ser amado é acima de tudo a experiência do respeito.";i:1;s:19:"Padre Fábio de Melo";}i:213;a:2:{i:0;s:89:"O segredo da felicidade não é fazer sempre o que se quer, mas querer sempre o que se faz.";i:1;s:12:"Leon Tolstói";}i:214;a:2:{i:0;s:133:"A vida me emociona o tempo todo mas se eu ficar chorando, quem vai pagar minhas contas e me querer cheia de olheiras? Então eu corro.";i:1;s:13:"Tati Bernardi";}i:215;a:2:{i:0;s:38:"É preciso, antes de mais nada, querer.";i:1;s:10:"Amyr Klink";}i:216;a:2:{i:0;s:110:"Não existe nada de mais esterilizante do que a perfeição de não se querer nada além do que está à nossa volta.";i:1;s:19:"Caio Fernando Abreu";}i:217;a:2:{i:0;s:116:"Talvez não cheguei aonde planejei ir. Mas cheguei sem querer aonde meu coração queria chegar, sem que eu o soubesse.";i:1;s:11:"Rubem Alves";}i:218;a:2:{i:0;s:137:"Mesmo sem querer a vida te ensina: que você se importar com as pessoas não é motivo suficiente para que elas também se importem com você.";i:1;s:14:"Pequena Sereia";}i:219;a:2:{i:0;s:65:"Assim que você para de querer alguma coisa, você consegue aquilo.";i:1;s:11:"Andy Warhol";}i:220;a:2:{i:0;s:97:"A ambição é louvável quando acompanhada pelo desejo e pela capacidade de fazer felizes os outros.";i:1;s:12:"Paul Holbach";}i:221;a:2:{i:0;s:88:"A disciplina é a chama refinadora através da qual o talento se transforma em capacidade.";i:1;s:9:"Roy Smith";}i:222;a:2:{i:0;s:47:"A pureza é a capacidade de contemplar a mácula.";i:1;s:11:"Simone Weil";}i:223;a:2:{i:0;s:191:"A vergonha é a preciosíssima capacidade do homem de relacionar os seus comportamentos com as exigências daquela suprema consciência que nos foi deixada de herança pela história da humanidade.";i:1;s:28:"Mikhail Saltykov-Stcherdrine";}i:224;a:2:{i:0;s:188:"A criatividade de uma nação está ligada à capacidade de pensar e teorizar, o que requer uma boa educação e, daí, partir para o inventar e, depois, ir até as últimas conseqüências no fazer.";i:1;s:23:"Cláudio de Moura Castro";}i:225;a:2:{i:0;s:109:"Por mais que você batalhe e vença com esforço, se você não conseguiu com honestidade você não conseguiu nada.";i:1;s:17:"Claudiney Ribeiro";}i:226;a:2:{i:0;s:50:"A disciplina é a parte mais importante do sucesso.";i:1;s:13:"Truman Capote";}i:227;a:2:{i:0;s:140:"O sucesso resulta de cem pequenas coisas feitas de forma um pouco melhor. O insucesso, de cem pequenas coisas feitas de forma um pouco pior.";i:1;s:15:"Henry Kissinger";}i:228;a:2:{i:0;s:32:"A disciplina é a mãe do sucesso.";i:1;s:7:"Ésquilo";}i:229;a:2:{i:0;s:93:"Sucesso é encontrar aquilo que se intenciona ser e depois fazer o que é necessário para isso.";i:1;s:8:"Epicteto";}i:230;a:2:{i:0;s:191:"Ninguém nunca conseguiu alcançar sucesso simplesmente fazendo o que lhe é solicitado. É a quantidade e a excelência do que está além do solicitado que determina a grandeza da distinção final.";i:1;s:21:"Charles Kendall Adams";}i:231;a:2:{i:0;s:92:"O sucesso na vida vem não de ter as cartas certas, mas de jogar com as erradas corretamente.";i:1;s:11:"Joshua Dool";}i:232;a:2:{i:0;s:83:"O sucesso é a soma de pequenos esforços - repetidos dia sim, e no outro dia também.";i:1;s:14:"Robert Collier";}i:233;a:2:{i:0;s:100:"Despertar interesse e inflamar o entusiasmo é o caminho certo para ensinar facilmente e com sucesso.";i:1;s:13:"Tryon Edwards";}i:234;a:2:{i:0;s:45:"Sempre mire no objetivo e esqueça do sucesso.";i:1;s:11:"Helen Hayes";}i:235;a:2:{i:0;s:66:"Eu não podia esperar pelo sucesso, então eu fui em frente sem ele.";i:1;s:16:"Jonathan Winters";}i:236;a:2:{i:0;s:113:"A maioria das pessoas pensa no sucesso e no fracasso como opostos, mas eles são ambos produtos do mesmo processo.";i:1;s:14:"Roger Von Oech";}i:237;a:2:{i:0;s:114:"Uma chave importante para o sucesso é a auto-confiança. Uma chave importante para a auto-confiança é a preparação.";i:1;s:11:"Arthur Ashe";}i:238;a:2:{i:0;s:79:"A alegria que se tem em pensar e aprender faz-nos pensar e aprender ainda mais.";i:1;s:11:"Aristóteles";}i:239;a:2:{i:0;s:61:"Não corrigir nossas falhas é o mesmo que cometer novos erros.";i:1;s:8:"Confúcio";}i:240;a:2:{i:0;s:63:"Mantenha-se forte diante do fracasso e livre diante do sucesso.";i:1;s:12:"Jean Cocteau";}i:241;a:2:{i:0;s:58:"O sucesso da vida significa unicamente insistência e ação.";i:1;s:19:"Ralph Waldo Emerson";}i:242;a:2:{i:0;s:136:"O primeiro passo em direção ao sucesso é dado quando você se recusa a ser prisioneiro do ambiente no qual você inicialmente se encontra.";i:1;s:10:"Mark Caine";}i:243;a:2:{i:0;s:131:"Realização parece estar conectada com ação. Homens e mulheres de sucesso mantêm-se em movimento. Eles cometem erros, mas não param.";i:1;s:13:"Conrad Hilton";}i:244;a:2:{i:0;s:62:"O sucesso frequentemente está a apenas uma idéia de distância.";i:1;s:10:"Frank Tyge";}i:245;a:2:{i:0;s:39:"As falhas são o combustível do sucesso.";i:1;s:8:"Ishikawa";}i:246;a:2:{i:0;s:129:"O sucesso é uma jornada, não um destino. A ação é geralmente mais importante que o resultado. Nem todo mundo pode ser o Número 1.";i:1;s:11:"Arthur Ashe";}i:247;a:2:{i:0;s:231:"Sucesso significa realizar seus próprios sonhos, cantar sua própria canção, dançar sua própria dança, criar do seu coração e apreciar a jornada, confiando que não importa o que aconteça, tudo ficará bem. Criar sua própria aventura!";i:1;s:15:"Elana Lindquist";}i:248;a:2:{i:0;s:79:"A diferença entre o impossível e o possível está na determinação de uma pessoa.";i:1;s:13:"Tommy Lasorda";}i:249;a:2:{i:0;s:59:"Toma coragem: o ápice da desventura não durará muito tempo.";i:1;s:7:"Ésquilo";}i:250;a:2:{i:0;s:42:"A grande coragem, para mim, é a prudência.";i:1;s:9:"Eurípedes";}i:251;a:2:{i:0;s:46:"A única coragem é falarmos na primeira pessoa.";i:1;s:13:"Arthur Adamov";}i:252;a:2:{i:0;s:77:"A coragem consiste em escolher o mal menor, por mais que ele ainda possa ser.";i:1;s:8:"Stendhal";}i:253;a:2:{i:0;s:55:"A coragem é a escada por onde sobem as outras virtudes.";i:1;s:10:"Clara Luce";}i:254;a:2:{i:0;s:35:"É preciso coragem para ter talento.";i:1;s:13:"Georg Brandes";}i:255;a:2:{i:0;s:102:"Temos a capacidade e a responsabilidade de escolher se nossas ações seguem um caminho virtuoso ou não.";i:1;s:10:"Dalai Lama";}i:256;a:2:{i:0;s:254:"Prepare-se para sua capacidade de amar, para sua melhor beleza, para fazer cada vez melhor o que você sabe, seja quindim, amor, coleção de selos, estudos transcendentais, harpa, pipoca, pensamento de Kant, numismática, sorriso, sinuca ou cirurgia ocular.";i:1;s:15:"Artur da Távola";}i:257;a:2:{i:0;s:197:"Em uma época de mudanças drásticas, são os que têm capacidade de aprender que herdam o futuro. Quanto aos que já aprenderam, estes descobrem-se equipados para viver em um mundo que não existe mais.";i:1;s:11:"Eric Hoffer";}i:258;a:2:{i:0;s:144:"Quero viver enquanto estiver acesa, em mim, a capacidade de me comover diante da beleza. Essa capacidade de sentir alegria é a essência da vida.";i:1;s:11:"Rubem Alves";}i:259;a:2:{i:0;s:92:"O sucesso parece ser, em grande parte, uma questão de persistir quando os outros desistiram.";i:1;s:15:"William Feather";}i:260;a:2:{i:0;s:94:"Se tantas pessoas dizem que você é capaz, então acredite, lute e conquiste pois você consegue.";i:1;s:31:"Odenir Alves de Oliveira Júnior";}i:261;a:2:{i:0;s:48:"Querer ser do seu tempo é já estar ultrapassado.";i:1;s:14:"Eugéne Ionesco";}i:262;a:2:{i:0;s:111:"Suportar sem se submeter, aceitar sem se humilhar, entregar-se sem renunciar a si mesmo e à possível dignidade.";i:1;s:8:"Lya Luft";}i:263;a:2:{i:0;s:207:"Uma vida sem pensamento é totalmente possível, mas ela fracassa em fazer desabrochar sua própria essência – ela não é apenas sem sentido; ela não é totalmente viva. Homens que não pensam são como sonâmbulos.";i:1;s:13:"Hannah Arendt";}i:264;a:2:{i:0;s:105:"Aprendi que é possível seguir em frente, não importa quanto pareça impossível. Com o tempo a dor diminui.";i:1;s:12:"Querido John";}i:265;a:2:{i:0;s:184:"Num tempo em que você não pode dizer tudo o que quer, continue trabalhando, faça o possível para que, no dia em que haja condições reais de você dizer o que quer, saiba fazê-lo melhor.";i:1;s:14:"Bertolt Brecht";}i:266;a:2:{i:0;s:129:"Não é possível dar um passo adiante com os olhos fitos no passado, mas olhando ao horizonte, e com os pés bem firmes no presente!";i:1;s:14:"Augusto Branco";}i:267;a:2:{i:0;s:131:"Alguém precisou acreditar que era possível alcançar as estrelas para que o homem parasse de andar em carroças e chegasse ao espaço.";i:1;s:14:"Augusto Branco";}i:268;a:2:{i:0;s:28:"Tudo é possível ao que crer.";i:1;s:12:"Jesus Cristo";}i:269;a:2:{i:0;s:152:"Porque, na vida real, o amor precisa ser possível. Mesmo que não haja uma retribuição imediata, o amor só consegue sobreviver quando existe a esperança.";i:1;s:12:"Paulo Coelho";}i:270;a:2:{i:0;s:89:"Você só conhece uma pessoa depois de uma briga. Só então é possível julgar o seu caráter.";i:1;s:10:"Anne Frank";}i:271;a:2:{i:0;s:92:"Decida o que quer. Acredite que pode tê-lo. Acredite que o merece e acredite que é possível!";i:1;s:15:"Livro O Segredo";}i:272;a:2:{i:0;s:180:"O segredo do sucesso é aprender como usar a dor e o prazer, em vez de deixar que usem você. Se fizer isso, estará no controle de sua vida. Se não fizer, é a vida que controla você.";i:1;s:15:"Anthony Robbins";}i:273;a:2:{i:0;s:42:"O sucesso sempre foi a criação da ousadia.";i:1;s:8:"Voltaire";}i:274;a:2:{i:0;s:62:"Obstinação é o caminho mais curto para você atingir o sucesso!";i:1;s:15:"Charles Chaplin";}i:275;a:2:{i:0;s:154:"O sucesso depende da energia do ato, da energia da crença de que se triunfará e da crença de que se está na verdade, que assim se verifica por si própria.";i:1;s:13:"William James";}i:276;a:2:{i:0;s:61:"O sucesso não vale nada se não temos alguém para partilhá-lo.";i:1;s:15:"Anthony Robbins";}i:277;a:2:{i:0;s:128:"O sucesso acompanha quem assume a responsabilidade por si próprio, quem faz a própria vida - quem não espera, mas faz acontecer.";i:1;s:14:"Augusto Branco";}i:278;a:2:{i:0;s:85:"Projetos conjuntos têm mais chance de sucesso quando se beneficiam de ambos os lados.";i:1;s:9:"Eurípedes";}i:279;a:2:{i:0;s:58:"Só no Dicionário é que o trabalho vem depois do sucesso...";i:1;s:15:"Albert Einstein";}i:280;a:2:{i:0;s:86:"A verdadeira felicidade e sucesso consiste em gastar nossas energias com um propósito.";i:1;s:14:"William Cowper";}i:281;a:2:{i:0;s:147:"Muitos poderão obter sucesso na vida, mas a verdadeira felicidade só será conhecida por aqueles que possuem Graça, Determinação, Paixão e Espírito!";i:1;s:14:"Augusto Branco";}i:282;a:2:{i:0;s:181:"Chame o sucesso para fazer parte de sua vida. Acredite no seu potencial criador, seja inovador, treine sua mente para vencer, estipule metas e, principalmente, lute por seus ideais.";i:1;s:12:"Flávio Souza";}i:283;a:2:{i:0;s:196:"Faça sua história, acredite nela, tenha fé e coragem para fazer de seus sonhos a realidade, busque o próximo, pois os sonhos e as histórias precisam de uma eternidade de seres para deixarmos real.";i:1;s:15:"Alexandra Guiso";}i:284;a:2:{i:0;s:135:"Quero ter duendes a meu redor, porque sou corajoso. A coragem que afugenta os fantasmas cria seus próprios duendes: a coragem quer rir.";i:1;s:19:"Friedrich Nietzsche";}i:285;a:2:{i:0;s:101:"A verdadeira coragem consiste apenas em não nos importarmos com a opinião dos outros. Mas como custa!";i:1;s:14:"Mario Quintana";}i:286;a:2:{i:0;s:223:"A coragem da vida é uma magnífica mistura de triunfo e tragédia. O homem faz o que deve fazer apesar das consequências pessoais - apesar dos obstáculos, dos perigos e das pressões - esse é o fundamento de toda a moralidade.";i:1;s:15:"John F. Kennedy";}i:287;a:2:{i:0;s:155:"Os ideais que iluminaram meu caminho, e que, de tempos em tempos me dão nova coragem para enfrentar a vida com alegria são a bondade, a beleza e a verdade…";i:1;s:15:"Albert Einstein";}i:288;a:2:{i:0;s:94:"Quem for feliz, torne também feliz os outros. Quem tem coragem e fé nunca perecerá na miséria.";i:1;s:10:"Anne Frank";}}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:12:"Bem-vindo(a)";i:2;i:1;}s:2:"en";a:2:{i:1;s:7:"Welcome";i:2;i:1;}}}s:5:"local";a:9:{s:15:"caption-display";i:0;s:12:"mod-position";s:4:"left";s:10:"margin-top";s:4:"auto";s:12:"margin-right";s:4:"auto";s:13:"margin-bottom";s:4:"auto";s:11:"margin-left";s:4:"auto";s:4:"list";s:7:"default";s:9:"list-type";s:6:"inline";s:7:"details";s:14:"button_caption";}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:15:"Redefinir senha";i:2;i:1;}s:2:"en";a:1:{i:1;s:15:"Change password";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:14:"Dados pessoais";i:2;i:1;}s:2:"en";a:1:{i:1;s:13:"Personal data";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:10:"Meu perfil";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"My profile";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:3:{i:1;s:31:"Turbinado pelo Portal Ecolabore";i:2;i:1;i:6;i:1;}s:2:"en";a:3:{i:1;s:27:"Powered by Ecolabore Portal";i:2;i:1;i:6;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:3:{i:1;s:23:"Voltar à página inicial";i:2;i:1;i:5;i:2;}s:2:"en";a:2:{i:1;s:17:"Back to home page";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:3:{i:1;s:15:"Sobre este site";i:2;i:1;i:5;i:2;}s:2:"en";a:2:{i:1;s:15:"About this site";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:4:{i:1;s:28:"Sobre [text $system.caption]";i:2;i:1;i:5;i:2;i:6;i:1;}s:2:"en";a:3:{i:1;s:28:"About [text $system.caption]";i:2;i:1;i:6;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:3:{i:1;s:19:"Esqueci minha senha";i:2;i:1;i:5;i:2;}s:2:"en";a:2:{i:1;s:21:"Forgot your password?";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:3:{i:1;s:23:"Política de privacidade";i:2;i:1;i:5;i:2;}s:2:"en";a:2:{i:1;s:14:"Privacy policy";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:3:{i:1;s:8:"Usuários";i:2;i:1;i:5;i:2;}s:2:"en";a:2:{i:1;s:5:"Users";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:3:{i:1;s:14:"Reportar abuso";i:2;i:1;i:5;i:2;}s:2:"en";a:2:{i:1;s:12:"Abuse report";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:3:{i:1;s:17:"Termos de serviço";i:2;i:1;i:5;i:2;}s:2:"en";a:2:{i:1;s:13:"Service terms";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:3:{i:1;s:11:"Cadastre-se";i:2;i:1;i:5;i:2;}s:2:"en";a:2:{i:1;s:9:"Subscribe";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:12:"Bem-vindo(a)";i:2;i:1;}s:2:"en";a:2:{i:1;s:7:"Welcome";i:2;i:1;}}}}a:3:{s:5:"flags";a:3:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:7:"control";s:14:"modLayout_name";s:18:"dialog_tabsObjects";}s:5:"local";a:1:{s:6:"scheme";s:6:"system";}s:4:"text";a:1:{s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:24:"Configurações para vídeo";i:2;i:1;}s:2:"en";a:1:{i:1;s:24:"Configurations for video";}}}}a:2:{s:4:"text";a:2:{s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:13:"Inserir vídeo";i:2;i:1;}s:2:"en";a:1:{i:1;s:12:"Insert video";}}s:11:"description";a:2:{s:2:"pt";a:2:{i:1;s:60:"Acione a âncora no canto desta caixa para adicionar um vídeo";i:2;i:1;}s:2:"en";a:1:{i:1;s:57:"Click the anchor in the corner of this box to add a video";}}}s:5:"local";a:13:{s:12:"mod-position";s:6:"inline";s:5:"wd-sm";s:1:"6";s:5:"wd-lg";s:1:"6";s:12:"box-position";s:6:"inline";s:10:"box-scheme";s:4:"card";s:11:"box-padding";s:6:".25rem";s:11:"box-rounded";s:1:"0";s:10:"box-shadow";s:12:"border-doted";s:4:"list";s:7:"default";s:9:"list-type";s:6:"inline";s:10:"list-align";s:6:"center";s:7:"details";s:7:"title_3";s:24:"details-vertical-spacing";s:3:"100";}}a:3:{s:5:"flags";a:1:{s:9:"multipart";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:24:"Configurações para vídeo";i:2;i:1;}s:2:"en";a:1:{i:1;s:24:"Configurations for video";}}}s:8:"children";a:6:{i:0;s:6:"_start";i:1;s:9:"~tabVideo";i:2;s:11:"~tabCaption";i:3;s:30:"personaliteModules_tabPosition";i:4;s:9:"~tabStyle";i:5;s:4:"_end";}}a:2:{s:5:"flags";a:4:{s:4:"type";s:14:"textarea_small";s:6:"filter";s:4:"text";s:10:"field_name";s:11:"description";s:6:"target";s:16:"text/description";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"Descrição";i:2;i:1;}s:2:"en";a:1:{i:1;s:11:"Description";}}}}a:2:{s:5:"flags";a:2:{s:6:"filter";s:8:"modVideo";s:10:"field_name";s:5:"video";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"Vídeo (*.mp4)";i:2;i:1;}s:2:"en";a:1:{i:1;s:13:"Video (*.mp4)";}}}}a:3:{s:5:"flags";a:1:{s:6:"filter";s:9:"formulary";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:7:"Legenda";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Caption";}}}s:8:"children";a:3:{i:0;s:26:"personaliteModules_caption";i:1;s:33:"personaliteModules_captionDisplay";i:2;s:32:"personaliteModules_captionLegend";}}a:3:{s:5:"flags";a:1:{s:6:"filter";s:9:"formulary";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Estilo";i:2;i:1;}s:2:"en";a:1:{i:1;s:5:"Style";}}}s:8:"children";a:4:{i:0;s:28:"personaliteModules_boxScheme";i:1;s:29:"personaliteModules_boxPadding";i:2;s:28:"personaliteModules_boxShadow";i:3;s:29:"personaliteModules_boxRounded";}}a:3:{s:5:"flags";a:1:{s:6:"filter";s:9:"formulary";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:5:"Vídeo";i:2;i:1;}s:2:"en";a:1:{i:1;s:5:"Video";}}}s:8:"children";a:2:{i:0;s:10:"~editVideo";i:1;s:16:"~editDescription";}}a:4:{s:5:"flags";a:3:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:9:"templates";s:14:"modLayout_name";s:6:"dialog";}s:5:"local";a:1:{s:6:"scheme";s:6:"system";}s:4:"text";a:1:{s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:12:"Enviar vídeo";i:2;i:1;}s:2:"en";a:1:{i:1;s:12:"Submit video";}}}s:8:"children";a:5:{i:0;s:6:"_start";i:1;s:12:"~uploadVideo";i:2;s:10:"_separator";i:3;s:7:"_cancel";i:4;s:4:"_end";}}a:3:{s:5:"flags";a:2:{s:6:"filter";s:8:"file_big";s:10:"field_name";s:5:"video";}s:5:"local";a:1:{s:6:"accept";s:7:"video/*";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:5:"Vídeo";i:2;i:1;}s:2:"en";a:1:{i:1;s:13:"Video (*.mp4)";}}}}a:3:{s:5:"flags";a:3:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:9:"templates";s:14:"modLayout_name";s:6:"dialog";}s:5:"local";a:1:{s:6:"scheme";s:6:"system";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:20:"Central de aparência";i:2;i:1;}s:2:"en";a:1:{i:1;s:16:"Apearance center";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:20:"Central de aparência";i:2;i:1;}s:2:"en";a:1:{i:1;s:16:"Apearance center";}}}}a:3:{s:5:"flags";a:3:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:7:"control";s:14:"modLayout_name";s:27:"personaliteApearance_layout";}s:5:"local";a:1:{s:6:"scheme";s:76:"document document-text-color document-background-color document-border-color";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:22:"Personalizar aparência";i:2;i:1;}s:2:"en";a:1:{i:1;s:16:"Custom apearance";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:22:"Personalizar aparência";i:2;i:1;}s:2:"en";a:1:{i:1;s:16:"Custom apearance";}}}}a:2:{s:5:"notes";s:121:"#r#nproperties = [#r#ncurrentValue 0#r#ncurrentDefault 1#r#ncurrentFrom 2#r#ncurrentClass 3#r#ncurrentProperty 4#r#ncurrentName 5 #r#n]#r#n";s:4:"html";s:1795:"#r#n[cut:script select_color]#r#n#r#n// opens select color dialog#r#ndialogColorName = "";#r#ndialogColorTarget = "";#r#n#r#nfunction dialogColorOpen (name, target){#r#ndialogColorTarget = target;#r#ndialogColorName = name;#r#nvar left = (screen.width) ? (screen.width-250)/2 : 250;#r#nvar top = (screen.height) ? (screen.height-550)/2 : 25;#r#ndialogColorWindow = window.open (#s[$url]#s, #s#s, #slocation=no, menubar=no, personalbar=no, status=no, toolbar=no, width=250, height=550, top=#s+top+#s, left=#s+left);#r#n}#r#n#r#n// transfer current color to dialog window#r#nfunction dialogColorLoad(){#r#nvar value = document.getElementById(dialogColorName).value;#r#nif (value == "")#r#nvalue = document.getElementById(dialogColorName).dataset.current;#r#n#r#nreturn value;#r#n}#r#n#r#n// closes select color dialog#r#nfunction dialogColorClose(color){#r#ndocument.getElementById(dialogColorName).value = color;#r#ndialogStyleRefresh();#r#ndialogColorWindow.close();#r#n}#r#n#r#n[/cut]#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n[script]#r#nproperties.[$target] = []"[$value]", "[$default]", "[$from]", "[$class]", "[$property]", "[$name]"];#r#n[/script]#r#n[if $help{ ``; nl; help(`form`); }]#r#n#r#n";}a:2:{s:5:"notes";s:121:"#r#nproperties = [#r#ncurrentValue 0#r#ncurrentDefault 1#r#ncurrentFrom 2#r#ncurrentClass 3#r#ncurrentProperty 4#r#ncurrentName 5 #r#n]#r#n";s:4:"html";s:3447:"#r#n[cut:script select_font]#r#n#r#n// opens select font dialog#r#ndialogFontWindow = false;#r#ndialogFontName = "";#r#ndialogFontTarget = "";#r#n#r#nfunction dialogFontOpen (name, target){#r#ndialogFontTarget = target;#r#ndialogFontName = name;#r#nvar left = (screen.width) ? (screen.width-250)/2 : 250;#r#nvar top = (screen.height) ? (screen.height-550)/2 : 25;#r#ndialogFontWindow = window.open ("[$url]", "", "location=no, menubar=no, personalbar=no, resizable=no, scrollbars=no, status=no, toolbar=no, width=250, height=550, top="+top+", left="+left);#r#n}#r#n#r#n// transfer current font to dialog window#r#nfunction dialogFontLoad(){#r#nvar values = {}#r#nvalues.fontName = document.getElementById(dialogFontName + "_font_name").value;#r#nvalues.fontWeight = document.getElementById(dialogFontName + "_font_weight").value;#r#nvalues.fontSize = document.getElementById(dialogFontName + "_font_size").value;#r#nvalues.lineHeight = document.getElementById(dialogFontName + "_line_height").value;#r#nreturn values;#r#n}#r#n#r#n// closes select font dialog#r#nfunction dialogFontClose (values){#r#ndocument.getElementById(dialogFontName + "_font_name").value = values.fontName;#r#ndocument.getElementById(dialogFontName + "_font_family").value = values.fontFamily;#r#ndocument.getElementById(dialogFontName + "_font_weight").value = values.fontWeight;#r#ndocument.getElementById(dialogFontName + "_font_size").value = values.fontSize;#r#ndocument.getElementById(dialogFontName + "_line_height").value = values.lineHeight;#r#n#r#ndialogFontWindow.close();#r#ndialogStyleRefresh();#r#n}#r#n[/cut]#r#n#r#n[text]#r#n#r#n[text]#r#n#r#n#r#n#r#n#r#n#r#n#r#n[if($new-font-face){#r#ncut(`style`); $font-face-value; nl; /cut;#r#n}]#r#n[script]#r#n[if $font-family-enabled {]#r#nproperties.[$target]_font_name = []"[$font-name-value]", "[$font-name-default]", "[$font-name-from]", "", "", "[$name]_font_name"];#r#nproperties.[$target]_font_family = []"[$font-family-value]", "[$font-family-default]", "[$font-family-from]", "[$class]-font-family", "fontFamily", "[$name]_font_family"];#r#n[}]#r#n[if $font-weight-enabled {]#r#nproperties.[$target]_font_weight = []"[$font-weight-value]", "[$font-weight-default]", "[$font-weight-from]", "[$class]-font-weight", "fontWeight", "[$name]_font_weight"];#r#n[}]#r#n[if $font-size-enabled {]#r#nproperties.[$target]_font_size = []"[$font-size-value]", "[$font-size-default]", "[$font-size-from]", "[$class]-font-size", "fontSize", "[$name]_font_size"];#r#n[}]#r#n[if $line-height-enabled {]#r#nproperties.[$target]_line_height = []"[$line-height-value]", "[$line-height-default]", "[$line-height-from]", "[$class]-line-height", "lineHeight", "[$name]_line_height"];#r#n[}]#r#n[/script]#r#n[if $help{ ``; nl; help(`form`); }]#r#n#r#n";}a:2:{s:5:"notes";s:117:"#r#ncolors = [#r#ncurrentValue 0#r#ncurrentDefault 1#r#ncurrentFrom 2#r#ncurrentClass 3#r#ncurrentProperty 4#r#ncurrentName 5 #r#n]#r#n";s:4:"html";s:676:"#r#n#r#n#r#n#r#n#r#n[script]#r#nproperties.[$target] = []"[$value]", "[$default]", "[$from]", "[$class]", "[$property]", "[$name]"];#r#n[/script]#r#n[if $help{ ``; nl; help(`form`); }]#r#n#r#n";}a:4:{s:5:"flags";a:3:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:7:"control";s:14:"modLayout_name";s:27:"personaliteApearance_layout";}s:5:"local";a:1:{s:6:"scheme";s:125:"document document-background-color document-text-color document-border-color text-font-family text-font-size text-line-height";}s:4:"html";s:5035:"[script]#r#n#r#n// changes dialog tab#r#ntabOld = 2;#r#n#r#nfunction changeTab(tabIndex){#r#ndocument.getElementById ("tab_content_" + tabOld).style.display = "none";#r#ndocument.getElementById ("tab_button_" + tabOld).className = "button nav-background-color nav-text-color button-border-radius button-font-family button-font-weight button-font-size button-line-height";#r#ndocument.getElementById ("tab_content_" + tabIndex).style.display = "block";#r#ndocument.getElementById ("tab_button_" + tabIndex).className = "button active active-text-color active-background-color button-border-radius button-font-family button-font-weight button-font-size button-line-height";#r#ntabOld = tabIndex;#r#ndialogStyleRefresh ();#r#n}#r#n#r#n// submit configurations#r#nfunction dialogOk(){#r#ndocument.controls.submit();#r#n}#r#n#r#n// Restore default configurations#r#nfunction dialogRestore(){#r#ndocument.controls.save.value = #srestore#s;#r#ndocument.controls.submit();#r#n}#r#n#r#n// closes dialog window#r#nfunction dialogClose(){#r#nwindow.close();#r#n}#r#n#r#n// set correct classes to the system bar#r#ndocument.getElementById ("layout_system_bar").className = "system system-text-color system-background-color bar-height bar-font-family bar-font-weight bar-font-size bar-line-height";#r#ndocument.getElementById ("layout_system_icons").className = "system-text-color bar-height";#r#n#r#n// Updates document apearance#r#nproperties = {};#r#n#r#nfunction dialogStyleRefresh (){#r#nfor (var currentTarget in properties)#r#n{ // each property#r#ncurrentProperty = properties[]currentTarget];#r#ntarget = currentTarget;#r#nvalue = document.getElementById (currentProperty[]5]).value;#r#ncurrentProperty[]0] = value;#r#nwhile (value == "")#r#n{ // find value#r#nvalue = properties[]target][]0];#r#nif (value == "")#r#nvalue = properties[]target][]1];#r#nif (value == "")#r#n{#r#ntarget = properties[]target][]2];#r#nif (target == "")#r#nbreak;#r#nif (!properties[]target])#r#nbreak;#r#n}#r#n} // find color#r#n#r#nvar classList = document.getElementsByClassName (currentProperty[]3]);#r#nvar cssProperty = currentProperty[]4];#r#n#r#nfor (var index = 0; index < classList.length; index++)#r#n{ // loop each html element#r#nclassList[]index].style[]cssProperty] = value;#r#n} // loop each html element#r#n#r#nvar id = currentProperty[]5] + "_link";#r#nvar link = document.getElementById (id);#r#nif (link)#r#nlink.style.backgroundColor = value;#r#n#r#ndocument.getElementById (currentProperty[]5]) .dataset.current = value;#r#n} // each property#r#n}#r#n[/script]#r#n[mod:fontfaces]#r#n#r#n[mod(`formulary`){ list{]#r#n
      #r#n#r#n#r#n#r#n#r#n#r#n[next]#r#n#r#n[cut:tab_option]#r#n [text] #r#n[/cut]#r#n#r#n#r#n
      #r#n
      #r#n

      [text]

      #r#n[text $content]#r#n#r#n[list{ loop{ field; }} ]#r#n
      #r#n
      #r#n
      #r#n#r#n#r#n[next; loop{ if(!$last){]#r#n[cut:tab_option]#r#n [text] #r#n[/cut]#r#n#r#n#r#n#r#n#r#n[}else{]#r#n#r#n[list { loop{]#r#n#r#n[}}]#r#n#r#n
      #r#n[}}]#r#n#r#n#r#n
      #r#n
      #r#n#r#n#r#n#r#n
      #r#n
      #r#n#r#n#r#n[}}]#r#n[cut:footerscript]#r#ndialogStyleRefresh ();#r#n[/cut]#r#n";s:6:"blocks";a:3:{s:21:"fields/color_testable";s:32:"personaliteApearance_fieldsColor";s:20:"fields/font_testable";s:31:"personaliteApearance_fieldsFont";s:22:"fields/select_testable";s:33:"personaliteApearance_fieldsSelect";}}a:5:{s:5:"flags";a:4:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:7:"control";s:14:"modLayout_name";s:34:"personaliteApearance_color_content";s:19:"modLayout_cacheable";i:43200;}s:5:"local";a:1:{s:6:"scheme";s:6:"system";}s:4:"text";a:1:{s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:12:"Escolher cor";i:2;i:1;}s:2:"en";a:2:{i:1;s:12:"Select color";i:2;i:1;}}}s:4:"html";s:42553:"[style]#r#n .colors>div{#r#n width: 25px; #r#n height: 25px;#r#n }#r#n#r#n[/style]#r#n[script]#r#n#r#n// converts decimal to hexadecimal between 0 and 255#r#ndecHexValues = []#s0#s, #s1#s, #s2#s, #s3#s, #s4#s, #s5#s, #s6#s, #s7#s, #s8#s, #s9#s, #sa#s, #sb#s, #sc#s, #sd#s, #se#s, #sf#s];#r#n#r#nfunction decHex(n){#r#nnHi = parseInt(n / 16);#r#nnLow = n - (nHi * 16);#r#nnFound = decHexValues[]nHi] + decHexValues[]nLow];#r#nreturn nFound;#r#n}#r#n#r#n// changes dialog mode (hex, dec, alpha)#r#ndialogColorMode = 1;#r#n#r#nfunction colorChangeMode(){#r#nif (document.controls.mode[]0].checked){#r#ndocument.controls.r.value = decHex(document.controls.r.value);#r#ndocument.controls.g.value = decHex(document.controls.g.value);#r#ndocument.controls.b.value = decHex(document.controls.b.value);#r#n}else if (dialogColorMode == 0){#r#ndocument.controls.r.value = parseInt(#s0x#s+document.controls.r.value);#r#ndocument.controls.g.value = parseInt(#s0x#s+document.controls.g.value);#r#ndocument.controls.b.value = parseInt(#s0x#s+document.controls.b.value);#r#n}#r#n if (document.controls.mode[]2].checked){#r#ndocument.getElementById(#sa_hide#s).style.display = #sblock#s;#r#n}else if (dialogColorMode == 2){#r#ndocument.getElementById(#sa_hide#s).style.display = #snone#s;#r#n}#r#n#r#nif (document.controls.mode[]0].checked){#r#ndialogColorMode = 0;#r#n}else if (document.controls.mode[]2].checked){#r#ndialogColorMode = 2;#r#n}else{#r#ndialogColorMode = 1;#r#n}#r#ndialogColorDisplay (document.controls.r.value, document.controls.g.value, document.controls.b.value);#r#n}#r#n#r#n// receive current color on start and determines mode (hex/dec/alpha)#r#nfunction dialogColorStart(){#r#ncolor = window.opener.dialogColorLoad();#r#nr = 255;#r#ng = 255;#r#nb= 255;#r#nif (!color){#r#n}else if (color == "transparent"){#r#n}else if (color.charAt(0) == #s#c#s && color.length == 7){#r#ndocument.controls.mode[]0].checked = true;#r#ndialogColorMode = 0;#r#nr = color.charAt(1)+color.charAt(2);#r#ng = color.charAt(3)+color.charAt(4);#r#nb = color.charAt(5)+color.charAt(6);#r#n}else if (color.charAt(0) == #s#c#s && color.length == 4){#r#ndocument.controls.mode[]0].checked = true;#r#ndialogColorMode = 0;#r#nr = color.charAt(1)+color.charAt(1);#r#ng = color.charAt(2)+color.charAt(2);#r#nb = color.charAt(3)+color.charAt(3);#r#n}else{#r#nregExp = /^rgba?#e(#es?(#ed+)#e,#es?(#ed+)#e,#es?(#ed+)#e,?#es?([]0-9.]*)/#r#nfound = regExp.exec(color);#r#nif (found[]3]){#r#nr = found[]1];#r#ng = found[]2];#r#nb = found[]3];#r#nif (found[]4]){#r#na = found[]4];#r#na = 10 - parseInt(a * 10);#r#ndocument.controls.a.selectedIndex = a;#r#ndocument.controls.mode[]2].checked = true;#r#ndialogColorMode = 2;#r#ndocument.getElementById(#sa_hide#s).style.display = #sblock#s;#r#n}#r#n}#r#n}#r#ndocument.controls.r.value = r;#r#ndocument.controls.g.value = g;#r#ndocument.controls.b.value = b;#r#ndialogColorDisplay (r, g, b);#r#n}#r#n#r#n// when user choose a color from palette#r#nfunction paleta (r, g, b) {#r#nif (!document.controls.mode[]0].checked){#r#nr = parseInt(#s0x#s+r);#r#ng = parseInt(#s0x#s+g);#r#nb =parseInt(#s0x#s+b);#r#n}#r#ndocument.controls.r.value = r;#r#ndocument.controls.g.value = g;#r#ndocument.controls.b.value = b;#r#ndialogColorDisplay(r, g, b);#r#n}#r#n#r#n// refresh color of the display#r#nfunction dialogColorDisplay(r, g, b){#r#nif (document.controls.mode[]0].checked){#r#ncolor = #s#c#s+r+g+b;#r#n}else if (document.controls.mode[]1].checked){#r#ncolor = #srgb(#s+r+#s, #s+g+#s, #s+b+#s)#s;#r#n}else{#r#ncolor = #srgba(#s+r+#s, #s+g+#s, #s+b+#s, #s+document.controls.a.value+#s)#s;#r#n}#r#ndocument.controls.color.value = color;#r#ndisplay_color = document.getElementById(#sdisplay_color#s);#r#ndisplay_color.style.backgroundColor = color;#r#ndisplay_color_alt = document.getElementById(#sdisplay_color_alt#s);#r#ndisplay_color_alt.alt = color;#r#n}#r#n#r#n// filter user entries and refresh display#r#ndialogColorHex = /^[]0-9a-zA-Z]$/;#r#ndialogColorHexDouble = /^[]0-9a-zA-Z]{2}$/;#r#nfunction change_color() {#r#nif (document.controls.mode[]0].checked){#r#ndocument.controls.r.value = document.controls.r.value.toLowerCase();#r#ndocument.controls.g.value = document.controls.g.value.toLowerCase();#r#ndocument.controls.b.value = document.controls.b.value.toLowerCase();#r#nif (dialogColorHex.exec(document.controls.r.value)){#r#nr = document.controls.r.value+document.controls.r.value;#r#n}else if (dialogColorHexDouble.exec(document.controls.r.value)){#r#nr = document.controls.r.value;#r#n}else{#r#nr = #s00#s;#r#ndocument.controls.r.value = 0;#r#n}#r#nif (dialogColorHex.exec(document.controls.g.value)){#r#ng = document.controls.g.value+document.controls.g.value;#r#n}else if (dialogColorHexDouble.exec(document.controls.g.value)){#r#ng = document.controls.g.value;#r#n}else{#r#ng = #s00#s;#r#ndocument.controls.g.value = 0;#r#n}#r#nif (dialogColorHex.exec(document.controls.b.value)){#r#nb = document.controls.b.value+document.controls.b.value;#r#n}else if (dialogColorHexDouble.exec(document.controls.b.value)){#r#nb = document.controls.b.value;#r#n}else{#r#nb = #s00#s;#r#ndocument.controls.b.value = 0;#r#n}#r#n}else{#r#nvar r = parseInt(document.controls.r.value);#r#nvar g = parseInt(document.controls.g.value);#r#nvar b = parseInt(document.controls.b.value);#r#nif (isNaN(r) || r < 0){r = 0;#r#n}else if (r > 255){r = 255;#r#n}#r#nif (isNaN(g) || g < 0){g = 0;#r#n}else if (g > 255){g = 255;#r#n}#r#nif (isNaN(b) || b < 0){b = 0;#r#n}else if (b > 255){b = 255;#r#n}#r#ndocument.controls.r.value = r;#r#ndocument.controls.g.value = g;#r#ndocument.controls.b.value = b;#r#n}#r#n#r#ndialogColorDisplay(r, g, b);#r#n}#r#n#r#n// close width ok button#r#nfunction dialogColorOk() {#r#nwindow.opener.dialogColorClose(document.controls.color.value);#r#n}#r#n#r#n// Close with transparent color#r#nfunction dialogColorTransparent() {#r#nwindow.opener.dialogColorClose("transparent");#r#n}#r#n#r#n// cancel - closes dialog window#r#nfunction dialogColorCancel() {#r#nwindow.close ();#r#n}#r#n[/script]#r#n
      #r#n#r#n
      #r#n#r#n#r#n#r#n#r#n
      #r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n
      #r#n
      #r#n
      #r#n
      #r#n
      #r#n#r#n#r#n#r#n
      #r#n#r#n#r#n#r#n
      #r#n#r#n#r#n#r#n
      #r#n#r#n#r#n#r#n
      #r#n
      #r#n#r#n#r#n#r#n#r#n#r#n
      #r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n
      #r#n
      #r#n[script]#r#ndocument.onload = dialogColorStart();#r#n#r#ndocument.controls.r.focus();#r#n[/script]#r#n";s:6:"blocks";a:7:{s:18:"labels/color/green";a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:5:"Verde";i:2;i:1;}s:2:"en";a:2:{i:1;s:5:"Green";i:2;i:1;}}}}s:16:"labels/color/red";a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Vermelho";i:2;i:1;}s:2:"en";a:2:{i:1;s:3:"Red";i:2;i:1;}}}}s:17:"labels/color/blue";a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:4:"Azul";i:2;i:1;}s:2:"en";a:2:{i:1;s:4:"Blue";i:2;i:1;}}}}s:16:"labels/color/hex";a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:11:"Hexadecimal";i:2;i:1;}s:2:"en";a:2:{i:1;s:11:"Hexadecimal";i:2;i:1;}}}}s:16:"labels/color/dec";a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:7:"Decimal";i:2;i:1;}s:2:"en";a:2:{i:1;s:7:"Decimal";i:2;i:1;}}}}s:18:"labels/color/alpha";a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:5:"Alpha";i:2;i:1;}s:2:"en";a:2:{i:1;s:5:"Alpha";i:2;i:1;}}}}s:24:"labels/color/transparent";a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:12:"Transparente";i:2;i:1;}s:2:"en";a:2:{i:1;s:11:"Transparent";i:2;i:1;}}}}}}a:4:{s:5:"flags";a:3:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:7:"control";s:14:"modLayout_name";s:32:"personaliteApearance_font_layout";}s:5:"local";a:1:{s:6:"scheme";s:6:"system";}s:4:"text";a:1:{s:5:"title";a:2:{s:2:"pt";a:1:{i:1;s:14:"Escolher fonte";}s:2:"en";a:1:{i:1;s:11:"Choose font";}}}s:4:"html";s:5323:"#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n
      #r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n
      #r#n#r#n
      #r#n
      #r#nABCDEFGHIJKLMNOPQRSTUVWXYZ
      #r#nabcdefghijklmnopqrstuvwxyz
      #r#n1234567890#r#n
      #r#n
      #r#n
      #r#n#r#n#r#n#r#n
      #r#n[style]#r#n.preview-box { width:100%; overflow:hidden; height:6rem; }#r#n[/style]#r#n[script]#r#n#r#nselectFontFamily = document.getElementById ("select-font-family");#r#nselectFontWeight = document.getElementById ("select-font-weight");#r#nselectFontSize = document.getElementById ("select-font-size");#r#nselectLineHeight = document.getElementById ("select-line-height");#r#n#r#nfunction loadValues(){#r#nvar values = window.opener.dialogFontLoad ();#r#n#r#nif (values.fontName == "disabled")#r#nselectFontFamily.disabled = true;#r#nelse{#r#nselectFontFamily.selectedIndex = 0;#r#nfor(var i = 0; i < selectFontFamily.length; i++){#r#nif (selectFontFamily.options[]i].value == values.fontName){#r#nselectFontFamily.selectedIndex = i;#r#nbreak;#r#n}#r#n}#r#n}#r#n#r#nif (values.fontWeight == "disabled")#r#nselectFontWeight.disabled = true;#r#nelse{#r#nselectFontWeight.selectedIndex = 0;#r#nfor(var i = 0; i < selectFontWeight.length; i++){#r#nif (selectFontWeight.options[]i].value == values.fontWeight){#r#nselectFontWeight.selectedIndex = i;#r#nbreak;#r#n}#r#n}#r#n}#r#n#r#nif (values.fontSize == "disabled")#r#nselectFontSize.disabled = true;#r#nelse{#r#nselectFontSize.selectedIndex = 0;#r#nfor(var i = 0; i < selectFontSize.length; i++){#r#nif (selectFontSize.options[]i].value == values.fontSize){#r#nselectFontSize.selectedIndex = i;#r#nbreak;#r#n}#r#n}#r#n}#r#n#r#nif (values.lineHeight == "disabled")#r#nselectLineHeight.disabled = true;#r#nelse{#r#nselectLineHeight.selectedIndex = 0;#r#nfor(var i = 0; i < selectLineHeight.length; i++){#r#nif (selectLineHeight.options[]i].value == values.lineHeight){#r#nselectLineHeight.selectedIndex = i;#r#nbreak;#r#n}#r#n}#r#n}#r#npreviewRefresh();#r#n}#r#n#r#nfunction previewRefresh(){#r#n#r#nvar preview = document.getElementById ("preview-text");#r#n#r#nif (!selectFontFamily.disabled)#r#npreview.style.fontFamily = selectFontFamily.options[]selectFontFamily.selectedIndex].dataset.stack;#r#nif (!selectFontWeight.disabled)#r#npreview.style.fontWeight = selectFontWeight.value;#r#nif (!selectFontSize.disabled)#r#npreview.style.fontSize = selectFontSize.value;#r#nif (!selectLineHeight.disabled)#r#npreview.style.lineHeight = selectLineHeight.value;#r#n}#r#n#r#nfunction actionOk(){#r#nvar values = {};#r#n#r#nif (selectFontFamily.disabled)#r#n{#r#nvalues.fontName ="disabled";#r#nvalues.fontFamily = "";#r#n}#r#nelse #r#n{#r#nvalues.fontName = selectFontFamily.value;#r#nvalues.fontFamily = selectFontFamily.options[]selectFontFamily.selectedIndex].dataset.stack;#r#n}#r#n#r#nif (selectFontWeight.disabled)#r#nvalues.fontWeight = "disabled";#r#nelse#r#nvalues.fontWeight = selectFontWeight.value;#r#n#r#nif (selectFontSize.disabled)#r#nvalues.fontSize = "disabled";#r#nelse#r#nvalues.fontSize = selectFontSize.value;#r#n#r#nif (selectLineHeight.disabled)#r#nvalues.lineHeight = "disabled";#r#nelse#r#nvalues.lineHeight = selectLineHeight.value;#r#n#r#nwindow.opener.dialogFontClose (values);#r#n}#r#n#r#nloadValues();#r#n#r#n[/script]#r#n#r#n";}a:1:{s:5:"flags";a:6:{s:6:"filter";s:26:"personaliteApearance_color";s:10:"field_name";s:21:"card-background-color";s:6:"target";s:27:"local/card-background-color";s:7:"default";s:30:"defaults/card-background-color";s:8:"property";s:15:"backgroundColor";s:7:"caption";s:24:"~documentBackgroundColor";}}a:1:{s:5:"flags";a:6:{s:6:"filter";s:26:"personaliteApearance_color";s:10:"field_name";s:17:"card-border-color";s:6:"target";s:23:"local/card-border-color";s:7:"default";s:26:"defaults/card-border-color";s:8:"property";s:11:"borderColor";s:7:"caption";s:20:"~documentBorderColor";}}a:1:{s:5:"flags";a:4:{s:6:"filter";s:27:"personaliteApearance_button";s:10:"field_name";s:11:"card-button";s:6:"prefix";s:11:"card-button";s:7:"caption";s:15:"~documentButton";}}a:1:{s:5:"flags";a:6:{s:6:"filter";s:26:"personaliteApearance_color";s:10:"field_name";s:18:"card-caption-color";s:6:"target";s:24:"local/card-caption-color";s:7:"default";s:27:"defaults/card-caption-color";s:8:"property";s:5:"color";s:7:"caption";s:21:"~documentCaptionColor";}}a:1:{s:5:"flags";a:6:{s:6:"filter";s:26:"personaliteApearance_color";s:10:"field_name";s:17:"card-header-color";s:6:"target";s:23:"local/card-header-color";s:7:"default";s:26:"defaults/card-header-color";s:8:"property";s:5:"color";s:7:"caption";s:20:"~documentHeaderColor";}}a:1:{s:5:"flags";a:4:{s:6:"filter";s:27:"personaliteApearance_button";s:10:"field_name";s:10:"card-input";s:6:"prefix";s:10:"card-input";s:7:"caption";s:13:"documentInput";}}a:1:{s:5:"flags";a:6:{s:6:"filter";s:26:"personaliteApearance_color";s:10:"field_name";s:22:"card-link-active-color";s:6:"target";s:28:"local/card-link-active-color";s:7:"default";s:31:"defaults/card-link-active-color";s:8:"property";s:5:"color";s:7:"caption";s:24:"~documentLinkActiveColor";}}a:1:{s:5:"flags";a:6:{s:6:"filter";s:26:"personaliteApearance_color";s:10:"field_name";s:15:"card-link-color";s:6:"target";s:21:"local/card-link-color";s:7:"default";s:24:"defaults/card-link-color";s:8:"property";s:5:"color";s:7:"caption";s:18:"~documentLinkColor";}}a:1:{s:5:"flags";a:6:{s:6:"filter";s:26:"personaliteApearance_color";s:10:"field_name";s:15:"card-text-color";s:6:"target";s:21:"local/card-text-color";s:7:"default";s:24:"defaults/card-text-color";s:8:"property";s:5:"color";s:7:"caption";s:17:"documentTextColor";}}a:2:{s:5:"flags";a:5:{s:6:"filter";s:26:"personaliteApearance_color";s:10:"field_name";s:25:"document-background-color";s:6:"target";s:31:"local/document-background-color";s:7:"default";s:34:"defaults/document-background-color";s:8:"property";s:15:"backgroundColor";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:5:"Fundo";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"Background";}}}}a:2:{s:5:"flags";a:5:{s:6:"filter";s:26:"personaliteApearance_color";s:10:"field_name";s:21:"document-border-color";s:6:"target";s:27:"local/document-border-color";s:7:"default";s:30:"defaults/document-border-color";s:8:"property";s:11:"borderColor";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Bordas";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Borders";}}}}a:2:{s:5:"flags";a:3:{s:6:"filter";s:27:"personaliteApearance_button";s:10:"field_name";s:15:"document-button";s:6:"prefix";s:15:"document-button";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Botões";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Buttons";}}}}a:2:{s:5:"flags";a:5:{s:6:"filter";s:26:"personaliteApearance_color";s:10:"field_name";s:22:"document-caption-color";s:6:"target";s:28:"local/document-caption-color";s:7:"default";s:31:"defaults/document-caption-color";s:8:"property";s:5:"color";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Legendas";i:2;i:1;}s:2:"en";a:1:{i:1;s:8:"Captions";}}}}a:2:{s:5:"flags";a:5:{s:6:"filter";s:26:"personaliteApearance_color";s:10:"field_name";s:21:"document-header-color";s:6:"target";s:27:"local/document-header-color";s:7:"default";s:30:"defaults/document-header-color";s:8:"property";s:5:"color";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:7:"Títulos";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Headers";}}}}a:2:{s:5:"flags";a:3:{s:6:"filter";s:27:"personaliteApearance_button";s:10:"field_name";s:14:"document-input";s:6:"prefix";s:14:"document-input";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:20:"Campos de formulário";i:2;i:1;}s:2:"en";a:1:{i:1;s:16:"Formulary fields";}}}}a:2:{s:5:"flags";a:5:{s:6:"filter";s:26:"personaliteApearance_color";s:10:"field_name";s:26:"document-link-active-color";s:6:"target";s:32:"local/document-link-active-color";s:7:"default";s:35:"defaults/document-link-active-color";s:8:"property";s:5:"color";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:12:"Links ativos";i:2;i:1;}s:2:"en";a:1:{i:1;s:12:"Active links";}}}}a:2:{s:5:"flags";a:5:{s:6:"filter";s:26:"personaliteApearance_color";s:10:"field_name";s:19:"document-link-color";s:6:"target";s:25:"local/document-link-color";s:7:"default";s:28:"defaults/document-link-color";s:8:"property";s:5:"color";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:5:"Links";i:2;i:1;}s:2:"en";a:1:{i:1;s:5:"Links";}}}}a:2:{s:5:"flags";a:5:{s:6:"filter";s:26:"personaliteApearance_color";s:10:"field_name";s:19:"document-text-color";s:6:"target";s:25:"local/document-text-color";s:7:"default";s:28:"defaults/document-text-color";s:8:"property";s:5:"color";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:5:"Texto";i:2;i:1;}s:2:"en";a:1:{i:1;s:4:"Text";}}}}a:1:{s:8:"children";a:10:{i:0;s:6:"_start";i:1;s:12:"~tabDocument";i:2;s:9:"~tabFonts";i:3;s:9:"~tabPanel";i:4;s:13:"~tabSpotlight";i:5;s:8:"~tabCard";i:6;s:13:"~tabFormulary";i:7;s:7:"~tabNav";i:8;s:10:"~tabSystem";i:9;s:4:"_end";}}a:2:{s:5:"flags";a:4:{s:6:"filter";s:25:"personaliteApearance_font";s:10:"field_name";s:3:"bar";s:6:"prefix";s:3:"bar";s:10:"properties";s:119:"font-name font-weight font-size letter-spacing text-shadow text-align line-height margin-bottom margin-left text-indent";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:15:"Barra de título";i:2;i:1;}s:2:"en";a:1:{i:1;s:9:"Title bar";}}}}a:2:{s:5:"flags";a:4:{s:6:"filter";s:25:"personaliteApearance_font";s:10:"field_name";s:10:"blockquote";s:6:"prefix";s:10:"blockquote";s:10:"properties";s:107:"font-name font-size letter-spacing text-shadow text-align line-height margin-bottom margin-left text-indent";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:16:"Bloco de citação";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"Blockquote";}}}}a:2:{s:5:"flags";a:4:{s:6:"filter";s:25:"personaliteApearance_font";s:10:"field_name";s:7:"caption";s:6:"prefix";s:7:"caption";s:10:"properties";s:119:"font-name font-weight font-size letter-spacing text-shadow text-align line-height margin-bottom margin-left text-indent";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:17:"Legenda de módulo";i:2;i:1;}s:2:"en";a:1:{i:1;s:13:"Module legend";}}}}a:2:{s:5:"flags";a:4:{s:6:"filter";s:25:"personaliteApearance_font";s:10:"field_name";s:6:"header";s:6:"prefix";s:6:"header";s:10:"properties";s:109:"font-name font-weight letter-spacing text-shadow text-align line-height margin-bottom margin-left text-indent";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:10:"Cabeçalhos";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Headers";}}}}a:2:{s:5:"flags";a:4:{s:6:"filter";s:25:"personaliteApearance_font";s:10:"field_name";s:5:"label";s:6:"prefix";s:5:"label";s:10:"properties";s:119:"font-name font-weight font-size letter-spacing text-shadow text-align line-height margin-bottom margin-left text-indent";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:21:"Legenda de formulário";i:2;i:1;}s:2:"en";a:1:{i:1;s:15:"Formulary label";}}}}a:2:{s:5:"flags";a:4:{s:6:"filter";s:25:"personaliteApearance_font";s:10:"field_name";s:6:"legend";s:6:"prefix";s:6:"legend";s:10:"properties";s:119:"font-name font-weight font-size letter-spacing text-shadow text-align line-height margin-bottom margin-left text-indent";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:17:"Legenda de figura";i:2;i:1;}s:2:"en";a:1:{i:1;s:12:"Image legend";}}}}a:2:{s:5:"flags";a:4:{s:6:"filter";s:25:"personaliteApearance_font";s:10:"field_name";s:4:"link";s:6:"prefix";s:4:"link";s:10:"properties";s:58:"font-name font-weight font-size letter-spacing text-shadow";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:4:"Link";i:2;i:1;}s:2:"en";a:1:{i:1;s:4:"Link";}}}}a:2:{s:5:"flags";a:4:{s:6:"filter";s:25:"personaliteApearance_font";s:10:"field_name";s:9:"paragraph";s:6:"prefix";s:9:"paragraph";s:10:"properties";s:107:"font-name font-size letter-spacing text-shadow text-align line-height margin-bottom margin-left text-indent";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"Parágrafo";i:2;i:1;}s:2:"en";a:1:{i:1;s:9:"Paragraph";}}}}a:2:{s:5:"flags";a:4:{s:6:"filter";s:25:"personaliteApearance_font";s:10:"field_name";s:3:"pre";s:6:"prefix";s:3:"pre";s:10:"properties";s:119:"font-name font-weight font-size letter-spacing text-shadow text-align line-height margin-bottom margin-left text-indent";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:18:"Texto preformatado";i:2;i:1;}s:2:"en";a:1:{i:1;s:16:"Preformated text";}}}}a:1:{s:5:"flags";a:6:{s:6:"filter";s:26:"personaliteApearance_color";s:10:"field_name";s:26:"formulary-background-color";s:6:"target";s:32:"local/formulary-background-color";s:7:"default";s:35:"defaults/formulary-background-color";s:8:"property";s:15:"backgroundColor";s:7:"caption";s:24:"~documentBackgroundColor";}}a:1:{s:5:"flags";a:6:{s:6:"filter";s:26:"personaliteApearance_color";s:10:"field_name";s:22:"formulary-border-color";s:6:"target";s:28:"local/formulary-border-color";s:7:"default";s:31:"defaults/formulary-border-color";s:8:"property";s:11:"borderColor";s:7:"caption";s:20:"~documentBorderColor";}}a:1:{s:5:"flags";a:4:{s:6:"filter";s:27:"personaliteApearance_button";s:10:"field_name";s:16:"formulary-button";s:6:"prefix";s:16:"formulary-button";s:7:"caption";s:15:"~documentButton";}}a:1:{s:5:"flags";a:6:{s:6:"filter";s:26:"personaliteApearance_color";s:10:"field_name";s:23:"formulary-caption-color";s:6:"target";s:29:"local/formulary-caption-color";s:7:"default";s:32:"defaults/formulary-caption-color";s:8:"property";s:5:"color";s:7:"caption";s:21:"~documentCaptionColor";}}a:1:{s:5:"flags";a:6:{s:6:"filter";s:26:"personaliteApearance_color";s:10:"field_name";s:22:"formulary-header-color";s:6:"target";s:28:"local/formulary-header-color";s:7:"default";s:31:"defaults/formulary-header-color";s:8:"property";s:5:"color";s:7:"caption";s:20:"~documentHeaderColor";}}a:1:{s:5:"flags";a:4:{s:6:"filter";s:27:"personaliteApearance_button";s:10:"field_name";s:15:"formulary-input";s:6:"prefix";s:15:"formulary-input";s:7:"caption";s:13:"documentInput";}}a:1:{s:5:"flags";a:6:{s:6:"filter";s:26:"personaliteApearance_color";s:10:"field_name";s:27:"formulary-link-active-color";s:6:"target";s:33:"local/formulary-link-active-color";s:7:"default";s:36:"defaults/formulary-link-active-color";s:8:"property";s:5:"color";s:7:"caption";s:24:"~documentLinkActiveColor";}}a:1:{s:5:"flags";a:6:{s:6:"filter";s:26:"personaliteApearance_color";s:10:"field_name";s:20:"formulary-link-color";s:6:"target";s:26:"local/formulary-link-color";s:7:"default";s:29:"defaults/formulary-link-color";s:8:"property";s:5:"color";s:7:"caption";s:18:"~documentLinkColor";}}a:1:{s:5:"flags";a:6:{s:6:"filter";s:26:"personaliteApearance_color";s:10:"field_name";s:20:"formulary-text-color";s:6:"target";s:26:"local/formulary-text-color";s:7:"default";s:29:"defaults/formulary-text-color";s:8:"property";s:5:"color";s:7:"caption";s:17:"documentTextColor";}}a:1:{s:5:"flags";a:6:{s:6:"filter";s:26:"personaliteApearance_color";s:10:"field_name";s:20:"nav-background-color";s:6:"target";s:26:"local/nav-background-color";s:7:"default";s:29:"defaults/nav-background-color";s:8:"property";s:15:"backgroundColor";s:7:"caption";s:24:"~documentBackgroundColor";}}a:1:{s:5:"flags";a:6:{s:6:"filter";s:26:"personaliteApearance_color";s:10:"field_name";s:16:"nav-border-color";s:6:"target";s:22:"local/nav-border-color";s:7:"default";s:25:"defaults/nav-border-color";s:8:"property";s:11:"borderColor";s:7:"caption";s:20:"~documentBorderColor";}}a:1:{s:5:"flags";a:4:{s:6:"filter";s:27:"personaliteApearance_button";s:10:"field_name";s:10:"nav-button";s:6:"prefix";s:10:"nav-button";s:7:"caption";s:15:"~documentButton";}}a:1:{s:5:"flags";a:6:{s:6:"filter";s:26:"personaliteApearance_color";s:10:"field_name";s:17:"nav-caption-color";s:6:"target";s:23:"local/nav-caption-color";s:7:"default";s:26:"defaults/nav-caption-color";s:8:"property";s:5:"color";s:7:"caption";s:21:"~documentCaptionColor";}}a:1:{s:5:"flags";a:6:{s:6:"filter";s:26:"personaliteApearance_color";s:10:"field_name";s:16:"nav-header-color";s:6:"target";s:22:"local/nav-header-color";s:7:"default";s:25:"defaults/nav-header-color";s:8:"property";s:5:"color";s:7:"caption";s:20:"~documentHeaderColor";}}a:1:{s:5:"flags";a:4:{s:6:"filter";s:27:"personaliteApearance_button";s:10:"field_name";s:9:"nav-input";s:6:"prefix";s:9:"nav-input";s:7:"caption";s:13:"documentInput";}}a:1:{s:5:"flags";a:6:{s:6:"filter";s:26:"personaliteApearance_color";s:10:"field_name";s:21:"nav-link-active-color";s:6:"target";s:27:"local/nav-link-active-color";s:7:"default";s:30:"defaults/nav-link-active-color";s:8:"property";s:5:"color";s:7:"caption";s:24:"~documentLinkActiveColor";}}a:1:{s:5:"flags";a:6:{s:6:"filter";s:26:"personaliteApearance_color";s:10:"field_name";s:14:"nav-link-color";s:6:"target";s:20:"local/nav-link-color";s:7:"default";s:23:"defaults/nav-link-color";s:8:"property";s:5:"color";s:7:"caption";s:18:"~documentLinkColor";}}a:1:{s:5:"flags";a:6:{s:6:"filter";s:26:"personaliteApearance_color";s:10:"field_name";s:14:"nav-text-color";s:6:"target";s:20:"local/nav-text-color";s:7:"default";s:23:"defaults/nav-text-color";s:8:"property";s:5:"color";s:7:"caption";s:17:"documentTextColor";}}a:1:{s:5:"flags";a:6:{s:6:"filter";s:26:"personaliteApearance_color";s:10:"field_name";s:22:"panel-background-color";s:6:"target";s:28:"local/panel-background-color";s:7:"default";s:31:"defaults/panel-background-color";s:8:"property";s:15:"backgroundColor";s:7:"caption";s:24:"~documentBackgroundColor";}}a:1:{s:5:"flags";a:6:{s:6:"filter";s:26:"personaliteApearance_color";s:10:"field_name";s:18:"panel-border-color";s:6:"target";s:24:"local/panel-border-color";s:7:"default";s:27:"defaults/panel-border-color";s:8:"property";s:11:"borderColor";s:7:"caption";s:20:"~documentBorderColor";}}a:1:{s:5:"flags";a:4:{s:6:"filter";s:27:"personaliteApearance_button";s:10:"field_name";s:12:"panel-button";s:6:"prefix";s:12:"panel-button";s:7:"caption";s:15:"~documentButton";}}a:1:{s:5:"flags";a:6:{s:6:"filter";s:26:"personaliteApearance_color";s:10:"field_name";s:19:"panel-caption-color";s:6:"target";s:25:"local/panel-caption-color";s:7:"default";s:28:"defaults/panel-caption-color";s:8:"property";s:5:"color";s:7:"caption";s:21:"~documentCaptionColor";}}a:1:{s:5:"flags";a:6:{s:6:"filter";s:26:"personaliteApearance_color";s:10:"field_name";s:18:"panel-header-color";s:6:"target";s:24:"local/panel-header-color";s:7:"default";s:27:"defaults/panel-header-color";s:8:"property";s:5:"color";s:7:"caption";s:20:"~documentHeaderColor";}}a:1:{s:5:"flags";a:4:{s:6:"filter";s:27:"personaliteApearance_button";s:10:"field_name";s:11:"panel-input";s:6:"prefix";s:11:"panel-input";s:7:"caption";s:13:"documentInput";}}a:1:{s:5:"flags";a:6:{s:6:"filter";s:26:"personaliteApearance_color";s:10:"field_name";s:23:"panel-link-active-color";s:6:"target";s:29:"local/panel-link-active-color";s:7:"default";s:32:"defaults/panel-link-active-color";s:8:"property";s:5:"color";s:7:"caption";s:24:"~documentLinkActiveColor";}}a:1:{s:5:"flags";a:6:{s:6:"filter";s:26:"personaliteApearance_color";s:10:"field_name";s:16:"panel-link-color";s:6:"target";s:22:"local/panel-link-color";s:7:"default";s:25:"defaults/panel-link-color";s:8:"property";s:5:"color";s:7:"caption";s:18:"~documentLinkColor";}}a:1:{s:5:"flags";a:6:{s:6:"filter";s:26:"personaliteApearance_color";s:10:"field_name";s:16:"panel-text-color";s:6:"target";s:22:"local/panel-text-color";s:7:"default";s:25:"defaults/panel-text-color";s:8:"property";s:5:"color";s:7:"caption";s:17:"documentTextColor";}}a:1:{s:5:"flags";a:6:{s:6:"filter";s:26:"personaliteApearance_color";s:10:"field_name";s:26:"spotlight-background-color";s:6:"target";s:32:"local/spotlight-background-color";s:7:"default";s:35:"defaults/spotlight-background-color";s:8:"property";s:15:"backgroundColor";s:7:"caption";s:24:"~documentBackgroundColor";}}a:1:{s:5:"flags";a:6:{s:6:"filter";s:26:"personaliteApearance_color";s:10:"field_name";s:22:"spotlight-border-color";s:6:"target";s:28:"local/spotlight-border-color";s:7:"default";s:31:"defaults/spotlight-border-color";s:8:"property";s:11:"borderColor";s:7:"caption";s:20:"~documentBorderColor";}}a:1:{s:5:"flags";a:4:{s:6:"filter";s:27:"personaliteApearance_button";s:10:"field_name";s:16:"spotlight-button";s:6:"prefix";s:16:"spotlight-button";s:7:"caption";s:15:"~documentButton";}}a:1:{s:5:"flags";a:6:{s:6:"filter";s:26:"personaliteApearance_color";s:10:"field_name";s:23:"spotlight-caption-color";s:6:"target";s:29:"local/spotlight-caption-color";s:7:"default";s:32:"defaults/spotlight-caption-color";s:8:"property";s:5:"color";s:7:"caption";s:21:"~documentCaptionColor";}}a:1:{s:5:"flags";a:6:{s:6:"filter";s:26:"personaliteApearance_color";s:10:"field_name";s:22:"spotlight-header-color";s:6:"target";s:28:"local/spotlight-header-color";s:7:"default";s:31:"defaults/spotlight-header-color";s:8:"property";s:5:"color";s:7:"caption";s:20:"~documentHeaderColor";}}a:1:{s:5:"flags";a:4:{s:6:"filter";s:27:"personaliteApearance_button";s:10:"field_name";s:15:"spotlight-input";s:6:"prefix";s:15:"spotlight-input";s:7:"caption";s:13:"documentInput";}}a:1:{s:5:"flags";a:6:{s:6:"filter";s:26:"personaliteApearance_color";s:10:"field_name";s:27:"spotlight-link-active-color";s:6:"target";s:33:"local/spotlight-link-active-color";s:7:"default";s:36:"defaults/spotlight-link-active-color";s:8:"property";s:5:"color";s:7:"caption";s:24:"~documentLinkActiveColor";}}a:1:{s:5:"flags";a:6:{s:6:"filter";s:26:"personaliteApearance_color";s:10:"field_name";s:20:"spotlight-link-color";s:6:"target";s:26:"local/spotlight-link-color";s:7:"default";s:29:"defaults/spotlight-link-color";s:8:"property";s:5:"color";s:7:"caption";s:18:"~documentLinkColor";}}a:1:{s:5:"flags";a:6:{s:6:"filter";s:26:"personaliteApearance_color";s:10:"field_name";s:20:"spotlight-text-color";s:6:"target";s:26:"local/spotlight-text-color";s:7:"default";s:29:"defaults/spotlight-text-color";s:8:"property";s:5:"color";s:7:"caption";s:17:"documentTextColor";}}a:1:{s:5:"flags";a:6:{s:6:"filter";s:26:"personaliteApearance_color";s:10:"field_name";s:23:"system-background-color";s:6:"target";s:29:"local/system-background-color";s:7:"default";s:32:"defaults/system-background-color";s:8:"property";s:15:"backgroundColor";s:7:"caption";s:24:"~documentBackgroundColor";}}a:1:{s:5:"flags";a:6:{s:6:"filter";s:26:"personaliteApearance_color";s:10:"field_name";s:19:"system-border-color";s:6:"target";s:25:"local/system-border-color";s:7:"default";s:28:"defaults/system-border-color";s:8:"property";s:11:"borderColor";s:7:"caption";s:20:"~documentBorderColor";}}a:1:{s:5:"flags";a:4:{s:6:"filter";s:27:"personaliteApearance_button";s:10:"field_name";s:13:"system-button";s:6:"prefix";s:13:"system-button";s:7:"caption";s:15:"~documentButton";}}a:1:{s:5:"flags";a:6:{s:6:"filter";s:26:"personaliteApearance_color";s:10:"field_name";s:20:"system-caption-color";s:6:"target";s:26:"local/system-caption-color";s:7:"default";s:29:"defaults/system-caption-color";s:8:"property";s:5:"color";s:7:"caption";s:21:"~documentCaptionColor";}}a:1:{s:5:"flags";a:6:{s:6:"filter";s:26:"personaliteApearance_color";s:10:"field_name";s:19:"system-header-color";s:6:"target";s:25:"local/system-header-color";s:7:"default";s:28:"defaults/system-header-color";s:8:"property";s:5:"color";s:7:"caption";s:20:"~documentHeaderColor";}}a:1:{s:5:"flags";a:4:{s:6:"filter";s:27:"personaliteApearance_button";s:10:"field_name";s:12:"system-input";s:6:"prefix";s:12:"system-input";s:7:"caption";s:13:"documentInput";}}a:1:{s:5:"flags";a:6:{s:6:"filter";s:26:"personaliteApearance_color";s:10:"field_name";s:24:"system-link-active-color";s:6:"target";s:30:"local/system-link-active-color";s:7:"default";s:33:"defaults/system-link-active-color";s:8:"property";s:5:"color";s:7:"caption";s:24:"~documentLinkActiveColor";}}a:1:{s:5:"flags";a:6:{s:6:"filter";s:26:"personaliteApearance_color";s:10:"field_name";s:17:"system-link-color";s:6:"target";s:23:"local/system-link-color";s:7:"default";s:26:"defaults/system-link-color";s:8:"property";s:5:"color";s:7:"caption";s:18:"~documentLinkColor";}}a:1:{s:5:"flags";a:6:{s:6:"filter";s:26:"personaliteApearance_color";s:10:"field_name";s:17:"system-text-color";s:6:"target";s:23:"local/system-text-color";s:7:"default";s:26:"defaults/system-text-color";s:8:"property";s:5:"color";s:7:"caption";s:17:"documentTextColor";}}a:4:{s:5:"flags";a:1:{s:6:"filter";s:9:"formulary";}s:5:"local";a:1:{s:6:"scheme";s:4:"card";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Cartão";i:2;i:1;}s:2:"en";a:1:{i:1;s:4:"Card";}}s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:817:"#r#n

      O estilo "Cartão" é aplicado às figuras, cartões e caixas de listas

      #r#n
      #r#n
      Legenda de módulos
      #r#n
        #r#n
      • Link
      • #r#n
      • Link ativo
      • #r#n
      #r#n#r#n#r#n#r#n#r#n
      #r#nLegenda de formulário#r#n#r#n
      Campo de formulário
      #r#n
      #r#nLegenda de formulário#r#n#r#n
      Campo de formulário em foco
      #r#n
      #r#n#r#nBotão#r#nBotão ativo#r#n
      #r#n#r#n";i:2;i:1;i:5;i:2;i:6;i:1;}}}s:8:"children";a:9:{i:0;s:14:"~cardTextColor";i:1;s:20:"~cardBackgroundColor";i:2;s:16:"~cardBorderColor";i:3;s:16:"~cardHeaderColor";i:4;s:14:"~cardLinkColor";i:5;s:20:"~cardLinkActiveColor";i:6;s:17:"~cardCaptionColor";i:7;s:11:"~cardButton";i:8;s:10:"~cardInput";}}a:4:{s:5:"flags";a:1:{s:6:"filter";s:9:"formulary";}s:5:"local";a:1:{s:6:"scheme";s:8:"document";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"Documento";i:2;i:1;}s:2:"en";a:1:{i:1;s:8:"Document";}}s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:838:"#r#n

      Estas são as cores que se aplicam ao corpo do documento.

      #r#n
      #r#n
      Legenda de módulos
      #r#n
        #r#n
      • Link
      • #r#n
      • Link ativo
      • #r#n
      #r#n#r#n#r#n#r#n#r#n
      #r#nLegenda de formulário#r#n#r#n
      Campo de formulário
      #r#n
      #r#nLegenda de formulário#r#n#r#n
      Campo de formulário em foco
      #r#n
      #r#n#r#nBotão#r#nBotão ativo#r#n
      #r#n#r#n";i:2;i:1;i:5;i:2;i:6;i:1;}}}s:8:"children";a:9:{i:0;s:18:"~documentTextColor";i:1;s:24:"~documentBackgroundColor";i:2;s:20:"~documentBorderColor";i:3;s:20:"~documentHeaderColor";i:4;s:18:"~documentLinkColor";i:5;s:24:"~documentLinkActiveColor";i:6;s:21:"~documentCaptionColor";i:7;s:15:"~documentButton";i:8;s:14:"~documentInput";}}a:4:{s:5:"flags";a:1:{s:6:"filter";s:9:"formulary";}s:5:"local";a:1:{s:6:"scheme";s:8:"document";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Fontes";i:2;i:1;}s:2:"en";a:1:{i:1;s:5:"Fonts";}}s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:72:"#r#n

      As fontes são aplicadas a todos os esquemas

      #r#n";i:2;i:1;i:5;i:2;i:6;i:1;}}}s:8:"children";a:9:{i:0;s:14:"~fontParagraph";i:1;s:10:"~fontLabel";i:2;s:15:"~fontBlockquote";i:3;s:11:"~fontLegend";i:4;s:9:"~fontLink";i:5;s:11:"~fontHeader";i:6;s:12:"~fontCaption";i:7;s:8:"~fontBar";i:8;s:8:"~fontPre";}}a:4:{s:5:"flags";a:1:{s:6:"filter";s:9:"formulary";}s:5:"local";a:1:{s:6:"scheme";s:9:"formulary";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:10:"Formulário";i:2;i:1;}s:2:"en";a:1:{i:1;s:9:"Formulary";}}s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:847:"#r#n

      O estilo "Formulário" é aplicado às caixas de formulários

      #r#n
      #r#n
      Legenda de módulos
      #r#n
        #r#n
      • Link
      • #r#n
      • Link ativo
      • #r#n
      #r#n#r#n#r#n#r#n#r#n
      #r#nLegenda de formulário#r#n#r#n
      Campo de formulário
      #r#n
      #r#nLegenda de formulário#r#n#r#n
      Campo de formulário em foco
      #r#n
      #r#n#r#nBotão#r#nBotão ativo#r#n
      #r#n#r#n";i:2;i:1;i:5;i:2;i:6;i:1;}}}s:8:"children";a:9:{i:0;s:19:"~formularyTextColor";i:1;s:25:"~formularyBackgroundColor";i:2;s:21:"~formularyBorderColor";i:3;s:21:"~formularyHeaderColor";i:4;s:19:"~formularyLinkColor";i:5;s:25:"~formularyLinkActiveColor";i:6;s:22:"~formularyCaptionColor";i:7;s:16:"~formularyButton";i:8;s:15:"~formularyInput";}}a:4:{s:5:"flags";a:1:{s:6:"filter";s:9:"formulary";}s:5:"local";a:1:{s:6:"scheme";s:3:"nav";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"Navegação";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"Navigation";}}s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:796:"#r#n

      O estilo "Navegação" é aplicado às barras de navegação

      #r#n#r#n#r#n
        #r#n
      • Link
      • #r#n
      • Link ativo
      • #r#n
      #r#n#r#n#r#n#r#n#r#n
      #r#nLegenda de formulário#r#n#r#n#r#n
      #r#nLegenda de formulário#r#n#r#n#r#n
      #r#n#r#nBotão#r#nBotão ativo#r#n
      #r#n#r#n";i:2;i:1;i:5;i:2;i:6;i:1;}}}s:8:"children";a:9:{i:0;s:13:"~navTextColor";i:1;s:19:"~navBackgroundColor";i:2;s:15:"~navBorderColor";i:3;s:15:"~navHeaderColor";i:4;s:13:"~navLinkColor";i:5;s:19:"~navLinkActiveColor";i:6;s:16:"~navCaptionColor";i:7;s:10:"~navButton";i:8;s:9:"~navInput";}}a:4:{s:5:"flags";a:1:{s:6:"filter";s:9:"formulary";}s:5:"local";a:1:{s:6:"scheme";s:5:"panel";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Painel";i:2;i:1;}s:2:"en";a:1:{i:1;s:5:"Panel";}}s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:822:"#r#n

      O estilo "Painel" é aplicado aos painéis laterais ou expansíveis

      #r#n
      #r#n
      Legenda de módulos
      #r#n
        #r#n
      • Link
      • #r#n
      • Link ativo
      • #r#n
      #r#n#r#n#r#n#r#n#r#n
      #r#nLegenda de formulário#r#n#r#n
      Campo de formulário
      #r#n
      #r#nLegenda de formulário#r#n#r#n
      Campo de formulário em foco
      #r#n
      #r#n#r#nBotão#r#nBotão ativo#r#n
      #r#n#r#n";i:2;i:1;i:5;i:2;i:6;i:1;}}}s:8:"children";a:9:{i:0;s:15:"~panelTextColor";i:1;s:21:"~panelBackgroundColor";i:2;s:17:"~panelBorderColor";i:3;s:17:"~panelHeaderColor";i:4;s:15:"~panelLinkColor";i:5;s:21:"~panelLinkActiveColor";i:6;s:18:"~panelCaptionColor";i:7;s:12:"~panelButton";i:8;s:11:"~panelInput";}}a:4:{s:5:"flags";a:1:{s:6:"filter";s:9:"formulary";}s:5:"local";a:1:{s:6:"scheme";s:9:"spotlight";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Destaque";i:2;i:1;}s:2:"en";a:1:{i:1;s:9:"Spotlight";}}s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:842:"#r#n

      O estilo "Destaque" é aplicado às caixas de destaque

      #r#n
      #r#n
      Legenda de módulos
      #r#n
        #r#n
      • Link
      • #r#n
      • Link ativo
      • #r#n
      #r#n#r#n#r#n#r#n#r#n
      #r#nLegenda de formulário#r#n#r#n
      Campo de formulário
      #r#n
      #r#nLegenda de formulário#r#n#r#n
      Campo de formulário em foco
      #r#n
      #r#n#r#nBotão#r#nBotão ativo#r#n
      #r#n#r#n";i:2;i:1;i:5;i:2;i:6;i:1;}}}s:8:"children";a:9:{i:0;s:19:"~spotlightTextColor";i:1;s:25:"~spotlightBackgroundColor";i:2;s:21:"~spotlightBorderColor";i:3;s:21:"~spotlightHeaderColor";i:4;s:19:"~spotlightLinkColor";i:5;s:25:"~spotlightLinkActiveColor";i:6;s:22:"~spotlightCaptionColor";i:7;s:16:"~spotlightButton";i:8;s:15:"~spotlightInput";}}a:4:{s:5:"flags";a:1:{s:6:"filter";s:9:"formulary";}s:5:"local";a:1:{s:6:"scheme";s:6:"system";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:7:"Sistema";i:2;i:1;}s:2:"en";a:1:{i:1;s:6:"System";}}s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:962:"#r#n

      O estilo "Sistema" é aplicado à barra de título do site, no menu do sistema e nas caixas de diálogo.

      #r#n

      Mas também está disponível para ser aplicado a qualquer outro módulo.

      #r#n
      #r#n
      Legenda de módulos
      #r#n
        #r#n
      • Link
      • #r#n
      • Link ativo
      • #r#n
      #r#n#r#n#r#n#r#n#r#n
      #r#nLegenda de formulário#r#n#r#n
      Campo de formulário
      #r#n
      #r#nLegenda de formulário#r#n#r#n
      Campo de formulário em foco
      #r#n
      #r#n#r#nBotão#r#nBotão ativo#r#n
      #r#n#r#n";i:2;i:1;i:5;i:2;i:6;i:1;}}}s:8:"children";a:9:{i:0;s:16:"~systemTextColor";i:1;s:22:"~systemBackgroundColor";i:2;s:18:"~systemBorderColor";i:3;s:18:"~systemHeaderColor";i:4;s:16:"~systemLinkColor";i:5;s:22:"~systemLinkActiveColor";i:6;s:19:"~systemCaptionColor";i:7;s:13:"~systemButton";i:8;s:12:"~systemInput";}}a:3:{s:5:"flags";a:3:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:9:"templates";s:14:"modLayout_name";s:13:"dialog_select";}s:5:"local";a:1:{s:6:"scheme";s:6:"system";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:17:"Adicionar detalhe";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"Add detail";}}}}a:4:{s:5:"flags";a:3:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:9:"templates";s:14:"modLayout_name";s:11:"dialog_tabs";}s:5:"local";a:1:{s:6:"scheme";s:6:"system";}s:4:"text";a:1:{s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:20:"Personalizar detalhe";i:2;i:1;}s:2:"en";a:1:{i:1;s:13:"Custom detail";}}}s:8:"children";a:5:{i:0;s:6:"_start";i:1;s:11:"~tabCaption";i:2;s:8:"~tabHtml";i:3;s:40:"personaliteTemplate_configure_tabFilters";i:4;s:4:"_end";}}a:2:{s:5:"flags";a:5:{s:4:"type";s:4:"text";s:6:"filter";s:4:"text";s:10:"field_name";s:7:"caption";s:6:"target";s:12:"text/caption";s:8:"required";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:7:"Legenda";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Caption";}}}}a:2:{s:5:"flags";a:4:{s:4:"type";s:4:"text";s:6:"filter";s:4:"text";s:10:"field_name";s:11:"description";s:6:"target";s:12:"text/content";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:11:"Observações";i:2;i:1;}s:2:"en";a:1:{i:1;s:5:"Notes";}}}}a:2:{s:5:"flags";a:5:{s:4:"type";s:12:"textarea_big";s:6:"filter";s:4:"free";s:10:"field_name";s:4:"html";s:6:"target";s:4:"html";s:8:"required";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:4:"HTML";i:2;i:1;}s:2:"en";a:1:{i:1;s:4:"HTML";}}}}a:2:{s:5:"flags";a:4:{s:4:"type";s:4:"text";s:6:"filter";s:4:"free";s:10:"field_name";s:10:"identifier";s:6:"target";s:10:"identifier";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"Identificador";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"Identifier";}}}}a:3:{s:5:"flags";a:1:{s:6:"filter";s:9:"formulary";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"Identificação";i:2;i:1;}s:2:"en";a:1:{i:1;s:14:"Identification";}}}s:8:"children";a:3:{i:0;s:9:"~editName";i:1;s:12:"~editCaption";i:2;s:16:"~editDescription";}}a:3:{s:5:"flags";a:1:{s:6:"filter";s:9:"formulary";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:4:"HTML";i:2;i:1;}s:2:"en";a:1:{i:1;s:4:"HTML";}}}s:8:"children";a:1:{i:0;s:9:"~editHTML";}}a:3:{s:5:"flags";a:3:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:9:"templates";s:14:"modLayout_name";s:6:"dialog";}s:5:"local";a:1:{s:6:"scheme";s:6:"system";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:20:"Exportar componentes";i:2;i:1;}s:2:"en";a:1:{i:1;s:17:"Export components";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:20:"Exportar componentes";i:2;i:1;}s:2:"en";a:1:{i:1;s:17:"Export components";}}}}a:1:{s:8:"children";a:6:{i:0;s:6:"_start";i:1;s:9:"~editName";i:2;s:12:"~editContent";i:3;s:19:"~editComponentsList";i:4;s:13:"_submitCancel";i:5;s:4:"_end";}}a:2:{s:5:"flags";a:1:{s:6:"filter";s:28:"personaliteExport_components";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:1:{i:1;s:11:"Componentes";}s:2:"en";a:1:{i:1;s:10:"Components";}}}}a:2:{s:5:"flags";a:7:{s:4:"type";s:8:"textarea";s:6:"filter";s:4:"text";s:10:"field_name";s:11:"description";s:6:"target";s:12:"text/content";s:12:"format_force";i:1;s:10:"html_force";i:2;s:15:"ecolabore_force";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:11:"Observações";i:2;i:1;}s:2:"en";a:1:{i:1;s:5:"Notes";}}}}a:2:{s:5:"flags";a:5:{s:4:"type";s:4:"text";s:6:"filter";s:6:"regexp";s:10:"field_name";s:8:"filename";s:6:"target";s:4:"name";s:6:"regexp";s:26:"/^[a-z][a-z0-9_+-]+#e.zip$/";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:1:{i:1;s:15:"Nome do arquivo";}s:2:"en";a:1:{i:1;s:9:"File name";}}}}a:3:{s:5:"flags";a:3:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:9:"templates";s:14:"modLayout_name";s:11:"dialog_tabs";}s:5:"local";a:1:{s:6:"scheme";s:6:"system";}s:4:"text";a:1:{s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:19:"Personalizar objeto";i:2;i:1;}s:2:"en";a:1:{i:1;s:13:"Custom object";}}}}a:4:{s:5:"flags";a:3:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:7:"control";s:14:"modLayout_name";s:31:"personaliteExtras_upload_layout";}s:5:"local";a:1:{s:6:"scheme";s:6:"system";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:12:"Enviar áudio";i:2;i:1;}s:2:"en";a:1:{i:1;s:12:"Submit audio";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:12:"Enviar áudio";i:2;i:1;}s:2:"en";a:1:{i:1;s:12:"Submit audio";}}}s:8:"children";a:3:{i:0;s:6:"_start";i:1;s:14:"~audioAjaxSend";i:2;s:4:"_end";}}a:3:{s:5:"flags";a:2:{s:6:"filter";s:24:"personaliteExtras_upload";s:10:"field_name";s:5:"audio";}s:5:"local";a:1:{s:6:"accept";s:7:"audio/*";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"Áudio (*.mp3)";i:2;i:1;}s:2:"en";a:1:{i:1;s:13:"Audio (*.mp3)";}}}}a:1:{s:4:"html";s:108:"[list{ loop{]#r#n#r#n[}}]#r#n#r#n#r#n";}a:1:{s:4:"html";s:1451:"#r#n#r#n#r#n#r#n#r#n
      #r#n#r#n#r#n[if $help{ ``; nl; help(`form`); }]#r#n#r#n#r#n#r#n
      0%
      #r#n#r#n[cut:script upload_big_file]#r#n#r#nfunction uploadProgress (event)#r#n{ // uploadProgress#r#nif(event.lengthComputable){#r#nvar percent = Math.round(event.loaded * 100 / event.total);#r#ndocument.getElementById("[$name]_progressbar").value = percent;#r#ndocument.getElementById("[$name]_progressvalue").innerHTML = percent + "%";#r#n}#r#n} // uploadProgress#r#n#r#nfunction uploadBigFile ()#r#n{ // uploadBigFile#r#nvar request = new XMLHttpRequest();#r#nrequest.onreadystatechange = function(){#r#nif(request.readyState == 4){#r#nsetTimeout(function(){#r#nwindow.opener.humperstilshen.refresh();#r#nwindow.close();#r#n}, 500);#r#n}#r#n};#r#n#r#nrequest.upload.addEventListener("progress", uploadProgress, false);#r#n#r#nvar formData = new FormData();#r#nformData.append ("file", document.getElementById("[$name]").files[]0]);#r#nrequest.open("POST", "[$url]");#r#nrequest.send(formData);#r#n#r#nreturn false;#r#n} // uploadBigFile#r#n#r#n[/cut]#r#n";}a:1:{s:4:"html";s:160:"
      #r#n#r#n";}a:4:{s:5:"flags";a:3:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:7:"control";s:14:"modLayout_name";s:31:"personaliteExtras_upload_layout";}s:5:"local";a:1:{s:6:"scheme";s:6:"system";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:14:"Enviar arquivo";i:2;i:1;}s:2:"en";a:1:{i:1;s:11:"Submit file";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:14:"Enviar arquivo";i:2;i:1;}s:2:"en";a:1:{i:1;s:11:"Submit file";}}}s:8:"children";a:3:{i:0;s:6:"_start";i:1;s:13:"~fileAjaxSend";i:2;s:4:"_end";}}a:3:{s:5:"flags";a:2:{s:6:"filter";s:24:"personaliteExtras_upload";s:10:"field_name";s:4:"file";}s:5:"local";a:1:{s:6:"accept";s:1:"*";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"Arquivo (*.*)";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"File (*.*)";}}}}a:2:{s:4:"html";s:17:"[mod:formulary]#r#n";s:6:"blocks";a:3:{s:12:"fields/start";s:35:"personaliteExtras_upload_fieldStart";s:15:"fields/file_big";s:37:"personaliteExtras_upload_fieldFileBig";s:10:"fields/end";s:33:"personaliteExtras_upload_fieldEnd";}}a:4:{s:5:"flags";a:3:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:7:"control";s:14:"modLayout_name";s:31:"personaliteExtras_upload_layout";}s:5:"local";a:1:{s:6:"scheme";s:6:"system";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:12:"Enviar vídeo";i:2;i:1;}s:2:"en";a:1:{i:1;s:12:"Submit video";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:12:"Enviar vídeo";i:2;i:1;}s:2:"en";a:1:{i:1;s:12:"Submit video";}}}s:8:"children";a:3:{i:0;s:6:"_start";i:1;s:14:"~videoAjaxSend";i:2;s:4:"_end";}}a:3:{s:5:"flags";a:2:{s:6:"filter";s:24:"personaliteExtras_upload";s:10:"field_name";s:5:"video";}s:5:"local";a:1:{s:6:"accept";s:7:"video/*";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"Vídeo (*.mp4)";i:2;i:1;}s:2:"en";a:1:{i:1;s:13:"Video (*.mp4)";}}}}a:1:{s:8:"children";a:4:{i:0;s:6:"_start";i:1;s:10:"_separator";i:2;s:6:"_close";i:3;s:4:"_end";}}a:2:{s:5:"flags";a:1:{s:4:"icon";s:8:"question";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:18:"Compartilhar dados";i:2;i:1;}s:2:"en";a:2:{i:1;s:10:"Share data";i:2;i:1;}}s:7:"content";a:2:{s:2:"pt";a:4:{i:1;s:126:"#r#nOlá [text $user.caption],#r#n#r#nEste formulário solicita seus dados pessoais.#r#n#r#nGostaria de utilizar os dados do seu perfil?#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}s:2:"en";a:4:{i:1;s:124:"#r#nHello [text $user.caption],#r#n#r#nThis form is requesting your personal data.#r#n#r#nDo you wish to use data from your profile?#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:2:{s:5:"flags";a:4:{s:14:"modLayout_base";s:6:"simple";s:14:"modLayout_from";s:7:"control";s:14:"modLayout_name";s:18:"dialogFields_close";s:25:"modHumperstilshen_enabled";i:0;}s:4:"html";s:396:"[script]#r#n[if($document.field_replace){]#r#nwindow.opener.dinamicSelect.replace ("[$document.field_name]", "[text $document.field_caption]", "[$document.field_filter]", "[$document.field_content]");#r#n[}else{]#r#nwindow.opener.dinamicSelect.append ("[$document.field_name]", "[text $document.field_caption]", "[$document.field_filter]", "[$document.field_content]");#r#n[}]#r#nwindow.close();#r#n[/script]#r#n";}a:4:{s:5:"flags";a:4:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:9:"templates";s:14:"modLayout_name";s:6:"dialog";s:19:"modLayout_cacheable";i:43200;}s:5:"local";a:1:{s:6:"scheme";s:6:"system";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:29:"Adicionar campo ao formulário";i:2;i:1;}s:2:"en";a:1:{i:1;s:22:"Add field to formulary";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:29:"Adicionar campo ao formulário";i:2;i:1;}s:2:"en";a:1:{i:1;s:22:"Add field to formulary";}}}s:4:"html";s:25:"[mod:list][mod:formulary]";}a:2:{s:5:"flags";a:4:{s:6:"filter";s:4:"text";s:6:"target";s:7:"caption";s:10:"field_name";s:7:"caption";s:8:"required";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:16:"Legenda do campo";i:2;i:1;}s:2:"en";a:2:{i:1;s:13:"Field caption";i:2;i:1;}}}}a:2:{s:5:"flags";a:3:{s:6:"filter";s:8:"checkbox";s:6:"target";s:8:"required";s:10:"field_name";s:8:"required";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:25:"Preenchimento obrigatório";i:2;i:1;}s:2:"en";a:2:{i:1;s:14:"Required field";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:12:"Apresentação";i:2;i:1;}s:2:"en";a:2:{i:1;s:7:"Display";i:2;i:1;}}}}a:2:{s:5:"flags";a:4:{s:14:"modLayout_base";s:6:"simple";s:14:"modLayout_from";s:7:"control";s:14:"modLayout_name";s:17:"dialogFields_load";s:25:"modHumperstilshen_enabled";i:0;}s:4:"html";s:486:"[script]#r#n#r#n// load configuration on startup#r#ndocument.getElementById (#sfield_name#s).value = window.opener.dinamicSelect.loadName();#r#ndocument.getElementById (#sfield_content#s).value = window.opener.dinamicSelect.loadContent();#r#ndocument.controls.submit();#r#n[/script]#r#n#r#n#r#n#r#n#r#n";}a:1:{s:5:"local";a:5:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:10:"Formulário";i:2;i:1;}s:2:"en";a:2:{i:1;s:9:"Formulary";i:2;i:1;}}s:4:"list";s:11:"interactive";s:15:"caption-display";i:0;s:18:"caption-line-break";i:1;s:9:"formulary";s:11:"interactive";}}a:1:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Endereço";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Address";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:8:"Endereço";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Address";}}}}a:1:{s:8:"children";a:8:{i:0;s:6:"_start";i:1;s:29:"personaliteFields_editCaption";i:2;s:9:"~editType";i:3;s:19:"~editUseUserAddress";i:4;s:30:"personaliteFields_editRequired";i:5;s:10:"_separator";i:6;s:11:"_saveCancel";i:7;s:4:"_end";}}a:1:{s:5:"flags";a:3:{s:6:"filter";s:28:"personaliteFields_selectType";s:10:"field_name";s:4:"type";s:13:"search_filter";s:7:"address";}}a:2:{s:5:"flags";a:4:{s:6:"filter";s:8:"checkbox";s:10:"field_name";s:16:"use_user_address";s:6:"target";s:15:"share_user_data";s:5:"clear";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:54:"Utilizar o endereço do usuário conectado se disponível";i:2;i:1;}s:2:"en";a:1:{i:1;s:46:"Use the address from connected user if present";}}}}a:2:{s:6:"filter";s:7:"address";s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Endereço";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Address";}}}a:1:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:20:"Caixa de verificação";i:2;i:1;}s:2:"en";a:1:{i:1;s:8:"Checkbox";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:20:"Caixa de verificação";i:2;i:1;}s:2:"en";a:1:{i:1;s:8:"Checkbox";}}}}a:1:{s:8:"children";a:6:{i:0;s:6:"_start";i:1;s:29:"personaliteFields_editCaption";i:2;s:9:"~editType";i:3;s:10:"_separator";i:4;s:11:"_saveCancel";i:5;s:4:"_end";}}a:1:{s:5:"flags";a:3:{s:6:"filter";s:28:"personaliteFields_selectType";s:10:"field_name";s:4:"type";s:13:"search_filter";s:8:"checkbox";}}a:1:{s:6:"filter";s:8:"checkbox";}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:3:"Não";i:2;i:1;}s:2:"en";a:1:{i:1;s:2:"No";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:3:"Sim";i:2;i:1;}s:2:"en";a:1:{i:1;s:3:"Yes";}}}}a:1:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"Data de envio";i:2;i:1;}s:2:"en";a:1:{i:1;s:12:"Sending date";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:13:"Data de envio";i:2;i:1;}s:2:"en";a:1:{i:1;s:12:"Sending date";}}}}a:1:{s:8:"children";a:5:{i:0;s:6:"_start";i:1;s:29:"personaliteFields_editCaption";i:2;s:10:"_separator";i:3;s:11:"_saveCancel";i:4;s:4:"_end";}}a:3:{s:6:"filter";s:7:"created";s:10:"list_index";i:200;s:7:"caption";a:2:{s:2:"pt";a:1:{i:1;s:4:"Data";}s:2:"en";a:1:{i:1;s:4:"Date";}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:3:{i:1;s:59:"[scope(`date`, $created){ text:date_formated], [$h]h[$i; }]";i:2;i:1;i:6;i:1;}}}}a:1:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:16:"Texto descritivo";i:2;i:1;}s:2:"en";a:1:{i:1;s:16:"Descriptive text";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:16:"Texto descritivo";i:2;i:1;}s:2:"en";a:1:{i:1;s:16:"Descriptive text";}}}}a:1:{s:8:"children";a:8:{i:0;s:6:"_start";i:1;s:29:"personaliteFields_editCaption";i:2;s:9:"~editType";i:3;s:12:"~editContent";i:4;s:27:"~editDisplayWhenEditingOnly";i:5;s:10:"_separator";i:6;s:11:"_saveCancel";i:7;s:4:"_end";}}a:2:{s:5:"flags";a:7:{s:6:"filter";s:4:"text";s:6:"target";s:7:"content";s:10:"field_name";s:7:"content";s:8:"required";i:1;s:12:"format_force";i:1;s:10:"html_force";i:2;s:15:"ecolabore_force";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Conteúdo";i:2;i:1;}s:2:"en";a:2:{i:1;s:7:"Content";i:2;i:1;}}}}a:2:{s:5:"flags";a:3:{s:6:"filter";s:8:"checkbox";s:6:"target";s:20:"display_when_editing";s:10:"field_name";s:20:"display_when_editing";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:43:"Exibir explicação somente em modo de edição";i:2;i:1;}s:2:"en";a:2:{i:1;s:34:"Show description when editing only";i:2;i:1;}}}}a:1:{s:5:"flags";a:3:{s:6:"filter";s:28:"personaliteFields_selectType";s:10:"field_name";s:4:"type";s:13:"search_filter";s:11:"descriptive";}}a:1:{s:6:"filter";s:11:"description";}a:2:{s:5:"flags";a:1:{s:4:"icon";s:5:"error";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:15:"E-mail inválido";i:2;i:1;}s:2:"en";a:2:{i:1;s:14:"Invalid e-mail";i:2;i:1;}}s:7:"content";a:2:{s:2:"pt";a:4:{i:1;s:136:"O conteúdo "[$value]" não parece ser um endereço de e-mail.#r#n#r#nNo campo "[text $field_caption]", informe um endereço de e-mail válido.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}s:2:"en";a:4:{i:1;s:131:"#r#nThe content "[$value]" does not look an e-mail address.#r#n#r#nIn the field "[text $field_caption]", insert a valid e-mail address.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:2:{s:5:"flags";a:1:{s:4:"icon";s:5:"crash";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:20:"Somente um endereço!";i:2;i:1;}s:2:"en";a:2:{i:1;s:17:"Only one address!";i:2;i:1;}}s:7:"content";a:2:{s:2:"pt";a:4:{i:1;s:83:"O campo "[text $field_caption]" somente pode aceitar um único endereço de e-mail.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}s:2:"en";a:4:{i:1;s:74:"#r#nThe field "[text $field_caption]" will accept only one e-mail address.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:1:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:17:"Endereço de email";i:2;i:1;}s:2:"en";a:1:{i:1;s:13:"Email address";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:17:"Endereço de email";i:2;i:1;}s:2:"en";a:1:{i:1;s:13:"Email address";}}}}a:1:{s:8:"children";a:8:{i:0;s:6:"_start";i:1;s:29:"personaliteFields_editCaption";i:2;s:9:"~editType";i:3;s:16:"~editUseUserMail";i:4;s:30:"personaliteFields_editRequired";i:5;s:10:"_separator";i:6;s:11:"_saveCancel";i:7;s:4:"_end";}}a:1:{s:5:"flags";a:3:{s:6:"filter";s:28:"personaliteFields_selectType";s:10:"field_name";s:4:"type";s:13:"search_filter";s:4:"mail";}}a:2:{s:5:"flags";a:4:{s:6:"filter";s:8:"checkbox";s:10:"field_name";s:13:"use_user_mail";s:6:"target";s:15:"share_user_data";s:5:"clear";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:51:"Utilizar o email do usuário conectado se disponível";i:2;i:1;}s:2:"en";a:1:{i:1;s:43:"Use the mail from connected user if present";}}}}a:2:{s:6:"filter";s:4:"mail";s:7:"caption";a:2:{s:2:"pt";a:1:{i:1;s:5:"Email";}s:2:"en";a:1:{i:1;s:5:"Email";}}}a:2:{s:5:"flags";a:1:{s:4:"icon";s:5:"error";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:23:"Código de área inválido";i:2;i:1;}s:2:"en";a:2:{i:1;s:17:"Invalid area code";i:2;i:1;}}s:7:"content";a:2:{s:2:"pt";a:4:{i:1;s:170:"O conteúdo "[$value]" não é um código de área válido.#r#n#r#nNo campo "[text $field_caption]", informe um código de área.#r#n#r#nOs códigos de área no Brasil possuem 2 dígitos.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}s:2:"en";a:4:{i:1;s:119:"#r#nThe content "[$value]" is not a valid area code.#r#n#r#nIn the field "[text $field_caption]", insert a valid area code.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:2:{s:5:"flags";a:1:{s:4:"icon";s:5:"error";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:23:"Código de país inválido";i:2;i:1;}s:2:"en";a:2:{i:1;s:20:"Invalid country code";i:2;i:1;}}s:7:"content";a:2:{s:2:"pt";a:4:{i:1;s:190:"O conteúdo "[$value]" não é um código de país válido.#r#n#r#nNo campo "[text $field_caption]", informe um código de país, iniciando com o símbolo "+".#r#n#r#nPor exemplo, para o Brasil, use "+55".#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}s:2:"en";a:4:{i:1;s:144:"#r#nThe content "[$value]" is not a valid country code.#r#n#r#nIn the field "[text $field_caption]", insert a country code begining with "+" symbol.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:2:{s:5:"flags";a:1:{s:4:"icon";s:5:"error";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:27:"Número de telefone inválido";i:2;i:1;}s:2:"en";a:2:{i:1;s:20:"Invalid phone number";i:2;i:1;}}s:7:"content";a:2:{s:2:"pt";a:4:{i:1;s:187:"O conteúdo "[$value]" não é um número de telefone válido.#r#n#r#nNo campo "[text $field_caption]", informe um número de telefone.#r#n#r#nOs números de telefone no Brasil possuem 8 ou 9 dígitos.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}s:2:"en";a:4:{i:1;s:125:"#r#nThe content "[$value]" is not a valid phone number.#r#n#r#nIn the field "[text $field_caption]", insert a valid phone number.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:1:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Telefone";i:2;i:1;}s:2:"en";a:1:{i:1;s:5:"Phone";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:8:"Telefone";i:2;i:1;}s:2:"en";a:1:{i:1;s:5:"Phone";}}}}a:1:{s:8:"children";a:8:{i:0;s:6:"_start";i:1;s:29:"personaliteFields_editCaption";i:2;s:9:"~editType";i:3;s:17:"~editUseUserPhone";i:4;s:30:"personaliteFields_editRequired";i:5;s:10:"_separator";i:6;s:11:"_saveCancel";i:7;s:4:"_end";}}a:1:{s:5:"flags";a:3:{s:6:"filter";s:28:"personaliteFields_selectType";s:10:"field_name";s:4:"type";s:13:"search_filter";s:5:"phone";}}a:2:{s:5:"flags";a:4:{s:6:"filter";s:8:"checkbox";s:10:"field_name";s:14:"use_user_phone";s:6:"target";s:15:"share_user_data";s:5:"clear";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:54:"Utilizar o telefone do usuário conectado se disponível";i:2;i:1;}s:2:"en";a:1:{i:1;s:44:"Use the phone from connected user if present";}}}}a:2:{s:6:"filter";s:5:"phone";s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Telefone";i:2;i:1;}s:2:"en";a:1:{i:1;s:5:"Phone";}}}a:1:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:15:"Botões de rádio";i:2;i:1;}s:2:"en";a:1:{i:1;s:13:"Radio buttons";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:15:"Botões de rádio";i:2;i:1;}s:2:"en";a:1:{i:1;s:13:"Radio buttons";}}}}a:1:{s:8:"children";a:9:{i:0;s:6:"_start";i:1;s:29:"personaliteFields_editCaption";i:2;s:9:"~editType";i:3;s:10:"_separator";i:4;s:31:"dialogFields_select_editExplain";i:5;s:35:"personaliteFields_select_editFields";i:6;s:10:"_separator";i:7;s:11:"_saveCancel";i:8;s:4:"_end";}}a:1:{s:5:"flags";a:3:{s:6:"filter";s:28:"personaliteFields_selectType";s:10:"field_name";s:4:"type";s:13:"search_filter";s:5:"radio";}}a:2:{s:6:"filter";s:5:"radio";s:4:"type";s:5:"radio";}a:1:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:16:"Caixa de seleção";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"Select box";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:16:"Caixa de seleção";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"Select box";}}}}a:1:{s:8:"children";a:9:{i:0;s:6:"_start";i:1;s:29:"personaliteFields_editCaption";i:2;s:9:"~editType";i:3;s:10:"_separator";i:4;s:12:"~editExplain";i:5;s:11:"~editFields";i:6;s:10:"_separator";i:7;s:11:"_saveCancel";i:8;s:4:"_end";}}a:2:{s:5:"flags";a:1:{s:4:"type";s:11:"descriptive";}s:4:"text";a:1:{s:7:"content";a:1:{s:2:"pt";a:3:{i:1;s:67:"Preencha quantas opções desejar. Opções vazias serão descartadas.#r#n";i:2;i:1;i:4;i:1;}}}}a:1:{s:5:"flags";a:2:{s:6:"filter";s:35:"personaliteFields_select_editFields";s:10:"field_name";s:6:"option";}}a:1:{s:5:"flags";a:3:{s:6:"filter";s:28:"personaliteFields_selectType";s:10:"field_name";s:4:"type";s:13:"search_filter";s:6:"select";}}a:2:{s:6:"filter";s:6:"select";s:4:"type";s:6:"select";}a:1:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"Separador";i:2;i:1;}s:2:"en";a:1:{i:1;s:9:"Separator";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:9:"Separador";i:2;i:1;}s:2:"en";a:1:{i:1;s:9:"Separator";}}}}a:1:{s:8:"children";a:6:{i:0;s:6:"_start";i:1;s:29:"personaliteFields_editCaption";i:2;s:9:"~editType";i:3;s:10:"_separator";i:4;s:11:"_saveCancel";i:5;s:4:"_end";}}a:1:{s:5:"flags";a:3:{s:6:"filter";s:28:"personaliteFields_selectType";s:10:"field_name";s:4:"type";s:13:"search_filter";s:9:"separator";}}a:2:{s:6:"filter";s:9:"separator";s:7:"caption";a:1:{s:2:"pt";a:2:{i:1;s:19:"---- Separador ----";i:2;i:1;}}}a:1:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Status";i:2;i:1;}s:2:"en";a:1:{i:1;s:6:"Status";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:6:"Status";i:2;i:1;}s:2:"en";a:1:{i:1;s:6:"Status";}}}}a:1:{s:8:"children";a:5:{i:0;s:6:"_start";i:1;s:29:"personaliteFields_editCaption";i:2;s:10:"_separator";i:3;s:11:"_saveCancel";i:4;s:4:"_end";}}a:3:{s:6:"filter";s:6:"status";s:10:"list_index";i:0;s:7:"caption";a:2:{s:2:"pt";a:1:{i:1;s:6:"Status";}s:2:"en";a:1:{i:1;s:6:"Status";}}}a:1:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:14:"Caixa de texto";i:2;i:1;}s:2:"en";a:1:{i:1;s:8:"Text box";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:14:"Caixa de texto";i:2;i:1;}s:2:"en";a:1:{i:1;s:8:"Text box";}}}}a:1:{s:8:"children";a:7:{i:0;s:6:"_start";i:1;s:29:"personaliteFields_editCaption";i:2;s:9:"~editType";i:3;s:30:"personaliteFields_editRequired";i:4;s:10:"_separator";i:5;s:11:"_saveCancel";i:6;s:4:"_end";}}a:1:{s:5:"flags";a:3:{s:6:"filter";s:28:"personaliteFields_selectType";s:10:"field_name";s:4:"type";s:13:"search_filter";s:4:"text";}}a:1:{s:6:"filter";s:4:"text";}a:1:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:24:"Área de texto multilinha";i:2;i:1;}s:2:"en";a:1:{i:1;s:20:"Multi line text area";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:24:"Área de texto multilinha";i:2;i:1;}s:2:"en";a:1:{i:1;s:20:"Multi line text area";}}}}a:1:{s:8:"children";a:7:{i:0;s:6:"_start";i:1;s:29:"personaliteFields_editCaption";i:2;s:9:"~editType";i:3;s:30:"personaliteFields_editRequired";i:4;s:10:"_separator";i:5;s:11:"_saveCancel";i:6;s:4:"_end";}}a:1:{s:5:"flags";a:3:{s:6:"filter";s:28:"personaliteFields_selectType";s:10:"field_name";s:4:"type";s:13:"search_filter";s:8:"textarea";}}a:3:{s:6:"filter";s:8:"textarea";s:4:"type";s:8:"textarea";s:6:"format";s:3:"pre";}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:1:{i:1;s:11:"Componentes";}s:2:"en";a:1:{i:1;s:10:"Components";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Seções";i:2;i:1;}s:2:"en";a:1:{i:1;s:8:"Sections";}}}}a:3:{s:5:"flags";a:3:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:9:"templates";s:14:"modLayout_name";s:6:"dialog";}s:5:"local";a:1:{s:6:"scheme";s:6:"system";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:20:"Instalar componentes";i:2;i:1;}s:2:"en";a:1:{i:1;s:18:"Install components";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:20:"Instalar componentes";i:2;i:1;}s:2:"en";a:1:{i:1;s:18:"Install components";}}}}a:1:{s:8:"children";a:4:{i:0;s:6:"_start";i:1;s:10:"~editFiles";i:2;s:13:"_submitCancel";i:3;s:4:"_end";}}a:2:{s:5:"flags";a:2:{s:4:"type";s:4:"file";s:10:"field_name";s:5:"files";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:1:{i:1;s:11:"Componentes";}s:2:"en";a:1:{i:1;s:10:"Components";}}}}a:1:{s:8:"children";a:4:{i:0;s:6:"_start";i:1;s:17:"~selectComponents";i:2;s:13:"_submitCancel";i:3;s:4:"_end";}}a:2:{s:5:"flags";a:2:{s:6:"filter";s:35:"personaliteInstall_selectComponents";s:10:"field_name";s:10:"components";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:1:{i:1;s:11:"Componentes";}s:2:"en";a:1:{i:1;s:10:"Components";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:0:"";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:10:"Automático";i:2;i:1;}s:2:"en";a:1:{i:1;s:9:"Automatic";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:1:"0";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:17:"Sem preenchimento";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"No padding";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:7:"0.12rem";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:7:"Pequeno";i:2;i:1;}s:2:"en";a:1:{i:1;s:5:"Small";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:7:"0.25rem";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:11:"0.25 linhas";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"0.25 lines";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:6:"0.5rem";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:10:"0.5 linhas";i:2;i:1;}s:2:"en";a:1:{i:1;s:9:"0.5 lines";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:7:"0.75rem";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:11:"0.75 linhas";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"0.75 lines";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:7:"0.83rem";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:11:"0.83 linhas";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"0.83 lines";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:7:"0.91rem";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:11:"0.91 linhas";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"0.91 lines";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:4:"1rem";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:7:"1 linha";i:2;i:1;}s:2:"en";a:1:{i:1;s:6:"1 line";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:6:"1.1rem";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"1.1 linha";i:2;i:1;}s:2:"en";a:1:{i:1;s:8:"1.1 line";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:7:"1.25rem";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:10:"1.25 linha";i:2;i:1;}s:2:"en";a:1:{i:1;s:9:"1.25 line";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:6:"1.5rem";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"1.5 linha";i:2;i:1;}s:2:"en";a:1:{i:1;s:8:"1.5 line";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:4:"2rem";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"2 linhas";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"2 lines";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:6:"2.5rem";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:10:"2.5 linhas";i:2;i:1;}s:2:"en";a:1:{i:1;s:9:"2.5 lines";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:4:"3rem";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"3 linhas";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"3 lines";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:6:"bottom";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Inferior";i:2;i:1;}s:2:"en";a:1:{i:1;s:6:"Bottom";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:6:"center";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:12:"Centralizado";i:2;i:1;}s:2:"en";a:1:{i:1;s:6:"Center";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:0:"";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:10:"à esquerda";i:2;i:1;}s:2:"en";a:1:{i:1;s:4:"Left";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:5:"right";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"À direita";i:2;i:1;}s:2:"en";a:1:{i:1;s:5:"Right";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:0:"";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Superior";i:2;i:1;}s:2:"en";a:1:{i:1;s:3:"Top";}}}}a:3:{s:5:"flags";a:6:{s:4:"type";s:6:"select";s:6:"filter";s:6:"select";s:10:"field_name";s:7:"rounded";s:6:"target";s:23:"local/box-border-radius";s:13:"default_value";s:0:"";s:5:"clear";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:19:"Cantos arredondados";i:2;i:1;}s:2:"en";a:1:{i:1;s:15:"Rounded corners";}}}s:8:"children";a:10:{i:0;s:8:"~000auto";i:1;s:19:"~boxBorderRadiusOff";i:2;s:7:"~025rem";i:3;s:7:"~050rem";i:4;s:7:"~075rem";i:5;s:7:"~100rem";i:6;s:7:"~125rem";i:7;s:7:"~150rem";i:8;s:7:"~200rem";i:9;s:22:"~boxBorderRadiusElipse";}}a:2:{s:5:"flags";a:1:{s:5:"value";s:3:"50%";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Elipse";i:2;i:1;}s:2:"en";a:1:{i:1;s:6:"Elipse";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:1:"0";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:23:"Sem cantos arredondados";i:2;i:1;}s:2:"en";a:1:{i:1;s:18:"No rounded corners";}}}}a:2:{s:5:"flags";a:6:{s:4:"type";s:8:"checkbox";s:6:"filter";s:8:"checkbox";s:10:"field_name";s:11:"box_display";s:6:"target";s:17:"local/box-display";s:10:"true_value";s:6:"inline";s:5:"clear";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:26:"Legenda na linha do módulo";i:2;i:1;}s:2:"en";a:1:{i:1;s:22:"Caption in module line";}}}}a:3:{s:5:"flags";a:6:{s:4:"type";s:6:"select";s:6:"filter";s:6:"select";s:10:"field_name";s:4:"size";s:6:"target";s:19:"local/box-font-size";s:13:"default_value";s:0:"";s:5:"clear";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:16:"Tamanho do texto";i:2;i:1;}s:2:"en";a:1:{i:1;s:9:"Text size";}}}s:8:"children";a:11:{i:0;s:8:"~000auto";i:1;s:7:"~075rem";i:2;s:7:"~083rem";i:3;s:7:"~091rem";i:4;s:7:"~100rem";i:5;s:7:"~110rem";i:6;s:7:"~125rem";i:7;s:7:"~150rem";i:8;s:7:"~200rem";i:9;s:7:"~250rem";i:10;s:7:"~300rem";}}a:3:{s:5:"flags";a:6:{s:4:"type";s:6:"select";s:6:"filter";s:6:"select";s:10:"field_name";s:7:"padding";s:6:"target";s:17:"local/box-padding";s:13:"default_value";s:0:"";s:5:"clear";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:12:"Passe-partut";i:2;i:1;}s:2:"en";a:1:{i:1;s:12:"Passe-partut";}}}s:8:"children";a:12:{i:0;s:8:"~000auto";i:1;s:13:"~000noPadding";i:2;s:7:"~012rem";i:3;s:7:"~025rem";i:4;s:7:"~050rem";i:5;s:7:"~075rem";i:6;s:7:"~100rem";i:7;s:7:"~125rem";i:8;s:7:"~150rem";i:9;s:7:"~200rem";i:10;s:7:"~250rem";i:11;s:7:"~300rem";}}a:3:{s:5:"flags";a:6:{s:4:"type";s:6:"select";s:6:"filter";s:6:"select";s:10:"field_name";s:6:"scheme";s:6:"target";s:16:"local/box-scheme";s:13:"default_value";s:0:"";s:5:"clear";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:16:"Esquema de cores";i:2;i:1;}s:2:"en";a:1:{i:1;s:12:"Color scheme";}}}s:8:"children";a:7:{i:0;s:14:"~boxSchemeAuto";i:1;s:15:"~boxSchemePanel";i:2;s:19:"~boxSchemeSpotlight";i:3;s:14:"~boxSchemeCard";i:4;s:19:"~boxSchemeFormulary";i:5;s:16:"~boxSchemeSystem";i:6;s:13:"~boxSchemeNav";}}a:2:{s:5:"flags";a:1:{s:5:"value";s:0:"";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:12:"(Automático)";i:2;i:1;}s:2:"en";a:1:{i:1;s:11:"(Automatic)";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:4:"card";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Cartão";i:2;i:1;}s:2:"en";a:1:{i:1;s:4:"Card";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:9:"formulary";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:10:"Formulário";i:2;i:1;}s:2:"en";a:1:{i:1;s:9:"Formulary";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:3:"nav";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:18:"Barra de navegação";i:2;i:1;}s:2:"en";a:1:{i:1;s:14:"Navigation bar";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:5:"panel";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Painel";i:2;i:1;}s:2:"en";a:1:{i:1;s:5:"Panel";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:9:"spotlight";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Destaque";i:2;i:1;}s:2:"en";a:1:{i:1;s:9:"Spotlight";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:6:"system";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:7:"Sistema";i:2;i:1;}s:2:"en";a:1:{i:1;s:6:"System";}}}}a:3:{s:5:"flags";a:6:{s:4:"type";s:6:"select";s:6:"filter";s:6:"select";s:10:"field_name";s:6:"shadow";s:6:"target";s:16:"local/box-shadow";s:13:"default_value";s:0:"";s:5:"clear";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:15:"Sombra da caixa";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"Box shadow";}}}s:8:"children";a:4:{i:0;s:14:"~boxShadowAuto";i:1;s:13:"~boxShadowOff";i:2;s:12:"~boxShadowOn";i:3;s:15:"~boxShadowSmoke";}}a:2:{s:5:"flags";a:1:{s:5:"value";s:0:"";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:12:"(Automático)";i:2;i:1;}s:2:"en";a:1:{i:1;s:11:"(Automatic)";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:14:"box-shadow-off";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:16:"Sem sombreamento";i:2;i:1;}s:2:"en";a:1:{i:1;s:9:"No shadow";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:13:"box-shadow-on";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:16:"Com sombreamento";i:2;i:1;}s:2:"en";a:1:{i:1;s:11:"With shadow";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:9:"img-smoke";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"Efeito fumaça";i:2;i:1;}s:2:"en";a:1:{i:1;s:12:"Smoke effect";}}}}a:2:{s:5:"flags";a:4:{s:4:"type";s:4:"text";s:6:"filter";s:4:"text";s:10:"field_name";s:7:"caption";s:6:"target";s:12:"text/caption";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:7:"Legenda";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Caption";}}}}a:2:{s:5:"flags";a:5:{s:4:"type";s:8:"checkbox";s:6:"filter";s:8:"checkbox";s:10:"field_name";s:15:"caption-display";s:6:"target";s:21:"local/caption-display";s:5:"clear";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:14:"Exibir legenda";i:2;i:1;}s:2:"en";a:1:{i:1;s:15:"Display caption";}}}}a:2:{s:5:"flags";a:5:{s:4:"type";s:8:"checkbox";s:6:"filter";s:8:"checkbox";s:10:"field_name";s:14:"caption_legend";s:6:"target";s:20:"local/caption-legend";s:5:"clear";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:23:"Legenda abaixo da caixa";i:2;i:1;}s:2:"en";a:1:{i:1;s:21:"Caption below the box";}}}}a:4:{s:5:"flags";a:3:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:9:"templates";s:14:"modLayout_name";s:6:"dialog";}s:5:"local";a:1:{s:6:"scheme";s:6:"system";}s:4:"text";a:1:{s:7:"content";a:2:{s:2:"pt";a:3:{i:1;s:45:"Este módulo não possui opções de configuração";i:2;i:1;i:4;i:1;}s:2:"en";a:2:{i:1;s:32:"This module is not configurable.";i:4;i:1;}}}s:8:"children";a:4:{i:0;s:6:"_start";i:1;s:10:"_separator";i:2;s:6:"_close";i:3;s:4:"_end";}}a:2:{s:5:"flags";a:2:{s:6:"filter";s:18:"personaliteDetails";s:10:"field_name";s:7:"details";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Detalhes";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Details";}}}}a:3:{s:5:"flags";a:6:{s:4:"type";s:6:"select";s:6:"filter";s:6:"select";s:10:"field_name";s:24:"details-horizontal-align";s:6:"target";s:30:"local/details-horizontal-align";s:13:"default_value";s:0:"";s:5:"clear";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:34:"Alinhamento horizontal do conteúdo";i:2;i:1;}s:2:"en";a:1:{i:1;s:28:"Content horizontal alignment";}}}s:8:"children";a:3:{i:0;s:10:"~alignLeft";i:1;s:12:"~alignCenter";i:2;s:11:"~alignRight";}}a:3:{s:5:"flags";a:6:{s:4:"type";s:6:"select";s:6:"filter";s:6:"select";s:10:"field_name";s:22:"details-vertical-align";s:6:"target";s:28:"local/details-vertical-align";s:13:"default_value";s:0:"";s:5:"clear";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:32:"Alinhamento vertical do conteúdo";i:2;i:1;}s:2:"en";a:1:{i:1;s:26:"Content vertical alignment";}}}s:8:"children";a:3:{i:0;s:9:"~alignTop";i:1;s:12:"~alignCenter";i:2;s:12:"~alignBottom";}}a:4:{s:5:"flags";a:3:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:9:"templates";s:14:"modLayout_name";s:11:"dialog_tabs";}s:5:"local";a:1:{s:6:"scheme";s:6:"system";}s:4:"text";a:1:{s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:19:"Personalizar módulo";i:2;i:1;}s:2:"en";a:1:{i:1;s:13:"Custom module";}}}s:8:"children";a:8:{i:0;s:6:"_start";i:1;s:11:"~tabCaption";i:2;s:12:"~tabPosition";i:3;s:9:"~tabStyle";i:4;s:8:"~tabList";i:5;s:11:"~tabDetails";i:6;s:11:"~tabEffects";i:7;s:4:"_end";}}a:3:{s:5:"flags";a:6:{s:4:"type";s:6:"select";s:6:"filter";s:6:"select";s:10:"field_name";s:11:"form_layout";s:6:"target";s:17:"local/form-layout";s:13:"default_value";s:4:"grid";s:5:"clear";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Layout";i:2;i:1;}s:2:"en";a:1:{i:1;s:6:"Layout";}}}s:8:"children";a:4:{i:0;s:21:"~formularyLayoutStack";i:1;s:20:"~formularyLayoutGrid";i:2;s:19:"~formularyLayoutBox";i:3;s:22:"~formularyLayoutInline";}}a:2:{s:5:"flags";a:1:{s:5:"value";s:3:"box";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:5:"Caixa";i:2;i:1;}s:2:"en";a:1:{i:1;s:3:"Box";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:4:"grid";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:5:"Grade";i:2;i:1;}s:2:"en";a:1:{i:1;s:4:"Grid";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:6:"inline";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Em linha";i:2;i:1;}s:2:"en";a:1:{i:1;s:6:"Inline";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:5:"stack";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:5:"Pilha";i:2;i:1;}s:2:"en";a:1:{i:1;s:5:"Stack";}}}}a:2:{s:5:"flags";a:9:{s:4:"type";s:5:"range";s:6:"filter";s:7:"integer";s:10:"field_name";s:20:"img_filter_grayscale";s:6:"target";s:26:"local/img-filter-grayscale";s:9:"min_input";i:0;s:9:"max_input";i:100;s:4:"step";i:5;s:13:"default_value";i:0;s:5:"clear";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:16:"Escala de cinzas";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"Gray scale";}}}}a:2:{s:5:"flags";a:9:{s:4:"type";s:5:"range";s:6:"filter";s:7:"integer";s:10:"field_name";s:16:"img_filter_sepia";s:6:"target";s:22:"local/img-filter-sepia";s:9:"min_input";i:0;s:9:"max_input";i:100;s:4:"step";i:5;s:13:"default_value";i:0;s:5:"clear";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:5:"Sépia";i:2;i:1;}s:2:"en";a:1:{i:1;s:5:"Sepia";}}}}a:3:{s:5:"flags";a:6:{s:4:"type";s:6:"select";s:6:"filter";s:6:"select";s:10:"field_name";s:10:"img_format";s:6:"target";s:15:"local/img-shape";s:13:"default_value";s:0:"";s:5:"clear";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:7:"Formato";i:2;i:1;}s:2:"en";a:1:{i:1;s:5:"Shape";}}}s:8:"children";a:5:{i:0;s:13:"~imgShapeAuto";i:1;s:15:"~imgShapeElipse";i:2;s:18:"~imgShapeThumbnail";i:3;s:15:"~imgShapeSquare";i:4;s:15:"~imgShapeCircle";}}a:2:{s:5:"flags";a:1:{s:5:"value";s:0:"";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:25:"Manter proporção original";i:2;i:1;}s:2:"en";a:1:{i:1;s:24:"Keep original proportion";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:6:"circle";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:7:"Círculo";i:2;i:1;}s:2:"en";a:1:{i:1;s:6:"Circle";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:6:"elipse";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Elipse";i:2;i:1;}s:2:"en";a:1:{i:1;s:6:"Elipse";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:6:"square";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Quadrado";i:2;i:1;}s:2:"en";a:1:{i:1;s:6:"Square";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:9:"thumbnail";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:5:"Slide";i:2;i:1;}s:2:"en";a:1:{i:1;s:5:"Slide";}}}}a:2:{s:5:"flags";a:6:{s:4:"type";s:8:"checkbox";s:6:"filter";s:8:"checkbox";s:10:"field_name";s:9:"img-smoke";s:6:"target";s:15:"local/img-smoke";s:10:"true_value";s:9:"img-smoke";s:5:"clear";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"Efeito fumaça";i:2;i:1;}s:2:"en";a:1:{i:1;s:12:"Smoke effect";}}}}a:3:{s:5:"flags";a:6:{s:4:"type";s:6:"select";s:6:"filter";s:6:"select";s:10:"field_name";s:10:"list-align";s:6:"target";s:16:"local/list-align";s:13:"default_value";s:0:"";s:5:"clear";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"Últimos itens";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"Last items";}}}s:8:"children";a:3:{i:0;s:10:"~alignLeft";i:1;s:12:"~alignCenter";i:2;s:11:"~alignRight";}}a:2:{s:5:"flags";a:1:{s:5:"value";s:1:"1";}s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"en";a:1:{i:1;s:1:"1";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:1:"2";}s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"en";a:1:{i:1;s:1:"2";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:1:"3";}s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"en";a:1:{i:1;s:1:"3";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:1:"4";}s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"en";a:1:{i:1;s:1:"4";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:1:"5";}s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"en";a:1:{i:1;s:1:"5";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:1:"6";}s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"en";a:1:{i:1;s:1:"6";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:0:"";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:12:"(Automático)";i:2;i:1;}s:2:"en";a:1:{i:1;s:11:"(Automatic)";}}}}a:3:{s:5:"flags";a:6:{s:4:"type";s:6:"select";s:6:"filter";s:6:"select";s:10:"field_name";s:19:"columns_extra_large";s:6:"target";s:12:"local/col-xl";s:13:"default_value";s:0:"";s:5:"clear";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:12:"Colunas (TV)";i:2;i:1;}s:2:"en";a:1:{i:1;s:12:"Columns (TV)";}}}s:8:"children";a:7:{i:0;s:16:"~listColumnsAuto";i:1;s:13:"~listColumns1";i:2;s:13:"~listColumns2";i:3;s:13:"~listColumns3";i:4;s:13:"~listColumns4";i:5;s:13:"~listColumns5";i:6;s:13:"~listColumns6";}}a:3:{s:5:"flags";a:6:{s:4:"type";s:6:"select";s:6:"filter";s:6:"select";s:10:"field_name";s:13:"columns_large";s:6:"target";s:12:"local/col-lg";s:13:"default_value";s:0:"";s:5:"clear";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:17:"Colunas (Desktop)";i:2;i:1;}s:2:"en";a:1:{i:1;s:17:"Columns (Desktop)";}}}s:8:"children";a:7:{i:0;s:16:"~listColumnsAuto";i:1;s:13:"~listColumns1";i:2;s:13:"~listColumns2";i:3;s:13:"~listColumns3";i:4;s:13:"~listColumns4";i:5;s:13:"~listColumns5";i:6;s:13:"~listColumns6";}}a:3:{s:5:"flags";a:6:{s:4:"type";s:6:"select";s:6:"filter";s:6:"select";s:10:"field_name";s:14:"columns_medium";s:6:"target";s:12:"local/col-md";s:13:"default_value";s:0:"";s:5:"clear";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:16:"Colunas (Tablet)";i:2;i:1;}s:2:"en";a:1:{i:1;s:16:"Columns (Tablet)";}}}s:8:"children";a:7:{i:0;s:16:"~listColumnsAuto";i:1;s:13:"~listColumns1";i:2;s:13:"~listColumns2";i:3;s:13:"~listColumns3";i:4;s:13:"~listColumns4";i:5;s:13:"~listColumns5";i:6;s:13:"~listColumns6";}}a:3:{s:5:"flags";a:6:{s:4:"type";s:6:"select";s:6:"filter";s:6:"select";s:10:"field_name";s:13:"columns_small";s:6:"target";s:12:"local/col-sm";s:13:"default_value";s:0:"";s:5:"clear";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:17:"Colunas (Celular)";i:2;i:1;}s:2:"en";a:1:{i:1;s:16:"Columns (Mobile)";}}}s:8:"children";a:7:{i:0;s:16:"~listColumnsAuto";i:1;s:13:"~listColumns1";i:2;s:13:"~listColumns2";i:3;s:13:"~listColumns3";i:4;s:13:"~listColumns4";i:5;s:13:"~listColumns5";i:6;s:13:"~listColumns6";}}a:2:{s:5:"flags";a:1:{s:5:"value";s:0:"";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:17:"(Sem espaçamento)";i:2;i:1;}s:2:"en";a:1:{i:1;s:12:"(No spacing)";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:3:"012";}s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"en";a:1:{i:1;s:15:"0.125rem (~2px)";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:3:"025";}s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"en";a:1:{i:1;s:14:"0.25rem (~4px)";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:3:"037";}s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"en";a:1:{i:1;s:15:"0.375rem (~6px)";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:3:"050";}s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"en";a:1:{i:1;s:13:"0.5rem (~8px)";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:3:"075";}s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"en";a:1:{i:1;s:15:"0.75rem (~12px)";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:3:"100";}s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"en";a:1:{i:1;s:12:"1rem (~16px)";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:3:"125";}s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"en";a:1:{i:1;s:7:"1.25rem";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:3:"150";}s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"en";a:1:{i:1;s:6:"1.5rem";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:3:"200";}s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"en";a:1:{i:1;s:12:"2rem (~32px)";}}}}a:3:{s:5:"flags";a:6:{s:4:"type";s:6:"select";s:6:"filter";s:6:"select";s:10:"field_name";s:24:"details_vertical_spacing";s:6:"target";s:21:"local/list-column-gap";s:13:"default_value";s:0:"";s:5:"clear";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:20:"Espaçamento vertical";i:2;i:1;}s:2:"en";a:1:{i:1;s:16:"Vertical spacing";}}}s:8:"children";a:11:{i:0;s:8:"~000auto";i:1;s:11:"~listGap000";i:2;s:11:"~listGap012";i:3;s:11:"~listGap025";i:4;s:11:"~listGap037";i:5;s:11:"~listGap050";i:6;s:11:"~listGap075";i:7;s:11:"~listGap100";i:8;s:11:"~listGap125";i:9;s:11:"~listGap150";i:10;s:11:"~listGap200";}}a:3:{s:5:"flags";a:6:{s:4:"type";s:6:"select";s:6:"filter";s:6:"select";s:10:"field_name";s:26:"details_horizontal_spacing";s:6:"target";s:18:"local/list-row-gap";s:13:"default_value";s:0:"";s:5:"clear";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:22:"Espaçamento horizontal";i:2;i:1;}s:2:"en";a:1:{i:1;s:18:"Horizontal spacing";}}}s:8:"children";a:11:{i:0;s:8:"~000auto";i:1;s:11:"~listGap000";i:2;s:11:"~listGap012";i:3;s:11:"~listGap025";i:4;s:11:"~listGap037";i:5;s:11:"~listGap050";i:6;s:11:"~listGap075";i:7;s:11:"~listGap100";i:8;s:11:"~listGap125";i:9;s:11:"~listGap150";i:10;s:11:"~listGap200";}}a:3:{s:5:"flags";a:6:{s:4:"type";s:6:"select";s:6:"filter";s:6:"select";s:10:"field_name";s:9:"list_type";s:6:"target";s:17:"local/list-layout";s:13:"default_value";s:0:"";s:5:"clear";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:16:"Dispor elementos";i:2;i:1;}s:2:"en";a:1:{i:1;s:16:"Lay out elements";}}}s:8:"children";a:4:{i:0;s:17:"~listLayoutInline";i:1;s:15:"~listLayoutGrid";i:2;s:18:"~listLayoutColumns";i:3;s:15:"~listLayoutFlex";}}a:2:{s:5:"flags";a:1:{s:5:"value";s:7:"columns";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:7:"Colunas";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Columns";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:4:"flex";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:4:"Flex";i:2;i:1;}s:2:"en";a:1:{i:1;s:4:"Flex";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:0:"";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:5:"Grade";i:2;i:1;}s:2:"en";a:1:{i:1;s:4:"Grid";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:6:"inline";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Em linha";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"In line";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:1:"0";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:10:"Sem margem";i:2;i:1;}s:2:"en";a:1:{i:1;s:9:"No margin";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:0:"";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"Margem padrão";i:2;i:1;}s:2:"en";a:1:{i:1;s:14:"Default margin";}}}}a:3:{s:5:"flags";a:6:{s:4:"type";s:6:"select";s:6:"filter";s:6:"select";s:10:"field_name";s:13:"margin_bottom";s:6:"target";s:24:"local/mod-padding-bottom";s:13:"default_value";s:0:"";s:5:"clear";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:15:"Margem inferior";i:2;i:1;}s:2:"en";a:1:{i:1;s:13:"Bottom margin";}}}s:8:"children";a:11:{i:0;s:15:"~modPaddingAuto";i:1;s:12:"~modPadding0";i:2;s:7:"~025rem";i:3;s:7:"~050rem";i:4;s:7:"~075rem";i:5;s:7:"~100rem";i:6;s:7:"~125rem";i:7;s:7:"~150rem";i:8;s:7:"~200rem";i:9;s:7:"~250rem";i:10;s:7:"~300rem";}}a:3:{s:5:"flags";a:6:{s:4:"type";s:6:"select";s:6:"filter";s:6:"select";s:10:"field_name";s:11:"margin_left";s:6:"target";s:22:"local/mod-padding-left";s:13:"default_value";s:0:"";s:5:"clear";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:15:"Margem esquerda";i:2;i:1;}s:2:"en";a:1:{i:1;s:11:"Left margin";}}}s:8:"children";a:11:{i:0;s:15:"~modPaddingAuto";i:1;s:12:"~modPadding0";i:2;s:7:"~025rem";i:3;s:7:"~050rem";i:4;s:7:"~075rem";i:5;s:7:"~100rem";i:6;s:7:"~125rem";i:7;s:7:"~150rem";i:8;s:7:"~200rem";i:9;s:7:"~250rem";i:10;s:7:"~300rem";}}a:3:{s:5:"flags";a:6:{s:4:"type";s:6:"select";s:6:"filter";s:6:"select";s:10:"field_name";s:12:"margin_right";s:6:"target";s:23:"local/mod-padding-right";s:13:"default_value";s:0:"";s:5:"clear";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:14:"Margem direita";i:2;i:1;}s:2:"en";a:1:{i:1;s:12:"Right margin";}}}s:8:"children";a:11:{i:0;s:15:"~modPaddingAuto";i:1;s:12:"~modPadding0";i:2;s:7:"~025rem";i:3;s:7:"~050rem";i:4;s:7:"~075rem";i:5;s:7:"~100rem";i:6;s:7:"~125rem";i:7;s:7:"~150rem";i:8;s:7:"~200rem";i:9;s:7:"~250rem";i:10;s:7:"~300rem";}}a:3:{s:5:"flags";a:6:{s:4:"type";s:6:"select";s:6:"filter";s:6:"select";s:10:"field_name";s:10:"margin_top";s:6:"target";s:21:"local/mod-padding-top";s:13:"default_value";s:0:"";s:5:"clear";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:15:"Margem superior";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"Top margin";}}}s:8:"children";a:11:{i:0;s:15:"~modPaddingAuto";i:1;s:12:"~modPadding0";i:2;s:7:"~025rem";i:3;s:7:"~050rem";i:4;s:7:"~075rem";i:5;s:7:"~100rem";i:6;s:7:"~125rem";i:7;s:7:"~150rem";i:8;s:7:"~200rem";i:9;s:7:"~250rem";i:10;s:7:"~300rem";}}a:3:{s:5:"flags";a:6:{s:4:"type";s:6:"select";s:6:"filter";s:6:"select";s:10:"field_name";s:8:"position";s:6:"target";s:14:"local/position";s:13:"default_value";s:0:"";s:5:"clear";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:10:"Disposição";i:2;i:1;}s:2:"en";a:1:{i:1;s:11:"Disposition";}}}s:8:"children";a:6:{i:0;s:18:"~modPositionInline";i:1;s:16:"~modPositionLeft";i:2;s:18:"~modPositionCenter";i:3;s:17:"~modPositionRight";i:4;s:21:"~modPositionFloatLeft";i:5;s:22:"~modPositionFloatRight";}}a:2:{s:5:"flags";a:1:{s:5:"value";s:6:"center";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:12:"Centralizado";i:2;i:1;}s:2:"en";a:1:{i:1;s:6:"Center";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:10:"float-left";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:18:"Flutuar à esquerda";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"Float left";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:11:"float-right";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:17:"Flutuar à direita";i:2;i:1;}s:2:"en";a:1:{i:1;s:11:"Float right";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:6:"inline";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:17:"Na linha do texto";i:2;i:1;}s:2:"en";a:1:{i:1;s:6:"Inline";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:0:"";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:10:"À esquerda";i:2;i:1;}s:2:"en";a:1:{i:1;s:4:"Left";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:5:"right";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"À direita";i:2;i:1;}s:2:"en";a:1:{i:1;s:5:"Right";}}}}a:3:{s:5:"flags";a:6:{s:4:"type";s:6:"select";s:6:"filter";s:6:"select";s:10:"field_name";s:8:"semantic";s:6:"target";s:18:"local/mod-semantic";s:13:"default_value";s:0:"";s:5:"clear";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:18:"Marcação semântica";i:2;i:1;}s:2:"en";a:1:{i:1;s:15:"Semantic markup";}}}s:8:"children";a:7:{i:0;s:16:"~modSemanticNone";i:1;s:15:"~modSemanticNav";i:2;s:18:"~modSemanticHeader";i:3;s:19:"~modSemanticArticle";i:4;s:19:"~modSemanticAddress";i:5;s:18:"~modSemanticFooter";i:6;s:17:"~modSemanticAside";}}a:2:{s:5:"flags";a:1:{s:5:"value";s:7:"address";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:17:"Contatos do autor";i:2;i:1;}s:2:"en";a:1:{i:1;s:15:"Author contacts";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:7:"article";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:18:"Conteúdo principal";i:2;i:1;}s:2:"en";a:1:{i:1;s:12:"Main content";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:5:"aside";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:19:"Conteúdo secundário";i:2;i:1;}s:2:"en";a:1:{i:1;s:13:"Aside content";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:6:"footer";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Rodapé";i:2;i:1;}s:2:"en";a:1:{i:1;s:6:"Footer";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:6:"header";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"Cabeçalho";i:2;i:1;}s:2:"en";a:1:{i:1;s:6:"Header";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:3:"nav";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"Navegação";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"Navigation";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:0:"";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:1:{i:1;s:9:"(Nenhuma)";}s:2:"en";a:1:{i:1;s:6:"(None)";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:1:"1";}s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:2:{i:1;s:4:"1/12";i:2;i:1;}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:2:"10";}s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:2:{i:1;s:5:"10/12";i:2;i:1;}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:2:"11";}s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:2:{i:1;s:5:"11/12";i:2;i:1;}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:2:"12";}s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:2:{i:1;s:12:"12/12 (100%)";i:2;i:1;}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:1:"2";}s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:2:{i:1;s:4:"2/12";i:2;i:1;}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:1:"3";}s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:2:{i:1;s:10:"3/12 (25%)";i:2;i:1;}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:1:"4";}s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:2:{i:1;s:4:"4/12";i:2;i:1;}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:1:"5";}s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:2:{i:1;s:4:"5/12";i:2;i:1;}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:1:"6";}s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:2:{i:1;s:10:"6/12 (50%)";i:2;i:1;}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:1:"7";}s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:2:{i:1;s:4:"7/12";i:2;i:1;}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:1:"8";}s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:2:{i:1;s:4:"8/12";i:2;i:1;}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:1:"9";}s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:2:{i:1;s:4:"9/12";i:2;i:1;}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:0:"";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:12:"(Automático)";i:2;i:1;}s:2:"en";a:1:{i:1;s:11:"(Automatic)";}}}}a:3:{s:5:"flags";a:6:{s:4:"type";s:6:"select";s:6:"filter";s:6:"select";s:10:"field_name";s:5:"wd_xl";s:6:"target";s:11:"local/wd-xl";s:13:"default_value";s:0:"";s:5:"clear";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:12:"Largura (TV)";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"Width (TV)";}}}s:8:"children";a:14:{i:0;s:13:"~modWidthAuto";i:1;s:11:"~modWidth12";i:2;s:11:"~modWidth11";i:3;s:11:"~modWidth10";i:4;s:10:"~modWidth9";i:5;s:10:"~modWidth8";i:6;s:10:"~modWidth7";i:7;s:10:"~modWidth6";i:8;s:10:"~modWidth5";i:9;s:10:"~modWidth4";i:10;s:10:"~modWidth3";i:11;s:10:"~modWidth2";i:12;s:10:"~modWidth1";i:13;s:15:"~modWidthhidden";}}a:2:{s:5:"flags";a:1:{s:5:"value";s:6:"hidden";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:7:"Ocultar";i:2;i:1;}s:2:"en";a:1:{i:1;s:6:"Hidden";}}}}a:3:{s:5:"flags";a:6:{s:4:"type";s:6:"select";s:6:"filter";s:6:"select";s:10:"field_name";s:5:"wd_lg";s:6:"target";s:11:"local/wd-lg";s:13:"default_value";s:0:"";s:5:"clear";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:17:"Largura (Desktop)";i:2;i:1;}s:2:"en";a:1:{i:1;s:15:"Width (Desktop)";}}}s:8:"children";a:14:{i:0;s:13:"~modWidthAuto";i:1;s:11:"~modWidth12";i:2;s:11:"~modWidth11";i:3;s:11:"~modWidth10";i:4;s:10:"~modWidth9";i:5;s:10:"~modWidth8";i:6;s:10:"~modWidth7";i:7;s:10:"~modWidth6";i:8;s:10:"~modWidth5";i:9;s:10:"~modWidth4";i:10;s:10:"~modWidth3";i:11;s:10:"~modWidth2";i:12;s:10:"~modWidth1";i:13;s:15:"~modWidthhidden";}}a:3:{s:5:"flags";a:6:{s:4:"type";s:6:"select";s:6:"filter";s:6:"select";s:10:"field_name";s:5:"wd_md";s:6:"target";s:11:"local/wd-md";s:13:"default_value";s:0:"";s:5:"clear";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:16:"Largura (Tablet)";i:2;i:1;}s:2:"en";a:1:{i:1;s:14:"Width (Tablet)";}}}s:8:"children";a:14:{i:0;s:13:"~modWidthAuto";i:1;s:11:"~modWidth12";i:2;s:11:"~modWidth11";i:3;s:11:"~modWidth10";i:4;s:10:"~modWidth9";i:5;s:10:"~modWidth8";i:6;s:10:"~modWidth7";i:7;s:10:"~modWidth6";i:8;s:10:"~modWidth5";i:9;s:10:"~modWidth4";i:10;s:10:"~modWidth3";i:11;s:10:"~modWidth2";i:12;s:10:"~modWidth1";i:13;s:15:"~modWidthhidden";}}a:3:{s:5:"flags";a:6:{s:4:"type";s:6:"select";s:6:"filter";s:6:"select";s:10:"field_name";s:5:"wd_sm";s:6:"target";s:11:"local/wd-sm";s:13:"default_value";s:0:"";s:5:"clear";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:17:"Largura (Celular)";i:2;i:1;}s:2:"en";a:1:{i:1;s:14:"Width (Mobile)";}}}s:8:"children";a:14:{i:0;s:13:"~modWidthAuto";i:1;s:11:"~modWidth12";i:2;s:11:"~modWidth11";i:3;s:11:"~modWidth10";i:4;s:10:"~modWidth9";i:5;s:10:"~modWidth8";i:6;s:10:"~modWidth7";i:7;s:10:"~modWidth6";i:8;s:10:"~modWidth5";i:9;s:10:"~modWidth4";i:10;s:10:"~modWidth3";i:11;s:10:"~modWidth2";i:12;s:10:"~modWidth1";i:13;s:15:"~modWidthhidden";}}a:3:{s:5:"flags";a:1:{s:6:"filter";s:9:"formulary";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:7:"Legenda";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Caption";}}}s:8:"children";a:4:{i:0;s:8:"~caption";i:1;s:15:"~captionDisplay";i:2;s:11:"~boxDisplay";i:3;s:12:"~modSemantic";}}a:3:{s:5:"flags";a:1:{s:6:"filter";s:9:"formulary";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Detalhes";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Details";}}}s:8:"children";a:1:{i:0;s:8:"~details";}}a:3:{s:5:"flags";a:1:{s:6:"filter";s:9:"formulary";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:7:"Efeitos";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Effects";}}}s:8:"children";a:4:{i:0;s:9:"~imgShape";i:1;s:9:"~imgSmoke";i:2;s:15:"~imgFilterSepia";i:3;s:19:"~imgFilterGrayscale";}}a:3:{s:5:"flags";a:1:{s:6:"filter";s:9:"formulary";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:10:"Formulário";i:2;i:1;}s:2:"en";a:1:{i:1;s:9:"Formulary";}}}s:8:"children";a:1:{i:0;s:16:"~formularyLayout";}}a:3:{s:5:"flags";a:1:{s:6:"filter";s:9:"formulary";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:5:"Lista";i:2;i:1;}s:2:"en";a:1:{i:1;s:4:"List";}}}s:8:"children";a:10:{i:0;s:11:"~listLayout";i:1;s:10:"~listAlign";i:2;s:17:"~listColumnsSmall";i:3;s:18:"~listColumnsMedium";i:4;s:17:"~listColumnsLarge";i:5;s:22:"~listColumnsExtraLarge";i:6;s:11:"~listGapRow";i:7;s:14:"~listGapColumn";i:8;s:23:"~detailsHorizontalAlign";i:9;s:21:"~detailsVerticalAlign";}}a:3:{s:5:"flags";a:1:{s:6:"filter";s:9:"formulary";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:10:"Disposição";i:2;i:1;}s:2:"en";a:1:{i:1;s:11:"Disposition";}}}s:8:"children";a:9:{i:0;s:12:"~modPosition";i:1;s:14:"~modWidthSmall";i:2;s:15:"~modWidthMedium";i:3;s:14:"~modWidthLarge";i:4;s:19:"~modWidthExtraLarge";i:5;s:14:"~modPaddingTop";i:6;s:16:"~modPaddingRight";i:7;s:17:"~modPaddingBottom";i:8;s:15:"~modPaddingLeft";}}a:3:{s:5:"flags";a:1:{s:6:"filter";s:9:"formulary";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Estilo";i:2;i:1;}s:2:"en";a:1:{i:1;s:5:"Style";}}}s:8:"children";a:5:{i:0;s:10:"~boxScheme";i:1;s:11:"~boxPadding";i:2;s:12:"~boxFontSize";i:3;s:10:"~boxShadow";i:4;s:16:"~boxBorderRadius";}}a:3:{s:5:"flags";a:3:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:9:"templates";s:14:"modLayout_name";s:11:"dialog_tabs";}s:5:"local";a:1:{s:6:"scheme";s:6:"system";}s:4:"text";a:2:{s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:31:"Gerenciar componentes do modelo";i:2;i:1;}s:2:"en";a:1:{i:1;s:26:"Manage template components";}}s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:31:"Gerenciar componentes do modelo";i:2;i:1;}s:2:"en";a:1:{i:1;s:26:"Manage template components";}}}}a:1:{s:8:"children";a:19:{i:0;s:6:"_start";i:1;s:11:"~tabLayouts";i:2;s:11:"~tabModules";i:3;s:9:"~tabLists";i:4;s:11:"~tabDetails";i:5;s:10:"~tabFields";i:6;s:9:"~tabFonts";i:7;s:9:"~tabIcons";i:8;s:10:"~tabLabels";i:9;s:16:"~tabLabelsAction";i:10;s:14:"~tabLabelsDate";i:11;s:15:"~tabLabelsField";i:12;s:14:"~tabLabelsLang";i:13;s:20:"~tabLabelsNavigation";i:14;s:12:"~tabPalettes";i:15;s:11:"~tabScripts";i:16;s:10:"~tabStyles";i:17;s:10:"~tabThemes";i:18;s:4:"_end";}}a:2:{s:5:"flags";a:2:{s:6:"filter";s:27:"personaliteTemplate_manager";s:6:"folder";s:7:"details";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:23:"Detalhes personalizados";i:2;i:1;}s:2:"en";a:1:{i:1;s:14:"Custom details";}}}}a:2:{s:5:"flags";a:2:{s:6:"filter";s:27:"personaliteTemplate_manager";s:6:"folder";s:6:"fields";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:35:"Campos de formulário personalizados";i:2;i:1;}s:2:"en";a:1:{i:1;s:23:"Custom formulary fields";}}}}a:2:{s:5:"flags";a:2:{s:6:"filter";s:27:"personaliteTemplate_manager";s:6:"folder";s:5:"fonts";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:21:"Fontes personalizadas";i:2;i:1;}s:2:"en";a:1:{i:1;s:12:"Custom fonts";}}}}a:2:{s:5:"flags";a:2:{s:6:"filter";s:27:"personaliteTemplate_manager";s:6:"folder";s:5:"icons";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:21:"Ícones personalizados";i:2;i:1;}s:2:"en";a:1:{i:1;s:12:"Custom icons";}}}}a:2:{s:5:"flags";a:2:{s:6:"filter";s:29:"personaliteFields_descriptive";s:6:"folder";s:6:"labels";}s:4:"text";a:1:{s:7:"content";a:1:{s:2:"pt";a:2:{i:1;s:162:"Para editar as etiquetas de textos em outro idioma, adicione outros idiomas ao seu ambiente e alterne para o idioma desejado antes de iniciar seu trabalho aqui.#r#n";i:2;i:1;}}}}a:2:{s:5:"flags";a:2:{s:6:"filter";s:27:"personaliteTemplate_manager";s:6:"folder";s:13:"labels/action";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:29:"Etiquetas de texto para ações";i:2;i:1;}s:2:"en";a:1:{i:1;s:30:"Custom text labels for actions";}}}}a:2:{s:5:"flags";a:2:{s:6:"filter";s:27:"personaliteTemplate_manager";s:6:"folder";s:11:"labels/date";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:29:"Etiquetas de texto para datas";i:2;i:1;}s:2:"en";a:1:{i:1;s:28:"Custom text labels for dates";}}}}a:2:{s:5:"flags";a:2:{s:6:"filter";s:27:"personaliteTemplate_manager";s:6:"folder";s:12:"labels/field";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:30:"Etiquetas de texto para campos";i:2;i:1;}s:2:"en";a:1:{i:1;s:29:"Custom text labels for fields";}}}}a:2:{s:5:"flags";a:2:{s:6:"filter";s:27:"personaliteTemplate_manager";s:6:"folder";s:11:"labels/lang";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:31:"Etiquetas de texto para idiomas";i:2;i:1;}s:2:"en";a:1:{i:1;s:32:"Custom text labels for languages";}}}}a:2:{s:5:"flags";a:2:{s:6:"filter";s:27:"personaliteTemplate_manager";s:6:"folder";s:17:"labels/navigation";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:33:"Etiquetas de texto para navegação";i:2;i:1;}s:2:"en";a:1:{i:1;s:33:"Custom text labels for navigation";}}}}a:2:{s:5:"flags";a:2:{s:6:"filter";s:27:"personaliteTemplate_manager";s:6:"folder";s:7:"layouts";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:22:"Layouts personalizados";i:2;i:1;}s:2:"en";a:1:{i:1;s:14:"Custom layouts";}}}}a:2:{s:5:"flags";a:2:{s:6:"filter";s:27:"personaliteTemplate_manager";s:6:"folder";s:5:"lists";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:21:"Listas personalizadas";i:2;i:1;}s:2:"en";a:1:{i:1;s:12:"Custom lists";}}}}a:2:{s:5:"flags";a:2:{s:6:"filter";s:27:"personaliteTemplate_manager";s:6:"folder";s:7:"modules";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:22:"Módulos personalizados";i:2;i:1;}s:2:"en";a:1:{i:1;s:14:"Custom modules";}}}}a:2:{s:5:"flags";a:2:{s:6:"filter";s:27:"personaliteTemplate_manager";s:6:"folder";s:8:"palettes";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:22:"Paletas personalizadas";i:2;i:1;}s:2:"en";a:1:{i:1;s:15:"Custom palettes";}}}}a:2:{s:5:"flags";a:2:{s:6:"filter";s:27:"personaliteTemplate_manager";s:6:"folder";s:7:"scripts";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:22:"Scripts personalizados";i:2;i:1;}s:2:"en";a:1:{i:1;s:14:"Custom scripts";}}}}a:2:{s:5:"flags";a:2:{s:6:"filter";s:27:"personaliteTemplate_manager";s:6:"folder";s:6:"styles";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:22:"Estilos personalizados";i:2;i:1;}s:2:"en";a:1:{i:1;s:19:"Custom style sheets";}}}}a:2:{s:5:"flags";a:2:{s:6:"filter";s:27:"personaliteTemplate_manager";s:6:"folder";s:6:"themes";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:20:"Temas personalizados";i:2;i:1;}s:2:"en";a:1:{i:1;s:13:"Custom themes";}}}}a:3:{s:5:"flags";a:1:{s:6:"filter";s:9:"formulary";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Detalhes";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Details";}}}s:8:"children";a:1:{i:0;s:14:"~manageDetails";}}a:3:{s:5:"flags";a:1:{s:6:"filter";s:9:"formulary";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:10:"Formulário";i:2;i:1;}s:2:"en";a:1:{i:1;s:9:"Formulary";}}}s:8:"children";a:1:{i:0;s:13:"~manageFields";}}a:3:{s:5:"flags";a:1:{s:6:"filter";s:9:"formulary";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Fontes";i:2;i:1;}s:2:"en";a:1:{i:1;s:5:"Fonts";}}}s:8:"children";a:1:{i:0;s:12:"~manageFonts";}}a:3:{s:5:"flags";a:1:{s:6:"filter";s:9:"formulary";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Ícones";i:2;i:1;}s:2:"en";a:1:{i:1;s:5:"Icons";}}}s:8:"children";a:1:{i:0;s:12:"~manageIcons";}}a:3:{s:5:"flags";a:1:{s:6:"filter";s:9:"formulary";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:18:"Etiquetas de texto";i:2;i:1;}s:2:"en";a:1:{i:1;s:11:"Text labels";}}}s:8:"children";a:1:{i:0;s:13:"~manageLabels";}}a:3:{s:5:"flags";a:1:{s:6:"filter";s:9:"formulary";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:3:{i:1;s:27:"   •   Ações";i:2;i:1;i:5;i:2;}s:2:"en";a:2:{i:1;s:29:"   •   Actions";i:5;i:2;}}}s:8:"children";a:1:{i:0;s:19:"~manageLabelsAction";}}a:3:{s:5:"flags";a:1:{s:6:"filter";s:9:"formulary";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:3:{i:1;s:27:"   •   Datas";i:2;i:1;i:5;i:2;}s:2:"en";a:2:{i:1;s:27:"   •   Dates";i:5;i:2;}}}s:8:"children";a:1:{i:0;s:17:"~manageLabelsDate";}}a:3:{s:5:"flags";a:1:{s:6:"filter";s:9:"formulary";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:3:{i:1;s:28:"   •   Campos";i:2;i:1;i:5;i:2;}s:2:"en";a:2:{i:1;s:28:"   •   Fields";i:5;i:2;}}}s:8:"children";a:1:{i:0;s:18:"~manageLabelsField";}}a:3:{s:5:"flags";a:1:{s:6:"filter";s:9:"formulary";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:3:{i:1;s:29:"   •   Idiomas";i:2;i:1;i:5;i:2;}s:2:"en";a:2:{i:1;s:31:"   •   Languages";i:5;i:2;}}}s:8:"children";a:1:{i:0;s:17:"~manageLabelsLang";}}a:3:{s:5:"flags";a:1:{s:6:"filter";s:9:"formulary";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:3:{i:1;s:31:"   •   Navegação";i:2;i:1;i:5;i:2;}s:2:"en";a:2:{i:1;s:32:"   •   Navigation";i:5;i:2;}}}s:8:"children";a:1:{i:0;s:23:"~manageLabelsNavigation";}}a:3:{s:5:"flags";a:1:{s:6:"filter";s:9:"formulary";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:7:"Layouts";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Layouts";}}}s:8:"children";a:1:{i:0;s:14:"~manageLayouts";}}a:3:{s:5:"flags";a:1:{s:6:"filter";s:9:"formulary";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Listas";i:2;i:1;}s:2:"en";a:1:{i:1;s:5:"Lists";}}}s:8:"children";a:1:{i:0;s:12:"~manageLists";}}a:3:{s:5:"flags";a:1:{s:6:"filter";s:9:"formulary";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:7:"Módulos";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Modules";}}}s:8:"children";a:1:{i:0;s:14:"~manageModules";}}a:3:{s:5:"flags";a:1:{s:6:"filter";s:9:"formulary";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:16:"Paletas de cores";i:2;i:1;}s:2:"en";a:1:{i:1;s:14:"Color palettes";}}}s:8:"children";a:1:{i:0;s:15:"~managePalettes";}}a:3:{s:5:"flags";a:1:{s:6:"filter";s:9:"formulary";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:7:"Scripts";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Scripts";}}}s:8:"children";a:1:{i:0;s:14:"~manageScripts";}}a:3:{s:5:"flags";a:1:{s:6:"filter";s:9:"formulary";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:16:"Folhas de estilo";i:2;i:1;}s:2:"en";a:1:{i:1;s:12:"Style sheets";}}}s:8:"children";a:1:{i:0;s:13:"~manageStyles";}}a:3:{s:5:"flags";a:1:{s:6:"filter";s:9:"formulary";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:5:"Temas";i:2;i:1;}s:2:"en";a:1:{i:1;s:6:"Themes";}}}s:8:"children";a:1:{i:0;s:13:"~manageThemes";}}a:4:{s:5:"flags";a:3:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:7:"control";s:14:"modLayout_name";s:31:"personaliteTemplate_add_content";}s:5:"local";a:1:{s:6:"scheme";s:6:"system";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:17:"Adicionar detalhe";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"Add detail";}}}s:4:"html";s:963:"#r#n#r#n[mod:list{]#r#n#r#n
      #r#n#r#n#r#n[}]#r#n[style]#r#n/* align window elements */#r#nBODY { text-align:center; }#r#n[/style]#r#n[script]#r#n#r#n#r#nfunction keyListener (event)#r#n{ // key listener#r#nif (event.key == #sEnter#s)#r#nsendChoice();#r#n} // key listener#r#nfunction sendChoice ()#r#n{ // sendChoice#r#nvar select = document.getElementById ("modules");#r#nif (select.selectedIndex >= 0)#r#n{ // valid selection#r#nwindow.location = select.options[]select.selectedIndex].dataset.url;#r#n} // valid selection#r#n} // sendChoice#r#n#r#nselect = document.getElementById ("modules");#r#nif (select.length)#r#n{#r#nselect.selectedIndex = 0;#r#nselect.focus();#r#n}#r#n[/script]#r#n";}a:4:{s:5:"flags";a:3:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:9:"templates";s:14:"modLayout_name";s:11:"dialog_tabs";}s:5:"local";a:1:{s:6:"scheme";s:6:"system";}s:4:"text";a:1:{s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:14:"Editar detalhe";i:2;i:1;}s:2:"en";a:1:{i:1;s:11:"Edit detail";}}}s:8:"children";a:5:{i:0;s:6:"_start";i:1;s:11:"~tabCaption";i:2;s:8:"~tabHTML";i:3;s:11:"~tabFilters";i:4;s:4:"_end";}}a:4:{s:5:"flags";a:3:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:9:"templates";s:14:"modLayout_name";s:11:"dialog_tabs";}s:5:"local";a:1:{s:6:"scheme";s:6:"system";}s:4:"text";a:1:{s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:17:"Editar componente";i:2;i:1;}s:2:"en";a:1:{i:1;s:14:"Edit component";}}}s:8:"children";a:5:{i:0;s:6:"_start";i:1;s:11:"~tabCaption";i:2;s:8:"~tabHTML";i:3;s:8:"~tabVars";i:4;s:4:"_end";}}a:2:{s:5:"flags";a:5:{s:4:"type";s:4:"text";s:6:"filter";s:4:"text";s:10:"field_name";s:7:"caption";s:6:"target";s:12:"text/caption";s:8:"required";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:7:"Legenda";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Caption";}}}}a:2:{s:5:"flags";a:4:{s:4:"type";s:12:"textarea_big";s:6:"filter";s:4:"free";s:10:"field_name";s:3:"css";s:6:"target";s:4:"html";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:3:"CSS";i:2;i:1;}s:2:"en";a:1:{i:1;s:3:"CSS";}}}}a:2:{s:5:"flags";a:4:{s:4:"type";s:4:"text";s:6:"filter";s:4:"text";s:10:"field_name";s:11:"description";s:6:"target";s:12:"text/content";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:11:"Observações";i:2;i:1;}s:2:"en";a:1:{i:1;s:5:"Notes";}}}}a:2:{s:5:"flags";a:2:{s:6:"filter";s:37:"personaliteTemplate_configure_filters";s:10:"field_name";s:7:"filters";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Campos";i:2;i:1;}s:2:"en";a:1:{i:1;s:6:"Fields";}}}}a:2:{s:5:"flags";a:1:{s:6:"filter";s:29:"personaliteFields_descriptive";}s:4:"text";a:1:{s:7:"content";a:2:{s:2:"pt";a:3:{i:1;s:57:"Quando editar o post, incluir estes campos no formulário:";i:2;i:1;i:4;i:1;}s:2:"en";a:2:{i:1;s:56:"When editing the post, include these fields in the form:";i:4;i:1;}}}}a:2:{s:5:"flags";a:2:{s:6:"filter";s:17:"personalite_flags";s:10:"field_name";s:5:"flags";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"Sinalizadores";i:2;i:1;}s:2:"en";a:1:{i:1;s:5:"Flags";}}}}a:2:{s:5:"flags";a:5:{s:4:"type";s:8:"textarea";s:6:"filter";s:4:"free";s:10:"field_name";s:4:"face";s:6:"target";s:15:"local/font-face";s:5:"clear";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:10:"@font-face";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"@font-face";}}}}a:2:{s:5:"flags";a:5:{s:4:"type";s:4:"text";s:6:"filter";s:4:"free";s:10:"field_name";s:5:"stack";s:6:"target";s:16:"local/font-stack";s:5:"clear";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:11:"font-family";i:2;i:1;}s:2:"en";a:1:{i:1;s:11:"font-family";}}}}a:2:{s:5:"flags";a:4:{s:4:"type";s:12:"textarea_big";s:6:"filter";s:4:"free";s:10:"field_name";s:4:"html";s:6:"target";s:4:"html";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:4:"HTML";i:2;i:1;}s:2:"en";a:1:{i:1;s:4:"HTML";}}}}a:2:{s:5:"flags";a:5:{s:4:"type";s:4:"text";s:6:"filter";s:6:"regexp";s:10:"field_name";s:10:"identifier";s:6:"target";s:10:"identifier";s:6:"regexp";s:17:"/[a-z][a-z0-9-]+/";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"Identificador";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"Identifier";}}}}a:2:{s:5:"flags";a:4:{s:4:"type";s:12:"textarea_big";s:6:"filter";s:4:"free";s:10:"field_name";s:6:"script";s:6:"target";s:4:"html";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:10:"JavaScript";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"JavaScript";}}}}a:2:{s:5:"flags";a:2:{s:6:"filter";s:16:"personalite_vars";s:10:"field_name";s:5:"local";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"Variáveis";i:2;i:1;}s:2:"en";a:1:{i:1;s:9:"Variables";}}}}a:4:{s:5:"flags";a:3:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:9:"templates";s:14:"modLayout_name";s:11:"dialog_tabs";}s:5:"local";a:1:{s:6:"scheme";s:6:"system";}s:4:"text";a:1:{s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:26:"Editar Campo de formulário";i:2;i:1;}s:2:"en";a:1:{i:1;s:15:"Edit form field";}}}s:8:"children";a:4:{i:0;s:6:"_start";i:1;s:11:"~tabCaption";i:2;s:8:"~tabHTML";i:3;s:4:"_end";}}a:4:{s:5:"flags";a:3:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:9:"templates";s:14:"modLayout_name";s:11:"dialog_tabs";}s:5:"local";a:1:{s:6:"scheme";s:6:"system";}s:4:"text";a:1:{s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:12:"Editar fonte";i:2;i:1;}s:2:"en";a:1:{i:1;s:9:"Edit font";}}}s:8:"children";a:4:{i:0;s:6:"_start";i:1;s:11:"~tabCaption";i:2;s:9:"~tabFonts";i:3;s:4:"_end";}}a:4:{s:5:"flags";a:3:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:9:"templates";s:14:"modLayout_name";s:11:"dialog_tabs";}s:5:"local";a:1:{s:6:"scheme";s:6:"system";}s:4:"text";a:1:{s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:12:"Editar ícone";i:2;i:1;}s:2:"en";a:1:{i:1;s:9:"Edit icon";}}}s:8:"children";a:4:{i:0;s:6:"_start";i:1;s:11:"~tabCaption";i:2;s:8:"~tabHTML";i:3;s:4:"_end";}}a:4:{s:5:"flags";a:3:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:9:"templates";s:14:"modLayout_name";s:11:"dialog_tabs";}s:5:"local";a:1:{s:6:"scheme";s:6:"system";}s:4:"text";a:1:{s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:13:"Editar layout";i:2;i:1;}s:2:"en";a:1:{i:1;s:11:"Edit layout";}}}s:8:"children";a:5:{i:0;s:6:"_start";i:1;s:11:"~tabCaption";i:2;s:8:"~tabHTML";i:3;s:8:"~tabVars";i:4;s:4:"_end";}}a:4:{s:5:"flags";a:3:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:9:"templates";s:14:"modLayout_name";s:11:"dialog_tabs";}s:5:"local";a:1:{s:6:"scheme";s:6:"system";}s:4:"text";a:1:{s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:12:"Editar lista";i:2;i:1;}s:2:"en";a:1:{i:1;s:9:"Edit list";}}}s:8:"children";a:4:{i:0;s:6:"_start";i:1;s:11:"~tabCaption";i:2;s:8:"~tabHTML";i:3;s:4:"_end";}}a:4:{s:5:"flags";a:3:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:9:"templates";s:14:"modLayout_name";s:11:"dialog_tabs";}s:5:"local";a:1:{s:6:"scheme";s:6:"system";}s:4:"text";a:1:{s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:13:"Editar módulo";i:2;i:1;}s:2:"en";a:1:{i:1;s:11:"Edit module";}}}s:8:"children";a:5:{i:0;s:6:"_start";i:1;s:11:"~tabCaption";i:2;s:8:"~tabHTML";i:3;s:8:"~tabVars";i:4;s:4:"_end";}}a:4:{s:5:"flags";a:3:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:9:"templates";s:14:"modLayout_name";s:11:"dialog_tabs";}s:5:"local";a:1:{s:6:"scheme";s:6:"system";}s:4:"text";a:1:{s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:13:"Editar paleta";i:2;i:1;}s:2:"en";a:1:{i:1;s:12:"Edit palette";}}}s:8:"children";a:4:{i:0;s:6:"_start";i:1;s:11:"~tabCaption";i:2;s:8:"~tabVars";i:3;s:4:"_end";}}a:4:{s:5:"flags";a:3:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:9:"templates";s:14:"modLayout_name";s:11:"dialog_tabs";}s:5:"local";a:1:{s:6:"scheme";s:6:"system";}s:4:"text";a:1:{s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:13:"Editar script";i:2;i:1;}s:2:"en";a:1:{i:1;s:11:"Edit script";}}}s:8:"children";a:4:{i:0;s:6:"_start";i:1;s:11:"~tabCaption";i:2;s:10:"~tabScript";i:3;s:4:"_end";}}a:4:{s:5:"flags";a:3:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:9:"templates";s:14:"modLayout_name";s:11:"dialog_tabs";}s:5:"local";a:1:{s:6:"scheme";s:6:"system";}s:4:"text";a:1:{s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:22:"Editar folha de estilo";i:2;i:1;}s:2:"en";a:1:{i:1;s:16:"Edit style sheet";}}}s:8:"children";a:4:{i:0;s:6:"_start";i:1;s:11:"~tabCaption";i:2;s:7:"~tabCSS";i:3;s:4:"_end";}}a:3:{s:5:"flags";a:1:{s:6:"filter";s:9:"formulary";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"Identificação";i:2;i:1;}s:2:"en";a:1:{i:1;s:14:"Identification";}}}s:8:"children";a:3:{i:0;s:12:"~editCaption";i:1;s:9:"~editName";i:2;s:16:"~editDescription";}}a:3:{s:5:"flags";a:1:{s:6:"filter";s:9:"formulary";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:3:"CSS";i:2;i:1;}s:2:"en";a:1:{i:1;s:3:"CSS";}}}s:8:"children";a:1:{i:0;s:8:"~editCSS";}}a:3:{s:5:"flags";a:1:{s:6:"filter";s:9:"formulary";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:10:"Formulário";i:2;i:1;}s:2:"en";a:1:{i:1;s:9:"Formulary";}}}s:8:"children";a:2:{i:0;s:23:"~editFiltersDescription";i:1;s:12:"~editFilters";}}a:3:{s:5:"flags";a:1:{s:6:"filter";s:9:"formulary";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"Sinalizadores";i:2;i:1;}s:2:"en";a:1:{i:1;s:5:"Flags";}}}s:8:"children";a:1:{i:0;s:10:"~editFlags";}}a:3:{s:5:"flags";a:1:{s:6:"filter";s:9:"formulary";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:5:"Fonte";i:2;i:1;}s:2:"en";a:1:{i:1;s:4:"Font";}}}s:8:"children";a:2:{i:0;s:13:"~editFontFace";i:1;s:14:"~editFontStack";}}a:3:{s:5:"flags";a:1:{s:6:"filter";s:9:"formulary";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:4:"HTML";i:2;i:1;}s:2:"en";a:1:{i:1;s:4:"HTML";}}}s:8:"children";a:1:{i:0;s:9:"~editHTML";}}a:3:{s:5:"flags";a:1:{s:6:"filter";s:9:"formulary";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Script";i:2;i:1;}s:2:"en";a:1:{i:1;s:6:"Script";}}}s:8:"children";a:1:{i:0;s:11:"~editScript";}}a:3:{s:5:"flags";a:1:{s:6:"filter";s:9:"formulary";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"Variáveis";i:2;i:1;}s:2:"en";a:1:{i:1;s:9:"Variables";}}}s:8:"children";a:1:{i:0;s:9:"~editVars";}}a:4:{s:5:"flags";a:3:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:9:"templates";s:14:"modLayout_name";s:11:"dialog_tabs";}s:5:"local";a:1:{s:6:"scheme";s:6:"system";}s:4:"text";a:1:{s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:13:"Editar modelo";i:2;i:1;}s:2:"en";a:1:{i:1;s:13:"Edit template";}}}s:8:"children";a:5:{i:0;s:6:"_start";i:1;s:11:"~tabCaption";i:2;s:8:"~tabHTML";i:3;s:8:"~tabVars";i:4;s:4:"_end";}}a:4:{s:5:"flags";a:3:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:9:"templates";s:14:"modLayout_name";s:11:"dialog_tabs";}s:5:"local";a:1:{s:6:"scheme";s:6:"system";}s:4:"text";a:1:{s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:11:"Editar tema";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"Edit theme";}}}s:8:"children";a:4:{i:0;s:6:"_start";i:1;s:11:"~tabCaption";i:2;s:8:"~tabVars";i:3;s:4:"_end";}}a:3:{s:5:"flags";a:3:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:7:"control";s:14:"modLayout_name";s:23:"personaliteDetails_main";}s:5:"local";a:1:{s:6:"scheme";s:6:"system";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:16:"Adicionar filtro";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"Add filter";}}}}a:4:{s:5:"flags";a:3:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:9:"templates";s:14:"modLayout_name";s:11:"dialog_tabs";}s:5:"local";a:1:{s:6:"scheme";s:6:"system";}s:4:"text";a:1:{s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:24:"Editar etiqueta de texto";i:2;i:1;}s:2:"en";a:1:{i:1;s:15:"Edit text label";}}}s:8:"children";a:3:{i:0;s:6:"_start";i:1;s:11:"~tabCaption";i:2;s:4:"_end";}}a:2:{s:5:"flags";a:5:{s:4:"type";s:4:"text";s:6:"filter";s:4:"text";s:10:"field_name";s:7:"caption";s:6:"target";s:12:"text/caption";s:8:"required";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:7:"Legenda";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Caption";}}}}a:2:{s:5:"flags";a:4:{s:4:"type";s:4:"text";s:6:"filter";s:4:"free";s:10:"field_name";s:10:"identifier";s:6:"target";s:10:"identifier";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"Identificador";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"Identifier";}}}}a:3:{s:5:"flags";a:1:{s:6:"filter";s:9:"formulary";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"Identificação";i:2;i:1;}s:2:"en";a:1:{i:1;s:14:"Identification";}}}s:8:"children";a:3:{i:0;s:9:"~editName";i:1;s:12:"~editCaption";i:2;s:16:"~editDescription";}}a:1:{s:4:"text";a:3:{s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:12:"Editar seção";i:2;i:1;}s:2:"en";a:2:{i:1;s:12:"Edit section";i:2;i:1;}}s:11:"description";a:0:{}s:7:"content";a:0:{}}}a:2:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:12:"Editar seção";i:2;i:1;}s:2:"en";a:2:{i:1;s:12:"Edit section";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:12:"Editar seção";i:2;i:1;}s:2:"en";a:2:{i:1;s:12:"Edit section";i:2;i:1;}}}s:8:"children";a:12:{i:0;s:6:"_start";i:1;s:10:"~editTitle";i:2;s:12:"~editCaption";i:3;s:9:"~editName";i:4;s:16:"~editDescription";i:5;s:8:"~editImg";i:6;s:20:"~specialFieldsOnEdit";i:7;s:11:"~editAccess";i:8;s:10:"~editGroup";i:9;s:12:"~editUpdated";i:10;s:11:"_saveCancel";i:11;s:4:"_end";}}a:3:{s:5:"flags";a:6:{s:4:"type";s:6:"select";s:6:"filter";s:6:"select";s:10:"field_name";s:6:"access";s:6:"target";s:6:"access";s:13:"default_value";i:0;s:4:"cast";s:3:"int";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:15:"Permitir acesso";i:2;i:1;}s:2:"en";a:2:{i:1;s:12:"Allow access";i:2;i:1;}}}s:8:"children";a:4:{i:0;s:14:"~editAccessAll";i:1;s:21:"~editAccessSubscribed";i:2;s:17:"~editAccessMember";i:3;s:16:"~editAccessAdmin";}}a:2:{s:5:"flags";a:1:{s:5:"value";s:1:"4";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:23:"Somente administradores";i:2;i:1;}s:2:"en";a:2:{i:1;s:19:"Administrators only";i:2;i:1;}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:1:"0";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:5:"Todos";i:2;i:1;}s:2:"en";a:2:{i:1;s:3:"All";i:2;i:1;}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:1:"3";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:27:"Somente membros deste grupo";i:2;i:1;}s:2:"en";a:2:{i:1;s:26:"Members of this group only";i:2;i:1;}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:1:"2";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:20:"Usuários cadastrados";i:2;i:1;}s:2:"en";a:2:{i:1;s:16:"Subscribed users";i:2;i:1;}}}}a:2:{s:5:"flags";a:6:{s:4:"type";s:10:"text_small";s:6:"filter";s:7:"caption";s:10:"field_name";s:7:"caption";s:6:"target";s:12:"text/caption";s:8:"required";i:1;s:9:"error_msg";s:27:"section_editCaptionRequired";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:35:"Legenda (como será exibida no menu)";i:2;i:1;}s:2:"en";a:2:{i:1;s:39:"Caption (as it will appear on the menu)";i:2;i:1;}}}}a:2:{s:5:"flags";a:2:{s:4:"icon";s:5:"error";s:7:"caption";s:31:"renderLabels_msg_required_field";}s:4:"text";a:1:{s:7:"content";a:2:{s:2:"pt";a:3:{i:1;s:99:"Esta seção precisa de uma legenda.#r#n#r#nSem legenda, não é possível apresentá-la no menu de seções.#r#n";i:2;i:1;i:4;i:1;}s:2:"en";a:5:{i:1;s:95:"This section needs a caption.#r#n#r#nWithout caption, it can not be displayed in the sections menu.";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:2:{s:5:"flags";a:8:{s:9:"condition";s:8:"!wysiwyg";s:4:"type";s:8:"textarea";s:6:"filter";s:4:"text";s:10:"field_name";s:7:"content";s:6:"target";s:12:"text/content";s:12:"format_force";i:1;s:10:"html_force";i:2;s:15:"ecolabore_force";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Conteúdo";i:2;i:1;}s:2:"en";a:2:{i:1;s:7:"Content";i:2;i:1;}}}}a:1:{s:5:"flags";a:5:{s:4:"type";s:14:"textarea_small";s:6:"filter";s:4:"text";s:10:"field_name";s:11:"description";s:6:"target";s:16:"text/description";s:7:"caption";s:24:"labels/field/description";}}a:2:{s:5:"flags";a:2:{s:6:"filter";s:19:"section_selectGroup";s:10:"field_name";s:5:"group";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:5:"Grupo";i:2;i:1;}s:2:"en";a:2:{i:1;s:5:"Group";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"(Nenhum)";i:2;i:1;}s:2:"en";a:2:{i:1;s:6:"(None)";i:2;i:1;}}}}a:2:{s:5:"flags";a:2:{s:6:"filter";s:21:"personaliteExtras_img";s:10:"field_name";s:3:"img";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Imagem";i:2;i:1;}s:2:"en";a:2:{i:1;s:5:"Image";i:2;i:1;}}}}a:1:{s:5:"flags";a:5:{s:4:"type";s:4:"text";s:6:"filter";s:4:"text";s:10:"field_name";s:8:"keywords";s:6:"target";s:13:"text/keywords";s:7:"caption";s:21:"labels/field/keywords";}}a:1:{s:5:"flags";a:1:{s:6:"filter";s:8:"keywords";}}a:2:{s:5:"flags";a:5:{s:4:"type";s:10:"text_small";s:6:"filter";s:11:"domain_name";s:10:"field_name";s:4:"name";s:6:"target";s:4:"name";s:8:"required";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:11:"Pasta - URI";i:2;i:1;}s:2:"en";a:1:{i:1;s:12:"Folder - URI";}}}}a:1:{s:5:"flags";a:6:{s:4:"type";s:4:"text";s:6:"filter";s:4:"text";s:10:"field_name";s:5:"title";s:6:"target";s:10:"text/title";s:8:"required";i:1;s:7:"caption";s:18:"labels/field/title";}}a:1:{s:5:"flags";a:5:{s:13:"field_display";s:5:"never";s:4:"type";s:4:"none";s:6:"filter";s:9:"timestamp";s:10:"field_name";s:7:"updated";s:6:"target";s:7:"updated";}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:20:"Mover para a direita";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"Move right";}}}}a:2:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"Mover para...";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"Move to...";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:11:"Mover seção";i:2;i:1;}s:2:"en";a:1:{i:1;s:12:"Move section";}}}s:8:"children";a:4:{i:0;s:6:"_start";i:1;s:11:"~moveToList";i:2;s:11:"_saveCancel";i:3;s:4:"_end";}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:14:"Menu de rodapé";i:2;i:1;}s:2:"en";a:1:{i:1;s:11:"Footer menu";}}}}a:2:{s:5:"flags";a:2:{s:6:"filter";s:14:"section_moveto";s:10:"field_name";s:8:"position";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:24:"Escolha uma nova posição";i:2;i:1;}s:2:"en";a:1:{i:1;s:21:"Choose a new position";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:14:"Menu principal";i:2;i:1;}s:2:"en";a:1:{i:1;s:9:"Main menu";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:21:"Mover para a esquerda";i:2;i:1;}s:2:"en";a:1:{i:1;s:9:"Move left";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"Remover seção";i:2;i:1;}s:2:"en";a:2:{i:1;s:14:"Remove section";i:2;i:1;}}}}a:3:{s:5:"flags";a:3:{s:6:"action";s:15:"_section-remove";s:4:"icon";s:8:"question";s:7:"caption";s:34:"renderLabels_msg_operation_confirm";}s:4:"text";a:1:{s:7:"content";a:2:{s:2:"pt";a:3:{i:1;s:102:"Esta operação irá remover permanentemente esta seção e todo o seu conteúdo.#r#n#r#nDeseja mesmo continuar?";i:2;i:1;i:4;i:1;}s:2:"en";a:5:{i:1;s:100:"This operation will remove permanently this section and all hes content.#r#n#r#nDo you wich to continue?";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}s:8:"children";a:4:{i:0;s:6:"_start";i:1;s:10:"_separator";i:2;s:37:"modHumperstilshen_submitConfirmCancel";i:3;s:4:"_end";}}a:1:{s:5:"flags";a:2:{s:6:"filter";s:21:"section_specialFields";s:5:"sufix";s:20:"_specialFieldsOnEdit";}}a:1:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:10:"Nova seção";i:2;i:1;}s:2:"en";a:2:{i:1;s:11:"New section";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:16:"Criar nova seção";i:2;i:1;}s:2:"en";a:2:{i:1;s:18:"Create new section";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"Nova subseção";i:2;i:1;}s:2:"en";a:1:{i:1;s:14:"New subsection";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:20:"Nova seção principal";i:2;i:1;}s:2:"en";a:1:{i:1;s:16:"New main section";}}}}a:2:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:10:"Nova seção";i:2;i:1;}s:2:"en";a:2:{i:1;s:11:"New section";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:10:"Nova seção";i:2;i:1;}s:2:"en";a:2:{i:1;s:11:"New section";i:2;i:1;}}}s:8:"children";a:10:{i:0;s:6:"_start";i:1;s:10:"~editTitle";i:2;s:18:"~editCaptionHidden";i:3;s:15:"~editNameHidden";i:4;s:16:"~editDescription";i:5;s:22:"~specialFieldsOnCreate";i:6;s:17:"~editKeywordsPack";i:7;s:25:"~specialFieldsAfterCreate";i:8;s:11:"_saveCancel";i:9;s:4:"_end";}}a:1:{s:5:"flags";a:3:{s:13:"field_display";s:5:"never";s:6:"filter";s:7:"caption";s:6:"target";s:12:"text/caption";}}a:1:{s:5:"flags";a:5:{s:4:"type";s:14:"textarea_small";s:6:"filter";s:4:"text";s:10:"field_name";s:11:"description";s:6:"target";s:16:"text/description";s:7:"caption";s:24:"labels/field/description";}}a:1:{s:5:"flags";a:1:{s:6:"filter";s:8:"keywords";}}a:1:{s:5:"flags";a:4:{s:13:"field_display";s:5:"never";s:6:"filter";s:11:"domain_name";s:10:"field_name";s:4:"name";s:6:"target";s:4:"name";}}a:1:{s:5:"flags";a:6:{s:4:"type";s:4:"text";s:6:"filter";s:4:"text";s:10:"field_name";s:5:"title";s:6:"target";s:10:"text/title";s:8:"required";i:1;s:7:"caption";s:18:"labels/field/title";}}a:1:{s:4:"text";a:1:{s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:737:"#r#nTemos aqui uma lista com os diferentes tipos de seção que podem ser criadas.#r#n#r#nCada tipo de seção oferece funcionalidades especiais, mas é importante observar a seção do tipo "Pasta", pois dentro dela é possível criar subseções de qualquer tipo. Inclusive subseções do tipo "Pasta".#r#n#r#nPortanto, antes de adicionar seções ao seu ambiente, pense na disposição desejada para as ferramentas.#r#n#r#nNovas seções são acrescentadas sempre ao final do menu, mas você pode alterar a ordem na qual elas serão listadas. Basta abrir a seção que precisa mudar de lugar e escolher, no menu de contexto, "Mover para cima" ou "Mover para baixo".#r#n#r#nClaro que em um menu horizontal elas serão movidas para a esquerda ou para a direita respectivamente.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:1:{s:5:"flags";a:3:{s:6:"filter";s:21:"section_specialFields";s:5:"sufix";s:25:"_specialFieldsAfterCreate";s:10:"posteriori";i:1;}}a:1:{s:5:"flags";a:2:{s:6:"filter";s:21:"section_specialFields";s:5:"sufix";s:22:"_specialFieldsOnCreate";}}a:3:{s:5:"flags";a:6:{s:4:"type";s:6:"select";s:6:"filter";s:6:"select";s:10:"field_name";s:15:"comments_access";s:6:"target";s:21:"flags/comments_access";s:13:"default_value";i:6;s:4:"cast";s:3:"int";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:17:"Permitir comentar";i:2;i:1;}s:2:"en";a:2:{i:1;s:13:"Allow comment";i:2;i:1;}}}s:8:"children";a:4:{i:0;s:20:"~editCommentDisabled";i:1;s:21:"section_editAccessAll";i:2;s:28:"section_editAccessSubscribed";i:3;s:24:"section_editAccessMember";}}a:2:{s:5:"flags";a:1:{s:5:"value";i:6;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:12:"Não comentar";i:2;i:1;}s:2:"en";a:2:{i:1;s:11:"No comments";i:2;i:1;}}}}a:1:{s:4:"text";a:3:{s:7:"caption";a:1:{s:2:"pt";a:2:{i:1;s:4:"Blog";i:2;i:1;}}s:5:"title";a:1:{s:2:"pt";a:3:{i:1;s:30:"Sobre "[text $document.title]"";i:2;i:1;i:6;i:1;}}s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:584:"#r#nEm uma seção de blog é possível acrescentar conteúdos na forma de posts.#r#n#r#nVocê pode configurar um blog para que funcione como um noticiário, uma agenda de eventos da instituição, um álbum de fotos, uma seção de publicações, um podcast e muito mais.#r#n#r#nAo criar uma nova seção, você encontrará várias opções de blogs já configurados para diferentes finalidades. Noentanto, é possível realizar as configurações necessárias para que o blog se adapte às suas necessidades.#r#n#r#nVocê pode, por exemplo, mudar a forma de apresentar os posts na seção ou mudar a forma de ordenar a lista.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:586:"#r#nEm uma seção de blog é possível acrescentar conteúdos na forma de posts.#r#n#r#nVocê pode configurar um blog para que funcione como um noticiário, uma agenda de eventos da instituição, um álbum de fotos, uma seção de publicações, um podcast e muito mais.#r#n#r#nAo criar uma nova seção, você encontrará várias opções de blogs já configurados para diferentes finalidades. Noentanto, é possível realizar as configurações necessárias para que o blog se adapte às suas necessidades.#r#n#r#nVocê pode, por exemplo, mudar a forma de apresentar os posts na seção ou mudar a forma de ordenar a lista.#r#n#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:62:"#r#nAgora basta publicar seu conteúdo adicionando novos posts.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:586:"#r#nEm uma seção de blog é possível acrescentar conteúdos na forma de posts.#r#n#r#nVocê pode configurar um blog para que funcione como um noticiário, uma agenda de eventos da instituição, um álbum de fotos, uma seção de publicações, um podcast e muito mais.#r#n#r#nAo criar uma nova seção, você encontrará várias opções de blogs já configurados para diferentes finalidades. Noentanto, é possível realizar as configurações necessárias para que o blog se adapte às suas necessidades.#r#n#r#nVocê pode, por exemplo, mudar a forma de apresentar os posts na seção ou mudar a forma de ordenar a lista.#r#n#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:2:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:28:"Ordenar postagem manualmente";i:2;i:1;}s:2:"en";a:2:{i:1;s:19:"Order posts manualy";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:28:"Ordenar postagem manualmente";i:2;i:1;}s:2:"en";a:2:{i:1;s:19:"Order posts manualy";i:2;i:1;}}}s:8:"children";a:4:{i:0;s:6:"_start";i:1;s:12:"~reindexList";i:2;s:7:"_submit";i:3;s:4:"_end";}}a:2:{s:5:"flags";a:2:{s:4:"type";s:6:"fields";s:6:"filter";s:19:"sectionBlog_reindex";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:16:"Ordenar postagem";i:2;i:1;}s:2:"en";a:2:{i:1;s:11:"Order posts";i:2;i:1;}}}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:11:"Ordenar por";i:2;i:1;}s:2:"en";a:2:{i:1;s:7:"Sort by";i:2;i:1;}}}s:4:"html";s:303:"#r#n
      #r#n#r#n#r#n[personalite]#r#n
      #r#n";}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:16:"Ordem alfabética";i:2;i:1;}s:2:"en";a:2:{i:1;s:18:"Alphabetical order";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:12:"Mais baratos";i:2;i:1;}s:2:"en";a:2:{i:1;s:7:"Cheaper";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:14:"Data do evento";i:2;i:1;}s:2:"en";a:2:{i:1;s:10:"Event date";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:10:"Mais caros";i:2;i:1;}s:2:"en";a:2:{i:1;s:14:"More expensive";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:14:"Mais visitados";i:2;i:1;}s:2:"en";a:2:{i:1;s:11:"More viewed";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:16:"Data de postagem";i:2;i:1;}s:2:"en";a:2:{i:1;s:9:"Post date";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:19:"Melhores avaliações";i:2;i:1;}s:2:"en";a:2:{i:1;s:12:"Best ratings";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"Mais recentes";i:2;i:1;}s:2:"en";a:2:{i:1;s:7:"Recents";i:2;i:1;}}}}a:1:{s:8:"children";a:2:{i:0;s:19:"section_editContent";i:1;s:12:"~editComment";}}a:1:{s:8:"children";a:2:{i:0;s:19:"section_editContent";i:1;s:12:"~editComment";}}a:2:{s:5:"flags";a:1:{s:6:"preset";s:11:"~blogPreset";}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:4:"Blog";i:2;i:1;}s:2:"en";a:2:{i:1;s:4:"Blog";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:9:"Novo blog";i:2;i:1;}s:2:"en";a:2:{i:1;s:8:"New blog";i:2;i:1;}}s:11:"description";a:1:{s:2:"pt";a:2:{i:1;s:45:"Poste fotos, textos, áudios, arquivos e mais.";i:2;i:1;}}}}a:1:{s:5:"flags";a:1:{s:12:"section_type";s:4:"blog";}}a:2:{s:5:"flags";a:1:{s:6:"preset";s:13:"~eventsPreset";}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:7:"Eventos";i:2;i:1;}s:2:"en";a:2:{i:1;s:6:"Events";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:26:"Novo calendário de eventos";i:2;i:1;}s:2:"en";a:2:{i:1;s:19:"New events calendar";i:2;i:1;}}s:11:"description";a:1:{s:2:"pt";a:2:{i:1;s:43:"Registre os próximos eventos da organização";i:2;i:1;}}}}a:1:{s:5:"flags";a:2:{s:12:"section_type";s:4:"blog";s:14:"modList_preset";s:6:"events";}}a:2:{s:5:"flags";a:1:{s:6:"preset";s:13:"~galeryPreset";}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:18:"Galeria de imagens";i:2;i:1;}s:2:"en";a:2:{i:1;s:12:"Image galery";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:23:"Nova galeria de imagens";i:2;i:1;}s:2:"en";a:2:{i:1;s:16:"New image galery";i:2;i:1;}}s:11:"description";a:1:{s:2:"pt";a:2:{i:1;s:39:"Organize imagens em um painel elegante.";i:2;i:1;}}}}a:1:{s:5:"flags";a:2:{s:12:"section_type";s:4:"blog";s:14:"modList_preset";s:6:"galery";}}a:2:{s:5:"flags";a:1:{s:6:"preset";s:11:"~newsPreset";}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Notícias";i:2;i:1;}s:2:"en";a:2:{i:1;s:4:"News";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:21:"Novo blog de notícias";i:2;i:1;}s:2:"en";a:2:{i:1;s:13:"New news blog";i:2;i:1;}}s:11:"description";a:1:{s:2:"pt";a:2:{i:1;s:29:"Publique as notícias recentes";i:2;i:1;}}}}a:1:{s:5:"flags";a:2:{s:12:"section_type";s:4:"blog";s:14:"modList_preset";s:4:"news";}}a:2:{s:5:"flags";a:1:{s:6:"preset";s:14:"~podcastPreset";}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:7:"Podcast";i:2;i:1;}s:2:"en";a:2:{i:1;s:7:"Podcast";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:12:"Novo podcast";i:2;i:1;}s:2:"en";a:2:{i:1;s:11:"New podcast";i:2;i:1;}}s:11:"description";a:1:{s:2:"pt";a:2:{i:1;s:22:"Crie um canal de áudio";i:2;i:1;}}}}a:1:{s:5:"flags";a:2:{s:12:"section_type";s:4:"blog";s:14:"modList_preset";s:7:"podcast";}}a:2:{s:5:"flags";a:1:{s:6:"preset";s:15:"~productsPreset";}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Produtos";i:2;i:1;}s:2:"en";a:2:{i:1;s:8:"Products";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:21:"Novo book de produtos";i:2;i:1;}s:2:"en";a:2:{i:1;s:17:"New products book";i:2;i:1;}}s:11:"description";a:1:{s:2:"pt";a:2:{i:1;s:105:"Exponha seus produtos com fotos, descrição, preço e tudo o que o seu cliente precisa para uma boa compra.";i:2;i:1;}}}}a:1:{s:5:"flags";a:2:{s:12:"section_type";s:4:"blog";s:14:"modList_preset";s:8:"products";}}a:2:{s:5:"flags";a:1:{s:6:"preset";s:16:"~videocastPreset";}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:14:"Canal de vídeo";i:2;i:1;}s:2:"en";a:2:{i:1;s:13:"Video channel";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:19:"Novo canal de video";i:2;i:1;}s:2:"en";a:2:{i:1;s:17:"New video channel";i:2;i:1;}}s:11:"description";a:1:{s:2:"pt";a:2:{i:1;s:29:"Crie um canal com seus vídeos";i:2;i:1;}}}}a:1:{s:5:"flags";a:2:{s:12:"section_type";s:4:"blog";s:14:"modList_preset";s:9:"videocast";}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"Novo post";i:2;i:1;}s:2:"en";a:2:{i:1;s:8:"New post";i:2;i:1;}}}}a:2:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:11:"Editar post";i:2;i:1;}s:2:"en";a:2:{i:1;s:9:"Edit post";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:11:"Editar post";i:2;i:1;}s:2:"en";a:2:{i:1;s:9:"Edit post";i:2;i:1;}}}s:8:"children";a:11:{i:0;s:6:"_start";i:1;s:10:"~editTitle";i:2;s:12:"~editCaption";i:3;s:9:"~editName";i:4;s:18:"~editSpecialFields";i:5;s:17:"~editKeywordsPack";i:6;s:12:"~editUpdated";i:7;s:21:"domainCategories_link";i:8;s:18:"domainRecents_link";i:9;s:11:"_saveCancel";i:10;s:4:"_end";}}a:2:{s:5:"flags";a:4:{s:4:"type";s:10:"text_small";s:6:"filter";s:7:"caption";s:10:"field_name";s:7:"caption";s:6:"target";s:12:"text/caption";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:35:"Legenda (como será exibida no menu)";i:2;i:1;}s:2:"en";a:2:{i:1;s:39:"Caption (as it will appear on the menu)";i:2;i:1;}}}}a:2:{s:5:"flags";a:5:{s:4:"type";s:10:"text_small";s:13:"field_display";s:5:"never";s:6:"filter";s:7:"caption";s:10:"field_name";s:7:"caption";s:6:"target";s:12:"text/caption";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:35:"Legenda (como será exibida no menu)";i:2;i:1;}s:2:"en";a:2:{i:1;s:39:"Caption (as it will appear on the menu)";i:2;i:1;}}}}a:2:{s:5:"flags";a:4:{s:4:"type";s:16:"address_buscacep";s:6:"filter";s:25:"personaliteFields_address";s:10:"field_name";s:7:"address";s:15:"filters_manager";s:14:"contactAddress";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Endereço";i:2;i:1;}s:2:"en";a:2:{i:1;s:7:"Address";i:2;i:1;}}}}a:2:{s:5:"flags";a:5:{s:4:"type";s:10:"text_small";s:6:"filter";s:22:"personaliteFields_mail";s:10:"field_name";s:4:"mail";s:6:"target";s:10:"local/mail";s:15:"filters_manager";s:11:"contactMail";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:5:"Email";i:2;i:1;}s:2:"en";a:2:{i:1;s:5:"Email";i:2;i:1;}}}}a:2:{s:5:"flags";a:3:{s:6:"filter";s:5:"phone";s:10:"field_name";s:5:"phone";s:15:"filters_manager";s:12:"contactPhone";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Telefone";i:2;i:1;}s:2:"en";a:2:{i:1;s:5:"Phone";i:2;i:1;}}}}a:2:{s:5:"flags";a:3:{s:6:"filter";s:21:"sectionBlog_post_site";s:10:"field_name";s:4:"site";s:15:"filters_manager";s:11:"contactSite";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:4:"Site";i:2;i:1;}s:2:"en";a:2:{i:1;s:4:"Site";i:2;i:1;}}}}a:2:{s:5:"flags";a:8:{s:4:"type";s:8:"textarea";s:6:"filter";s:4:"text";s:10:"field_name";s:7:"content";s:6:"target";s:12:"text/content";s:12:"format_force";i:1;s:10:"html_force";i:1;s:15:"ecolabore_force";i:1;s:15:"filters_manager";s:7:"content";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Conteúdo";i:2;i:1;}s:2:"en";a:2:{i:1;s:7:"Content";i:2;i:1;}}}}a:2:{s:5:"flags";a:5:{s:4:"type";s:14:"textarea_small";s:6:"filter";s:4:"text";s:10:"field_name";s:11:"description";s:6:"target";s:16:"text/description";s:15:"filters_manager";s:11:"description";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"Descrição";i:2;i:1;}s:2:"en";a:2:{i:1;s:11:"Description";i:2;i:1;}}}}a:2:{s:5:"flags";a:3:{s:6:"filter";s:9:"eventDate";s:10:"field_name";s:5:"event";s:15:"filters_manager";s:9:"eventDate";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:14:"Data do evento";i:2;i:1;}s:2:"en";a:2:{i:1;s:10:"Event date";i:2;i:1;}}}}a:2:{s:5:"flags";a:5:{s:6:"filter";s:4:"free";s:10:"field_name";s:5:"place";s:6:"target";s:17:"local/event_place";s:5:"clear";i:1;s:15:"filters_manager";s:10:"eventPlace";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:15:"Local do evento";i:2;i:1;}s:2:"en";a:2:{i:1;s:11:"Event place";i:2;i:1;}}}}a:2:{s:5:"flags";a:5:{s:4:"type";s:4:"file";s:6:"filter";s:6:"modImg";s:10:"field_name";s:3:"img";s:6:"target";s:12:"extras/img_0";s:15:"filters_manager";s:3:"img";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Imagem";i:2;i:1;}s:2:"en";a:2:{i:1;s:5:"Image";i:2;i:1;}}}}a:2:{s:5:"flags";a:5:{s:4:"type";s:4:"text";s:6:"filter";s:4:"text";s:10:"field_name";s:8:"keywords";s:6:"target";s:13:"text/keywords";s:15:"filters_manager";s:8:"keywords";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:14:"Palavras chave";i:2;i:1;}s:2:"en";a:1:{i:1;s:8:"Keywords";}}}}a:1:{s:5:"flags";a:1:{s:6:"filter";s:8:"keywords";}}a:2:{s:5:"flags";a:8:{s:4:"type";s:8:"textarea";s:6:"filter";s:4:"text";s:10:"field_name";s:9:"media_box";s:6:"target";s:25:"extras/box_0/text/content";s:12:"format_force";i:1;s:10:"html_force";i:1;s:15:"ecolabore_force";i:1;s:15:"filters_manager";s:8:"mediaBox";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:16:"Destaque do post";i:2;i:1;}s:2:"en";a:1:{i:1;s:15:"Post spotlight ";}}}}a:1:{s:5:"flags";a:4:{s:4:"type";s:10:"text_small";s:6:"filter";s:11:"domain_name";s:10:"field_name";s:4:"name";s:7:"caption";s:16:"section_editName";}}a:1:{s:5:"flags";a:5:{s:13:"field_display";s:5:"never";s:4:"type";s:10:"text_small";s:6:"filter";s:11:"domain_name";s:10:"field_name";s:4:"name";s:7:"caption";s:18:"section_editFolder";}}a:2:{s:5:"flags";a:3:{s:6:"filter";s:24:"sectionBlog_post_product";s:10:"field_name";s:7:"product";s:15:"filters_manager";s:7:"product";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:7:"Produto";i:2;i:1;}s:2:"en";a:2:{i:1;s:7:"Product";i:2;i:1;}}}}a:1:{s:5:"flags";a:1:{s:6:"filter";s:30:"sectionBlog_post_specialFields";}}a:2:{s:5:"flags";a:6:{s:4:"type";s:4:"text";s:6:"filter";s:4:"text";s:10:"field_name";s:5:"title";s:6:"target";s:10:"text/title";s:8:"required";i:1;s:9:"error_msg";s:18:"~editTitleRequired";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Título";i:2;i:1;}s:2:"en";a:2:{i:1;s:5:"Title";i:2;i:1;}}}}a:2:{s:5:"flags";a:2:{s:4:"icon";s:5:"error";s:7:"caption";s:31:"renderLabels_msg_required_field";}s:4:"text";a:1:{s:7:"content";a:2:{s:2:"pt";a:3:{i:1;s:89:"O post precisa de um título.#r#n#r#nSem um título, o post não pode ser apresentado no menu.#r#n";i:2;i:1;i:4;i:1;}s:2:"en";a:5:{i:1;s:89:"The post needs a title.#r#n#r#nWithout caption, it can not be displayed in the sections menu.";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:1:{s:5:"flags";a:5:{s:13:"field_display";s:5:"never";s:4:"type";s:4:"none";s:6:"filter";s:9:"timestamp";s:10:"field_name";s:7:"updated";s:6:"target";s:7:"updated";}}a:2:{s:5:"flags";a:2:{s:4:"icon";s:8:"question";s:7:"caption";s:34:"renderLabels_msg_operation_confirm";}s:4:"text";a:1:{s:7:"content";a:2:{s:2:"pt";a:3:{i:1;s:96:"Esta operação irá enviar o post e todo o seu conteúdo para a lixeira.#r#n#r#nDeseja mesmo continuar?";i:2;i:1;i:4;i:1;}s:2:"en";a:5:{i:1;s:95:"This operation will send the post and all hes content to the trash.#r#n#r#nDo you wich to continue?";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:2:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"Novo post";i:2;i:1;}s:2:"en";a:2:{i:1;s:8:"New post";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:9:"Novo post";i:2;i:1;}s:2:"en";a:2:{i:1;s:8:"New post";i:2;i:1;}}}s:8:"children";a:10:{i:0;s:6:"_start";i:1;s:10:"~editTitle";i:2;s:18:"~editCaptionHidden";i:3;s:15:"~editNameHidden";i:4;s:18:"~editSpecialFields";i:5;s:17:"~editKeywordsPack";i:6;s:21:"domainCategories_link";i:7;s:18:"domainRecents_link";i:8;s:11:"_saveCancel";i:9;s:4:"_end";}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:12:"Remover post";i:2;i:1;}s:2:"en";a:2:{i:1;s:11:"Remove post";i:2;i:1;}}}}a:2:{s:5:"local";a:1:{s:4:"type";s:8:"checkbox";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:25:"Produto sempre disponível";i:2;i:1;}s:2:"en";a:2:{i:1;s:24:"Product always available";i:2;i:1;}}}}a:2:{s:5:"local";a:1:{s:4:"type";s:8:"checkbox";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:18:"Aceitar encomendas";i:2;i:1;}s:2:"en";a:2:{i:1;s:15:"Accept ordering";i:2;i:1;}}}}a:2:{s:5:"local";a:1:{s:4:"type";s:9:"text_tiny";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:5:"Preço";i:2;i:1;}s:2:"en";a:2:{i:1;s:5:"Price";i:2;i:1;}}}}a:2:{s:5:"local";a:1:{s:4:"type";s:9:"text_tiny";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:10:"Em estoque";i:2;i:1;}s:2:"en";a:2:{i:1;s:8:"In stock";i:2;i:1;}}}}a:1:{s:4:"text";a:3:{s:7:"caption";a:1:{s:2:"pt";a:2:{i:1;s:14:"Tempo excedido";i:2;i:1;}}s:5:"title";a:1:{s:2:"pt";a:3:{i:1;s:14:"Tempo excedido";i:2;i:1;i:6;i:1;}}s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:374:"#r#nPrezad[gender:o|a] [text $user.caption],#r#n#r#nVocê excedeu seu tempo limite para compras. Por isso, os produtos reservados em [if($bag){]sua sacola[}else{]seu carrinho[}] retornaram às prateleiras.#r#n#r#nNão se preocupe: continue comprando e, se os produtos que você deseja ainda estiverem disponíveis, adicione-os novamente [if($bag){]à sua sacola[}else{]ao seu carrinho[}].#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:1:{s:8:"children";a:4:{i:0;s:6:"_start";i:1;s:24:"~choosePaymentMethodList";i:2;s:5:"_next";i:3;s:4:"_end";}}a:1:{s:5:"flags";a:1:{s:6:"filter";s:36:"financialAccount_choosePaymentMethod";}}a:1:{s:4:"text";a:1:{s:7:"content";a:2:{s:2:"pt";a:4:{i:1;s:86:"#r#nPara continuar, conecte-se ou acione o link de cadastro logo abaixo do formulário.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}s:2:"en";a:3:{i:1;s:70:" To continue, please log in or click the register link below the form.";i:4;i:1;i:6;i:1;}}}}a:1:{s:4:"text";a:3:{s:7:"caption";a:1:{s:2:"pt";a:2:{i:1;s:24:"Página de acompanhamento";i:2;i:1;}}s:5:"title";a:1:{s:2:"pt";a:3:{i:1;s:30:"Sobre "[text $document.title]"";i:2;i:1;i:6;i:1;}}s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:4:"#r#n#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:3:{s:5:"check";a:2:{s:4:"mode";s:7:"section";s:6:"marker";i:12;}s:6:"parent";a:1:{s:4:"mode";s:5:"index";}s:6:"create";a:2:{s:4:"mode";s:7:"section";s:4:"type";s:4:"cart";}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:4:"Ação";i:2;i:1;}s:2:"en";a:2:{i:1;s:6:"Action";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:4:"Cod.";i:2;i:1;}s:2:"en";a:2:{i:1;s:4:"Code";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"Descrição";i:2;i:1;}s:2:"en";a:2:{i:1;s:9:"Descrição";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:7:"Unidade";i:2;i:1;}s:2:"en";a:2:{i:1;s:4:"Unit";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:4:"Qtd.";i:2;i:1;}s:2:"en";a:2:{i:1;s:4:"Qty.";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:5:"Total";i:2;i:1;}s:2:"en";a:2:{i:1;s:5:"Total";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:5:"Valor";i:2;i:1;}s:2:"en";a:2:{i:1;s:5:"Value";i:2;i:1;}}}}a:1:{s:8:"children";a:1:{i:0;s:19:"section_editContent";}}a:1:{s:8:"children";a:1:{i:0;s:19:"section_editContent";}}a:2:{s:5:"flags";a:1:{s:6:"preset";s:14:"~contentPreset";}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:17:"Acompanhar pedido";i:2;i:1;}s:2:"en";a:2:{i:1;s:11:"Track order";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:17:"Acompanhar pedido";i:2;i:1;}s:2:"en";a:2:{i:1;s:11:"Track order";i:2;i:1;}}s:11:"description";a:1:{s:2:"pt";a:2:{i:1;s:151:"Antes de cadastrar seus produtos, você precisa de uma área onde o cliente possa gerenciar o carrinho de compras e acompanhar o andamento do seu pedido.";i:2;i:1;}}}}a:3:{s:6:"marker";i:12;s:5:"flags";a:1:{s:12:"section_type";s:4:"cart";}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:17:"Acompanhar pedido";i:2;i:1;}s:2:"en";a:2:{i:1;s:11:"Track order";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:17:"Acompanhar pedido";i:2;i:1;}s:2:"en";a:2:{i:1;s:11:"Track order";i:2;i:1;}}s:11:"description";a:1:{s:2:"pt";a:2:{i:1;s:40:"Acompanhe aqui o andamento do seu pedido";i:2;i:1;}}}}a:1:{s:4:"text";a:3:{s:5:"title";a:1:{s:2:"pt";a:2:{i:1;s:5:"Pasta";i:2;i:1;}}s:7:"caption";a:1:{s:2:"pt";a:3:{i:1;s:38:"Sobre a seção "[text$document.caption]";i:2;i:1;i:6;i:1;}}s:7:"content";a:1:{s:2:"pt";a:5:{i:1;s:609:"#r#nEsta é uma seção do tipo "Pasta".#r#n#r#nVocê pode inserir subseções dentro dela, inclusive subseções do tipo "Pasta". Isto lhe permite estruturar seu ambiente com total liberdade.#r#n#r#nPortanto, antes de criar as seções do seu ambiente, tenha uma idéia de como deseja organizá-lo.#r#n#r#nUma seção do tipo "Pasta" pode conter informações sobre a organização; uma outra sobre produtos e serviços; uma para tarefas administrativas...#r#n#r#nMas não hesite em adicionar ferramentas diretamente no menu principal: criando um formulário para contato na seção principal, ele estará acessível em todas as páginas do ambiente.#r#n";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:1:{s:8:"children";a:1:{i:0;s:19:"section_editContent";}}a:1:{s:8:"children";a:1:{i:0;s:19:"section_editContent";}}a:2:{s:5:"flags";a:1:{s:6:"preset";s:14:"~contentPreset";}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:5:"Pasta";i:2;i:1;}s:2:"en";a:2:{i:1;s:6:"Folder";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:10:"Nova pasta";i:2;i:1;}s:2:"en";a:2:{i:1;s:10:"New folder";i:2;i:1;}}s:11:"description";a:1:{s:2:"pt";a:2:{i:1;s:65:"Permite organizar subseções, inclusive subseções do tipo "pasta".";i:2;i:1;}}}}a:2:{s:5:"flags";a:2:{s:12:"section_type";s:6:"folder";s:14:"modList_preset";s:6:"folder";}s:6:"extras";a:1:{s:7:"section";a:1:{s:5:"local";a:2:{s:4:"list";s:14:"list_columns_1";s:7:"details";s:40:"img_mini_floatleft#r#ntitle_3#r#ndescription";}}}}a:2:{s:5:"flags";a:3:{s:6:"filter";s:22:"personaliteFields_mail";s:10:"field_name";s:4:"mail";s:6:"target";s:10:"local/mail";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:1:{i:1;s:5:"Email";}s:2:"en";a:1:{i:1;s:5:"Email";}}}}a:2:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:29:"Escolher campos do formulário";i:2;i:1;}s:2:"en";a:1:{i:1;s:23:"Choose formulary fields";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:29:"Escolher campos do formulário";i:2;i:1;}s:2:"en";a:1:{i:1;s:23:"Choose formulary fields";}}}s:8:"children";a:5:{i:0;s:6:"_start";i:1;s:11:"~fieldsList";i:2;s:10:"_separator";i:3;s:11:"_saveCancel";i:4;s:4:"_end";}}a:2:{s:5:"flags";a:2:{s:6:"filter";s:17:"personaliteFields";s:6:"target";s:16:"extras/formulary";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:20:"Campos do formulário";i:2;i:1;}s:2:"en";a:1:{i:1;s:16:"Formulary fields";}}}}a:1:{s:8:"children";a:4:{i:0;s:6:"_start";i:1;s:16:"~formularyFields";i:2;s:11:"_saveCancel";i:3;s:4:"_end";}}a:1:{s:5:"flags";a:1:{s:6:"filter";s:23:"sectionFormulary_fields";}}a:1:{s:4:"text";a:3:{s:7:"caption";a:1:{s:2:"pt";a:2:{i:1;s:10:"Formulário";i:2;i:1;}}s:5:"title";a:1:{s:2:"pt";a:3:{i:1;s:30:"Sobre "[text $document.title]"";i:2;i:1;i:6;i:1;}}s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:307:"#r#nÉ possível personalizar os formulários livremente adicionando diversos tipos de campos.#r#n#r#nAssim, você pode utilizar formulários para diversas finalidades, como permitir que os usuários entrem em contato, solicitem orçamento, respondam a uma pesquisa de satisfação, inscrevam-se em eventos e muito mais.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:3:{s:5:"check";a:2:{s:4:"mode";s:7:"section";s:6:"marker";i:5;}s:6:"parent";a:1:{s:4:"mode";s:5:"index";}s:6:"create";a:2:{s:4:"mode";s:7:"section";s:4:"type";s:7:"contact";}}a:2:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"Revisar dados";i:2;i:1;}s:2:"en";a:1:{i:1;s:11:"Review data";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:13:"Revisar dados";i:2;i:1;}s:2:"en";a:1:{i:1;s:11:"Review data";}}}s:8:"children";a:5:{i:0;s:6:"_start";i:1;s:11:"~viewFields";i:2;s:10:"_separator";i:3;s:15:"_previousSubmit";i:4;s:4:"_end";}}a:2:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:17:"Prevenção de SPAM";i:2;i:1;}s:2:"en";a:1:{i:1;s:15:"SPAM prevention";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:17:"Prevenção de SPAM";i:2;i:1;}s:2:"en";a:1:{i:1;s:15:"SPAM prevention";}}}s:8:"children";a:12:{i:0;s:6:"_start";i:1;s:15:"~securityBasics";i:2;s:21:"~securityBasicsEnable";i:3;s:15:"~securityReview";i:4;s:21:"~securityReviewEnable";i:5;s:16:"~securityContent";i:6;s:24:"~securityContentUrlBlock";i:7;s:15:"~securityAccess";i:8;s:18:"section_editAccess";i:9;s:10:"_separator";i:10;s:11:"_saveCancel";i:11;s:4:"_end";}}a:2:{s:5:"flags";a:1:{s:6:"filter";s:29:"personaliteFields_descriptive";}s:4:"text";a:1:{s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:436:"#r#n=== Acesso à página do formulário ===#r#n#r#nSe o seu formulário deve ser preenchido somente por membros da organização, ou se você espera que quem o preencha esteja cadastrado no [text $system.caption], então você pode alterar para que a página do formulário esteja acessível somente a estes usuários.#r#n#r#nPorém, isto não será útil se você espera receber postagens do público que não esteja cadastrado, como em um formulário de contato.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:2:{s:5:"flags";a:1:{s:6:"filter";s:29:"personaliteFields_descriptive";}s:4:"text";a:1:{s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:391:"#r#n=== Prevenção básica ===#r#n#r#nA prevensão básica se baseia em recursos do cliente como css, cookies e javascript.#r#n#r#nCaso quem esteja enviando o formulário não possua estes recursos ativados, o formulário será recusado.#r#n#r#nDesabilite esta verificação somente se algum cliente legítimo sabidamente não possa dispor destes recursos e esteja tendo problemas ao enviar formulários em seu site.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:2:{s:5:"flags";a:5:{s:6:"filter";s:8:"checkbox";s:6:"target";s:33:"flags/form_securityBasicsDisabled";s:10:"field_name";s:6:"basics";s:6:"invert";i:1;s:5:"clear";i:1;}s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:2:{i:1;s:27:"Ativar verificações básicas";i:2;i:1;}}}}a:2:{s:5:"flags";a:1:{s:6:"filter";s:29:"personaliteFields_descriptive";}s:4:"text";a:1:{s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:307:"#r#n=== Filtrar conteúdo ===#r#n#r#nAs mensagens indesejadas têm por finalidade difundir endereços de sites com vírus ou produtos de procedência duvidosa.#r#n#r#nImpedir mensagens com endereços - ou suprimí-los do conteúdo original - pode desencorajar pessoas que manualmente estejam inserindo mensagens deste tipo.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:2:{s:5:"flags";a:4:{s:6:"filter";s:8:"checkbox";s:6:"target";s:19:"flags/form_urlBlock";s:10:"field_name";s:9:"url_block";s:5:"clear";i:1;}s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:2:{i:1;s:55:"Bloquear formulários que contenham URLs em seu conteúdo";i:2;i:1;}}}}a:2:{s:5:"flags";a:1:{s:6:"filter";s:29:"personaliteFields_descriptive";}s:4:"text";a:1:{s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:247:"#r#n=== Revisar dados ===#r#n#r#nSolicitar ao visitante para que revise os dados submetidos é uma forma elegante de prevenir SPAMs que possam ter passado pelas verificações básicas.#r#n#r#nEsta verificação exige que cookies estejam habilitados no cliente.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:2:{s:5:"flags";a:4:{s:6:"filter";s:8:"checkbox";s:6:"target";s:17:"flags/form_review";s:10:"field_name";s:6:"review";s:5:"clear";i:1;}s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:2:{i:1;s:28:"Exibir página de verificação";i:2;i:1;}}}}a:1:{s:8:"children";a:2:{i:0;s:19:"section_editContent";i:1;s:9:"~editMail";}}a:1:{s:8:"children";a:2:{i:0;s:19:"section_editContent";i:1;s:9:"~editMail";}}a:1:{s:8:"children";a:3:{i:0;s:10:"_startView";i:1;s:11:"~viewFields";i:2;s:8:"_endView";}}a:1:{s:5:"flags";a:1:{s:6:"filter";s:27:"sectionFormulary_fieldsView";}}a:2:{s:5:"flags";a:1:{s:6:"preset";s:14:"~contactPreset";}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:7:"Contato";i:2;i:1;}s:2:"en";a:2:{i:1;s:7:"Contact";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:23:"Formulário para contato";i:2;i:1;}s:2:"en";a:2:{i:1;s:17:"Contact formulary";i:2;i:1;}}s:11:"description";a:1:{s:2:"pt";a:2:{i:1;s:68:"Um formulário preconfigurado para contato. Você pode personalizá-lo.";i:2;i:1;}}}}a:4:{s:6:"marker";i:4;s:5:"flags";a:1:{s:12:"section_type";s:9:"formulary";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:7:"Contato";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Contact";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:16:"Entre em contato";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"Contact us";}}}s:6:"extras";a:1:{s:9:"formulary";a:6:{s:6:"text_1";a:4:{s:7:"caption";a:2:{s:2:"pt";a:1:{i:1;s:4:"Nome";}s:2:"en";a:1:{i:1;s:4:"Name";}}s:4:"type";s:4:"text";s:8:"required";i:1;s:10:"list_index";i:1;}s:4:"mail";a:4:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:5:"Email";}}s:4:"type";s:4:"text";s:8:"required";i:1;s:10:"list_index";i:2;}s:7:"created";a:2:{s:7:"caption";a:2:{s:2:"pt";a:1:{i:1;s:4:"Data";}s:2:"en";a:1:{i:1;s:4:"Date";}}s:10:"list_index";i:4;}s:6:"status";a:2:{s:7:"caption";a:2:{s:2:"pt";a:1:{i:1;s:6:"Status";}s:2:"en";a:1:{i:1;s:6:"Status";}}s:10:"list_index";i:0;}s:6:"text_2";a:3:{s:7:"caption";a:2:{s:2:"pt";a:1:{i:1;s:7:"Assunto";}s:2:"en";a:1:{i:1;s:7:"Subject";}}s:4:"type";s:4:"text";s:10:"list_index";i:3;}s:10:"textarea_1";a:4:{s:4:"type";s:8:"textarea";s:6:"format";s:3:"pre";s:7:"caption";a:2:{s:2:"pt";a:1:{i:1;s:8:"Mensagem";}s:2:"en";a:1:{i:1;s:7:"Message";}}s:8:"required";i:1;}}}}a:2:{s:5:"flags";a:1:{s:6:"preset";s:16:"~formularyPreset";}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:10:"Formulário";i:2;i:1;}s:2:"en";a:2:{i:1;s:9:"Formulary";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:15:"Novo formulário";i:2;i:1;}s:2:"en";a:2:{i:1;s:13:"New formulary";i:2;i:1;}}s:11:"description";a:1:{s:2:"pt";a:2:{i:1;s:171:"Crie formulários para contato, pesquisas de satisfação, fichas de inscrição, solicitação de orçamentos e muito mais. Consulte as fichas preenchidas e veja as estatísticas.";i:2;i:1;}}}}a:1:{s:5:"flags";a:1:{s:12:"section_type";s:9:"formulary";}}a:1:{s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:18:"Formulário enviado";i:2;i:1;}s:2:"en";a:2:{i:1;s:13:"Form submited";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:16:"Mensagem enviada";i:2;i:1;}s:2:"en";a:2:{i:1;s:13:"Form submited";i:2;i:1;}}s:7:"content";a:2:{s:2:"pt";a:4:{i:1;s:72:"#r#nOlá [text $user.caption],#r#n#r#nSeu formulário foi enviado com sucesso.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}s:2:"en";a:5:{i:1;s:67:"Hello [text $user.caption],#r#n#r#nYour form was successfuly submited#r#n";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:1:{s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:21:"Personalizar mensagem";i:2;i:1;}s:2:"en";a:2:{i:1;s:14:"Custom message";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:21:"Personalizar mensagem";i:2;i:1;}s:2:"en";a:2:{i:1;s:14:"Custom message";i:2;i:1;}}s:7:"content";a:0:{}}}a:2:{s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:29:"Editar mensagem personalizada";i:2;i:1;}s:2:"en";a:2:{i:1;s:23:"Edit customized message";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:29:"Editar mensagem personalizada";i:2;i:1;}s:2:"en";a:2:{i:1;s:23:"Edit customized message";i:2;i:1;}}s:7:"content";a:0:{}}s:8:"children";a:12:{i:0;s:6:"_start";i:1;s:24:"domain_setRecognizeFlags";i:2;s:12:"~editCaption";i:3;s:10:"~editTitle";i:4;s:12:"~editContent";i:5;s:24:"~editRecognizeParagraphs";i:6;s:18:"~editRecognizeHtml";i:7;s:23:"~editRecognizeEcolabore";i:8;s:12:"~editUpdated";i:9;s:11:"_saveCancel";i:10;s:17:"_required_message";i:11;s:4:"_end";}}a:2:{s:5:"flags";a:5:{s:4:"type";s:4:"text";s:6:"filter";s:4:"text";s:6:"target";s:12:"text/caption";s:10:"field_name";s:7:"caption";s:8:"required";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:35:"Legenda (como será exibida no menu)";i:2;i:1;}s:2:"en";a:2:{i:1;s:38:"Caption (as it will apear on the menu)";i:2;i:1;}}}}a:2:{s:5:"flags";a:8:{s:4:"type";s:8:"textarea";s:6:"filter";s:4:"text";s:6:"target";s:12:"text/content";s:10:"field_name";s:7:"content";s:8:"required";i:1;s:13:"format_enable";i:1;s:11:"html_enable";i:1;s:16:"ecolabore_enable";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Conteúdo";i:2;i:1;}s:2:"en";a:2:{i:1;s:7:"Content";i:2;i:1;}}}}a:1:{s:5:"flags";a:7:{s:9:"condition";s:21:"text_ecolabore_choose";s:4:"type";s:8:"checkbox";s:6:"filter";s:8:"checkbox";s:10:"field_name";s:14:"text_ecolabore";s:6:"target";s:20:"flags/text_ecolabore";s:6:"invert";i:1;s:7:"caption";s:32:"labels/field/recognize_ecolabore";}}a:1:{s:5:"flags";a:6:{s:9:"condition";s:16:"text_html_choose";s:4:"type";s:8:"checkbox";s:6:"filter";s:8:"checkbox";s:10:"field_name";s:9:"text_html";s:6:"target";s:15:"flags/text_html";s:7:"caption";s:27:"labels/field/recognize_html";}}a:1:{s:5:"flags";a:7:{s:9:"condition";s:18:"text_format_choose";s:4:"type";s:8:"checkbox";s:6:"filter";s:8:"checkbox";s:10:"field_name";s:11:"text_format";s:6:"target";s:17:"flags/text_format";s:6:"invert";i:1;s:7:"caption";s:33:"labels/field/recognize_paragraphs";}}a:2:{s:5:"flags";a:5:{s:4:"type";s:4:"text";s:6:"filter";s:4:"text";s:6:"target";s:10:"text/title";s:10:"field_name";s:5:"title";s:8:"required";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Título";i:2;i:1;}s:2:"en";a:2:{i:1;s:5:"Title";i:2;i:1;}}}}a:1:{s:5:"flags";a:5:{s:13:"field_display";s:5:"never";s:4:"type";s:4:"none";s:6:"filter";s:9:"timestamp";s:10:"field_name";s:7:"updated";s:6:"target";s:7:"updated";}}a:1:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:27:"Restaurar mensagem original";i:2;i:1;}s:2:"en";a:2:{i:1;s:24:"Restore original message";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:27:"Restaurar mensagem original";i:2;i:1;}s:2:"en";a:2:{i:1;s:24:"Restore original message";i:2;i:1;}}}}a:1:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:3:{i:1;s:54:"Recebidos [if$num_children{ `(`; $num_children; `)`;}]";i:2;i:1;i:6;i:1;}s:2:"en";a:3:{i:1;s:53:"Received [if$num_children{ `(`; $num_children; `)`;}]";i:2;i:1;i:6;i:1;}}s:5:"title";a:2:{s:2:"pt";a:3:{i:1;s:66:"Formulários recebidos [if$num_children{ `(`; $num_children; `)`;}]";i:2;i:1;i:6;i:1;}s:2:"en";a:3:{i:1;s:61:"Received records [if$num_children{ `(`; $num_children; `)`;}]";i:2;i:1;i:6;i:1;}}}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:21:"Formulários recebidos";i:2;i:1;}s:2:"en";a:2:{i:1;s:14:"Received forms";i:2;i:1;}}}s:5:"local";a:3:{s:15:"caption-display";i:0;s:18:"caption-line-break";i:1;s:4:"list";s:5:"table";}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Não lida";i:2;i:1;}s:2:"en";a:2:{i:1;s:8:"Not read";i:2;i:1;}}}}a:2:{s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:3:{i:1;s:18:"Selecionar colunas";i:2;i:1;i:6;i:1;}s:2:"en";a:3:{i:1;s:14:"Select columns";i:2;i:1;i:6;i:1;}}s:5:"title";a:2:{s:2:"pt";a:3:{i:1;s:18:"Selecionar colunas";i:2;i:1;i:6;i:1;}s:2:"en";a:3:{i:1;s:14:"Select columns";i:2;i:1;i:6;i:1;}}s:7:"content";a:1:{s:2:"pt";a:2:{i:1;s:69:"Selecione as colunas que devem ser apresentadas na lista de mensagens";i:2;i:1;}}}s:8:"children";a:5:{i:0;s:6:"_start";i:1;s:18:"~selectColumnsList";i:2;s:10:"_separator";i:3;s:11:"_saveCancel";i:4;s:4:"_end";}}a:2:{s:5:"flags";a:2:{s:6:"filter";s:39:"sectionFormulary_received_selectColumns";s:10:"field_name";s:6:"column";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:1:{i:1;s:14:"Exibir colunas";}s:2:"en";a:1:{i:1;s:15:"Display columns";}}}}a:1:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:5:"Ficha";i:2;i:1;}s:2:"en";a:2:{i:1;s:6:"Record";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:5:"Ficha";i:2;i:1;}s:2:"en";a:2:{i:1;s:6:"Record";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"Remover ficha";i:2;i:1;}s:2:"en";a:2:{i:1;s:13:"Remove record";i:2;i:1;}}}}a:1:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"Removidos";i:2;i:1;}s:2:"en";a:2:{i:1;s:7:"Removed";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:21:"Formulários removidos";i:2;i:1;}s:2:"en";a:2:{i:1;s:15:"Removed records";i:2;i:1;}}}}a:3:{s:5:"flags";a:3:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:9:"templates";s:14:"modLayout_name";s:13:"dialog_select";}s:5:"local";a:2:{s:6:"scheme";s:6:"system";s:6:"update";i:1;}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:16:"Adicionar coluna";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"Add column";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:16:"Adicionar coluna";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"Add column";}}}}a:1:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:12:"Estatísticas";i:2;i:1;}s:2:"en";a:2:{i:1;s:10:"Statistics";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:12:"Estatísticas";i:2;i:1;}s:2:"en";a:2:{i:1;s:10:"Statistics";i:2;i:1;}}}}a:3:{s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:12:"Estatísticas";i:2;i:1;}s:2:"en";a:2:{i:1;s:10:"Statistics";i:2;i:1;}}s:5:"units";a:2:{s:2:"pt";a:2:{i:1;s:8:"Absoluto";i:2;i:1;}s:2:"en";a:1:{i:1;s:8:"Absolute";}}s:7:"percent";a:2:{s:2:"pt";a:1:{i:1;s:8:"Relativo";}s:2:"en";a:1:{i:1;s:8:"Relative";}}}s:5:"local";a:2:{s:15:"caption-display";i:1;s:8:"position";s:7:"-center";}s:4:"html";s:648:"#r#n
      #r#n#r#n#r#n#r#n#r#n[list{ loop{ if($header){]#r#n#r#n#r#n#r#n[list{ loop{]#r#n#r#n#r#n#r#n#r#n#r#n#r#n[}}}else{]#r#n#r#n#r#n#r#n#r#n#r#n[}}}]#r#n
      #r#n[text $units][text $percent]
      [text]
      [text][$units][$percent]%#r#n
      #r#n
      #r#n
      #r#n
      #r#n
      [text][$units][$percent]%#r#n
      #r#n
      #r#n
      #r#n
      #r#n
      #r#n";}a:1:{s:4:"text";a:3:{s:7:"caption";a:1:{s:2:"pt";a:2:{i:1;s:9:"Glossário";i:2;i:1;}}s:5:"title";a:1:{s:2:"pt";a:3:{i:1;s:30:"Sobre "[text $document.title]"";i:2;i:1;i:6;i:1;}}s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:348:"#r#nO glossário reúne todos os verbetes definidos neste ambiente.#r#n#r#nPara criar um verbete, basta envolver o termo desejado em duplo colchete, como em [][]celestial]].#r#n#r#nApós salvar o documento, acione o termo para abrir a página de definição do verbete. Adicione conteúdo à vontade.#r#n#r#nEste novo verbete será automaticamente listado no glossário.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:3:{s:5:"check";a:2:{s:4:"mode";s:7:"section";s:6:"marker";i:1;}s:6:"parent";a:1:{s:4:"mode";s:5:"index";}s:6:"create";a:2:{s:4:"mode";s:7:"section";s:4:"type";s:8:"glossary";}}a:1:{s:8:"children";a:1:{i:0;s:19:"section_editContent";}}a:1:{s:8:"children";a:1:{i:0;s:19:"section_editContent";}}a:2:{s:5:"flags";a:1:{s:6:"preset";s:14:"~contentPreset";}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"Glossário";i:2;i:1;}s:2:"en";a:2:{i:1;s:8:"Glossary";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:9:"Glossário";i:2;i:1;}s:2:"en";a:2:{i:1;s:8:"Glossary";i:2;i:1;}}s:11:"description";a:1:{s:2:"pt";a:2:{i:1;s:55:"Lista todas as palavras-chave utilizadas neste ambiente";i:2;i:1;}}}}a:3:{s:6:"marker";i:1;s:5:"flags";a:1:{s:12:"section_type";s:8:"glossary";}s:4:"text";a:4:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"Glossário";i:2;i:1;}s:2:"en";a:2:{i:1;s:8:"Glossary";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:9:"Glossário";i:2;i:1;}s:2:"en";a:2:{i:1;s:8:"Glossary";i:2;i:1;}}s:11:"description";a:1:{s:2:"pt";a:2:{i:1;s:74:"Encontre aqui a lista completa de palavras-chave utilizadas neste ambiente";i:2;i:1;}}s:7:"content";a:2:{s:2:"pt";a:4:{i:1;s:91:"#r#nNesta seção você encontra a lista completa de palavras-chave utilizadas neste ambiente.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}s:2:"en";a:5:{i:1;s:67:"#r#nIn this section you can find all keywords used in this ambient.#r#n";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:1:{s:4:"text";a:3:{s:7:"caption";a:1:{s:2:"pt";a:2:{i:1;s:11:"Informações";i:2;i:1;}}s:5:"title";a:1:{s:2:"pt";a:3:{i:1;s:30:"Sobre "[text $document.title]"";i:2;i:1;i:6;i:1;}}s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:168:"#r#nEsta página exibe informações sobre quem produziu o site.#r#n#r#nSe esta página estiver presente, ela será apontada no menu de "Boas-vindas", no item "Sobre este site".#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:3:{s:5:"check";a:2:{s:4:"mode";s:7:"section";s:6:"marker";i:6;}s:6:"parent";a:1:{s:4:"mode";s:5:"index";}s:6:"create";a:2:{s:4:"mode";s:7:"section";s:4:"type";s:4:"info";}}a:1:{s:8:"children";a:1:{i:0;s:19:"section_editContent";}}a:1:{s:8:"children";a:1:{i:0;s:19:"section_editContent";}}a:2:{s:5:"flags";a:1:{s:6:"preset";s:14:"~contentPreset";}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:11:"Informações";i:2;i:1;}s:2:"en";a:2:{i:1;s:4:"Info";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:27:"Informações sobre este site";i:2;i:1;}s:2:"en";a:2:{i:1;s:28:"Informations about this site";i:2;i:1;}}s:11:"description";a:1:{s:2:"pt";a:2:{i:1;s:48:"Exibe informações sobre quem produziu este site.";i:2;i:1;}}}}a:3:{s:6:"marker";i:6;s:5:"flags";a:1:{s:12:"section_type";s:4:"info";}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:11:"Informações";i:2;i:1;}s:2:"en";a:2:{i:1;s:12:"Informations";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:15:"Sobre este site";i:2;i:1;}s:2:"en";a:2:{i:1;s:15:"About this site";i:2;i:1;}}s:11:"description";a:1:{s:2:"pt";a:2:{i:1;s:29:"Saiba quem produziu este site";i:2;i:1;}}}}a:1:{s:4:"text";a:3:{s:5:"title";a:1:{s:2:"pt";a:2:{i:1;s:4:"Menu";i:2;i:1;}}s:7:"caption";a:1:{s:2:"pt";a:3:{i:1;s:38:"Sobre a seção "[text$document.caption]";i:2;i:1;i:6;i:1;}}s:7:"content";a:1:{s:2:"pt";a:5:{i:1;s:153:"#r#nA função do menu é ordenar e exibir subseções em um menu.#r#n#r#nNoentanto, as seções listadas em um menu são acessadas como se fossem seções principais.#r#n";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:2:{s:5:"flags";a:1:{s:6:"preset";s:11:"~menuPreset";}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:4:"Menu";i:2;i:1;}s:2:"en";a:2:{i:1;s:4:"Menu";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:9:"Novo menu";i:2;i:1;}s:2:"en";a:2:{i:1;s:8:"New menu";i:2;i:1;}}s:11:"description";a:1:{s:2:"pt";a:2:{i:1;s:80:"Permite organizar seções em caixas que são acessadas através de uma guia de menu";i:2;i:1;}}}}a:1:{s:5:"flags";a:1:{s:12:"section_type";s:4:"menu";}}a:1:{s:4:"text";a:3:{s:7:"caption";a:1:{s:2:"pt";a:2:{i:1;s:23:"Política de privacidade";i:2;i:1;}}s:5:"title";a:1:{s:2:"pt";a:3:{i:1;s:30:"Sobre "[text $document.title]"";i:2;i:1;i:6;i:1;}}s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:428:"#r#nQuando você define a política de privacidade, estes termos serão apresentados durante o processo de cadastro de novos usuários.#r#n#r#nUm link para a política de privacidade também será apresentado no menu de boas-vindas, logo abaixo da caixa de login.#r#n#r#nPor isto, a política de privacidade não precisam figurar no menu principal, uma vez que ela estará acessível em todas as páginas do ambiente através do menu de boas-vindas.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:2:{s:5:"check";a:2:{s:4:"mode";s:7:"section";s:6:"marker";i:7;}s:6:"create";a:2:{s:4:"mode";s:7:"section";s:4:"type";s:13:"privacypolicy";}}a:1:{s:8:"children";a:1:{i:0;s:19:"section_editContent";}}a:1:{s:8:"children";a:1:{i:0;s:19:"section_editContent";}}a:2:{s:5:"flags";a:1:{s:6:"preset";s:14:"~contentPreset";}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:23:"Política de privacidade";i:2;i:1;}s:2:"en";a:2:{i:1;s:14:"Privacy policy";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:31:"Definir política de privacidade";i:2;i:1;}s:2:"en";a:2:{i:1;s:21:"Define privacy policy";i:2;i:1;}}s:11:"description";a:1:{s:2:"pt";a:2:{i:1;s:126:"Se for definida, a política de privacidade também será exibida durante o cadastro de novos usuários e no menu de "Boas vindas"";i:2;i:1;}}}}a:4:{s:6:"access";i:0;s:6:"marker";i:7;s:5:"flags";a:1:{s:12:"section_type";s:13:"privacyPolicy";}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:23:"Política de privacidade";i:2;i:1;}s:2:"en";a:1:{i:1;s:14:"Privacy policy";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:23:"Política de privacidade";i:2;i:1;}s:2:"en";a:1:{i:1;s:14:"Privacy policy";}}s:11:"description";a:1:{s:2:"pt";a:2:{i:1;s:44:"Saiba como administramos seus dados pessoais";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"content";a:2:{s:2:"pt";a:5:{i:1;s:205:"#r#nEsta seção redireciona os visitantes para o endereço:#r#n#r#n* [$document.url]#r#n#r#n=== Estatísticas ===#r#n#r#n[$document.hits] Visualizações#r#n#r#n[$document.value] Redirecionamentos#r#n";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}s:2:"en";a:4:{i:1;s:186:"#r#nThis section redirects the users to address below:#r#n#r#n* [$document.url]#r#n#r#n=== Statistics ===#r#n#r#n[$document.hits] Views#r#n#r#n[$document.value] Redirects#r#n#r#n";i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:2:{s:5:"flags";a:5:{s:4:"type";s:4:"text";s:6:"filter";s:4:"free";s:10:"field_name";s:3:"url";s:6:"target";s:9:"local/url";s:8:"required";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:21:"Redirecionar para URL";i:2;i:1;}s:2:"en";a:1:{i:1;s:15:"Redirect to URL";}}}}a:1:{s:4:"text";a:3:{s:7:"caption";a:1:{s:2:"pt";a:2:{i:1;s:26:"Redirecionar para endereço";i:2;i:1;}}s:5:"title";a:1:{s:2:"pt";a:3:{i:1;s:42:"Redirecionar para "[text $document.title]"";i:2;i:1;i:6;i:1;}}s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:231:"#r#nUsuários que não sejam administradores, ao acionar esta seção, serão redirecionados para o endereço especificado.#r#n#r#nOs administradores poderão visualizar quantas vezes este item foi exibido e quantas vezes o link foi acionado.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:1:{s:8:"children";a:1:{i:0;s:8:"~editURL";}}a:1:{s:8:"children";a:1:{i:0;s:8:"~editURL";}}a:2:{s:5:"flags";a:1:{s:6:"preset";s:14:"~contentPreset";}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:12:"Link externo";i:2;i:1;}s:2:"en";a:2:{i:1;s:13:"External link";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:30:"Redirecionar para link externo";i:2;i:1;}s:2:"en";a:2:{i:1;s:28:"Redirect to an external link";i:2;i:1;}}s:11:"description";a:1:{s:2:"pt";a:2:{i:1;s:133:"Cria um item no menu que aponta para um endereço externo. Saiba quantas vezes o item foi exibido e quantas vezes o item foi acionado.";i:2;i:1;}}}}a:1:{s:5:"flags";a:1:{s:12:"section_type";s:8:"redirect";}}a:1:{s:4:"text";a:3:{s:7:"caption";a:1:{s:2:"pt";a:2:{i:1;s:9:"Pesquisar";i:2;i:1;}}s:5:"title";a:1:{s:2:"pt";a:3:{i:1;s:30:"Sobre "[text $document.title]"";i:2;i:1;i:6;i:1;}}s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:4:"#r#n#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:3:{s:5:"check";a:2:{s:4:"mode";s:7:"section";s:6:"marker";i:7;}s:6:"parent";a:1:{s:4:"mode";s:5:"index";}s:6:"create";a:2:{s:4:"mode";s:7:"section";s:4:"type";s:6:"search";}}a:1:{s:8:"children";a:1:{i:0;s:19:"section_editContent";}}a:1:{s:8:"children";a:1:{i:0;s:19:"section_editContent";}}a:2:{s:5:"flags";a:1:{s:6:"preset";s:14:"~contentPreset";}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"Pesquisar";i:2;i:1;}s:2:"en";a:2:{i:1;s:6:"Search";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:9:"Pesquisar";i:2;i:1;}s:2:"en";a:2:{i:1;s:6:"Search";i:2;i:1;}}s:11:"description";a:1:{s:2:"pt";a:2:{i:1;s:70:"Crie uma página personalizada para exibir os resultados das pesquisas.";i:2;i:1;}}}}a:3:{s:6:"marker";i:3;s:5:"flags";a:1:{s:12:"section_type";s:6:"search";}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"Pesquisar";i:2;i:1;}s:2:"en";a:2:{i:1;s:6:"Search";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:9:"Pesquisar";i:2;i:1;}s:2:"en";a:2:{i:1;s:6:"Search";i:2;i:1;}}s:11:"description";a:1:{s:2:"pt";a:2:{i:1;s:35:"Pesquise por palavras-chave e tags.";i:2;i:1;}}}}a:1:{s:4:"text";a:3:{s:7:"caption";a:1:{s:2:"pt";a:2:{i:1;s:20:"Todos os subdomínios";i:2;i:1;}}s:5:"title";a:1:{s:2:"pt";a:3:{i:1;s:20:"Todos os subdomínios";i:2;i:1;i:6;i:1;}}s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:196:"#r#nQuando o [text $system.caption] está configurado para gerenciar múltiplos ambientes, como subpastas ou como subdomínios, esta seção irá apresentar uma lista com todos os ambientes cadastrados.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:2:{s:5:"check";a:2:{s:4:"mode";s:7:"section";s:6:"marker";i:91;}s:6:"create";a:2:{s:4:"mode";s:7:"section";s:4:"type";s:10:"subdomains";}}a:1:{s:5:"local";a:5:{s:4:"list";s:14:"list_columns_1";s:7:"details";s:20:"title_2#r#ndescription";s:5:"wd-sm";s:3:"-10";s:5:"wd-lg";s:2:"-6";s:8:"position";s:7:"-center";}}a:1:{s:8:"children";a:1:{i:0;s:19:"section_editContent";}}a:1:{s:8:"children";a:1:{i:0;s:19:"section_editContent";}}a:2:{s:5:"flags";a:1:{s:6:"preset";s:14:"~contentPreset";}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:20:"Todos os subdomínios";i:2;i:1;}s:2:"en";a:2:{i:1;s:14:"All subdomains";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:20:"Todos os subdomínios";i:2;i:1;}s:2:"en";a:2:{i:1;s:14:"All subdomains";i:2;i:1;}}s:11:"description";a:1:{s:2:"pt";a:2:{i:1;s:37:"Lista todos os ambientes cadastrados.";i:2;i:1;}}}}a:4:{s:6:"access";i:0;s:6:"marker";i:91;s:5:"flags";a:1:{s:12:"section_type";s:10:"subdomains";}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:11:"Subdomínios";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"Subdomains";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:20:"Todos os subdomínios";i:2;i:1;}s:2:"en";a:1:{i:1;s:14:"All subdomains";}}s:11:"description";a:1:{s:2:"pt";a:3:{i:1;s:48:"Conheça todos os ambientes que se hospedam aqui.";i:2;i:1;i:6;i:1;}}}}a:1:{s:4:"text";a:3:{s:7:"caption";a:1:{s:2:"pt";a:2:{i:1;s:12:"Nossa equipe";i:2;i:1;}}s:5:"title";a:1:{s:2:"pt";a:2:{i:1;s:18:"Sobre nossa equipe";i:2;i:1;}}s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:134:"#r#nAqui temos a lista dos membros da organização.#r#n#r#nVocê pode cadastrar novos membros, editar suas fichas ou remover seus cadastros.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:350:"#r#nAqui vamos cadastrar os membros da organização.#r#n#r#nAs ferramentas administrativas farão uso destas informações, sempre que for necessário identificar o ocupante de um cargo, o responsável por uma auditoria, ação, documento ou evento.#r#n#r#nIsto permite que um membro da organização acesse em seu perfil todas as atividades das quais for responsável.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:478:"#r#nEntão cadastre os membros da organização.#r#n#r#nEles serão listados em ordem alfabética.#r#n#r#nNo organograma poderemos indicar qual cargo cada membro ocupa. Por enquanto, basta cadastrá-los.#r#n#r#nEscolhendo "Cadastrar novo membro" você poderá criar um identificador e uma senha para que o usuário possa ter acesso a certas ferramentas administrativas.#r#n#r#nCaso algum membro já possua um perfil - um identificador e uma senha - para conectar-se ao sistema, escolha "Importar perfil".#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:3:{s:5:"check";a:2:{s:4:"mode";s:7:"section";s:6:"marker";i:27;}s:6:"parent";a:2:{s:4:"mode";s:7:"section";s:6:"marker";i:20;}s:6:"create";a:2:{s:4:"mode";s:7:"section";s:4:"type";s:4:"team";}}a:1:{s:4:"text";a:1:{s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:134:"#r#nAqui temos a lista dos membros da organização.#r#n#r#nVocê pode cadastrar novos membros, editar suas fichas ou remover seus cadastros.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:140:"#r#nVocê estava cadastrando os membros da organização.#r#n#r#nContinue a cadastrá-los, ou acione "Avançar" para seguirmos para a próxima tarefa.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:17:"Todos os clientes";i:2;i:1;}s:2:"en";a:2:{i:1;s:11:"All clients";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Grupos";i:2;i:1;}s:2:"en";a:2:{i:1;s:6:"Groups";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:16:"Todos os membros";i:2;i:1;}s:2:"en";a:2:{i:1;s:11:"All members";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:18:"Todos os parceiros";i:2;i:1;}s:2:"en";a:2:{i:1;s:12:"All partners";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:15:"Todos os alunos";i:2;i:1;}s:2:"en";a:2:{i:1;s:12:"All students";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:21:"Todos os fornecedores";i:2;i:1;}s:2:"en";a:2:{i:1;s:13:"All suppliers";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:19:"Membros deste setor";i:2;i:1;}s:2:"en";a:2:{i:1;s:22:"Members of this sector";i:2;i:1;}}}}a:1:{s:8:"children";a:1:{i:0;s:19:"section_editContent";}}a:1:{s:8:"children";a:1:{i:0;s:19:"section_editContent";}}a:2:{s:5:"flags";a:1:{s:6:"preset";s:14:"~clientsPreset";}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Clientes";i:2;i:1;}s:2:"en";a:2:{i:1;s:7:"Clients";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:8:"Clientes";i:2;i:1;}s:2:"en";a:2:{i:1;s:7:"Clients";i:2;i:1;}}s:11:"description";a:1:{s:2:"pt";a:2:{i:1;s:24:"Mostra todos os clientes";i:2;i:1;}}}}a:4:{s:6:"marker";i:35;s:6:"access";i:4;s:5:"flags";a:1:{s:12:"section_type";s:4:"team";}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Clientes";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Clients";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:8:"Clientes";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Clients";}}s:11:"description";a:1:{s:2:"pt";a:2:{i:1;s:20:"Gerencia os clientes";i:2;i:1;}}}}a:2:{s:5:"flags";a:1:{s:6:"preset";s:15:"~partnersPreset";}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"Parceiros";i:2;i:1;}s:2:"en";a:2:{i:1;s:8:"Partners";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:16:"Nossos parceiros";i:2;i:1;}s:2:"en";a:2:{i:1;s:12:"Our partners";i:2;i:1;}}s:11:"description";a:1:{s:2:"pt";a:2:{i:1;s:25:"Mostra todos os parceiros";i:2;i:1;}}}}a:3:{s:6:"marker";i:31;s:5:"flags";a:1:{s:12:"section_type";s:4:"team";}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"Parceiros";i:2;i:1;}s:2:"en";a:1:{i:1;s:8:"Partners";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:16:"Nossos parceiros";i:2;i:1;}s:2:"en";a:1:{i:1;s:12:"Our partners";}}s:11:"description";a:1:{s:2:"pt";a:2:{i:1;s:24:"Conheça nossos parceiros";i:2;i:1;}}}}a:2:{s:5:"flags";a:1:{s:6:"preset";s:15:"~studentsPreset";}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Alunos";i:2;i:1;}s:2:"en";a:2:{i:1;s:8:"Students";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:13:"Nossos alunos";i:2;i:1;}s:2:"en";a:2:{i:1;s:12:"Our students";i:2;i:1;}}s:11:"description";a:1:{s:2:"pt";a:2:{i:1;s:22:"Mostra todos os alunos";i:2;i:1;}}}}a:4:{s:6:"marker";i:32;s:6:"access";i:4;s:5:"flags";a:1:{s:12:"section_type";s:4:"team";}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"Nossos alunos";i:2;i:1;}s:2:"en";a:1:{i:1;s:12:"Our students";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:13:"Nossos alunos";i:2;i:1;}s:2:"en";a:1:{i:1;s:12:"Our students";}}s:11:"description";a:1:{s:2:"pt";a:2:{i:1;s:21:"Conheça nossos alunos";i:2;i:1;}}}}a:2:{s:5:"flags";a:1:{s:6:"preset";s:20:"~subscriptionsPreset";}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:17:"Inscritos no site";i:2;i:1;}s:2:"en";a:2:{i:1;s:16:"Subscribed users";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:17:"Inscritos no site";i:2;i:1;}s:2:"en";a:2:{i:1;s:16:"Subscribed users";i:2;i:1;}}s:11:"description";a:1:{s:2:"pt";a:2:{i:1;s:42:"Mostra todos os usuários inscritos no site";i:2;i:1;}}}}a:3:{s:6:"marker";i:33;s:5:"flags";a:1:{s:12:"section_type";s:4:"team";}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:18:"Usuários inscritos";i:2;i:1;}s:2:"en";a:1:{i:1;s:16:"Subscribed users";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:18:"Usuários inscritos";i:2;i:1;}s:2:"en";a:1:{i:1;s:16:"Subscribed users";}}s:11:"description";a:1:{s:2:"pt";a:2:{i:1;s:53:"Conheça os usuários que tem colaborado no nosso site.";i:2;i:1;}}}}a:2:{s:5:"flags";a:1:{s:6:"preset";s:16:"~suppliersPreset";}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:12:"Fornecedores";i:2;i:1;}s:2:"en";a:2:{i:1;s:9:"Suppliers";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:12:"Fornecedores";i:2;i:1;}s:2:"en";a:2:{i:1;s:9:"Suppliers";i:2;i:1;}}s:11:"description";a:1:{s:2:"pt";a:2:{i:1;s:28:"Mostra todos os fornecedores";i:2;i:1;}}}}a:4:{s:6:"marker";i:34;s:6:"access";i:4;s:5:"flags";a:1:{s:12:"section_type";s:4:"team";}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:12:"Fornecedores";i:2;i:1;}s:2:"en";a:1:{i:1;s:9:"Suppliers";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:12:"Fornecedores";i:2;i:1;}s:2:"en";a:1:{i:1;s:9:"Suppliers";}}s:11:"description";a:1:{s:2:"pt";a:2:{i:1;s:24:"Gerencia os fornecedores";i:2;i:1;}}}}a:2:{s:5:"flags";a:1:{s:6:"preset";s:11:"~teamPreset";}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:12:"Nossa equipe";i:2;i:1;}s:2:"en";a:2:{i:1;s:8:"Our team";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:12:"Nossa equipe";i:2;i:1;}s:2:"en";a:2:{i:1;s:8:"Our team";i:2;i:1;}}s:11:"description";a:1:{s:2:"pt";a:2:{i:1;s:39:"Mostra todos os membros da organização.";i:2;i:1;}}}}a:4:{s:6:"marker";i:30;s:6:"access";i:4;s:5:"flags";a:1:{s:12:"section_type";s:4:"team";}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:12:"Nossa equipe";i:2;i:1;}s:2:"en";a:1:{i:1;s:8:"Our team";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:12:"Nossa equipe";i:2;i:1;}s:2:"en";a:1:{i:1;s:8:"Our team";}}s:11:"description";a:1:{s:2:"pt";a:2:{i:1;s:34:"Conheça os membros da organização.";i:2;i:1;}}}}a:2:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:12:"Editar grupo";i:2;i:1;}s:2:"en";a:2:{i:1;s:10:"Edit group";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:12:"Editar grupo";i:2;i:1;}s:2:"en";a:2:{i:1;s:10:"Edit group";i:2;i:1;}}}s:8:"children";a:7:{i:0;s:6:"_start";i:1;s:10:"~editTitle";i:2;s:12:"~editCaption";i:3;s:9:"~editName";i:4;s:12:"~editContent";i:5;s:11:"_saveCancel";i:6;s:4:"_end";}}a:2:{s:5:"flags";a:6:{s:4:"type";s:10:"text_small";s:6:"filter";s:7:"caption";s:10:"field_name";s:7:"caption";s:6:"target";s:12:"text/caption";s:8:"required";i:1;s:9:"error_msg";s:27:"section_editCaptionRequired";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:35:"Legenda (como será exibida no menu)";i:2;i:1;}s:2:"en";a:2:{i:1;s:39:"Caption (as it will appear on the menu)";i:2;i:1;}}}}a:2:{s:5:"flags";a:7:{s:4:"type";s:8:"textarea";s:6:"filter";s:4:"text";s:10:"field_name";s:7:"content";s:6:"target";s:12:"text/content";s:12:"format_force";i:1;s:10:"html_force";i:2;s:15:"ecolabore_force";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:18:"Breve apresentação";i:2;i:1;}s:2:"en";a:1:{i:1;s:8:"Abstract";}}}}a:1:{s:5:"flags";a:7:{s:13:"field_display";s:16:"section_editName";s:4:"type";s:10:"text_small";s:6:"filter";s:11:"domain_name";s:10:"field_name";s:4:"name";s:6:"target";s:4:"name";s:8:"required";i:1;s:7:"caption";s:18:"section_editFolder";}}a:1:{s:5:"flags";a:5:{s:4:"type";s:4:"text";s:6:"filter";s:4:"text";s:10:"field_name";s:5:"title";s:6:"target";s:10:"text/title";s:7:"caption";s:18:"labels/field/title";}}a:1:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:10:"Novo grupo";i:2;i:1;}s:2:"en";a:1:{i:1;s:9:"New group";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:10:"Novo grupo";i:2;i:1;}s:2:"en";a:1:{i:1;s:9:"New group";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"Remover grupo";i:2;i:1;}s:2:"en";a:2:{i:1;s:12:"Remove group";i:2;i:1;}}}}a:3:{s:5:"flags";a:3:{s:6:"action";s:15:"_section-remove";s:4:"icon";s:8:"question";s:7:"caption";s:34:"renderLabels_msg_operation_confirm";}s:4:"text";a:1:{s:7:"content";a:2:{s:2:"pt";a:3:{i:1;s:138:"Esta operação irá remover permanentemente este grupo.#r#n#r#nAs fichas vinculadas a este grupo não serão removidas.#r#n#r#nDeseja mesmo continuar?";i:2;i:1;i:4;i:1;}s:2:"en";a:5:{i:1;s:100:"This operation will remove permanently this section and all hes content.#r#n#r#nDo you wich to continue?";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}s:8:"children";a:4:{i:0;s:6:"_start";i:1;s:10:"_separator";i:2;s:37:"modHumperstilshen_submitConfirmCancel";i:3;s:4:"_end";}}a:4:{s:5:"flags";a:3:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:9:"templates";s:14:"modLayout_name";s:6:"dialog";}s:5:"local";a:1:{s:6:"scheme";s:6:"system";}s:4:"text";a:2:{s:7:"caption";a:1:{s:2:"pt";a:2:{i:1;s:7:"Cliente";i:2;i:1;}}s:5:"title";a:1:{s:2:"pt";a:2:{i:1;s:7:"Cliente";i:2;i:1;}}}s:8:"children";a:9:{i:0;s:6:"_start";i:1;s:10:"~viewTitle";i:2;s:12:"~viewCaption";i:3;s:12:"~viewAddress";i:4;s:10:"~viewPhone";i:5;s:9:"~viewMail";i:6;s:10:"_separator";i:7;s:6:"_close";i:8;s:4:"_end";}}a:4:{s:5:"flags";a:3:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:9:"templates";s:14:"modLayout_name";s:6:"dialog";}s:5:"local";a:1:{s:6:"scheme";s:6:"system";}s:4:"text";a:2:{s:7:"caption";a:1:{s:2:"pt";a:2:{i:1;s:6:"Membro";i:2;i:1;}}s:5:"title";a:1:{s:2:"pt";a:2:{i:1;s:6:"Membro";i:2;i:1;}}}s:8:"children";a:9:{i:0;s:6:"_start";i:1;s:10:"~viewTitle";i:2;s:12:"~viewCaption";i:3;s:12:"~viewAddress";i:4;s:10:"~viewPhone";i:5;s:9:"~viewMail";i:6;s:10:"_separator";i:7;s:6:"_close";i:8;s:4:"_end";}}a:4:{s:5:"flags";a:3:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:9:"templates";s:14:"modLayout_name";s:6:"dialog";}s:5:"local";a:1:{s:6:"scheme";s:6:"system";}s:4:"text";a:2:{s:7:"caption";a:1:{s:2:"pt";a:2:{i:1;s:8:"Parceiro";i:2;i:1;}}s:5:"title";a:1:{s:2:"pt";a:2:{i:1;s:8:"Parceiro";i:2;i:1;}}}s:8:"children";a:9:{i:0;s:6:"_start";i:1;s:10:"~viewTitle";i:2;s:12:"~viewCaption";i:3;s:12:"~viewAddress";i:4;s:10:"~viewPhone";i:5;s:9:"~viewMail";i:6;s:10:"_separator";i:7;s:6:"_close";i:8;s:4:"_end";}}a:4:{s:5:"flags";a:3:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:9:"templates";s:14:"modLayout_name";s:6:"dialog";}s:5:"local";a:1:{s:6:"scheme";s:6:"system";}s:4:"text";a:2:{s:7:"caption";a:1:{s:2:"pt";a:2:{i:1;s:5:"Aluno";i:2;i:1;}}s:5:"title";a:1:{s:2:"pt";a:2:{i:1;s:7:"Studant";i:2;i:1;}}}s:8:"children";a:9:{i:0;s:6:"_start";i:1;s:10:"~viewTitle";i:2;s:12:"~viewCaption";i:3;s:12:"~viewAddress";i:4;s:10:"~viewPhone";i:5;s:9:"~viewMail";i:6;s:10:"_separator";i:7;s:6:"_close";i:8;s:4:"_end";}}a:4:{s:5:"flags";a:3:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:9:"templates";s:14:"modLayout_name";s:6:"dialog";}s:5:"local";a:1:{s:6:"scheme";s:6:"system";}s:4:"text";a:2:{s:7:"caption";a:1:{s:2:"pt";a:2:{i:1;s:9:"Inscrição";i:2;i:1;}}s:5:"title";a:1:{s:2:"pt";a:2:{i:1;s:9:"Inscrição";i:2;i:1;}}}s:8:"children";a:9:{i:0;s:6:"_start";i:1;s:10:"~viewTitle";i:2;s:12:"~viewCaption";i:3;s:12:"~viewAddress";i:4;s:10:"~viewPhone";i:5;s:9:"~viewMail";i:6;s:10:"_separator";i:7;s:6:"_close";i:8;s:4:"_end";}}a:4:{s:5:"flags";a:3:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:9:"templates";s:14:"modLayout_name";s:6:"dialog";}s:5:"local";a:1:{s:6:"scheme";s:6:"system";}s:4:"text";a:2:{s:7:"caption";a:1:{s:2:"pt";a:2:{i:1;s:10:"Fornecedor";i:2;i:1;}}s:5:"title";a:1:{s:2:"pt";a:2:{i:1;s:10:"Fornecedor";i:2;i:1;}}}s:8:"children";a:9:{i:0;s:6:"_start";i:1;s:10:"~viewTitle";i:2;s:12:"~viewCaption";i:3;s:12:"~viewAddress";i:4;s:10:"~viewPhone";i:5;s:9:"~viewMail";i:6;s:10:"_separator";i:7;s:6:"_close";i:8;s:4:"_end";}}a:2:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"Editar membro";i:2;i:1;}s:2:"en";a:2:{i:1;s:11:"Edit member";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:13:"Editar membro";i:2;i:1;}s:2:"en";a:2:{i:1;s:11:"Edit member";i:2;i:1;}}}s:8:"children";a:12:{i:0;s:6:"_start";i:1;s:26:"adminUsers_add_editCaption";i:2;s:18:"userJoin_editTitle";i:3;s:25:"adminUsers_add_editGender";i:4;s:16:"userJoin_editCPF";i:5;s:21:"userJoin_editBornDate";i:6;s:18:"userJoin_editPhone";i:7;s:17:"userJoin_editMail";i:8;s:20:"userJoin_editAddress";i:9;s:10:"~editGroup";i:10;s:17:"_saveCancelRemove";i:11;s:4:"_end";}}a:2:{s:5:"flags";a:1:{s:6:"filter";s:30:"sectionTeam_member_selectGroup";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:17:"Pertence ao grupo";i:2;i:1;}s:2:"en";a:2:{i:1;s:20:"Belongs to the group";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:11:"(Sem grupo)";i:2;i:1;}s:2:"en";a:2:{i:1;s:10:"(No group)";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:449:"#r#nAs informações que a organização guarda sobre seus membros inicialmente são uma cópia dos dados provenientes do perfil do usuário.#r#n#r#nPorém, caso o usuário altere seus dados cadastrais, tais alterações não incidirão automaticamente sobre esta ficha.#r#n#r#nAntes que o usuário propague informações falsas do seu perfil para a organização, você será avisad[gender:o|a] sobre as alterações e lhe será perguntad[gender:o|a] se deseja ou não aceitá-las.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:4:{s:5:"flags";a:3:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:9:"templates";s:14:"modLayout_name";s:6:"dialog";}s:5:"local";a:1:{s:6:"scheme";s:6:"system";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:15:"Importar perfil";i:2;i:1;}s:2:"en";a:2:{i:1;s:14:"Import profile";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:15:"Importar perfil";i:2;i:1;}s:2:"en";a:2:{i:1;s:14:"Import profile";i:2;i:1;}}}s:8:"children";a:5:{i:0;s:6:"_start";i:1;s:11:"~importList";i:2;s:10:"~editGroup";i:3;s:11:"_saveCancel";i:4;s:4:"_end";}}a:2:{s:5:"flags";a:1:{s:4:"icon";s:3:"tip";}s:4:"text";a:3:{s:7:"caption";a:1:{s:2:"pt";a:2:{i:1;s:31:"Informações sobre a organização";i:2;i:1;}}s:5:"title";a:1:{s:2:"pt";a:3:{i:1;s:30:"Sobre "[text $document.title]"";i:2;i:1;i:6;i:1;}}s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:395:"#r#nEsta seção acomoda informações sobre a organização.#r#n#r#nEstas informações são importantes para os visitantes, mas também outras ferramentas administrativas poderão fazer uso destas informações.#r#n#r#nO organograma, a pasta de documentação, a agenda de compromissos e outras ferramentas farão uso do cadastro de espaços físicos, membros e parceiros.#r#n#r#nNavegue pelas subseções para mais detalhes.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:278:"#r#nTemos aqui uma lista de todos os usuários cadastrados no sistema. Selecione um usuário para fazer parte da equipe da sua organização.#r#n#r#nCaso o usuário que você deseja importar não esteja cadastrado, feche este diálogo acionando "Cancelar" e escolha "Adicionar novo membro".#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:2:{s:5:"flags";a:1:{s:6:"filter";s:29:"sectionTeam_member_importList";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:15:"Importar perfil";i:2;i:1;}s:2:"en";a:2:{i:1;s:14:"Import profile";i:2;i:1;}}}}a:2:{s:5:"flags";a:1:{s:4:"icon";s:5:"error";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:24:"Falha ao importar perfil";i:2;i:1;}s:2:"en";a:2:{i:1;s:25:"Profile importing failure";i:2;i:1;}}s:7:"content";a:1:{s:2:"pt";a:5:{i:1;s:95:"#r#nUma falha ocorreu ao tentar importar um perfil.#r#n#r#nPor favor, selecione um perfil na lista.#r#n";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:4:{s:5:"flags";a:3:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:9:"templates";s:14:"modLayout_name";s:6:"dialog";}s:5:"local";a:1:{s:6:"scheme";s:6:"system";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:25:"Retorno de membro inativo";i:2;i:1;}s:2:"en";a:2:{i:1;s:22:"Inactive member return";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:25:"Retorno de membro inativo";i:2;i:1;}s:2:"en";a:2:{i:1;s:22:"Inactive member return";i:2;i:1;}}}s:8:"children";a:4:{i:0;s:6:"_start";i:1;s:13:"~inactiveList";i:2;s:11:"_saveCancel";i:3;s:4:"_end";}}a:1:{s:4:"text";a:1:{s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:410:"#r#nAqui temos a lista de todos os membros que foram afastados da organização.#r#n#r#nSelecionando um membro, ele se tornará ativo e poderá novamente conectar-se ao sistema.#r#n#r#nPorém, observe que ao ser desligado, estes membros foram removidos do organograma e portanto não ocupam mais nenhum cargo na organização.#r#n#r#nSe necessário, vá ao organograma e adicione os membros reintegrados aos seus respectivos cargos.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:2:{s:5:"flags";a:1:{s:6:"filter";s:31:"sectionTeam_member_inactiveList";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:15:"Reativar perfil";i:2;i:1;}s:2:"en";a:2:{i:1;s:18:"Reactivate profile";i:2;i:1;}}}}a:4:{s:5:"flags";a:3:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:9:"templates";s:14:"modLayout_name";s:6:"dialog";}s:5:"local";a:1:{s:6:"scheme";s:6:"system";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:11:"Novo membro";i:2;i:1;}s:2:"en";a:2:{i:1;s:10:"New member";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:11:"Novo membro";i:2;i:1;}s:2:"en";a:2:{i:1;s:10:"New member";i:2;i:1;}}}s:8:"children";a:11:{i:0;s:6:"_start";i:1;s:23:"adminUsers_add_editName";i:2;s:26:"adminUsers_add_editCaption";i:3;s:24:"adminUsers_add_editTitle";i:4;s:23:"adminUsers_add_editMail";i:5;s:25:"adminUsers_add_editGender";i:6;s:27:"adminUsers_add_editPassword";i:7;s:28:"adminUsers_add_editPassword2";i:8;s:10:"~editGroup";i:9;s:7:"_submit";i:10;s:4:"_end";}}a:1:{s:4:"text";a:1:{s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:314:"#r#nAo cadastrar um novo membro, você deve informar identificador e senha provisórios com os quais o novo membro poderá conectar-se.#r#n#r#nInicialmente os membros têm acesso limitado às ferramentas administrativas da organização, cabendo ao administrador - neste caso é você - configurar direitos especiais de acesso.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:25:"Desligar membro (remover)";i:2;i:1;}s:2:"en";a:2:{i:1;s:22:"Unlink member (Remove)";i:2;i:1;}}}}a:2:{s:5:"flags";a:1:{s:4:"icon";s:7:"default";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:14:"Membro inativo";i:2;i:1;}s:2:"en";a:2:{i:1;s:15:"Inactive member";i:2;i:1;}}s:7:"content";a:1:{s:2:"pt";a:3:{i:1;s:607:"#r#nEste membro agora está inativo, porquanto sua ficha foi movida para a lista de documentos inativos ou descontinuados.#r#n#r#nEnquanto houverem vínculos entre esta ficha e outros documentos - tais como compromissos na agenda, auditorias realizadas, etc - ela não poderá ser eliminada.#r#n#r#nPor se tratar de uma ficha que representa um membro da equipe, não recomendamos sua eliminação antes de pelo menos 5 (cinco) anos após seu desligamento da organização.#r#n#r#nLembramos que a legislação brasileira obriga a organização a manter em seus arquivos o contrato com o membro em papel pelo prazo de 30 (trinta) anos.#r#n";i:2;i:1;i:4;i:1;}}}}a:2:{s:5:"flags";a:1:{s:4:"icon";s:7:"default";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:14:"Membro inativo";i:2;i:1;}s:2:"en";a:2:{i:1;s:15:"Inactive member";i:2;i:1;}}s:7:"content";a:1:{s:2:"pt";a:3:{i:1;s:380:"#r#nEste usuário agora está inativo, porquanto sua ficha foi movida para a lista de documentos inativos ou descontinuados.#r#n#r#nEnquanto houverem vínculos entre esta ficha e outros documentos - tais como compromissos na agenda, auditorias realizadas, etc - ela não poderá ser eliminada.#r#n#r#nO perfil do usuário não será eliminado. Porém, perderá os direitos especiais neste ambiente.#r#n";i:2;i:1;i:4;i:1;}}}}a:1:{s:4:"text";a:3:{s:7:"caption";a:1:{s:2:"pt";a:2:{i:1;s:17:"Termos de serviço";i:2;i:1;}}s:5:"title";a:1:{s:2:"pt";a:3:{i:1;s:30:"Sobre "[text $document.title]"";i:2;i:1;i:6;i:1;}}s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:415:"#r#nQuando você define os termos de serviço, estes termos serão apresentados durante o processo de cadastro de novos usuários.#r#n#r#nUm link para os termos de serviço também serão apresentados no menu de boas-vindas, logo abaixo da caixa de login.#r#n#r#nPor isto, os termos de serviço não precisam figurar no menu principal, uma vez que ele estará acessível em todas as páginas do ambiente através do menu de boas-vindas.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:2:{s:5:"check";a:2:{s:4:"mode";s:7:"section";s:6:"marker";i:5;}s:6:"create";a:2:{s:4:"mode";s:7:"section";s:4:"type";s:5:"terms";}}a:1:{s:8:"children";a:1:{i:0;s:19:"section_editContent";}}a:1:{s:8:"children";a:1:{i:0;s:19:"section_editContent";}}a:2:{s:5:"flags";a:1:{s:6:"preset";s:14:"~contentPreset";}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:17:"Termos de serviço";i:2;i:1;}s:2:"en";a:2:{i:1;s:13:"Service terms";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:25:"Definir termos de serviço";i:2;i:1;}s:2:"en";a:2:{i:1;s:20:"Define service terms";i:2;i:1;}}s:11:"description";a:1:{s:2:"pt";a:2:{i:1;s:126:"Se forem definidos, os termos de serviço também serão exibidos durante o cadastro de novos usuários e no menu de "Boas vindas"";i:2;i:1;}}}}a:4:{s:6:"access";i:0;s:6:"marker";i:5;s:5:"flags";a:1:{s:12:"section_type";s:5:"terms";}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:17:"Termos de serviço";i:2;i:1;}s:2:"en";a:1:{i:1;s:13:"Service terms";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:17:"Termos de serviço";i:2;i:1;}s:2:"en";a:1:{i:1;s:13:"Service terms";}}s:11:"description";a:1:{s:2:"pt";a:2:{i:1;s:65:"Conheça as condições de uso impostas aos usuários deste ambiente.";i:2;i:1;}}}}a:1:{s:5:"flags";a:3:{s:6:"filter";s:6:"submit";s:10:"field_name";s:3:"add";s:7:"caption";s:17:"labels/action/add";}}a:1:{s:5:"flags";a:3:{s:6:"filter";s:6:"submit";s:10:"field_name";s:6:"cancel";s:7:"caption";s:18:"labels/action/back";}}a:1:{s:5:"flags";a:3:{s:6:"filter";s:6:"submit";s:10:"field_name";s:6:"cancel";s:7:"caption";s:20:"labels/action/cancel";}}a:1:{s:5:"flags";a:3:{s:6:"filter";s:6:"submit";s:10:"field_name";s:6:"cancel";s:7:"caption";s:19:"labels/action/close";}}a:1:{s:5:"flags";a:3:{s:6:"filter";s:6:"submit";s:10:"field_name";s:4:"save";s:7:"caption";s:20:"labels/action/create";}}a:1:{s:5:"flags";a:2:{s:4:"type";s:3:"end";s:6:"filter";s:3:"end";}}a:1:{s:5:"flags";a:1:{s:4:"type";s:8:"view_end";}}a:1:{s:5:"flags";a:3:{s:6:"filter";s:6:"submit";s:10:"field_name";s:4:"next";s:7:"caption";s:20:"labels/action/finish";}}a:2:{s:5:"flags";a:1:{s:4:"type";s:11:"descriptive";}s:4:"text";a:1:{s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:274:"=== Um erro ocorreu ao inserir um formulário aqui ===#r#n#r#nHouve um conflito de identificadores.#r#n#r#nPossivelmente o mesmo formulário está sendo inserido mais de uma vez no mesmo documento, ou uma aplicação está tentando criar um segundo formulário com o mesmo identificador.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:1:{s:5:"flags";a:3:{s:6:"filter";s:6:"submit";s:10:"field_name";s:4:"save";s:7:"caption";s:16:"labels/action/go";}}a:1:{s:5:"flags";a:3:{s:6:"filter";s:6:"submit";s:10:"field_name";s:4:"next";s:7:"caption";s:18:"labels/action/next";}}a:1:{s:5:"flags";a:3:{s:6:"filter";s:6:"submit";s:10:"field_name";s:8:"previous";s:7:"caption";s:22:"labels/action/previous";}}a:2:{s:5:"flags";a:1:{s:6:"filter";s:6:"submit";}s:8:"children";a:2:{i:0;s:9:"_previous";i:1;s:7:"_finish";}}a:2:{s:5:"flags";a:1:{s:6:"filter";s:6:"submit";}s:8:"children";a:2:{i:0;s:9:"_previous";i:1;s:5:"_next";}}a:2:{s:5:"flags";a:1:{s:6:"filter";s:6:"submit";}s:8:"children";a:2:{i:0;s:9:"_previous";i:1;s:7:"_submit";}}a:1:{s:5:"flags";a:3:{s:6:"filter";s:6:"submit";s:10:"field_name";s:4:"save";s:7:"caption";s:18:"labels/action/save";}}a:2:{s:5:"flags";a:2:{s:4:"type";s:6:"submit";s:6:"filter";s:6:"submit";}s:8:"children";a:2:{i:0;s:5:"_save";i:1;s:7:"_cancel";}}a:2:{s:5:"flags";a:2:{s:4:"type";s:6:"submit";s:6:"filter";s:6:"submit";}s:8:"children";a:2:{i:0;s:5:"_save";i:1;s:6:"_close";}}a:1:{s:5:"flags";a:1:{s:4:"type";s:9:"separator";}}a:1:{s:5:"flags";a:2:{s:4:"type";s:5:"start";s:6:"filter";s:5:"start";}}a:1:{s:5:"flags";a:1:{s:4:"type";s:10:"view_start";}}a:1:{s:5:"flags";a:3:{s:6:"filter";s:6:"submit";s:10:"field_name";s:4:"save";s:7:"caption";s:20:"labels/action/submit";}}a:2:{s:5:"flags";a:2:{s:4:"type";s:6:"submit";s:6:"filter";s:6:"submit";}s:8:"children";a:2:{i:0;s:7:"_submit";i:1;s:7:"_cancel";}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:38:"A configuração original foi restaurada";i:2;i:1;}s:2:"en";a:2:{i:1;s:31:"Original configuration restored";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:24:"A configuração foi salva";i:2;i:1;}s:2:"en";a:2:{i:1;s:19:"Configuration saved";i:2;i:1;}}}}a:2:{s:5:"flags";a:1:{s:4:"icon";s:7:"default";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:7:"Sucesso";i:2;i:1;}s:2:"en";a:2:{i:1;s:7:"Success";i:2;i:1;}}s:7:"content";a:2:{s:2:"pt";a:4:{i:1;s:31:"#r#nOs dados foram atualizados.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}s:2:"en";a:3:{i:1;s:17:"#r#nData updated.#r#n";i:4;i:1;i:6;i:1;}}}}a:2:{s:5:"flags";a:1:{s:4:"icon";s:5:"crash";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"Falha interna";i:2;i:1;}s:2:"en";a:2:{i:1;s:14:"Internal error";i:2;i:1;}}s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:115:"#r#nOcorreu uma falha interna.#r#n#r#nUm módulo ou configuração necessário para completar esta ação não foi encontrado.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:2:{s:5:"flags";a:1:{s:4:"icon";s:5:"crash";}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:18:"Operação cancelada";i:2;i:1;}s:2:"en";a:2:{i:1;s:18:"Operation canceled";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:18:"Operação cancelada";i:2;i:1;}s:2:"en";a:1:{i:1;s:18:"Operation canceled";}}s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:143:"#r#nNão foi possível concluir a operação.#r#n#r#nOs requisitos para concluir esta operação não foram atendidos ou uma falha interna está ocorrendo.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:2:{s:5:"flags";a:1:{s:4:"icon";s:5:"error";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:34:"Campo de preenchimento obrigatório";i:2;i:1;}s:2:"en";a:2:{i:1;s:14:"Required field";i:2;i:1;}}s:7:"content";a:2:{s:2:"pt";a:4:{i:1;s:110:"O campo "[text $field_caption]" não pode ficar vazio.#r#n#r#nPor favor, preencha-o antes de enviar o formulário.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}s:2:"en";a:3:{i:1;s:105:"#r#nThe field "[text $field_caption]" needs a content.#r#n#r#nPlease, fill it before submiting the formulary.#r#n";i:4;i:1;i:6;i:1;}}}}a:2:{s:5:"flags";a:1:{s:4:"icon";s:5:"crash";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:16:"Falha inesperada";i:2;i:1;}s:2:"en";a:2:{i:1;s:16:"Unespected error";i:2;i:1;}}s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:579:"#r#nUma falha ocorreu ao tentar processar os dados do formulário.#r#n#r#nOs dados do campo "[text:field_caption]" não foram recebidos ou não são válidos.#r#n#r#nEste tipo de problema não deve ocorrer, porque o campo onde a falha ocorreu forneceu um conjunto de dados válidos para serem escolhidos.#r#n#r#nAparentemente alguém está adulterando o formulário, tentando explorar brechas na segurança.#r#n#r#nSe você acredita estar preenchendo o formulário corretamente e este erro persistir, por favor, entre em contato com os administradores.#r#n#r#nPor precaução, verifique a segurança da sua conexão.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:1:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:4:{i:1;s:40:"Limpar versão em [text_language_caption]";i:2;i:1;i:5;i:2;i:6;i:1;}s:2:"en";a:4:{i:1;s:37:"Clear [text_language_caption] version";i:2;i:1;i:5;i:2;i:6;i:1;}}s:7:"content";a:2:{s:2:"pt";a:4:{i:1;s:119:"Esta ação irá limpar permanentemente todo o texto em [text_language_caption] desta página.#r#n#r#nDeseja mesmo continuar?#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}s:2:"en";a:3:{i:1;s:115:"This action will clear permanently all texts in [text_language_caption] or this page.#r#n#r#nDo you wich to continue?#r#n";i:4;i:1;i:6;i:1;}}}}a:3:{s:5:"flags";a:3:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:9:"templates";s:14:"modLayout_name";s:6:"dialog";}s:5:"local";a:1:{s:6:"scheme";s:6:"system";}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:14:"Área reservada";i:2;i:1;}s:2:"en";a:2:{i:1;s:13:"Reserved area";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:14:"Área reservada";i:2;i:1;}s:2:"en";a:2:{i:1;s:13:"Reserved area";i:2;i:1;}}s:7:"content";a:2:{s:2:"pt";a:5:{i:1;s:337:"#r#nPrezad[gender:o|a] [text $user.caption],#r#n#r#nEsta área está reservada somente aos administradores.#r#n#r#nSe você é um administrador, conecte-se para obter acesso.#r#n#r#n
      #r#n[mod:user]#r#n[mod:login]#r#n[mod:welcome]#r#n
      #r#n#r#n[cut:headerlinks]#r#n#r#n[/cut]#r#n";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}s:2:"en";a:5:{i:1;s:309:"Dear [text $user.caption],#r#n#r#n This area is reserved for administrators only.#r#n#r#nIf you are an administrator, log in to gain access.#r#n#r#n
      #r#n[mod:user]#r#n[mod:login]#r#n[mod:welcome]#r#n
      #r#n#r#n[cut:headerlinks]#r#n#r#n[/cut]#r#n";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"content";a:2:{s:2:"pt";a:5:{i:1;s:340:"#r#nPrezad[gender:o|a] [text $user.caption],#r#n#r#nEsta área está reservada somente ao proprietário deste perfil.#r#n#r#nSe este perfil é seu, conecte-se para obter acesso.#r#n#r#n
      #r#n[mod:user]#r#n[mod:login]#r#n[mod:welcome]#r#n
      #r#n#r#n[cut:headerlinks]#r#n#r#n[/cut]#r#n";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}s:2:"en";a:5:{i:1;s:307:"Dear [text $user.caption],#r#n#r#n This area is reserved for this profile owner only.#r#n#r#nIf it is your profile, log in to gain access.#r#n#r#n
      #r#n[mod:user]#r#n[mod:login]#r#n[mod:welcome]#r#n
      #r#n#r#n[cut:headerlinks]#r#n#r#n[/cut]#r#n";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:1:{s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:15:"Erro do sistema";i:2;i:1;}s:2:"en";a:2:{i:1;s:12:"System error";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:15:"Erro do sistema";i:2;i:1;}s:2:"en";a:2:{i:1;s:12:"System error";i:2;i:1;}}s:7:"content";a:2:{s:2:"pt";a:4:{i:1;s:124:"O [text $system.caption] foi incapaz de processar o seu pedido. Certifique-se de que o sistema esteja instalado corretamente";i:2;i:1;i:4;i:1;i:6;i:1;}s:2:"en";a:5:{i:1;s:103:"The [text $system.caption] was unable to process your request.#r#n#r#nPlease check the system installation.";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"content";a:1:{s:2:"pt";a:5:{i:1;s:545:"#r#nOlá [text $user.caption],#r#n#r#nO [text $system.caption] não foi capaz de encontrar uma aplicação que atenda ao endereço fornecido na requisição.#r#n#r#nSe você é um administrador e está certo de que o endereço é válido, verifique se a árvore de componentes está montada corretamente.#r#n#r#nLembre-se de que a sequência dos componentes na árvore é relevante para o roteamento correto. Por exemplo, qualquer aplicação posicionada após "systemDefault" não será acessível, uma vez que "systemDefault" irá atender a qualquer requisição que chegar até ela.#r#n";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:1:{s:8:"children";a:10:{i:0;s:6:"_start";i:1;s:13:"~0description";i:2;s:13:"~adminCaption";i:3;s:12:"~adminGender";i:4;s:10:"~adminMail";i:5;s:16:"~adminIdentifier";i:6;s:14:"~adminPassword";i:7;s:10:"_separator";i:8;s:5:"_next";i:9;s:4:"_end";}}a:2:{s:5:"flags";a:1:{s:6:"filter";s:29:"personaliteFields_descriptive";}s:4:"text";a:1:{s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:35:"#r#n== Perfil do administrador ==#r#n#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:1:{s:8:"children";a:9:{i:0;s:6:"_start";i:1;s:13:"~1description";i:2;s:18:"~systemHostingMode";i:3;s:10:"_separator";i:4;s:20:"~systemRewriteEngine";i:5;s:20:"~systemHttpsRedirect";i:6;s:10:"_separator";i:7;s:13:"_previousNext";i:8;s:4:"_end";}}a:2:{s:5:"flags";a:1:{s:6:"filter";s:29:"personaliteFields_descriptive";}s:4:"text";a:1:{s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:30:"#r#n== O que você deseja? ==#r#n#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:1:{s:8:"children";a:5:{i:0;s:6:"_start";i:1;s:13:"~2description";i:2;s:10:"_separator";i:3;s:15:"_previousFinish";i:4;s:4:"_end";}}a:2:{s:5:"flags";a:1:{s:6:"filter";s:29:"personaliteFields_descriptive";}s:4:"text";a:1:{s:7:"content";a:1:{s:2:"pt";a:5:{i:1;s:492:"#r#n== Verificar permissão de acesso ==#r#n#r#nPara evitar que qualquer pessoa crie um perfil de administrador neste sistema, Só será permitido concluir a instalação a quem possuir acesso aos arquivos do servidor via FTP ou painel de controle.#r#n#r#nPara realizar esta verificação, lhe será enviado um arquivo chamado "config.php" que você deverá colocar na pasta [$document.folder] deste servidor.#r#n#r#nApós transferir o arquivo, basta acessar novamente [$document.url].#r#n";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"content";a:2:{s:2:"pt";a:5:{i:1;s:289:"#r#nO [text $system.caption] não tem permissão para gerenciar arquivos e pastas no local onde está sendo instalado.#r#n#r#nVerifique as permissões de acesso da pasta e dos arquivos.#r#n#r#nSe você tem dúvidas sobre como proceder, solicite o auxílio do suporte técnico do seu serviço de hospedagem.#r#n";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}s:2:"en";a:4:{i:1;s:283:"#r#n[Text $system.caption] does not have permission to manage files and folders in the location where it is being installed.#r#n#r#nCheck the folder and file access permissions.#r#n#r#nIf you have questions about how to proceed, ask the help of the technical support of your hosting service.#r#n";i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:1:{s:5:"flags";a:7:{s:4:"type";s:10:"text_small";s:6:"filter";s:4:"free";s:6:"target";s:13:"ADMIN_CAPTION";s:10:"field_name";s:13:"ADMIN_CAPTION";s:8:"required";i:1;s:7:"caption";s:28:"admin_constants_adminCaption";s:4:"help";i:1;}}a:2:{s:5:"flags";a:7:{s:4:"type";s:6:"select";s:6:"filter";s:6:"select";s:6:"target";s:12:"ADMIN_GENDER";s:10:"field_name";s:12:"ADMIN_GENDER";s:10:"value_cast";s:6:"string";s:4:"help";i:1;s:7:"caption";s:27:"admin_constants_adminGender";}s:8:"children";a:2:{i:0;s:31:"admin_constants_adminGenderMale";i:1;s:33:"admin_constants_adminGenderFemale";}}a:1:{s:5:"flags";a:7:{s:4:"type";s:10:"text_small";s:6:"filter";s:6:"regexp";s:6:"target";s:16:"ADMIN_IDENTIFIER";s:10:"field_name";s:16:"ADMIN_IDENTIFIER";s:6:"regexp";s:16:"/[a-z][a-z0-9]+/";s:4:"help";i:1;s:7:"caption";s:31:"admin_constants_adminIdentifier";}}a:1:{s:5:"flags";a:6:{s:4:"type";s:4:"text";s:6:"filter";s:4:"free";s:6:"target";s:10:"ADMIN_MAIL";s:10:"field_name";s:10:"ADMIN_MAIL";s:4:"help";i:1;s:7:"caption";s:25:"admin_constants_adminMail";}}a:1:{s:5:"flags";a:8:{s:4:"type";s:13:"text_password";s:6:"filter";s:27:"systemInstallation_password";s:6:"target";s:14:"ADMIN_PASSWORD";s:10:"field_name";s:14:"ADMIN_PASSWORD";s:4:"help";i:1;s:8:"required";i:1;s:12:"password_md5";i:1;s:7:"caption";s:29:"admin_constants_adminPassword";}}a:2:{s:5:"flags";a:5:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:9:"templates";s:14:"modLayout_name";s:7:"default";s:21:"modLayout_sharedStyle";s:27:"styles/ecolabore-basics.css";s:22:"modLayout_sharedScript";s:35:"scripts/ecolabore-humperstilshen.js";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Início";i:2;i:1;}s:2:"en";a:1:{i:1;s:5:"Start";}}s:5:"title";a:2:{s:2:"pt";a:3:{i:1;s:36:"Instalação do [text $system.caption]";i:2;i:1;i:6;i:1;}s:2:"en";a:2:{i:1;s:35:"[text $system.caption] Installation";i:6;i:1;}}}}a:3:{s:5:"flags";a:6:{s:4:"type";s:5:"radio";s:6:"filter";s:6:"select";s:6:"target";s:19:"SYSTEM_HOSTING_MODE";s:10:"field_name";s:19:"SYSTEM_HOSTING_MODE";s:10:"value_cast";s:3:"int";s:4:"help";i:1;}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:18:"Modo de hospedagem";i:2;i:1;}s:2:"en";a:1:{i:1;s:12:"Hosting mode";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:18:"Modo de hospedagem";i:2;i:1;}s:2:"en";a:1:{i:1;s:12:"Hosting mode";}}s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:1181:"#r#nO [text $system.caption] é capaz de gerenciar múltiplos ambientes independentes entre si. Podem ser acessados como subpastas ou como subdomínios, de acordo com a configuração escolhida e das capacidades do servidor.#r#n#r#nPara utilizar o modo "Portal", em que os múltiplos ambientes sejam acessados como subdomínios, certifique-se de:#r#n#r#n* O servidor deve ser Apache e deve ter o módulo "rewriteEngine" habilitado#r#n* O servidor deve estar configurado para aceitar qualquer subdomínio#r#n* Todo o sistema deve estar na raiz do domínio#r#n* O arquivo ".htdocs" correto deve ser colocado na raiz do seu sistema#r#n* Você deve certificar-se de que outras aplicações não entrem em conflito com o [text $system.caption].#r#n#r#nEm modo "ambientes como subpastas" você pode acessar os diversos ambientes como se fossem subpastas do seu domínio. Neste caso, todo o sistema poderá ser colocado dentro de uma subpasta do seu domínio, caso você queira evitar conflito com outras aplicações. Este modo permite acesso local através de "localhost".#r#n#r#nO modo "Ambiente único" permite o acesso a um único ambiente, porém, sem restringir o acesso à área de configuração do sistema e aos perfis de usuários.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}s:8:"children";a:2:{i:0;s:24:"~systemHostingModeSingle";i:1;s:26:"~systemHostingModeMultiple";}}a:2:{s:5:"flags";a:1:{s:5:"value";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:3:{i:1;s:96:"Configurar manualmente o sistema através do ambiente de Administração do [text $system.caption].";i:2;i:1;i:6;i:1;}s:2:"en";a:2:{i:1;s:92:"Manually configure the system through the [text $system.caption] Administration environment.";i:2;i:1;}}}}a:2:{s:5:"flags";a:1:{s:5:"value";i:0;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:71:"Criar e gerenciar um único ambiente utilizando as configurações padrão.";i:2;i:1;}s:2:"en";a:2:{i:1;s:11:"Single site";i:2;i:1;}}}}a:1:{s:5:"flags";a:7:{s:4:"type";s:8:"checkbox";s:6:"filter";s:8:"checkbox";s:6:"target";s:21:"SYSTEM_HTTPS_REDIRECT";s:10:"field_name";s:21:"SYSTEM_HTTPS_REDIRECT";s:10:"value_cast";s:4:"bool";s:4:"help";i:1;s:7:"caption";s:35:"admin_constants_systemHttpsRedirect";}}a:1:{s:5:"flags";a:8:{s:9:"condition";s:21:"rewrite_engine_choose";s:4:"type";s:8:"checkbox";s:6:"filter";s:8:"checkbox";s:6:"target";s:21:"SYSTEM_REWRITE_ENGINE";s:10:"field_name";s:21:"SYSTEM_REWRITE_ENGINE";s:10:"value_cast";s:4:"bool";s:7:"caption";s:35:"admin_constants_systemRewriteEngine";s:4:"help";i:1;}}a:4:{s:13:"ADMIN_CAPTION";s:13:"Administrador";s:12:"ADMIN_GENDER";s:4:"male";s:16:"ADMIN_IDENTIFIER";s:5:"admin";s:19:"SYSTEM_HOSTING_MODE";i:0;}a:2:{s:5:"flags";a:3:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:9:"templates";s:14:"modLayout_name";s:7:"default";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:3:{i:1;s:11:"Ferramentas";i:2;i:1;i:6;i:1;}s:2:"en";a:3:{i:1;s:5:"Tools";i:2;i:1;i:6;i:1;}}s:5:"title";a:2:{s:2:"pt";a:3:{i:1;s:11:"Ferramentas";i:2;i:1;i:6;i:1;}s:2:"en";a:3:{i:1;s:5:"Tools";i:2;i:1;i:6;i:1;}}}}a:2:{s:5:"flags";a:3:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:9:"templates";s:14:"modLayout_name";s:7:"default";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:3:{i:1;s:13:"Configurações";i:2;i:1;i:6;i:1;}s:2:"en";a:3:{i:1;s:14:"Configurations";i:2;i:1;i:6;i:1;}}s:5:"title";a:2:{s:2:"pt";a:3:{i:1;s:13:"Configurações";i:2;i:1;i:6;i:1;}s:2:"en";a:3:{i:1;s:14:"Configurations";i:2;i:1;i:6;i:1;}}}}a:2:{s:5:"flags";a:3:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:9:"templates";s:14:"modLayout_name";s:7:"default";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:3:{i:1;s:11:"Organização";i:2;i:1;i:6;i:1;}s:2:"en";a:3:{i:1;s:12:"Organization";i:2;i:1;i:6;i:1;}}s:5:"title";a:2:{s:2:"pt";a:3:{i:1;s:20:"Dados da organização";i:2;i:1;i:6;i:1;}s:2:"en";a:3:{i:1;s:17:"Organization data";i:2;i:1;i:6;i:1;}}}}a:1:{s:8:"children";a:9:{i:0;s:6:"_start";i:1;s:24:"domainCreate_editCaption";i:2;s:22:"domainCreate_editTitle";i:3;s:28:"domainCreate_editDescription";i:4;s:24:"domainCreate_editAddress";i:5;s:22:"domainCreate_editPhone";i:6;s:21:"domainCreate_editMail";i:7;s:5:"_save";i:8;s:4:"_end";}}a:2:{s:5:"flags";a:3:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:9:"templates";s:14:"modLayout_name";s:7:"default";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:3:{i:1;s:7:"Idiomas";i:2;i:1;i:6;i:1;}s:2:"en";a:3:{i:1;s:9:"Languages";i:2;i:1;i:6;i:1;}}s:5:"title";a:2:{s:2:"pt";a:3:{i:1;s:7:"Idiomas";i:2;i:1;i:6;i:1;}s:2:"en";a:3:{i:1;s:9:"Languages";i:2;i:1;i:6;i:1;}}}}a:3:{s:5:"flags";a:3:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:9:"templates";s:14:"modLayout_name";s:13:"dialog_select";}s:5:"local";a:1:{s:6:"scheme";s:6:"system";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:15:"Adicionar Moeda";i:2;i:1;}s:2:"en";a:1:{i:1;s:12:"Add currency";}}}}a:1:{s:8:"children";a:8:{i:0;s:6:"_start";i:1;s:40:"adminDomains_details_editDefaultLanguage";i:2;s:21:"~editLanguagesManager";i:3;s:10:"_separator";i:4;s:33:"adminDomains_details_editCurrency";i:5;s:22:"~editCurrenciesManager";i:6;s:5:"_save";i:7;s:4:"_end";}}a:2:{s:5:"flags";a:2:{s:6:"filter";s:38:"toolConfig_languages_currenciesManager";s:10:"field_name";s:15:"currencies_list";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"Moedas em uso";i:2;i:1;}s:2:"en";a:1:{i:1;s:17:"Active currencies";}}}}a:2:{s:5:"flags";a:2:{s:6:"filter";s:28:"toolConfig_languages_manager";s:10:"field_name";s:13:"language_list";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:14:"Idiomas ativos";i:2;i:1;}s:2:"en";a:1:{i:1;s:16:"Active languages";}}}}a:3:{s:5:"flags";a:3:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:9:"templates";s:14:"modLayout_name";s:13:"dialog_select";}s:5:"local";a:1:{s:6:"scheme";s:6:"system";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:16:"Adicionar idioma";i:2;i:1;}s:2:"en";a:1:{i:1;s:12:"Add language";}}}}a:2:{s:5:"flags";a:3:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:9:"templates";s:14:"modLayout_name";s:7:"default";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:3:{i:1;s:4:"Loja";i:2;i:1;i:6;i:1;}s:2:"en";a:3:{i:1;s:6:"Market";i:2;i:1;i:6;i:1;}}s:5:"title";a:2:{s:2:"pt";a:3:{i:1;s:21:"Configurações da loja";i:2;i:1;i:6;i:1;}s:2:"en";a:3:{i:1;s:21:"Market configurations";i:2;i:1;i:6;i:1;}}}}a:1:{s:8:"children";a:5:{i:0;s:6:"_start";i:1;s:13:"~editCartType";i:2;s:14:"~editCartTimer";i:3;s:5:"_save";i:4;s:4:"_end";}}a:3:{s:5:"flags";a:5:{s:6:"filter";s:6:"select";s:10:"field_name";s:10:"cart_timer";s:6:"target";s:19:"flags/modCart_timer";s:13:"default_value";s:0:"";s:5:"clear";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:23:"Limitar tempo de compra";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"Time limit";}}}s:8:"children";a:4:{i:0;s:16:"~editCartTimer00";i:1;s:16:"~editCartTimer10";i:2;s:16:"~editCartTimer20";i:3;s:16:"~editCartTimer30";}}a:2:{s:5:"flags";a:1:{s:5:"value";s:0:"";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:19:"Sem limite de tempo";i:2;i:1;}s:2:"en";a:1:{i:1;s:13:"No time limit";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:3:"600";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:10:"10 minutos";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"10 minutes";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:4:"1200";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:10:"20 minutos";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"20 minutes";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:4:"1800";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:10:"30 minutos";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"30 minutes";}}}}a:3:{s:5:"flags";a:5:{s:6:"filter";s:6:"select";s:10:"field_name";s:9:"cart_type";s:6:"target";s:18:"flags/modCart_type";s:13:"default_value";s:0:"";s:5:"clear";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:16:"Tipo de carrinho";i:2;i:1;}s:2:"en";a:1:{i:1;s:9:"Cart type";}}}s:8:"children";a:2:{i:0;s:17:"~editCartTypeCart";i:1;s:16:"~editCartTypeBag";}}a:2:{s:5:"flags";a:1:{s:5:"value";s:3:"bag";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Sacola";i:2;i:1;}s:2:"en";a:1:{i:1;s:3:"Bag";}}}}a:2:{s:5:"flags";a:1:{s:5:"value";s:0:"";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Carrinho";i:2;i:1;}s:2:"en";a:1:{i:1;s:4:"Cart";}}}}a:2:{s:5:"flags";a:3:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:9:"templates";s:14:"modLayout_name";s:7:"default";}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:3:{i:1;s:7:"Versões";i:2;i:1;i:6;i:1;}s:2:"en";a:3:{i:1;s:8:"Versions";i:2;i:1;i:6;i:1;}}s:5:"title";a:2:{s:2:"pt";a:3:{i:1;s:24:"Gerenciamento de versões";i:2;i:1;i:6;i:1;}s:2:"en";a:3:{i:1;s:19:"Versions management";i:2;i:1;i:6;i:1;}}s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:114:"#r#nQuando você cria ou edita uma página, uma cópia do conteúdo é armazenada para permitir desfazer as alterações.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:1:{s:8:"children";a:9:{i:0;s:6:"_start";i:1;s:24:"domainCreate_editCaption";i:2;s:22:"domainCreate_editTitle";i:3;s:28:"domainCreate_editDescription";i:4;s:24:"domainCreate_editAddress";i:5;s:22:"domainCreate_editPhone";i:6;s:21:"domainCreate_editMail";i:7;s:5:"_save";i:8;s:4:"_end";}}a:2:{s:5:"flags";a:3:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:9:"templates";s:14:"modLayout_name";s:7:"default";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:3:{i:1;s:17:"Galeria de mídias";i:2;i:1;i:6;i:1;}s:2:"en";a:3:{i:1;s:12:"Media galery";i:2;i:1;i:6;i:1;}}s:5:"title";a:2:{s:2:"pt";a:3:{i:1;s:17:"Galeria de mídias";i:2;i:1;i:6;i:1;}s:2:"en";a:3:{i:1;s:12:"Media galery";i:2;i:1;i:6;i:1;}}}}a:2:{s:5:"flags";a:1:{s:14:"modLayout_from";s:7:"library";}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:18:"Perfis de usuários";i:2;i:1;}s:2:"en";a:2:{i:1;s:14:"Users profiles";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:18:"Perfis de usuários";i:2;i:1;}s:2:"en";a:2:{i:1;s:14:"Users profiles";i:2;i:1;}}s:11:"description";a:1:{s:2:"pt";a:2:{i:1;s:109:"Permite visualizar os perfis dos usuários cadastrados e oferece um conjunto de ferramentas para cada usuário.";i:2;i:1;}}}}a:1:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:4:"Você";i:2;i:1;}s:2:"en";a:2:{i:1;s:3:"You";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:4:"Você";i:2;i:1;}s:2:"en";a:2:{i:1;s:3:"You";i:2;i:1;}}}}a:1:{s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:23:"Perfil do administrador";i:2;i:1;}s:2:"en";a:2:{i:1;s:21:"Administrator profile";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:23:"Perfil do administrador";i:2;i:1;}s:2:"en";a:2:{i:1;s:21:"Administrator profile";i:2;i:1;}}s:7:"content";a:2:{s:2:"pt";a:4:{i:1;s:219:"#r#nO Administrador não possui um perfil.#r#n#r#n[if($document.user_is_admin){]#r#n#r#nPara criar um perfil para o administrador, cadastre um usuário com o mesmo identificador que você utiliza para o administrador.#r#n#r#n[} // if]#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}s:2:"en";a:4:{i:1;s:46:"#r#nThe Administrator does not have a profile.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"Visitante";i:2;i:1;}s:2:"en";a:2:{i:1;s:7:"Visitor";i:2;i:1;}}}}a:1:{s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:21:"Perfil não encontrado";i:2;i:1;}s:2:"en";a:2:{i:1;s:17:"Profile not found";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:21:"Perfil não encontrado";i:2;i:1;}s:2:"en";a:2:{i:1;s:17:"Profile not found";i:2;i:1;}}s:7:"content";a:2:{s:2:"pt";a:4:{i:1;s:98:"Olá [text $user.caption],#r#n#r#nO perfil que você está procurando não existe em nossos cadastros.#r#n#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}s:2:"en";a:5:{i:1;s:94:"Hello [text $user.caption],#r#n#r#nThe profile you#sre looking for does not exists in our database.";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:3:{s:5:"flags";a:2:{s:14:"modLayout_from";s:9:"templates";s:14:"modLayout_name";s:6:"dialog";}s:5:"local";a:1:{s:6:"scheme";s:6:"system";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Avisos";i:2;i:1;}s:2:"en";a:1:{i:1;s:6:"Alerts";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:6:"Avisos";i:2;i:1;}s:2:"en";a:1:{i:1;s:6:"Alerts";}}}}a:2:{s:5:"flags";a:1:{s:20:"modUser_alerts_popUp";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:40:"Seu endereço de email não foi verificado";i:2;i:1;}s:2:"en";a:1:{i:1;s:44:"Your email address has not yet been verified";}}}}a:2:{s:5:"flags";a:1:{s:20:"modUser_alerts_popUp";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:41:"Seu número de telefone não foi verificado";i:2;i:1;}s:2:"en";a:1:{i:1;s:43:"Your phone number has not yet been verified";}}}}a:2:{s:5:"flags";a:1:{s:22:"modHumperstilshen_menu";a:3:{i:0;s:7:"context";i:1;s:9:"usertools";i:2;s:4:"user";}}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:3:{i:1;s:21:"Página não encontrada";i:2;i:1;i:6;i:1;}s:2:"en";a:3:{i:1;s:14:"Page not found";i:2;i:1;i:6;i:1;}}s:5:"title";a:2:{s:2:"pt";a:3:{i:1;s:21:"Página não encontrada";i:2;i:1;i:6;i:1;}s:2:"en";a:3:{i:1;s:14:"Page not found";i:2;i:1;i:6;i:1;}}}}a:2:{s:5:"flags";a:1:{s:22:"modHumperstilshen_menu";a:3:{i:0;s:7:"context";i:1;s:9:"usertools";i:2;s:4:"user";}}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:3:{i:1;s:25:"Perfil de [text $profile]";i:2;i:1;i:6;i:1;}s:2:"en";a:2:{i:1;s:25:"[text $profile]#ss profile";i:6;i:1;}}s:5:"title";a:2:{s:2:"pt";a:3:{i:1;s:34:"Perfil de [text $document.profile]";i:2;i:1;i:6;i:1;}s:2:"en";a:2:{i:1;s:34:"[text $document.profile]#ss profile";i:6;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:23:"Sites que eu administro";i:2;i:1;}s:2:"en";a:1:{i:1;s:8:"My sites";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:22:"Publicado recentemente";i:2;i:1;}s:2:"en";a:1:{i:1;s:12:"Recent posts";}}}}a:3:{s:5:"flags";a:2:{s:14:"modLayout_from";s:9:"templates";s:14:"modLayout_name";s:6:"dialog";}s:5:"local";a:1:{s:6:"scheme";s:6:"system";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:15:"Verificar email";i:2;i:1;}s:2:"en";a:1:{i:1;s:12:"Verify email";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:15:"Verificar email";i:2;i:1;}s:2:"en";a:1:{i:1;s:12:"Verify email";}}}}a:1:{s:4:"text";a:1:{s:7:"content";a:2:{s:2:"pt";a:3:{i:1;s:52:"Uma falha ocorreu na tentativa de verificar o email.";i:2;i:1;i:4;i:1;}s:2:"en";a:2:{i:1;s:28:"Failed on mail verification.";i:4;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"content";a:2:{s:2:"pt";a:4:{i:1;s:127:"#r#nUma mensagem foi enviada para [$user.mail].#r#n#r#nAo abrir a mensagem você encontrará instruções para concluir a verificação.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}s:2:"en";a:3:{i:1;s:39:"#r#nA message was sent to [$user.mail].#r#n";i:4;i:1;i:6;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"content";a:2:{s:2:"pt";a:4:{i:1;s:74:"#r#nConecte-se para obter mais informações sobre a verificação de email.#r#n#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}s:2:"en";a:3:{i:1;s:66:"#r#nPlease log in for more information about email verification.#r#n#r#n";i:4;i:1;i:6;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"content";a:2:{s:2:"pt";a:4:{i:1;s:81:"#r#nOlá [text $user.caption],#r#n#r#nO email [$user.mail] foi verificado com sucesso.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}s:2:"en";a:3:{i:1;s:82:"#r#nHello [text $user.caption],#r#n#r#nThe mail [$user.mail] was successfuly verified.#r#n";i:4;i:1;i:6;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:3:{i:1;s:23:"[$user.mail] verificado";i:2;i:1;i:6;i:1;}s:2:"en";a:2:{i:1;s:21:"[$user.mail] verified";i:6;i:1;}}}}a:2:{s:5:"flags";a:4:{s:4:"type";s:4:"text";s:6:"filter";s:4:"text";s:10:"field_name";s:8:"security";s:6:"target";s:13:"text/security";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:18:"Frase de segurança";i:2;i:1;}s:2:"en";a:1:{i:1;s:15:"Security phrase";}}}}a:1:{s:8:"children";a:5:{i:0;s:6:"_start";i:1;s:9:"~editMail";i:2;s:13:"~editSecurity";i:3;s:5:"_next";i:4;s:4:"_end";}}a:2:{s:5:"flags";a:1:{s:14:"modLayout_base";s:4:"mail";}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:15:"Verificar email";i:2;i:1;}s:2:"en";a:1:{i:1;s:18:"Email verification";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:25:"Verificação de email para";i:2;i:1;}s:2:"en";a:1:{i:1;s:21:"Email verification to";}}s:7:"content";a:2:{s:2:"pt";a:5:{i:1;s:523:"#r#nOlá [text $user.caption],#r#n#r#nVocê está recebendo esta mensagem porque uma solicitação de verificação de email foi feita no [text $system.caption].#r#n#r#n[if($user.security){]#r#n#r#nEsta é a sua frase de segurança:#r#n#r#n"[text $user.security]"#r#n#r#n[}]#r#n#r#nPara continuar, acione o hyperlink a seguir ou copie-o e cole-o na barra de endereço do seu navegador:#r#n#r#n

      [$document.url]

      #r#n#r#nCaso não tenha feito esta solicitação, apenas desconsidere esta mensagem.#r#n#r#nA equipe do [text $system.caption].#r#n";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}s:2:"en";a:5:{i:1;s:493:"#r#n Hello [text $user.caption],#r#n#r#nYou are receiving this message because a email verification request was made in [text $system.caption].#r#n#r#n[if ($user.security) {]#r#n#r#nThis is your safety phrase:#r#n#r#n"[text $user.security]"#r#n#r#n[}]#r#n#r#nTo continue, click on the following hyperlink or copy and paste it into your browser#ss address bar:#r#n#r#n

      [$document.url]

      #r#n#r#nIf you have not made this request, just disregard this message.#r#n#r#nThe [text $system.caption] team.#r#n";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:1:{s:8:"children";a:3:{i:0;s:6:"_start";i:1;s:12:"~sentButtons";i:2;s:4:"_end";}}a:2:{s:5:"flags";a:1:{s:6:"filter";s:6:"submit";}s:8:"children";a:2:{i:0;s:11:"~sentUpdate";i:1;s:6:"_close";}}a:1:{s:5:"flags";a:3:{s:6:"filter";s:6:"submit";s:10:"field_name";s:6:"update";s:7:"caption";s:20:"userHome_mail_update";}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"Alterar email";i:2;i:1;}s:2:"en";a:1:{i:1;s:12:"Change email";}}}}a:2:{s:5:"flags";a:1:{s:4:"icon";s:5:"happy";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Sucesso!";i:2;i:1;}s:2:"en";a:2:{i:1;s:8:"Success!";i:2;i:1;}}s:7:"content";a:2:{s:2:"pt";a:4:{i:1;s:39:"Sua senha foi alterada com sucesso.#r#n#r#n";i:2;i:1;i:4;i:1;i:5;i:2;}s:2:"en";a:5:{i:1;s:30:"#r#nYour password was changed.#r#n";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:3:{s:5:"flags";a:2:{s:14:"modLayout_from";s:9:"templates";s:14:"modLayout_name";s:6:"dialog";}s:5:"local";a:1:{s:6:"scheme";s:6:"system";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:3:{i:1;s:13:"Alterar senha";i:2;i:1;i:6;i:1;}s:2:"en";a:3:{i:1;s:15:"Change password";i:2;i:1;i:6;i:1;}}s:5:"title";a:2:{s:2:"pt";a:3:{i:1;s:13:"Alterar senha";i:2;i:1;i:6;i:1;}s:2:"en";a:3:{i:1;s:15:"Change password";i:2;i:1;i:6;i:1;}}}}a:1:{s:8:"children";a:6:{i:0;s:6:"_start";i:1;s:42:"adminUsers_details_editPasswordDescription";i:2;s:23:"adminUsers_editPassword";i:3;s:24:"adminUsers_editPassword2";i:4;s:10:"_saveClose";i:5;s:4:"_end";}}a:1:{s:8:"children";a:6:{i:0;s:6:"_start";i:1;s:42:"adminUsers_details_editPasswordDescription";i:2;s:27:"adminUsers_add_editPassword";i:3;s:28:"adminUsers_add_editPassword2";i:4;s:7:"_submit";i:5;s:4:"_end";}}a:1:{s:4:"text";a:1:{s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:842:"#r#nSenha é o principal método de identificação na Internet.#r#n#r#nEntão você pode imaginar que pessoas mal intensionadas desejam de qualquer forma descobrir as senhas de terceiros para todo o tipo de finalidade inapropriada.#r#n#r#nIsso inclui desenvolver programas para tentar descobrir sua senha, ou de qualquer outra forma roubá-la de você.#r#n#r#nEm primeiro lugar, tenha certeza de anotá-la em um local seguro.#r#n#r#nEm segundo lugar, escolha para senha qualquer coisa que não seja óbvia. Programas que tentam descobrir a senha com "força bruta", chutando aleatoriamente milhares de possibilidades, normalmente procuram palavras comuns. Por isso, recomendamos misturar números em meio a letras, e utilizar no mínimo 7 caractéres. Pessoas que possuam seus dados pessoais também poderão tentar sua data de aniversário ou outras combinações semelhantes.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"content";a:2:{s:2:"pt";a:5:{i:1;s:161:"#r#nOlá [text $user.caption],#r#n#r#nEsta solicitação para redefinir sua senha não é mais válida.#r#n#r#nEla expirou ou outra solicitação mais recente está em andamento.#r#n";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}s:2:"en";a:4:{i:1;s:147:"#r#nHi [text $user.caption],#r#n#r#n This request to reset your password is not valid.#r#n#r#nIt has expired or another more recent request is in progress.#r#n";i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"content";a:2:{s:2:"pt";a:5:{i:1;s:137:"#r#nOlá [text $user.caption],#r#n#r#nSua senha foi redefinida com sucesso.#r#n#r#nConecte-se ao [text $system.caption] utilizando sua nova senha.#r#n";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}s:2:"en";a:4:{i:1;s:136:"#r#nHi [text $user.caption],#r#n#r#nYour password has been successfully reset.#r#n#r#nConnect to [text $system.caption] using your new password.#r#n";i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:2:{s:5:"flags";a:1:{s:4:"icon";s:5:"happy";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Sucesso!";i:2;i:1;}s:2:"en";a:2:{i:1;s:8:"Success!";i:2;i:1;}}s:7:"content";a:2:{s:2:"pt";a:4:{i:1;s:44:"Seus dados cadastrais foram atualizados.#r#n#r#n";i:2;i:1;i:4;i:1;i:5;i:2;}s:2:"en";a:5:{i:1;s:34:"#r#nYour personal data is updated.#r#n";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:3:{s:5:"flags";a:2:{s:14:"modLayout_from";s:9:"templates";s:14:"modLayout_name";s:6:"dialog";}s:5:"local";a:1:{s:6:"scheme";s:6:"system";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:3:{i:1;s:14:"Dados pessoais";i:2;i:1;i:6;i:1;}s:2:"en";a:3:{i:1;s:13:"Personal data";i:2;i:1;i:6;i:1;}}s:5:"title";a:2:{s:2:"pt";a:3:{i:1;s:14:"Dados pessoais";i:2;i:1;i:6;i:1;}s:2:"en";a:3:{i:1;s:13:"Personal data";i:2;i:1;i:6;i:1;}}}}a:1:{s:8:"children";a:9:{i:0;s:6:"_start";i:1;s:22:"adminUsers_editCaption";i:2;s:20:"adminUsers_editTitle";i:3;s:26:"adminUsers_editDescription";i:4;s:18:"adminUsers_editCPF";i:5;s:23:"adminUsers_editBornDate";i:6;s:22:"adminUsers_editAddress";i:7;s:10:"_saveClose";i:8;s:4:"_end";}}a:1:{s:4:"text";a:1:{s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:240:"#r#nSeus dados pessoais são secretos.#r#n#r#nCaso em alguma circunstância seus dados pessoais forem solicitados - por exemplo ao preencher uma ficha de cadastro - o [text $system.caption] irá lhe perguntar se você deseja ou não compartilhá-los.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:2:{s:5:"flags";a:1:{s:4:"icon";s:5:"error";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:4:{i:1;s:15:"Código inválido";i:2;i:1;i:5;i:2;i:6;i:1;}s:2:"en";a:2:{i:1;s:12:"Invalid code";i:2;i:1;}}s:7:"content";a:2:{s:2:"pt";a:5:{i:1;s:40:"#r#nO código informado não corresponde#r#n#r#n";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}s:2:"en";a:5:{i:1;s:216:"#r#nHello [text $user.caption],#r#n#r#n[if($document.user_is_admin){]#r#n#r#nYou#sre connected as administrator.#r#n#r#n[}else{]#r#n#r#nYou#sre connected in [text $system.caption].#r#n#r#n[}]#r#n#r#n[mod:user_quoteoftheday]#r#n[mod:user_alerts]#r#n";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:1:{s:8:"children";a:5:{i:0;s:6:"_start";i:1;s:17:"~checkDescription";i:2;s:10:"~checkCode";i:3;s:5:"_next";i:4;s:4:"_end";}}a:2:{s:5:"flags";a:5:{s:4:"type";s:10:"text_small";s:6:"filter";s:7:"integer";s:10:"field_name";s:4:"code";s:6:"target";s:4:"code";s:8:"required";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:21:"Código de verificação";i:2;i:1;}s:2:"en";a:1:{i:1;s:17:"Verification code";}}}}a:3:{s:5:"flags";a:2:{s:14:"modLayout_from";s:9:"templates";s:14:"modLayout_name";s:6:"dialog";}s:5:"local";a:1:{s:6:"scheme";s:6:"system";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:28:"Verificar número de telefone";i:2;i:1;}s:2:"en";a:1:{i:1;s:19:"Verify phone number";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:28:"Verificar número de telefone";i:2;i:1;}s:2:"en";a:1:{i:1;s:19:"Verify phone number";}}}}a:3:{s:5:"flags";a:2:{s:14:"modLayout_from";s:9:"templates";s:14:"modLayout_name";s:6:"dialog";}s:5:"local";a:1:{s:6:"scheme";s:6:"system";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:3:{i:1;s:50:"[$user.phone_area] [$user.phone_number] verificado";i:2;i:1;i:6;i:1;}s:2:"en";a:2:{i:1;s:48:"[$user.phone_area] [$user.phone_number] verified";i:6;i:1;}}}}a:1:{s:8:"children";a:4:{i:0;s:6:"_start";i:1;s:11:"~inputPhone";i:2;s:5:"_next";i:3;s:4:"_end";}}a:1:{s:5:"flags";a:3:{s:6:"filter";s:5:"phone";s:10:"field_name";s:5:"phone";s:8:"required";i:1;}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:26:"Alterar número de telefone";i:2;i:1;}s:2:"en";a:1:{i:1;s:19:"Change phone number";}}}}a:4:{s:5:"flags";a:2:{s:14:"modLayout_from";s:9:"templates";s:14:"modLayout_name";s:6:"dialog";}s:5:"local";a:1:{s:6:"scheme";s:6:"system";}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:17:"Número verificado";i:2;i:1;}s:2:"en";a:1:{i:1;s:15:"Verified number";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:17:"Número verificado";i:2;i:1;}s:2:"en";a:1:{i:1;s:15:"Verified number";}}s:7:"content";a:2:{s:2:"pt";a:4:{i:1;s:100:"#r#nOlá [text $user.caption],#r#n#r#nO número de telefone [$document.number] foi verificado com sucesso.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}s:2:"en";a:3:{i:1;s:96:"#r#nHello [text $user.caption],#r#n#r#nThe phone number [$document.number] was successfuly verified.#r#n";i:4;i:1;i:6;i:1;}}}s:8:"children";a:3:{i:0;s:6:"_start";i:1;s:16:"~verifiedButtons";i:2;s:4:"_end";}}a:2:{s:5:"flags";a:1:{s:6:"filter";s:6:"submit";}s:8:"children";a:2:{i:0;s:15:"~verifiedUpdate";i:1;s:6:"_close";}}a:1:{s:5:"flags";a:3:{s:6:"filter";s:6:"submit";s:10:"field_name";s:6:"update";s:7:"caption";s:21:"userHome_phone_update";}}a:2:{s:5:"flags";a:1:{s:4:"icon";s:5:"crash";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:4:{i:1;s:17:"Usuária bloqueada";i:2;i:1;i:5;i:2;i:6;i:1;}s:2:"en";a:2:{i:1;s:12:"Blocked user";i:2;i:1;}}s:7:"content";a:2:{s:2:"pt";a:5:{i:1;s:175:"#r#nEsta usuária está temporariamente impedida de se conectar.#r#n#r#nPara mais informações, favor entrar em contato com a nossa equipe.#r#n#r#nAdministração do [text $system.caption]#r#n";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}s:2:"en";a:5:{i:1;s:134:"This user is temporarily forbided to connect.#r#nFor more information, please contact our administrators.#r#n#r#n[text $system.caption] team";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:2:{s:5:"flags";a:1:{s:4:"icon";s:5:"crash";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:4:{i:1;s:17:"Usuário bloqueado";i:2;i:1;i:5;i:2;i:6;i:1;}s:2:"en";a:2:{i:1;s:12:"Blocked user";i:2;i:1;}}s:7:"content";a:2:{s:2:"pt";a:5:{i:1;s:175:"#r#nEste usuário está temporariamente impedido de se conectar.#r#n#r#nPara mais informações, favor entrar em contato com a nossa equipe.#r#n#r#nAdministração do [text $system.caption]#r#n";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}s:2:"en";a:5:{i:1;s:136:"This user is temporarily forbided to connect.#r#n#r#nFor more information, please contact our administrators.#r#n#r#n[text $system.caption] team";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:2:{s:5:"flags";a:1:{s:4:"icon";s:7:"default";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:4:{i:1;s:20:"Bem-vind[gender:o|a]";i:2;i:1;i:5;i:2;i:6;i:1;}s:2:"en";a:2:{i:1;s:7:"Welcome";i:2;i:1;}}s:7:"content";a:2:{s:2:"pt";a:5:{i:1;s:257:"#r#n#r#nOlá [text $user.caption],#r#n#r#n[if($document.user_is_admin){]#r#n#r#nVocê está conectad[gender:o|a] como administrador[gender:|a].#r#n#r#n[}else{]#r#n#r#nVocê está conectad[gender:o|a] ao [text $system.caption].#r#n#r#n[}]#r#n#r#n[mod:user_quoteoftheday]#r#n[mod:user_alerts]#r#n";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}s:2:"en";a:5:{i:1;s:216:"#r#nHello [text $user.caption],#r#n#r#n[if($document.user_is_admin){]#r#n#r#nYou#sre connected as administrator.#r#n#r#n[}else{]#r#n#r#nYou#sre connected in [text $system.caption].#r#n#r#n[}]#r#n#r#n[mod:user_quoteoftheday]#r#n[mod:user_alerts]#r#n";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:2:{s:5:"flags";a:1:{s:4:"icon";s:7:"default";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:4:{i:1;s:20:"Bem-vind[gender:o|a]";i:2;i:1;i:5;i:2;i:6;i:1;}s:2:"en";a:2:{i:1;s:7:"Welcome";i:2;i:1;}}s:7:"content";a:2:{s:2:"pt";a:5:{i:1;s:255:"#r#n#r#nOlá [text $user.caption],#r#n#r#n[if($document.user_is_admin){]#r#n#r#nVocê está conectad[gender:o|a] ao seu perfil.#r#n#r#n[}else{]#r#n#r#nVocê está conectad[gender:o|a] à rede social do [text $system.caption].#r#n#r#n[}]#r#n#r#n[mod:user_quoteoftheday]#r#n[mod:user_alerts]#r#n";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}s:2:"en";a:5:{i:1;s:234:"#r#nHello [text $user.caption],#r#n#r#n[if($document.user_is_admin){]#r#n#r#nYou#sre connected to your profile.#r#n#r#n[}else{]#r#n#r#nYou#sre connected in the [text $system.caption] social network.#r#n#r#n[}]#r#n#r#n[mod:user_quoteoftheday]#r#n[mod:user_alerts]#r#n";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:2:{s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:18:"Perfis de usuários";i:2;i:1;}s:2:"en";a:2:{i:1;s:14:"Users profiles";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:18:"Perfis de usuários";i:2;i:1;}s:2:"en";a:2:{i:1;s:14:"Users profiles";i:2;i:1;}}s:11:"description";a:1:{s:2:"pt";a:2:{i:1;s:109:"Permite visualizar os perfis dos usuários cadastrados e oferece um conjunto de ferramentas para cada usuário.";i:2;i:1;}}}s:5:"flags";a:1:{s:14:"modLayout_from";s:7:"library";}}a:2:{s:5:"flags";a:1:{s:4:"icon";s:5:"happy";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:3:{i:1;s:8:"Sucesso!";i:2;i:1;i:5;i:2;}s:2:"en";a:2:{i:1;s:7:"Success";i:2;i:1;}}s:7:"content";a:1:{s:2:"pt";a:4:{i:1;s:398:"#r#nOlá [text $user.caption],#r#n#r#nVocê está cadastrad[gender:o|a] no [text $system.caption].#r#n#r#nAproveite para verificar e completar seus dados cadastrais.#r#n#r#n------#r#n#r#n=== Olha a dica ===#r#n#r#nEm todas as páginas há um ícone no canto superior direito. Acionando este ícone você terá acesso à caixa de login. Se já estiver conectado, lá estarão as ferramentas disponíveis para você.#r#n#r#n #r#n#r#nBoa sorte!#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}}}}a:3:{s:5:"flags";a:3:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:9:"templates";s:14:"modLayout_name";s:6:"dialog";}s:5:"local";a:1:{s:6:"scheme";s:6:"system";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:3:{i:1;s:38:"Cadastrar-se no [text $system.caption]";i:2;i:1;i:6;i:1;}s:2:"en";a:3:{i:1;s:30:"Join to [text $system.caption]";i:2;i:1;i:6;i:1;}}s:5:"title";a:2:{s:2:"pt";a:3:{i:1;s:38:"Cadastrar-se no [text $system.caption]";i:2;i:1;i:6;i:1;}s:2:"en";a:3:{i:1;s:30:"Join to [text $system.caption]";i:2;i:1;i:6;i:1;}}}}a:2:{s:5:"flags";a:5:{s:4:"type";s:8:"checkbox";s:6:"filter";s:8:"checkbox";s:10:"field_name";s:7:"i_agree";s:6:"target";s:5:"agree";s:5:"clear";i:1;}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:39:"Li e concordo com os termos de serviço.";i:2;i:1;}s:2:"en";a:1:{i:1;s:8:"I agree.";}}}}a:1:{s:5:"flags";a:1:{s:6:"filter";s:18:"userJoin_termsView";}}a:1:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:2:{i:1;s:5:"Ajuda";i:2;i:1;}}}}a:3:{s:5:"local";a:1:{s:6:"scheme";s:6:"system";}s:4:"text";a:2:{s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:35:"Bem vindo ao [text $system.caption]";i:6;i:1;}s:2:"en";a:2:{i:1;s:33:"Welcome to [text $system.caption]";i:6;i:1;}}s:7:"content";a:1:{s:2:"pt";a:5:{i:1;s:105:"#r#nAo cadastrar-se e utilizar nossos serviços, você deve concordar com nossos termos e condições de uso:#r#n";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}s:8:"children";a:5:{i:0;s:6:"_start";i:1;s:14:"~editTermsView";i:2;s:15:"~editTermsAgree";i:3;s:5:"_next";i:4;s:4:"_end";}}a:3:{s:5:"local";a:1:{s:6:"scheme";s:6:"system";}s:4:"text";a:1:{s:5:"title";a:2:{s:2:"pt";a:1:{i:1;s:22:"Dados para se conectar";}s:2:"en";a:1:{i:1;s:15:"Data to connect";}}}s:8:"children";a:9:{i:0;s:6:"_start";i:1;s:22:"adminUsers_editCaption";i:2;s:21:"adminUsers_editGender";i:3;s:19:"adminUsers_editMail";i:4;s:19:"adminUsers_editName";i:5;s:23:"adminUsers_editPassword";i:6;s:24:"adminUsers_editPassword2";i:7;s:5:"_next";i:8;s:4:"_end";}}a:2:{s:5:"local";a:1:{s:6:"scheme";s:6:"system";}s:8:"children";a:8:{i:0;s:6:"_start";i:1;s:22:"adminUsers_editCaption";i:2;s:21:"adminUsers_editGender";i:3;s:19:"adminUsers_editName";i:4;s:23:"adminUsers_editPassword";i:5;s:24:"adminUsers_editPassword2";i:6;s:13:"_previousNext";i:7;s:4:"_end";}}a:3:{s:5:"local";a:1:{s:6:"scheme";s:6:"system";}s:4:"text";a:1:{s:5:"title";a:2:{s:2:"pt";a:1:{i:1;s:19:"Seus dados pessoais";}s:2:"en";a:1:{i:1;s:19:"Your personal data";}}}s:8:"children";a:9:{i:0;s:6:"_start";i:1;s:20:"adminUsers_editTitle";i:2;s:26:"adminUsers_editDescription";i:3;s:18:"adminUsers_editCPF";i:4;s:23:"adminUsers_editBornDate";i:5;s:20:"adminUsers_editPhone";i:6;s:22:"adminUsers_editAddress";i:7;s:6:"_close";i:8;s:4:"_end";}}a:3:{s:5:"flags";a:2:{s:14:"modLayout_from";s:9:"templates";s:14:"modLayout_name";s:6:"dialog";}s:5:"local";a:1:{s:6:"scheme";s:6:"system";}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:15:"Recuperar senha";i:2;i:1;}s:2:"en";a:2:{i:1;s:16:"Recover password";i:2;i:1;}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:15:"Recuperar senha";i:2;i:1;}s:2:"en";a:2:{i:1;s:16:"Recover password";i:2;i:1;}}s:7:"content";a:2:{s:2:"pt";a:4:{i:1;s:4:"#r#n#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}s:2:"en";a:5:{i:1;s:2:"#r#n";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:1:{s:8:"children";a:4:{i:0;s:6:"_start";i:1;s:15:"~editIdentifier";i:2;s:7:"_submit";i:3;s:4:"_end";}}a:2:{s:5:"flags";a:1:{s:4:"icon";s:5:"error";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:26:"Impossível enviar mensagem";i:2;i:1;}s:2:"en";a:2:{i:1;s:19:"Unable to send mail";i:2;i:1;}}s:7:"content";a:2:{s:2:"pt";a:2:{i:1;s:143:"Este usuário não possui um endereço de e-mail cadastrado.#r#n#r#nSolicite ao administrador o cadastro de um email ou a criação de uma nova senha.#r#n";i:2;i:1;}s:2:"en";a:5:{i:1;s:126:" This user does not have a registered email address.#r#n#r#nAsk the administrator to register an email or create a new password.#r#n";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:2:{s:5:"flags";a:1:{s:4:"icon";s:5:"error";}s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:22:"Usuário não encontrado";i:2;i:1;}s:2:"en";a:2:{i:1;s:14:"User not found";i:2;i:1;}}s:7:"content";a:2:{s:2:"pt";a:2:{i:1;s:47:"O nome de usuário informado não foi encontrado.";i:2;i:1;}s:2:"en";a:5:{i:1;s:28:"The user name was not found.";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:2:{s:5:"flags";a:2:{s:6:"filter";s:30:"userRecoverPassword_identifier";s:10:"field_name";s:10:"identifier";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"Identificador";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"Identifier";}}}}a:2:{s:5:"flags";a:1:{s:14:"modLayout_base";s:4:"mail";}s:4:"text";a:3:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:15:"Recuperar senha";i:2;i:1;}s:2:"en";a:1:{i:1;s:16:"Recover password";}}s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:18:"Recuperar senha de";i:2;i:1;}s:2:"en";a:1:{i:1;s:20:"Recover password for";}}s:7:"content";a:2:{s:2:"pt";a:5:{i:1;s:521:"#r#nOlá [text $user.caption],#r#n#r#nVocê está recebendo esta mensagem pois uma solicitação de recuperação de senha foi feita no [text $system.caption].#r#n#r#n[if($user.security){]#r#n#r#nEsta é a sua frase de segurança:#r#n#r#n"[text $user.security]"#r#n#r#n[}]#r#n#r#nPara continuar, acione o hyperlink a seguir ou copie-o e cole-o na barra de endereço do seu navegador:#r#n#r#n

      [$document.url]

      #r#n#r#nCaso não tenha feito esta solicitação, apenas desconsidere esta mensagem.#r#n#r#nA equipe do [text $system.caption].#r#n";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}s:2:"en";a:5:{i:1;s:492:"#r#n Hello [text $user.caption],#r#n#r#nYou are receiving this message because a password recovery request was made in [text $system.caption].#r#n#r#n[if ($user.security) {]#r#n#r#nThis is your safety phrase:#r#n#r#n"[text $user.security]"#r#n#r#n[}]#r#n#r#nTo continue, click on the following hyperlink or copy and paste it into your browser#ss address bar:#r#n#r#n

      [$document.url]

      #r#n#r#nIf you have not made this request, just disregard this message.#r#n#r#nThe [text $system.caption] team.#r#n";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"content";a:2:{s:2:"pt";a:4:{i:1;s:346:"#r#nUm email foi enviado para você, com instruções sobre como concluir a recuperação da sua senha.#r#n#r#nCertifique-se de que sua caixa de mensagens não esteja cheia e que seu anti-spam não esteja bloqueando mensagens de [$document.mail_from].#r#n#r#nSe você definiu uma frase de segurança, ela será transcrita no corpo da mensagem para sua verificação.#r#n";i:2;i:1;i:4;i:1;i:6;i:1;}s:2:"en";a:5:{i:1;s:317:"#r#n An email has been sent to you with instructions on how to complete the recovery of your password.#r#n#r#nMake sure your mailbox is not full and your anti-spam is not blocking messages from [$document.mail_from].#r#n#r#nIf you have defined a security phrase, it is transcribed in the body of the message for verification.#r#n";i:2;i:1;i:4;i:1;i:5;i:2;i:6;i:1;}}}}a:1:{s:4:"html";s:12:"[mod:layout]";}a:1:{s:4:"html";s:404:"#r#n#r#n#r#n#r#n[text$document.title]#r#n#r#n[paste:headerlinks]#r#n[paste:style]#r#n#r#n[mod:panel main]#r#n#r#n";}a:1:{s:4:"html";s:526:"#r#n#r#n#r#n#r#n[text$document.title]#r#n#r#n#r#n[paste:headerlinks]#r#n[paste:style]#r#n#r#n[mod:title]#r#n[mod:panel main]#r#n[mod:hits]#r#n#r#n";}a:1:{s:4:"html";s:4932:"#r#n#r#n#r#n#r#n[if($document.description){ ``; nl; }]#r#n[if($document.keywords){ ``; nl; }]#r#n#r#n#r#n#r#n#r#n[mod(`languages_header`){ if($url_rss){]#r#n#r#n[}if($url_canonical){]#r#n#r#n#r#n[}list{loop{]#r#n#r#n[}}}]#r#n#r#n#r#n[paste:headerlinks]#r#n[text$document.title or $document.caption]#r#n[script]#r#n#r#nhumperstilshen = new humperstilshenClass();#r#nhumperstilshen.msgIconOpen = "[text:layout_assistant_open]";#r#nhumperstilshen.msgIconClose = "[text:layout_assistant_close]";#r#nhumperstilshen.msgColapsed = "[text:layout_menu_colapsed]";#r#nhumperstilshen.msgExpanded = "[text:layout_menu_opened]";#r#n#r#n[/script]#r#n[paste:style]#r#n#r#n#r#n#r#n#r#n
      #r#n#r#n[paste:bar_left_icons]#r#n[scope(`home`){]#r#n#r#n[if($editable){]#r#n[text $title]#r#n[}elseif($url){]#r#n[text $title]#r#n[}else{]#r#n[text $title]#r#n[}]#r#n#r#n[} // scope]#r#n#r#n
      #r#n#r#n#r#n#r#n
      #r#n#r#n#r#n[mod:layout]#r#n
      #r#n#r#n#r#n[mod:editor]#r#n[mod:instructor]#r#n#r#n
      #r#n#r#n[paste:bar_right_icons]#r#n[paste:editor_icon]#r#n[paste:instructor_icon]#r#n#r#n[text:layout_assistant_open]#r#n#r#n
      #r#n#r#n#r#n#r#n#r#n#r#n#r#n[cut:footerscript]#r#nif (humperstilshen.onLoad !== false && !humperstilshen.loadWait){#r#nhumperstilshen.onLoad();#r#nhumperstilshen.onLoad = false;#r#n}#r#n[/cut]#r#n[paste:script]#r#n#r#n";}a:1:{s:4:"html";s:503:"#r#n#r#n#r#n#r#n[text$document.title]#r#n#r#n#r#n[paste:headerlinks]#r#n[paste:style]#r#n#r#n#r#n[mod:layout]#r#n[paste:script]#r#n#r#n";}a:1:{s:4:"html";s:669:"#r#n#r#n#r#n#r#n#r#n[text $document.title]#r#n#r#n#r#n[paste:headerlinks]#r#n[paste:style]#r#n#r#n#r#n[mod(`title`){list{]#r#n

      [text $title]

      #r#n[}}]#r#n[mod:panel main]#r#n#r#n[paste:script]#r#n#r#n";}a:1:{s:4:"html";s:114:"#r#n?#r#n#r#n";}a:1:{s:4:"html";s:164:"#r#n+#r#n#r#n";}a:1:{s:4:"html";s:191:"#r#n[text $personalite_caption]#r#n#r#n";}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Cartão";i:2;i:1;}s:2:"en";a:1:{i:1;s:4:"Card";}}}s:4:"html";s:382:"#r#n#r#n
      #r#n[text:layout_card_start]#r#n[$value]#r#n[personalite]#r#n
      #r#n#r#n";}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:7:"Colunas";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Columns";}}}s:4:"html";s:392:"#r#n#r#n#r#n[text:layout_columns_start]#r#n[$value]#r#n[personalite]#r#n[text:layout_columns_end]#r#n#r#n#r#n";}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Padrão";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Default";}}}s:4:"html";s:941:"#r#n#r#n<[$mod-semantic or `div`;#r#ninline_class(`mod position-$position??left wd-sm-$wd-sm??12 wd-md-$wd-md wd-lg-$wd-lg wd-xl-$wd-xl`);#r#ninline_style(`padding-top:$mod-padding-top; padding-right:$mod-padding-right; padding-bottom:$mod-padding-bottom; padding-left:$mod-padding-left`);#r#n`>`; nl;#r#n#r#nif($caption-display and !$caption-legend){ ``; text; ``; nl; }#r#n#r#n``; nl;#r#n#r#nlist($list);#r#n#r#n``; nl;#r#n#r#nif($caption-display and $caption-legend){ ``; text; ``; nl; }#r#npersonalite;#r#n#r#n``; nl;#r#n]#r#n#r#n";}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:17:"Fonte e parágrafo";i:2;i:1;}s:2:"en";a:1:{i:1;s:17:"Fonte e parágrafo";}}}s:4:"html";s:90:"#r#n#r#n
      #r#n[$value]#r#n[personalite]#r#n
      #r#n#r#n";}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:26:"Formatar fonte e parágrafo";i:2;i:1;}s:2:"en";a:1:{i:1;s:25:"Format font and paragraph";}}}s:4:"html";s:289:"#r#n#r#n
      #r#n[$value]#r#n[personalite]#r#n
      #r#n#r#n";}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:16:"Grade de cartões";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"Cards grid";}}}s:4:"html";s:569:"#r#n#r#n
      #r#n
      #r#n[text:layout_grid_start]#r#n[$value]#r#n[personalite]#r#n[text:layout_grid_end]#r#n
      #r#n
      #r#n#r#n";}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:17:"Botão com legenda";i:2;i:1;}s:2:"en";a:1:{i:1;s:19:"Button with caption";}}}s:4:"html";s:949:"[if($menu){]#r#n[text][text:layout_menu_colapsed]#r#n[script]#r#nhumperstilshen.menuAdd ("[$menu]");#r#n[/script]#r#n#r#n[}elseif($active or !$url){]#r#n[ if $editable{][text][}else{ text; }]#r#n[}else{]#r#n[text]#r#n[}";}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:16:"Botão com título";i:2;i:1;}s:2:"en";a:1:{i:1;s:17:"Button with title";}}}s:4:"html";s:325:"[if($active or !$url){]#r#n[text $title]#r#n[}else{]#r#n[text $title]#r#n[}";}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:7:"Legenda";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Caption";}}}s:4:"html";s:117:"[if($active or !$url){]#r#n[text]#r#n[}else{]#r#n[text]#r#n[}";}a:3:{s:5:"local";a:1:{s:7:"filters";s:14:"contactAddress";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Endereço";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Address";}}}s:4:"html";s:247:"[scope(`address`){#r#nif($street){ `

      `; $street; if($number){ `, `; $number; } ` `; $complement; `

      `; nl; }#r#nif($district){ `

      `; $district; `

      `; nl; }#r#nif($city or $state){ `

      `; $city; ` - `; $state; ` - `; $postal_code; `

      `; nl; }#r#n}";}a:3:{s:5:"local";a:1:{s:7:"filters";s:11:"contactMail";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:5:"Email";i:2;i:1;}s:2:"en";a:1:{i:1;s:5:"Email";}}}s:4:"html";s:66:"[if $mail{]
      #r#n[$mail]#r#n
      #r#n[}";}a:3:{s:5:"local";a:1:{s:7:"filters";s:12:"contactPhone";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Telefone";i:2;i:1;}s:2:"en";a:1:{i:1;s:5:"Phone";}}}s:4:"html";s:39:"[if $phone{]
      #r#n[$phone]#r#n
      #r#n[}";}a:3:{s:5:"local";a:1:{s:7:"filters";s:11:"contactSite";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:17:"Site (Criar link)";i:2;i:1;}s:2:"en";a:1:{i:1;s:18:"Site (create link)";}}}s:4:"html";s:73:"[if $site{]
      #r#n[$site]#r#n
      #r#n[}";}a:3:{s:5:"local";a:1:{s:7:"filters";s:7:"content";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Conteúdo";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Content";}}}s:4:"html";s:298:"[text($content, $editable)]#r#n";}a:3:{s:5:"local";a:1:{s:7:"filters";s:11:"description";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"Descrição";i:2;i:1;}s:2:"en";a:1:{i:1;s:11:"Description";}}}s:4:"html";s:286:"[if($description or $editable){]#r#n`; text($description); `

      `; }";}a:3:{s:5:"flags";a:1:{s:7:"filters";s:9:"eventDate";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:14:"Data do evento";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"Event date";}}}s:4:"html";s:102:"[scope(`date`, $event_start){]#r#n

      [text:detail_event_start] [text:date_formated]

      #r#n[}";}a:3:{s:5:"local";a:1:{s:7:"filters";s:3:"img";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Imagem";i:2;i:1;}s:2:"en";a:1:{i:1;s:5:"Image";}}}s:4:"html";s:655:"[scope(`img`){]#r#n#r#n#r#n[text $description]#r#n#r#n#r#n[}]";}a:3:{s:5:"local";a:1:{s:7:"filters";s:3:"img";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"Miniatura";i:2;i:1;}s:2:"en";a:1:{i:1;s:9:"Thumbnail";}}}s:4:"html";s:728:"[scope(`img`){]#r#n#r#n#r#n[if($url){ ``; nl; }]#r#n[text $description]#r#n[if($url){ ``nl; }]#r#n#r#n#r#n[}";}a:3:{s:5:"local";a:1:{s:7:"filters";s:16:"description#r#nimg";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:41:"Miniatura à esquerda + título + descrição";i:2;i:1;}s:2:"en";a:1:{i:1;s:36:"Left thumbnail + title + description";}}}s:4:"html";s:1293:"
      #r#n[scope(`img`){]#r#n
      #r#n#r#n#r#n[if($url){ ``; nl; }]#r#n[text $description]#r#n[if($url){ ``nl; }]#r#n
      #r#n
      #r#n#r#n[}]#r#n
      #r#n[if $url{]#r#n[text $title]#r#n#r#n[}else{]#r#n[text $title]#r#n[}#r#nif($description or $editable){]#r#n[text $description]

      #r#n[}]#r#n
      #r#n#r#n";}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"Visualizações";i:2;i:1;}s:2:"en";a:1:{i:1;s:5:"Views";}}}s:4:"html";s:60:"[if $hits{]

      [$hits] [text:field_hits]

      #r#n[}";}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:19:"Por (nome do autor)";i:2;i:1;}s:2:"en";a:1:{i:1;s:16:"By (author name)";}}}s:4:"html";s:146:"[scope(`user`, $owner_id){]#r#n

      [text:field_info_by] [if $url{][text $caption][}else{ text($caption); }]

      #r#n[}";}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:16:"Criado em (data)";i:2;i:1;}s:2:"en";a:1:{i:1;s:17:"Created at (date)";}}}s:4:"html";s:97:"[scope(`date`, $created){]#r#n

      [text:field_info_posted] [text:date_formated]

      #r#n[}";}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:23:"Criado em (data e hora)";i:2;i:1;}s:2:"en";a:1:{i:1;s:26:"Created at (date and time)";}}}s:4:"html";s:108:"[scope(`date`, $created){]#r#n

      [text:field_info_posted] [text:date_formated], [$h]h[$i]

      #r#n[}";}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:28:"Postado há (tempo decorrido)";i:2;i:1;}s:2:"en";a:1:{i:1;s:21:"Posted (elapsed time)";}}}s:4:"html";s:75:"[scope(`date_elapsed`, $created){]#r#n

      [text $elapsed]

      #r#n[}";}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:20:"Atualizado em (data)";i:2;i:1;}s:2:"en";a:1:{i:1;s:17:"Updated at (date)";}}}s:4:"html";s:108:"[scope(`date`, $updated, $created){]#r#n

      [text:field_info_updated] [text:date_formated]

      #r#n[}";}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:10:"Categorias";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"Categories";}}}s:4:"html";s:141:"[scope(`categories`){list{loop{]#r#n
      #r#n[text]#r#n[list{loop{]#r#n[text]#r#n[}}]#r#n
      #r#n[}}}#r#n";}a:3:{s:5:"local";a:1:{s:7:"filters";s:8:"keywords";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:14:"Palavras-chave";i:2;i:1;}s:2:"en";a:1:{i:1;s:8:"Keywords";}}}s:4:"html";s:143:"[scope(`keywords`){]#r#n
      #r#n[text:field_keywords]#r#n[list{loop{]#r#n[text]#r#n[}}]#r#n
      #r#n[}]#r#n";}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:11:"Localização";i:2;i:1;}s:2:"en";a:1:{i:1;s:8:"Location";}}}s:4:"html";s:169:"[scope(`location`){]#r#n
      #r#n[text:field_location]#r#n[list{loop{#r#nif(!$first){ `→`; }]#r#n[text]#r#n[}}]#r#n
      #r#n[}]#r#n";}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:30:"Localização (caminho completo)";i:2;i:1;}s:2:"en";a:1:{i:1;s:23:"Location (full pathway)";}}}s:4:"html";s:173:"[scope(`locationFull`){]#r#n
      #r#n[text:field_location]#r#n[list{loop{#r#nif(!$first){ `→`; }]#r#n[text]#r#n[}}]#r#n
      #r#n[}]#r#n";}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:22:"Localização (em linha)";i:2;i:1;}s:2:"en";a:1:{i:1;s:17:"Location (inline)";}}}s:4:"html";s:150:"[scope(`location`){]#r#n

      [text:field_location_at]#r#n[list{loop{#r#nif(!$first){ `→`; }]#r#n[text]#r#n[}}]#r#n

      #r#n[}]#r#n";}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:40:"Player Audima - Lê o artigo desta página";i:2;i:1;}s:2:"en";a:1:{i:1;s:31:"Audima Player - Reads this page";}}}s:4:"html";s:120:"[scope(`audima`){]#r#n
      #r#n#r#n[}]";}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:27:"Áudio (Reproduzir e Baixar)";i:2;i:1;}s:2:"en";a:1:{i:1;s:25:"Audio (Play and Download)";}}}s:4:"html";s:504:"[scope(`audio`){]#r#n
      #r#n[if $editable {]#r#n[text:field_media_add_audio]#r#n[}else{]#r#n#r#n[$play] [text:field_media_plays]#r#n[text:action_download]#r#n[$downloads] [text:field_media_downloads]#r#n[}]#r#n
      #r#n[}]";}a:3:{s:5:"local";a:1:{s:7:"filters";s:8:"mediaBox";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:25:"Caixa de destaque do post";i:2;i:1;}s:2:"en";a:1:{i:1;s:18:"Post spotlight box";}}}s:4:"html";s:7:"[box:0]";}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:16:"Arquivo (Baixar)";i:2;i:1;}s:2:"en";a:1:{i:1;s:15:"File (Download)";}}}s:4:"html";s:321:"[scope(`file`){]#r#n
      #r#n[if $editable {]#r#n[text:field_media_add_file]#r#n[}else{]#r#n
      [$filename]
      #r#n[text:action_download]#r#n[$downloads] [text:field_media_downloads]#r#n[}]#r#n
      #r#n[}]";}a:3:{s:5:"local";a:1:{s:7:"filters";s:9:"mediaFont";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:22:"Fonte (exibir família)";i:2;i:1;}s:2:"en";a:1:{i:1;s:21:"Font (display family)";}}}s:4:"html";s:2607:"[scope(`fonts`){]#r#n
      #r#n[if($regular-url){]#r#n[style]#r#n@font-face {#r#nfont-family:[$font-family];#r#nsrc:[$font-stack-start]url("[$regular-url]") format("[$regular-format]");#r#n}#r#n[/style]#r#n

      [text:detail_font_regular]

      #r#n

      [text $demonstration]

      #r#n[}]#r#n[if($italic-url){]#r#n[style]#r#n@font-face {#r#nfont-family:[$font-family];#r#nsrc:[$font-stack-start]url("[$italic-url]") format("[$italic-format]");#r#nfont-weight:normal;#r#nfont-style:italic;#r#n}#r#n[/style]#r#n

      [text:detail_font_italic]

      #r#n

      [text $demonstration]

      #r#n[}]#r#n[if($bold-url){]#r#n[style]#r#n@font-face {#r#nfont-family:[$font-family];#r#nsrc:[$font-stack-start]url("[$bold-url]") format("[$bold-format]");#r#nfont-weight:bold;#r#nfont-style:normal;#r#n}#r#n[/style]#r#n

      [text:detail_font_bold]

      #r#n

      [text $demonstration]

      #r#n[}]#r#n[if($bold-italic-url){]#r#n[style]#r#n@font-face {#r#nfont-family:[$font-family];#r#nsrc:[$font-stack-start]url("[$bold-italic-url]") format("[$bold-italic-format]");#r#nfont-weight:bold;#r#nfont-style:italic;#r#n}#r#n[/style]#r#n

      [text:detail_font_bold_italic]

      #r#n

      [text $demonstration]

      #r#n[}]#r#n#r#n[if($add){]#r#n[text:detail_font_favorite_add]#r#n[}elseif($remove){]#r#n[text:detail_font_favorite_remove]#r#n[}]#r#n#r#n#r#n
      #r#n[}]";}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:18:"Vídeo (Reproduzir)";i:2;i:1;}s:2:"en";a:1:{i:1;s:12:"Video (Play)";}}}s:4:"html";s:210:"[scope(`video`){]#r#n
      #r#n[if $editable {]#r#n[text:field_media_add_video]#r#n[}else{]#r#n#r#n[$plays] [text:detail_plays]#r#n[}]#r#n
      #r#n[}]";}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:39:"Informações sobre o carrinho de compras";i:2;i:1;}s:2:"en";a:1:{i:1;s:36:"Informations about the shopping cart";}}}s:4:"html";s:1289:"#r#n[text][if($url){] [text:field_cart_go]
      [}]#r#n[if($timer_on){]#r#n
      #r#n[cut:script]#r#n#r#ncartTimer = [$timer];#r#n#r#nfunction cartStatus (){#r#nvar status = document.getElementById ("[$mod.name]_status");#r#n#r#nif (cartTimer < 1){#r#nwindow.location = "[$url_timeout]";#r#n}else if (cartTimer <= 10){#r#nstatus.innerHTML = cartTimer + " Segundos restantes";#r#ncartTimer --;#r#nwindow.setTimeout (cartStatus, 1000);#r#n}else if (cartTimer < 60 && cartTimer % 10){#r#nstatus.innerHTML = cartTimer + " Segundos restantes";#r#nwindow.setTimeout (cartStatus, (cartTimer % 10) * 1000);#r#ncartTimer -= (cartTimer % 10);#r#n}else if (cartTimer <= 60){#r#nstatus.innerHTML = cartTimer + " Segundos restantes";#r#ncartTimer -= 10;#r#nwindow.setTimeout (cartStatus, 10000);#r#n}else if (cartTimer % 60){#r#nvar dif = cartTimer % 60;#r#nvar rounded = (60 + cartTimer) - dif;#r#nstatus.innerHTML = (rounded / 60) + " Minutos restantes";#r#nwindow.setTimeout (cartStatus, (cartTimer % 60) * 1000);#r#ncartTimer -= (cartTimer % 60);#r#n}else{#r#nstatus.innerHTML = (cartTimer / 60) + " Minutos restantes";#r#ncartTimer -= 60;#r#nwindow.setTimeout (cartStatus, 60000);#r#n}#r#n}#r#n#r#nwindow.addEventListener ("load", cartStatus);#r#n[/cut]#r#n[}]#r#n";}a:3:{s:5:"local";a:1:{s:7:"filters";s:7:"product";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:29:"Preço (Adicionar ao carrinho)";i:2;i:1;}s:2:"en";a:1:{i:1;s:19:"Price (Add to cart)";}}}s:4:"html";s:362:"[scope (`cart`){]#r#n
      #r#n#r#n
      #r#n[$document.currency_symbol][$product_price]#r#n#r#n#r#n
      #r#n
      #r#n[}]";}a:1:{s:4:"html";s:63:"
      #r#n[list{ loop{]#r#n[text]#r#n[}}]#r#n
      ";}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:14:"Título nível 1";i:2;i:1;}s:2:"en";a:1:{i:1;s:8:"Header 1";}}}s:4:"html";s:397:"[if($url){ ``; nl; }#r#nif(!$url and $editable){ `

      `; text($title); `

      `; nl; }#r#nelse { ``; text($title); ``; nl; }#r#nif($url){ `
      `; nl; }";}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:14:"Título nível 2";i:2;i:1;}s:2:"en";a:1:{i:1;s:8:"Header 2";}}}s:4:"html";s:120:"[if($url){ ``; nl; }#r#n``; text($title); ``; nl;#r#nif($url){ ``; nl; }";}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:14:"Título nível 3";i:2;i:1;}s:2:"en";a:1:{i:1;s:8:"Header 3";}}}s:4:"html";s:120:"[if($url){ ``; nl; }#r#n``; text($title); ``; nl;#r#nif($url){ ``; nl; }";}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:14:"Título nível 4";i:2;i:1;}s:2:"en";a:1:{i:1;s:8:"Header 4";}}}s:4:"html";s:402:"[if($url){ ``; nl; }#r#nif(!$url and $editable){ `

      `; text($title); `

      `; nl; }#r#nelse { ``; text($title); ``; nl; }#r#nif($url){ `
      `; nl; }";}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:14:"Título nível 5";i:2;i:1;}s:2:"en";a:1:{i:1;s:8:"Header 5";}}}s:4:"html";s:402:"[if($url){ ``; nl; }#r#nif(!$url and $editable){ `
      `; text($title); `
      `; nl; }#r#nelse { ``; text($title); ``; nl; }#r#nif($url){ `
      `; nl; }";}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:14:"Título nível 6";i:2;i:1;}s:2:"en";a:1:{i:1;s:8:"Header 6";}}}s:4:"html";s:402:"[if($url){ ``; nl; }#r#nif(!$url and $editable){ `
      `; text($title); `
      `; nl; }#r#nelse { ``; text($title); ``; nl; }#r#nif($url){ `
      `; nl; }";}a:3:{s:5:"local";a:1:{s:7:"filters";s:7:"address";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Endereço";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Address";}}}s:4:"html";s:1921:"
      #r#n#r#n
      #r#n#r#n#r#n#r#n#r#n#r#n
      #r#n[if($help){ `
      `; help; `
      `; nl; }]#r#n
      #r#n#r#n#r#n
      #r#n
      #r#n#r#n#r#n#r#n#r#n
      #r#n
      #r#n#r#n#r#n
      #r#n
      #r#n#r#n#r#n
      #r#n";}a:3:{s:5:"local";a:1:{s:7:"filters";s:7:"address";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:55:"Endereço com preenchimento automático por CEP no Brasil";i:2;i:1;}s:2:"en";a:1:{i:1;s:33:"Address with Brazil CEP auto fill";}}}s:4:"html";s:2509:"
      #r#n#r#n#r#n
      #r#n
      #r#n
      #r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n
      #r#n#r#n#r#n#r#n
      #r#n#r#n#r#n#r#n#r#n#r#n
      #r#n#r#n#r#n
      #r#n
      #r#n[cut:script buscacep]#r#nfunction buscacep (name, cep){#r#nif (cep.length != 8)#r#nreturn;#r#n#r#nvar request = new XMLHttpRequest();#r#nrequest.onreadystatechange = function() {#r#nif (this.readyState == 4 && this.status == 200) {#r#nvar fields = JSON.parse(this.responseText);#r#ndocument.getElementById ("[$name]_street").value = fields.logradouro;#r#ndocument.getElementById ("[$name]_district").value = fields.bairro;#r#ndocument.getElementById ("[$name]_city").value = fields.localidade;#r#ndocument.getElementById ("[$name]_state").value = fields.uf;#r#ndocument.getElementById ("[$name]_country").value = "Brasil";#r#n}#r#n}#r#nrequest.open("GET", "https://viacep.com.br/ws/" + cep + "/json/", true);#r#nrequest.send(); #r#n#r#n}#r#n[/cut]#r#n";}a:3:{s:5:"local";a:1:{s:7:"filters";s:8:"checkbox";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:20:"Caixa de verificação";i:2;i:1;}s:2:"en";a:1:{i:1;s:9:"Check box";}}}s:4:"html";s:332:"
      #r#n#r#n#r#n[if($help){ `
      `; help; `
      `; nl; }]#r#n
      #r#n";}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:31:"Caixas de verificação em árvore";i:2;i:1;}s:2:"en";a:1:{i:1;s:19:"Check boxes in tree";}}}s:4:"html";s:1555:"[cut:script checkbox_tree]#r#nfunction changeCheckboxVisibility (name)#r#n{#r#nname += "_sublevel";#r#nvar control = document.getElementById(name);#r#ncontrol.hidden = !control.hidden;#r#n} // change checkbox visibility#r#n#r#nfunction changeCheckboxTree (name)#r#n{ // change checkboxTree#r#nvar checked = document.getElementById (name).checked;#r#nalert (checked);#r#nvar checkboxList = checkboxTree[]name];#r#nalert (checkboxList.length);#r#nfor(var i= 0; i < checkboxList.length; i++)#r#n{ // loop checkboxes#r#nvar chName = checkboxList[]i];#r#nvar checkbox = document.getElementById (chName);#r#ncheckbox.checked = checked;#r#n} // loop checkboxes#r#n} // change checkboxTree#r#n#r#n#r#n[/cut]#r#n
      #r#n#r#n#r#n[if($help){ `
      `; help; `
      `; nl; }]#r#n
      #r#n#r#n";}a:3:{s:5:"local";a:1:{s:7:"filters";s:11:"descriptive";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:32:"Inserção de conteúdo explicativo";i:2;i:1;}s:2:"en";a:1:{i:1;s:28:"Explaining content insertion";}}}s:4:"html";s:53:"
      #r#n[text $content]#r#n
      #r#n";}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:25:"Finalização do formulário";i:2;i:1;}s:2:"en";a:1:{i:1;s:16:"Formulary ending";}}}s:4:"html";s:107:"#r#n[list{loop{]#r#n#r#n[}}]#r#n
      #r#n#r#n";}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:17:"Envio de arquivos";i:2;i:1;}s:2:"en";a:1:{i:1;s:12:"File sending";}}}s:4:"html";s:333:"
      #r#n#r#n#r#n[if($help){ `
      `; help; `
      `; nl; }]#r#n
      #r#n";}a:3:{s:5:"local";a:1:{s:7:"filters";s:6:"select";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:15:"Lista de opções";i:2;i:1;}s:2:"en";a:1:{i:1;s:12:"Options list";}}}s:4:"html";s:403:"
      #r#n#r#n#r#n[if($help){ `
      `; help; `
      `; nl; }]#r#n
      #r#n";}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:20:"Gerenciador de itens";i:2;i:1;}s:2:"en";a:1:{i:1;s:13:"Itens manager";}}}s:4:"html";s:6710:"
      #r#n#r#n[if($help){ `
      `; help; `
      `; nl; }]#r#n
      "#r#n#r#n#r#n
      #r#n#r#n[if($move-enable){]#r#n#r#n[text:action_move_up]#r#n#r#n#r#n#r#n[text:action_move_down]#r#n#r#n[}if($url_add){]#r#n#r#n[text:action_add]#r#n#r#n[}if($remove-enable){]#r#n#r#n[text:action_remove]#r#n#r#n[}if($edit-enable){]#r#n#r#n[text:action_edit]#r#n#r#n[}]#r#n
      #r#n
      #r#n[cut:script manager]#r#n#r#nfunction listManagerClass()#r#n{ // listManagerClass#r#nthis.name = false;#r#n#r#nthis.moveUp = function (name)#r#n{ // moveUp#r#nthis.name = name;#r#nvar select = document.getElementById (name);#r#nif (select.selectedIndex > 0)#r#n{ // can move#r#nvar index = select.selectedIndex;#r#nvar value = select.value;#r#nvar text = select.options[]index].text;#r#nvar url = select.options[]index].dataset.url;#r#nselect.options[]index] = select.options[]index - 1];#r#nvar option = document.createElement("option");#r#noption.setAttribute ("value", value);#r#noption.text = text;#r#noption.dataset.url = url;#r#nselect.add (option, index - 1);#r#nselect.selectedIndex = index - 1;#r#n#r#nthis.serialize();#r#n} // can move#r#n} // moveUp#r#n#r#nthis.moveDown = function (name)#r#n{ // moveDown#r#nthis.name = name;#r#nvar select = document.getElementById (name);#r#nif (select.selectedIndex >= 0 && select.selectedIndex < select.length - 1)#r#n{ // can move#r#nvar index = select.selectedIndex;#r#nvar value = select.value;#r#nvar text = select.options[]index].text;#r#nvar url = select.options[]index].dataset.url;#r#nselect.options[]index] = select.options[]index + 1];#r#nvar option = document.createElement("option");#r#noption.setAttribute ("value", value);#r#noption.text = text;#r#noption.dataset.url = url;#r#nselect.add (option, index + 1);#r#nselect.selectedIndex = index + 1;#r#n#r#nthis.serialize();#r#n} // can move#r#n} // moveDown#r#n#r#nthis.add = function (name, url)#r#n{ // add#r#nthis.name = name;#r#n#r#nvar left = (screen.width) ? (screen.width-400)/2 : 200;#r#nvar top = (screen.height) ? (screen.height-600)/2 : 25;#r#nwindow.open (url, "", "width=400,height=600,top=" + top + ",left=" + left);#r#n} // add#r#n#r#nthis.remove = function (name)#r#n{ // remove#r#nthis.name = name;#r#nvar select = document.getElementById (name);#r#nif (select.selectedIndex >= 0)#r#n{ // can remove#r#nvar index = select.selectedIndex;#r#nif (select.options[]index].dataset.remove && select.options[]index].dataset.remove.length)#r#n{ // remove request#r#nvar request = new XMLHttpRequest();#r#nrequest.mySelect = select;#r#nrequest.myIndex = index;#r#nrequest.myName = name;#r#nrequest.onreadystatechange = function() {#r#nif (this.readyState == 4 && this.status == 200) {#r#nalert (this.responseText);#r#nvar select = this.mySelect;#r#nvar index = this.myIndex;#r#nvar name = this.myName;#r#nselect.remove (index);#r#nif (select.length)#r#n{ // focus new item#r#nif (index < select.length)#r#nselect.selectedIndex = index;#r#nelse#r#nselect.selectedIndex = select.length - 1;#r#n} // focus new item#r#nlistManager.name = name;#r#nlistManager.serialize();#r#n#r#n}#r#n}#r#nrequest.open(select.options[]index].dataset.remove, true);#r#nrequest.send(); #r#nreturn;#r#n} // remove request#r#nselect.remove (index);#r#nif (select.length)#r#n{ // focus new item#r#nif (index < select.length)#r#nselect.selectedIndex = index;#r#nelse#r#nselect.selectedIndex = select.length - 1;#r#n} // focus new item#r#nthis.serialize();#r#n} // can remove#r#n} // remove#r#n#r#nthis.edit = function (name)#r#n{ // edit#r#nthis.name = name;#r#nvar select = document.getElementById (name);#r#nif (select.selectedIndex >= 0)#r#n{ // selected#r#nvar url = select.options[]select.selectedIndex].dataset.url;#r#nif (!url || !url.length)#r#nreturn;#r#n#r#nvar left = (screen.width) ? (screen.width-400)/2 : 200;#r#nvar top = (screen.height) ? (screen.height-600)/2 : 25;#r#nwindow.open (url, "", "width=400,height=600,top=" + top + ",left=" + left);#r#n} // selected#r#n} // edit#r#n#r#nthis.append = function (value, text, url="")#r#n{ // append#r#nif(!this.name)#r#nreturn;#r#n#r#nvar select = document.getElementById (this.name);#r#nvar option = document.createElement("option");#r#noption.setAttribute ("value", value);#r#noption.text = text;#r#noption.dataset.url = url;#r#nselect.add (option);#r#n#r#nselect.selectedIndex = select.length - 1;#r#nselect.focus();#r#nthis.serialize();#r#n} // append#r#n#r#nthis.update = function (oldValue, newValue, newText, newUrl)#r#n{ // update#r#nif(!this.name)#r#nreturn;#r#n#r#nvar select = document.getElementById (this.name);#r#nfor (var index in select.options)#r#n{ // each option#r#nif (select.options[]index].value == oldValue)#r#n{ // found#r#nif (newValue.length)#r#n{ // update#r#nvar option = select.options[]index];#r#noption.value = newValue;#r#noption.text = newText;#r#noption.dataset.url = newUrl;#r#nselect.selectedIndex = index;#r#nselect.focus();#r#nthis.serialize();#r#nreturn;#r#n} // update#r#nelse#r#n{ // remove#r#nselect.remove (index);#r#nthis.serialize();#r#nreturn;#r#n} // remove#r#n} // found#r#n} // each option#r#n#r#nthis.append (newValue, newText, newUrl);#r#n} // update#r#n#r#nthis.serialize = function ()#r#n{ // serialize#r#nvar buffer = "";#r#nvar select = document.getElementById (this.name);#r#nfor (var i = 0; i < select.length; i++)#r#n{ // each element#r#nbuffer += select.options[]i].value + "#er#en";#r#n} // each element#r#ndocument.getElementById (this.name + "_serialized").value = buffer;#r#n} // serialize#r#n#r#n} // listManagerClass#r#n#r#nlistManager = new listManagerClass();#r#n[/cut]#r#n";}a:3:{s:5:"local";a:1:{s:7:"filters";s:5:"phone";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Telefone";i:2;i:1;}s:2:"en";a:1:{i:1;s:5:"Phone";}}}s:4:"html";s:811:"
      #r#n#r#n
      #r#n#r#n#r#n#r#n#r#n#r#n
      #r#n[if($help){ `
      `; help; `
      `; nl; }]#r#n";}a:3:{s:5:"local";a:1:{s:7:"filters";s:5:"radio";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:15:"Botões de rádio";i:2;i:1;}s:2:"en";a:1:{i:1;s:13:"Radio buttons";}}}s:4:"html";s:306:"#r#n
      #r#n[text]#r#n[list{ loop{]#r#n
      #r#n[}}]#r#n
      #r#n";}a:3:{s:5:"local";a:1:{s:7:"filters";s:7:"numeric";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:18:"Seletor deslizante";i:2;i:1;}s:2:"en";a:1:{i:1;s:16:"Sliding selector";}}}s:4:"html";s:342:"
      #r#n#r#n#r#n[if($help){ `
      `; help; `
      `; nl; }]#r#n
      #r#n";}a:3:{s:5:"local";a:1:{s:7:"filters";s:6:"select";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:16:"Caixa de seleção";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"Select box";}}}s:4:"html";s:413:"
      #r#n#r#n#r#n[if($help){ `
      `; help; `
      `; nl; }]#r#n
      #r#n";}a:3:{s:5:"local";a:1:{s:7:"filters";s:9:"separator";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"Separador";i:2;i:1;}s:2:"en";a:1:{i:1;s:9:"Separator";}}}s:4:"html";s:6:"
      #r#n";}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:27:"Inicialização do formulário";i:2;i:1;}s:2:"en";a:1:{i:1;s:16:"Formulary ending";}}}s:4:"html";s:646:"
      #r#n[if($roneypot){]#r#n#r#n#r#n[cut:footerscript]#r#ndocument.getElementById ("[$prefix]_command_password").value = "[$password]";#r#n[/cut]#r#n#r#n[}]#r#n
      #r#n";}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:19:"Botões de submissão";i:2;i:1;}s:2:"en";a:1:{i:1;s:18:"Submission buttons";}}}s:4:"html";s:464:"
      #r#n
      #r#n
      #r#n[list{ loop{]#r#n[if $reset{]#r#n#r#n[}elseif $onclick{]#r#n#r#n[}else{]#r#n#r#n[}#r#n}}]#r#n
      #r#n
      #r#n";}a:3:{s:5:"local";a:1:{s:7:"filters";s:10:"mail#r#ntext";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:16:"Entrada de texto";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"Text input";}}}s:4:"html";s:340:"
      #r#n#r#n#r#n[if($help){ `
      `; help; `
      `; nl; }]#r#n
      #r#n";}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:16:"Entrada de senha";i:2;i:1;}s:2:"en";a:1:{i:1;s:14:"Password input";}}}s:4:"html";s:347:"
      #r#n#r#n#r#n[if($help){ `
      `; help; `
      `; nl; }]#r#n
      #r#n";}a:3:{s:5:"local";a:1:{s:7:"filters";s:19:"mail#r#nnumeric#r#ntext";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:24:"Entrada de texto pequena";i:2;i:1;}s:2:"en";a:1:{i:1;s:16:"Small text input";}}}s:4:"html";s:343:"
      #r#n#r#n#r#n[if($help){ `
      `; help; `
      `; nl; }]#r#n
      #r#n";}a:3:{s:5:"local";a:1:{s:7:"filters";s:13:"numeric#r#ntext";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:26:"Entrada de texto minúscula";i:2;i:1;}s:2:"en";a:1:{i:1;s:15:"Tiny text input";}}}s:4:"html";s:360:"
      #r#n#r#n
      #r#n#r#n
      #r#n[if($help){ `
      `; help; `
      `; nl; }]#r#n
      #r#n";}a:3:{s:5:"local";a:1:{s:7:"filters";s:8:"textarea";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:24:"Área de texto multilinha";i:2;i:1;}s:2:"en";a:1:{i:1;s:8:"Textarea";}}}s:4:"html";s:344:"
      #r#n#r#n#r#n[if($help){ `
      `; help; `
      `; nl; }]#r#n
      #r#n";}a:3:{s:5:"local";a:1:{s:7:"filters";s:8:"textarea";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:31:"Área de texto multilinha grande";i:2;i:1;}s:2:"en";a:1:{i:1;s:12:"Big textarea";}}}s:4:"html";s:337:"#r#n#r#n[if($help){ `
      `; help; `
      `; nl; }]#r#n#r#n#r#n#r#n#r#n";}a:3:{s:5:"local";a:1:{s:7:"filters";s:8:"textarea";}s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:32:"Área de texto multilinha pequena";i:2;i:1;}s:2:"en";a:1:{i:1;s:14:"Small textarea";}}}s:4:"html";s:344:"
      #r#n#r#n#r#n[if($help){ `
      `; help; `
      `; nl; }]#r#n
      #r#n";}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:18:"Ver valor do campo";i:2;i:1;}s:2:"en";a:1:{i:1;s:16:"View field value";}}}s:4:"html";s:224:"
      #r#n
      [text]
      #r#n
      #r#n[if($url){#r#n``; text($content); ``; nl;#r#n}else{#r#ntext($content);#r#n}]#r#n
      #r#n
      #r#n";}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:31:"Finalizar caixa de vizualização";i:2;i:1;}s:2:"en";a:1:{i:1;s:12:"View box end";}}}s:4:"html";s:8:"
      #r#n";}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:29:"Iniciar caixa de visualização";i:2;i:1;}s:2:"en";a:1:{i:1;s:14:"View box start";}}}s:4:"html";s:56:"
      #r#n";}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"en";a:1:{i:1;s:5:"Arial";}}}s:5:"local";a:1:{s:10:"font-stack";s:49:"Arial, "Helvetica Neue", Helvetica, sans-serif";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"en";a:1:{i:1;s:12:"Book Antiqua";}}}s:5:"local";a:1:{s:10:"font-stack";s:65:""Book Antiqua", "Big Caslon", "Palatino Linotype", Georgia, serif";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"en";a:1:{i:1;s:14:"Century Gothic";}}}s:5:"local";a:2:{s:9:"font-face";s:25:"/* Angelo escreve aqui */";s:10:"font-stack";s:56:""Century Gothic", CenturyGothic, AppleGothic, sans-serif";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"en";a:1:{i:1;s:8:"Consolas";}}}s:5:"local";a:1:{s:10:"font-stack";s:212:"Consolas, "Andale Mono WT", "Andale Mono", "Lucida Console", "Lucida Sans Typewriter", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Liberation Mono", "Nimbus Mono L", Monaco, "Courier New", Courier, monospace";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"en";a:1:{i:1;s:11:"Courier New";}}}s:5:"local";a:1:{s:10:"font-stack";s:80:""Courier New", Courier, "Lucida Sans Typewriter", "Lucida Typewriter", monospace";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"en";a:1:{i:1;s:14:"Helvetica Neue";}}}s:5:"local";a:1:{s:10:"font-stack";s:54:""Helvetica Neue", Helvetica, Roboto, Arial, sans-serif";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"en";a:1:{i:1;s:15:"Times New Roman";}}}s:5:"local";a:1:{s:10:"font-stack";s:68:"TimesNewRoman, "Times New Roman", Times, Baskerville, Georgia, serif";}}a:3:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:1:{i:1;s:9:"Adicionar";}s:2:"en";a:1:{i:1;s:3:"Add";}}}s:5:"local";a:1:{s:5:"wd-sm";i:16;}s:4:"html";s:76:"#r#n";}a:3:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:1:{i:1;s:10:"Configurar";}s:2:"en";a:1:{i:1;s:9:"Configure";}}}s:5:"local";a:1:{s:5:"wd-sm";i:16;}s:4:"html";s:97:"#r#n";}a:3:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:1:{i:1;s:7:"Remover";}s:2:"en";a:1:{i:1;s:6:"Remove";}}}s:5:"local";a:1:{s:5:"wd-sm";i:16;}s:4:"html";s:42:"#r#n";}a:3:{s:4:"text";a:0:{}s:5:"local";a:1:{s:5:"wd-sm";i:800;}s:4:"html";s:1100:"#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n";}a:3:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:1:{i:1;s:4:"Menu";}s:2:"en";a:1:{i:1;s:4:"Menu";}}}s:5:"local";a:1:{s:5:"wd-sm";i:8;}s:4:"html";s:120:"#r#n#r#n#r#n";}a:3:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:1:{i:1;s:11:"Seta abaixo";}s:2:"en";a:1:{i:1;s:10:"Down arrow";}}}s:5:"local";a:1:{s:5:"wd-sm";i:10;}s:4:"html";s:68:"#r#n";}a:3:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:1:{i:1;s:14:"Seta à direita";}s:2:"en";a:1:{i:1;s:11:"Right arrow";}}}s:5:"local";a:1:{s:5:"wd-sm";i:10;}s:4:"html";s:69:"#r#n";}a:3:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:1:{i:1;s:14:"Seta à direita";}s:2:"en";a:1:{i:1;s:11:"Right arrow";}}}s:5:"local";a:1:{s:5:"wd-sm";i:10;}s:4:"html";s:69:"#r#n";}a:3:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:1:{i:1;s:10:"Seta acima";}s:2:"en";a:1:{i:1;s:8:"Up arrow";}}}s:5:"local";a:1:{s:5:"wd-sm";i:10;}s:4:"html";s:69:"#r#n";}a:3:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:1:{i:1;s:8:"Quadrado";}s:2:"en";a:1:{i:1;s:6:"Square";}}}s:5:"local";a:1:{s:5:"wd-sm";i:8;}s:4:"html";s:40:"#r#n";}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"Adicionar";i:2;i:1;}s:2:"en";a:1:{i:1;s:3:"Add";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"Responder";i:2;i:1;}s:2:"en";a:1:{i:1;s:6:"Answer";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Voltar";i:2;i:1;}s:2:"en";a:2:{i:1;s:4:"Back";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Cancelar";i:2;i:1;}s:2:"en";a:2:{i:1;s:6:"Cancel";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Escolher";i:2;i:1;}s:2:"en";a:2:{i:1;s:6:"Choose";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Limpar";i:2;i:1;}s:2:"en";a:2:{i:1;s:5:"Clear";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Fechar";i:2;i:1;}s:2:"en";a:1:{i:1;s:5:"Close";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:10:"Configurar";i:2;i:1;}s:2:"en";a:2:{i:1;s:9:"Configure";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"Confirmar";i:2;i:1;}s:2:"en";a:2:{i:1;s:7:"Confirm";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:11:"Conectar-se";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Connect";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:5:"Criar";i:2;i:1;}s:2:"en";a:1:{i:1;s:6:"Create";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Baixar";i:2;i:1;}s:2:"en";a:1:{i:1;s:8:"Download";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Editar";i:2;i:1;}s:2:"en";a:1:{i:1;s:4:"Edit";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Concluir";i:2;i:1;}s:2:"en";a:2:{i:1;s:6:"Finish";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:2:"Ir";i:2;i:1;}s:2:"en";a:2:{i:1;s:2:"Go";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:16:"Mover para baixo";i:2;i:1;}s:2:"en";a:1:{i:1;s:9:"Move down";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:19:"Mover para esquerda";i:2;i:1;}s:2:"en";a:1:{i:1;s:9:"Move left";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:18:"Mover para direita";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"Move right";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"Mover para...";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"Move to...";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:15:"Mover para cima";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Move up";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:7:"Avançar";i:2;i:1;}s:2:"en";a:1:{i:1;s:4:"Next";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:2:"Ok";i:2;i:1;}s:2:"en";a:1:{i:1;s:2:"Ok";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Pausar";i:2;i:1;}s:2:"en";a:1:{i:1;s:5:"Pause";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:10:"Reproduzir";i:2;i:1;}s:2:"en";a:1:{i:1;s:4:"Play";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:10:"Retroceder";i:2;i:1;}s:2:"en";a:1:{i:1;s:8:"Previous";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:7:"Refazer";i:2;i:1;}s:2:"en";a:1:{i:1;s:4:"Redo";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:7:"Remover";i:2;i:1;}s:2:"en";a:1:{i:1;s:6:"Remove";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:14:"Remover objeto";i:2;i:1;}s:2:"en";a:1:{i:1;s:13:"Remove object";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:31:"Restaurar configuração original";i:2;i:1;}s:2:"en";a:1:{i:1;s:30:"Restore original configuration";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Salvar";i:2;i:1;}s:2:"en";a:1:{i:1;s:4:"Save";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Enviar";i:2;i:1;}s:2:"en";a:1:{i:1;s:6:"Submit";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Desfazer";i:2;i:1;}s:2:"en";a:1:{i:1;s:4:"Undo";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"Atualizar";i:2;i:1;}s:2:"en";a:1:{i:1;s:6:"Update";}}}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:27:"United Arab Emirates dirham";}}}s:5:"local";a:1:{s:6:"symbol";s:31:"&#cx2f;&#cx62e;&#cx27;&#cx655;&#cx6;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:12:"Lek albanês";}}}s:5:"local";a:1:{s:6:"symbol";s:6:"&#cx4c;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:30:"Guilder de Netherland Antilhas";}}}s:5:"local";a:1:{s:6:"symbol";s:23:"&#cx4e;&#cx41;&#cx92;&#cx1;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:14:"Peso argentino";}}}s:5:"local";a:1:{s:6:"symbol";s:6:"&#cx24;";}}a:1:{s:5:"local";a:1:{s:6:"symbol";s:6:"&#cx24;";}}a:1:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:18:"Dólar australiano";}}}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:12:"Aruba Florin";}}}s:5:"local";a:1:{s:6:"symbol";s:11:"&#cx92;&#cx1;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:18:"Dólar de Barbados";}}}s:5:"local";a:1:{s:6:"symbol";s:18:"&#cx42;&#cx42;&#cx44;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:18:"Taka de Bangladesh";}}}s:5:"local";a:1:{s:6:"symbol";s:12:"&#cx54;&#cx6b;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:12:"Lev búlgaro";}}}s:5:"local";a:1:{s:6:"symbol";s:18:"&#cx3b;&#cx432;&#cx4;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:16:"Dinar do Bahrein";}}}s:5:"local";a:1:{s:6:"symbol";s:30:"&#cx2e;&#cx2f;&#cx62e;&#cx28;&#cx6;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:18:"Franco de Burundi ";}}}s:5:"local";a:1:{s:6:"symbol";s:18:"&#cx46;&#cx42;&#cx75;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:19:"Dólar das Bermudas";}}}s:5:"local";a:1:{s:6:"symbol";s:18:"&#cx42;&#cx44;&#cx24;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:16:"Dólar de Brunei";}}}s:5:"local";a:1:{s:6:"symbol";s:12:"&#cx42;&#cx24;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:18:"Boliviano Bolivian";}}}s:5:"local";a:1:{s:6:"symbol";s:12:"&#cx42;&#cx73;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:15:"Real brasileiro";}}}s:5:"local";a:1:{s:6:"symbol";s:12:"&#cx52;&#cx24;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:18:"Dólar das Bahamas";}}}s:5:"local";a:1:{s:6:"symbol";s:12:"&#cx42;&#cx24;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:18:"Ngultrum do Butão";}}}s:5:"local";a:1:{s:6:"symbol";s:18:"&#cx4e;&#cx75;&#cx2e;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:13:"Botswana Pula";}}}s:5:"local";a:1:{s:6:"symbol";s:6:"&#cx50;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:13:"Belarus Ruble";}}}s:5:"local";a:1:{s:6:"symbol";s:12:"&#cx42;&#cx72;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:16:"Dólar de Belize";}}}s:5:"local";a:1:{s:6:"symbol";s:18:"&#cx42;&#cx5a;&#cx24;";}}a:1:{s:5:"local";a:1:{s:6:"symbol";s:12:"&#cx43;&#cx24;";}}a:1:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:16:"Dólar canadense";}}}}a:1:{s:5:"local";a:1:{s:6:"symbol";s:18:"&#cx43;&#cx48;&#cx46;";}}a:1:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:14:"Franco suíço";}}}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:12:"Peso chileno";}}}s:5:"local";a:1:{s:6:"symbol";s:6:"&#cx24;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:12:"Yuan Chinês";}}}s:5:"local";a:1:{s:6:"symbol";s:6:"&#cxa5;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:15:"Peso colombiano";}}}s:5:"local";a:1:{s:6:"symbol";s:6:"&#cx24;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:17:"Cólon Costa Rica";}}}s:5:"local";a:1:{s:6:"symbol";s:12:"&#cxa1;&#cx20;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:11:"Peso cubano";}}}s:5:"local";a:1:{s:6:"symbol";s:18:"&#cx24;&#cx4d;&#cx4e;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:20:"Escudo cabo-verdiano";}}}s:5:"local";a:1:{s:6:"symbol";s:18:"&#cx45;&#cx73;&#cx63;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:23:"Coroa República Tcheca";}}}s:5:"local";a:1:{s:6:"symbol";s:24:"&#cx4b;&#cx63;&#cxc;&#cx320;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:18:"Franco djiboutiano";}}}s:5:"local";a:1:{s:6:"symbol";s:18:"&#cx46;&#cx64;&#cx6a;";}}a:1:{s:5:"local";a:1:{s:6:"symbol";s:12:"&#cx6b;&#cx72;";}}a:1:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:18:"Coroa dinamarquesa";}}}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:15:"Peso dominicano";}}}s:5:"local";a:1:{s:6:"symbol";s:18:"&#cx52;&#cx44;&#cx24;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:14:"Dinar argelino";}}}s:5:"local";a:1:{s:6:"symbol";s:18:"&#cx2f;&#cx62c;&#cx6;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:14:"Coroa Estônia";}}}s:5:"local";a:1:{s:6:"symbol";s:18:"&#cx45;&#cx45;&#cx4b;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:14:"Libra egípcia";}}}s:5:"local";a:1:{s:6:"symbol";s:24:"&#cx2c;&#cx62e;&#cx45;&#cx6;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:12:"Birr Etíope";}}}s:5:"local";a:1:{s:6:"symbol";s:12:"&#cx42;&#cx72;";}}a:1:{s:5:"local";a:1:{s:6:"symbol";s:12:"&#cxac;&#cx20;";}}a:1:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:4:"Euro";}}}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:14:"Dólar de Fiji";}}}s:5:"local";a:1:{s:6:"symbol";s:18:"&#cx46;&#cx4a;&#cx24;";}}a:1:{s:5:"local";a:1:{s:6:"symbol";s:6:"&#cxa3;";}}a:1:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:18:"Libra das Malvinas";}}}}a:1:{s:5:"local";a:1:{s:6:"symbol";s:6:"&#cxa3;";}}a:1:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:15:"Libra Esterlina";}}}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:9:"Cedi Gana";}}}s:5:"local";a:1:{s:6:"symbol";s:18:"&#cx47;&#cx48;&#cx53;";}}a:1:{s:5:"local";a:1:{s:6:"symbol";s:6:"&#cx44;";}}a:1:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:14:"Dalasi Gâmbia";}}}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:16:"Franco guineense";}}}s:5:"local";a:1:{s:6:"symbol";s:12:"&#cx46;&#cx47;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:17:"Quetzal Guatemala";}}}s:5:"local";a:1:{s:6:"symbol";s:6:"&#cx51;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:16:"Dólar guianense";}}}s:5:"local";a:1:{s:6:"symbol";s:18:"&#cx47;&#cx59;&#cx24;";}}a:1:{s:5:"local";a:1:{s:6:"symbol";s:18:"&#cx48;&#cx4b;&#cx24;";}}a:1:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:19:"Dólar de Hong Kong";}}}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:16:"Lempira Honduras";}}}s:5:"local";a:1:{s:6:"symbol";s:6:"&#cx4c;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:14:"Coroa Croácia";}}}s:5:"local";a:1:{s:6:"symbol";s:12:"&#cx6b;&#cx6e;";}}a:1:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:12:"Haiti Gourde";}}}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:15:"Florim húngaro";}}}s:5:"local";a:1:{s:6:"symbol";s:12:"&#cx46;&#cx74;";}}a:1:{s:5:"local";a:1:{s:6:"symbol";s:12:"&#cx52;&#cx70;";}}a:1:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:16:"Rupia indonésia";}}}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:22:"Novo shekel israelense";}}}s:5:"local";a:1:{s:6:"symbol";s:12:"&#cxaa;&#cx20;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:13:"Rupia indiana";}}}s:5:"local";a:1:{s:6:"symbol";s:18:"&#cx52;&#cx73;&#cx2e;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:15:"Dinar iraquiano";}}}s:5:"local";a:1:{s:6:"symbol";s:24:"&#cx39;&#cx62e;&#cx2f;&#cx6;";}}a:1:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:14:"Rial iraniano ";}}}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:15:"Coroa Islândia";}}}s:5:"local";a:1:{s:6:"symbol";s:12:"&#cx6b;&#cx72;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:16:"Dinar jordaniano";}}}s:5:"local";a:1:{s:6:"symbol";s:18:"&#cx4a;&#cx4f;&#cx44;";}}a:1:{s:5:"local";a:1:{s:6:"symbol";s:6:"&#cxa5;";}}a:1:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:13:"Iene japonês";}}}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:14:"Xelim queniano";}}}s:5:"local";a:1:{s:6:"symbol";s:18:"&#cx4b;&#cx53;&#cx68;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:12:"Som quirguiz";}}}s:5:"local";a:1:{s:6:"symbol";s:18:"&#cx4b;&#cx47;&#cx53;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:12:"Camboja Riel";}}}s:5:"local";a:1:{s:6:"symbol";s:18:"&#cx4b;&#cx48;&#cx52;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:16:"Franco comorense";}}}s:5:"local";a:1:{s:6:"symbol";s:18:"&#cx4b;&#cx4d;&#cx46;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:17:"Won norte-coreano";}}}s:5:"local";a:1:{s:6:"symbol";s:12:"&#cxa9;&#cx20;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:15:"Won sul-coreano";}}}s:5:"local";a:1:{s:6:"symbol";s:12:"&#cxa9;&#cx20;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:16:"Dinar kuwaitiano";}}}s:5:"local";a:1:{s:6:"symbol";s:24:"&#cx2f;&#cx62e;&#cx43;&#cx6;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:18:"Dólar das Caimans";}}}s:5:"local";a:1:{s:6:"symbol";s:6:"&#cx24;";}}a:1:{s:5:"local";a:1:{s:6:"symbol";s:18:"&#cx4b;&#cx5a;&#cx54;";}}a:1:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:18:"Tenge Cazaquistão";}}}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:18:"Rupia do Sri Lanka";}}}s:5:"local";a:1:{s:6:"symbol";s:18:"&#cxb0;&#cxbc2;&#cxb;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:17:"Dirham marroquino";}}}s:5:"local";a:1:{s:6:"symbol";s:26:"&#cx2f;&#cx62e;&#cx45;&#cx62e;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:13:"Leu moldávio";}}}s:5:"local";a:1:{s:6:"symbol";s:18:"&#cx4d;&#cx44;&#cx4c;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:16:"Dinar macedónio";}}}s:5:"local";a:1:{s:6:"symbol";s:18:"&#cx4d;&#cx4b;&#cx44;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:13:"Quiat Myanmar";}}}s:5:"local";a:1:{s:6:"symbol";s:6:"&#cx4b;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:23:"Togrog/Tugrik Mongólia";}}}s:5:"local";a:1:{s:6:"symbol";s:12:"&#cxae;&#cx20;";}}a:1:{s:5:"local";a:1:{s:6:"symbol";s:6:"&#cx24;";}}a:1:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:12:"Pataca Macau";}}}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:19:"Mauritânia Ougulya";}}}s:5:"local";a:1:{s:6:"symbol";s:12:"&#cx55;&#cx4d;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:19:"Rúpia da Maurícia";}}}s:5:"local";a:1:{s:6:"symbol";s:12:"&#cxa8;&#cx20;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:16:"Rupia maldívia ";}}}s:5:"local";a:1:{s:6:"symbol";s:12:"&#cx52;&#cx66;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:16:"Kwacha malawiana";}}}s:5:"local";a:1:{s:6:"symbol";s:12:"&#cx4d;&#cx4b;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:13:"Peso mexicano";}}}s:5:"local";a:1:{s:6:"symbol";s:6:"&#cx24;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:16:"Malásia Ringgit";}}}s:5:"local";a:1:{s:6:"symbol";s:12:"&#cx52;&#cx4d;";}}a:1:{s:5:"local";a:1:{s:6:"symbol";s:12:"&#cx4e;&#cx24;";}}a:1:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:16:"Dólar namibiano";}}}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:14:"Naira Nigéria";}}}s:5:"local";a:1:{s:6:"symbol";s:12:"&#cxa6;&#cx20;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:19:"Córdoba Nicarágua";}}}s:5:"local";a:1:{s:6:"symbol";s:12:"&#cx43;&#cx24;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:13:"Coroa Noruega";}}}s:5:"local";a:1:{s:6:"symbol";s:12:"&#cx6b;&#cx72;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:14:"Rupia nepalesa";}}}s:5:"local";a:1:{s:6:"symbol";s:12:"&#cxa8;&#cx20;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:24:"Dólar da Nova Zelândia";}}}s:5:"local";a:1:{s:6:"symbol";s:6:"&#cx24;";}}a:1:{s:5:"local";a:1:{s:6:"symbol";s:26:"&#cx31;&#cx62e;&#cx39;&#cx62e;";}}a:1:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:10:"Omani Rial";}}}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:14:"Balboa Panamá";}}}s:5:"local";a:1:{s:6:"symbol";s:6:"&#cx42;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:8:"Sol novo";}}}s:5:"local";a:1:{s:6:"symbol";s:18:"&#cx53;&#cx2f;&#cx2e;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:22:"Kina Papua-Nova Guiné";}}}s:5:"local";a:1:{s:6:"symbol";s:6:"&#cx4b;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:13:"Peso filipino";}}}s:5:"local";a:1:{s:6:"symbol";s:12:"&#cxb1;&#cx20;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:16:"Rupia Paquistão";}}}s:5:"local";a:1:{s:6:"symbol";s:18:"&#cx52;&#cx73;&#cx2e;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:15:"ZÅ‚oty Polónia";}}}s:5:"local";a:1:{s:6:"symbol";s:17:"&#cx7a;&#cx42;&#cx1;";}}a:1:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:17:"Guarani Paraguaio";}}}}a:1:{s:5:"local";a:1:{s:6:"symbol";s:24:"&#cx31;&#cx62e;&#cx42;&#cx6;";}}a:1:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:13:"Rial do Qatar";}}}}a:1:{s:5:"local";a:1:{s:6:"symbol";s:6:"&#cx4c;";}}a:1:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:10:"Leu romeno";}}}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:11:"Rublo russo";}}}s:5:"local";a:1:{s:6:"symbol";s:25:"&#cx40;&#cx443;&#cx431;&#cx4;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:15:"Franco ruandês";}}}s:5:"local";a:1:{s:6:"symbol";s:12:"&#cx52;&#cx46;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:21:"Riyal Arábia Saudita";}}}s:5:"local";a:1:{s:6:"symbol";s:24:"&#cx31;&#cx62e;&#cx33;&#cx6;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:25:"Dólar das Ilhas Salomão";}}}s:5:"local";a:1:{s:6:"symbol";s:18:"&#cx53;&#cx49;&#cx24;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:20:"Rúpia de Seychelles";}}}s:5:"local";a:1:{s:6:"symbol";s:12:"&#cx53;&#cx52;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:14:"Dinar sudanês";}}}s:5:"local";a:1:{s:6:"symbol";s:18:"&#cx53;&#cx44;&#cx47;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:13:"Coroa Suécia";}}}s:5:"local";a:1:{s:6:"symbol";s:12:"&#cx6b;&#cx72;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:19:"Dólar de Singapura";}}}s:5:"local";a:1:{s:6:"symbol";s:12:"&#cx53;&#cx24;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:21:"Libra de Santa Helena";}}}s:5:"local";a:1:{s:6:"symbol";s:6:"&#cxa3;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:17:"Coroa Eslováquia";}}}s:5:"local";a:1:{s:6:"symbol";s:12:"&#cx53;&#cx6b;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:19:"leone de Serra Leoa";}}}s:5:"local";a:1:{s:6:"symbol";s:12:"&#cx4c;&#cx65;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:15:"Chelin Somália";}}}s:5:"local";a:1:{s:6:"symbol";s:18:"&#cx53;&#cx6f;&#cx2e;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:16:"São Tomé Dobra";}}}s:5:"local";a:1:{s:6:"symbol";s:12:"&#cx44;&#cx62;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:18:"Cólon El Salvador";}}}s:5:"local";a:1:{s:6:"symbol";s:12:"&#cxa1;&#cx20;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:12:"Libra síria";}}}s:5:"local";a:1:{s:6:"symbol";s:18:"&#cx53;&#cx59;&#cx50;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:15:"Lilangeni suazi";}}}s:5:"local";a:1:{s:6:"symbol";s:18:"&#cx53;&#cx5a;&#cx4c;";}}a:1:{s:5:"local";a:1:{s:6:"symbol";s:11:"&#cx3f;&#cxe;";}}a:1:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:15:"Baht Tailândia";}}}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:11:"Dinar Tunez";}}}s:5:"local";a:1:{s:6:"symbol";s:24:"&#cx2f;&#cx62e;&#cx2a;&#cx6;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:15:"Tongan paÊ»anga";}}}s:5:"local";a:1:{s:6:"symbol";s:12:"&#cx54;&#cx24;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:10:"Lira turca";}}}s:5:"local";a:1:{s:6:"symbol";s:18:"&#cx59;&#cx54;&#cx4c;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:27:"Dólar de Trinidad e Tobago";}}}s:5:"local";a:1:{s:6:"symbol";s:18:"&#cx54;&#cx54;&#cx44;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:16:"Dólar de Taiwan";}}}s:5:"local";a:1:{s:6:"symbol";s:18:"&#cx4e;&#cx54;&#cx24;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:16:"Chelin Tanzânia";}}}s:5:"local";a:1:{s:6:"symbol";s:6:"&#cx78;";}}a:1:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:16:"Hryvnia Ucrânia";}}}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:13:"Chelin Uganda";}}}s:5:"local";a:1:{s:6:"symbol";s:18:"&#cx55;&#cx53;&#cx68;";}}a:1:{s:5:"local";a:1:{s:6:"symbol";s:3:"US$";}}a:1:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:25:"Dólar dos Estados Unidos";}}}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:13:"Peso uruguaio";}}}s:5:"local";a:1:{s:6:"symbol";s:18:"&#cx55;&#cx59;&#cx55;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:12:"Som uzbeque ";}}}s:5:"local";a:1:{s:6:"symbol";s:18:"&#cx55;&#cx5a;&#cx53;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:20:"Bolívar venezuelano";}}}s:5:"local";a:1:{s:6:"symbol";s:18:"&#cx56;&#cx45;&#cx46;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:13:"Dong Vietname";}}}s:5:"local";a:1:{s:6:"symbol";s:12:"&#cxab;&#cx20;";}}a:1:{s:5:"local";a:1:{s:6:"symbol";s:12:"&#cx56;&#cx74;";}}a:1:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:12:"Vatu Vanuatu";}}}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:10:"Tala Samoa";}}}s:5:"local";a:1:{s:6:"symbol";s:18:"&#cx57;&#cx53;&#cx24;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:17:"Franco CFA (BEAC)";}}}s:5:"local";a:1:{s:6:"symbol";s:24:"&#cx42;&#cx45;&#cx41;&#cx43;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:25:"Dólar do Caribe Oriental";}}}s:5:"local";a:1:{s:6:"symbol";s:18:"&#cx45;&#cx43;&#cx24;";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:18:"Franco CFA (BCEAO)";}}}s:5:"local";a:1:{s:6:"symbol";s:30:"&#cx42;&#cx43;&#cx45;&#cx41;&#cx4f;";}}a:1:{s:5:"local";a:1:{s:6:"symbol";s:6:"&#cx46;";}}a:1:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:16:"Pacífico Franco";}}}}a:1:{s:5:"local";a:1:{s:6:"symbol";s:18:"&#cx59;&#cx45;&#cx52;";}}a:1:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:13:"Rial iemenita";}}}}a:2:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:19:"Rand Ã�frica do Sul";}}}s:5:"local";a:1:{s:6:"symbol";s:6:"&#cx52;";}}a:1:{s:5:"local";a:1:{s:6:"symbol";s:18:"&#cx5a;&#cx4d;&#cx4b;";}}a:1:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"pt";a:1:{i:1;s:15:"Kwacha zambiana";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:3:"Dia";i:2;i:1;}s:2:"en";a:1:{i:1;s:3:"Day";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:10:"Dias atrás";i:2;i:1;}s:2:"en";a:1:{i:1;s:8:"Days ago";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"Postado ontem";i:2;i:1;}s:2:"en";a:1:{i:1;s:17:" Posted yesterday";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:17:"Postado há 1 hora";i:2;i:1;}s:2:"en";a:1:{i:1;s:18:" Posted 1 hour ago";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:19:"Postado há 1 minuto";i:2;i:1;}s:2:"en";a:1:{i:1;s:20:" Posted 1 minute ago";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:16:"Postado há 1 mês";i:2;i:1;}s:2:"en";a:1:{i:1;s:19:" Posted 1 month ago";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:16:"Postado há 1 ano";i:2;i:1;}s:2:"en";a:1:{i:1;s:18:" Posted 1 year ago";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:3:{i:1;s:20:"Postado há [$d] dias";i:2;i:1;i:6;i:1;}s:2:"en";a:2:{i:1;s:21:" Posted [$d] days ago";i:6;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:3:{i:1;s:21:"Postado há [$h] horas";i:2;i:1;i:6;i:1;}s:2:"en";a:2:{i:1;s:22:" Posted [$h] hours ago";i:6;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:3:{i:1;s:23:"Postado há [$i] minutos";i:2;i:1;i:6;i:1;}s:2:"en";a:2:{i:1;s:24:" Posted [$i] minutes ago";i:6;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:3:{i:1;s:21:"Postado há [$m] meses";i:2;i:1;i:6;i:1;}s:2:"en";a:2:{i:1;s:23:" Posted [$m] months ago";i:6;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"Postado agora";i:2;i:1;}s:2:"en";a:1:{i:1;s:11:" Posted now";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:3:{i:1;s:20:"Postado há [$y] anos";i:2;i:1;i:6;i:1;}s:2:"en";a:2:{i:1;s:22:" Posted [$y] years ago";i:6;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:3:{i:1;s:29:"[$d] de [text $month] de [$y]";i:2;i:1;i:6;i:1;}s:2:"en";a:3:{i:1;s:39:"[text $month] [$d][$th] [$y]";i:5;i:2;i:6;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:5:"Horas";i:2;i:1;}s:2:"en";a:1:{i:1;s:5:"Hours";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:5:"Horas";i:2;i:1;}s:2:"en";a:1:{i:1;s:5:"Hours";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:11:"Horas atrás";i:2;i:1;}s:2:"en";a:1:{i:1;s:9:"Hours ago";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:7:"Minutos";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Minutes";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"Minutos atrás";i:2;i:1;}s:2:"en";a:1:{i:1;s:11:"Minutes ago";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:3:"Mês";i:2;i:1;}s:2:"en";a:1:{i:1;s:5:"Month";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:3:"Jan";i:2;i:1;}s:2:"en";a:1:{i:1;s:3:"Jan";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:3:"Out";i:2;i:1;}s:2:"en";a:1:{i:1;s:3:"Oct";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:3:"Nov";i:2;i:1;}s:2:"en";a:1:{i:1;s:3:"Nov";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:3:"Dez";i:2;i:1;}s:2:"en";a:1:{i:1;s:3:"Dec";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:3:"Fev";i:2;i:1;}s:2:"en";a:1:{i:1;s:3:"Feb";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:3:"Mar";i:2;i:1;}s:2:"en";a:1:{i:1;s:3:"Mar";}}}}a:1:{s:4:"text";a:2:{s:7:"caption";a:1:{s:2:"pt";a:2:{i:1;s:3:"Abr";i:2;i:1;}}s:2:"en";a:1:{i:1;s:3:"Apr";}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:3:"Mai";i:2;i:1;}s:2:"en";a:1:{i:1;s:3:"May";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:3:"Jun";i:2;i:1;}s:2:"en";a:1:{i:1;s:3:"Jun";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:3:"Jul";i:2;i:1;}s:2:"en";a:1:{i:1;s:3:"Jul";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:3:"Ago";i:2;i:1;}s:2:"en";a:1:{i:1;s:3:"Aug";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:3:"Set";i:2;i:1;}s:2:"en";a:1:{i:1;s:3:"Sep";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:7:"Janeiro";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"January";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:7:"Outubro";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"October";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Novembro";i:2;i:1;}s:2:"en";a:1:{i:1;s:8:"November";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Dezembro";i:2;i:1;}s:2:"en";a:1:{i:1;s:8:"December";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"Fevereiro";i:2;i:1;}s:2:"en";a:1:{i:1;s:8:"February";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:5:"Março";i:2;i:1;}s:2:"en";a:1:{i:1;s:5:"March";}}}}a:1:{s:4:"text";a:2:{s:7:"caption";a:1:{s:2:"pt";a:2:{i:1;s:5:"Abril";i:2;i:1;}}s:2:"en";a:1:{i:1;s:5:"April";}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:4:"Maio";i:2;i:1;}s:2:"en";a:1:{i:1;s:3:"May";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:5:"Junho";i:2;i:1;}s:2:"en";a:1:{i:1;s:4:"June";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:5:"Julho";i:2;i:1;}s:2:"en";a:1:{i:1;s:4:"July";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Agosto";i:2;i:1;}s:2:"en";a:1:{i:1;s:6:"August";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Setembro";i:2;i:1;}s:2:"en";a:1:{i:1;s:9:"September";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Segundos";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Seconds";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:3:"Seg";i:2;i:1;}s:2:"en";a:1:{i:1;s:3:"Mon";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:3:"Ter";i:2;i:1;}s:2:"en";a:1:{i:1;s:3:"Tue";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:3:"Qua";i:2;i:1;}s:2:"en";a:1:{i:1;s:3:"Wed";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:3:"Qui";i:2;i:1;}s:2:"en";a:1:{i:1;s:3:"Thu";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:3:"Sex";i:2;i:1;}s:2:"en";a:1:{i:1;s:3:"Fri";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:3:"Sab";i:2;i:1;}s:2:"en";a:1:{i:1;s:3:"Sat";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:3:"Dom";i:2;i:1;}s:2:"en";a:1:{i:1;s:3:"Sun";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:3:"Ano";i:2;i:1;}s:2:"en";a:1:{i:1;s:4:"Year";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:5:"ontem";i:2;i:1;}s:2:"en";a:1:{i:1;s:9:"yesterday";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Endereço";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Address";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Cidade";i:2;i:1;}s:2:"en";a:1:{i:1;s:4:"City";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:11:"Complemento";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"Complement";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:4:"País";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Country";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Bairro";i:2;i:1;}s:2:"en";a:1:{i:1;s:8:"District";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Número";i:2;i:1;}s:2:"en";a:1:{i:1;s:6:"Number";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:3:"CEP";i:2;i:1;}s:2:"en";a:1:{i:1;s:11:"Postal code";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Estado";i:2;i:1;}s:2:"en";a:1:{i:1;s:5:"State";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:3:"Rua";i:2;i:1;}s:2:"en";a:1:{i:1;s:6:"Street";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:23:"Não preencha este campo";i:2;i:1;}s:2:"en";a:1:{i:1;s:21:"Keep this field empty";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:21:"Adicionar ao carrinho";i:2;i:1;}s:2:"en";a:1:{i:1;s:11:"Add to cart";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:18:"Adicionar à sacola";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"Add to bag";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:10:"Ver pedido";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"View order";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:4:"Item";i:2;i:1;}s:2:"en";a:1:{i:1;s:4:"Item";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:5:"Itens";i:2;i:1;}s:2:"en";a:1:{i:1;s:5:"Items";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:10:"Categorias";i:2;i:1;}s:2:"en";a:2:{i:1;s:10:"Categories";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:10:"Comentário";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Comment";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Conteúdo";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Content";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"Descrição";i:2;i:1;}s:2:"en";a:1:{i:1;s:11:"Description";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:5:"Pasta";i:2;i:1;}s:2:"en";a:2:{i:1;s:6:"Folder";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"Visualizações";i:2;i:1;}s:2:"en";a:1:{i:1;s:5:"Views";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:3:"Por";i:2;i:1;}s:2:"en";a:1:{i:1;s:2:"By";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:10:"Postado em";i:2;i:1;}s:2:"en";a:1:{i:1;s:9:"Posted at";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"Atualizado em";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"Updated at";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:14:"Palavras-chave";i:2;i:1;}s:2:"en";a:2:{i:1;s:8:"Keywords";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:5:"Local";i:2;i:1;}s:2:"en";a:1:{i:1;s:8:"Location";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Na seção";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"At section";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:15:"Adicionar áudio";i:2;i:1;}s:2:"en";a:1:{i:1;s:9:"Add audio";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:17:"Adicionar arquivo";i:2;i:1;}s:2:"en";a:1:{i:1;s:8:"Add file";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:15:"Adicionar vídeo";i:2;i:1;}s:2:"en";a:1:{i:1;s:9:"Add video";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:19:"Reprodução contínua";i:2;i:1;}s:2:"en";a:1:{i:1;s:18:"Continuous playing";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"Downloads";i:2;i:1;}s:2:"en";a:1:{i:1;s:9:"Downloads";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:11:"Reproduções";i:2;i:1;}s:2:"en";a:1:{i:1;s:5:"Plays";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Telefone";i:2;i:1;}s:2:"en";a:2:{i:1;s:5:"Phone";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:4:"Área";i:2;i:1;}s:2:"en";a:2:{i:1;s:9:"Area code";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:4:"País";i:2;i:1;}s:2:"en";a:2:{i:1;s:7:"Country";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Número";i:2;i:1;}s:2:"en";a:2:{i:1;s:6:"Number";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Título";i:2;i:1;}s:2:"en";a:2:{i:1;s:5:"Title";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"Identificador";i:2;i:1;}s:2:"en";a:2:{i:1;s:10:"Identifier";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:5:"Senha";i:2;i:1;}s:2:"en";a:1:{i:1;s:8:"Password";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"Repetir senha";i:2;i:1;}s:2:"en";a:1:{i:1;s:15:"Repeat password";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:4:"Afar";}s:2:"en";a:1:{i:1;s:4:"Afar";}s:2:"aa";a:1:{i:1;s:4:"Afar";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:9:"Abkhazian";}s:2:"en";a:1:{i:1;s:9:"Abkhazian";}s:2:"ab";a:1:{i:1;s:10:"Ð�Ò§Ñ�уа";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:9:"Avéstico";}s:2:"en";a:1:{i:1;s:7:"Avestan";}s:2:"ae";a:1:{i:1;s:6:"Avesta";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:10:"Africâner";}s:2:"en";a:1:{i:1;s:9:"Afrikaans";}s:2:"af";a:1:{i:1;s:9:"Afrikaans";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:4:"Akan";}s:2:"en";a:1:{i:1;s:4:"Akan";}s:2:"ak";a:1:{i:1;s:5:"Akana";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:8:"Amárico";}s:2:"en";a:1:{i:1;s:7:"Amharic";}s:2:"am";a:1:{i:1;s:12:"አማርኛ";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:9:"Aragonês";}s:2:"en";a:1:{i:1;s:9:"Aragonese";}s:2:"an";a:1:{i:1;s:9:"Aragonés";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:6:"Ã�rabe";}s:2:"en";a:1:{i:1;s:6:"Arabic";}s:2:"ar";a:1:{i:1;s:14:"العربية";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:8:"Assamês";}s:2:"en";a:1:{i:1;s:8:"Assamese";}s:2:"as";a:1:{i:1;s:21:"অসমীয়া";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:8:"Avárico";}s:2:"en";a:1:{i:1;s:6:"Avaric";}s:2:"av";a:1:{i:1;s:8:"авар";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:7:"Aimará";}s:2:"en";a:1:{i:1;s:6:"Aymara";}s:2:"ay";a:1:{i:1;s:5:"Aymar";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:11:"Azerbaijano";}s:2:"en";a:1:{i:1;s:11:"Azerbaijani";}s:2:"az";a:1:{i:1;s:11:"AzÉ™rbaycan";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:7:"Bashkir";}s:2:"en";a:1:{i:1;s:7:"Bashkir";}s:2:"ba";a:1:{i:1;s:14:"Башҡорт";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:11:"Bielo-russo";}s:2:"en";a:1:{i:1;s:10:"Belarusian";}s:2:"be";a:1:{i:1;s:20:"беларуÑ�каÑ�";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:8:"Búlgaro";}s:2:"en";a:1:{i:1;s:9:"Bulgarian";}s:2:"bg";a:1:{i:1;s:18:"българÑ�ки";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:8:"Maithili";}s:2:"en";a:1:{i:1;s:8:"Maithili";}s:2:"bh";a:1:{i:1;s:18:"मैथिली";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:9:"Bichlamar";}s:2:"en";a:1:{i:1;s:7:"Bislama";}s:2:"bi";a:1:{i:1;s:7:"Bislama";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:8:"Bâmbara";}s:2:"en";a:1:{i:1;s:7:"Bambara";}s:2:"bm";a:1:{i:1;s:10:"Bamanankan";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:7:"Bengali";}s:2:"en";a:1:{i:1;s:7:"Bengali";}s:2:"bn";a:1:{i:1;s:15:"বাংলা";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:8:"Tibetano";}s:2:"en";a:1:{i:1;s:7:"Tibetan";}s:2:"bo";a:1:{i:1;s:21:"བོད་ཡིག";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:7:"Bretão";}s:2:"en";a:1:{i:1;s:6:"Breton";}s:2:"br";a:1:{i:1;s:9:"Brezhoneg";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:7:"Bósnio";}s:2:"en";a:1:{i:1;s:7:"Bosnian";}s:2:"bs";a:1:{i:1;s:8:"Bosanski";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:8:"Catalão";}s:2:"en";a:1:{i:1;s:7:"Catalan";}s:2:"ca";a:1:{i:1;s:7:"Català";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:8:"Checheno";}s:2:"en";a:1:{i:1;s:7:"Chechen";}s:2:"ce";a:1:{i:1;s:14:"нохчийн";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:8:"Chamorro";}s:2:"en";a:1:{i:1;s:8:"Chamorro";}s:2:"ch";a:1:{i:1;s:7:"Chamoru";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:5:"Corso";}s:2:"en";a:1:{i:1;s:8:"Corsican";}s:2:"co";a:1:{i:1;s:5:"Corsu";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:4:"Cree";}s:2:"en";a:1:{i:1;s:4:"Cree";}s:2:"cr";a:1:{i:1;s:15:"á“€á�¦á�ƒá”­á�¤";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:6:"Tcheco";}s:2:"en";a:1:{i:1;s:5:"Czech";}s:2:"cs";a:1:{i:1;s:6:"Ä�esky";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:13:"Eslavo antigo";}s:2:"en";a:1:{i:1;s:13:"Church Slavic";}s:2:"cu";a:1:{i:1;s:31:"ѩзыкъ Ñ�ловѣньÑ�къ";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:9:"Tchuvache";}s:2:"en";a:1:{i:1;s:7:"Chuvash";}s:2:"cv";a:1:{i:1;s:10:"Чӑваш";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:6:"Galês";}s:2:"en";a:1:{i:1;s:5:"Welsh";}s:2:"cy";a:1:{i:1;s:7:"Cymraeg";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:12:"Dinamarquês";}s:2:"en";a:1:{i:1;s:6:"Danish";}s:2:"da";a:1:{i:1;s:5:"Dansk";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:7:"Alemão";}s:2:"en";a:1:{i:1;s:6:"German";}s:2:"de";a:1:{i:1;s:7:"Deutsch";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:9:"Maldívio";}s:2:"en";a:1:{i:1;s:7:"Dhivehi";}s:2:"dv";a:1:{i:1;s:20:"Þ‹Þ¨ÞˆÞ¬Þ€Þ¨Þ„Þ¦Þ�Þ°";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:6:"Zoncá";}s:2:"en";a:1:{i:1;s:8:"Dzongkha";}s:2:"dz";a:1:{i:1;s:15:"ཇོང་à½�";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:5:"Éwé";}s:2:"en";a:1:{i:1;s:3:"Ewe";}s:2:"ee";a:1:{i:1;s:6:"Æ�ʋɛ";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:6:"Grêgo";}s:2:"en";a:1:{i:1;s:5:"Greek";}s:2:"el";a:1:{i:1;s:16:"Ελληνικά";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Inglês";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"English";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:9:"Esperanto";}s:2:"en";a:1:{i:1;s:9:"Esperanto";}s:2:"eo";a:1:{i:1;s:9:"Esperanto";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:8:"Espanhol";}s:2:"en";a:1:{i:1;s:7:"Spanish";}s:2:"es";a:1:{i:1;s:8:"Español";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:9:"Estoniano";}s:2:"en";a:1:{i:1;s:8:"Estonian";}s:2:"et";a:1:{i:1;s:5:"Eesti";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:5:"Basco";}s:2:"en";a:1:{i:1;s:6:"Basque";}s:2:"eu";a:1:{i:1;s:7:"Euskara";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:5:"Persa";}s:2:"en";a:1:{i:1;s:7:"Persian";}s:2:"fa";a:1:{i:1;s:10:"Ù�ارسی";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:4:"Fula";}s:2:"en";a:1:{i:1;s:5:"Fulah";}s:2:"ff";a:1:{i:1;s:8:"Fulfulde";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:10:"Finlandês";}s:2:"en";a:1:{i:1;s:7:"Finnish";}s:2:"fi";a:1:{i:1;s:5:"Suomi";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:8:"Fidjiano";}s:2:"en";a:1:{i:1;s:6:"Fijian";}s:2:"fj";a:1:{i:1;s:16:"Na vosa Vakaviti";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:7:"Feroês";}s:2:"en";a:1:{i:1;s:7:"Faroese";}s:2:"fo";a:1:{i:1;s:9:"føroyskt";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:8:"Francês";}s:2:"en";a:1:{i:1;s:6:"French";}s:2:"fr";a:1:{i:1;s:9:"Français";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:7:"Frísio";}s:2:"en";a:1:{i:1;s:7:"Frisian";}s:2:"fy";a:1:{i:1;s:5:"Frysk";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:9:"Irlandês";}s:2:"en";a:1:{i:1;s:5:"Irish";}s:2:"ga";a:1:{i:1;s:7:"Gaeilge";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:17:"Gaélico escocês";}s:2:"en";a:1:{i:1;s:6:"Gaelic";}s:2:"gd";a:1:{i:1;s:9:"Gàidhlig";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:6:"Galego";}s:2:"en";a:1:{i:1;s:8:"Galician";}s:2:"gl";a:1:{i:1;s:6:"Galego";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:7:"Guarani";}s:2:"en";a:1:{i:1;s:7:"Guarani";}s:2:"gn";a:1:{i:1;s:10:"Avañe`ẽ";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:8:"Guzerate";}s:2:"en";a:1:{i:1;s:8:"Gujarati";}s:2:"gu";a:1:{i:1;s:21:"ગà«�જરાતી";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:6:"Manês";}s:2:"en";a:1:{i:1;s:4:"Manx";}s:2:"gv";a:1:{i:1;s:5:"Gaelg";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:7:"Haúça";}s:2:"en";a:1:{i:1;s:5:"Hausa";}s:2:"ha";a:1:{i:1;s:14:"حَوْسََ";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:8:"Hebraico";}s:2:"en";a:1:{i:1;s:6:"Hebrew";}s:2:"he";a:1:{i:1;s:16:"עִבְרִית";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:6:"Híndi";}s:2:"en";a:1:{i:1;s:5:"Hindi";}s:2:"hi";a:1:{i:1;s:18:"हिनà¥�दी";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:9:"Hiri Motu";}s:2:"en";a:1:{i:1;s:9:"Hiri Motu";}s:2:"ho";a:1:{i:1;s:9:"Hiri Motu";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:6:"Croata";}s:2:"en";a:1:{i:1;s:8:"Croatian";}s:2:"hr";a:1:{i:1;s:8:"Hrvatski";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:16:"Crioulo haitiano";}s:2:"en";a:1:{i:1;s:14:"Haitian Creole";}s:2:"ht";a:1:{i:1;s:15:"Kreyòl ayisyen";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:8:"Húngaro";}s:2:"en";a:1:{i:1;s:9:"Hungarian";}s:2:"hu";a:1:{i:1;s:6:"Magyar";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:8:"Armênio";}s:2:"en";a:1:{i:1;s:8:"Armenian";}s:2:"hy";a:1:{i:1;s:14:"Õ€Õ¡ÕµÕ¥Ö€Õ¥Õ¶";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:7:"Hereró";}s:2:"en";a:1:{i:1;s:6:"Herero";}s:2:"hz";a:1:{i:1;s:10:"Otjiherero";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:12:"Interlíngua";}s:2:"en";a:1:{i:1;s:11:"Interlingua";}s:2:"ia";a:1:{i:1;s:11:"Interlingua";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:10:"Indonésio";}s:2:"en";a:1:{i:1;s:10:"Indonesian";}s:2:"id";a:1:{i:1;s:16:"Bahasa Indonesia";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:12:"Interlíngue";}s:2:"en";a:1:{i:1;s:11:"Interlingue";}s:2:"ie";a:1:{i:1;s:11:"Interlingue";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:3:"Ibo";}s:2:"en";a:1:{i:1;s:4:"Igbo";}s:2:"ig";a:1:{i:1;s:4:"Igbo";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:10:"Yi Sichuan";}s:2:"en";a:1:{i:1;s:10:"Yi Sichuan";}s:2:"ii";a:1:{i:1;s:6:"ꆇꉙ";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:7:"Inupiaq";}s:2:"en";a:1:{i:1;s:7:"Inupiaq";}s:2:"ik";a:1:{i:1;s:8:"Iñupiaq";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"Indonésio";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"Indonesian";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:3:"Ido";}s:2:"en";a:1:{i:1;s:3:"ido";}s:2:"io";a:1:{i:1;s:3:"Ido";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:9:"Islandês";}s:2:"en";a:1:{i:1;s:9:"Icelandic";}s:2:"is";a:1:{i:1;s:9:"Ã�slenska";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:8:"Italiano";}s:2:"en";a:1:{i:1;s:7:"Italian";}s:2:"it";a:1:{i:1;s:8:"Italiano";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:9:"Inuktitut";}s:2:"en";a:1:{i:1;s:9:"Inuktitut";}s:2:"iu";a:1:{i:1;s:18:"á�ƒá“„ᒃᑎá‘�ᑦ";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Hebraico";i:2;i:1;}s:2:"en";a:1:{i:1;s:6:"Hebrew";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:8:"Japonês";}s:2:"en";a:1:{i:1;s:8:"Japanese";}s:2:"ja";a:1:{i:1;s:9:"日本語";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:1:{s:2:"en";a:1:{i:1;s:7:"Yiddish";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:8:"Javanês";}s:2:"en";a:1:{i:1;s:8:"Javanese";}s:2:"jv";a:1:{i:1;s:9:"Basa Jawa";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:9:"Georgiano";}s:2:"en";a:1:{i:1;s:8:"Georgian";}s:2:"ka";a:1:{i:1;s:21:"ქáƒ�რთული";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:5:"Kongo";}s:2:"en";a:1:{i:1;s:5:"Kongo";}s:2:"kg";a:1:{i:1;s:7:"Kikongo";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:6:"Gikuyu";}s:2:"en";a:1:{i:1;s:6:"Kikuyu";}s:2:"ki";a:1:{i:1;s:9:"GÄ©kÅ©yÅ©";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:12:"Oshikwanyama";}s:2:"en";a:1:{i:1;s:8:"Kuanyama";}s:2:"kj";a:1:{i:1;s:8:"Kuanyama";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:7:"Cazaque";}s:2:"en";a:1:{i:1;s:6:"Kazakh";}s:2:"kk";a:1:{i:1;s:14:"қазақша";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:12:"Groenlandês";}s:2:"en";a:1:{i:1;s:11:"Kalaallisut";}s:2:"kl";a:1:{i:1;s:11:"Kalaallisut";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:5:"Khmer";}s:2:"en";a:1:{i:1;s:5:"Khmer";}s:2:"km";a:1:{i:1;s:27:"ភាសាáž�្មែរ";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:7:"Canará";}s:2:"en";a:1:{i:1;s:7:"Kannada";}s:2:"kn";a:1:{i:1;s:15:"ಕನà³�ನಡ";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:7:"Coreano";}s:2:"en";a:1:{i:1;s:6:"Korean";}s:2:"ko";a:1:{i:1;s:9:"한국어";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:6:"Kanuri";}s:2:"en";a:1:{i:1;s:6:"Kanuri";}s:2:"kr";a:1:{i:1;s:6:"Kanuri";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:8:"Cachemir";}s:2:"en";a:1:{i:1;s:8:"Kashmiri";}s:2:"ks";a:1:{i:1;s:38:"कशà¥�मीरी - (كشميري)";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:5:"Curdo";}s:2:"en";a:1:{i:1;s:7:"Kurdish";}s:2:"ku";a:1:{i:1;s:17:"Kurdî/كوردي";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:4:"Komi";}s:2:"en";a:1:{i:1;s:4:"Komi";}s:2:"kv";a:1:{i:1;s:8:"коми";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:7:"Cornish";}s:2:"en";a:1:{i:1;s:7:"Cornish";}s:2:"kw";a:1:{i:1;s:8:"Kernewek";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:8:"Quirguiz";}s:2:"en";a:1:{i:1;s:7:"Kirghiz";}s:2:"ky";a:1:{i:1;s:16:"Кыргызча";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:5:"Latim";}s:2:"en";a:1:{i:1;s:5:"Latin";}s:2:"la";a:1:{i:1;s:6:"Latine";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:13:"Luxemburguês";}s:2:"en";a:1:{i:1;s:13:"Letzeburgesch";}s:2:"lb";a:1:{i:1;s:15:"Lëtzebuergesch";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:7:"Luganda";}s:2:"en";a:1:{i:1;s:5:"Ganda";}s:2:"lg";a:1:{i:1;s:7:"Luganda";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:11:"Limburguês";}s:2:"en";a:1:{i:1;s:10:"Limburgish";}s:2:"li";a:1:{i:1;s:9:"Lèmburgs";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:7:"Lingala";}s:2:"en";a:1:{i:1;s:7:"Lingala";}s:2:"ln";a:1:{i:1;s:7:"Lingala";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:8:"Laociano";}s:2:"en";a:1:{i:1;s:3:"Lao";}s:2:"lo";a:1:{i:1;s:9:"ລາວ";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:7:"Lituano";}s:2:"en";a:1:{i:1;s:10:"Lithuanian";}s:2:"lt";a:1:{i:1;s:9:"Lietuvių";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:12:"Luba-katanga";}s:2:"en";a:1:{i:1;s:12:"Luba-Katanga";}s:2:"lu";a:1:{i:1;s:12:"Luba-Katanga";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:6:"Letão";}s:2:"en";a:1:{i:1;s:7:"Latvian";}s:2:"lv";a:1:{i:1;s:9:"LatvieÅ¡u";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:7:"Malgaxe";}s:2:"en";a:1:{i:1;s:8:"Malagasy";}s:2:"mg";a:1:{i:1;s:15:"Malagasy fiteny";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:11:"Marshallês";}s:2:"en";a:1:{i:1;s:8:"Marshall";}s:2:"mh";a:1:{i:1;s:20:"Kajin M̧ajeļ; Ebon";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:5:"Maori";}s:2:"en";a:1:{i:1;s:5:"Maori";}s:2:"mi";a:1:{i:1;s:13:"te reo MÄ�ori";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:10:"Macedônio";}s:2:"en";a:1:{i:1;s:10:"Macedonian";}s:2:"mk";a:1:{i:1;s:20:"македонÑ�ки";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:9:"Malayalam";}s:2:"en";a:1:{i:1;s:9:"Malayalam";}s:2:"ml";a:1:{i:1;s:18:"മലയാളം";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:6:"Mongol";}s:2:"en";a:1:{i:1;s:9:"Mongolian";}s:2:"mn";a:1:{i:1;s:12:"монгол";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:7:"Moldavo";}s:2:"en";a:1:{i:1;s:9:"Moldavian";}s:2:"mo";a:1:{i:1;s:24:"молдовенÑ�Ñ�кÑ�";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:6:"Marata";}s:2:"en";a:1:{i:1;s:7:"Marathi";}s:2:"mr";a:1:{i:1;s:15:"मराठी";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:6:"Malaio";}s:2:"en";a:1:{i:1;s:15:"Malay (generic)";}s:2:"ms";a:1:{i:1;s:31:"bahasa Melayu/بهاس ملاي";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:7:"Maltês";}s:2:"en";a:1:{i:1;s:7:"Maltese";}s:2:"mt";a:1:{i:1;s:9:"Bil-Malta";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:9:"Birmanês";}s:2:"en";a:1:{i:1;s:7:"Burmese";}s:2:"my";a:1:{i:1;s:21:"မန္မာစာ";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:8:"Nauruano";}s:2:"en";a:1:{i:1;s:5:"Nauru";}s:2:"na";a:1:{i:1;s:16:"EkakairÅ© naoero";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:18:"BokmÃ¥l norueguês";}s:2:"en";a:1:{i:1;s:17:"Norwegian Bokmaal";}s:2:"nb";a:1:{i:1;s:7:"BokmÃ¥l";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:16:"Ndebele do norte";}s:2:"en";a:1:{i:1;s:13:"North Ndebele";}s:2:"nd";a:1:{i:1;s:7:"Ndebele";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:8:"Nepalês";}s:2:"en";a:1:{i:1;s:6:"Nepali";}s:2:"ne";a:1:{i:1;s:18:"नेपाली";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:6:"Ndonga";}s:2:"en";a:1:{i:1;s:6:"Ndonga";}s:2:"ng";a:1:{i:1;s:11:"O(shi)wambo";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:9:"Holandês";}s:2:"en";a:1:{i:1;s:5:"Dutch";}s:2:"nl";a:1:{i:1;s:10:"Nederlands";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:15:"Novo norueguês";}s:2:"en";a:1:{i:1;s:17:"Norwegian Nynorsk";}s:2:"nn";a:1:{i:1;s:13:"Norsk Nynorsk";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:10:"Norueguês";}s:2:"en";a:1:{i:1;s:9:"Norwegian";}s:2:"no";a:1:{i:1;s:5:"Norsk";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:14:"Ndebele do sul";}s:2:"en";a:1:{i:1;s:13:"South Ndebele";}s:2:"nr";a:1:{i:1;s:10:"Ndébélé";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:6:"Navajo";}s:2:"en";a:1:{i:1;s:6:"Navajo";}s:2:"nv";a:1:{i:1;s:12:"Diné bizaad";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:8:"Chichewa";}s:2:"en";a:1:{i:1;s:8:"Chichewa";}s:2:"ny";a:1:{i:1;s:9:"chiCheŵa";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:8:"Occitano";}s:2:"en";a:1:{i:1;s:7:"Occitan";}s:2:"oc";a:1:{i:1;s:7:"Occitan";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:8:"Chippewa";}s:2:"en";a:1:{i:1;s:6:"Ojibwa";}s:2:"oj";a:1:{i:1;s:15:"á�Šá“‚ᔑᓇá�¯";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:5:"Oromo";}s:2:"en";a:1:{i:1;s:5:"Oromo";}s:2:"om";a:1:{i:1;s:6:"Oromoo";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:5:"Oriá";}s:2:"en";a:1:{i:1;s:5:"Oriya";}s:2:"or";a:1:{i:1;s:15:"ଓଡ଼ିଆ";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:5:"Oseto";}s:2:"en";a:1:{i:1;s:8:"Ossetian";}s:2:"os";a:1:{i:1;s:12:"иронау";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:7:"Panjabi";}s:2:"en";a:1:{i:1;s:7:"Panjabi";}s:2:"pa";a:1:{i:1;s:18:"ਪੰਜਾਬੀ";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:5:"Páli";}s:2:"en";a:1:{i:1;s:4:"Pali";}s:2:"pi";a:1:{i:1;s:12:"पािऴ";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:8:"Polonês";}s:2:"en";a:1:{i:1;s:6:"Polish";}s:2:"pl";a:1:{i:1;s:6:"Polski";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:6:"Pachto";}s:2:"en";a:1:{i:1;s:6:"Pushto";}s:2:"ps";a:1:{i:1;s:8:"پښتو";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"Português";i:2;i:1;}s:2:"en";a:1:{i:1;s:10:"Portuguese";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:8:"Quéchua";}s:2:"en";a:1:{i:1;s:7:"Quechua";}s:2:"qu";a:1:{i:1;s:9:"Runa Simi";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:11:"Reto-romano";}s:2:"en";a:1:{i:1;s:13:"Raeto-Romance";}s:2:"rm";a:1:{i:1;s:9:"Rumantsch";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:5:"Rundi";}s:2:"en";a:1:{i:1;s:5:"Rundi";}s:2:"rn";a:1:{i:1;s:7:"kiRundi";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:6:"Romeno";}s:2:"en";a:1:{i:1;s:8:"Romanian";}s:2:"ro";a:1:{i:1;s:8:"Română";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:5:"Russo";}s:2:"en";a:1:{i:1;s:7:"Russian";}s:2:"ru";a:1:{i:1;s:14:"руÑ�Ñ�кий";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:12:"Quiniaruanda";}s:2:"en";a:1:{i:1;s:11:"Kinyarwanda";}s:2:"rw";a:1:{i:1;s:11:"KinyaRwanda";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:10:"Sânscrito";}s:2:"en";a:1:{i:1;s:8:"Sanskrit";}s:2:"sa";a:1:{i:1;s:21:"संसà¥�कृत";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:5:"Sardo";}s:2:"en";a:1:{i:1;s:9:"Sardinian";}s:2:"sc";a:1:{i:1;s:5:"Sardu";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:5:"Sindi";}s:2:"en";a:1:{i:1;s:6:"Sindhi";}s:2:"sd";a:1:{i:1;s:15:"सिनधि";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:13:"Sami do norte";}s:2:"en";a:1:{i:1;s:13:"Northern Sami";}s:2:"se";a:1:{i:1;s:11:"Sámegiella";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:5:"Sango";}s:2:"en";a:1:{i:1;s:5:"Sango";}s:2:"sg";a:1:{i:1;s:7:"Sängö";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:9:"Cingalês";}s:2:"en";a:1:{i:1;s:9:"Sinhalese";}s:2:"si";a:1:{i:1;s:15:"සිංහල";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:8:"Eslovaco";}s:2:"en";a:1:{i:1;s:6:"Slovak";}s:2:"sk";a:1:{i:1;s:11:"SlovenÄ�ina";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:8:"Esloveno";}s:2:"en";a:1:{i:1;s:9:"Slovenian";}s:2:"sl";a:1:{i:1;s:13:"SlovenÅ¡Ä�ina";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:7:"Samoano";}s:2:"en";a:1:{i:1;s:6:"Samoan";}s:2:"sm";a:1:{i:1;s:12:"Gagana Samoa";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:5:"Chona";}s:2:"en";a:1:{i:1;s:5:"Shona";}s:2:"sn";a:1:{i:1;s:8:"ChiShona";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:6:"Somali";}s:2:"en";a:1:{i:1;s:6:"Somali";}s:2:"so";a:1:{i:1;s:10:"Soomaaliga";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:8:"Albanês";}s:2:"en";a:1:{i:1;s:8:"Albanian";}s:2:"sq";a:1:{i:1;s:5:"Shqip";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:7:"Sérvio";}s:2:"en";a:1:{i:1;s:7:"Serbian";}s:2:"sr";a:1:{i:1;s:12:"Ñ�рпÑ�ки";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:6:"Suázi";}s:2:"en";a:1:{i:1;s:5:"Swati";}s:2:"ss";a:1:{i:1;s:7:"SiSwati";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:11:"Soto do sul";}s:2:"en";a:1:{i:1;s:14:"Southern Sotho";}s:2:"st";a:1:{i:1;s:7:"seSotho";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:9:"Sundanês";}s:2:"en";a:1:{i:1;s:9:"Sundanese";}s:2:"su";a:1:{i:1;s:10:"Basa Sunda";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:5:"Sueco";}s:2:"en";a:1:{i:1;s:7:"Swedish";}s:2:"sv";a:1:{i:1;s:7:"Svenska";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:7:"Suaíli";}s:2:"en";a:1:{i:1;s:7:"Swahili";}s:2:"sw";a:1:{i:1;s:9:"Kiswahili";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:6:"Tâmil";}s:2:"en";a:1:{i:1;s:5:"Tamil";}s:2:"ta";a:1:{i:1;s:15:"தமிழà¯�";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:6:"Telugu";}s:2:"en";a:1:{i:1;s:6:"Telugu";}s:2:"te";a:1:{i:1;s:18:"తెలà±�à°—à±�";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:7:"Tajique";}s:2:"en";a:1:{i:1;s:5:"Tajik";}s:2:"tg";a:1:{i:1;s:12:"Тоҷикӣ";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:10:"Tailandês";}s:2:"en";a:1:{i:1;s:4:"Thai";}s:2:"th";a:1:{i:1;s:21:"ภาษาไทย";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:9:"Tigrínia";}s:2:"en";a:1:{i:1;s:8:"Tigrinya";}s:2:"ti";a:1:{i:1;s:12:"ትáŒ�ርኛ";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:9:"Turcomano";}s:2:"en";a:1:{i:1;s:7:"Turkmen";}s:2:"tk";a:1:{i:1;s:14:"Түркмен";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:6:"Tagalo";}s:2:"en";a:1:{i:1;s:7:"Tagalog";}s:2:"tl";a:1:{i:1;s:7:"Tagalog";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:6:"Tswana";}s:2:"en";a:1:{i:1;s:6:"Tswana";}s:2:"tn";a:1:{i:1;s:8:"SeTswana";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:9:"Tonganês";}s:2:"en";a:1:{i:1;s:5:"Tonga";}s:2:"to";a:1:{i:1;s:10:"Faka-Tonga";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:5:"Turco";}s:2:"en";a:1:{i:1;s:7:"Turkish";}s:2:"tr";a:1:{i:1;s:8:"Türkçe";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:6:"Tsonga";}s:2:"en";a:1:{i:1;s:6:"Tsonga";}s:2:"ts";a:1:{i:1;s:6:"Tsonga";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:8:"Tártaro";}s:2:"en";a:1:{i:1;s:5:"Tatar";}s:2:"tt";a:1:{i:1;s:8:"Tatarça";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:3:"Twi";}s:2:"en";a:1:{i:1;s:3:"Twi";}s:2:"tw";a:1:{i:1;s:3:"Twi";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:8:"Taitiano";}s:2:"en";a:1:{i:1;s:8:"Tahitian";}s:2:"ty";a:1:{i:1;s:10:"Reo Tahiti";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:5:"Uigur";}s:2:"en";a:1:{i:1;s:6:"Uighur";}s:2:"ug";a:1:{i:1;s:14:"Уйғурче";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:9:"Ucraniano";}s:2:"en";a:1:{i:1;s:9:"Ukrainian";}s:2:"uk";a:1:{i:1;s:20:"українÑ�ька";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:4:"Urdu";}s:2:"en";a:1:{i:1;s:4:"Urdu";}s:2:"ur";a:1:{i:1;s:8:"اردو";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:7:"Uzbeque";}s:2:"en";a:1:{i:1;s:5:"Uzbek";}s:2:"uz";a:1:{i:1;s:10:"Ўзбек";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:5:"Venda";}s:2:"en";a:1:{i:1;s:5:"Venda";}s:2:"ve";a:1:{i:1;s:7:"Venḓa";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:10:"Vietnamita";}s:2:"en";a:1:{i:1;s:10:"Vietnamese";}s:2:"vi";a:1:{i:1;s:14:"tiếng Việt";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:9:"Volapuque";}s:2:"en";a:1:{i:1;s:8:"Volapük";}s:2:"vo";a:1:{i:1;s:8:"Volapük";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:6:"Valão";}s:2:"en";a:1:{i:1;s:7:"Walloon";}s:2:"wa";a:1:{i:1;s:5:"Walon";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:5:"Wolof";}s:2:"en";a:1:{i:1;s:5:"Wolof";}s:2:"wo";a:1:{i:1;s:5:"Wolof";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:5:"Xhosa";}s:2:"en";a:1:{i:1;s:5:"Xhosa";}s:2:"xh";a:1:{i:1;s:5:"Xhosa";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:8:"Iídiche";}s:2:"en";a:1:{i:1;s:7:"Yiddish";}s:2:"yi";a:1:{i:1;s:12:"ייִדיש";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:7:"Iorubá";}s:2:"en";a:1:{i:1;s:6:"Yoruba";}s:2:"yo";a:1:{i:1;s:8:"Yorùbá";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:6:"Zhuang";}s:2:"en";a:1:{i:1;s:6:"Zhuang";}s:2:"za";a:1:{i:1;s:12:"Saɯ cueŋƅ";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:7:"Chinês";}s:2:"en";a:1:{i:1;s:7:"Chinese";}s:2:"zh";a:1:{i:1;s:22:"漢語; 汉语; 中文";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:3:{s:2:"pt";a:1:{i:1;s:4:"Zulu";}s:2:"en";a:1:{i:1;s:4:"Zulu";}s:2:"zu";a:1:{i:1;s:4:"Zulu";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:90:"O balão do assistente está aberto. Utilize seta para baixo para navegar pelo seu conteúdo.";i:2;i:1;}s:2:"en";a:2:{i:1;s:76:"The assistant baloom is opened. Use down arrow to navigate thru its content.";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:3:{i:1;s:30:"Menu do [text $system.caption]";i:2;i:1;i:6;i:1;}s:2:"en";a:2:{i:1;s:29:"[text $system.caption]#ss menu";i:6;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:41:"O documento está pronto para ser editado.";i:2;i:1;}s:2:"en";a:2:{i:1;s:30:"The document is ready to edit.";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:38:"Há alterações não salvas no documento.";i:2;i:1;}s:2:"en";a:2:{i:1;s:40:"Theres no saved changes in the document.";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Primeira";i:2;i:1;}s:2:"en";a:2:{i:1;s:5:"First";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Última";i:2;i:1;}s:2:"en";a:2:{i:1;s:4:"Last";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:14:"Menu principal";i:2;i:1;}s:2:"en";a:2:{i:1;s:9:"Main menu";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:22:"Acessar página do menu";i:2;i:1;}s:2:"en";a:2:{i:1;s:16:"Access menu page";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:18:"Recolher este menu";i:2;i:1;}s:2:"en";a:2:{i:1;s:15:"Close this menu";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"Recolhido";i:2;i:1;}s:2:"en";a:2:{i:1;s:8:"Colapsed";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"Expandido";i:2;i:1;}s:2:"en";a:2:{i:1;s:6:"Opened";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:7:"Próximo";i:2;i:1;}s:2:"en";a:2:{i:1;s:4:"Next";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:23:"Ocultar painel esquerdo";i:2;i:1;}s:2:"en";a:2:{i:1;s:15:"Hide left panel";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:22:"Exibir painel esquerdo";i:2;i:1;}s:2:"en";a:2:{i:1;s:18:"Display left panel";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:22:"Ocultar painel direito";i:2;i:1;}s:2:"en";a:2:{i:1;s:16:"Hide right panel";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:21:"Exibir painel direito";i:2;i:1;}s:2:"en";a:2:{i:1;s:19:"Display right panel";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Anterior";i:2;i:1;}s:2:"en";a:2:{i:1;s:8:"Previous";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:24:"Fim da caixa de destaque";i:2;i:1;}s:2:"en";a:2:{i:1;s:20:"End of spotlight box";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:17:"Caixa de destaque";i:2;i:1;}s:2:"en";a:2:{i:1;s:13:"Spotlight box";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:4:"Abas";i:2;i:1;}s:2:"en";a:2:{i:1;s:4:"Tabs";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"Dica para";i:2;i:1;}s:2:"en";a:2:{i:1;s:7:"Tip for";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:4:"Topo";i:2;i:1;}s:2:"en";a:2:{i:1;s:3:"Top";i:2;i:1;}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Rascunho";i:2;i:1;}s:2:"en";a:1:{i:1;s:5:"Draft";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Não lida";i:2;i:1;}s:2:"en";a:1:{i:1;s:6:"Unread";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:4:"Lida";i:2;i:1;}s:2:"en";a:1:{i:1;s:4:"Read";}}}}a:1:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Excluída";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Removed";}}}}a:3:{s:5:"flags";a:3:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:9:"templates";s:14:"modLayout_name";s:12:"audio_player";}s:5:"local";a:1:{s:6:"scheme";s:6:"system";}s:4:"html";s:1512:"#r#n#r#n#r#n[mod:list{]#r#n#r#n
      #r#n#r#n
      #r#n#r#n#r#n[}]#r#n[style]#r#n/* align window elements */#r#nBODY { text-align:center; }#r#n[/style]#r#n[script]#r#n#r#nfunction keyListener (event)#r#n{ // key listener#r#nif (event.key == #sEnter#s)#r#nplaySelectedTrack();#r#n} // key listener#r#n#r#nfunction playSelectedTrack ()#r#n{ // playSelectedTrack#r#nvar playlist = document.getElementById ("playlist");#r#nif (playlist.selectedIndex >= 0)#r#n{ // valid selection#r#nvar url = playlist.options[]playlist.selectedIndex].dataset.url;#r#nhumperstilshen.play (url);#r#n} // valid selection#r#n} // playSelectedTrack#r#n#r#nselect = document.getElementById ("playlist");#r#nif (select.length)#r#n{#r#nselect.selectedIndex = 0;#r#nselect.focus();#r#nplaySelectedTrack();#r#n#r#nhumperstilshen.playNext = function ()#r#n{ // playNext#r#nif (!document.getElementById ("continuous").checked)#r#nreturn;#r#n#r#nvar playlist = document.getElementById ("playlist");#r#nif (!playlist.options.length || playlist.selectedIndex + 1 >= playlist.options.length)#r#nreturn;#r#n#r#nplaylist.selectedIndex ++;#r#nplaySelectedTrack();#r#n} // playNext#r#n}#r#n[/script]#r#n";}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"Layout padrão";i:2;i:1;}s:2:"en";a:1:{i:1;s:14:"Default layout";}}}s:4:"html";s:964:"#r#n[cut:footerscript]#r#nhumperstilshen.panelAdd ("left");#r#n[/cut]#r#n[cut:bar_left_icons]#r#n#r#n#r#n#r#n#r#n[/cut]#r#n
      #r#n
      #r#n[mod:banner]#r#n[mod:navbar]#r#n[mod:title]#r#n[mod:languages]#r#n[mod:cart]#r#n[mod:pages]#r#n[mod:panel main]#r#n[mod:comments]#r#n[mod:comments_add]#r#n
      #r#n
      #r#n[mod:hits]#r#n[mod:navbottom]#r#n[mod:footer]#r#n
      #r#n
      #r#n";}a:3:{s:5:"flags";a:2:{s:14:"modLayout_from";s:9:"templates";s:14:"modLayout_name";s:6:"dialog";}s:5:"local";a:1:{s:6:"scheme";s:6:"system";}s:4:"html";s:20:"#r#n[mod:panel main]#r#n";}a:3:{s:5:"flags";a:2:{s:14:"modLayout_from";s:9:"templates";s:14:"modLayout_name";s:12:"dialog_basic";}s:5:"local";a:1:{s:6:"scheme";s:6:"system";}s:4:"html";s:47:"#r#n[mod:navbar]#r#n[mod:title]#r#n[mod:panel main]#r#n";}a:2:{s:5:"flags";a:3:{s:14:"modLayout_base";s:6:"simple";s:14:"modLayout_from";s:9:"templates";s:14:"modLayout_name";s:13:"dialog_cancel";}s:4:"html";s:36:"[script]#r#nwindow.close();#r#n[/script]";}a:2:{s:5:"flags";a:3:{s:14:"modLayout_base";s:6:"simple";s:14:"modLayout_from";s:9:"templates";s:14:"modLayout_name";s:12:"dialog_close";}s:4:"html";s:234:"[script]#r#n[if($document.module){]#r#nwindow.opener.EcolaboreEditor.insertModule(#s[$document.module]#s);#r#n[}elseif ($document.script){ #r#n$document.script; #r#n}else{]#r#nwindow.opener.humperstilshen.refresh();#r#n[}]#r#nwindow.close();#r#n[/script]";}a:3:{s:5:"flags";a:3:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:9:"templates";s:14:"modLayout_name";s:13:"dialog_select";}s:5:"local";a:1:{s:6:"scheme";s:6:"system";}s:4:"html";s:1254:"#r#n#r#n[mod:list{]#r#n#r#n
      #r#n#r#n#r#n[}]#r#n[style]#r#n/* align window elements */#r#nBODY { text-align:center; }#r#n[/style]#r#n[script]#r#n#r#nfunction keyListener (event)#r#n{ // key listener#r#nif (event.key == #sEnter#s)#r#nsendChoice();#r#n} // key listener#r#n#r#nfunction sendChoice ()#r#n{ // sendChoice#r#nvar select = document.getElementById ("modules");#r#nif (select.selectedIndex >= 0)#r#n{ // valid selection#r#n[if($document.update){]#r#nwindow.opener.listManager.update (select.value, select.value, select.options[]select.selectedIndex].text, select.options[]select.selectedIndex].dataset.url);#r#n[}else{]#r#nwindow.opener.listManager.append (select.value, select.options[]select.selectedIndex].text, select.options[]select.selectedIndex].dataset.url);#r#n[}]#r#nwindow.close();#r#n} // valid selection#r#n} // sendChoice#r#n#r#nselect = document.getElementById ("modules");#r#nif (select.length)#r#n{#r#nselect.selectedIndex = 0;#r#nselect.focus();#r#n}#r#n[/script]#r#n";}a:3:{s:5:"flags";a:3:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:9:"templates";s:14:"modLayout_name";s:11:"dialog_tabs";}s:5:"local";a:1:{s:6:"scheme";s:6:"system";}s:4:"html";s:3113:"[script]#r#n#r#n// changes dialog tab#r#ntabOld = 2;#r#n#r#nfunction changeTab(){#r#nvar tabIndex = 2 + document.controls.select_tab.selectedIndex;#r#ndocument.getElementById(#stab_content_#s+tabOld).style.display = #snone#s;#r#ndocument.getElementById(#stab_content_#s+tabIndex).style.display = #sblock#s;#r#ntabOld = tabIndex;#r#n}#r#n#r#n// submit configurations#r#nfunction dialogOk(){#r#ndocument.controls.submit();#r#n}#r#n#r#n// Restore default configurations#r#nfunction dialogRestore(){#r#ndocument.controls.save.value = #srestore#s;#r#ndocument.controls.submit();#r#n}#r#n#r#n// closes dialog window#r#nfunction dialogClose(){#r#nwindow.close();#r#n}#r#n#r#ndocument.controls.select_tab.focus();#r#n[/script]#r#n[style]#r#n/* Panels positioning scheme*/#r#n#clayout_dialog_tabs { position:fixed; display:block; top:4rem; right:auto; bottom:4rem; left:0; width:25vw; padding:.4rem; }#r#n #clayout_dialog_tabs select { width:100%; }#r#nfieldset { position:fixed; display:block; top:4rem; right:0; bottom:4rem; left:25vw; padding:.4rem; }#r#n.scrollable { overflow:auto; }#r#n#clayout_dialog_bottom { position:fixed; display:flex; top:auto; right:0; bottom:0; left:0; height:4rem; }#r#n#clayout_dialog_bottom > :first-child { margin:auto; }#r#n#r#n[/style]#r#n#r#n[mod(`formulary`){ list{]#r#n#r#n#r#n#r#n
      #r#n
      #r#n#r#n
      #r#n#r#n#r#n#r#n
      #r#n[next]#r#n#r#n[cut:tab_option]#r#n#r#n[/cut]#r#n#r#n
      #r#n[text]#r#n
      #r#n
      #r#n[list{ loop{ field; }} ]#r#n
      #r#n
      #r#n
      #r#n#r#n#r#n[next; loop{ if(!$last){]#r#n[cut:tab_option]#r#n#r#n[/cut]#r#n#r#n#r#n#r#n#r#n[}else{]#r#n
      #r#n#r#n#r#n[list { loop{]#r#n#r#n[}}]#r#n#r#n#r#n[}}]#r#n#r#n#r#n
      #r#n
      #r#n#r#n[if($document.remove_object){])#r#n#r#n[}else{]#r#n#r#n[}]#r#n#r#n#r#n
      #r#n
      #r#n#r#n#r#n[}}]#r#n";}a:1:{s:4:"html";s:271:"#r#n[text:layout_spotlight_start]#r#n[if $mod.editable{]
      [text($content, $mod.editable)]
      #r#n[}else{#r#ntext($content);#r#n}]#r#n[text:layout_spotlight_end]#r#n";}a:1:{s:4:"html";s:485:"[loop{#r#nif (!$first){]#r#n
      #r#n[}#r#nlist{]#r#n#r#n[loop{]#r#n
      #r#n
      #r#n[details]#r#n
      #r#n
      #r#n[}]#r#n
      #r#n[}}]#r#n";}a:1:{s:4:"html";s:17:"[loop{ details; }";}a:1:{s:4:"html";s:13:"[loop{field;}";}a:1:{s:4:"html";s:7:"[$html]";}a:1:{s:4:"html";s:363:"[loop{#r#nif (!$first){]#r#n
      #r#n[}#r#nlist{]#r#n#r#n[loop{]#r#n
      #r#n[details]#r#n
      #r#n[}]#r#n
      #r#n[}}]#r#n";}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:21:"Menu simples vertical";i:2;i:1;}s:2:"en";a:1:{i:1;s:20:"Simple vertical menu";}}}s:4:"html";s:40:"[loop{]#r#n
      #r#n[details]#r#n
      #r#n[}]#r#n";}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:19:"Tabela transparente";i:2;i:1;}s:2:"en";a:1:{i:1;s:17:"Transparent table";}}}s:4:"html";s:31:"[rendertable:table-transparent]";}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:15:"Tabela decorada";i:2;i:1;}s:2:"en";a:1:{i:1;s:15:"Decorated table";}}}s:4:"html";s:28:"#r#n[rendertable:table-simple]";}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:5:"Áudio";i:2;i:1;}s:2:"en";a:2:{i:1;s:5:"Audio";i:2;i:1;}}}s:5:"local";a:3:{s:5:"wd-sm";s:4:"auto";s:4:"list";s:7:"details";s:7:"details";s:11:"media_audio";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Banner";i:2;i:1;}s:2:"en";a:2:{i:1;s:6:"Banner";i:2;i:1;}}}s:5:"local";a:8:{s:5:"wd-sm";s:2:"12";s:15:"mod-padding-top";s:1:"0";s:17:"mod-padding-right";s:1:"0";s:18:"mod-padding-bottom";s:1:"0";s:16:"mod-padding-left";s:1:"0";s:10:"box-scheme";s:4:"card";s:4:"list";s:7:"details";s:7:"details";s:3:"img";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:17:"Caixa de destaque";i:2;i:1;}s:2:"en";a:1:{i:1;s:13:"Spotlight box";}}}s:5:"local";a:8:{s:8:"position";s:10:"float-left";s:5:"wd-sm";s:2:"12";s:5:"wd-md";s:1:"6";s:5:"wd-lg";s:1:"4";s:5:"wd-xl";s:1:"3";s:10:"box-scheme";s:9:"spotlight";s:4:"list";s:7:"details";s:7:"details";s:3:"box";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:14:"Você está aqui";i:2;i:1;}s:2:"en";a:1:{i:1;s:12:"You are here";}}}s:5:"local";a:6:{s:15:"caption-display";i:1;s:12:"mod-semantic";s:3:"nav";s:5:"wd-sm";s:4:"auto";s:11:"box-display";s:6:"inline";s:11:"list-layout";s:6:"inline";s:6:"col-sm";s:4:"auto";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Cartão";i:2;i:1;}s:2:"en";a:2:{i:1;s:6:"Cartão";i:2;i:1;}}}s:5:"local";a:1:{s:10:"box-scheme";s:4:"card";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:10:"Meu pedido";i:2;i:1;}s:2:"en";a:2:{i:1;s:8:"My order";i:2;i:1;}}}s:5:"local";a:5:{s:15:"caption-display";i:1;s:5:"wd-sm";s:4:"auto";s:11:"box-display";s:6:"inline";s:4:"list";s:7:"details";s:7:"details";s:12:"product_cart";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:11:"Comentários";i:2;i:1;}s:2:"en";a:2:{i:1;s:8:"Comments";i:2;i:1;}}}s:5:"local";a:3:{s:15:"caption-display";i:1;s:10:"box-scheme";s:5:"panel";s:7:"details";s:40:"info_posted_elapsed#r#ninfo_owner#r#ncontent";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:20:"Adicionar comentário";i:2;i:1;}s:2:"en";a:2:{i:1;s:11:"Add comment";i:2;i:1;}}}s:5:"local";a:3:{s:15:"caption-display";i:1;s:10:"box-scheme";s:9:"formulary";s:4:"list";s:9:"formulary";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Conteúdo";i:2;i:1;}s:2:"en";a:2:{i:1;s:7:"Content";i:2;i:1;}}}s:5:"local";a:3:{s:12:"mod-semantic";s:7:"article";s:4:"list";s:7:"details";s:7:"details";s:7:"content";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:22:"Publicado recentemente";i:2;i:1;}s:2:"en";a:2:{i:1;s:21:"Recently publications";i:2;i:1;}}}s:5:"local";a:6:{s:15:"caption-display";i:1;s:10:"box-scheme";s:5:"panel";s:7:"details";s:59:"img_mini_title_description#r#ninfo_posted_elapsed#r#ninfo_owner";s:9:"list_sort";s:7:"created";s:14:"list_direction";s:4:"desc";s:8:"list_max";i:4;}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:16:"Próximos eventos";i:2;i:1;}s:2:"en";a:2:{i:1;s:11:"Next events";i:2;i:1;}}}s:5:"local";a:6:{s:15:"caption-display";i:1;s:10:"box-scheme";s:5:"panel";s:7:"details";s:57:"img_mini_title_description#r#ninfo_event_date#r#ninfo_contact";s:9:"list_sort";s:11:"event_start";s:14:"list_direction";s:3:"asc";s:8:"list_max";i:4;}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:12:"Apresentação";i:2;i:1;}s:2:"en";a:2:{i:1;s:12:"Presentation";i:2;i:1;}}}s:5:"local";a:12:{s:15:"caption-display";i:1;s:10:"box-scheme";s:5:"panel";s:6:"col-sm";s:1:"2";s:6:"col-md";s:1:"2";s:6:"col-lg";s:1:"3";s:6:"col-xl";s:1:"4";s:24:"details-horizontal-align";s:6:"center";s:7:"details";s:8:"img_mini";s:9:"list_sort";s:7:"created";s:14:"list_direction";s:4:"desc";s:8:"list_max";i:4;s:9:"img-shape";s:9:"thumbnail";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:16:"Últimas notícias";i:2;i:1;}s:2:"en";a:2:{i:1;s:9:"Last news";i:2;i:1;}}}s:5:"local";a:6:{s:15:"caption-display";i:1;s:10:"box-scheme";s:5:"panel";s:7:"details";s:39:"img_mini_title_description#r#ninfo_posted";s:9:"list_sort";s:7:"created";s:14:"list_direction";s:4:"desc";s:8:"list_max";i:4;}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:22:"Publicado recentemente";i:2;i:1;}s:2:"en";a:2:{i:1;s:14:"Recently posts";i:2;i:1;}}}s:5:"local";a:6:{s:15:"caption-display";i:1;s:10:"box-scheme";s:5:"panel";s:7:"details";s:72:"img_mini_title_description#r#nmedia_audio#r#ninfo_posted_elapsed#r#ninfo_owner";s:9:"list_sort";s:7:"created";s:14:"list_direction";s:4:"desc";s:8:"list_max";i:4;}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:11:"Lançamentos";i:2;i:1;}s:2:"en";a:2:{i:1;s:3:"New";i:2;i:1;}}}s:5:"local";a:6:{s:15:"caption-display";i:1;s:10:"box-scheme";s:5:"panel";s:7:"details";s:41:"img_mini_title_description#r#nproduct_price";s:9:"list_sort";s:7:"created";s:14:"list_direction";s:4:"desc";s:8:"list_max";i:4;}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:22:"Publicado recentemente";i:2;i:1;}s:2:"en";a:2:{i:1;s:21:"Recently publications";i:2;i:1;}}}s:5:"local";a:6:{s:15:"caption-display";i:1;s:10:"box-scheme";s:5:"panel";s:7:"details";s:69:"img_mini_title_description#r#ninfo_posted_elapsed#r#nlist_location_inline";s:9:"list_sort";s:7:"created";s:14:"list_direction";s:4:"desc";s:8:"list_max";i:4;}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:22:"Publicado recentemente";i:2;i:1;}s:2:"en";a:2:{i:1;s:10:"Last posts";i:2;i:1;}}}s:5:"local";a:21:{s:15:"caption-display";i:1;s:12:"mod-position";s:6:"center";s:5:"wd-sm";s:2:"12";s:5:"wd-lg";s:2:"12";s:10:"margin-top";s:4:"auto";s:12:"margin-right";s:4:"auto";s:13:"margin-bottom";s:4:"auto";s:11:"margin-left";s:4:"auto";s:10:"box-scheme";s:4:"card";s:4:"list";s:7:"default";s:9:"list-type";s:4:"grid";s:10:"list-align";s:4:"left";s:6:"col-sm";s:1:"1";s:6:"col-lg";s:1:"1";s:7:"details";s:66:"title_4#r#nmedia_video#r#ndescription#r#ninfo_posted_elapsed#r#ninfo_owner";s:26:"details-horizontal-spacing";s:3:"025";s:24:"details-vertical-spacing";s:3:"025";s:10:"img-format";s:6:"square";s:9:"list_sort";s:7:"created";s:14:"list_direction";s:4:"desc";s:8:"list_max";i:4;}}a:4:{s:4:"text";a:1:{s:5:"title";a:2:{s:2:"pt";a:2:{i:1;s:14:"Enviar arquivo";i:2;i:1;}s:2:"en";a:1:{i:1;s:11:"Submit file";}}}s:5:"flags";a:3:{s:14:"modLayout_base";s:10:"responsive";s:14:"modLayout_from";s:9:"templates";s:14:"modLayout_name";s:6:"dialog";}s:5:"local";a:1:{s:6:"scheme";s:6:"system";}s:8:"children";a:5:{i:0;s:6:"_start";i:1;s:11:"~uploadFile";i:2;s:10:"_separator";i:3;s:7:"_cancel";i:4;s:4:"_end";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Rodapé";i:2;i:1;}s:2:"en";a:2:{i:1;s:6:"Footer";i:2;i:1;}}}s:5:"local";a:10:{s:12:"mod-semantic";s:6:"footer";s:15:"mod-padding-top";s:1:"0";s:17:"mod-padding-right";s:1:"0";s:18:"mod-padding-bottom";s:1:"0";s:16:"mod-padding-left";s:1:"0";s:10:"box-scheme";s:3:"nav";s:7:"details";s:7:"content";s:11:"list-layout";s:6:"inline";s:10:"list-align";s:6:"center";s:6:"col-sm";s:4:"auto";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:10:"Formulário";i:2;i:1;}s:2:"en";a:2:{i:1;s:9:"Formulary";i:2;i:1;}}}s:5:"local";a:2:{s:10:"box-scheme";s:9:"formulary";s:4:"list";s:9:"formulary";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:20:"Formulário de edição";i:2;i:1;}s:2:"en";a:2:{i:1;s:14:"Edit formulary";i:2;i:1;}}}s:5:"local";a:2:{s:10:"box-scheme";s:9:"formulary";s:4:"list";s:9:"formulary";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:22:"Formulários do sistema";i:2;i:1;}s:2:"en";a:2:{i:1;s:18:"System formularies";i:2;i:1;}}}s:5:"local";a:0:{}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:12:"Exibir dados";i:2;i:1;}s:2:"en";a:2:{i:1;s:9:"View data";i:2;i:1;}}}s:5:"local";a:1:{s:4:"list";s:9:"formulary";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:16:"Grade de cartões";i:2;i:1;}s:2:"en";a:2:{i:1;s:10:"Cards grid";i:2;i:1;}}}s:5:"local";a:5:{s:11:"list-layout";s:4:"grid";s:6:"col-sm";s:1:"1";s:6:"col-md";s:1:"2";s:6:"col-lg";s:1:"3";s:6:"col-xl";s:1:"4";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:29:"Informações sobre o documento";i:2;i:1;}s:2:"en";a:2:{i:1;s:13:"Document info";i:2;i:1;}}}s:5:"local";a:4:{s:12:"mod-semantic";s:6:"footer";s:5:"wd-sm";s:4:"auto";s:4:"list";s:7:"details";s:7:"details";s:9:"info_hits";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"Inserção HTML";i:2;i:1;}s:2:"en";a:1:{i:1;s:14:"HTML insertion";}}}s:5:"local";a:2:{s:5:"wd-sm";s:4:"auto";s:4:"list";s:4:"html";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Figura";i:2;i:1;}s:2:"en";a:2:{i:1;s:5:"Image";i:2;i:1;}}}s:5:"local";a:7:{s:8:"position";s:6:"center";s:5:"wd-sm";s:2:"12";s:5:"wd-md";s:1:"8";s:5:"wd-lg";s:1:"6";s:10:"box-scheme";s:4:"card";s:4:"list";s:7:"details";s:7:"details";s:3:"img";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:6:{s:2:"pt";a:2:{i:1;s:7:"Idiomas";i:2;i:1;}s:2:"en";a:2:{i:1;s:9:"Languages";i:2;i:1;}s:2:"es";a:1:{i:1;s:7:"idiomas";}s:2:"fi";a:1:{i:1;s:6:"Kielet";}s:2:"fr";a:1:{i:1;s:7:"Langues";}s:2:"it";a:1:{i:1;s:6:"Lingue";}}}s:5:"local";a:7:{s:15:"caption-display";i:1;s:12:"mod-semantic";s:3:"nav";s:5:"wd-sm";s:4:"auto";s:11:"box-display";s:6:"inline";s:11:"list-layout";s:6:"inline";s:6:"col-sm";s:4:"auto";s:7:"details";s:7:"caption";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:11:"Nesta seção";i:2;i:1;}s:2:"en";a:2:{i:1;s:15:"In this section";i:2;i:1;}}}s:5:"local";a:1:{s:7:"details";s:26:"img_mini_title_description";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:11:"Nesta seção";i:2;i:1;}s:2:"en";a:2:{i:1;s:15:"In this section";i:2;i:1;}}}s:5:"local";a:1:{s:7:"details";s:59:"img_mini_title_description#r#ninfo_posted_elapsed#r#ninfo_owner";}}a:1:{s:5:"local";a:2:{s:10:"box-scheme";s:4:"card";s:7:"details";s:26:"img_mini_title_description";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:7:"Eventos";i:2;i:1;}s:2:"en";a:2:{i:1;s:6:"Events";i:2;i:1;}}}s:5:"local";a:3:{s:7:"details";s:57:"img_mini_title_description#r#ninfo_event_date#r#ninfo_contact";s:9:"list-sort";s:11:"event_start";s:14:"list-direction";s:4:"desc";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:11:"Nesta seção";i:2;i:1;}s:2:"en";a:2:{i:1;s:15:"In this section";i:2;i:1;}}}s:5:"local";a:1:{s:7:"details";s:26:"img_mini_title_description";}}a:1:{s:5:"local";a:17:{s:15:"caption-display";i:1;s:12:"mod-position";s:6:"center";s:5:"wd-sm";s:2:"12";s:5:"wd-lg";s:2:"12";s:10:"margin-top";s:4:"auto";s:12:"margin-right";s:4:"auto";s:13:"margin-bottom";s:4:"auto";s:11:"margin-left";s:4:"auto";s:10:"box-scheme";s:9:"formulary";s:4:"list";s:7:"default";s:9:"list-type";s:6:"column";s:6:"col-sm";s:1:"1";s:6:"col-lg";s:1:"1";s:7:"details";s:26:"img_mini_title_description";s:26:"details-horizontal-spacing";s:3:"025";s:24:"details-vertical-spacing";s:3:"025";s:10:"img-format";s:6:"square";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:11:"Nesta seção";i:2;i:1;}s:2:"en";a:2:{i:1;s:15:"In this section";i:2;i:1;}}}s:5:"local";a:7:{s:6:"col-sm";s:1:"2";s:6:"col-md";s:1:"3";s:6:"col-lg";s:1:"4";s:6:"col-xl";s:1:"5";s:7:"details";s:17:"img_mini#r#ntitle_3";s:24:"details-horizontal-align";s:6:"center";s:22:"details-vertical-align";s:6:"bottom";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Verbetes";i:2;i:1;}s:2:"en";a:2:{i:1;s:4:"Tags";i:2;i:1;}}}s:5:"local";a:2:{s:7:"details";s:26:"img_mini_title_description";s:9:"list-sort";s:4:"name";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:1:{i:1;s:26:"Administradores deste site";}s:2:"en";a:1:{i:1;s:19:"Site administrators";}}}s:5:"local";a:2:{s:10:"box-scheme";s:4:"card";s:7:"details";s:26:"img_mini_title_description";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Notícias";i:2;i:1;}s:2:"en";a:2:{i:1;s:8:"Notícias";i:2;i:1;}}}s:5:"local";a:2:{s:7:"details";s:47:"img_mini_title_description#r#ninfo_posted_elapsed";s:14:"list-direction";s:4:"desc";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:7:"Podcast";i:2;i:1;}s:2:"en";a:2:{i:1;s:7:"Podcast";i:2;i:1;}}}s:5:"local";a:1:{s:7:"details";s:72:"img_mini_title_description#r#nmedia_audio#r#ninfo_posted_elapsed#r#ninfo_owner";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:8:"Produtos";i:2;i:1;}s:2:"en";a:2:{i:1;s:8:"Products";i:2;i:1;}}}s:5:"local";a:2:{s:7:"details";s:41:"img_mini_title_description#r#nproduct_price";s:9:"list-sort";s:4:"name";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:11:"Relacionado";i:2;i:1;}s:2:"en";a:2:{i:1;s:7:"Related";i:2;i:1;}}}s:5:"local";a:1:{s:7:"details";s:41:"img_mini_title_description#r#nlist_location";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:22:"Resultados da pesquisa";i:2;i:1;}s:2:"en";a:2:{i:1;s:14:"Search results";i:2;i:1;}}}s:5:"local";a:1:{s:7:"details";s:41:"img_mini_title_description#r#nlist_location";}}a:1:{s:5:"local";a:2:{s:10:"box-scheme";s:6:"system";s:7:"details";s:26:"img_mini_title_description";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:5:"Canal";i:2;i:1;}s:2:"en";a:2:{i:1;s:7:"Channel";i:2;i:1;}}}s:5:"local";a:19:{s:12:"mod-position";s:6:"center";s:5:"wd-sm";s:2:"12";s:5:"wd-lg";s:2:"12";s:10:"margin-top";s:4:"auto";s:12:"margin-right";s:4:"auto";s:13:"margin-bottom";s:4:"auto";s:11:"margin-left";s:4:"auto";s:10:"box-scheme";s:4:"card";s:4:"list";s:7:"default";s:9:"list-type";s:4:"grid";s:10:"list-align";s:4:"left";s:6:"col-sm";s:1:"1";s:6:"col-lg";s:1:"1";s:7:"details";s:66:"title_4#r#nmedia_video#r#ndescription#r#ninfo_posted_elapsed#r#ninfo_owner";s:26:"details-horizontal-spacing";s:3:"025";s:24:"details-vertical-spacing";s:3:"025";s:10:"img-format";s:6:"square";s:9:"list_sort";s:7:"created";s:14:"list_direction";s:4:"desc";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:11:"Conectar-se";i:2;i:1;}s:2:"en";a:2:{i:1;s:6:"Conect";i:2;i:1;}}}s:5:"local";a:4:{s:15:"caption-display";i:1;s:8:"position";s:6:"center";s:5:"wd-sm";s:4:"auto";s:4:"list";s:9:"formulary";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Seções";i:2;i:1;}s:2:"en";a:2:{i:1;s:8:"Sections";i:2;i:1;}}}s:5:"local";a:16:{s:12:"mod-semantic";s:3:"nav";s:15:"mod-padding-top";s:1:"0";s:17:"mod-padding-right";s:1:"0";s:16:"mod-padding-left";s:1:"0";s:5:"wd-sm";s:6:"hidden";s:5:"wd-md";s:6:"hidden";s:5:"wd-lg";s:2:"12";s:10:"box-scheme";s:3:"nav";s:11:"list-layout";s:6:"inline";s:10:"list-align";s:6:"center";s:6:"col-sm";s:4:"auto";s:15:"list-column-gap";s:3:"012";s:12:"list-row-gap";s:3:"012";s:7:"details";s:14:"button_caption";s:24:"details-horizontal-align";s:6:"center";s:22:"details-vertical-align";s:6:"center";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"Navegação";i:2;i:1;}s:2:"en";a:2:{i:1;s:10:"Navigation";i:2;i:1;}}}s:5:"local";a:14:{s:12:"mod-semantic";s:3:"nav";s:15:"mod-padding-top";s:1:"0";s:17:"mod-padding-right";s:1:"0";s:18:"mod-padding-bottom";s:1:"0";s:16:"mod-padding-left";s:1:"0";s:10:"box-scheme";s:3:"nav";s:11:"list-layout";s:6:"inline";s:10:"list-align";s:6:"center";s:6:"col-sm";s:4:"auto";s:15:"list-column-gap";s:3:"012";s:12:"list-row-gap";s:4:"0012";s:7:"details";s:14:"button_caption";s:24:"details-horizontal-align";s:6:"center";s:22:"details-vertical-align";s:6:"center";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Seções";i:2;i:1;}s:2:"en";a:2:{i:1;s:8:"Sections";i:2;i:1;}}}s:5:"local";a:10:{s:15:"caption-display";i:1;s:12:"mod-semantic";s:3:"nav";s:5:"wd-sm";s:2:"12";s:11:"box-display";s:5:"block";s:11:"list-layout";s:7:"columns";s:10:"list-align";s:6:"center";s:6:"col-sm";s:1:"1";s:12:"list-row-gap";s:3:"050";s:7:"details";s:14:"button_caption";s:24:"details-horizontal-align";s:6:"center";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:7:"Páginas";i:2;i:1;}s:2:"en";a:2:{i:1;s:5:"Pages";i:2;i:1;}}}s:5:"local";a:7:{s:15:"caption-display";i:1;s:12:"mod-semantic";s:3:"nav";s:5:"wd-sm";s:4:"auto";s:11:"box-display";s:6:"inline";s:11:"list-layout";s:6:"inline";s:6:"col-sm";s:4:"auto";s:7:"details";s:7:"caption";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:12:"Navegar para";i:2;i:1;}s:2:"en";a:2:{i:1;s:11:"Navigate to";i:2;i:1;}}}s:5:"local";a:7:{s:15:"caption-display";i:1;s:12:"mod-semantic";s:3:"nav";s:5:"wd-sm";s:4:"auto";s:11:"box-display";s:6:"inline";s:11:"list-layout";s:6:"inline";s:6:"col-sm";s:4:"auto";s:7:"details";s:7:"caption";}}a:1:{s:5:"local";a:1:{s:7:"details";s:72:"info_posted_elapsed#r#ninfo_owner#r#ncontent#r#nlist_keywords#r#nlist_categories";}}a:1:{s:5:"local";a:1:{s:7:"details";s:98:"description#r#ninfo_event_date#r#ncontent#r#ncontact_phone#r#ncontact_site#r#nlist_keywords#r#nlist_categories";}}a:1:{s:5:"local";a:1:{s:7:"details";s:44:"img#r#ncontent#r#nlist_keywords#r#nlist_categories";}}a:1:{s:5:"local";a:1:{s:7:"details";s:77:"description#r#ninfo_posted#r#ninfo_owner#r#ncontent#r#nlist_keywords#r#nlist_categories";}}a:1:{s:5:"local";a:1:{s:7:"details";s:90:"description#r#ninfo_posted#r#ninfo_owner#r#nmedia_audio#r#ncontent#r#nlist_keywords#r#nlist_categories";}}a:1:{s:5:"local";a:1:{s:7:"details";s:67:"description#r#nproduct_price#r#ncontent#r#nlist_keywords#r#nlist_categories";}}a:1:{s:5:"local";a:1:{s:7:"details";s:85:"media_video#r#ninfo_posted_elapsed#r#ninfo_owner#r#ncontent#r#nlist_keywords#r#nlist_categories";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:33:"Painel do programa da Rádio Legal";i:2;i:1;}s:2:"en";a:2:{i:1;s:26:"Radio Legal program pannel";i:2;i:1;}}}s:5:"local";a:4:{s:8:"position";s:6:"center";s:5:"wd-sm";s:2:"12";s:4:"list";s:7:"details";s:7:"details";s:16:"content#r#ntitle_4";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:11:"Relacionado";i:2;i:1;}s:2:"en";a:2:{i:1;s:7:"Related";i:2;i:1;}}}s:5:"local";a:3:{s:15:"caption-display";i:1;s:11:"list-layout";s:6:"inline";s:7:"details";s:26:"img_mini_title_description";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"Pesquisar";i:2;i:1;}s:2:"en";a:2:{i:1;s:6:"Search";i:2;i:1;}}}s:5:"local";a:2:{s:4:"list";s:9:"formulary";s:11:"form-layout";s:6:"inline";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:9:"Pesquisar";i:2;i:1;}s:2:"en";a:2:{i:1;s:6:"Search";i:2;i:1;}}}s:5:"local";a:1:{s:4:"list";s:9:"formulary";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:11:"Ordenar por";i:2;i:1;}s:2:"en";a:2:{i:1;s:7:"Sort by";i:2;i:1;}}}s:5:"local";a:1:{s:4:"list";s:9:"formulary";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"Menu vertical";i:2;i:1;}s:2:"en";a:1:{i:1;s:13:"Vertical menu";}}}s:5:"local";a:2:{s:15:"caption-display";i:1;s:7:"details";s:7:"caption";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Título";i:2;i:1;}s:2:"en";a:2:{i:1;s:5:"title";i:2;i:1;}}}s:5:"local";a:3:{s:12:"mod-semantic";s:6:"header";s:4:"list";s:7:"details";s:7:"details";s:7:"title_1";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:5:"Vídeo";i:2;i:1;}s:2:"en";a:2:{i:1;s:5:"Vídeo";i:2;i:1;}}}s:5:"local";a:6:{s:12:"mod-position";s:6:"center";s:5:"wd-sm";s:2:"12";s:5:"wd-lg";s:1:"6";s:10:"box-scheme";s:3:"nav";s:4:"list";s:7:"details";s:7:"details";s:11:"media_video";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Padrão";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Default";}}}s:5:"local";a:26:{s:19:"document-text-color";s:7:"#c393a44";s:25:"document-background-color";s:7:"#cd1d2f9";s:21:"document-border-color";s:7:"#c048ba8";s:21:"document-header-color";s:7:"#c048ba8";s:19:"document-link-color";s:7:"#c893A44";s:21:"document-button-color";s:4:"#cfff";s:32:"document-button-background-color";s:7:"#c406e8e";s:28:"document-button-active-color";s:4:"#cfff";s:39:"document-button-active-background-color";s:7:"#c393A44";s:22:"panel-background-color";s:4:"#ccce";s:20:"spotlight-text-color";s:4:"#cfff";s:26:"spotlight-background-color";s:4:"#c69c";s:20:"spotlight-link-color";s:4:"#cfff";s:21:"card-background-color";s:4:"#cfff";s:26:"formulary-background-color";s:4:"#cccc";s:14:"nav-text-color";s:4:"#cfff";s:20:"nav-background-color";s:4:"#c000";s:16:"nav-border-color";s:4:"#c666";s:16:"nav-header-color";s:4:"#cccc";s:14:"nav-link-color";s:4:"#cccc";s:27:"nav-button-background-color";s:11:"transparent";s:16:"nav-button-color";s:4:"#cfff";s:17:"system-text-color";s:4:"#cfff";s:23:"system-background-color";s:7:"#c406e8e";s:19:"system-header-color";s:4:"#ce80";s:17:"system-link-color";s:4:"#ce80";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Branco";i:2;i:1;}s:2:"en";a:1:{i:1;s:5:"White";}}}s:5:"local";a:24:{s:19:"document-text-color";s:4:"#c000";s:25:"document-background-color";s:4:"#cfff";s:21:"document-border-color";s:4:"#c444";s:21:"document-header-color";s:4:"#c444";s:19:"document-mark-color";s:4:"#c888";s:22:"panel-background-color";s:4:"#cddd";s:20:"spotlight-text-color";s:4:"#cfff";s:26:"spotlight-background-color";s:4:"#c444";s:22:"spotlight-border-color";s:4:"#cddd";s:22:"spotlight-header-color";s:4:"#cfff";s:20:"spotlight-mark-color";s:4:"#cccc";s:21:"card-background-color";s:4:"#cccc";s:26:"formulary-background-color";s:4:"#cbbb";s:16:"input-text-color";s:4:"#c000";s:22:"input-background-color";s:4:"#ceee";s:16:"focus-text-color";s:4:"#c000";s:22:"focus-background-color";s:4:"#cfff";s:17:"button-text-color";s:4:"#cfff";s:23:"button-background-color";s:7:"#c406e8e";s:17:"active-text-color";s:4:"#cfff";s:23:"active-background-color";s:7:"#c393A44";s:16:"badge-text-color";s:4:"#cfff";s:22:"badge-background-color";s:18:"rgba(0, 0, 0, 0.5)";s:11:"table-strip";s:18:"rgba(0, 0, 0, 0.2)";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:5:"Vazio";i:2;i:1;}s:2:"en";a:1:{i:1;s:5:"Empty";}}}s:4:"html";s:0:"";}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:13:"ecolabore.css";i:2;i:1;}s:2:"en";a:1:{i:1;s:13:"ecolabore.css";}}}s:4:"html";s:55292:"#r#n#r#n/* system defaults */#r#n* { box-sizing:border-box; }#r#nhtml { -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%; }#r#nbody { font-size:100%; margin:0; padding:0; min-height:100%; width:100%; }#r#n.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); border:0; }#r#nh1, h2, h3, h4, h5, h6, hr { clear:both; }#r#ndiv, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, form, p, blockquote, th, td { margin:0; padding:0; }#r#nul { list-style-type:disc; }#r#nbutton + button, input + button, input + input { margin-left:.5em; }#r#n.center { display:inline-block; width:100%; text-align:center; } #r#n.center > * { display:inline-block; }#r#nhr { max-width:75%; height:0; margin:1.25rem auto; border-top:0; border-right:0; border-bottom:1px solid; border-left:0; }#r#n#r#n/* Zurb lists */#r#nul, ol, dl { margin-bottom:1rem; list-style-position:outside; line-height:1.6; }#r#nli { font-size:inherit; }#r#nul { margin-left:1.25rem; list-style-type:disc; }#r#nol { margin-left:1.25rem; }#r#nul ul, ol ul, ul ol, ol ol { margin-left:1.25rem; margin-bottom:0; }#r#nul.no-bullet, ol.no-bullet { margin-left:0; list-style:none; }#r#ndl { margin-bottom:1rem; }#r#ndl dt { margin-bottom:0.3rem; font-weight:bold; }#r#nfigure { margin:0; }#r#n#r#n/* Fonts and paragraphs*/#r#nbody { font-size:120%; }#r#n@media (min-width:321px) and (max-width:1200px) {#r#nbody { font-size:calc(120% - (20% * ((100vw - 320) / 880))); }#r#n}#r#n@media (min-width:1201px) {#r#nbody { font-size:100%; }#r#n}#r#n#r#n[paste:font-face]#r#nbody { font-family:[font_stack$paragraph-font-name]; font-size:[$paragraph-font-size]; letter-spacing:[$paragraph-letter-spacing]; text-shadow:[$paragraph-text-shadow]; }#r#np { text-align:[$paragraph-text-align]; line-height:[$paragraph-line-height]; margin-bottom:[$paragraph-margin-bottom]; margin-left:[$paragraph-margin-left]; text-indent:[$paragraph-text-indent]; }#r#nlabel, .label { font-family:[font_stack$label-font-name]; font-size:[$label-font-size]; font-weight:[$label-font-weight]; letter-spacing:[$label-letter-spacing]; text-shadow:[$label-text-shadow]; text-align:[$label-text-align]; line-height:[$label-line-height]; margin-bottom:[$label-margin-bottom]; margin-left:[$label-margin-left]; text-indent:[$label-text-indent]; }#r#nblockquote { font-family:[font_stack$blockquote-font-name]; font-size:[$blockquote-font-size]; letter-spacing:[$blockquote-letter-spacing]; text-shadow:[$blockquote-text-shadow]; text-align:[$blockquote-text-align]; }#r#nblockquote p { line-height:[$blockquote-line-height]; margin-bottom:[$blockquote-margin-bottom]; margin-left:[$blockquote-margin-left]; text-indent:[$blockquote-text-indent]; }#r#nlegend, .legend { font-family:[font_stack$legend-font-name]; font-size:[$legend-font-size]; font-weight:[$legend-font-weight]; letter-spacing:[$legend-letter-spacing]; text-shadow:[$legend-text-shadow]; text-align:[$legend-text-align]; line-height:[$legend-line-height]; margin-bottom:[$legend-margin-bottom]; margin-left:[$legend-margin-left]; text-indent:[$legend-text-indent]; }#r#na, .a { font-family:[font_stack$link-font-name]; font-size:[$link-font-size]; font-weight:[$link-font-weight]; letter-spacing:[$link-letter-spacing]; text-shadow:[$link-text-shadow]; }#r#nh1, h2, h3, h4, h5, h6 { font-family:[font_stack$header-font-name]; font-weight:[$header-font-weight]; letter-spacing:[$header-letter-spacing]; text-shadow:[$header-text-shadow]; text-align:[$header-text-align]; line-height:[$header-line-height]; margin-bottom:[$header-margin-bottom]; margin-left:[$header-margin-left]; text-indent:[$header-text-indent]; }#r#n.caption { font-family:[font_stack$caption-font-name]; font-size:[$caption-font-size]; font-weight:[$caption-font-weight]; letter-spacing:[$caption-letter-spacing]; text-shadow:[$caption-text-shadow]; text-align:[$caption-text-align]; line-height:[$caption-line-height]; margin-bottom:[$caption-margin-bottom]; margin-left:[$caption-margin-left]; text-indent:[$caption-text-indent]; }#r#n.bar { font-family:[font_stack$bar-font-name]; font-size:[$bar-font-size]; font-weight:[$bar-font-weight]; letter-spacing:[$bar-letter-spacing]; text-shadow:[$bar-text-shadow]; text-align:[$bar-text-align]; line-height:[$bar-line-height]; margin-bottom:[$bar-margin-bottom]; margin-left:[$bar-margin-left]; text-indent:[$bar-text-indent]; }#r#npre, code { font-family:[font_stack$pre-font-name]; font-size:[$pre-font-size]; font-weight:[$pre-font-weight]; letter-spacing:[$pre-letter-spacing]; text-shadow:[$pre-text-shadow]; text-align:[$pre-text-align]; line-height:[$pre-line-height]; margin-bottom:[$pre-margin-bottom]; margin-left:[$pre-margin-left]; text-indent:[$pre-text-indent]; }#r#n#r#nh1 { font-size:[$h1-sm-size]; }#r#nh2 { font-size:[$h2-sm-size]; }#r#nh3 { font-size:[$h3-sm-size]; }#r#nh4 { font-size:[$h4-sm-size]; }#r#nh5 { font-size:[$h5-sm-size]; }#r#nh6 { font-size:[$h6-sm-size]; }#r#n@media (min-width:321px) and (max-width:1200px) {#r#nh1 { font-size:calc([$h1-sm-size] - (([$h1-sm-size] - [$h1-xl-size]) * ((100vw - 320) / 880))); }#r#nh2 { font-size:calc([$h2-sm-size] - (([$h2-sm-size] - [$h2-xl-size]) * ((100vw - 320) / 880))); }#r#nh3 { font-size:calc([$h3-sm-size] - (([$h3-sm-size] - [$h3-xl-size]) * ((100vw - 320) / 880))); }#r#nh4 { font-size:calc([$h4-sm-size] - (([$h4-sm-size] - [$h4-xl-size]) * ((100vw - 320) / 880))); }#r#nh5 { font-size:calc([$h5-sm-size] - (([$h5-sm-size] - [$h5-xl-size]) * ((100vw - 320) / 880))); }#r#nh6 { font-size:calc([$h6-sm-size] - (([$h6-sm-size] - [$h6-xl-size]) * ((100vw - 320) / 880))); }#r#n}#r#n@media (min-width:1201px) {#r#nh1 { font-size:[$h1-xl-size]; }#r#nh2 { font-size:[$h2-xl-size]; }#r#nh3 { font-size:[$h3-xl-size]; }#r#nh4 { font-size:[$h4-xl-size]; }#r#nh5 { font-size:[$h5-xl-size]; }#r#nh6 { font-size:[$h6-xl-size]; }#r#n}#r#n#r#nem, i { font-style:italic; line-height:inherit; }#r#nstrong, b { font-weight:bold; line-height:inherit; }#r#nsmall { font-size:80%; line-height:inherit; }#r#nins { text-decoration:none; font-weight:bold; }#r#ndel { text-decoration:line-through; }#r#nu { text-decoration:underline; }#r#n#r#n/* Schemes */#r#nbody { color:[$document-text-color]; background-color:[$document-background-color]; border-color:[$document-border-color]; }#r#nh1, h2, h3, h4, h5, h6 { color:[$document-header-color]; }#r#n.caption { color:[$document-caption-color]; }#r#na, a:visited, .a { color:[$document-link-color]; }#r#na:hover, a:focus, a:active, .active { color:[$document-link-active-color]; }#r#nbutton, .button { font-family:[font_stack$document-button-font-name]; font-weight:[$document-button-font-weight]; font-size:[$document-button-font-size]; letter-spacing:[$document-button-letter-spacing]; border-radius:[$document-button-border-radius]; line-height:[$document-button-line-height]; padding:[$document-button-vertical-padding] [$document-button-horizontal-padding]; color:[$document-button-color]; background-color:[$document-button-background-color]; text-shadow:[$document-button-text-shadow]; border:[$document-button-border-width] [$document-button-border-style] [$document-button-border-color]; box-shadow:[$document-button-box-shadow]; transition:[$document-button-transition]; }#r#nbutton:hover, button:focus, button:active, button.active, .button:hover, .button:focus, .button:active, .button.active { color:[$document-button-active-color]; background-color:[$document-button-active-background-color]; text-shadow:[$document-button-active-text-shadow]; border:[$document-button-active-border-width] [$document-button-active-border-style] [$document-button-active-border-color]; box-shadow:[$document-button-active-box-shadow]; }#r#n.input { font-family:[font_stack$document-input-font-name]; font-weight:[$document-input-font-weight]; font-size:[$document-input-font-size]; letter-spacing:[$document-input-letter-spacing]; border-radius:[$document-input-border-radius]; line-height:[$document-input-line-height]; padding:[$document-input-vertical-padding] [$document-input-horizontal-padding]; color:[$document-input-color]; background-color:[$document-input-background-color]; text-shadow:[$document-input-text-shadow]; border:[$document-input-border-width] [$document-input-border-style] [$document-input-border-color]; box-shadow:[$document-input-box-shadow]; transition:[$document-input-transition]; }#r#n.input:hover, .input:focus { color:[$document-input-active-color]; background-color:[$document-input-active-background-color]; text-shadow:[$document-input-active-text-shadow]; border:[$document-input-active-border-width] [$document-input-active-border-style] [$document-input-active-border-color]; box-shadow:[$document-input-active-box-shadow]; }#r#n.img-smoke:before { box-shadow:inset 0 0 [$img-smoke-width] [$img-smoke-width] [$document-background-color], 0 0 0 3px [$document-background-color]; }#r#n#r#n.system { color:[$system-text-color]; background-color:[$system-background-color]; border-color:[$system-border-color]; padding:[$system-box-padding]; border-radius:[$system-box-border-radius]; box-shadow:[$system-box-shadow]; }#r#n.system h1, .system h2, .system h3, .system h4, .system h5, .system h6 { color:[$system-header-color]; }#r#n.system .caption { color:[$system-caption-color]; }#r#n.system a, .system a:visited, .system .a { color:[$system-link-color]; }#r#n.system a:hover, .system a:focus, .system a:active, .system .active { color:[$system-link-active-color]; }#r#n.system button, .system .button { font-family:[font_stack$system-button-font-name]; font-weight:[$system-button-font-weight]; font-size:[$system-button-font-size]; letter-spacing:[$system-button-letter-spacing]; border-radius:[$system-button-border-radius]; line-height:[$system-button-line-height]; padding:[$system-button-vertical-padding] [$system-button-horizontal-padding]; color:[$system-button-color]; background-color:[$system-button-background-color]; text-shadow:[$system-button-text-shadow]; border:[$system-button-border-width] [$system-button-border-style] [$system-button-border-color]; box-shadow:[$system-button-box-shadow]; transition:[$system-button-transition]; }#r#n.system button:hover, .system button:focus, .system button:active, .system button.active, .system .button:hover, .system .button:focus, .system .button:active, .system .button.active { color:[$system-button-active-color]; background-color:[$system-button-active-background-color]; text-shadow:[$system-button-active-text-shadow]; border:[$system-button-active-border-width] [$system-button-active-border-style] [$system-button-active-border-color]; box-shadow:[$system-button-active-box-shadow]; }#r#n.system .input { font-family:[font_stack$system-input-font-name]; font-weight:[$system-input-font-weight]; font-size:[$system-input-font-size]; letter-spacing:[$system-input-letter-spacing]; border-radius:[$system-input-border-radius]; line-height:[$system-input-line-height]; padding:[$system-input-vertical-padding] [$system-input-horizontal-padding]; color:[$system-input-color]; background-color:[$system-input-background-color]; text-shadow:[$system-input-text-shadow]; border:[$system-input-border-width] [$system-input-border-style] [$system-input-border-color]; box-shadow:[$system-input-box-shadow]; transition:[$system-input-transition]; }#r#n.system .input:hover, .system .input:focus { color:[$system-input-active-color]; background-color:[$system-input-active-background-color]; text-shadow:[$system-input-active-text-shadow]; border:[$system-input-active-border-width] [$system-input-active-border-style] [$system-input-active-border-color]; box-shadow:[$system-input-active-box-shadow]; }#r#n.system .img-smoke:before { box-shadow:inset 0 0 [$img-smoke-width] [$img-smoke-width] [$system-background-color], 0 0 0 3px [$system-background-color]; }#r#n#r#n.panel { color:[$panel-text-color]; background-color:[$panel-background-color]; border-color:[$panel-border-color]; padding:[$panel-box-padding]; border-radius:[$panel-box-border-radius]; box-shadow:[$panel-box-shadow]; }#r#n.panel h1, .panel h2, .panel h3, .panel h4, .panel h5, .panel h6 { color:[$panel-header-color]; }#r#n.panel .caption { color:[$panel-caption-color]; }#r#n.panel a, .panel a:visited, .panel .a { color:[$panel-link-color]; }#r#n.panel a:hover, .panel a:focus, .panel a:active, .panel .active { color:[$panel-link-active-color]; }#r#n.panel button, .panel .button { font-family:[font_stack$panel-button-font-name]; font-weight:[$panel-button-font-weight]; font-size:[$panel-button-font-size]; letter-spacing:[$panel-button-letter-spacing]; border-radius:[$panel-button-border-radius]; line-height:[$panel-button-line-height]; padding:[$panel-button-vertical-padding] [$panel-button-horizontal-padding]; color:[$panel-button-color]; background-color:[$panel-button-background-color]; text-shadow:[$panel-button-text-shadow]; border:[$panel-button-border-width] [$panel-button-border-style] [$panel-button-border-color]; box-shadow:[$panel-button-box-shadow]; transition:[$panel-button-transition]; }#r#n.panel button:hover, .panel button:focus, .panel button:active, .panel button.active, .panel .button:hover, .panel .button:focus, .panel .button:active, .panel .button.active { color:[$panel-button-active-color]; background-color:[$panel-button-active-background-color]; text-shadow:[$panel-button-active-text-shadow]; border:[$panel-button-active-border-width] [$panel-button-active-border-style] [$panel-button-active-border-color]; box-shadow:[$panel-button-active-box-shadow]; }#r#n.panel .input { font-family:[font_stack$panel-input-font-name]; font-weight:[$panel-input-font-weight]; font-size:[$panel-input-font-size]; letter-spacing:[$panel-input-letter-spacing]; border-radius:[$panel-input-border-radius]; line-height:[$panel-input-line-height]; padding:[$panel-input-vertical-padding] [$panel-input-horizontal-padding]; color:[$panel-input-color]; background-color:[$panel-input-background-color]; text-shadow:[$panel-input-text-shadow]; border:[$panel-input-border-width] [$panel-input-border-style] [$panel-input-border-color]; box-shadow:[$panel-input-box-shadow]; transition:[$panel-input-transition]; }#r#n.panel .input:hover, .panel .input:focus { color:[$panel-input-active-color]; background-color:[$panel-input-active-background-color]; text-shadow:[$panel-input-active-text-shadow]; border:[$panel-input-active-border-width] [$panel-input-active-border-style] [$panel-input-active-border-color]; box-shadow:[$panel-input-active-box-shadow]; }#r#n.panel .img-smoke:before { box-shadow:inset 0 0 [$img-smoke-width] [$img-smoke-width] [$panel-background-color], 0 0 0 3px [$panel-background-color]; }#r#n#r#n.nav { color:[$nav-text-color]; background-color:[$nav-background-color]; border-color:[$nav-border-color]; padding:[$nav-box-padding]; border-radius:[$nav-box-border-radius]; box-shadow:[$nav-box-shadow]; }#r#n.nav h1, .nav h2, .nav h3, .nav h4, .nav h5, .nav h6 { color:[$nav-header-color]; }#r#n.nav .caption { color:[$nav-caption-color]; }#r#n.nav a, .nav a:visited, .nav .a { color:[$nav-link-color]; }#r#n.nav a:hover, .nav a:focus, .nav a:active, .nav .active { color:[$nav-link-active-color]; }#r#n.nav button, .nav .button { font-family:[font_stack$nav-button-font-name]; font-weight:[$nav-button-font-weight]; font-size:[$nav-button-font-size]; letter-spacing:[$nav-button-letter-spacing]; border-radius:[$nav-button-border-radius]; line-height:[$nav-button-line-height]; padding:[$nav-button-vertical-padding] [$nav-button-horizontal-padding]; color:[$nav-button-color]; background-color:[$nav-button-background-color]; text-shadow:[$nav-button-text-shadow]; border:[$nav-button-border-width] [$nav-button-border-style] [$nav-button-border-color]; box-shadow:[$nav-button-box-shadow]; transition:[$nav-button-transition]; }#r#n.nav button:hover, .nav button:focus, .nav button:active, .nav button.active, .nav .button:hover, .nav .button:focus, .nav .button:active, .nav .button.active { color:[$nav-button-active-color]; background-color:[$nav-button-active-background-color]; text-shadow:[$nav-button-active-text-shadow]; border:[$nav-button-active-border-width] [$nav-button-active-border-style] [$nav-button-active-border-color]; box-shadow:[$nav-button-active-box-shadow]; }#r#n.nav .input { font-family:[font_stack$nav-input-font-name]; font-weight:[$nav-input-font-weight]; font-size:[$nav-input-font-size]; letter-spacing:[$nav-input-letter-spacing]; border-radius:[$nav-input-border-radius]; line-height:[$nav-input-line-height]; padding:[$nav-input-vertical-padding] [$nav-input-horizontal-padding]; color:[$nav-input-color]; background-color:[$nav-input-background-color]; text-shadow:[$nav-input-text-shadow]; border:[$nav-input-border-width] [$nav-input-border-style] [$nav-input-border-color]; box-shadow:[$nav-input-box-shadow]; transition:[$nav-input-transition]; }#r#n.nav .input:hover, .nav .input:focus { color:[$nav-input-active-color]; background-color:[$nav-input-active-background-color]; text-shadow:[$nav-input-active-text-shadow]; border:[$nav-input-active-border-width] [$nav-input-active-border-style] [$nav-input-active-border-color]; box-shadow:[$nav-input-active-box-shadow]; }#r#n.nav .img-smoke:before { box-shadow:inset 0 0 [$img-smoke-width] [$img-smoke-width] [$nav-background-color], 0 0 0 3px [$nav-background-color]; }#r#n#r#n.spotlight { color:[$spotlight-text-color]; background-color:[$spotlight-background-color]; border-color:[$spotlight-border-color]; padding:[$spotlight-box-padding]; border-radius:[$spotlight-box-border-radius]; box-shadow:[$spotlight-box-shadow]; }#r#n.spotlight h1, .spotlight h2, .spotlight h3, .spotlight h4, .spotlight h5, .spotlight h6 { color:[$spotlight-header-color]; }#r#n.spotlight .caption { color:[$spotlight-caption-color]; }#r#n.spotlight a, .spotlight a:visited, .spotlight .a { color:[$spotlight-link-color]; }#r#n.spotlight a:hover, .spotlight a:focus, .spotlight a:active, .spotlight .active { color:[$spotlight-link-active-color]; }#r#n.spotlight button, .spotlight .button { font-family:[font_stack$spotlight-button-font-name]; font-weight:[$spotlight-button-font-weight]; font-size:[$spotlight-button-font-size]; letter-spacing:[$spotlight-button-letter-spacing]; border-radius:[$spotlight-button-border-radius]; line-height:[$spotlight-button-line-height]; padding:[$spotlight-button-vertical-padding] [$spotlight-button-horizontal-padding]; color:[$spotlight-button-color]; background-color:[$spotlight-button-background-color]; text-shadow:[$spotlight-button-text-shadow]; border:[$spotlight-button-border-width] [$spotlight-button-border-style] [$spotlight-button-border-color]; box-shadow:[$spotlight-button-box-shadow]; transition:[$spotlight-button-transition]; }#r#n.spotlight button:hover, .spotlight button:focus, .spotlight button:active, .spotlight button.active, .spotlight .button:hover, .spotlight .button:focus, .spotlight .button:active, .spotlight .button.active { color:[$spotlight-button-active-color]; background-color:[$spotlight-button-active-background-color]; text-shadow:[$spotlight-button-active-text-shadow]; border:[$spotlight-button-active-border-width] [$spotlight-button-active-border-style] [$spotlight-button-active-border-color]; box-shadow:[$spotlight-button-active-box-shadow]; }#r#n.spotlight .input { font-family:[font_stack$spotlight-input-font-name]; font-weight:[$spotlight-input-font-weight]; font-size:[$spotlight-input-font-size]; letter-spacing:[$spotlight-input-letter-spacing]; border-radius:[$spotlight-input-border-radius]; line-height:[$spotlight-input-line-height]; padding:[$spotlight-input-vertical-padding] [$spotlight-input-horizontal-padding]; color:[$spotlight-input-color]; background-color:[$spotlight-input-background-color]; text-shadow:[$spotlight-input-text-shadow]; border:[$spotlight-input-border-width] [$spotlight-input-border-style] [$spotlight-input-border-color]; box-shadow:[$spotlight-input-box-shadow]; transition:[$spotlight-input-transition]; }#r#n.spotlight .input:hover, .spotlight .input:focus { color:[$spotlight-input-active-color]; background-color:[$spotlight-input-active-background-color]; text-shadow:[$spotlight-input-active-text-shadow]; border:[$spotlight-input-active-border-width] [$spotlight-input-active-border-style] [$spotlight-input-active-border-color]; box-shadow:[$spotlight-input-active-box-shadow]; }#r#n.spotlight .img-smoke:before { box-shadow:inset 0 0 [$img-smoke-width] [$img-smoke-width] [$spotlight-background-color], 0 0 0 3px [$spotlight-background-color]; }#r#n#r#n.formulary { color:[$formulary-text-color]; background-color:[$formulary-background-color]; border-color:[$formulary-border-color]; padding:[$formulary-box-padding]; border-radius:[$formulary-box-border-radius]; box-shadow:[$formulary-box-shadow]; }#r#n.formulary h1, .formulary h2, .formulary h3, .formulary h4, .formulary h5, .formulary h6 { color:[$formulary-header-color]; }#r#n.formulary .caption { color:[$formulary-caption-color]; }#r#n.formulary a, .formulary a:visited, .formulary .a { color:[$formulary-link-color]; }#r#n.formulary a:hover, .formulary a:focus, .formulary a:active, .formulary .active { color:[$formulary-link-active-color]; }#r#n.formulary button, .formulary .button { font-family:[font_stack$formulary-button-font-name]; font-weight:[$formulary-button-font-weight]; font-size:[$formulary-button-font-size]; letter-spacing:[$formulary-button-letter-spacing]; border-radius:[$formulary-button-border-radius]; line-height:[$formulary-button-line-height]; padding:[$formulary-button-vertical-padding] [$formulary-button-horizontal-padding]; color:[$formulary-button-color]; background-color:[$formulary-button-background-color]; text-shadow:[$formulary-button-text-shadow]; border:[$formulary-button-border-width] [$formulary-button-border-style] [$formulary-button-border-color]; box-shadow:[$formulary-button-box-shadow]; transition:[$formulary-button-transition]; }#r#n.formulary button:hover, .formulary button:focus, .formulary button:active, .formulary button.active, .formulary .button:hover, .formulary .button:focus, .formulary .button:active, .formulary .button.active { color:[$formulary-button-active-color]; background-color:[$formulary-button-active-background-color]; text-shadow:[$formulary-button-active-text-shadow]; border:[$formulary-button-active-border-width] [$formulary-button-active-border-style] [$formulary-button-active-border-color]; box-shadow:[$formulary-button-active-box-shadow]; }#r#n.formulary .input { font-family:[font_stack$formulary-input-font-name]; font-weight:[$formulary-input-font-weight]; font-size:[$formulary-input-font-size]; letter-spacing:[$formulary-input-letter-spacing]; border-radius:[$formulary-input-border-radius]; line-height:[$formulary-input-line-height]; padding:[$formulary-input-vertical-padding] [$formulary-input-horizontal-padding]; color:[$formulary-input-color]; background-color:[$formulary-input-background-color]; text-shadow:[$formulary-input-text-shadow]; border:[$formulary-input-border-width] [$formulary-input-border-style] [$formulary-input-border-color]; box-shadow:[$formulary-input-box-shadow]; transition:[$formulary-input-transition]; }#r#n.formulary .input:hover, .formulary .input:focus { color:[$formulary-input-active-color]; background-color:[$formulary-input-active-background-color]; text-shadow:[$formulary-input-active-text-shadow]; border:[$formulary-input-active-border-width] [$formulary-input-active-border-style] [$formulary-input-active-border-color]; box-shadow:[$formulary-input-active-box-shadow]; }#r#n.formulary .img-smoke:before { box-shadow:inset 0 0 [$img-smoke-width] [$img-smoke-width] [$formulary-background-color], 0 0 0 3px [$formulary-background-color]; }#r#n#r#n.card { color:[$card-text-color]; background-color:[$card-background-color]; border-color:[$card-border-color]; padding:[$card-box-padding]; border-radius:[$card-box-border-radius]; box-shadow:[$card-box-shadow]; }#r#n.card h1, .card h2, .card h3, .card h4, .card h5, .card h6 { color:[$card-header-color]; }#r#n.card .caption { color:[$card-caption-color]; }#r#n.card a, .card a:visited, .card .a { color:[$card-link-color]; }#r#n.card a:hover, .card a:focus, .card a:active, .card .active { color:[$card-link-active-color]; }#r#n.card button, .card .button { font-family:[font_stack$card-button-font-name]; font-weight:[$card-button-font-weight]; font-size:[$card-button-font-size]; letter-spacing:[$card-button-letter-spacing]; border-radius:[$card-button-border-radius]; line-height:[$card-button-line-height]; padding:[$card-button-vertical-padding] [$card-button-horizontal-padding]; color:[$card-button-color]; background-color:[$card-button-background-color]; text-shadow:[$card-button-text-shadow]; border:[$card-button-border-width] [$card-button-border-style] [$card-button-border-color]; box-shadow:[$card-button-box-shadow]; transition:[$card-button-transition]; }#r#n.card button:hover, .card button:focus, .card button:active, .card button.active, .card .button:hover, .card .button:focus, .card .button:active, .card .button.active { color:[$card-button-active-color]; background-color:[$card-button-active-background-color]; text-shadow:[$card-button-active-text-shadow]; border:[$card-button-active-border-width] [$card-button-active-border-style] [$card-button-active-border-color]; box-shadow:[$card-button-active-box-shadow]; }#r#n.card .input { font-family:[font_stack$card-input-font-name]; font-weight:[$card-input-font-weight]; font-size:[$card-input-font-size]; letter-spacing:[$card-input-letter-spacing]; border-radius:[$card-input-border-radius]; line-height:[$card-input-line-height]; padding:[$card-input-vertical-padding] [$card-input-horizontal-padding]; color:[$card-input-color]; background-color:[$card-input-background-color]; text-shadow:[$card-input-text-shadow]; border:[$card-input-border-width] [$card-input-border-style] [$card-input-border-color]; box-shadow:[$card-input-box-shadow]; transition:[$card-input-transition]; }#r#n.card .input:hover, .card .input:focus { color:[$card-input-active-color]; background-color:[$card-input-active-background-color]; text-shadow:[$card-input-active-text-shadow]; border:[$card-input-active-border-width] [$card-input-active-border-style] [$card-input-active-border-color]; box-shadow:[$card-input-active-box-shadow]; }#r#n.card .img-smoke:before { box-shadow:inset 0 0 [$img-smoke-width] [$img-smoke-width] [$card-background-color], 0 0 0 3px [$card-background-color]; }#r#n#r#n/* Positioning */#r#n.mod { padding-top:[$mod-padding-top]; padding-right:[$mod-padding-right]; padding-bottom:[$mod-padding-bottom]; padding-left:[$mod-padding-left]; }#r#n.mod .position-left, .mod .float-left { padding-left:0; }#r#n.mod .position-center { padding-left:0; padding-right:0; }#r#n.mod .position-right, .mod .position-float-right { padding-right:0; }#r#n#r#n.position-inline { display:inline-block; position:relative; vertical-align:top; }#r#n.position-left { display:block; position:relative; margin-left:0; margin-right:auto; }#r#n.position-center { display:block; position:relative; margin-left:auto; margin-right:auto; }#r#n.position-right { display:block; position:relative; margin-left:auto; margin-right:0; }#r#n.position-float-left { display:block; position:relative; float:left; }#r#n.position-float-right { display:block; position:relative; float:right; }#r#n#r#n.wd-sm-auto { width:auto; }#r#n#r#n.wd-sm-1 { width:8.1%; }#r#n.wd-sm-2 { width:16.4%; }#r#n.wd-sm-3 { width:24.7%; }#r#n.wd-sm-4 { width:33.1%; }#r#n.wd-sm-5 { width:41.4%; }#r#n.wd-sm-6 { width:48.7%; }#r#n.wd-sm-7 { width:58.1%; }#r#n.wd-sm-8 { width:66.4%; }#r#n.wd-sm-9 { width:74.7%; }#r#n.wd-sm-10 { width:83.1%; }#r#n.wd-sm-11 { width:91.4%; }#r#n.wd-sm-12 { width:100%; }#r#n#r#n.position-float-left.wd-sm-1, .position-float-right.wd-sm-1 { width:8.1vw; }#r#n.position-float-left.wd-sm-2, .position-float-right.wd-sm-2 { width:16.4vw; }#r#n.position-float-left.wd-sm-3, .position-float-right.wd-sm-3 { width:24.7vw; }#r#n.position-float-left.wd-sm-4, .position-float-right.wd-sm-4 { width:33.1vw; }#r#n.position-float-left.wd-sm-5, .position-float-right.wd-sm-5 { width:41.4vw; }#r#n.position-float-left.wd-sm-6, .position-float-right.wd-sm-6 { width:48.7vw; }#r#n.position-float-left.wd-sm-7, .position-float-right.wd-sm-7 { width:58.1vw; }#r#n.position-float-left.wd-sm-8, .position-float-right.wd-sm-8 { width:66.4vw; }#r#n.position-float-left.wd-sm-9, .position-float-right.wd-sm-9 { width:74.7vw; }#r#n#r#n.position-float-left.wd-sm-10, .position-float-left.wd-sm-11, .position-float-left.wd-sm-12 { float:none; margin-left:0; margin-right:auto; } #r#n.position-float-right.wd-sm-10, .position-float-right.wd-sm-11, .position-float-right.wd-sm-12 { float:none; margin-left:auto; margin-right:0; } #r#n#r#n@media (min-width:[$media-md-min]) {#r#n.wd-md-1 { width:8.1%; }#r#n.wd-md-2 { width:16.4%; }#r#n.wd-md-3 { width:24.7%; }#r#n.wd-md-4 { width:33.1%; }#r#n.wd-md-5 { width:41.4%; }#r#n.wd-md-6 { width:48.7%; }#r#n.wd-md-7 { width:58.1%; }#r#n.wd-md-8 { width:66.4%; }#r#n.wd-md-9 { width:74.7%; }#r#n.wd-md-10 { width:83.1%; }#r#n.wd-md-11 { width:91.4%; }#r#n.wd-md-12 { width:100%; }#r#n#r#n.position-float-left.wd-md-1, .position-float-right.wd-md-1 { width:8.1vw; }#r#n.position-float-left.wd-md-2, .position-float-right.wd-md-2 { width:16.4vw; }#r#n.position-float-left.wd-md-3, .position-float-right.wd-md-3 { width:24.7vw; }#r#n.position-float-left.wd-md-4, .position-float-right.wd-md-4 { width:33.1vw; }#r#n.position-float-left.wd-md-5, .position-float-right.wd-md-5 { width:41.4vw; }#r#n.position-float-left.wd-md-6, .position-float-right.wd-md-6 { width:48.7vw; }#r#n.position-float-left.wd-md-7, .position-float-right.wd-md-7 { width:58.1vw; }#r#n.position-float-left.wd-md-8, .position-float-right.wd-md-8 { width:66.4vw; }#r#n.position-float-left.wd-md-9, .position-float-right.wd-md-9 { width:74.7vw; }#r#n#r#n.position-float-left.wd-md-10, .position-float-left.wd-md-11, .position-float-left.wd-md-12 { float:none; margin-left:0; margin-right:auto; } #r#n.position-float-right.wd-md-10, .position-float-right.wd-md-11, .position-float-right.wd-md-12 { float:none; margin-left:auto; margin-right:0; } #r#n}#r#n#r#n@media (min-width:[$media-lg-min]) {#r#n.wd-lg-1 { width:8.1%; }#r#n.wd-lg-2 { width:16.4%; }#r#n.wd-lg-3 { width:24.7%; }#r#n.wd-lg-4 { width:33.1%; }#r#n.wd-lg-5 { width:41.4%; }#r#n.wd-lg-6 { width:48.7%; }#r#n.wd-lg-7 { width:58.1%; }#r#n.wd-lg-8 { width:66.4%; }#r#n.wd-lg-9 { width:74.7%; }#r#n.wd-lg-10 { width:83.1%; }#r#n.wd-lg-11 { width:91.4%; }#r#n.wd-lg-12 { width:100%; }#r#n#r#n.position-float-left.wd-lg-1, .position-float-right.wd-lg-1 { width:8.1vw; }#r#n.position-float-left.wd-lg-2, .position-float-right.wd-lg-2 { width:16.4vw; }#r#n.position-float-left.wd-lg-3, .position-float-right.wd-lg-3 { width:24.7vw; }#r#n.position-float-left.wd-lg-4, .position-float-right.wd-lg-4 { width:33.1vw; }#r#n.position-float-left.wd-lg-5, .position-float-right.wd-lg-5 { width:41.4vw; }#r#n.position-float-left.wd-lg-6, .position-float-right.wd-lg-6 { width:48.7vw; }#r#n.position-float-left.wd-lg-7, .position-float-right.wd-lg-7 { width:58.1vw; }#r#n.position-float-left.wd-lg-8, .position-float-right.wd-lg-8 { width:66.4vw; }#r#n.position-float-left.wd-lg-9, .position-float-right.wd-lg-9 { width:74.7vw; }#r#n#r#n.position-float-left.wd-lg-10, .position-float-left.wd-lg-11, .position-float-left.wd-lg-12 { float:none; margin-left:0; margin-right:auto; } #r#n.position-float-right.wd-lg-10, .position-float-right.wd-lg-11, .position-float-right.wd-lg-12 { float:none; margin-left:auto; margin-right:0; } #r#n}#r#n#r#n@media (min-width:[$media-xl-min]) {#r#n.wd-xl-1 { width:8.1%; }#r#n.wd-xl-2 { width:16.4%; }#r#n.wd-xl-3 { width:24.7%; }#r#n.wd-xl-4 { width:33.1%; }#r#n.wd-xl-5 { width:41.4%; }#r#n.wd-xl-6 { width:48.7%; }#r#n.wd-xl-7 { width:58.1%; }#r#n.wd-xl-8 { width:66.4%; }#r#n.wd-xl-9 { width:74.7%; }#r#n.wd-xl-10 { width:83.1%; }#r#n.wd-xl-11 { width:91.4%; }#r#n.wd-xl-12 { width:100%; }#r#n#r#n.position-float-left.wd-xl-1, .position-float-right.wd-xl-1 { width:8.1vw; }#r#n.position-float-left.wd-xl-2, .position-float-right.wd-xl-2 { width:16.4vw; }#r#n.position-float-left.wd-xl-3, .position-float-right.wd-xl-3 { width:24.7vw; }#r#n.position-float-left.wd-xl-4, .position-float-right.wd-xl-4 { width:33.1vw; }#r#n.position-float-left.wd-xl-5, .position-float-right.wd-xl-5 { width:41.4vw; }#r#n.position-float-left.wd-xl-6, .position-float-right.wd-xl-6 { width:48.7vw; }#r#n.position-float-left.wd-xl-7, .position-float-right.wd-xl-7 { width:58.1vw; }#r#n.position-float-left.wd-xl-8, .position-float-right.wd-xl-8 { width:66.4vw; }#r#n.position-float-left.wd-xl-9, .position-float-right.wd-xl-9 { width:74.7vw; }#r#n#r#n.position-float-left.wd-xl-10, .position-float-left.wd-xl-11, .position-float-left.wd-xl-12 { float:none; margin-left:0; margin-right:auto; } #r#n.position-float-right.wd-xl-10, .position-float-right.wd-xl-11, .position-float-right.wd-xl-12 { float:none; margin-left:auto; margin-right:0; } #r#n#r#n.wd-xl-hidden { display:none; }#r#n}#r#n@media (max-width:[$media-sm-max]) {#r#n.wd-sm-hidden { display:none; }#r#n}#r#n@media (min-width:[$media-md-min]) and (max-width:[$media-md-max]) {#r#n.wd-md-hidden { display:none; }#r#n}#r#n@media (min-width:[$media-lg-min]) and (max-width:[$media-lg-max]) {#r#n.wd-lg-hidden { display:none; }#r#n}#r#n#r#n/* Box */#r#n.box-display-block { display:block; }#r#n.box-display-inline { display:inline-block; vertical-align:top; }#r#n.box-display-inline > div { display:inline-block; }#r#n.caption { display:inline-block; vertical-align:top; }#r#n.box-shadow-off { box-shadow:none; }#r#n.box-shadow-on { box-shadow:[$box-shadow]; }#r#n.box-shadow-create { border:1px solid #c000; background-color:#cfff; color:#c000; }#r#n#r#n/* Inline list */#r#n.list-layout-inline > div { display:inline-block; vertical-align:top; text-align:left; }#r#n.list-layout-inline > div > div { display:inline-block; }#r#n.list-layout-inline.list-align-center { text-align:center; }#r#n.list-layout-inline.list-align-right { text-align:right; }#r#n#r#n.list-layout-inline.col-sm-1 > div { width:99.8%; }#r#n.list-layout-inline.col-sm-2 > div { width:49.8%; }#r#n.list-layout-inline.col-sm-3 > div { width:33.1%; }#r#n.list-layout-inline.col-sm-4 > div { width:24.7%; }#r#n.list-layout-inline.col-sm-5 > div { width:19.7%; }#r#n.list-layout-inline.col-sm-6 > div { width:16.4%; }#r#n#r#n@media (min-width:[$media-md-min]) {#r#n.list-layout-inline.col-md-auto > div { width:auto; }#r#n#r#n.list-layout-inline.col-md-1 > div { width:99.8%; }#r#n.list-layout-inline.col-md-2 > div { width:49.8%; }#r#n.list-layout-inline.col-md-3 > div { width:33.1%; }#r#n.list-layout-inline.col-md-4 > div { width:24.7%; }#r#n.list-layout-inline.col-md-5 > div { width:19.7%; }#r#n.list-layout-inline.col-md-6 > div { width:16.4%; }#r#n}#r#n#r#n@media (min-width:[$media-lg-min]) {#r#n.list-layout-inline.col-lg-auto > div { width:auto; }#r#n#r#n.list-layout-inline.col-lg-1 > div { width:99.8%; }#r#n.list-layout-inline.col-lg-2 > div { width:49.8%; }#r#n.list-layout-inline.col-lg-3 > div { width:33.1%; }#r#n.list-layout-inline.col-lg-4 > div { width:24.7%; }#r#n.list-layout-inline.col-lg-5 > div { width:19.7%; }#r#n.list-layout-inline.col-lg-6 > div { width:16.4%; }#r#n}#r#n#r#n@media (min-width:[$media-xl-min]) {#r#n.list-layout-inline.col-xl-auto > div { width:auto; }#r#n#r#n.list-layout-inline.col-xl-1 > div { width:99.8%; }#r#n.list-layout-inline.col-xl-2 > div { width:49.8%; }#r#n.list-layout-inline.col-xl-3 > div { width:33.1%; }#r#n.list-layout-inline.col-xl-4 > div { width:24.7%; }#r#n.list-layout-inline.col-xl-5 > div { width:19.7%; }#r#n.list-layout-inline.col-xl-6 > div { width:16.4%; }#r#n}#r#n#r#n.list-layout-inline > div { padding-top:calc([$list-row-gap] / 2); padding-right:calc([$list-column-gap] / 2); padding-bottom:calc([$list-row-gap] / 2); padding-left:calc([$list-column-gap] / 2); }#r#n#r#n.list-layout-inline.list-column-gap-000 > div { padding-left:0; padding-right:0; }#r#n.list-layout-inline.list-column-gap-012 > div { padding-left:0.0625rem; padding-right:0.0625rem; }#r#n.list-layout-inline.list-column-gap-025 > div { padding-left:.125rem; padding-right:.125rem; }#r#n.list-layout-inline.list-column-gap-037 > div { padding-left:.1875rem; padding-right:.1875rem; }#r#n.list-layout-inline.list-column-gap-050 > div { padding-left:.25rem; padding-right:.25rem; }#r#n.list-column-gap-075 > div { padding-left:.375rem; padding-right:.375rem; }#r#n.list-layout-inline.list-column-gap-100 > div { padding-left:.5rem; padding-right:.5rem; }#r#n.list-layout-inline.list-column-gap-125 > div { padding-left:.625rem; padding-right:.625rem; }#r#n.list-layout-inline.list-column-gap-150 > div { padding-left:.75rem; padding-right:.75rem; }#r#n.list-layout-inline.list-column-gap-200 > div { padding-left:1rem; padding-right:1rem; }#r#n#r#n.list-layout-inline.list-row-gap-000 > div { padding-top:0; padding-bottom:0; }#r#n.list-layout-inline.list-row-gap-012 > div { padding-top:.0625rem; padding-bottom:0.0625rem; }#r#n.list-layout-inline.list-row-gap-025 > div { padding-top:.125rem; padding-bottom:0.125rem; }#r#n.list-layout-inline.list-row-gap-037 > div { padding-top:.1875rem; padding-bottom:0.1875rem; }#r#n.list-layout-inline.list-row-gap-050 > div { padding-top:.25rem; padding-bottom:0.25rem; }#r#n.list-layout-inline.list-row-gap-075 > div { padding-top:0.375rem; padding-bottom:.375rem; }#r#n.list-layout-inline.list-row-gap-100 > div { padding-top:.5rem; padding-bottom:0.5rem; }#r#n.list-layout-inline.list-row-gap-125 > div { padding-top:.625rem; padding-bottom:0.625rem; }#r#n.list-layout-inline.list-row-gap-150 > div { padding-top:.75rem; padding-bottom:0.75rem; }#r#n.list-layout-inline.list-row-gap-200 > div { padding-top:1rem; padding-bottom:1rem; }#r#n#r#n/* Grid list */#r#n.list-layout-grid { display:grid; justify-content:start; }#r#n.list-layout-grid.list-align-center { justify-content:center; }#r#n.list-layout-grid.list-align-right { justify-content:end; }#r#n#r#n.list-layout-grid { grid-template-columns:auto; } #r#n.list-layout-grid.col-sm-2 { grid-template-columns:auto auto; } #r#n.list-layout-grid.col-sm-3 { grid-template-columns:auto auto auto; } #r#n.list-layout-grid.col-sm-4 { grid-template-columns:auto auto auto auto; } #r#n.list-layout-grid.col-sm-5 { grid-template-columns:auto auto auto auto auto; } #r#n.list-layout-grid.col-sm-6 { grid-template-columns:auto auto auto auto auto auto; } #r#n#r#n@media (min-width:[$media-md-min]) {#r#n.list-layout-grid.col-md-1 { grid-template-columns:auto; } #r#n.list-layout-grid.col-md-2 { grid-template-columns:auto auto; } #r#n.list-layout-grid.col-md-3 { grid-template-columns:auto auto auto; } #r#n.list-layout-grid.col-md-4 { grid-template-columns:auto auto auto auto; } #r#n.list-layout-grid.col-md-5 { grid-template-columns:auto auto auto auto auto; } #r#n.list-layout-grid.col-md-6 { grid-template-columns:auto auto auto auto auto auto; } #r#n}#r#n@media (min-width:[$media-md-min]) {#r#n.list-layout-grid.col-lg-1 { grid-template-columns:auto; } #r#n.list-layout-grid.col-lg-2 { grid-template-columns:auto auto; } #r#n.list-layout-grid.col-lg-3 { grid-template-columns:auto auto auto; } #r#n.list-layout-grid.col-lg-4 { grid-template-columns:auto auto auto auto; } #r#n.list-layout-grid.col-lg-5 { grid-template-columns:auto auto auto auto auto; } #r#n.list-layout-grid.col-lg-6 { grid-template-columns:auto auto auto auto auto auto; } #r#n}#r#n@media (min-width:[$media-xl-min]) {#r#n.list-layout-grid.col-xl-1 { grid-template-columns:auto; } #r#n.list-layout-grid.col-xl-2 { grid-template-columns:auto auto; } #r#n.list-layout-grid.col-xl-3 { grid-template-columns:auto auto auto; } #r#n.list-layout-grid.col-xl-4 { grid-template-columns:auto auto auto auto; } #r#n.list-layout-grid.col-xl-5 { grid-template-columns:auto auto auto auto auto; } #r#n.list-layout-grid.col-xl-6 { grid-template-columns:auto auto auto auto auto auto; } #r#n}#r#n#r#n.list-layout-grid { grid-row-gap:[$list-row-gap]; grid-column-gap:[$list-column-gap]; }#r#n#r#n.list-layout-grid.list-column-gap-000 { grid-column-gap:0; }#r#n.list-layout-grid.list-column-gap-012 { grid-column-gap:0.125rem; }#r#n.list-layout-grid.list-column-gap-025 { grid-column-gap:0.25rem; }#r#n.list-layout-grid.list-column-gap-037 { grid-column-gap:0.375rem; }#r#n.list-layout-grid.list-column-gap-050 { grid-column-gap:0.5rem; }#r#n.list-layout-grid.list-column-gap-075 { grid-column-gap:0.75rem; }#r#n.list-layout-grid.list-column-gap-100 { grid-column-gap:1rem; }#r#n.list-layout-grid.list-column-gap-125 { grid-column-gap:1.25rem; }#r#n.list-layout-grid.list-column-gap-150 { grid-column-gap:1.5rem; }#r#n.list-layout-grid.list-column-gap-200 { grid-column-gap:2rem; }#r#n#r#n.list-layout-grid.list-row-gap-000 { grid-row-gap:0; }#r#n.list-layout-grid.list-row-gap-012 { grid-row-gap:0.125rem; }#r#n.list-layout-grid.list-row-gap-025 { grid-row-gap:0.25rem; }#r#n.list-layout-grid.list-row-gap-037 { grid-row-gap:0.375rem; }#r#n.list-layout-grid.list-row-gap-050 { grid-row-gap:0.5rem; }#r#n.list-layout-grid.list-row-gap-075 { grid-row-gap:0.75rem; }#r#n.list-layout-grid.list-row-gap-100 { grid-row-gap:1rem; }#r#n.list-layout-grid.list-row-gap-125 { grid-row-gap:1.25rem; }#r#n.list-layout-grid.list-row-gap-150 { grid-row-gap:1.5rem; }#r#n.list-layout-grid.list-row-gap-200 { grid-row-gap:2rem; }#r#n#r#n/* Columns list */#r#n.list-layout-columns { display:columns; }#r#n.list-layout-columns > div { width:100%; }#r#n.columns { display:columns; position:relative; width:100%; padding:0; }#r#n#r#n.columns, .list-layout-columns { column-count:1; }#r#n.columns.col-sm-2, .list-layout-columns.col-sm-2 { column-count:2; }#r#n.columns.col-sm-3, .list-layout-columns.col-sm-3 { column-count:3; }#r#n.columns.col-sm-4, .list-layout-columns.col-sm-4 { column-count:4; }#r#n.columns.col-sm-5, .list-layout-columns.col-sm-5 { column-count:5; }#r#n.columns.col-sm-6, .list-layout-columns.col-sm-6 { column-count:6; }#r#n@media (min-width:[$media-md-min]) {#r#n.columns.col-md-1, .list-layout-columns.col-md-1 { column-count:1; }#r#n.columns.col-md-2, .list-layout-columns.col-md-2 { column-count:2; }#r#n.columns.col-md-3, .list-layout-columns.col-md-3 { column-count:3; }#r#n.columns.col-md-4, .list-layout-columns.col-md-4 { column-count:4; }#r#n.columns.col-md-5, .list-layout-columns.col-md-5 { column-count:5; }#r#n.columns.col-md-6, .list-layout-columns.col-md-6 { column-count:6; }#r#n}#r#n@media (min-width:[$media-lg-min]) {#r#n.columns.col-lg-1, .list-layout-columns.col-lg-1 { column-count:1; }#r#n.columns.col-lg-2, .list-layout-columns.col-lg-2 { column-count:2; }#r#n.columns.col-lg-3, .list-layout-columns.col-lg-3 { column-count:3; }#r#n.columns.col-lg-4, .list-layout-columns.col-lg-4 { column-count:4; }#r#n.columns.col-lg-5, .list-layout-columns.col-lg-5 { column-count:5; }#r#n.columns.col-lg-6, .list-layout-columns.col-lg-6 { column-count:6; }#r#n}#r#n@media (min-width:[$media-xl-min]) {#r#n.columns.col-xl-1, .list-layout-columns.col-xl-1 { column-count:1; }#r#n.columns.col-xl-2, .list-layout-columns.col-xl-2 { column-count:2; }#r#n.columns.col-xl-3, .list-layout-columns.col-xl-3 { column-count:3; }#r#n.columns.col-xl-4, .list-layout-columns.col-xl-4 { column-count:4; }#r#n.columns.col-xl-5, .list-layout-columns.col-xl-5 { column-count:5; }#r#n.columns.col-xl-6, .list-layout-columns.col-xl-6 { column-count:6; }#r#n}#r#n#r#n.columns, .list-layout-columns { column-gap:[$list-column-gap]; }#r#n.list-layout-columns > div { padding-top:calc([$list-row-gap] / 2); padding-bottom:calc([$list-row-gap] / 2); }#r#n#r#n.columns.list-column-gap-000, .list-layout-columns.list-column-gap-000 { column-gap:0; }#r#n.columns.list-column-gap-012, .list-layout-columns.list-column-gap-012 { column-gap:0.125rem; }#r#n.columns.list-column-gap-025, .list-layout-columns.list-column-gap-025 { column-gap:0.25rem; }#r#n.columns.list-column-gap-037, .list-layout-columns.list-column-gap-037 { column-gap:0.375rem; }#r#n.columns.list-column-gap-050, .list-layout-columns.list-column-gap-050 { column-gap:0.5rem; }#r#n.columns.list-column-gap-075, .list-layout-columns.list-column-gap-075 { column-gap:0.75rem; }#r#n.columns.list-column-gap-100, .list-layout-columns.list-column-gap-100 { column-gap:1rem; }#r#n.columns.list-column-gap-125, .list-layout-columns.list-column-gap-125 { column-gap:1.25rem; }#r#n.columns.list-column-gap-150, .list-layout-columns.list-column-gap-150 { column-gap:1.5rem; }#r#n.columns.list-column-gap-200, .list-layout-columns.list-column-gap-200 { column-gap:2rem; }#r#n#r#n.list-layout-columns.list-row-gap-000 > div { padding-top:0; padding-bottom:0; }#r#n.list-layout-columns.list-row-gap-012 > div { padding-top:.0625rem; padding-bottom:0.0625rem; }#r#n.list-layout-columns.list-row-gap-025 > div { padding-top:.125rem; padding-bottom:0.125rem; }#r#n.list-layout-columns.list-row-gap-037 > div { padding-top:.1875rem; padding-bottom:0.1875rem; }#r#n.list-layout-columns.list-row-gap-050 > div { padding-top:.25rem; padding-bottom:0.25rem; }#r#n.list-layout-columns.list-row-gap-075 > div { padding-top:0.375rem; padding-bottom:.375rem; }#r#n.list-layout-columns.list-row-gap-100 > div { padding-top:.5rem; padding-bottom:0.5rem; }#r#n.list-layout-columns.list-row-gap-125 > div { padding-top:.625rem; padding-bottom:0.625rem; }#r#n.list-layout-columns.list-row-gap-150 > div { padding-top:.75rem; padding-bottom:0.75rem; }#r#n.list-layout-columns.list-row-gap-200 > div { padding-top:1rem; padding-bottom:1rem; }#r#n#r#n/* flexible list */#r#n.list-layout-flex { display:flex; flex-wrap:wrap; justify-content:flex-start; }#r#n.list-layout-flex.list-align-center { justify-content:center; }#r#n .list-layout-flex.list-align-right { justify-content:flex-end; }#r#n#r#n.list-layout-flex.col-sm-1 > div { flex-basis:99.8%; }#r#n.list-layout-flex.col-sm-2 > div { flex-basis:49.8%; }#r#n.list-layout-flex.col-sm-3 > div { flex-basis:33.1%; }#r#n.list-layout-flex.col-sm-4 > div { flex-basis:24.7%; }#r#n.list-layout-flex.col-sm-5 > div { flex-basis:19.7%; }#r#n.list-layout-flex.col-sm-6 > div { flex-basis:16.4%; }#r#n#r#n@media (min-width:[$media-md-min]) {#r#n.list-layout-flex.col-md-auto > div { flex-basis:auto; }#r#n#r#n.list-layout-flex.col-md-1 > div { flex-basis:99.8%; }#r#n.list-layout-flex.col-md-2 > div { flex-basis:49.8%; }#r#n.list-layout-flex.col-md-3 > div { flex-basis:33.1%; }#r#n.list-layout-flex.col-md-4 > div { flex-basis:24.7%; }#r#n.list-layout-flex.col-md-5 > div { flex-basis:19.7%; }#r#n.list-layout-flex.col-md-6 > div { flex-basis:16.4%; }#r#n}#r#n#r#n@media (min-width:[$media-lg-min]) {#r#n.list-layout-flex.col-lg-auto > div { flex-basis:auto; }#r#n#r#n.list-layout-flex.col-lg-1 > div { flex-basis:99.8%; }#r#n.list-layout-flex.col-lg-2 > div { flex-basis:49.8%; }#r#n.list-layout-flex.col-lg-3 > div { flex-basis:33.1%; }#r#n.list-layout-flex.col-lg-4 > div { flex-basis:24.7%; }#r#n.list-layout-flex.col-lg-5 > div { flex-basis:19.7%; }#r#n.list-layout-flex.col-lg-6 > div { flex-basis:16.4%; }#r#n}#r#n#r#n@media (min-width:[$media-xl-min]) {#r#n.list-layout-flex.col-xl-auto > div { flex-basis:auto; }#r#n#r#n.list-layout-flex.col-xl-1 > div { flex-basis:99.8%; }#r#n.list-layout-flex.col-xl-2 > div { flex-basis:49.8%; }#r#n.list-layout-flex.col-xl-3 > div { flex-basis:33.1%; }#r#n.list-layout-flex.col-xl-4 > div { flex-basis:24.7%; }#r#n.list-layout-flex.col-xl-5 > div { flex-basis:19.7%; }#r#n.list-layout-flex.col-xl-6 > div { flex-basis:16.4%; }#r#n}#r#n#r#n.list-layout-flex > div { padding-top:calc([$list-row-gap] / 2); padding-right:calc([$list-column-gap] / 2); padding-bottom:calc([$list-row-gap] / 2); padding-left:calc([$list-column-gap] / 2); }#r#n#r#n.list-layout-flex.list-column-gap-000 > div { padding-left:0; padding-right:0; }#r#n.list-layout-flex.list-column-gap-012 > div { padding-left:0.0625rem; padding-right:0.0625rem; }#r#n.list-layout-flex.list-column-gap-025 > div { padding-left:.125rem; padding-right:.125rem; }#r#n.list-layout-flex.list-column-gap-037 > div { padding-left:.1875rem; padding-right:.1875rem; }#r#n.list-layout-flex.list-column-gap-050 > div { padding-left:.25rem; padding-right:.25rem; }#r#n.list-column-gap-075 > div { padding-left:.375rem; padding-right:.375rem; }#r#n.list-layout-flex.list-column-gap-100 > div { padding-left:.5rem; padding-right:.5rem; }#r#n.list-layout-flex.list-column-gap-125 > div { padding-left:.625rem; padding-right:.625rem; }#r#n.list-layout-flex.list-column-gap-150 > div { padding-left:.75rem; padding-right:.75rem; }#r#n.list-layout-flex.list-column-gap-200 > div { padding-left:1rem; padding-right:1rem; }#r#n#r#n.list-layout-flex.list-row-gap-000 > div { padding-top:0; padding-bottom:0; }#r#n.list-layout-flex.list-row-gap-012 > div { padding-top:.0625rem; padding-bottom:0.0625rem; }#r#n.list-layout-flex.list-row-gap-025 > div { padding-top:.125rem; padding-bottom:0.125rem; }#r#n.list-layout-flex.list-row-gap-037 > div { padding-top:.1875rem; padding-bottom:0.1875rem; }#r#n.list-layout-flex.list-row-gap-050 > div { padding-top:.25rem; padding-bottom:0.25rem; }#r#n.list-layout-flex.list-row-gap-075 > div { padding-top:0.375rem; padding-bottom:.375rem; }#r#n.list-layout-flex.list-row-gap-100 > div { padding-top:.5rem; padding-bottom:0.5rem; }#r#n.list-layout-flex.list-row-gap-125 > div { padding-top:.625rem; padding-bottom:0.625rem; }#r#n.list-layout-flex.list-row-gap-150 > div { padding-top:.75rem; padding-bottom:0.75rem; }#r#n.list-layout-flex.list-row-gap-200 > div { padding-top:1rem; padding-bottom:1rem; }#r#n#r#n/* Details */#r#n.details > div { display:inline-block; position:relative; text-align:left; }#r#n.details > div > * { text-align:inherit; }#r#n.details > div > .button { width:100%; text-align:inherit; }#r#n#r#n.details-horizontal-align-center .detail { text-align:center; }#r#n.details-horizontal-align-right .detail { text-align:right; }#r#n.details.vertical-align-center > .details > div { top:50%; transform:translateY(-50%); }#r#n.details.vertical-align-bottom > .details > div { top:100%; transform:translateY(-100%); }#r#n#r#n#r#n.img-shape-auto, .img-shape-elipse, .img-shape-thumbnail, .img-shape-square, .img-shape-circle, .img-shape-video { display:block; position:relative; width:100%; z-index:1; }#r#n.img-shape-thumbnail:after, .img-shape-square:after, .img-shape-circle:after { content:""; display:block; padding-bottom:100%; }#r#n.img-shape-video { content:""; display:block; padding-bottom:57.5%; }#r#n.img-shape-auto > div, .img-shape-elipse > div { position:relative; width:100%; }#r#n.img-shape-thumbnail > div, .img-shape-square > div, .img-shape-circle > div, .img-shape-video > :first-child { position:absolute; width:100%; height:100%; overflow:hidden; }#r#n#r#n.img-shape-auto img, .img-shape-elipse img { width:100%; height:auto; }#r#n.img-shape-thumbnail img.img-orientation-portrait { width:auto; height:100%; position:relative; left:50%; transform:translateX(-50%); }#r#n.img-shape-thumbnail img.img-orientation-landscape { width:100%; height:auto; position:relative; top:50%; transform:translateY(-50%); }#r#n.img-shape-square img.img-orientation-portrait, .img-shape-circle img.img-orientation-portrait { width:100%; height:auto; position:relative; top:50%; transform:translateY(-50%); }#r#n.img-shape-square img.img-orientation-landscape, .img-shape-circle img.img-orientation-landscape { width:auto; height:100%; position:relative; left:50%; transform:translateX(-50%); }#r#n.img-shape-elipse > div, .img-shape-circle > div { border-radius:50%; overflow:hidden; }#r#n#r#n.img-smoke:before { position:absolute; width:100%; height:100%; content:""; z-index:2; border-radius:inherit; }#r#n#r#nhr.layer-separator { margin:0; width:100%; }#r#n.info { display:inline-block; }#r#n.info + .info { padding-left:.3rem; }#r#n#r#n/* format*/#r#n.format { margin-bottom:[$paragraph-margin-botton]; }#r#n.format > p { line-height:inherit; margin-bottom:inherit; text-indent:inherit; }#r#n.format > :last-child { margin-bottom:0; }#r#n#r#n/* Layout */#r#n#clayout_system_bar { position:absolute; top:0; right:0; bottom:auto; left:0; height:[$bar-height]; line-height:[$bar-height]; z-index:2; padding-left:[$mod-padding-left]; }#r#n#clayout_system_bar > * { display:inline-block; position:relative; line-height:1em; vertical-align:middle; margin-right:0.5rem; }#r#n#clayout_system_bar img { display:inline-block; height:2rem; width:auto; }#r#n#clayout_document { position:absolute; top:[$bar-height]; right:0; bottom:0; left:0; z-index:1; }#r#n#clayout_system_icons { position:absolute; top:0; right:0; bottom:auto; left:auto; height:[$bar-height]; line-height:[$bar-height]; padding-right:[$mod-padding-right]; z-index:3; }#r#n#clayout_system_icons > * { display:inline-block; position:relative; line-height:1em; margin-left:0.5rem; vertical-align:middle; }#r#n#clayout_system_icons img { display:inline-block; height:2rem; width:auto; }#r#n#clayout_baloom { position:absolute; top:5rem; right:1rem; bottom:auto; left:1rem; text-align:right; z-index:4; }#r#n.baloom { display:inline-block; }#r#n.personalite { position:absolute; top:.3rem; right:.3rem; z-index:1001; width:1rem; height:1rem; color:#cfff; background-color:rgba(0, 0, 0, 0.3); border:0.2rem solid #cfff; font-family:serif; font-weight:bold; line-height:1rem; text-align:center; vertical-align:middle; font-size:1.5rem; }#r#n#r#n/* Formularies */#r#n.form-layout-grid { position:relative; width:100%; }#r#n.form-control { position:relative; display:block; width:100%; }#r#n#r#n.form-control-help { padding-right:3em; }#r#n.form-col-help { position:absolute; top:0.6rem; right:0; font-family:serif; font-weight:bold; }#r#n#r#n.form-col-input { width:100%; }#r#n.form-col-input-half { width:50%; }#r#n#r#n.form-col-reverse-input { display:inline-block; width:10%; }#r#n.form-col-reverse-label { display:inline-block; width:80%; }#r#n.form-col-full-label { display:inline-block; width:90%; }#r#n.form-col-full-input { display:inline-block; width:100%; }#r#n#r#n@media (min-width:[$media-md-min]) {#r#n.form-layout-grid .form-col-legend { display:inline-block; width:30%; }#r#n.form-layout-grid .form-col-input { display:inline-block; width:60%; }#r#n.form-layout-grid .form-col-input-half { display:inline-block; width:30%; }#r#n}#r#n#r#n.form-layout-box .form-col-legend { display:inline-block; width:40%; }#r#n.form-layout-box .form-col-input { display:inline-block; width:60%; }#r#n.form-layout-box .form-col-input-half { display:inline-block; width:60%; }#r#n#r#n.form-layout-inline { width:auto; }#r#n.form-layout-inline * { display:inline-block; width:auto; }#r#n#r#n.input { min-height:2.4375rem; margin:0 0 1rem; appearance:none; }#r#n.input:focus { outline:none; }#r#ntextarea { max-width:100%; }#r#ntextarea[]rows] { height:auto; }#r#ninput:disabled, input[]readonly], textarea:disabled, textarea[]readonly] { background-color:#ce6e6e6; cursor:not-allowed; }#r#nbutton, .button { appearance:none; }#r#n[]type="file"], []type="checkbox"], []type="radio"] { margin:0 0 1rem; }#r#n[]type="checkbox"] + label, []type="radio"] + label { display:inline-block; vertical-align:baseline; margin-left:0.5rem; margin-right:1rem; margin-bottom:0; }#r#n[]type="checkbox"] + label[]for], []type="radio"] + label[]for] { cursor:pointer; }#r#nlabel > []type="checkbox"], label > []type="radio"] { margin-right:0.5rem; }#r#n[]type="file"] { width:100%; }#r#nlabel { display:block; }#r#nlabel.middle { margin:0 0 1rem; padding:0.5625rem 0; }#r#nfieldset { margin:0; padding:0; border:0; }#r#nlegend { max-width:100%; margin-bottom:0.5rem; }#r#n.fieldset { margin:1.125rem 0; padding:1.25rem; border:1px solid #ccacaca; }#r#n.fieldset legend { margin:0; margin-left:-0.1875rem; padding:0 0.1875rem; }#r#nselect { height:2.4375rem; margin:0 0 1rem; padding:0.5rem; -webkit-appearance:none; -moz-appearance:none; appearance:none; background-image:url("data:image/svg+xml; utf8,"); background-origin:content-box; background-position:right -1rem center; background-repeat:no-repeat; background-size:9px 6px; padding-right:1.5rem; }#r#nselect::-ms-expand { display:none; }#r#nselect[]multiple] { height:auto; background-image:none; }#r#n#r#n/* Ending definitions */#r#n[]hidden] { display:none !important; }#r#nform > label { display:none; }#r#n";}a:3:{s:4:"text";a:2:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:36:"Folha de estilo para versão impressa";i:2;i:1;}s:2:"en";a:1:{i:1;s:31:"Stylesheet for printable layout";}}s:7:"credits";a:1:{s:2:"pt";a:3:{i:1;s:52:"#r#nCréditos à Dani Guerrato dani@popupdesign.com.br#r#n";i:2;i:1;i:4;i:1;}}}s:5:"local";a:0:{}s:4:"html";s:876:"/* Créditos à Dani Guerrato dani at popupdesign.com.br */#r#n/* @media print { */#r#n* { text-shadow:none !important; filter:none !important; -ms-filter:none !important; }#r#nbody { margin:0; padding:0; line-height:1em; font:12pt arial, sams-serif; color:#c000; }#r#n@page { margin:1.5cm; }#r#n.wrap { width:100%; margin:0; float:none !important; }#r#n.no-print, video, audio, object, embed { display:none; }#r#n.print { display:block; }#r#nimg { max-width:100%; }#r#nh1 { font-size:18pt; }#r#nh2 { font-size:15pt; }#r#nh3 { font-size:13pt; }#r#np { font-size:12pt; widows:3; orphans:3; }#r#na, a:visited { text-decoration:underline; }#r#na:link:after, a:visited:after { content:" (" attr(href) ") "; }#r#np a { word-wrap:break-word; }#r#nq:after { content:" (" attr(cite) ")" }#r#na:after, a[]href^="javascript:"]:after, a[]href^="#c"]:after { content:""; }#r#n.page-break { page-break-before:always; }#r#n/* } */#r#n";}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Padrão";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Default";}}}s:5:"local";a:4:{s:7:"layouts";s:7:"default";s:8:"palettes";s:7:"default";s:6:"styles";s:7:"default";s:6:"themes";s:7:"default";}}a:2:{s:4:"text";a:1:{s:7:"caption";a:2:{s:2:"pt";a:2:{i:1;s:6:"Padrão";i:2;i:1;}s:2:"en";a:1:{i:1;s:7:"Default";}}}s:5:"local";a:1:{s:19:"paragraph-font-name";s:14:"helvetica-neue";}}GIF89a#n#0#n#0€#0#0ÿÿÿÿÿÿ!ù#0#0#0,#0#0#0#0#n#0#n#0#0Œ�©Ëíc+#0;#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n#r#n‰PNG#r#n#z#n#0#0#0#rIHDR#0#0#0n#0#0#0­#0#0#0ÞEݶ#0#0#0 pHYs#0#0.#c#0#0.#c#0¢à#0#0 #0IDATxœì½i¬e×u&ö­µ÷9çÎï¾yª™UE‹ÅADS5Ú’eËŽ‘v+HŒî4‚8‚΀Nw€†€ $qÜéNÛí†ãvÇVdMÖЦlQ¢Äy,ÅbÍs½Wõæ÷î»óö^+?Î}EJf•䆥ÉZ¿j¸÷Üs¿»ö#z¿µ©*nÊO �µ�^ÏÎÎ#eïü³¼›w®ˆó_ü—÷ÿúçÞ¹ë½Æþ,oè�+‹ç/~÷Ño»þZÚn‡Çßö57µòÇK¼ºñä—¾¾ººhŒ׿ÞËnjå�uþÜãOó±o‰KzÞhp]Änjå�‘æÜ•oÿÅ×:½vH`6&(^ï•7¡¼‘¨ÈÕ§^š»4™$CQdÃÒõ^|ó€ßHÒFóÌáÃi§ûA„q)ñõ¯ÝÝîGYGTPhîkTó?”AÈÓHë‘Á�îÜ]*ßøÊï-(Åù¹S§#s—wf}£yª½…#ch‚¤DP…#n‘³„nº�·Êòå«‹GŽîë¶Œ$¬ UhP-‡#0BƒHAÂJJjÀÍ•f#s7¾ø{Ên§÷ä÷·—NÖ#eß)¹�ÍëLÄ ¯ý«ª²—¤ý~çÆ×¯@)Þ_>}féø+³+óä{%q*ÊĸVU_#0”´aäe‘4DÜÈçà½eg£qæÅ—£~³�:%‚(©#0ÐA¡|�æä 83³ÖªÚEæpb<*Tnüï (Udî�cÍcOÝ»±PÊCA$d#0#0&(AAš„TUIÔYPIåðJ³K|Óí#0½Õõ¥3Gï‹Ú帣ð[žYAy¤¨ A›V¡Ík–L€ª�”#rõ:m—¥7þ”w?”Þ¹#cϾО;mV:®#sê… %1ì$#0æZ›§;,ž”UÔ÷žØÜ€Y™Ë»Ê̹£‡ßxá±oíXš÷«]J D#n�(›ˆÉ¥k9#c�È#nÎë¢d‚WØð®ÑW××ÿ�þð–åsì#eÖËÔ©;uPRHÚϽ6¿µ�AD^TOÄ^9! Œý1:ùîÖJQýî£�/œxå�’ÑNL©ƒ¨w¢¨ª×<¯XÉ-�jnEóܨLAKöÇCùnÖÊ×O�ÿæ×¿õðt4ÖMÒ,#c´Ô¾<3$R¨Š’8PÅ AP5„QÒ ý#rå]«•iêž~ü¹°uåc…ˆ›Ž=«²æé¡BôÍP<·� å<rwãQBM‰ú©Ëü�?ñ] åSÏ¿ðÈ7ÿìƒC.õµŸð ø!"°Ó¼@$Œ#eãPºvÐ ŠüMe Õo÷úïÉÒ¯ˆ=úêT ÷…õ[eÊ åyÜ£Èàtœv~î• hkË�*‰²7~$²åÒ�郿;µòÒ•¥çžxvgš„K±ˆ  `ÊÉå%äå4Ýâ¶�� ªñ€ d”¼ñJAd¯¿Ÿ —w¡VŠè³/¾²~u~*TÄà#rXX•”yb88è4pßR"JDÖ’bÀÄbhÓòd)‚¾÷²�õÆæ—þìOïŒüï,œªW˜U¡²Eãͳo£&46´`!èµÐ’�±6€QAºNôˆ÷-géǩݻM+ã${æ¹×Ê›ë?ïÃQíTˆDE=iâ@A eï@$Pf#z0Í•¼S‘Ì)j‚!‚²¼çBô#s^|í ð$íÎøŒ�æ‘ö í•ÛB&2 Ω*L`f…ŠÒ€W)¹`ÃJ#zš ŠãÌÿ¸rÆ»J+�÷Ïþà»·4–ïSIE%×”¼ K[4^É[°ÌLPÃ*%€¶ú<šãñ*^µLèDZ�ãú»G+Eõé§_{ýOÜ#r �c…�@UE¶bñ#eå„#06ÌÖ¨ªqBN$ïÛ²Få<ý±DV‰Ô7²ØeÙ�oàÝesmãÏ¿ð‡÷É~çž#0%£2LL¤¬B¤Ì`¶`£ O#n§¢Dy±h+P÷#0HÁ©1»È†6è57¾�wÉ÷™ûöŸ|¹pöÌíìõ¹·ffРÆL^EU•Ìl`#0eb#0`x#sêAd>ïQHž±sV#n(öÛ­ßûA+%Ë^üÊ7žýηï0~8M¶BîA×FUEÄ«#sâÀ[â€l /^Äa+`Òkœ~õD,áI¥5—47Ön¼ëó�¯•ŠÅ—�¾ðÍ¿ˆÛËu 1Ä#n¢"¨ec­¨ÀFÈz²WA^¦œ4­r­ú“7sʶ)H¥½±yãyÇC铸•ï?ºÞ_ýtNÅ]"RU!6$"€€YMXâ€#0…!eAñLÄdH�ò�éjD•¥Î¶N¼¼²˜å®w#sïx(çÎ]:}ñâÏù¬îúE†ñ õy«K•‰Yu‹§o˜#r„”-‘!% ”#eJI[áó²ï gÆD9Ù’‰3õ‰ ·¾¡"Ä×5‰ïl[Ùn4¿õ#s_¼kynÛf«èÙ�+ff"V/$jdˆTEÈ“!ñÈLè¨D*‘ç·°}TXE#0GÀ…±ÑõËs®{£:Û;Ê4˾ö§_ÝuòÈd³•‚J�yœOä‡#n!xfË–ˆˆIƒ#0Æ€F„0E‚@Á †!Ê ©qTTîõ}?N7Wnp?ïT(³Ì?þWÏÿÁw¶%ë�¨�g"Úš;#03‘!cÙXCPñUU8§D`Ub&jX€#rˆˆT 2pÔ¢ªL€†Ä3™kTËrÞÄ;J9vúÂó_þ·Ÿòí¢KY¤ ÌPbÎëà@ A¡JU°ç€`U#rŒeÀd, 9beC $·„[‰#c#0³!>-•Ü#rƒ¡w$”®¬ü«ö´67껜‘Š#sÕAý‘#0ÊKf†�Š*‘h °#0±x/^D#0¨ ` Ø@T"CÄ`¤™9”""™„I–Â:}wiåÊZã _üóÍó‡ï¶i±ï�ó$4H·‘ÓML¤¢â¡¤‰)([e†%R¯…ŠzÏ ²PÎw9�*�k1 œ»rÎ,u4^�`@JåSžlAÊ.õJÊ%K#08à¸ë}—´gÈk¾¾eàv†È)2õ!ˆ½¶J†ï–5$"òò«Ç×^é7ª˜Š=g ç›:!”“,È #0«[ [ʨHPõêõfŸ;I{’f¤‰æsˬp^(ˆ•jTUå.¢3ÆVŠC[Ôÿ·‘w”W®.¾úòÑ»‡t¢× ’T2Ñ·¬·#0ÛPHXr°DJ^½(@”ׇD=`Uc EVǃ–­@©¢êr È< ®Cé]ãvV››#s^½/��ÀlMî&ò�GDU½ ƒAj+Êe��:oˆmÀƲˆ�1�!b 0¬y!•kMFb#zИ+i]!î?zìݰÞ΋œŸ_ª¶¯N&›6U8ño©�ç;èˆA¶¢ÅaØ‚Š#s¥AÅ#sŸ©…’‚ED³>e #s1²4e/ÈŸY¢4 lˆŠª(¬�?u#n×-ß1¼ÛëwÏžûèd‰7[š:«ºœV‘Ç�CÂdKj#cã5Ӿ“‚Œ¡Ô{6LÌyåRœæƒ&ŒAIN¼¿vx=©W’#e) "eL;#rò’œyÛ;|Ç@i�Ù®ñTÚõ=‡X��#0�21D€‡ „BÖ†]"â@`¯Ø*< Ö‹ZËBpìáŒs^œˆ’n­_óÄN• #nÉÎkžØh¶o0›÷3�R‘¬7Ûg]?- #ex´”‹¦@l#rÞä•å…oM{±1Æ–"#0i–]:}aäÔ9]�¹M¡>Sa&òâ‘›·�#nCÎE3`©#sv¦Èȼ({ñP1U�ÏX¼ú â�W�#n)„ ^‰ˆAyeUxºÑnñØze½ñƾuìÙgƒþÆv—GJYXÔB=˜žŠØx¨)�‘­‰�²T$K²Þ¦ï¶|o±#e®�|âSÑ®]ÍÖ…#sžÚ½pQ;=õÞdX�W�„HAæ™É)„„œÙs(Ä’)´¯ùf ñê�( yU@ D#0 ©#s)±ˆ²¨1¤PUb£T$—¬7ÿCp—f—¾ýÔÒó?ØÎí¿�êûGà R"Øž”¯DA¨aäÝÒz¡•®ôlhŠcN”±»âÖÑ:#ežýOç.^ì{�7ä5On0ÿ¥"RV‚†áE½B…B”¡FˆÔ{Ï�•Œ(U8%b(¤¤lˆ5�ñ‰D™È‰z(ˆŒ"gmˆRIJ7_È?s(%ÍÚç6þò‰ìÈŽ,ï/NÔQU#r:Ç×�/Ä£»vízp¿)0ÍöíTgtÿ†ï4#e³Å£“¶4Þ¿´Þ9uÖ~0:séâþÞïàÊ%Õ”„8wÄ RÁVm•ì°¨ªöH�MbÏeP¨eeçID…X¢J�J¦’o’­©QUK”Ÿs“3³rŒÁÊÒCX Ê[˜?S(³vwõ›Ow¾÷÷Î�O÷«{ÇìpUL‰l™…» Ë#sŽ­_|é̯Ÿ_ß{ÿ-ÑŽ!ÊžkRž4ºævãõ�øÄ ‡óüóôOŠW/îN<±¨€Ô#0¢¤ª@Eɰxq$d(,KP |M!±Pl$ñ%r#nx"õ’›"’·Îò¨REó ¤$º#0â®ýÛ‡RœOæ[O>f/»/)ŒÌðð8’F AA½ªO¢²Ü¿MÆ7ÓÞÒ/,#s‡<ãÔT¢TSïºbÓ¡_|ßJ±úüËÝ]ÞøLdG]BP!AYj·´ €kÃu 64J„¾ï]#nï<g=øÞåI©æ¥Ÿ¼PI^e°˜#0D P&ÖÁä¨&�$?ËU ñêfãÛOW›jûºöÀíR®j#z°P¶t‰Ð÷‚€ ìÇ?°{H&yn#cYˆ+·Î¶ÕÍä-T¬q¹F¥:ª�´ôÇÿëÿ6ÜjýÇ‘9”e�¡À0#0#cJ$64N¼ˆ0“1F!^E”Ó.¨Ëý–šÐp¨·*˜<ƒÞ:̓þـǿå™#rqÞ1Ã`q�S�I]–©÷0?m[©š5»í/-ØxŸIÆ­-ÞÉÇï~è^”7o �[#e?Õ–—ßjòuž*ÅÝ”Wœ”Kv´ EN}ÑH#nrG.Uø|׈,n#rBá#z׈Àz-äU6cQáÌÅó]§d¹ÕŸû‰%ŽÓG}ò+_üâzóÊêúj¨¥OOÔsV‹ÓCÑÔ4‡‘Ä)¡d¨fÕ(k€”MXòaÁÖF„çœñ)+Ä0säØö_yuùµ,qßšõ=Ó݉éñ{ïY_¯m¼xxfõè´¶"ž òôÒÔø÷¿ÿ½+�¨„¡´~¥lnùðýæ¶rzîµh¤ ÕRçÄÊâB¯mi|Ä_i÷ŽÎa£éÇĨ˜]AV Ô8C"II’¯" òØêR#nøÁÉx#cA¹Ïx¾­î¼åŸýÑKoó¿™V¶;½/þþõ/}©Õ[ɼGû˽{·Ê·q,äšš*+ihؔᕒ8Iú*%vQÚoØò�5ž•µX[ä ’ù¹ìÒj1ª¶îÜÃ;öŒï¼eº¾£­Cá‘#sk‹ ›«éPÁ/®7—þôy™‹ã�x£@öŽLm­P(”Ýé/×gzº–Äë´Úž88óɇê½t½±¼üÚ+WÎ/ŸíLÆ… ¸T´�œìb@úfࣤ¤Dùv—Üq>TÞ•¦±aïÞž³z](U5�³ ´lñ½¯ž<ù­¯}sSzŸ ™à·ž½åŽQrQ�Aì¼@¹Š!†q™ç´kÕû8ñ63ib(")Va¬%Câµ¹RÚžl#ep-ºkbïý:6ÒCÑ¿vº~ü™Bºzóå?[]¯ûi±¬å’IÛ”�J 8U%%lM�j>l¯b%’P©Ùi-]žÿ@9¿¼ñí¯>zòê‰fÁf/?ùßìüµÍÆúþø±‹ÏgÅÈë�ŒãvS²FC+œ@UÔ³Ï8((<ÒŠa%‹ RÛ£,ƒ#sÒÌEûŒÓ>!Pc5P*�I8¼Afˆ@FálÜkÅç7šGƒw¶¿ñý©¥£ wÎ6âb¯�±¡ÿ�f(Ë·¹rE6»¾PFæ9ŽA�š‚¤ÉSç—ŒÌLŒ(«jšB=˜a-yRq#z#z×ul‹dAýØ‹G;5£bá•{¾wõêæ‹®؃Csßzºßë!î�$Y%JK#cR;Lbƒ?{âòW__رãÞñÑ»QGÓU¹4äÖ„v�ñÚÉÈTê“�µ#z¥Z4êzµTXóˆHò%T¶¸3D#n”�ÀeÉÛ¶pJ¯úì«#s}ä±èÖmie¨Z«®tãN·#s#cC:=ž]8­lƒñYç×UE£#z#sÝg[ïßxŒ£ è!Ê¡a §Ý‹›ÅzU‡YµGŽ >ítÐËP²Ú)M�‰múÄm®÷çç›4=ž>x_·ºã‘Öc–Ön#sÿÙ#z†#s¨¼§MײBÍŒí#0§KkŽŽ˜jG‡JýÌ]½¸6ÚsÃ| Ü^š¸Ó,>·Z<Uï©Iu×ß«ký¯Þø_®,¬~å¹Óÿðßh˜ò™Ç„¥¢.ÆgH;i÷ÞXñ/#eu·ÜžM¯7®´&—¥˜Èă˜*º5 ˆ!f•¡èíçFß„2yýÜâ^|µ=tê#câÍåÅV«Ýë®5»W¯Èüœf©¦‰Ë(‹™â‚+V³n畵î;&lAÑî“KÓÒ~?Yn Ù·IÝŒyŠ��J¯ß¿ÒS‰£#0ñš®-wÎwe1uád}äçÞoo} Ÿt«Ûë~me%ÓDÉÔ*<³«Ûô!U³�Æ9m¬�¦ê#rùb­HRjÍ-tέœºãw–o¹g»¼æ.,øåmR½oárñ¥c‡ãF�ÔžZ^ÝxêÙÙî�Y3dc6dÛm©¸Åõì——û‰#eé=ðÁÛj·gÙÙSÙëñP‡Ä(A¬B‰®ME’Â0ÁI«Ó}ÛE–(85·ô‡ð¥•Í%sËt»)éÉ“ñ⚸>®^õq“²ž7†‰(i Ô$¡�Æ$í^[ß{¦tg;#cz§Íts½á3m÷ZA¯Wk s¤Yvy³óÆB·Ú].µ¯l¼Öé>×Ét¸²oroÑïœ^ ï98þ™ÿìã{ƒÖú©�^š¤kê_#ea×vU²4aÊ`á—=¦¤Œ™b€ájï//Åîß½cßxýà6â—_êb¤ŸK×[•ħŒññæ<Í…ûfïÊ#e„f×µSéûb/Ù„gƒts³Ñܸ5#swüꃽßÙüÎÅÚ2EbE2H^_!€D¨ÔLpan^¼û£5`óùÏÀFœ|ë‡ß8ù|Ó¤½êhÿøéÞ‘§ÝÜ1¿x^ú+”õ5 ÈPHF¡<‚±)ŒNÀ"^[{}eynµ;lƒ!ÓÍ$¾Òë?ÓˆŸo¸ÓMy3¾´ÒYj¤‡×:�5{/´ûÏõú/§rRÃ5⮳óq¸¼&œÙC»g#nÕú®‰0ó›Íµ~©—™´kC’N†®ƒ³~9�×eN"͛ݥêΑ�¥Ä´Úk—šAâ¢ÀQÒÒÍ~²&qg&Äí!ßa¢#c‹Ý+—7ŽŸ®®¯GYl|JVÊSDÅìòªŸ-ntšÑΩÊè¾}÷ýâÐÁb‡¯6Ú¨#rï#e�“Ê1¥V|òSŸ#n¢}ʉÍMäÅ•æÉ¥ËÙH%�_t‡ŸÕæâŽfý¼¸*ì2fõ*B’!i"­"ªpm6+­¦ÃB±v#0#0 #0IDAT­Õ#c®_–OMTB¸£›é³Í$&¯š¦„À�á»UczQdkSZ“öf§5ŒÙô}»JC&*ÔËw}<œš9VüêüS+I¯3)ž¹#rÖS—9—©q#r‘µÀŒŽiÈQ•ê¥ù…õ>�_»uf2:DÚlŒwýP¢··#eƒ4qµÔtÚ½ÙB!ôÖ¯"JQ‘¹>Y‹FKó¡oÙ3Þ(”bòÂõ=Ÿ+Lìý�ùw¯çô}¤Û(F^#n†zÀ@ý€{ð×l¥�8yæÂ…¬Ýî]ZL¯#e�¤«AdH}^4&%—)%†�Ú(T×7}¯©j¯ïGgpË}|üqMâãÝÎå+q% º.ë�ÅyEj éᆆ•²«Œq¹–¥P#ruÌÇï<ô™Oß3¹sšÒpm¢Tˆ¦>Y›©ÿæ®s3¿¿|øòƹް ª�˜MfÈ7=Ÿogg3Yœ»#e}¦qëXeÂuW~¤ívqR?žmûìï‡q¯Ðí#sÖìæfÏøý%p‘³¶F… s½0(¦Ä%s½õðá½ã—[�æüÚôL_âÌõ}ÆAP½oü`{éÉ+_i5.ï*º éÓ#0÷9ÛV«‡ÑÛ,°PÄÎ7�tŒë.Ìù¸#rQ¶*âòL>Ÿõ…Ka­Š1Aè=D<[¯âÀžK“2³_.#c¯½L2—YkHÓÜ2{VR%‘Ø%vh›p¹æÍ¶éñÏ|ü¶?tÇðð6kË Xä”e¨¾÷Ö_ûfxù�ï}ïÅ#s/®,€=ê–J!úÕðb?ëÂ�—7;6KW2»ì¹ïݳÖ?úø•¡]CÑLYBàسëYUM=]¶Ã»£¤‘tÏYš¶¥d´#e¨Ý1Ñ[Û`ßX¾zy~×þ] a ™oí»9kv‘kd%熔îܱ“ß®�n•à”Å›�ùíwÔ;ƒ�T”ó5bUõB¡Qò>ëÃ{õ‰ƒgR4‹Î”¸¾MÏrÜWEŸfùV©üqJ¤J#ze³í¶òHõSïßþ‰»vÍOV 5bc�QUÖ<�Óœlj#rO×výò¶_ÙsZ¿úÆ·_°�Þoý�}»÷͆Òûl’²v‚~7Ié�óWýé9Ö”oú8;vîþ«ÕÑaà¹í[ï<%xÅùºÒ>×ñs•ú´ÚâF²j‡·�6 (ÍÞNãSG.¼Ô~cóÞVVŠëgÛcuóɱpŽ£³ÝîÕM9ã{a¥zXX:v~éüåé}»$´4ŸÿüçSï_8}öüsÏ$�%ˆäE{ysÖ€ Ì ĬYFÞ)âÈ9cg&ëjÒòpVÞ²#r`ðI•Qß�h˜+ÛMnŸ«¸H†‰À#0+R…2|â%Íâ´Ûƒp9ö…rØÈÖ·èŸûí‰Û?n¿{dÏC•ÝŽvî/ÎNîÚ74;Ê#cÖû¦c—^qä’,XîÓr§ÝèÄišö]Ë›¼žQ”TG2aT˜(qÝ„%[:¸¯7¼³“ÖL½úÚˇGÊ2dŸüÆ£“]·{ñÜÞ@÷D´ÝÒžHfGhêä®t#s^>=»k÷ØìÔ�ºBR×íå¿&€8Ìg’xP.aÀ#z6¤Î!K4ßÙ¬¢ÒãöÀ ŠT#sÔ%ÜÛÐŽ[¿•1ªê½§$Qãl1,ë|ßR- ”Re£íD#sË­*1íú¥…™ZetϤ9d†ëF#sðá{W—דÕðôÊñ‹çßø ¥ûË4aµ ôœ1©&˜,ÂÚÆñý?ÿ�¿ýOÿ÷[î¿û‡ ŒˆöÎŒS„¼¥#0k#e´X¸¢”Ó6AÎKÚGæ¯-rX¡^22†,QPÔê˜Æ›äü[¡”œÑM”emsòùxáŒ#r~îøÞ[üé�,K³õ®Ž–RBœ*Ï÷Û‹g–g¢Ìî¬]nµ/¿~aaõê+ß}bee.�lu~¡9³ÖrBa<Ø#0.Üf‚í£Qeì‰ñò©¹åäð¢?ß�ã„@tn{h6›îˆL±èKcZÜiíþi³ûÁ¬2rq÷®Û6×WVÛk.7[ �n¿¿Ùï}�ñ@±ªÊºˆQdª­wh6Èö‡ý?ù?ÿÅ?þ7¿•É�%ÀªJ¥b¡?8“ª.¦Úv^¼ê¯í OI>Q™{e&UÀ;´–Å–8°p1||þ•jpÀÅKûjÜ^z|ñÂó¯œ>0>½c¶”#zŸ•+vr{¯Pè6G/7–Ï9²›ŠÝ¨~®¹¸ðèÓݵs§�;‰�à¹o>v÷�÷lFm¿Ü�Ø1-*a`sBi�*²ëC¦T.#r×G³Ö­�•Õ“ ›sq·/¥€K¡¼¯fGw�Õ}?ðŽm7;aü^­î&.{µÅpÊNÕG;›Éæjœv�å fÝg©±0‘ÙE¾DH!KšÅN÷3NŸåäó¯Ýõ±sv§`™Zók&{3#eÒN—2¿Å‰ÛeÐP§œM?è¯;�7É´µ¯ª$ |œý¯w9¶&­3ñYîÙÆÐ½Ûwr�ÎæúzoãêÊÒúËm�$î­ÎÅrâÔ+ε÷Œ×#zÝVdÒ02 Êý æo½ë¶ùxÝœEaºL¥ª#rÁž„ s5#zJÛ„Ôj#e¹ý#eØ_tNÕZÆ´0Å>Ui{� ¦8œ‡Ä¤‚f;ù¤[*V†üzã�±Ú¥^r.&¨cÿÅpdÍ‘TGÎHIõõG¿sð÷…h#0ehìþí#c•Ba•­�~ûkþM@òî¼Ïˆ°Õœ{û�™[•8ð½�îät}|¤râõÓnþ#eocØBä}Úmœ¿ó¶m>²«>·´ã“{Î/4]K åÒ·¿÷Ôúåîög]¶|öba¤4<ºk²ÌJÖ[¢*Õ.§ã»Å“��B Ä#zzãS§½õ�ZyȰõPˆ0XYY“ÖúZ#cH÷¸ÌÌRæ÷öCuÒã)³ è0#c¸¤¨³/2Ö7æN÷››Aar#0%ݾç§>ùÑ?¾t¾Ûk²W!Ôá¯+[Û�r}˜ÙëÁøÖ·«F64ý~¡�ì=´—·%öwn¹Ü[o¬%­…Õz½öÒìJ¼™uR•aöíRe¥1ø6Rè]Æ”ò©W#s¢$AÖnM #r¹’ Õ’�#cë ‘zÙ @ÆæOid#nDˆ)9òª& v³æúÔó³¤j½#cRoÔ»#n«”YÏ%òîüðDÙŽûb3ÀðÍzeŸøäGç/�ùú׾щcè�Ù|ùï&�m›ž¿kzèƒzxzú}Õ°h�µDfˆ²ÆDzöøémcCÕ™éL|�h[}¦X#zb#r(Ò~D”I?ͪ�nw³ß+Të‹»£…ëð­çßxl¥×Œ†FëeeÄF“³£å‘¡ ÈÖ:ãµÌƒ™¼phX k¾æ×‚ Å‚°qYlÚÝŠ“Ta„ì½Æ�aqJ*ƪ6àž•¨‹þßÿÏ?WŸ¼öåÞ„’@õ¡‘_ÿ»Ÿó�øëõí~¦ß®øþ–̹›9g‹k£ú#coÈ—¡™ÐRTdgïýðÇk{Ø j¬5Ì”?¬ŠƒúÐH¹Õ†#s2å¡°4V#z.WFˆ˜`”¡ÔCï�B²¡XÔuÓn�’ù…µ«•^š#e¹úʨŒ¶×ÌHmrìÀ¸+;Î?<Ú«”K}]îé*ì=÷Ýš„µ´ofgg@`&€~Ê£R©rðЇ»Ñhm´Ò$!"¹QÆ‘#rƒr…ƒP‰X·–¿E�AÃÕ™‰ÒÔè°á÷ݵÿ–ƒû¢B¹fMÉØ"±©ˆ�¨ÚáZ½V#zfSÈsˆ?Ь2˜ñ‚#rƒÚÈÈìôž™n»Ûš_-ÝïÇvݶkthrvll¨6R¨1ÊjmXª ÛÂhX#zEFí`Ѫ½^1úEùþ+Ç®®·­—›ŠùÔ­eÚ<›º¼ÉßWšœØ¡cå?ý£/¾~ø�åˇî9`¬y›æ-�Ê¥¡{îÿàÁ;ï�¿xæðsÏ>óÌÓç66Û™xb2Ì0&ªÇFGg§ëc…(*©Œ› ŠÌ™ çÏÏ­­¯m6ÚNÕ¨2^/�o~ÿ¡ý·Ý{(¬ÕKÖÖŠ%Cù|b Ñ,)Ô CãÄ0D†®ýxëo™ïDT#0S-lèCß6~ìÉS›ÍþôøTÀAW lÊÆˆp#0ÌP¨:…#0”oÄRU&Ÿ:­v„#c3¯f—KŠ”=ÄDdAöª.#rF‡‹k­¥ùgÓlóì¹&#s÷?Dc×%º(ŠJ{o»k×Þûô/.]¹xòÔ±n»ÛÓâPL°}çΨZ.KSÕÚd¥R/J…¢ßí¶û½Î/<ý§ôåN»›ø>ƒÂáñJ©zÇ»÷ÜwGqlg™ õ°d9$#zŒ‹*3BcˆÉ˜0o Ò?úížÕtm•@~4#nÇl0åèBwyÝìÙ.l»�¸Ùè¡-Ö#nÕ Œˆ aë ƒŒ·°QU5‚4MK…â­wÜþÚs/g™÷È8ߪêó Dì?öðG>ý«o¬¯.]8?1=yðî‡Ë•#z~úYMNïžœÞ}×ýSäs**&ß@ú‘ƒ_)øåúÄÒZúìáÃËgN!Ë’ÍÞû¼÷}÷?#e#z­Øòh¡T#rŠœOm(¼JšeÖP!…„‰TèÞ#n_N|¤ÿoæ÷`û¶ÏŒ|öÞÖ†#sA�M”9’¬›¤�f,A4Q¯_‹ñrC!¢�¬5ÄýÄG<óÆáŸ9â�Jþ”¨Á–oUÕb¼ÿ¡î¼ë“D¤û!£÷7Í·š…Æl°1Ä×›D®Ö~è»öì5A™Lp箩»º¯86Q‰JF6RÎÝHÄ÷“~–&:¸ñ�Y¤­¯M[{€Þ�4(;åg2–+Õá½¶T»ziic½•df¨:952¾c´6>T4$o®U…n:ø^ÄlŒ±ÌµBí¿ðÑÊ舡€Ã€Ã€¬å 0Æ0sìpìØ‚sî­oÿ÷�ò#s&žš�Ÿ«•wÝúó¿ö‰ñÙÙ (°�Â8ɧÞCñÆ Yk#r11Y(å})¢½] Z©ÊÎKš¦9¾#n¨dÝ^Wc)¢8k¶Úkýn×+GAP²6ÌŒ ØÒ:xÓàG#zÀ«užŠµí¶PÊ« È«N†#sÆå×õàûn}ê¥W_~é¸÷þG¨©?Ũ¡RizzrzrûÏ}ð¾é÷Ö‹ÃÂ#zX#r¬eP~Šó"2+Ãâ€Ú8ˆN8¯#c]Õkz4àáº4ç9ž“£/®R*ÃÖºI#e+M íN§X*3©!K"�·¢òÖ9 %ðH±414´2u¢Pb&¦m»îø�ÿäï#r×JÇOŸ~íır¹tè®}o½ÄOq¼Z,íܵýÃxßì�½•B)´a#0•"¢àÚlåä˰síÿз¤7©Éªª*#nñÞi#z͇ÁTŽÂ‚÷ZÊA¡äcSˆJg€¦Þ{º¶�ÿÚÅßú)Þ‹ŠŽ�Ô·Úg�¨m`·ß²ÿóÿÓ»kÛ¶‘á‰=øÁÏýÚÏŸ™;wáÜå·êåOJ¯T®ŽMÞuG}j[”"cB¶ÌlÉX6[öo ›[f z?r®ØPæ�¼RïE<«0$϶ÀƤÞgN#n¥rÏÇ4T­0©5†¡ù‘Ô­ n…¨ÀÖr_äÆ›Õ˜b}|ÂPÄ6Ê¥_ü•_þÝßý�éÉi3ˆi¤>ñéO<|ôì™Kççr#cóÓ…²“$+›m6EPH#zØ‚‰1™-ûôæ~Ëù}{¸ïœzxï½—,K½¤ å-ÿ—$q·Õ*¨-×ÊžAÆ03)1“å·ì°SU…(D„sjê–édø¬;V©ëÃa±ò¹_ÿ»ÿõßû/wOo‹~˜ŽQ.•o»uÇ¿ø�ß»ráJ~ó?E(».‹}ÖIÒõÍV/vä�ITc‘ÁnC½¦aoâøV�éÁôm…˜*€xqAhŒÍ_™O†Q–¥�e.*®^¬ð áIDùø#sòg^¾yýœ(oZa"2„£#sçÆêÕ‰ÉûøÐìÄ,ýõ|x϶�Öÿíü?ùF埔#n(¡#e.jH©¦©�ECð6©%ðf�ýG®òfô¨PQqΉˆ¨�#r‚ÀZÃÌyXÉDåRÙZz±Æ²µD|­§ÇÄlîIUEµß�×—ÖÄy�æ{ïr|…dicáÙ¿z"ÞèGë-ݹÆ(*þwÿðW§¢Õ…üôï§13=`@÷ã™Õ³@�µ&œ)�÷!„ ÔêIÇ“ñ$M3d&`)TÀuq…ƒG)� ä‰*š­Z‰ñ#0[gÿç­_ÿ×ÏßìÊ凗ŸyîÊÞÖ§ 0+-•‚#r¸(¬èâD0 MJ¡œ#n©P€¥uÇ“y]Ì·¶s�O�Å~ì¡,)%E:BÄq¼b“„ð�«ªrÎ9ç8 ²ßÏØ9�¢XÌ»ºF„à€…$¤#00Oã#0­©*fXµN3ˆÖúã{ïß¹÷;ï­’ü£×^;¿³ýîaT2À¼±7fK㥑„Þ{×5€H„ÚteSÖ‹É0�’4Þùݽoè �¥”‘ÖQ­´T×­#rBkÚ®nW¿KâDÇÊy�Œi€�!#0³ u#0Êsç#nÛÖUÝ9ë½ë¬yó—¿¾qí}ëÜ…#s_xîŠÿÄàÀ œ¹h›ãÉbQŒ“,ê ©;Ó• ¥Z¦ëš®u®Ë%¦IL$W­gn38çi5¥üþ¿20ãiÔ¿æ#z€¥À,�kcu †À#0!Šã¶+£^n#zÓU”§ëË­ýB%ey Z¾s4O´Ú=ß¿öÎonßxÇ×m=[¾úâÕ4þå§±*3­ÒXÜ-ÂdV.z£àꌭ×ý¹¦iÀ»ÎtÊÙ½ÑPE1"…Uþ#n�9àGßtÏvªq:‰Mh5Æ2óÚ/BÌÒdQ,‹Å,uBDZ¢¢Up#n°¦ÕK•ÄïMÇ¿ø�ÿÜBõ�ï¿25sÓzÝO¿þÍWóä#c2~¾�#c@iIc[´®¦‹YLdˆæm;™Ï˦99>ÉU$“l5É4„°²æ³ÏÊ~O{jøÃö~æ~®ŽÊ¯¶û¢(#0WÕ…<“$”ÈÂ7ØzÞû°:ª|#nD°ÎŒoßzûí›Çw„îÏßøî¿üô§ôñs»?ÙÁCÓ錖�ÜUÖ.`FCSUËã#c7� ÆKÛƒ,Ϥ�#0ä Éûi´Ó8|%ò‹«¹ á”Ò,ÕÕÏLÆÚ4–HH(€C[×*RI¢…Ђ";`æ ‘ˆ9¬úu™Â�|í;Ïýüß~ñ³ÿÙ¢Z¤£íþÛzúÂ¥Ï{ס²í¬¶#eÛV~´µ=«êå»7t)#z—š&[vIÇ€�sJJ"§;øý$Ÿ®ËµI®}i:}W‚GpÁ;kz‘Æ$†à�J�sÁøXêH+Ò8à#0($æ`]#0Žt4|âðÙWßÀâçoºcÿã¿ùñWŸyæ ÜõF¨¬M;+¾íD¦¥”mèìÉ„ïä "J†u©�W³?v¸&œ#n¡¯¯adöë#zñ*dbdàzY±5I/›U"ê¥H¨c}<™·§[û#cHãÆ{ã‚Ö#n[ï¡#0^x3Oã8Iëä§?ú×­Ñ•»Ç㿸úJš|Š8ÞGb#cTFJ(�J’ˆ¢LgÃ=1Ã{ÍÉ"kAdñ9)—!ËBðn•íÇu~{�uæpÝ�!0#cžÎ¹8Í9`gL¤…P© Ü.ƒÁ(p H¤#c‚„‹¶%­=x,ƒp€.@C(jwt2�Èìwœ#rÿðÆ_y^M)û"Ø•J©^/‡ñ¼³^ÝOzà}U{¥#cVº­ê�êŽ�½#s%äºZ…÷½t#0 ¢•ߨkµÖˆtZ4;­C0*)% ÞlïôI+ßy#n#0‘Œ#e¤Ç“™j;Õ‹âH¯–³eßz?k«“ë¿oNŠÐ“ý‹Ûiš¨�™}ó©Ø€‹Î,9Œ©¤…ÐÍ�ÔñnxééÃÑÁn$)#sPJ!£mMpáÁ>ø®#eÅ…ÞsauŽíôBÄu]w•ô#eifH-ušå *Á:ô. âÉr#e/Ö[@!É&Ŭ*î<óü•ècFÞ|v<üU‰ˆ‘Òý^šiºÎ/§ÂôòlDѰc_6FeiƒÜyßvm_È(Ò°jûã7æ*ã}‚ÖšlLúXÏ#0]¿CW‚ó„¨lS#s±”#n™È³é(•I�ñ„ÔœLff<¿WÍâ–.žÿÈs8Ÿ‰Á­÷ÞØa¬{}íC×´Æ3ÀÂ#zòè ïoNOnÝ;Z–�sa•�<û9""#coCpÞ¯"#0¸Ÿ€„Õ* ŒšÎß9’HQÚc)…2#zõGÁ³÷Θ`X‚3ËåühñÞ»½¨ûÃ�ß–‹&|ÎY,‰�Äà>°°»5Œ‰ã°tv:)в©–#rçœE)+S7íÒØî,Îý£j"3w]×5íYmï.:œf�#0°ón1�€3ZË ¡sÁºu‘;‘2�EF"Îe=™jê8#cƒzûÊ‹Ï}‚ŠÎgÇ  tÖfIoÖQiÚã² ï�ã®(%°"#n! LÉbð¼ÖU¼ïF®þ1xß5mœ¬+«âAà°îŠG#0Fk VM#c€£Q¯²Áû0Ÿ7£<M¤1—qÜïi‘JÍœ¹þÞu_·Óz~2iáÞòûý—{Ÿ0+õ³c3;8R/IoMge¹l‡¶KóÔTE7_ìÄq¾»%€¥@ßäÓrìYÙ9„`C0MË08ý×1÷:ÕƒÆØÎYIÂKÀf2Á4™Íg‰V=ó^¤#c#0˦¹=;™Ü9j›Nví /|套¯Òì¡ÜõF¨Ì´~bÿ 1æ¸,o9/&Kö$ +OÆçž¤dèE0¦‰Æ*f¤•ÃÍ|Æ*1’qÖXk‚sAëS?h÷vÁ·ÆÔÁ)�çÉ¢à%Ô#s³þ^ßøºéjOŠ},£Î»k7Ç×Þ~§=¾7_ŽÍ¼¾¼»óúëßæ=ù0¬6D%!åivñ`ÿf¹€¢žWùn³ŽØH7žN{ýžs�¥©WÊ!Èuoàj.ZhÚP—•g„Î9åÃýt:€µÖ4^(¶Á—³ei×™²)Ûª¬NJ™ŠCÛ¶(8ŽGrÑ…[óâW¿~kvã÷;ùÓû‡9‹—ŸéòÅKú‹z‘Ʀ#n8ˆ³§¶÷fm¸-DâÛ(QÄòÈ”ýI�Â1¦qí›Î+휗̑m×NOæè|ÔSÃ�QËAv… #0!Ëš-çZ›`|×u‚«²Â˜‹Eg›yÑtŠ‡Ø¤±LòþRŠë“åoß}ï½÷¯5ïÝ!ÿÄ·Þxéµ—¾¶7ÚUòaÞþ]­Ïï펀àó¹Y‚íLWC-#n븵­�r 8vH·Ž&jÖìíjiʦ #c¦:F:#säšÖ#zë)pËì€0Ö­5€ôÝbRÍÆ]w3ßÊloÔ8&Á½õîõã7ÿ«*Íå3ÏŽžq#0#0 IDAT_ü³+Wö·öäÃ[�+l�J�Ô�’óIo>¬ot]}Rm«ž•[Ë­n‰$9›ùÐy…Ñí�bÖÜ=n쮉ٔå(Ëœs€…(Ú&²µ£¾#r<_–u¹DÆ^$œ5:R±cÔÊ(µhBÆ£‹mÌk-n¼wV´¿ûÕÿòÝÛ‡—·^ùáw¿õú·w{ý‡Î#clz˜w$ä^–Œ»íë“©õz¡t#z(NÉ †Ö*‚°°ž|…�­šjv§­u¤ú©]8H² ¤ê ÌÛëêê®AÓ™ÎW%Fy¬"•CRq¸÷þ­êöq–—¡5S%ncýÛ_¾½<#zç¾þ½Wž~êéo#ey~«?ø„�?›¥R âøbÏO:óv#eÔÀ9É8OgU»CÂi�΀hƒ’Q/Im/CÂ�­ÁþînÒßQì¥ð+‚qm·@Ó‚„ª(•aÂ=M*¥#zS�Ü;©§ey÷¤?ê�iVž,1®¼G®üÉO~òµ—_ÎÓ|˜ö6Ä#c| #cæ#c)û=…dÚözÙzˆ“�D:šÏË=’YšæBA¤w¨¦Þ&µsႌ”#nHZÆ®éB#0!9‹µ#rrYW"Šv)M!!yÆyÑÝ�Žï^NÝ9™ð²ÌûƒÞw^{í;ßþ^še›#cq…/Cø@ ÚË“o^ÜßÒÃn/e�u°ŒïGyœÆZ* ¡´^¦µŒ H¨5ÖTu$„”±ÊÓÆÛYÓ¡ïœ*�¨œ¿3�½õ›wŽnÞµŽÛÚV#s7ó8Îw¶vú£üð{W_x1ÉÒMó_•KyiÐ?×Ë‘-óqÝÌP©”�Bˆ•þ€Ê%�«À†!#04M-€³D+%QËàA›Æ–¼ÈF[UD·¦Ó¿{wú›k¢©:ò‚ðpoø�÷÷ç/o#r¶F£�Hý©Ù³Ïˆ/I$$ÑY#e!¶âxÙ¹ªõ�ÂX¡†ÕSÈ„t:µ#cô¢(HEDLˆ„R”ö#zµ˜7å 1FÈ£ãéÉ|ž¸òl>ìäÙ‹O=}xéI­#cúøVùMàÑèíB*ÅP˦n¬ƒ¦#r#0+$äL#n’gž#n¢Oõh­uŠU,uÚÓNRݶE9co®~íùW_½ÊDû½Á Ï?oÝõ¡às�M~ˆð��÷Ƈ£ª»»lm@)üPŠ4މu)0^©�#nðÀ®¶u9Y(©¬VÇÆ@Qn�w÷úyŽH+ þx”*P‚0!+@DÂõE[»@žIi"!h �…À²ê"oy«TtŽæRvEûÔÖÁ•Ãó‘’%Qö§àÑ j!@®åÅ~#z#0nuQ{ JG Z©XøHË·»ãñyK¢Ÿ²¤´ßo —�Aì#cð›#zô†ŸÏ<óÜûä¿Üý¡òââÅð¬*g£ûÛ¿ýr¦]Éžš|é›÷]$Ò[ç,´ÕÖ§+êº hú#s�Ö3¹‹ÅúÕ9 #r]o«’lj»­âË÷ÿ#0œÝñ¿!9 ]Ìe".aMlj>û•oÌ>õÂÅ’ýŠœ…&ŒêŽ•†vÞu,‰¨ýÔ§~¯¹°t±po–³Ðz£Žáx®Í `|Kf¥üò—ÿî7­IÎB‡âq à �«�κVá2uŽ?òPc~þbùΙ³Ð©Á�p$˜rˆÁ,u–LËãj¹OþÑŸ:õÆÅ"þrÎ=×M!ì�B=Bd dž}öÔ·¿{±ˆ¿œ³O.ŽnßÉ«ŠDذ$GB)á<{Ï}ßi-f.ò�yãi<¶eвI=€˜� ¸˜1€Y(¼òů0B.Šò#ry#cºoç�á†GuBy�I#0�@‰÷6ýÔî™G»(Ê7ä�è`G‡‰›œèñ�yB)ÅÈóˆ#r<“´&ÿç?ý& oDcAX³sÜâ�²ã@fÌd‰#0@Š}TZ9vtñÙ§/#nôóF4#0àò{î%”U©[#01èy”ç‘#eÇå Ûûý‰žË¿óÐ_Ì9Ðj¿âÓ#zÔÍ1Î¥Èc̲¡*#n<ƒ|våà__äsä9Ðr8¤CÄU4³ ¡#0À#0ó¨Ç#zÔ^xô#sÙC‡ßyë¿åh,Š[®Ø¥ñ’¸#z£‡8Ä#eâ€VY«}üoþž˜æ;Ï}-ç@#0ºG×*r#z1#0õ( �ã #r×t˽øôÔ�~#0ˆ÷s_˹Ñ#cCq!"Ç; ˜Ó]êQB¨åaË„9α¯~Y?uèæ¾–s£»FG±$0â1�:¼ÐØ@#eÓõ BØæ[¼PÎæOóë´Qy‡ÅàÍÐJ(Ô98€1âg Võ¼&D&dXú˜h”WÏ<òÌÉ?ü¿I«ù�Æ<óù9è¹#0Ø.U$,#c[E ÙŽ‚XHDƒ¿�#s6eË?’ýþ÷xGGÀs£#0e~€0€Ð£��Û¢jÃNò,ŒYLBˆï�$BR héÅû¿o/¯#e|4„Hõùý;Žå!&”D8³ˆŠ†¢~ѱy—x1$½JÀÈ-”úéo#0#z£Do¯‚9ŠF�#0¯Mì@((rœ*ñ!MvÜ6N"̇“Ì/äú¿ÍùÙ‹Œ#0Fº;!fã#0eBDö „P�xAä=`«AA)xoqzú/þœ´ß¡#còM{: yÌhX„j#0Ú´lƈª‰.µ8ìQ—PÛ¦ÌsÜ:†DÕÆKÏMÿ�/ǹ˜èx_ŸÆa:uÛt(u)µ—bìQ™êÎå ˜—±”tB¾ûÃ?Œ^4´¿«s0I<#sIs¦ë!ŽwˆÇxOP‘ä“(a 0A‚AUåQÒÓßújõÕmÙö¾ãÇ»c‘¤‡#e׳ ñ#0ÀÏVEAæP�X¤Ý0mÃaI¼(pòrcöÏþÌÉÿûŽ€çFK¢xýwtŽ�‡#0m1V£À€ØE #n”Ê-Ó%‚@¨gr#0QÀ"½I-m›ÅLŒ›š™ù‹¿¢íÖ;�#0#0µ±ušOæÞÀ$¬eØžK^RT!žã:.s)Ï(Jµ#nôð¨#s0ÈHåÙgÎüÓwþýnÝß#r€ºi38 P—¡šIZCÛEFr2ˆw„‘y„€#sb"$¨íÊýßkNN^thí˜ä÷ù8ÎÀhÉpšvÙdHñ!…çx¡‰9O�…`Xü¼‹])a–² _þ[jÛï4#z#nR| _Åa¤3ZF`¶iTlàëîÑ=›ža´]âðš$ˆ}Hæ€cF�ƒí}ûV~úÈ;�#0úÖ¯k¨#cÆ!P„´@ÁBµYÍV(À”r®GE¿äR ó€ç˜§2ÅÇ!à#0ŠtЮ<ð#05Þþ»²_�n»ý˜KÎ4#r¥eJJ­Î—$3Æ€ÈÅ3éz®Ì#eÆb`ŒB.D#z…ÅÓ‡J¯¾úN£û&¶#nŒ@ˆ9‚’éé:U%ó âÕ"!0,`N‚ b ˜bh·O|ùo¨õ6û-М ìZ3¼&à�#cC¦B 1ŸÓ[¶Œ ÂxD¡Ä‚ȪjЧñ:m„(ṩÓ�W÷¿£h#0@"èó{.EœÏ�A!ÌCEPã!ÂCÌa—:”#s‚ŒySè!s<çóñX‚&ˆpÈ1çþõŸqßQt´·G@#e#r#0¿ 8 2ÇÇˤj#c—£6‘‘aD¢.â8Áv˜a¸#0A‰Á†K ÀW{±}èí¼o_:‘`4™ã  Øà=Ý­¯X^•"R�aÆ™:qu#e„ G(#rh2Oš<öÚ`.yìÿùB£#e˜™>ö¡ýñ8u]H˵#n�{úŒƒz�ê#rf›€乄Cœ£3פĥ”Gu»ÄX”¯ÄCåksÝ�ý/îŽHòÛ‚æÞò›&ŠÒ²-‡R“r‰±ž�Wuõ²`™P@&rØv#eâa„à "ˆ=OÑ$ºyËø–[±N=úd}¥ÞhoËÒ†UT:ÕèKF B3l�:-âµ#0â>Êø€…!um‰Ô¦¼(#0Ib"ÄZLæÆvô#eºcïãÏv5«ë7_:°nâí0¯#r0×1<ì#0#e�2ØÖ�™¹|£E$U „�$ÁVÃiTæƒ#0ˆèÀG„@ô¤/Á¯Û˜ûÙã—Í¡‘�Ñm›ßñêÐ#0 lÞ9äãEã†C õé…BCw(ež%µØq ë!Šl Ø"–½êHk·]ÒØ÷,0ʶ/싆í·ïâiUèÔĉç-æéˆY Ž÷l—#sª#0ƒ.´pÐÅ~Ÿ(vC‰L$Öè_;²y¼•Ïù;¢_üéOµP¬#s¦ ‚ðv¡ßú@#0ðÁ †#0cj#c¨#cbQ0v<¯YÐ-b Œw»"�j‚iµû¶ßû`õŧzy�!XÕäûž<öÁßúdÒ_TšÕéýáÐÍ·ó>#r UUê×E+ሇ!‡½&Pùþl¾ézžìóWk­¸ª ¦þ·÷^W*;L/#nºÿÌÜŒâµDì#r‡“§ÿè3ôs#zݶýß�eÙEj˜ž©+6¢ÒàØpB–þôoîS•@wgd»-{7lRµŽÜRZ8*#cŒ™Ùn§�N6Ë­­»v>ùÄKW¼çr®iœ™/¶öžè ^#c»üï‹f•!M»Ó§ù6ßò‰õS’þÊ72ÚÕ�|zyn7ãc¹¼G¸©éÜ„B}QØv£©µ€ò†¼B#eÓgùNÍÖIþ_Gæò<ºuó¦÷Ž­¿0ñjÑs]QÍC4±ó’®Kw nÝþÔ?Ý—âØ¶€¯/Á <�·À©Ç_Yê]sÕv})7¸aC5W¢‡XÉ#nÐ…”‚þîág‡nºá¿}㯥 #e.µ?’B_#0#zá _xËAeãîÙòžÛ<›<ö£Ÿì;ð²iÃÝ× „£“ ùÃ+•…fs(Ū#zX¯ô­ÃÃkZÏÕZ^«âèÚ´ù“_ú»äØzYQuòsÓ®e#s{.#0ýÖ•¦„#0F7�üJ>_üÚ7þîÙ“>1±²iëâ¶ Z¯‘åL�k—‹E’>ÍîÞÿðaÔ±" šH­åÖoo>ó#cÇç»ëƒ—"Q!É5í)Ú./œ:¸~畯ê¯}~襹é=�=Øéׯñ…}é#eÁU;;o~?ê]$¾žž “¨À±B¬•ŸÙýÐ#c/ßrKn=!n«á™U_8ÂúǸ+oò�”¡Q98ÀkªÊ”ª»ÆwϽ#04do6ąç™#0p˜ãÅü¡ŸûÆßk9_¯I‰Mw”Póó‰�^5,#n(uÃ̵ëS­=�nZ½ñÚë{è¡}ôÊB¡ÞÚÚ¿sc#n!Ž Z�âÌ£ïv z÷Ç~_#r^Èeß¹{ze%{æÄ“…ÅǾ<]ÓéðÚÑ�u7_vyç†M�ȰÏ(fÓz~7›z»åŠ(Ó|þp(xÉ–�Ç~LõØ?¼ÒhD‚R£”sh¬«g@#0�‰±’-/-v�¯ÃˆŠZ¡ó>Ï]éoßÿ�O=úݘ÷íÉ~þo¾vÇí·#0#0LÓº÷·ÿ #rö½ð̳cÃÝ�#eºí™Áh·êb¡ŽÎžˆßçƒùéIX:63ù!’£ÕçòéçTÕO!#0À²š»Ý>69µqã°¦iVËõ#s<¿Sã¹?}ù¥W˜œ+·ôÔ#0úÙ?²lË#côÇO¾4¹R+Ö+£—í†Æ¤-—§¶]‚)QR#c#nßÊ/,Î-žœ¯„{Ö,V—®¾m ÷8ÆÝyçDI…`#0C„!†�ÅPCPT%ž¹Fý|+}îƒ`xhøæ[y>ÖÒÙW¿÷£ûçªÂ‹éVÿ�wJŠbè6& 6ÛíšÔß!h€x8L<âzÎâÌ1•¯Ã=�f Úê®ÍF…�„@Œ#0B¹@$:4<ĈŒq#0€Ù( AļúëV#zBø©ÿð)@]ˆ±ܯÝwß“¯ĺäP�?ÐÓ?8ÖÕ×#sF ‘çm€mN¶ø�–u…¼Æé­#cÑ¥™"tü=]É�èÉØ#0”0Úò¨A)#c öõõ`È#0@É�‡z-{^Ó§oÚLkFÆþè¿þ$¡t�Øj‡ÚÙ#sJrTQ’!¡3¤F|þd°£§o<ëÙ<6ÚŸˆ§‚!§áZÅ“Aîô†Ñ@%W!¼í†Ì–Q-–)q-³#n˜ à!dEÀE�ažo•óže­ý+ÆH¸ëòwé¿ë’};owÕ(UY�eALÏ.4WrÄЛ¥†èC™jºVjG}#nuW‚â�vhÕf«^Àª‘¾CÇ×AŸ*ò‚%@äyPà×ir°� lUʺ19²õ’_·Ò#0€o|ç_ eíÆ>"§6@1Ìx¹â²¬Ž„@,žH¨"B�•Ò™£�Å̦ÎäÂá‡FcS»k£¢*¯¾R[XoüÐ<^÷îà‰…t®XXaÔEˆ1HMÓÄ�c#0Bív�˜¶@ÈÞ#swíÕNç�»Ò®ãþÃÿúö7~ðкÛ[ì#e˜ X˧ɈÙHU —ƒ±‘±­ž[ ãàÑÇ¿»s+¸óú¡år~6ãÌÏ4ã]ƒWÝÐ,¾õͧžyvbã#0б-†9ˆ BˆÈqpi!­@Ä;ö¡}¯î¸z×…WúÛßùáŸ8ôžÏþùÆmW#cÎ×¶#rG#0£ d”ÁzÓFí´]§Õ¹“?þËÏ‘Ò[#s¤ìJúøñ¹ƒ/äKNâÆßùƒ&Ö %Ô»ýÒ#sÎ,gÒN̓�#nœ0‚#0Àóª"A˃H”É_"Þª–êœíºîÏž?°á¦{gß+Ë…¹R¹®¶a6JåF½Ì½µ05¿o/›™j¿òü¾û¿“O}ü£¼˜+LgsõÓi/0x©.Åt$9rtpb{ÕÅ~�?øâ`¹¢$ó¢_Û1Ä”ðãÇ›Ô[»eüøñUMÓœ£=ŽNžœÍ9ƒ6ujY&$rlžÀéý{;yT®dN§�NzúÞ»zÿðþ¸j.>èI#0¤RZ/åIËÎ~Õ|Z$’#zOmØ´œÍÊŽµ4=Õ1¡ Š�ƒÌ#cCŒ8%ï2ª#r�xñd|x|ü+Í!ìZM«0‡–§ÅF>H›²^õ1‡ã€N­Vq~rßîJöÌä+�ßvCÏÚ Å“½ƒgN»Œ4ªh¹&ýöÿ9#nk¯>ñÓì‰#cŒxÁž®ÞÍ› ”#zž[­r™%Ä£.ÆD q‚?’$þ vúô4«:ŸŸk‰ÆÍbÞ˜;.åçU£AjµÆü©é=»›sGh»Ú»q]CoL; PO“Å3³¥#sö<ÑäÙÉVnÙñ´žÔ®ëoÿÌçF¯»¾¸²RÊe)ÇÝpËM9U¨U©¶Z�2€ @˜Ë¨ Ä‚¢cÃkF²Ëé7½ä|Kt,2^XYt8—È(om¯R˜?’ÝóÌô£Vj›v]Lje{ôȑ‘ý+#sަPnÉNOëfÅl¤s±@|ÓM·�Ll­”k†mCÞß9võ¢Í-íJ±(`€ó@À ‘`¯Ý,›íöjÐçèi ‘„@ Qm[Ø—ìÛ¾qhâ#z§]¡žéêNöÌ2¯ø©c”Ådzr¾™#sN›«åtÌšÏ?ðÀíøx8²âO#0#0¸É —ZËuo=vp¯OÃírZ‹÷Qææ1ˆ)E#0€•|f°?U-¿ÿB*-Ë2’�ž%žJuu#rÆ#cn1_?3ݘ;ƒt#cÒÝ×5¸#n„è౓=]±Xwt ÎAUÑú±!«Ý:ýÊ�v./É’ê÷ûE÷¨Ãa#zŠ—9Ç&ÖÊâQ@ÇÔ)£Œ1#0#00 F4©XX¾ÀJ+²$CR[^ôÙ¶•™-Ì�$íj,ÙY¿ÓNô[Á—ìêËOUméQÃpӦιeW âBøö¦{÷>þ2ÑøÔÎ�aWw�Dm׿Ä(Ö"Ù’±¸4¿v›íì® HŒR]7™c‰<¿#zô9*� ¸î’¡ÜôÑÌñ—–¼ Y»ƒß~¥?Üá}²£[Õ æ1/hÑØÈác¹ *[ú<Œ#rÁnJrä†{nÍÎ/´™ÑªÙ†n—BÍõG‡2†9·T©Ê…²Uk6#zõñL×l˜­º¦‚áèVzîà^­ºÀ9 12áÈ‚†ý#0ù¨áÔ3§@$#n0#sa¨©Rº#0í¶P*ƒ–S]™ð5_;~pßåw¿o턽´°ç%.¦µš­ $!5a¡Ó³3�aY¶ËT|#z�ÊÅ¢ÞÒåÞþx²ëB*í9æ³ßû³Ñ¸€žQ³E1ÜÆB·ª¥|< öwA^-é/ó…JÚ2¹ÙYÛòªÑXB#r dÄY8úâìÂQ|ŠªäÓi½ZËçJÙ#eqv!ç#0µEý:U�ONž¿8ã6JØ5Cª_–嚛ɗ3ÙåÅ…•h$PÎ,2™#rã›{GÖWƒ>ënüÙ—þçÏ~QvÍËÖFA}ñä#eÛ0�¤"YÓñsòšá#rí¶©Ë!Ï0Ú­RÙlˆAzâxhX¥,#e©”j=[v@(DÁÏsÄ2-£-!–E™z3‡»åR�Ú*`fƒHˆZFË#s¨€“#cë8AZ#rúõž><9ó™/ý£ÓöÝG÷$Ì�G¥�½¡S$ìî ÀÊõå…Ù“Ïü+v[A¨Š¸´Rlך˜ ‹NŸh¯Ù#eMF£g°Û#s�gœcûû×4Z:±L sÝÃk«Ó/ç²…Âä‰�.¤@`™岦Òîþd¥Øx×¼IôV#c~Ýl¿ÿÿ}#r:hPSF®øYþ°4n›ðOï­µ³èêµÅ’•›Y×Ë}øŠ±­ý‰é…ƒh#0›Ç át¶]X J éB˜èIq{æÑñ½…¹cÄ1B!jžz¡lU#zj†³F�>|ÓÄÏ�1ÚÙ¿UäA¦^�tö¬Rü:ú¾÷P�ˆ!5iµMKwB#cWïQjxnH›™�9âê­8çÞzM×ïÞqIJƬY÷wùl·+Ä‹éf­mR£ÞÖë’aøMñšÓ4÷½I¿FdYê‰FZùÆ©çkUÔ=ô­ ¹NmžwŒ¨ÊåÛqßÄŽKWÙͯ£Ó¹ü_8ÄwõË‚¿–[bÔ¡’¶‚BËÝõE¯ê4Ì¿üoÞÕc€Ë.dÝŽ%’·l ]ÉHÓlÖÊx2ÛZö#zu§!b(Š¢a*6ü�©–‰].UydÆ9UtIص–Å­+êG¡0µéÜTúÊOÜÏçy#r#0øÊw€ÁÅÀmÃj#c^lÙfPëâ×#eV±LÇ<(ûøúJÍ¥d©¹éò˃k¤ˆ*‚e³¸î´ÙÂ�—‹Â¸p&RX£f Hy-èר®WmÅa„DZ£#0h{®xÁxä�÷ ÞüÉRzjdttõb#0#0*UûOe-¬B®’I{ÄE¨˜JØ‘.î€R<Õ7¶ûÅ)HÑ�xpdL#zèqEØÈš ùÝO+[VÇ€oÝÈZ �G<žÁµƒáÞT Ùö`#e�)TaŒI‘T©Àè5L€pB”ý’æK#r︋«#z4^G?þô‹+”Z¥©Õ}~©>Y#rBAh¶¢FTŸœ«WÒ#r¾âƃ#cëLLç�œ#e82wbª”-Õ÷žœ±EylЗ>0%ò#eȯ#nˆ®èŽ#rÈÃb«iCQõLÎ(‡eª(XQæ9óéS¶×€)þ¿º‘îut¥Rc®×®”ÍfͰt›ÂI‚/ÌóZ2#zÖé¨ì÷ÜFß`XÁRy±‘)YË¥V¾ù£çŽè”û��^[L—HÍÆmZ)WxÞö€Ù$êÞ£+™e#s—¦fKnè¨x^ ·L(©qÊ…ëž2¶ag¦¤Ãó9þþ-Üöm›~øü  þp`ÉÑý>�A†¨ŽtÚ,O�ÆV6¢ÑOݤ´¨žÑ§_ÉÍÏdP"¸}¼ç¶#rƒJÝÔiÚ®8§L{®Õî“‚”ksŠX2¤çËý‡ÍXnïIB#zA>ê"Ä,ZjâÊ#eq¸«gr)ãTõo=ø�ó}^úsô%›Ö­[Ûu´ìxuÇï‹2‘ #e®’Jì’ˆñé�#e‚‘œY¨^#eÌ9q[ÍŸyâäòâ´.#0w¥Æ!ª9¦·œÉµí�¯4KEÊ�ÇCdzУÿô¾›ÿÛ×#eL¨v©v e¤AŒ–ç=÷衃Ç+»Ÿ<Öl3#r n“ø‘KcWðgöO&†’Ži<õò±¢Í/#zM%½„©²ÜÒ¡”ƒ5$Ck¨iÛõ#zrWª­F*KööUò•BÛ#nùB#0�÷ÄÅÏÑ#0€-ë†ç]Wü�göxu䵚PPIð˜’v"~é_<9Ð5v9hÖª>˜.^mûXü±é•(7A›‰§ FZo¯íˆ–Ój›ù‰,»š¼°œ)äW슿ڰ#r= 9q ü~ÂóJ0’/VGú.#r#0¸ç¦]£CÝŸÿû91MŠÅ0NB1ÖˆŽ}ìóÀ4LŸ¯KSO=l ì³+O#nœÖ÷âáeˆhBEK„#r×pìy”N Uu³YªÚ¹¼d·u³„#0äxck·šÀsJs…Ò…UúçÇ`|¨÷¯?óÁ‰±>ÑÏñˆ©ÈkHâpÇ…L"¶=Բݶª­ð¡ c†/ÔV"À/Ô#r×qš*` p#0@@‘0?;gf–Y¹"ò²äDÇ¡Íz“¸ž$Šže ù}�ÿZè×2Ò�úöç?ý�w]Í1Ï-¥Ý…Yka¾Ò¬×j*KþÞ!N ›(ò–…$#00âa@�W}~Žƒ‚È#cÈŠùR!³#0Œ#n$†i[Äu¶ Ñqg¹.kêÕl¦°R$äB^ xãˆ#rø¿ø»¸ÿ‹ŸÞÞt–OUŽî¹´è™5ÛŒ�‡F¶#0VËCÄcY•Úv›9„8YôCArâX6Ñuf”x²ªØŒ¨šÌaB)1¯Ôh‡C`;Ôѯ¾|+B2NŸ{J.#z#nÜ|Íe÷Ü~võô‰ãõ¥é€OæýZ£UãÜvS¯"9!õ0¶aÖêÙ¾>Î6mMžÉ©4Ò!!,ˆ*B|g@®.—BZܶ=Ž£jó të•cÿÄeå­ŸrürÞ|òóÿÄvœ{ßw÷ {Oõn½R#nh•Üb³´Œ<‡ÃR¥RÁˆHX‚ŒÆ=÷Æ $¦‰=˜â×_,Âa‘#cˆäÎÅeE tb1|ë5k3�Ò”rÝ¿~×õ÷œ×%XÍ4³(_ýÚׯ½þ–ô«»¢¢EcI‰ŽãpÌõÂTÁv­¶AVer’Ç Õñ1 ÐPÔ#sxšBóØmýÞGîݶ³·0zþ™§µ@ÇÒ™=¶g#euÇ9î÷©;3YB*ºñ5L�ƒüØÎþH(™Š,,ä–2éìbqmïpÈÏÏÌUŸUÈf+Ó}÷þ¹çŸ»lç¸íd=½]ÉX¶jm¹çCà|ÈË®¾öšÛî#06Ìv¹V™Ï�Ïå�Δš&2-O•$ h%_Èd2ÉÎî¯ï#smª=ûð3N#cËE#0¨¶ª§ó¥º›].X–M©<22*HÒÑ#c“ÿü½—f»ãHö/UÛ�Ýý¯¼Kqø WÏù$ød݃Õ&)7BAËl;#0·m#c•Ú5®«s|ãÄFI–oyÏ]¯;1;—Ƶv4)µÚ�Bsfz!ÔTH ¢±„_êi�Ðñ�‘vu¹f«ž;þÁ[oî™Ø&F’¼GÌšÇ�bÅ[·#0x~h#0Àᇧ¾Ü‘P:C]šÌç«í©¥b¦hè :n+Ñ•Xœkôw�m¿t#0#0süŽ+o|ö¹+•–En¹í*šS#s2Ù墬8ÔƒáplÍÐ#0bdÿÞ2†±þÔU×^%4ZÉ>o7¶‰ÓÒ»fUË kC¸£¬rUïkaŒ�>uúôÉÉd,�ÚF%_ÌåKEËu#0ä(’>ÿ#s_t(u]O•…éS#sÈÿyKcî›÷}ÿö�ÿÖÜÒÒÿþîî0ŠÜyóe>N¸ï[O¾ôìÞf~eyqÉóœ»ß{ÓìÊÊ©“ÅÙýg¼tÐ×Ýi¶ ½R)×2žeæËÎÀÄÏgüÏcô¨W«ÿõSŸV-=‚�øh*¡ùrùJÙ§¥¤#e©º}Ûº#rë7š¶eY&‚ôðáýõz5‰½ö]¡¤’Ë®9ttñ‘gŽß|ãÄέ JÁü QNRù»ïºeÿ±ÉñÛÿáÛŸ„§7ÆšÊÌeaIuœÜ+¹5w¼r?מG¥ÓÓ§î½éšOæ÷‘âŸ^.µ,*ÊJGW’WP_â]·^EüJÀuh¹Õ&Ì.æÏúÏu‘X˜ú#r·ok#cûûí©Öì[zëÎÛO™�95·ï•C}ƒ×]yõ§>ú‘¥ÉéíëÆÌÅ #s”-/Ë ½ën<õo›:�J·Û-Q#0©ÑÞßÿãÏÍÎM›­¦Ë`w ¸ƒS&FG�MM‹¢44°Îqsºëƃ¡z½ú‹_×¢]±pW~){ÓuÛ&ç¬=<óþÛ#s()n߸fz1½ï¥£#cCëH­9³û©ßºóv%¬PÏ’=þL¾¶þý•b‰_ÜÔy —ÌÏÏka!M„ÔHWÇP¼«“÷ËÌqŸ{j�Mq/iñüܼ$0¼¥¥å�—½þuA -/Wë¹jËšûÔ~¥#emÿó7þJ°«=}ÂØÀ@¡ÔþÆ_þýÖµ}›ÖŽnÙ)S«¼#e.IáÍ÷|˜û¥‡f«nÆôv3#zŽX:-ªÅ•ü‰É£ûž{~eæÌ±ý‡N�˜½êªk#0#0ÉD‚ª)*!„Ò³n¥ƒ…–åb1_(UJ¥Í›7ÿÁþÊ¢óYS·Ü«wL¬í#z¼íÝÛùÑ�q"æLº(¶Þñî_Ÿ:›Y2›ÕõëF·]±khÃ:5#z2!#r§Â@B©žn-EÂ#0€ÞŽN@AÀçã#0ì¬wl�HÛ†G"ÕZ #0ÐÕÝ÷¾O|æäT�gê�~êêë¯óÇR�òÄñ#zrè’÷Ü…¸s7ÂjÑ…BŽç#0Â�¢ÊrG,¹sb«êúAHi*þóQ"—[¡žG<˜ËsgU:K&“�#0Qæ::’¯ýrûe—ýÎç>÷ø¡éH÷º�Á5z9k¤æ²ù­·¾¾ù*åUõ4!äØÁý)�/VóåÉ&Ǹgž~Á2�þ®H›Ï•îxïûÛDilíš§v“�¢XMãÔñcàý¯ocþ³ÿý/Žz:‘J�¼¾®ãÝï~×wÜ>ùʾɗöÆ0­@©û²+ý¡ð¯ð¬#nÝlÔó¹t#0Å#eÇÔKUÛp1!—�o(W«€€-›#sb±ÈäÁW>U‘Žç‡NœùËÛG�LÔÙÑȯL¬ß(¨oq·»*ôc�=Ll‹yN1»R-6fæ³ÇFKµZ(Õëììéï)2Äc¶nX¶)*J­Ý‚˜¹®¾¼œééí[Í.#0„±Þ�XïªÖ€¯#n}ðà«»F{yÏêŒÇ�MûúºÄ 6¶qtæ 0ÏuÚMÏj×dQÄ¢¨ªŠÙhU!#n¶êe°Jôùd5hÖÛÝiº�v»mxÎU×^Þ¿f­#rI¹U7m«Y¯C÷ñ|Ûi™ ü>³B‘ç¸zu÷C?X3¶‘ãß¶w‰^ËjF˜ììY*6 #sv÷ôF‚A„ñÚžÑ(æízɨW-è6#zı,« ©6#0“)eéù©••ìÛ+«l�{ïýpåÚs™y•çæ–k#sÎ`“R!‘Á“§IìI¥¡Í¶ÞÕ•TCÊIÌvª«³³«÷â #0‘X<‹3Fß“ì>ðžÌJæÌR¹3Öb]åRyñðiE”tÃÁ¹†_K9Ž«Hœi˜•f ýÚoj]8úµ@ˆ"±ÄMwÝ#0#0€QJ€”x„Œ9J æøC‡^ùÙ#cÿâØð€æ¾íâóFŸøÚr~„îç«xx#0@"Ñ¡ÄCŽAÊsc즰~E~ô¹“L&ñP àØÍçæÞöíƒóº XeAÚqù5éª „ðG?ü»o{™Áê@žWZíF>—#r…ÂÑXòmß8#0àÿTû½”Ž2#0#0#0#0IEND®B`‚‰PNG#r#n#z#n#0#0#0#rIHDR#0#0#0/#0#0#0‹#0#0#0~ÈW#0#0#0 pHYs#0#0.#c#0#0.#c#0¢à#0#0 #0IDATxœÍÜg”]W}(ðÝN»çö2½iF£.Ù’e˶Œ#r®ø#s””#s�Eb©$¤8��XæA æ…„H¼èÙÆÆ#rwIVo3£)š~gî�ÛO?g·÷ÆFX’mð;gîÜý[ÿ½Ï®ÿ=PJ ^ã#c%� ôZ¿€×á+JO=3ýå{çÿh„´ø>ÿÁÃÜrÞx#ro5á‘£ŠŽ$|Í5þÚ5•#cÇ’+#rÜð˜ý†ÇF‚pbF�¤VnÈ–ýFkÂ��炇ժ?=ók‚ò#n›’@(Ô쯹³xMšê±“êb #c¬bægoœFÊÖƒ?HáPÕ ®4}šÚ¯µé¼zMT©ÁãD#eƒÂPµˆ…¥Ê¦iÍT#z#0ƒHp)DœK÷ø±7Lã>¡+B5°�©½÷I£7Bù÷®0!ÀP`‚�Ìž’õê ¡+U85)U¡j„i˜#z)ˆ¬T½¹é7@Ó3ˆÓ‘@˜#nÉXD"f//þÒ5B4ž?#scq!#cˆC„$B@¸ËK¯¥|5#zázbßaSžçÙ–ËB®0¨hšS½…Y ^ýDçÕh¼‰)TœÃ1=ò¨Ê æP"r*¡P¬–ü¥j¤l<µ/‘1|!Àº B¡@_2 „B#c Ä/O#c‚°rà  oúiAÀ%Rót%~©5åKxqY#r"q€‰TÂ2 %!ôê#ræ¾úÑê¼5ÎÄtªáJJ%�€-#z„dQ£6ë¯ZCÎïãRÚ#c£#zõa 9#r1�K¤’ˆ3ÍÇ ñê»ãó‹�ðƒÖÁCL¡® #0#c#0%”B‰1#0ŒŒ@ú3ã@¾Ê†|~#z{zALÍ2Ä%#0š¡Œ!#0RJ $a¤r,̼êi×ùh¤<ñõ¯ «ÆQLQ )åœ+(Hb#0ãÌô1#rŽ�°Vã®q–J‹{_�q• ¤#0 XQ°¢"‚8 !‡œsÄb5,.ýÂ5å=/ÄëW1�T21‚#0èˆ#0& ¬(€@ÈB#0êͫ¯²!Ÿó;%Dõù§³#0•¨„@Œ…dB*„@Î0ñ¸ôìfòUiÎ56¡eŸÞ÷TLEq9‹D"±ÀöeHQÂfDcG„ç_å,ç#ecc•Êi9�AT¨è†¡#0D X…Bu¤ #s0¯MN)#0<ï®õ#eÿ tr¤G$TŒ#c(DC×£›šš‹� „ç�n)³$œvg^ÍÒó#e5¤ZU�ÀŒ%D4⊪*‘#nÂ0#n9…`Pd%ìª4g¿úµ_ Fkµ#0¥`PJ¤#naD#cêú~­ "І2ÎC ¡`#zõí#sŸ”þ¢4a½Ê1P„T(“‚ª’�0à, :¢ #n‚a‚…B(�žeq¹>:ú‹Ò´ì–‡8b‚0N�0ˆÔ€I#r* %â>E‚BÁ%€#n“#eZGÏ{±w®#z�„"%EÒL2 #0Š$#zB2Î €OeDJ‵ÇÏwÆ~n#z)›Í& ’œ)�`"Œ$#cA(ß#s(�‚T(9ˆAtŒ�ç>Á9j„ãx‚I$�@ŠPÁ#0 ¸>FÄŒ™RJ9•#eH„#0B )àÊŠ¿T|ý5,ZåŠ"!ár&i¹$ó�*˜@€!I$#0É#0°ÜVeöü:åsÒTç��#zBª”ëcˆ¸’#nNy臎íxž#s8S€R#0 !F.àäá#c#0œGÓ9#sÍüÈÉFª1LTˆ#rÃÐ5H)8WE×4!%„#0@ DQ)$‚mÈ<ü½‡ü¦õzj¤ã�?mA¤AÔ8‚RÊ bR×eÌðjq-BPr FLB`Bž²¯V›yè‘×SÓ*­Œ<ólÜÔ¥Š%A_ÒHP!#cÝPb†W !P#ciJ¬sãP£qÑOÎ?»÷õÔìyà!îZ#0‰!Ðp€„š4`ŒP�£”J#rb#zÔtB ¤Rp�¥Ô#0P#0Á~LMKz®Óä³Ì(¤”OÞ¿;—ÐH ât&Ç9ÃQâ%ãÎR…PAƒ@#n¡!D!rɈ•D…­¹Yá88“>ÍYbÓªÖŠ§Né‚#s4�sæE�å9!gz"¡ÄSR3’m…TW#sVU$!�P#n)8G#0!0I!#c~Λþg‰Í£ß¼�ùnGW #0@Ï�…ºB Ò¹Ž$ƺ€Ä�$ d€#0Œ#0 k#nA”²ˆr¦ž›æ•b#c8ü{»Í¤jB¡´,a!ˆJ�b`´ÚB<4u(¦@1 #0X�RækRJ&¡¡Ÿcl^IÓªÕëKå,Ñâ�ÆDÁ$¥A Mc Â�ÁP#n#c ¹‚@T2$€Iä(xfnîuÐLŸšlÕ#n e#n#0Pð€ñbµ.Ý0²<П‹6v#zù¡‚I#0�@p$)"$Q=#n�?qŽšWj7ã#sF(§*R0ÁáH2E#0…§0%Wóy·£ÒpI¸Ë.à ®`b0 â§ cöÔÄë A#0ú,â#e£RxºâqA!·UÐ ¼£¥4#e›-­¹eØXWøòÝ:éŽÑÙÊ3�ÿðÖ÷¼ " à+ið]wÝõ³?Œ2/ø÷»ïÎ%èïäƒÛo»åÈ#c®ÝØ-Ó)cõ:³ÿšÙ2½oïžÙr催’É;‹.Ú{2zúÈL“ìú#rí½‘­ªþGá%7ÜhõôÁ#cùÐ*•ìà üù#sçgˆ#rs¬Ãÿñét¤#eÞ©müÀ‡ú6#eR›jKÊl,«å·î›*~ö?>2;13ÝlnèÈô#eÑÓÕ×39g}êžS¡2ØŸÅn ^´AiyáDåò zÈjø™ëþèØ·žhŸ›Ø÷­oÇWu®Y{šåã‡Ê�þ@ÄÌ›ÞÛi¤zæ ý샗]Ø]*U&ÆyþôÜm[z½>óñ¹Ù5í¹‹w]¨õ�Kb™]Çf`è]ù¦Õ½}dlÿ/ê_ ‡²}ìÀÌØ¦�W­Û¾æ¹ÿýyì)*~¥>å ¿‹wõÎV‚IÛª"–E…¯}þ+jX4)+MŽ’Í}àí×_¿: KzïMúž›pÂp©7¹óO.íÝ`í#sÚVȪn�7«~Å#nW`±Fü|z㵋3ÝÙy~šLß Of»Þ´Ý�â#0Ç3TšÈ+Ge7wêˆ;zçÚ÷ßõ×—lÜX[XH¤ŒDüBZo{×mA.?]m#0Òåb2Œy–7œR¿ôÉ#r�ÖäáÙX[/6ÌWм¼¦$�òþð6#z‚°NÙ§7äòr±v„7·ï„ºÖ–Àm¬Råû_øLW,#zX}½Ìu‘†=ÿÌ“ÐLì¼e§–KP§®¬ÎÚÇG•J¼8=¥²ŽÓ³ÅÑåå]×Ü|~ï<ôm5"Ïñ¦—š†L¯X°nMY•Œy]XMköÐ ]…˜x໬#z¬ùƒÇªs³]ýý½«ú¹¼#n“ÓãSÕR) ¼åF5ÞÑ–#z6&"?wp<ÓÈÀ—�#n^o6FNM˜±¤¢ÅÜÚR¥Y=| ð#eÉåo¾æW£½xbb÷sûš+Õ´ª½yÇ΋6®‘qÍqÜJyi|r¬Þ‚AËu#zG܃Ñõ#0XQ~å 5#0#0@:�e·R´*•ÇŽ>»´­£¯ÍÈŽœ8$�»ù‚¡wÜ~s"�ÔÍ®9§#sfVB4Ü·~ B’0м`Ï3{þÏW¾›Ž§1$ÃC}!s�Ÿ6;úþñïjo/œ—Á_xüa¿^yìÑÇì#0«V!¡šfbíÚá+¯Ø><Ü#ciÀ9€ªŽ°±#nt@Ä QUp…FÍryefùØ©iHÔ¹©qzÇÆ&:x¢­3ÿ÷#rô�Qsæ1 !<]¬Þ÷ýÇuM#s�çSÚ»Þyóe›†#reÒiHLÇr".H*S)h&±ibDt¨bD‚�kF*ßÛ½eëf#cfH Kµz<™X30Ø“ï»ã·?èºÞ¹j(eÿð‰Oþùß|lb¾¨™ /ðÞûŽ›%Wtht¤²’2ê‡QÈ ¬zŽFÜõ©Õrå" ¹ï…®xÑb±#e,•mËV€<==0æ1Æ…ìȵ#cŠïø½Aø³E¿|d°mç=¿õ»ß¼ïA�Èb©$%È&ãã““¥Juõ@<ïíìŒÓ ´ì–T”HH݈E~ˆœ…¡gÙn¡ÐN™HjDRŠ?|ô(cìôb±T·ÒñtG¡óðÑcª®^¼ýÂ³ÄæÓÿ|ÏsÏ0�d"‘8vàäÄÈÔ´e·r#c–ÒR)³²¼d7kÅòRÃò“‰´çx�ë&tM#cŠäÜiXÙxJF¬³³KSõ˜®·Z­¡ÁU•¦]ª5³™Lȸåx=CŸÿÜ¿Í/¼üàè%šJµ~üèÄÅ›¶õç:r±4#0#zjÈÁÐ@ÿöM›ü0b¬,W§g#cI%�H#rCfÛ®K)ÖôL2Ý,—¦FǼJU�%ãñô际əŅZ«§o€sVk5íÀÏdóõ†ÿÇýø+i~ô)jùT~¨«ÏÀZÜHéz"bbn¹´¼P].µÆ#sŠV“…!îèèê4â鎞¾Jµ95=gû>Ö4=f.f&&#z¥eß –K•ÑÉÓ§Š}ýƒw¾ïý}==�–Õ´�¾¾žx*5;_ä#eœYcÙîwï{”`­Ñ°jI`àúaÃ¥_vüýÇŽÍWLË–m¹a¢½¤]ókÕJ!—n‹™ ˆjÕªä@WÔCG�.MÍL�ŸBPÌ—JX543uÓMoWìY5y«û{iÍ]^*Ÿ¹ï~ð‰Çß›K¤hÈÚÚòNÔšö®�Wœžžöý`jfa‹Åç—–-7ÐT�R¹#ek¸Ôê#cLÒ¦ë4¥ååêrifnvÏáC}áøÈ±©y¢Æ°�m¹|®­†lqyy±¼²~xu£Þ:19uËÍמAó÷Ÿ¸ÇªÛ1M÷£pÛÖ NMÏüê­·vvv;9Æ8¬µìR¥>¿¸¤jÚÈÄäÓÏîYœ]#e¿vͺu«ª‹ •©#rÀ#sŸyº«ÐV[©-W*<õÔÄÂâ镯_þÕ]7¼õúãÇ�—* ê]xáé¹ù‘ññ¾în(Ñ‘ã#ck×#r#r#röÿÈðãqªZmÌLÍ#nâfln¹¨#z±�ë6 ­#zü‡Oö†·Þ´yúF«þ¯_úb3pFNÏ©#nÉ%S�ZSúÀ·ïã�5Âl6sèÄèr½577?_)Ï–Ë$–úÛ¿ûØöË/×þÀï?5þäÞ} Å¥ .زÿÞr©L Ö‘kÿìç¾rõU;Á/jžxò¹˜¦z¡×Þ–Ý{¼õõïí¾ëÏ>òŸ_ÿæ–Mô©zª7ÛñÞ÷þöc�~qnJWXÈEɶ>þù†ÂGˆÛNÄ8ˆïn4ggægÊž5«ÿ꣟X3´Jøa#cÍd~h;>Ýýðá|¶=®éŒ“î#efïÑ£‡�Ž^²}ó‹š}/ŠÂ Œü©ÙiÛi¾ýÆ[¸”ŒóþÞÃ0ãñÔÈÆ#r›Ïñ¶lzêÙ#smß¡@‹ÅTL±<‹"¹ðÃp®R³-·oÕÀ§þénŒÒ2~är0 ùl[oWÏ®W|w÷ý’˦ee21#c–M¥~ä™5Bˆ½{#cÎ>~A} ·ïÙ}¶_¸%¢òT¥µ¯O;Ã(-Õ¿vï)oNkŽ)3#s@e’®j7{†“†j®VÅ*ÓÒÃÚè%›’:ŽšŽS †xHAÕÃKåæÔÔÌÏÕ?1ºTv#0V¥H#n,�#0 ¤Ã%#0Lì#e×Ý�2¤¨ƒµ+–¿îªŒ#zoQd«J£D6Ò=Ô#sÍBÁëêòi…J¢*–À³Y6ß.°.�±X÷2=ë¯|ó�_øâ7—~êNÆKWwµ`¦ÈªV”ÉdU#r1¥a9^Èk-×s#n4ÈnÕ*+團àï0:5�¡©ª›hf²ÖXð³¹.¨¡|¶£fãb%3ºhì]€/”õûOÚMDã¶qÅU7nÚ²#rëù Pÿê®ÏüäMz±Ýø~°ïàÈКm½�= ¥¹ ¡ä­–§ZFàSW�Cý…ù¥¹�B_2ÕFyÃGîR«•M›ã+FgbjèA$»JK¾RŸ‰†·tdÖ±œéè@fž“t¾#cŸÖÌÀ›ž¯ð@3ô“#s§K+µÎöüK4#sNœbLÏdú šîêIšéÞ•z-–]sÉÎ+˜�Óó ÿÁ“Üq0¯Ùîd{{A0÷M§”ö]4^ŸˆªçÈH�$k†×>vò¨jtïÜy˪Þ^h‰ ¢²Õ¬C pÊT¢¨D3�ø�ƒ#sÞ~ã®—h&&gz»úÒ,#sD„(8öÛoº±»§bÕÌÛóScGZÍúÆî¾«ßv]«áÿóÇ?úôže&Yruj°o[ïðê¡#rélŽÊ!½­áR®.ά˜ŠšLi¶g!ʵ„R¥NÄ“€Ia#z1U%#sG&^®±mWAI)$!•@õw&ã"(b¬;ŸJ£^úŽã%²mX�õC;¯¿A‰ÃË.¾v¸g@à3#0”r9zVÖìSSdDŒT†7ª‘c%Tw=$"U`*�ô“ÍŠ5‚3.¸�bèyRÔöL#sQb4 #c#0°‘Èe;WiŽŸÍâF�sò;wÜÉ Ã#0cÊ#c*U p.#0Da¥�®ÄS)m¹#eC#edr9‘N*ËŲ -ÆdˆHøaèÑ—¿SmŽãrh$‹ �BÏ<ÂH¨ªâѰzí=í…ŽœÄ€bàÓHPÁ #0#0#n"*€Š „Oq4ŠT0!Š–H&l§Á"_U4M‹iº�1Ò0朷,;#cMS^®Y5ØW#e)E”R�ÅÔ„ŠµJeåÔÄxFvm¹N¾-KÅ)¢è !�KÀ9eŒQØrì†Õ‚s#0#0Â#0a)Aà¾ãó€CBÌL‚¨ˆ@Žˆ¨9u¸·ß~ÃËkª««C¢ ’”`%„êJ¥šIÆ9h¬¬Tb‰”U lׂ#n C‘Nçc¢ÅKe‘(’‚VÝjZVF1E35ÃÀšãT�fC‘F~©Øìëí•Ü“0,×—#0®¿ùM¿ó?ßÙÕ•ÿ‘á%;´ßÝýðƒ?yBO¤š�Zqf#eƒ²»³7—mWcF:�„ð)Lg;Ú m¹„‰�"/™HPÆ“º¦¸¶�ŒÇŠÅùt"~jn¶§³»Qkœ]©,È!D®åTêKW]½ãöÛo^=ÔÖ–ûéî÷ ûÅœ „�”âžÏüãS|Ë©ùé-©@U‡Š±jhCw÷Ð`ßÐ`__­YW”Ïf#eÏ[.—#s§Æ#s#sÆ#zµe«Qõ<[*ˆ .ˆë*‚Ü#n|M1¹Ù~ë‰g_¿qø™çÌ»×?zÆNîý³ß¾5#cûZ<,ÖKf¶Ð#n¤íò¸‘TìºòêD¾-K-ÌÏ=¹Ò#e)-/æâ¦¡]ëV(„–­EåT(¥Âj-…ðôâüu7_÷Õ¯|ã3*¼’†FÁþŒÍvu¦‹ÕÖ#eÙ&Z2Œ¢„NÀCΗ›~>Qð,`Ñ ,Θ†•t*°ÀôuÄÌŒ~z¼E½(#0Üa¸a5W­^½û¾o÷õ�y/ý•4#0€ri醫.[S0cÉü±ÑE¢˜’ù)ƒwÒ>#sc³ó€‰„®^{óõ“ ÅcGG8S(“C¢‘¤ª¶<w÷gâñøÏ+î,#z#0ÀóO=vÇ;oÅšI…¡’O1꘸ª:N6§ÀýèÇ>ÖÝ·ö¶w܆¥¡)&•, ~’$ÂPdIZÜÞ²þþï~Ã4.œKNÛE—¾éò«ß#ewy‹Ò&õm&C˜Z©G‚yš‚!R[!Z³é’�[¶^yÕNÔiB¯‘EnV],(�m«àoݸ5ìk¯Ønš¯tü Î)KÂ|gºÐ–^Zv¨°‹®SxK_zǶÁ§NÇçf/ÛuUwÏ#0&ÊPoÿIõ‘‹7ôXµÚ­×ïìi ——„m»Åjy(g.�>&8Cø•ΧήѴXgß`¥ù�Î#eï¶õÝí‰h}OaMoöþNÔ=Jôwÿ·†a#0#0zzºv#eØwÇm;++¥„ªe5/TZ?q¬{x°³�§�%„@¯˜„sv#r„èýð—Ùª~à�Ô±úÀ¥këK­ç*cŰáp#0H6ýãžtxú/}¶1ù©Ý* D@.» 0Ü�¼j׆¢ÎO—>üá?%Šv–²Îñ?@pÎo¼~WirNc0K#0(ç«â3Ão|ý¿¯¼æz#0€”â_ú�Ï~òî(’ºªdÓ`°�ÈÇÕ}#sOå×múÒ×$êY’ÛÎõvÆhÕ`gyn>–M4¸W­yQ$üÐî/¤N=ºõâÉT#nBÔÖÓ>__"°#0|oªî�˜®bUW¯Ùjæ ¯�&Œ" a.•k5ZPš¦#rµm»hÝ›7o9uº,ÿß=D»Y¹æšË¦JvKH‘àœòÆÚ�5¦IŸ}ꇷþÊ»_M…[7­ÿà¯ÝÚQŲ°JÚÚS”GÅùEb(?ÊÕ�BLMÍþÍŸÿ 6 ”ñÀv[�•¶œyàð±‰Ù¹x"qÖRÎ5g?n&r¹ÎÑÓ¹ŽÜ†�ëÏ/-R#nT5Vm6ëõ:#0#0"´aóÖñéy&11õ•–5:9}äØX<ooëèî~¥Ì›óÓ@Íd#nEÑu€`6WèhëN™IÉø‰ÑñTêÇgÿ·l™š]„R1â™þþá›®¿¹§§oÛæ Û²ùFýìwÏã#zO&Ûîø¡íx¶íш¹n811yòäÉ�Þ^Ãøñ>#n"|^«´$“åÒŠFôÀ�JåÚüâòë©ñüàëß¹ÿ�‡aK˜ñÁ¾>ÓЊ‹óé¤þ�>“N§MEëÈ`è£(*Î/>ùÌžc#c]]=g-â<îkî¼|×þ+ž¼o÷Ïî=ø¾;~ x×Ç?¡ÿ7¶^ò“+‘šªÒ© Ùzè;»×#ru‡NsÿþýjÌ#e*×Öo8ÃôêÕkg#exÑÛ®ØñwAM$>õÉOœ<ºbzjìè¥;®F^°j톯Þó/ß}ìé÷½ï7ßuë#r�]]õ†›Îväòù³qæìÃ3ɂؿO"»úŠË.¹póäøÈe[7ÝóŸÿ-”ä›.½c ü÷/~�FÞÆÍ[ê­ÆôüôšUí…3/ß¹ÀWÌÚ:¯Ø@Ó©äÖ-ë·nÝèÙvJ7²‰Õ§g.Øta±¸¢ª*#0`jfjfiñÏÿàýI3;55vòı•r#c ±åÒrgçYREÏCÃ;qôÀ–õkfæg›� ›ËÚÚv& >{#eÁhtäàóÿëïþ0*)ç#0„œ:Ú®|Û-Ùlö¬Eœ‡fb|$F@½Zêïé¼jç#0¢•j#r2/¦Æ’ûOŽŸ#zCÂS�;;;™03Ôr#nÉ"jWOϾ}GNùËŸ¼ûåy#n¯^ãûþ½_¿÷=7]�NèXQãÉÔŒBï`è4&OœÈ&ŒÉS£lY»k×ÕØH IjËËåj+Ÿíîïìô­Ö£Ïš››]·nýë£).Ìï¸hDX¨HŒâ¡ º>³ÐøÖ?LÇô·ìÜ+´1Iæ#z¶õwe%¨ úª.×®îöœ³ß¥:WM£#eÚ¶f#r¢¾U¯×ÃÊ÷¿·Ù#nª–mhÚèØØU—n?q¼mÕ`gOW ë#e €±JCÛu¦K Nˆ2mñäÙ/Xœël«Q]Ù÷ì“‹s3¶mY®³Tªz«z6—ݸ~ýø©Ñ#e*ñ½‡,Ú††o¼þ:»VÏ&Œ‡GŽŽ�2s™¿øÈ_#s“g¿m{®#z#0#0£c,¼z£�1QÍ0 MÓ Ã|¿º²¼0?377ÿƒ"ñ@dÇŽ‘”ïºý×κZ8oÍ9=RR#zEa¨jš�@ÓÎ2~Ùóªýüj…J#0#0#0#0IEND®B`‚‰PNG#r#n#z#n#0#0#0#rIHDR#0#0#00#0#0#0}#0#0#0k¦wb#0#0#0 pHYs#0#0.#c#0#0.#c#0¢à#0#0 #0IDATxœÍÛi°#eW} ð³Ý¥ûö¾¼~û®·J²[’eÉ»#rØ`LÀC1 �#0I*L¦B%™IRS•¸¨Ê2E’ªT&d&“„„dB°#r¼€í’¥÷¤·ïKw¿Þ÷»ß³ÌœØÉ’¼à9_ß;}~ý¿ÿsîÙ#z#n!À[-¥•ÕøÀ#0"ø-ÂOô–k#nÏ[ûÚß»õê;¨oT]]n¬66ÖßA#rx; o{�Yu§©¿ƒ#zð–A‚±õyb«P¨Wëÿ_€#z™-”¯J#r·Ú#0o£[¼c Òå™�b6áWàæÖÛé§ïhõÌ©˜$µAà”Ò̶ßc5Í£Â#e]©ÏÎ¿Ç ¡ë¾jE¢.dÈ®Ö�#eþ=5²iเ"r³#ez�AÜ4¸i!Æ%.T#0�ÅUÀß±¼~KIm;^«œK‚µfgœJå½Yùw#n�@„#c šU}kó½9å²" ær Ćalo¿S r³¨ã:•*²)f#0BÄæ@è««ïè¦#cäY±, @Œ#nG#0ä#0VŸŸœ¿7 ×Ðy¥!€HÄ 0ÞjPÃxo@*¢YG!B#nR«iîì¼7 æÊ‚¨–ãH`ÄfBåP®·#zósï#rÈ«…Ñ#0”#ceDd,a*òÓ—Þ‘4ºIgÆâ¼Ä#0#0q!a …€#0`Á­J‰sö³ F¡n¨D&Ë’Ä9‡!Œ9Ëó#z�Ÿ5ˆÛ¶� È‚P#0#0€B(§á#e¹ueög#r2óys+Í(C#0b#0��Q!„lèÅgžž÷3Y¥­Õ<Á#0DBç‚sð¨åL_nm½ÝwÈÍ�ô#exõ %€Í)€!#0ÚžbNkfæm‚næ]&+ä!s9†!1àL@�” á.Å­¦»²&8‡è­/÷n¢¦Û¨ãÍmæx‚#0#n#0@#0#0Î�HóÌE§T~Ëš›•/žuÖÛã€ad…` A$TP1TÊ׿ÞÖœÿFA̲œS/ÂV C5¤ˆ‚9„ž`ç€ �#0‚qq»9}ùgjmoù3ÎI �Ĉ2N�p#0Hc޹g‹™ynZï:(wæ$¨Ö8Ÿ#nG 0„�#0#0r,¸ §Ë‹Öúæ» ®+eÒ˜zá`H ødB$Ÿ)2FHÐ#sP#0"¥6ÂP†¼üÊ…wdlm›S¯PÇ‘±Ì$à�„HH %ãÆ„ ¿D0âPP #0°mýÔË‚ÑwÔZߨ#njª�«É„äWHpB�?è—üD!Hx@ÀV–œ�·¸œ½!�[È#cD•hCÅÃp#0j>O0!€#0K**á—üäy­•µw*%MñSÛa‚ ê³Ü¨ÛÍŠ„¸,H�Ë„±ÀË#0#nJ8kÎ/½5Ð#r¼:ËOMuV[#0À€¤Õ#nŽ(ر¥¡D"Ì#0`.E(>U–`»Lp#e«×…²|³ ëGÈ*–4Ö‡#e©K(žC›- 1æ#s.¤²"ZÀ¶m ëºúê#n3Ì›ÕÜÈÜN+ŽÉlÏ3-WoQ[‡ž‹8ÇPÈŠÄ!Ç@ȲÌ<Æ=þêș˺ù»Ò³;Ì30"aêÚ@P¹G=áºÂó¨ë8®!B¨DV8R咓ξ a¬¯2Çc”BÊ Ä¦izމ¸ë9&–‘ôÉ~Ÿ@�!€I2&XµÓÛoar=çæÖ&p#n!Ç„ ¹ë#0Â<M–C~9`6£‚‚  p¶Ó‚Þôðx=eN©$(õù’„�UMEÁÔ€êAJT,<:ð "#e<™@ࢵ¸H›ÍwD[Mb*‚X؇…‚€„„àHpà¸À°ÜJÍ­5�ã1Ág#e0B#e‚ÄÜÚ¨--¼Ã V¯¹ðÉ i„©ùeÙ§2Æ…M‹Ùù#z)* D¸¤Ÿb ×hœ>w³Ûêo>0ŠÜô%b;²¬#0H�Œ$U‘ñ(3mGAfB¡S+ŒB( á#0#n<—aŒ#0@0ýÂeª$¸qЛEÈ©×ë#s~(€²$k C‘ÙtƒIPâsD„ Ð£Ôp]£Å©ËlQN°Ä¨€ÒÍŒ[º¹íÇ7å¦/û6s®aÁ=‰¬ºc#0„‰#zP FCà˜&ç 8®=Jàœ*–ß!�õ+3r±,©2€’ˆ¬("A$ËBR�¢IªŸqŽDP0Æ#0B"Nw#e #0ˆ;vùìù›êü×1×uV–8³$ »ÜâÔÕ«uD™àÊ)¸¥7ÏV5?Q$I–BZ#0BÈ p(å#0Øw)F ÀåuÚl½ V©$¶3.µeÆý#n�ÌCžGMÓç“]@ZPæ�¹Ô�C -Ó$²äqÆ1l9–+#nD*Ö s7ñÔ® ÊMOË…#zv$O4< €#n’UY³!à0ÈP’m"â2´=Ãp M c¢0‰BAÄ„«nÓ©¬mÞ8è#zÝ^ˆæÚ#ndÓ4È „jžé‚Ž¢DÌä4#r Uõ)R,Öl–Ä-(„Ø�Ã(È#eÓT@Êh•ob:{ugÌÛØ8òùT-b»ª> ö÷®Íψƭõ-#cÄ!2O%àÞ‘Z«I#nEÜ Íl“¹ #0#s(„�É Æ ¾¡Óô«ƒjÅ(ëA¤pÛkEˆ1#rìk#0>pìή‰±ìÖj(ÞQËåU¿lï ì? ÷÷)•<ÝZÕ—6juKÚÉû™"C—0„¢º°ì†#z#n½AØÈ…ÇôdÄöDðÈDìT ¯Õªª*VÆú»R�=Ô¥NK¨fèµôŠ#0Ô kò‘ýZ,µŠ‰êÂv-^h8Ùœ[»ýð[åòù®ŽŽpâ«T7–ÎvƒÂPçî¹s#s¦ž{áÞ;okïð·#eÕjÂFœy¥tuaeóøû‡ºÔB¥tÆ+P³®ø¥Hª;0zרíÇ7ËUÛôÌf#cÔ‘„7rš�g¾þW”º#sº÷íÇ““sÎ#s$ÏÉ/Ô«æÊÔ¥ÎÑÁo<ñýýãwݱ§XÎÄcQîÂ3?:ŠÆ#néJÚÖ·7*…å¬hæ‡w%BJªCÚŽ»Ε²þôòìô·1g 1|ëg•(êuAbëìéñP°wx ši¤s-wÈ”¬µN„ZÙÒòæå�L}ïûÁàÈùçOŽ$Bn=ÏóõzËBÅá8�@›® ÄLËJ¦zØï¬#e)L_´Ãî5¹¿§­¾u±k2)Szî{/®Œï¿ûÁk�ðã�?#0#0«kóý7K‹dr²kï­õÒº»ðBG¡Vµœ]w¿lb#ev‚’´ÿŽ;$n…R O© Ïž¹røÀ-1L#c Ú3zë„fÛÍ©ùBÙÍdÇ6ñML슆‚+gg.={Jl6X0ÑÇÑk�þm¤†�Ä#c-ÏÑñ†íÒÛ®^P4»6qÛžžÇ{C–“¹tÓ–]«Fº»Ãã#cC{÷&ÖÎ#e˜?q‘±0·˜êèjy#s#e.—77mÚ`_gL‰C#s€â}—/­%}±@ØgT‹ôڻǯåP¸»·ÿØí)MkVŠÁŽTßîÛÌ�Õ*ŸÞùÑ É­J+»óÊ…Ž·§&Ëù“#sÃS¯lNoÈ¡P#zj*%•“G7’Ä„#rìh´Òjáè@¤½+¬ µFÄ#s¾ã¸¼z®V«EGGŵóú5�?ÕÞ{ß¾Ó/V7W+m‰68È»{¥]“Ä53Wf¯,dЮ‘û?ûKŽìkk�ì,#eÜxòû–œøøñÞ]»GöívŒZq~Ö1õX[R‰…{”SW‹s´T3�†#sæ †¤¥öí“È5gª¯ý"”:xôÄ÷¾Eüêî�¡f¡Û«v÷{ˆy›;ÇP,56ε�†0ð<«ÇÈß^‰Ë�ÁÉÛ£í=È’áX8I0P%„¨#0’Ë#e^7L#c½Óã³g×"×Ò€7ŒCXU}Çï«v@0„uqPM¶ Eíî¸�A)o#z#rOØ¢#e~îk߬°z¥P8R5>ô9*C(#0 è#0õtj#zº&ƒFC/ÕKB‹”RÃ�c<~6ÞÕÑüWÁ7Üm™¾tip°×e®ƒˆ aJ<.‡nÃ5Œ�Å…üßZ_˜­äšcJTºåÜóè#cõ‰îî®>,)ÀBµ¢ë:r>ŸÇ2Š#sSÓ—§UÄïÛì[W–¾súR[Tû¯ŸøÀ`gç›EH‘+—ú‡‡Ï]#eÏæK5ÇÒï¾ãŽ�ªêz‹·òž}bæ;/ú#nÞAEkv(v±ª¦Â÷ˆá™ùÅ¢YÓõ`¬] …YÉ#z…V³�ÆAÍV#cŽVëU/0¸Kƒ¾#rO|ñÏÿîÏíûÚ“o!öç#0çPÖ,ê9Ž£ëF¥R¦”6Ë…±ŸÈg¿srWÄgyÍpH>úÑc0.5ª­ÄЮ³S—×]£ûwJeYöA {zz0‘ ø]�&âÑùó/ŒwK²×ÔDe;H‚ º^ËlJŒÕó¢úcqR-äˆP¢‰ˆ& N™#0 �Ôt#c¨uþÝ?þ Ý0] ïé?4jd—ËÝ]ܶÞ8}e.‹Ú;þZ/Û,W×2EÓ6íÕ"�6#c.#cnR€ ôô#z¯ó–U…”Éþ€e9Z"›·Põ:_ª9úáßÿòÉç5·²ñ±Ž¹róࡳU#cW’‘Ä‹#sç2¹�ø`OG*ÕÙoj×MÅ,û3E¶[’‘ÿâÜ2çü5Еµ-#r(Š Ç‡1mñD1³ÞÖ?*8ÇŒŠVC.XxŽQ+‡ÚâU§šÏ¯ t#rN+�;?óYƒš¹*Ô·g>ññv�æh@]œ?§ÆVV#r¦>áG�>44zúŸŸÀ’¯)©]wÜ;qìøÂ•K••5C´_:y¶T«¿#n¢#eËz«�?üÁû³¥Æ¾d”H’|~Õ!­#z�ÀP è¶$ØÖÚR(öŠY#sSèŒ¦Š•#zñj%=R·7ó÷;@d°=»:þÈ©ýþ‰…“Kõ÷>†²Ë5 ïúÅÏäJÆ+7ç—lÓÄÈGd�£²ç#zNN/­#0€â_OMýã÷~xèÐ-›µ–9ÓƒÝ;Gû©ögÎ#e(._é‘ü˜(r=ÏQ1ðj¤71ƒ øäpÛÊ…K]»ë/|ç¥D{êÐÝ÷.ž{a}5Ûµ¸,‡)¤»”!K¨ùtá΃ï»XÛy~a–;8q𠹺‘Y]È.¦KÇ’#nG#0€ ñäìRuräŠ[»ôÔÓ‹ÏŸ3#e)S3~4½°š/¼ôÒ³wÜ6¶²¸X¯×™çj>Ÿ %£å#0IY#eÏž<»ððÏ}byu%_ÜùÔç?qæÜ©Sgκýp[(hmgegg‡IƒÖwþR¨4ÔHÊ)êõB }’_I%ˆRÆ(‹t$“äǃö<–54[tùÉÌÙÓ3·ï3[±¶î¡§žyþÎÓ˜æ}2l•Ër™@)ØV¶ê»ÆÇâîé¿yrfã«Jgì—ÿËçdì Ïž#r…•�Õ¥Üzaÿ�Ñ€]÷Ö6~ãw¿ô�#sžùâW¿»ýEØf£E™f£^-»�š ]×£]Ýíí± #0PÆk¦Ij•úÒ|Y‚êžÎŽÝ‰gNý`iuñø‘£«ó«že¥áŽhØ«ËkÙ—æV79mÒF³Ö W2™á�!)«*Ëf»]›ëNœ iȲ›2Æó_ºüƒ¿}ì¾ÑÇOZ³³´”ó5›<Ÿç;/³)9·Z’ìûÈÃø$L(ã7sÓ…º6#e«Âqèöûö�[½ðÌsß·ü?<ús›ºÛpê6KyhË%—wœG~éC [ËKY3MŒù…Oƒ@~òŸžºãÖCµJ¡VØyàžÛ=¬N/m$ÚS÷ôÏ�ûn| :Ц¡3uÞª(qׄÔ!#0r×ßÿÀ�ÿé¡{„DwÜ¿üÁI 3ãXµƒGnëŽDÝš¡ïXÓ—çÞ÷ÉO],׫ [õVÓ,—,o‰ù>üÅß?t7^ûäA½nj±ÄwžúçËSg#s#s†ë�iÿØÄùµÊêæL[B2×KÑp[,ØVHW¿õ�oÕl¿D¨cSÈ¢€ ‰É¾Ñ÷ýÚ/&ð#0�O‘×¶ó¶©ëì:zððCÚÙÙñ„…òkËKÙ¢=pà�¾ÿʦé³qÐ ôœÎ­}Ȫ·L�VZ°Ø‚”IðÃ#rÊ[©�y¡NÕÁ÷—#ešØupßàÞ½«eöJŽüÉ?œÚi0A)7‰»�z«¾XçÑG;þÑ�ÊÊ«G}øñß{üÄ+k3K›Ãã»ÝûPF·_~ád´«g{ê¤Ô¨MO/…ûÇæÒ…³ÓKŽ/öWO_¾#e�;ÝÃ]mX‚¹|I’Ôöd,¦úwZN¤gbÏñGp÷î[î:º¾“Û) y£óÈû­þ}}÷~¤wdïj:MîZ¦M#r¹ëžOÿÂØÄx§ܽKS$#0#0A¶#sƒÜñ#e[>?¿#cjg³¾±qìÓ@Ýp·²ÜÄáø*J®OÕ �Æ¢S«‹÷Þw›[Ê“A£é2 ¹#0¢i}»¹ì/SßR6»ïÀØ�}>Hp0pµÈ¯åkÍÒΡ±=ÿñ×»·g·´˜ÚÖ?Zñ�ϯµÉ^Ÿàñ ÿßfŒ„Ú#c¡TÜÖÝJqZe}y¹ŠiJ¬ *„7i~™Õ“X#r*‘„`Lõš?ÿØÃÆ�û{Ú: ^ÑiÚR@…Pø‚Q]·KÕR jZ¸T4SIØ|ùü|Þ€J0h)¾íR.¹ïÖùòÆÅµ­”š˜ìòÖ¼õ–¾Ÿu Àí»ˆ$KBê��»“[;Îl”dUÆþ8#n4B/9ÅìP[ä~÷·÷O޶E#c¶í–ŠG8ô(ó0–,Ý^Y[kº¶Šy¨>MÕù�¿øÎw«±$‰F.®m¬§K™j¡dyÈ*rœXÉèKµýÄœú`WòØ�ñËÙº&#s{ݬdíbŸDTYQlÏ®ëWÑïé÷}è®|f¥Q/#c¤D‚šc©T›ÞâcERÌfs°¯¯Òjš®·º´b’ü#s_xnÓ¡œóÒöjÖ½Je;—óLW�D¤.ƒæ2�~ø¾×/;ðã�?®<Ú•ÊV*³ù"×̰­†Žý>„°MMD¼ƒ‡ö~üÓ¿068àÖ‹žU§H²šjKê¦]Ê$IÖuK·Ü`È�µÐÔC‰ø™©Ë_ù×#s–óõJÕ–%�Z4ôz­,45ˆý#z&Õ�ÙŒ÷»e÷ë§°¯®Ë„#0M�¾¸–}vníâÙ™™#s=ÚjO$†&ú•’ �„†S’_o#z•±‘QEQUUáj­¦(*ÆR¹i´µÅ—ÒÙéÕìv1ÿÿümÞգʑòZÆ#rêÚ®�:bJ8¢QëÕÆìÉW¾ùõáþ¾×ƒ^�~@Â2ùÐxß݃] ûFÏ/‹g—6Ãý[V~;¿9æóòÕZ{{Wim#siO¥ˆé:Áh|m}“HR¡Öb‚#sÚÚ°"5šM!Àåéª;~7j#r4èYUšÉC¿L~/�·8”Zé#c=‰þîŸX�7l6 #0Â#n92Üux¨ @ðÕ<ÿ?Ÿûarr¯-"KîQ’Ù:£ŠòµgŸ½ûØ]±#0°(à ­äòç..}ü“�ž�½rððáSSó—Î]¸tê”í½Úþ LEh½Ê�£ã n�FE…^€=úðGÈOí˼q³áõ¥ašŸÿÃ?Z¶x÷Ø�e½Ñª7±hìê�§—‹Ä¼m¸ÕlháàV6³XtÞwìøÅÓ/êeV×fN�@ªá¸0ôû‰ŒíVY‹&Ô@;5#rÙʶùÆzþâÏþÜïóÝ#0ðÌ©ÿoþ—’<(uïf¾@¦¼­°†f{óké½mÁõ�…‡ß_+Ÿîò²�É#0ÏÔüZm#s��„û5[Qˆ¢ÊŒB‰¦T˜õ#055þþŸ¾922òÓ-^Ä9û³¯üáz&¿bÁ¦ÔÁÃÝùj¡’_§¢l†yîdwwvê#eI·m#0(�ˆ Šë!qMá „ 4ôh(ˆPp«VH÷¶õ}áW¿ø©Ïæª-¾¶ ºj�u$Ú—Ï÷ ÚÓCrÝr3·tÉ5KU†2à+lïxVEâb $ª#zÐüw d‚;Ôl£#n­j—ƺU¡:.5ÝO}ÿ¯ |õ“±ëDèÇåïÿöË;—ž|ÿÝ#cÂ#céºS°áןži…B&H6k”ÛM’#eÏk6,(€ß5ºÄ®¦· $0©#0þÐÝ“ÁøÙ©ôCŸþücŸûyE½æÆù#r�(uÿ÷1#n¶õíRwWÄu*ª¡áà©uãôrÙ�} Ó«U›È¶»°ýð�‘[öNœ¸pÎóÉ#eŽ™,Sõ|ýûó¾ü&š#0r™õgÿå¯×§® &ÙDG+•r¤D´é¦w#z7Í“W@ÕŽ™—ôâÇŽîzð`ÇèÞ[s%£a6ú{ºÍúú3O/Nm‚?þú·Â±ø›7t£÷;ºüدl4¤ï�ZÏ븅‰ƒPw{òŽñ¡#c}Ý=²ZÎìp˸ïÐÀ½·Æ;Ûl›}û÷�–õmâk­ÚJ¹¼²²zÝïwaS�]¾ˆßfR©æ¦#nªˆÖÊf£�°¤éf‘Y­�=òñÉ]}½H#rùbÉ ¬³U#e]™¯ÖùÊF1–]¾r©V»Îïboôú²bkk³R#e‹‘àPÿ`6³]« ÛH›B²ëÜ}ôSŸüôS_ýÏW#eGÁåµjeÆã6°ÜËg7Oìç¡$VÑåÕ¹;ö‘¥kÞM»ÑÕ#z#rݱ~ù×~«a;Ó«ÙóWjsS–]ÆùLéåWþ·ßü­ÑÑñTï-;Åà¥Këëë9ƒÒõ¢µ°ãftéêJçvöݲ7¨ù=úf×ä¯3ý{Y]]›[˜nKFGG#sÖ7 /¿´Roˆš#sš<Ô3vèŸû„PõE3ÛYƒ±‚NWsfIW”Po4Ñ·ž/:~O(’bTD#c×Líìeâé§ŸßÝ[«#e•ð•‹—ÖV#efäËÕ¦~ç¿é–ýû#0#0BˆÅËç/#exB‘¹$kµ†S­6ãÑèÈ-ûµH2·µ­ùÄ<øÈµŽ;n(‡,Û¦´ áH°ÍõdÆ¥!ÔRÍkiµ[w�í¹eï«ß±[Í­-ìéq<;‰@4UõžY#eÃX¢”ZVkuua|l7#0W9º!ÐòÒb_sY«V§#eÚ̦€ÑHÒb‹Üyô(zÝæ7„ðž»?xîÜ U@µ<Ï«4-Koƃ�#e¡jqWÓ”í�…D<•L¶ýt[×OjÃ0Ò™­d2±êÔ²šÁ�fY–^oùdµ-šîzC•xñÃ#c·#0Š;¶ÓëňsFõ#zš¿R.…£Ó¶êMËË[C»öùµk^ݹ~·�ÅCCÛÛÛ”Û-½H¹AˆÐ>‚±cÛ–i$â‘=“ãBÎù•™K J-.@ÐÑÙ…ÉfóXŠõöîO¥†º®žëG#0 ËÊ@ÿˆg›ÍzÅß0M]Ó´p(¸“ÍÕëM³]¬·l#0€i#zíííaÛrtÓ€#0zžçØ68ÕÞïó#s7·¶&#sn{óænhú!IÒØÄ�p¨{c=W¯Z†!‹B€<�7tçÜ+Ó+BM ,W«MËá–í5tô<�€TÏÃÔã{÷ÜNÈunéßè|cÜß?:ºëÀÚZÆq‰¤uÅ“ý�]#cži�®÷ßÿ#0#0„0#zMHR ›«0�¨R(ÕÖ�õ`S±D„×oîF#sù¯+‚3 䜙FÓ¯…0&¯oIáyøñ~<‘ €#0‚«ÊW-ÿæ:±xÑ/¯#0#0#0#0IEND®B`‚‰PNG#r#n#z#n#0#0#0#rIHDR#0#0#0@#0#0#0†#0#0#0⺠#0#0#0 pHYs#0#0.#c#0#0.#c#0¢à#0#0 #0IDATxœÕœi�dÇqß3«ê]}wOOϽ³÷�ÝÅA�8Hð(ž"%†$Z§Ãa›’aË¡°BaGز>X;,Y–eI¦$R-’¢(<@@#s�Å»Øû˜�{zº{ú|ýΪLX#n<° w±½„üÿÞ™ùëªW™•¯ê!3è†�çeFnöª£7ɼüå?l®ŒÞòÕtS#02žÔËgGoùj#z=€‰î5åúÂÈ-_U7 ·™ë­&�¥‘[¾ªF�ôÖ�¿p#nt:rã¯ÖM�…Ø‹2õÝÙ¹ñWkÄ#0¬£äø£œFR#sÃv}´Æ¯ª$Ý–é4#0²½1ZãWÕˆâNÝA#r„Ä’/­ñ«jÄ#0ÑÆE)%€’ ’3Çèæ?Ç£`&Ӽȭ�#0#06#e_Óýöí_U£ (´†]îû¬#r"ˆpÀ[7ý9%€!í„uHPj5×Fhÿª#z%@iä³@#0m˜€i°zi„ö¯ªQD­UXÙDb–@icÌÊÿW#0as·|ÔÌÆ€BÞ„b÷»4Jjmbƒˆ #e8=ìn�ÐÅ«52#0&3#e:GIDÀÄÈÀ Û­¨qsóñÈ#0(#zæ[§‰#c!Öq2è�ÊÅU52€~cC’Å,H2(‘#nm€Ñ°æùQ¹¸ªFÕ/Êö@°CÈ„ÂF¡�¯µ 7¡oðŠF€Á#0ƒ!3#0  Ž™Œ#0’ý�ÊË«5*#0v‹*Å) ³!£9’Âሼ#eE£0q<#e_mQ#z“200øqc}$^®ªQ»Í‚#r0 DA)æ„�9¹pz$^®ªÑ#0¥œNÓ°&@ÃŒ¤�$³baÌðøÓ#07ë9#r@´¹¦šË#0$‘H#0 €d#r(Z]dmFâèÕ#z#r#0._´’H*%¥’#n…,@!£¡Á0éݬ�͈F`ù1#c3#0K0,™‘#0™eÚY�–Î�ÄÑ«5#n#0æèôó#n¥’Z "D@Ô „$fÅR(gŽ®¦#0Ä�%ëÂQ”ؠdD¨#rh�€(£…¿Ç#c¶ëҤĈY�A#0d Œ€Àd˜tºò÷ »º #0 ÖȬ@K�FÅg_Ò7#s�#0Àë¬H£Q²1ÄDÀÈÄŒÀœ2€@ÁÄfyÉ?êÆ}½Z#c#0°êg‰SfR ˜Ñ³a0 Ä üžºq_¯Ö�˜$îo®³$FÐÌÀ‚S”€’"@F+½|îf¼�»Q€¸¹ªÚ#rk’©FaP#e)� R†Ù"0#s#s^®,ÞpÀß­h¯]rü#0�™¬$ñ¢T°A À#n@ �Œl™„ãhãsŸd3âšBÝèï/|‡†0•ÊB)€�Yi˜Á³`D ²ÓB1âNË#r™c“#s_’2#z‰ŒBaTŒ5 2È@#0È€AÿÌ myT¡_Ñ�ÄAqõ°Ö`Œ`-˜™M>d[ A@FÖÀ)²D#s#zÔþühKëc¤D„F adIÄ ‰S@fdLI0§èô�=•†á¨¢‡Ö.°&É„€ •B#n-$P`P""¢Å„f5×û—Î�*z¸A€úú:k¡ØH`…Z £dÀ¿knhf@Ã`ù½õ/~zTÑÃ#rèÕÛ¤ !0ƒ#0VÆ0€@$f ‘#zIèä´HÏÓqô÷ ?9#c8E@0$A"0+&0B#0#z@êïúŒX"#n0]ÃôõP00—N)JÐB` Ù#0#n‹Pi”„ŠP#nF`”hH#n�$âáñÿþ«Épð˜ÖZzôoI#zCÄhˆ€I° Š@È1#nF�€B0B!3‹xñtØï½Á#0ÍÁФÚ#0K2mFDH‹R‡´4¬#r`Š B#nR$€J¶Ò4l·Þ`#0ùüX§.@ ƒT„$™�%¢"¡A !2" “#0e1!’Èš¤õ�ÇÞ`#0}éåI£© ®Ì#0A¨™…*À@DR£`!Ra˜,0²söE#zEÓ÷ž�FÝ–†ÑhÃF˜”�ˆP & ,¿™†eʘ‚­�É#0@#cT´~¹×Áq–×  Û­…KçQ F2 VH(#nv8pX0HƒŠÐÒÈB#z°XH�J†KÏ>ú†e1ChŒ$f$`-˜ˆX0"#rŒ(�¥Ü"Hâ…gyÃ#0†�†Êå#0#r8œXi €fN$ ’P#0±DC†  #sd‚œ¦2í÷ZÆè7 ÓídÃŽ”¤D‚ `’ÈŒ…X–"ÌÆÕÚI@0(²�Zq¬p˶zJ8 K­úË_ûâ°zô±©Î¤C µE#0,T#nV"¤f£!tH#c° ¶)‘‚U –•g&ql#rÅ(Yþ‹ÿ=ìvß#0€Ak]IBƒŒ€#0àÆœÑll8œÚB°‘yC£A4$0°óÅmÉà#zaƒð…í÷Û—ÿð¿µýkýzóëÐI¬»M[§eaqz"BÒŠS:µ´ „%%–N$$Rû’S#0;µ²²hv#z!Ež¡P¤ËØÝ]+e×�¿øÇÿµùï&Üüz6õÂ$%3¬×œæÔýãùsê«�c_†Èi ŠÊs„I»·™#n‰àQ‚Diu¤ÔBÙ¶c=�s#sKÖŽƒŸ~éÅØ“†íÇ>ï|ô~#0‘æõÚ-th¹°ã7ÿê�ß7cßõþvrÓ›Žuª·ïÚsÜ2´./<þG²Ý?Û#zŒ+‰ž,I4cSoºû‡òháÉImɈ¿vô¨wg%ô¢üäÚÅ×Ìu0™‡¾þ—#saèmvf‡ÝZcña9{ß�w±? #0¾öøÃÑ‘#sÙ+ÝzððÝw~Ø];V<ùrÛ`¥XP�O9YYœÚW› Ž<û ï¯Çþ?‘ØN}‹ôã[[÷GaÉu™…5#0s¢µmY(ä‡Þñ@Y··mѱÍÎö;ßáœ?æ¯/c¿u×r&~èâ…Ø’Oœ<ò»Ná½o~Ë=vÖaeÊE[Oæ‹ë­^)$k}ão[‹+lH9Ý8Ø…¸ióKùÒû‘»õ“©d “R^õ�#0†�ÕÇÏ�.”ªž€Õ‹—°¾¸*äÑÖ©‰¬#c’0øZA·ŸÜm›=ãÕ²»ƒ­â…#c…¬�ŠäŽÎÉñ=w]]o•&ææ·¿Õtî;qºá÷#z™ÂŽÔ?Y¬ òc—_ÈÙ^C¼ö°®«á#zÖ^>yìÁ‡>ûã3ît¥š��v8}ð`‡¬nÐWí¬ßÊJîö{’ K‹çµ#cqШ#s^‘g*î½1ýÎòQo<Àé­•�SÎcô©ƒwl?x8"¹}ÛÎûo¿ßs¼k éúžorçþfÓTh÷�÷ôýv>ÎïÜÍlš_}ðh“ñ–H`WÍ*ôŸV6#0xÔïÄ«-‰AƵ¢mï¬NÜ0§ ƒî®ÙíõÏ:J±*Ü¢$/S®”³YÓ1‡Ö›+ãcsïš®;HKåZ[æÑ{ëËñKÇhÑV]ÁàŽ7í½ï¶CÝžlÓìÐ@ëF‹7ë2lX˜83Óµwû#r‘-îœÝ»ÚÜ2~ì÷@dLr©6y×�wMVjèUÑXQ=ëØ×Ïu¯Bîü>;S~¾Þn8Á»uë̽¾VΔ3¤º‰5õ¦{†k§�wiGs†ÃBÖ‘Õ²˜S»w‹LNh=Xoå+Ó§Ž=> ôòËF×ËÕãsú/�xë�Co»õíÕ±éëŠç:#0R­µ¡°»å~蟚‡?�Ëdê~T;qNÚN[…íXî}ÿ/Œ[%eú­sOÐÆJ´t*òŠy;ö-»´÷ÝýnÛX/S2Nî]‡o_;{´:^ù·µ{â¥3ûn¿ó½ÛÞr½Ñõ?ÄÃ~¯µv)0i![Š…;[. MíoüÕ¥ãs*ÖË¥ù»ïxç-s{Çry#0&c)!#0F)X“1IØ&)bÒëµ¢­æùãÇN.^~:[ŠÊ5“ÉMK3•mÿâ�?ô–‰±ë�ŸøÄ#s® x0軨¢ÔÌdD…¶WÉL}Í#sê[õ­ZvµX±¥W:ŒB2ƒ”PÅIÒ }ËõbA:ØòÃä¹K§m:Ûv¥)@¤š#zÃÆ©Å•ù™]s¹k]‚à#z§“l­MÏÌ#cóúâ)ð¦óvŽ Œ°º�öÅa8íP!ïX/�жDyf[u¢�+Œ öË�#eÜêN�a”þÙóGµjb¶#zj�Êñ2-"i캿ù;�?r×Ç~Bâµf‚k@•é]#0Øj#e^ð‡Qs}njçââÉâØ#euß±ÿ–…EyßÛ²˜É¥ƒ�Á Ó^zñáK«ƒàÍ{wf“á®�{B-”¥NM2•JwW¬O½Øío¿e*7n[ž²œé¤J¡ãèÒÒÙU?šÏ�6 €Žƒ�_ÉgŠJ0Œ†V*Çé·ÿìù—’ïy:á:Š9ÂÉäsA½©R©„ŒìÚ#0#c‚ë:DFÃd˜8 ºÊ+[ni­½ñÛ�<Ú”vä#c´za¢ÓgJY6)B€0žÉYÊÙŠ‘Æ[Œ�X“#r$�„I&ƒVs%L�ýÚÛËë+§Ïuú«ýáþb‰„m¢Í$S°P0›+9€™ˆL�j€ôtss¥¿øØ³Ïž#zFÕ‰A”ô µÊk�2#z*#nœN¬_Öf2›Éƒ!ý”[QZMušÏ¡“sk,›/ºßkoð#0Ä,®V„�ÑGþ¿õVãSëaÑqZõ�U¿‡ÄývsgµÀWNChæFoë<ô……0^ël*aR+7#0ìÇä° �¢¶¥‰ =Ê�{d8JÒa? ;QQ‚V6õcGPaŒ¤·žD»[Ëu?šÌ¹¯€ÌÌÌa¡®mãÕ#0Zgž~üèãѰwaíò›&K�F}ç¾`^<ß6Ûï¾ýžÌTk”ÄŸüÚ^#z†1èŒPËÃÀ²=&3l#r‚(Ár,/g‘©#eЛšemöÛ En|#nºýv³!õ�<;�Þ#c­l)›ûàÌLÇ?ý¶ûn™¼z™ýM€ovÆ_CI·þ™?úµݱ{éü©l©XŸH£TJV`†�º¿Ñ]™|käåþóg>­Þ»­: hm%:Qqm×hÖáñåÅN[^VY ‰JI •*ãp³*;æŸ>Öª¯˜L–çvØ…±š—¿wÇÞ½ùìË››ÛsÖL¹r`Ûüžjé*#0#0ÀÌõÁ`ªP¸*#0“yî³ÿiÇTŕڤÐìôž¸´ö�óž%ÃÁ ÝXê¬×Oiu×›÷AüùÅäo#n·OHÕŠÂ�Æšb[›Ä�ÖzGsªA#0*Ç*êH:Ž›ËÇjó¥É•æFã…gübÁ›ÛYͧ ÅÕZÙq�²d l[™YW–r…ùÉZÅûÖ1Z#0ÄôÐÑgÏï†×#0ðëKù^ý¡SÇW(¸ê°Ç÷O�{9éÇfr~#e9ïÊXäe‹óÿ¸Úé�Y]Û3ÄCÖ[¬JÙ#e3Ã̸Ac·›:Ð*#sdBË-Z¹¬Ì#elnÅk+=Kñô¶éÚìî#e¡d© 6ž…@£í»™Lǧ£tnÜoö[ï¼å°c©o�Àb}¤½}¼vÕèãnãòŸÿ[Oû�-6·ïÝv`çHQ˜øA¦�%“P’jÛ³m›Ò0¥2¹õÕõ_^®U„¸#sMÆ¢k‡�oH#sݹ9×hå#n­2©íIW�‰ õZØ#eêÏîÂ#eä|6³½PðíyÅZιØè¤:#e6Svg‹™"‡·mßû¾ýû¤@5‡¹L¾Z(^ w¹±17>õÊ“Ì:^ÿë_¿ìT>ÿ¶wìËe Ž:#zÆ[MKÙ¬9Št”¦›‘œ/Kd ¤ªcÕÊ…ÎIgœ]m¨e<•¦Fk í47KC‰ïº.Ø*PV¶¿™ŒU@pÍö�åKé°¶.­m#s÷V7QòÀT-#rzÃæ¹5#sœ#nëåFkm˜|ìð~ì z…lþÊêÆ"ºö+3ŒŸùúg¾òØäжš%ü”M¯7Q-žlÛÃwMyEÇëµ6}­­êX}˜î/8h±°}¿zdùˆÎ™AË€^F$’¡”íHÒ2è£òØR¥H¾)ÔÌä¶±Bùþ½òn!ƒ#z¢Ð¶í4èm‘¯ÍíŸq-›L½ÙX¬�ÙØ8×$Âz϶$â+ÿ7‘Y¨×wOϼ2y^|ìɯ|òÞ¼´ÃÀg³bØém¯–dÁË;/_ê77;ñ®ŠZn«Û¶�eÜúòfÓ¨YüÓgÎ^vò¦×#s�|¥O›¦ÒqÜŒKÝ.+ǦaWzž)OêÊ4 ±mÛ¥í¼u~6/…Ö†„p-;6º465ëيؤI/#n‰ÍBoè#c«WfK¯×q�oå &:öøçßû-½cÇ–û>–#nÛgªÎ¾�*“Uq#zû=_˜³ÍÁ²ô”Qž²‡+›~ô#su}¢w‚�-"£ ´!8 §-{nÚLS[#n©0NÅ*Y¶%p²Zuˆuœˆ”Ÿ[^Ûì2+éj!ì8 Ò2Id‚�ÏPÎdARƵýæ·2±�r"ŸÿÖúŠxëŽí­ �Sã»nÛoI±yqéò¹Uܶ­FÃÇ/5vX:³mþ}eÙïöÆ#sKiks£¯:Ó?zÇ®óŸù?½‰½Ì’uhéTà`¬X¹ýÖ;«Û÷#eèFË) …£¼Œ�#0Ä"WœªM×¼,0UrE‹Ó�nïÙuë–ÚxÎ&Д#z-¤JŒA†v˜Ä ZO•Š�ÍÓåod¼œú¶š)ì4ÛÁpÆ#z6Pà "C/6ZjØÏ,…«ÅÜý»Š­„¦ç*ÇO]¾g,³Ô Öú¢Eîþ»?x×¾;n?xÛÂò¥…�u×r6ÃðÐüœÊ‚Ξ]m�yê ­I«Z�ãf¥PÓ“3Û«ceÏu„ÊÛ®%ål>ïk³ØjäsÙ©#e†Ù¤ñ0Ll%À³å™�f&—7Ak8ìÜ2u#0™øJfæo¯#cNý�ª°™ln^^ßè{#e‘Ì#nžÕJyÐî†i²ÞöYÇ÷Ïç—�ó‹=[§÷>ð“¸ë~%�ôVÑqÚ[Ý“ÉòL<¨?»±ñ»�<½µ¶žØŽb6SP�Ý?½m{!Ÿs”"iÆ1Çs…–B5ºaˆ˜rêy™œÄñ|ɱ”0ñ…v¯ÂÑÉ• ?rï=9|§z¥‚@Ä$èÙ™o®§“{î#e=õ(š¨¡ÓýãÙØQ™Âø™ç^#eDÝ0Ï-Z„:ù乿?™«Ìýð‡êw=Ðo_LXFiœ`b¦ksÇ/s&÷9µòäÂòV}™mWÙJH[0…iÜ‹c?±‚Dº”… P°]6ŒQ¤Ìä²#zѰæ4 Ò~Ì’Y÷Z›q¢Öí3;ñ;Û*d#0Å·ú &¡4h=ÿ¥Vû²L‚ÖÚÝv`Ôܾ;‹Õ¹ééyG€ò7Unb|ö°]¯_ú«‹Ãèöé1£Ÿ2GNŸÑ~øòåË —ÒÈG™Ë!Á¶TyÊ­LìªMäÜLš„–r<Ç·mÁµ=M#0‚ºIÚîw”²Æòet½±¶ofž†ë&§?p÷}ðÝû�ï|µ†Ò–ÒžxûÏM0Š=A? zn~L9�&�<ûÌmó3œWž[È̤ƒ¶T#n8¢„{ÊÓËIoeaùì¹Þ`­¥¾/¤"eY–�l€È�#nƒ(– Bcœ¨Bu…ÄE%¶?#nûá ¡,[¹Ù =s Rª�WK9O°ýž;¿ÙùºÆÎœ#0#0™)ä2ß,–’8#e[_¨•#nUˬ#cqdtª(I­Ò¾Š>qæØÁ¹©µVs%Põ„,„d� ’’9”Ýaw½ÓLæ#n`ÍóL’<·ve·–Üñ™#zãÂÆê Š¶¦wž¨D­åw½ånK©ëx•#e7;?9ùÄbýý3*’°ÑX+äËY¯0á²,­}µ“L¯÷Z‹‘¼ÔêØ¸¶•FfFdThgsƒ~+ì÷lÐ(Tâd¶Œ�êôXâÇÍF#n¬H÷{�¬‹C¿«�7V/LÄc¿ô±Ÿž«¼ÉëJa<ð4œí¨#ei0è÷…íaLU+³��çÑ’qo5#0kic= ”í‘À¤™X‘+dó¥dk3H…`KÎŒ)iim:±Î:Ùl>gX¥3Å2†�BDݟعíã?òc³ß=ÜÈ‘³¡7þïÀ1i#zmÙB�rÆóÜ¢²½lnbÇÜõ–¶úáV“â%#z#s‹Ò¶­Ü 2#sý^#zÆV#zyr¡&•“¥(¬4ÌÚvQˆ0M@¸¹LÑC9gÂ?ü©ŸýÄÇÿõlmê»ÿÊ×#rphçî˜àÖ=‡Â(°dr%×’F*6QDÖñõÕ¯#e#e>Öì¤L$•N#zvµNÉVšÁ€#r©L“ WCe�Ã0™ÍΔ+ T+Ww#noß±Ëm#e¨?õ…ó=wßú–«n_ÿ#rŽ�3sþ ‰üÑ×#nㆮ ds…bü·§Î½w¶ô•SÇB#sòÞ·¿ë{Çp£—€2^æ–]ûçÆ«|Sï÷¿ôÙÇÚ—“Á–€�+w�•WЀÌ#0#0�c+¯À@­Î†ô¬J¶4^™hÖ×6ýÓO=”¶7¥e+Äîy÷÷ÿGp9�™Á$Ñ—üì¿ùƒß‰”í§‰#r€™2‚`iY` HiK%<¼œÈ,2Ž•)äeÏ�V/Šfݶ:vÞö²Â›Øwè7ÿÝ´¾ß™•Q#0|›È˜Ÿÿ—?ûÈòZ�$BHv”Ž�*åzY°-òPäB?#s#0"?9B’V åq×ËæËÆvZ”Çý�OüÆäw.ùWÕ�N¡ï’�òW>þ‹OýÚ¢"KI¥$�L‡yaeý$ „m3¥�2GI¿3ÎçòÙL@Hi£ëµ¥h†!øžÃ÷L#eCô£#0€½·ßóû¿ø¯;}n,ì}ê±#c–a¯˜+»…Äľ“Ñd<åØRb(d¦¨¤�#01@¬D#cÞŠÈ”Uá¶Ú|!­‡=F<…¾]§žyü—~ë¿”œ#e^#nÛò:‰�(01Å#c#s¤#r‘I™H�Y„„Ršó#nSãÓ…³ûÑŸÚ93{-^F?¯hec)#s-K*MÃQs:Œ"€xÆiv¬ˆB#c”°…œLU!_ÎçʵC~þ#s~:“½z�ð#n�w-Ë- z’Â¥ŸFJ‰„@ÚMB;““(l4«œ„J4t�#cqp÷¡k�nÊ_ÿN{öË{&‰ÃØw�Œ¢D#0QœdJÐÖ½$Ü0ÉŠŽ#zI0j·íϼ|©y‡‘¯õ´ÊëP¶#e«Øf}uq0 „íÔ<ϲDÁÎ?°ÿДl C–"+QC¢Y‚¢ é[¥ñ¹CóÛ¾Gùðíº‰S#0iô�÷¼ÝN‡Â¨J®`¹n¾�·²¹‹ »sGŸ^^]îjÛ­•˜¨”ËYoÛüüüÜÄêú¹Nx÷X暢› PðœÐ©”eì:®%T·³µ¸Õö[MvvÞûáf"[Ift,ÛÎ+gˆýx÷_8qñâ»o½å�عmÿSgŽZ.^ÞÜt0†(Û985ÖcõDkmv¢PonÙ ·R#0#0ÅIDATÙµ=NÀo÷;A³”÷’N«Ÿ¤Æ¿F7 #e›k>þ¥#c�¥^*À±Ü÷ܹG—Z‰ˆ“år®¯¬x¶Œ4]/+’ÚÌädÙ½Øm†©ö¬ïÞM#e…´ÖçW7#z›Êij5Ö?ÿüóúÄ‘$|ð¾#eX#ef§àe«ÙL¥RÍf+(•“l^ükú¾ÛÍ#z�4IþäÁ¿Ô½å{æ#sËEóÏÎÖ#s¼ÌÀm9c•j³?|÷Û¾tædÉófœf·gPVr.JeKuhÇtØkAù^̽¢/=c¶ÎïªåKåIÏöÎmØïó�¯Ýµk*#nz©1(”v’ÆBZÃ$#eY[D•ÛØjܺwÿd©k#c…#n‡›~-m®]¦Â#e!7©âêÝ” fߨX<þæŸ|àÝÖk�b¤SˆÌcO}ù]‡v¢I””Hzuc—·Ú¾FNWŠœÃo:pk¥�E”R²¥dnúД´¶ÏlT/]J‰‚2B‰)2·¼uaaáÁÓ½ýÀÀèxu«y´1–³Ô¬—Í(w34½N[h¸eb¥Bcl#s£,›¢4"b×+ÇÃAÇDÁÜĸ&dJËžu¾ãÏÍn¯í3½îéÎÀ@Ú™ŸýÀ?À¸ÿÔ™sk@%1#eétß½wÖR.£´ý„,7ãrZý~¶:I©Ï PVB²dŠº¡ÿòVhžVÎæŠsâ{U×7kGF&9óÂÃYWy6jÚP”&Á 7ˆ¹T)[Ë�ÆäøDÉ �"£a#rŒœ [ƒÐ�‚aqþpY…­¥õÌá÷ÞóÎ×rt³ò€�öþÛ¸túÉ#c§Î;ùñ²J<·4V(¹q< ¶6±cÛ®-Ø’�Íz1Ÿ·„@t€qr~ØyzqñØÒ‰�ûöÓ·ÞóÀ÷pt÷Ä#0`’àÔs�œè j¹Ðíܹ{¯4Ú#s,ZàI�idtrn«Y+U èÄåõK�ž"1U(¾õà­c5ËvÛ­T§àµÏý?yî°Á•ß#0#0#0#0IEND®B`‚‰PNG#r#n#z#n#0#0#0#rIHDR#0#0#0F#0#0#0y#0#0#0 `À«#0#0#0 pHYs#0#0.#c#0#0.#c#0¢à#0#0 #0IDATxœÝœw�]×yØO½õõ÷vßìb±‹¶è„±A$%R…¤Z$�cG´åLÆŽGžÈc�턱&ž±¢Lä™ÄV,Kq·¬bS”D‰E¤ÄNˆèÀ l/ïíëïÞwûiù´ÄÊ ± ÆùþØÙysï÷�ßýÎ=ç|ßùÎ…J)p•E)Á!¦ë¥­—¢·,a·þ_üC¿][/…W©½t~þñǪG^#0ëÔ_®6’’kgO™ ?òè÷�×EåUFR‚E+K@dË‘ÉÿHÜw½…Y“+�±¤×[�W)l×�fqÁz=¿Ó#e�WI‰ÖìTä8#z�’EQ· À:ŒWI†ÞâÕ¥24ÍÀ@øÎº¨½šHAu¡2uRÄL0¶.ãøÕCRrî…#s@œX˜Ê0�Lð ü—ÝñxàÌú¡•�*€™HHyùš¯’ªMn..`!EœXTƒ#eø­6�âòU_%$¥V=kÄ€($’€�Dʈ‡®ìòu_$öêg¦ ‡(8Â<칊óËW~u�¼êŠ_kb!ˆ©ˆlK�zŽú—ë¥ÖÂ#e#ekZHQœ#0(IY$tš2^‡eÞÕ@R*X[Ä,2±D !š”0"Vq´Ö.¿#nHJòţϧ4dS„ÇX)(ƒÐƒ,î¬._þÌt5�â µpÎÖ¤Iyšb¤IÍ€fÄ+ó@^îq�’nÝ#0ʤ˜#s±N‘©kRr„€Žqsö¼ŒüËÔ�jÓ#sÂN[&!E#0 ™ÄaˆD͹ùÄí#e¦þ·I©ÖÊ2B#sÈÔ©N@#nqá/ŽYÒi]æñ¶")¥”R«§Ž§u�"Ja„ €B¤#0s=wy ¨ËZé½­HÂÄsjç¦ÓºN1�JH%Æc ¡”’Ðm6%¿¬•ÞÛÜñÔ™§5ýIB�RD`¤#0‚JÉAó…Çâü²Öd½#zûÏŠRŠÇÁÌsßÇI¤[¡RBÅ9cR]C(fÚ‚ð²ôÛç%ûõ™“Õ£Ïç4„2â"–2�J$ `”#0æy#zT½ÆŠ¼Œ(ãíC¢Ô8ÿÔ£™8´”4ˆä"�2‚€³$@Ha$àyBøÚbõܑˉØß>¤Æâ¹ÙÇÒãP �#eªX�ƒS’)ÉLd³4–Ôe¬!Þ>¤™ÃOj^‡²È$¹„R)©°X&:H,#rMãQÔ˜=öZoÙÐÛ„Ä“Ð_™#s�“ÂÉS#0!!#0P)‚˜†",¦8<á:^kU½ÕÙémBªÍŸvΜ´ ÐD(¨ÆRI!¥’R‰‡81ˆ´ö–W ãê­¦VÞ$å®Ì³³§³TšT Äà”¢TÊ´ÓÑ Õ�® ’¬ax‹ KÇ^”oõuz;�¢ÀqWæôз 0)T�AŠ’œó0dqÄâX$±’#c"”d”£ú¹ó‚½Å÷Š#c)%{íµµóS–†M#rŨ†#0àRq R„#sŠ%JH ¤’�#r#c#0“^§±xö­Y¼òHRÆõz47mXa ”Œ ¦4l¤s–p)…"è#nC¡Â¬�¨ôVŽ?U�;øÝ·`ñŠ#c±À�yü;`eÉ€#n"ˆ1–„+à…6@@…D#n(¬Rq!EUØ,B¾‹WI)Ù™Ÿ^zöÉ~Šm¨”à#n!8‚P(®€‚ #0RJ¥ÅI‘1#rÀ’êìYM3ß‚Ñ+‹$y²xø9ÒmbÈ�(Œ R)‰R#nÁ•R¥¤†”��¡Méòô©·–Ö»²+qGK/½PÐHŠPET#0+ RJ#0 •’#0‚„#sàåu#n•#0Bˆ¬a†Œ Á¡á7eô#nzII¹:uX4ºäJS dC€”a€ @HQ‚•R#cŠ %˜bDÄ`�úêÚâ4Boº…W#nI)•ÄÞñï}•t#zà#zQ˜B‚Å¡iʰ#0¦B!N а€Q €”‚Vœ¹ÝsÇ^ü#s¾ YÿŽ—$çIù§Ÿü‡êÑ—r½#s#n3"Ñt�jRŠ()C#nP„5#0Œq!�EMÈaÁH§›?vX}LÂ7p牉®§®,’üøóߟ=}ð(8u¸ßÊ0#ciú-#c&Ö™L$S†a ‚J&#n¡T#n #0�p)�B‘Ï@‚k³‹JIø]ÉsfyÜ$åð«ë�Öé©oý«ŸûÌÍ;6S òØÌŒ wÌ, ú›~3­L‡#s¦$–nO ŒD#n(M3#0€€!ÇUÕ^ÄõââRÅs»™|颶X¯#rEüúÁc=‘ç³#sN%d•&¥mš¸õþûc)êgÏ<õ_ó=§ë4u¬™#0ÚŠ¤ bP[C#n¬ €R#0$I¨é´Ê]‘ÉãTÁ`à¹|çî}â¢æ‚nÇÀ‰àŒP핯ܺz Â|±´ÄAØñ#e�NîF¦�*õéùÒÖJÍq½ÝÈ¥lÉ#cöÂn»Þma΂€Yé´™Íuƒ°Ò]²znbÏ�ƒ7dÙœ´ò§ýÀJeF·îÆäÕnB�ÕLª¿òçõDB�ïÞw:�FoÛµÃ!4$šðæ#e£<41°©Ä4ææOœš·ãž#eš.çÃXl?p#cÊ•"H’ÄmÏ.vW›zº4vý-í úÎßþ_½³ìtZwüÚß}ý+ÍõšmB¨R#0!^$#0@®<�Ø©ˆ‰i[wïKü�@½2sÞäáמùþj/vzVbŠÇÝêêM¶KÔuzbfíi-ÓW÷Â$hØ5‰¡95½°+æéLz¤¿ïì©ãÐùæ—þû§>ÿõ V¤”ÕÓωæ2‡I8÷Œ>z#rµJðŸºÞ:#c•‡GÓã[›Sg2„Ð3)Ì“pmµ²2{âÅ續H„}/(¤bÏ•R´ÜÞž>10¸Åñf®;p#0Sûño< ÈŽŽÆ‰@¦äQ#e_«Ž�”ç#zU#0#0°Y™_<ñÂ÷þüó[ÊEK×WÚ{ßg—w•…à“uF‚š–½ã�7ýGÇönظuÂ.¤ã©3ª¹œŠ�Û¶�b+³¸Z—0[,ær©ñ¾�,Cpû¦Çñ�Ûûû/q´?³©#eÔt;E!‹}ÈH)—1S©T±¸ëõ#0Àn»qâ‘¿Z=j¸”ß»s²Ýj7Ú½öé£Z¶˜™¼ÐŒuö„pϵ×Å?ÿs%‚ ýàw§ž{#ztÖF³š5Ô¯Öµc¥¦ëúQ�3GyqºPºiï¶ZÕé•Ú7NdvlÙ¨cÍñ“®‘é5ÖffÏ¿ðÄS“ÄHßp×Ç#0Ç�úÓ/ýµÙ;wo]ªÖ†‹ýfQT=ÃÊãT3Ö #0�-ôí¸áfìxBiàj³ æVºž±B³KËcûrÚuÝ^™)¼ðÝçSn#zʸÔôlB¹}ßöl_a³•;œÒ{ ³í®Ÿذ #0Ш4—+½RV›©;c/œ]jW›¥|ñ–b¿Ñmæú†!„ëŒÄ?;»(CYN÷#c#cÕj5nüÐÇ+‡ŸûîßþÍÚjeÉñ™DPÁOîØƒ- gú ìB©SsÿôÁGo¹vO©Ÿh†Å4œÙ8êy¡Ãþ�[vŒÜ¾ëú;Æ#0€ Š7Oló¼ÖóG§uÃzø»Ïˆ˜ÿü}wsh¦óýB°î^âBÄ ÌÙ;•ñB&hPcã»Þ{£‘™Ÿ]¼.ÝgÛ6ý#cO?–•Ê/@Ý8½Ð¶‹Ú¶=_Ÿ^ÙØ¶6%ú}÷ߦK#eYõNíöý†�c?Í ÅÔ2¹Z­àð‘S[ÆìÜ|ç»nàÔ"TBà CÄ:J»ãÝRÅ@b¨Ÿ_].é塽÷ŽÞH)"�@0¾ÿúw~ãKòä±…#r6 îM#0ˆò|šJ]Ø�¯ç#00©(‚#e*�â!=#nD’È$��nØh»#eB„(�2ke#z�!ša¥,;Ç$IgJåþ±8 !¡»òÈcßÜ¿{ò’�ž<ôèÓV¶�cÂa¾Ym®V¼„#0l§àLÏÌ·šÍØíÚ†î»~³SS¹Âž8¡B(B¡’#0bÅ™/ÐŒ#0¯Ê¼ )¦.l6)…TÍ–ëJÓ2K•æã?< C�qQ­´"¥ûJ#cƒ£©L_˜ „íØW,‰ k�9~ìþàwsÙKÄ…”_yð½8;˜.ŸžívÛ®ò7D¡$Iª•s‘ëó �,îE~hi‡^<¼}{ÿÔ驽ûvÛšO²”sLL@P#nÁ0þ ’ Š™ÈÐ)cR)¨ôBÑhû‚‡µ†³´ÐÌg‡ê«)¼®ÛÒ5è¶*K1§–]"FÜó‚eî�Û=Y¸îÀÍàåwIÉ$r1¦X³_�´´²¼´Ô¸õÖƒÏkÍÕÏëFíVœ#0Et¨�SïDn�p‘°ˆR¬„p�^襻힆ôn§‡ Ž±­€tžK#eÈW€PPI˜Ä*Œ$Ñh׉jíÞñ“3#0hK+5 ô(™R@S6RŽïA-αBipÓÆÑ®_I¹�[ÓŸýìÿ°¬ôËHN«ú½¿ÿRä‡û®»y|ûîf½ÒhÔwì½&Uè�:vl [Ô� $#rCNíºnÁ*5Û½ZÅÕ±Â#nº]Ç2‘¦év:[o5�œZ˜žY)K#nh@HxÅ”PÛ²¤‚ Q],T %e €çE ÎÏ-#zFªÑrâ>v†qMfYÐõºvJ#e`ÇÉ©“•ÕeÇ]ë#sæç£Ò`þÖ›÷ÿÖ§>588zaj#s#0#0(˜…‰�ÈK~³³ñ¨fŠÐÕ^{¥^[Xm.ÖÝ]ûÆn bÞ®5™ô"?¬9U!h.í´ë�Ûõ˜aÒÜsß-·Ü±eóúŠ„+TJI?ñÐ_‹Fk�Ze;SÈæHÆ�±çtÚÕZ;Bö‹g*ÆÄÍsMãñ#cç:�.¤ë¸aàê"h¬Îê6Ž‘‘Î�õ÷�:­ÅMc郷ޔJgjÍúøÄðÐ`É6õR1ŸJ¥5#rA B&«ÍÆz£îx^¼´²Ö_#z®Ö:õFç™�œ›]*ŠºfÈg§_òZÓ˜U¿ú•/Ýûá#0…`¥#0"áORüÀ@DG#s´TÆïú‡Ÿxv([è6«¶­)§¶ÚϘ:ë¸^Çé¹nÐj÷Ξ›ÏعÕjý¿ýØÙ™&€¡›#z± â�ÆšŠ= ª¾¼qçÝwA 0¦B„0Dø•<àÇ�:ÕŒ|ÿ`#e_=ýô“cýE]Ws禗W+#0b(%RòÜRmzn…c-•N·šÕÚê‹×l²£™ÉñÔžíƒçW53ciiÈ R@¬gÍJ³%Â#z)r†nךáÈÆ!/Œ]W¶Ûáòò²ç8qˆ––Z–‘ɲOþðÅc#s¦ZÝnsm9“#c˜øýº”aÓé¬JÑ•È]®MïÚ5¾i|ûO©¬üI¼ÔZ˜~ò dż·º:4RJ¦–e¦’DD’|᱓-Ÿï‚ÜàP»Y!Ðï�{æ^ú™�Þûî÷|à÷•ßýÌÈg7b#eBXË÷å›�$>Oâ];¶²Öþ½;ÇÇŠË«gšÍfn8•R«•Eάv#séñ‘“Çz½À6Ò³³ ý}Ù®»œÉj)Á,ËX­.aâ`h0µcëèß|åðáDF/ÿšøÝ~ã/RHíß6v.ñf§§MÃØ²eËæ‘A  µ#r[F§–K}}#e-¾û¶ñ÷½ï–­[F¶NüÆBô³÷¢ºÖù?_|PEz=ÝJEA0Í&XJP™ŸŸ£ç¾ÿDÌ…Qmx¨49±gblS.� yãÌìÌÂbëÄÔ,c‰ #n�AÐôŒ¸5˜Ïo3£Ðß½iós?ú‘ë2�Igmµ±VßþF^"#0#0%ù �?hCÕmÖ–E”µH1k�–·Œ”#cæÇD_ì6ìræã×¾ß*äî¾ë޾bÑ0#rô#n×–Õª-fHˆE‹èœÅh¶†XÄ#02�”%&Ek|àÝû~ñ?óå?ûûÕéµ5=0-ŒT¶¤¡}©ëFL‚n#s#sao o�4�…,Ì–¡’D*æDë­ÌŸŸü)Hêü±§y³R DKÛ:RN³‘ËYù8è˜Ì6£‘¿ò›ŸR$I¢k#zzuWn5k+K3#zeG&Ö TËél"D¿gè¤Ü7|âä9feÝê´-Ûõù“[#s e¥²™1³,‚õµp¥#zŒàÄWBo‹HÉeT_ór¹t³¶ªa cš³S);~äk_~ç÷¾#nüŽ[[ÜX. &·l#nz] ’TÆÔtÄTRmÕ›aoÏ-·ön�Rb„MÃ|ýöhF‹+Ë#eÆ@&¶¦ÊY-K8ö|Vk#z^`x=Øieedc&ƒvkùÜ{nÚ%üVÞ„K3§ÎOÊ›Q1m#z@C}P×ü(i#c*BÀz‚wßó£¹Å%–Ä ;ôü©£Ï·ê«oè%%D»é[¦�Ë"§jæmœý£Õ0v%#eÁº91ù®ÞÿÓK*fæÏ×/k % ghÀžæE:ÄÑ “¨Y¹ÔÚÚrJGG?ÇFס¦­×Ýà$X²LÚíñzQf@$Œqpát­Ë²Ù’ne5›‡ õ*�îÓßû»÷}ü—5ý"+8¢€2Sö†ñ‰•#cuÛ2+ž/‘ìVê}cí¶3zýM»o»ïµ›¤¯“f»©HN ¾XHK¡JÛ!]6 Ãþ#eJ œ-‰Х陥°+4¡#rÏÏ4ìR#z$ñùTEyqÏ#ryÝ�O(e#zºå¸Ž®#c#nH£Û)íŽÓÒ4ÈE¢Q˜HôÇŸûܾ·ŽM^w¤(èe,«:?YköÒå¡òðàó#sN&1¸æƒ¿TßùÓ¿j"#0:v$âv!?œ/ŠM*Õ5%ÂŦ·}ËØéÙ#n† ŸÎ¹ÒVv›Û =ÔR½^+ÎáÜ‘ÅZ(íüà¸oòEfŠ :�šš×«ö÷™#nŠ˜EBr#0�LjšÛI<·õâÙ¼Sã5M‚ÍÚÂwþìO&òô#nmשv;;î¼gË�;ºg.ˆÊóÜÞú@ i´P*eM‹#0€|·c#z#zFBá:݈Åz#z9Íåwì#zì[#eZ«ÖÛHϧ²-Ÿ‡Ç|!š­Fm¹j!’Ódmij­vf0ïš4#r(˜T�Ô-Cr#r³øýï¾ñ·>÷—©üàk½”+”÷ÞrËâÔ‰¥ÚÊ¢d»¯¿å}פÆEúèEøämÖƒ|Á¤Èˆ"Ð … :#0:7GDåþ>„ÈÀ0I8ÏS~om¹µX]’ãã+`…ÚEOX«µw¢@7sÃ#c)„ºôû74ZóFX7ü¨GÎ¥ H?êe²fà#sGŽž }/•m“&ÆÞ›ïÞ{ó{�01À›<¡”œŸŸWÊDši§Òq[P�#n ’8V’@ ¢ @¬LNÅ#e‘45ðƉa8ØÌÚÔÊÕV#zº•U#nˆ81WLAÁ�–aÚfŽ`DZN3IÔU#0kº&#cŸbGÁÒô‰¾#r[^Ó$#0#0ˆ0µÞ,#0@)åõ81r43ÔM 0©ž¶#0„¬„mP™D¦N”ŠDX³#zÁeAð¼úm½/m1<×GR¡T€$æa8�†L#0Š=Ïô<#z3Œ5³…šnDËùÄaÕ…¹×WÈ_nñš¼^käì#z‚š©Y@ˆ P"h#z†<Šã „à~Ïá"Ñ(#rcÆ�&2±³éb¹#eè°Rù€ñPÈ€³NùBE„Q¤¤`Bèºí,ŽaϦV }øÉó�=Âãh�‘0Æ–N4#0/da!Á˜RÆ!(N’„ñ ¢8I’˜@U[]íy.ã “<– *b"-â"H¢žïÆ"‰‹¡¤éTÀ|9"È ’Õj×÷�YÁ4‚�|>½:ž¿î»8ë७C�·S¦Ì¦�¡ÆBÇu)¥”jRÈf³Y]«7M–ˆv³Ë¸‚0æ±#0‰IàyrY*…•ˆt¦uif#0�˜#sžPq"“0JÂXbChú~Â8o´ê#0qB’$t× cü�{?|ÓÍÛ5Ú㼃QÇcL*°Vk,,-I)ûûЦiFalÒT6•ãœIÇÂ7m¢c4:ØŸ¶h«¾uµdPSAÓ‚¡ BF˜HB¡#nBÂà¸AõTSû®¿ö�/=˜.#r½¦I볿473õÀg>ÿõoÿſξŽ¬×.àøÄä=wßöèÃ�vkó•…UDl� DÐNe4Íô¯Ü?#0XYª „‘#n&¥ºŒE¨�à€Xƒ„#0–2±©ÛILê1ñ#e)%#0‚— ·Ý|ðî{ÞÓ»Þk¥²mÌúx #0à:�Ýsß�ŽÎ!T– RRê:L’XJÀ•²,+}ÃÂI" JÛ¢:–¦Xé–®³ÄÅ8Êí0r‡Kc·ëwœ ÃdI) a‚rYÿõßøÕ{>òoÕÞ(¤ëX�œJ¥þü¯þüàÍ{!ë`áe© ,ÆIB%³ H‚nÞBšðS˜¥‰°qB…¹3Ї¡r|¯‰±,Ò¶ò9#zív«Òn¯j8éϤ#r52hÑQ wýÍï"šñSxÖ a:²qü÷þóoè¥uKfS¬i8m ("¹V‰E‘dÉÞ¼mÑ…‘‰dM§#s€¹¾‡5’ÍfŠ¥¼ÙæÑ’A!Kï¼óÝåÁ±öˆêzÖ‰+%÷#e³ÿ†kwi8¡0áÒ°‡µ�‰Ž.D^>GŽNlK GÄ^?#0#0PIDATå¾ïž;ç3ŸÉgp9§#sa‡…îZ½Õèôˆn0Z]OÇrC_~°/»sròŸüõ×Ô|^q$‘®›ï¸f!Ç1¡Ì2�’LƒÊ€*c‘R.eëz>•Ö°˜ËÝõþ»G#s¶ýÌÏ}Ìõ*)R mÓL›©´™“ %‚:L/ÎUÜN³hìRš±ÞÕü¼ó=€G3„U:mõ‹étÚ¶ì¡r¯ç•ËýÙL¦XÌïܳgÿ#r·ªý»ßü/¿ðïÅÎX(Ád³ÞqºAà#sB€ Œg—Ê}º¥oß¹“êÿ¼‹®#0#0›6oé+¦eÔ3(#n£p­YKKÙ©z³kÚéj½±0“N}àÃ×­4#0#0"tÿ¯~ú†[o53öZ½Å¸Z«5Zí^·ã{~¨éhûäXq 702|‰ßLX¤âÀ†{?òþBž@Èà H[v±Z½E¬Þl–>:6°çºý{®½ñÇ·PJoºýàÀÈ @�BÈ…rd™ÖàH¹FÄ27l܆.­.mý«&S¹þ_üÔïµZ�s³�™óÇ�Ñã#0ÂMcÃûàíXÊ­×ß^Þ°ñ#s÷@8²iS±¿ð±Ÿ½oÿ¾I?ò“„#z„dsÆÖ‰¡©³3ÇÏœí+#eâ)™u›j_-Ês:ßúÎ×r�¥Pje­ž-åK%3•µW—WægWßy÷Gwí»öU7(µ²4ÿͯýÀþ‰�‘ÝÊ-Ï­;ò£�¼-•¬4;ßóáÉ]û/ÅözÖã½B f˜ã©Ó‡·ŒoœÜ¹]3´Z³ª#0†.¬TµTaËÖWe€!„Ù#e~xxø™gŸÞ8>–Îõ+Aö혜MnÙÇ kdãø¥Ø¾‚G²L+0nØ–B�hZ¹oÈÒì¾#eáO=[(ö]ô¢Ž8M×í…#z5»]ß2R¾~|øè±K´{Î¥³9.AÆŒA…`³ã蘞?{ÊÔh_±xÑ[²¹˜& £Ù¡ßíy½f­VoÖÏ.¬Lî¿áí^A/QBŸ?tô‹ñ7çÎÏ:]grË6%ùÔ™Ó›F‡z½‹VRÓ´Ñá!ÄÝjÝm5B§süرٹ…#c#s¦ÆÇ#s.ÑîDJ§s¿tÿ¿ítÝßþý?8qjªÝíþÑŸ~éûO=…�²Ì׿/„ж³#0ÁOþâ/}óáïnžÜš)ä‘Â:µËƒ �.*WöÄfÛõµÿ·ëɧžùü—¿òé_û¤EïZZ˜›››#zÙ´Å4­×ß2¸aÃÿúŸŸ-r�?ýl×kßrÝ5¥lÞ(ôóKþìÍ•E:x뻾ÿÈ÷ZN{ßÞw¼uquaç;¶¾øÂ‹3=|Íu·¿ BøíÇÝ<¹íw?üQ)e­±zìäÑz¥>_íì8?½qlãE­¼F®ìQa˲·mÞ8¹}bdãàp)uÃÞ� ‹ËïØ»µÚȤ/“&IÌ»÷#cŽ¡Ô4Í0ìl>ï†Þ¿úè‡#s·o»D£WÖKÇ�Ú<¶ÁóÝóó �f*ÕW*Zº9¾a¥Ói›æk_�cGž»ý�û3ùÜÒÜ‚UèOI4#c•Î>øÐCÔ†G.ÉKWhª#0#0§Û9þ£§uÈ A×_{íÞ}ûs}}¶m™„H�šŽ?¹c端o/M†€ÝLzNϓ۷#z#nÂÞ¡£#sî¹÷ƒ—b÷#nzéÛßýv_6µsbb§óZ*›î¤L;B�’IøÊ‹;͆ãtoz÷}ð�GšT=·»4ß`!ÉÚ©Á²�ıv ñÅ•z—Xƒ$Ù08˜0…¡¡Ð¨Ýªõ=üäÙøñÅa4Ï�#zî ØÀÄ´�4!¦EÌ‚†šµ•µF—khd3—tXýJy©Y¯m#z#zHç:ÍZ/ˆ¿õìw—+­j«£kúÂââîí[ŠÃ?¾øÈ¡Cù…ÿ½c÷nbÛ7ßrc6›)—úÜfGqvrúôR½f‹ÿé7~“KjíZ‰)øS�?²¶ºX[«ú�¿²VÃPGša§Ò{víºíŽ;‡~26ÎþÖ7 ióáG9;snuuí½ï¾óø‰S;&#s³Å>¦ÀoüÇOÆÅgç· #0 …`,aŒ5[#r‚дR†aX–õúÈG)•ÄQ†QÎÍÏI©#n…B©¯Ü×wñîO‘+ˆtµäÿÝP°È-Ï è#0#0#0#0IEND®B`‚‰PNG#r#n#z#n#0#0#0#rIHDR#0#0#0N#0#0#0ž#0#0#0ö«e#0#0#0 pHYs#0#0.#c#0#0.#c#0¢à#0#0 #0IDATxœí�y�ÜÇuß_wÿι�½/,°‹Åâ$ ð&EJ<ÅP¦$Ë*ɱ)–]N"Ù.ÇI¥Êù#c©rR)ÅŽ+‰E)NŶX%Y#s%Š �à@€8,ŽÅb±÷ÎÎìîÜó;»ûå�]@ °Ø�Y (Ñ÷1Óýû½ÏvÿÞïu÷ëòÆ«û€¨„ê#0°n}+"v÷´À­(âU˜ÖN•Ø/Û’›."üÜÿœ#0@ñ—mÃG$úË6à£Ó¯QoEý#zõÿq½÷£¯ç3©«>¼Q­Ô‘}»ÞqmëªÏoAÔñÃCÛz·Æ#z›¯úüD%Ù¼Û²V„®úüVC•¹ôÈñ=knàÚ¯n5T#s?“Içz{;¯ýêVC-žzÝoßÊTýÚ¯n)T”ÎÅ3éèºõŠª^ûí-…*ç.ºÅ‰-÷ÝÇví··jiº0–z´cÉoo)Ô¹ô»Å掵½KÏ¢ÜR¨C¯ŸÿÄSO_ïÛ[UÚ©¬‰l)‡´ [uöýcå™Ùp¢áznÔ™ìtK¼£¡£÷znTqðMÍPÍÀÁÂnTVf¦âvl]¦Ì-‚ê�¿=ã7ß¹i™2·*úfS®íÀíJÝ#n¨èÆN¿­ÇÖè¡Ä2Å–C^ÊßWoÃê//o#rî¿÷Φö¶eŠ-‡ÊÔÆü�ìÎ ÔÛ¶:Ë+�/:"”Œ²#e±e;0Qæ‡sSÏÿ]}-«»¬Sǧ„ìÛñàòÅVxVeÌ9vR”.Öϰ: ¥SHÍ�Pl¹VDm{ò)¥dÏÿèo@úõ3¯ž’¥‘ÜØÑ@�¶|ÙþÉ·%#zeåøþt¤¥¥½g]5åWFÕÌÖHL7%6p #0b÷éæ~h…5nqLjEÈòaþ%UÑ�µÔÙ•U¨Ž8«P´¸wò-€_~¶“wv âXf[•å«èÀªf®émö#0«Pjí?)8¿!3ë¡rÚ5ÌЖ»·WY¾#z·„#0"­2#0èö¸C@¾¾Ç;ôÂ#rY¡[ÉŒž`-ñ¦j“?«@%,jXˆ/Ĥ�¾ç[ÏÿÀËL­ÞÒ–°­¹ã#sc�=¡øu縯RU/]§!üÒÃ/ÈÅ)ï{ßB§²:Co#eÎÌ‘lº’lm­¾JU¨‰Þ (a‘ÕDÌ2ê½²Û?üÎj̬‡üéñ|ÐÜ|ÿcÕW©#nµík #e‘c#z“íŸ=W³�uRêL^×tT”ê«T…#ziëŒ^ùò¢ˆÀ>‘ö‡ß¨ÑÈ:Hzó©ò(ë¿[Fª¯Uªì l鿟d>òŒb´³Va¬±»M7®»Bs­ª��·Å¯­©!–ì•|õ÷«‹œŒ;=l—�Ú’Ó«EU7||ÉÏ•Óã¹ü/”nMw½AY™Ãfïú»jªU-*�6ƒ²Dá"%bÏ^gøÝšîzƒºx~ŽFbë7´×T«ZToC�Œ,±øRMÏùßúÛ�l#0 �Ù‘áóZGÇŠófW©ZTa˜xÏ#0b$å�ŸªéÆ«Vþø©Êés�«#r}/«ZÔhk—Örµgº,,XÞK?©õÞ«Ól%í#0mlMÖZ±ZTB,.7ÁïîÜ]<¿ÿ#c˜Ž‘g_ua#c~uºïŠªºó,°en.ǯ£¼Éƒ;ô§ßM%#zZÚÖm¨µj-KÉúr‹"�yý°Ìjµ &qw:çøfC24j­[*I,qõ£ #c�LÍ–ÿËŸÈ›¹ Οp¤h¸ý㫨[õ³JMÒ®ýœð‹èX²‡Î®ÂŽª$ùÔÉÁ|0¸¡o‰ÌæU-*S“ –@Mrqåˆ�ÿó7<{SPXéw1Ö©…W³í´–gÕ«Ê»’ó#c•oüÅÍðOÜÖÉb´µ)ž#eÍÖÌ›’á"ö�.|¹îñ“89ïÆ#zãµÆI ªU½ÿѪm¹oýO;=º#nƒ–‘S89°ù¾r®§#zP™ÖXýE#cÓ%çw#0Ū¬ZZöÉÁ€5›kÐ#eiUµ’1SFj#n—^y«2#e7o,yadlt¾u3¡«|èj¨VI6Ù±#z"O3_ò¾ùŸ=«>AEeòÈàïmp;c+¤w#eO5 ÆZ⑆hMWdz+¾W£IKköÄ¡™Y¡5Wµµ¤j‰–ˆ¤F×ç#nñÍæO¿qãk<éSE#cº÷�¬ú#n5 R%JÍÚZ#0h¡D¾û¿¥uCÑ¢ô²7«b¬ê5³hIM¥Iw#r“‘‹B§Çí·¿‰Ò«¹î%‰é¡âÌÅ쵡Үª–â¯VÉ/þíkÎÔê½ñÜØtfÆñÌ#züÿµª#r•mܸºÛh%oð¿þ#s?w~uÕË?ñ#0»ï¨6†YR5¾£€ºš×#z0†#ssÿתy$ øüØ`®BIWOmS„W©6»½Œ#z–I>t#s.Ü=ÇÝ×~X£7F>{fhªhR#s7T×ø¬êqZ¥là2tö;/—Sg«#z÷Þ|{ô›_orE+Sä¹—øèêókj;Ã˹ü~S5/«f#z”èâix¬Ç|ú Æ–O/_Å;ó¢³ûg©SÓ ew�vÄ@¥íìû³ÿd5Sm½Q*š—lQSÃ˳ Qh™RÀ#0€ �€Ä.’RNï#rÏ|Oýôd¼ë^cÝÒi�(½#cÿø£F3pÆr6ù´ÙE:ï “DΜ±³Ãf²¯&³Tã{UÕËÍ]×ë.!ã#n; ²½:›PhŽÂFöRÌÒèð&_0®Ð¢ÄwÎ�ŸøËïÎüÕ_xîu&#e‘«³E×+Ïú‚›#n1K(zÞq�î[ÝH¸¶VåÎL€–¹Ú³pB:«*eÀaO|V’Ï€ã†zžãNÁ‡¶AcM#eÄÂZ÷Ú®âàè¨�ÅñÌúƒonøQ W›AXà ꯼=dPòù°ŠEK> �˜®d§=Bjž1¬Ñ�¡¶…��ËkªJ P²QBÁón‰�…UIû ³m}òÒæº @ePÎ9úæJ³F†-Üî‰ñã¯áC#s× €kÙ�¥ è#n1@ÀаŠ>5šB´fN¨µ«f«TÔ…&•#0FÿŽã w!D„8Â(é`$!ŠŸ46†·´9FF¨BuDûÔlP©–£œ/mCR#c�n�BT#c-:iP�€0Xðž‡VÁY#c*#n”öxÆd#0*Œ¾¬¨3#0_$Ø‚x#eS?i²ßo0~‹‚"$ÌÁœM:CÄÔ Ä"�C„pWäöQj:#c0Ci,S5Õ±¯ �‘{ƒçÊ#e˜ æíÅÏZ(Ü´#zŸTªàÙòÈ�ߟœV#sd¨#c¹µ#sòç#n´JBÖ2¸gcâþ­É˜É&U#00ï’ï¾ï;ª©»Ã1JÙ’QM[û3‰U×€ÉÒœ•=7—J_u/^ØsdºàË÷²î ™÷óÎE{tܲëË×KUXQÕVCQοúíý/ìÚ,0€˜×ÔlgWO¾’³.!#zbT #n‰óû]ôU…W0Â!£ÿ¶¯ýË`#0»ËG#ssöd©µóá°#0£ùü‰ó][îýн¤Ø·÷Ý3ó®JÈ�#c¾~6Qé]µJ|uÛë㬵4tðÍw²v´;Òàú¹¶†Þ»·÷æfDqFŸ¬hBŠtçíI$‡°±q¶kÍÚ-O”§�*Šléeè€Z#0%#z•F,(%#n–•ˆª#nCÆ|”6¡æÂur:µç½)šhõ3ŽDFI«É&|1Up|¶úy¹jQ/œ™uæ¬ÝŽð²Ý#niÙ-Ó³î¶MtC3|g#sœa©êªnøØ3Ÿþô¶`k´˜õÞ}AÌM§TUx§ØÝÅ3…ˆU´â1Áh07??tæ‚ ´´ÏLŽŸ¿íÁÇãMmSgN”-wÿyÈÓ#s‘0_ФA7†Ìyާç‹Ïûûþïþ„Òª²bW‰jM[a}Li#0q,oøÌ™xgcßý›Ý¯u‘´?óþ±#cúožyÌ [ˆ>JG^x]?øîÚ#r½±ž>‹#sÞyï‚3œ)Jcsc(¦uly ÀY:#s:aw}â{G_ÜÒÙÏ9ŸÉŽ˜Á–ÙôI=ÑŠÂ+Å9€½óå’bª‘Ääô¢¸™�aÿãÏœzçõ–NôJr›/¢#e#eW�̹£‰®õk·‰æÞÏwÇBÒO!rD,e#n®«uýþWÛ¶ô1b›ïÞÿz2#zy@#sÙ<#s75Z¥­õJ0¹ÿ�†ç÷œ�Æ{ žº&î§#nSƒ�¦DÉÌ °Ê³ )F=¯¯¯�®vr´ZTJÙ}Ïþ‹�éÿøðø”ŽH<ßÞ{vÃö@{w;J¢Rz(™±Éñ3 eå¾§îëh»Kò"` äüŽû×*¬ÌHPø³#0y�L¦Xwßsû›o™Ì7D#zsEž>êcˆ=ŸÒ®#0¡J8*Jä~KgK•9Ý«G€®þmO|õ+‡ÿÇs½žÕ‘µ]Bòú#z’¥Ì¨�gV¡mëHÞxyÿi÷÷žýÃ@Øö­!”‹g”©4€Ü–T§,ŒÒAô)£„#záD¤yͺÑÁñbe¶ Ô’ã>¯ÂÂs¤ïE£º!=Wú^ íïZ¿:ÎÚP@¢¶ö©/]¸�J k*óAwKøìŠÌUrüìɳéÉWKÉ;c¾{÷ºžþÍ…¸Ì #0 ÿOh@òÜ•14#c…ûïºÿì µ=›!¡Â*û…¬–h¢úb#0(¬UÔü“íÛ«M_¿QÔuÛŠw÷ì¸c×Ïví̪1¥øH ëTn(yÏmßpûWþàK«æ„šqŒEÛZv½²ûÕ÷/PJ[¼‘#e6UÁÖ¬Û<›Îöß÷‰®¾HßíM�HÐ^ æ ?•]|a~X¹‰9~i#sùüšdP5‚£“ç™RcIª#0#0R¢ïeKV Þü™g¾ÐÙ¶Âfܺ¢VL�ÿpßé² L7ÓNŠ�AiЕ̌¸„*ÜÃìøl9ka#0”2}ÉÉ$-#z™™YœU6Luûövî.vé-f,¦˜mÝñµ›>÷ìŸ<ýôêçõTã³ê—¾ÿóÃD ×vò³k4¢]ºVžŸÁ†»]ª]$(×mï°²3Á„ko‘b‰m¾�°©éq . ¤ÄoowT3$Ó.MÃRŠR*�°¢Á@ êÑ×#sŒDcajÐ#c�#0ôr˜„è/ä0¡t–¼Kz4�ªMÜ’[É;¥¹z ]­•QÇÎ#0rEk0M$[™ª£”è»#nÓ Q(UU#cdqùξ]‡Æ^úös^Ü÷ÆË窨fÏU]úJy¶{âøH¡ù6Ît5zeÏ{7v­V@NêåcSZ$Q™›òÊB™Ž{Å#eaè¤�#zåÅ#0 #c#0`Û³3§ßQH`ÜZsdÜp6ËMž¿¨éá»/|±ézwÑÌö°A[Ãp-·”Ëg.”ŠÕ¾®ª×J­Šœ#z#0 L¥ªn„ã‚{®HßE±8y§*Fuß³€� Ù$|Çw*3©�#c3Ö�±üÞ]»2Y× öK„PsÉt )3ZÈŸ>#s¨Â+%;Ÿ}cß�z“®-ù#e•,‚"Å][1‚Ì0í‡$J ÔØeYéù±ãj0R*M¥&ÞC¹øWÉ‹á‹cû¦äï~î³ÙÔ¹Ûïë †TîN^5Öñx8}qx”F[¤cKÏ™#zBx´®qáJ­:‘ö&3Ó D#nß³JÒs¥ÿ‹maQ•òüìä™ÝÂu$ÊRvì2#srß˦ýr>5øÎ[/ÿCãºþhr�ä…kÇtDÑCj°±!nOI×Ä={öZÖÒlÕZ¡UsÅùÔä�Š€ô=Ï÷¤c!ç@a*r/çI¸x”…"й8þ ŒqÇ”èû@(HŽÜ?râ¨üÁ _úͧF†+M��î®B$@ôÀ*T޾�NÅ�ÍM„¤—#0€raZ#n`5+n×Ó#n­êÎ3eÑs¢ï#0 „”HìÊôMÂéØ~1#s*%ô#e]}_¸6#n#0Òµ¥c�#rñ#s;yq$—µ§g¢Š±fÁ#s;�ŽŒMç$kÑ/]Vp¬÷y +´êØÀ1¢(TÕeœ)#0@UVàRG#0�ûÄst…4kT#0<É¢&£„P)©fGÏžÊ ·±;õhG0Ö,%#cêza�¢ÔlW§XDóÑ»<ï$äG‹:=m ×QÍ"BQÔë-›´›¬Ýd�@=Rh«Á2®hI„uÀËö 5åá{ƒæÈs•ìã#cç6nn¬ŒÌfµá�sóSÓa#0—“[Ü”½¿+y`Ûfªfç2R#nB)U5Éý@K§•B^)^Y’#0„#0³€!…˜Œ-cžç#c€FI›†3™¦†äé=?L´4­±#cӣŊCÑÉ@ @e¤A§–#0€ƒï�ò‰U&t/©•BÎÝR^ø#00U (¥Œ²¥N÷tåbÚ€F‰Éˆ#cpá#nòÒØxWgà�Ÿ w ãŒŒ¾ðýÓwÝ¡”†&¦æœ¢/‹¾ò”¼·Ø¤GOÖùÕºB«"ç#0¥dš¡è&UT¡h@ˆ#z{LYxJK̺2¡1F€#c*„øˆæ¥pr¤Â›#ræ#c#zMjçã¶�TÁ£:sU’µ¼³eéI#0)#0l”‹Ù+žSç=g+ š‘0ͺZ(*|%WŒ¨b#0À·JWr.¨àË ‹3y_n�j…úg#0iGd=™Ôè»#sJ_þTKÿÚÙOMäþú…Ì‘¢¢7·2@ny¥L¤X˜-ÌfKE;Ybù¦ RUWƒ#0ЂQ#0$„2¦sn+FÀ%D‹Ä©¢Âˆݶ#0 åX É/Gsa �ÕTÍ` ! „ØfP¸öWŸKKáû$èy(Ô –qÏ€Åågq°:399“™#rGº>"Ô5­Éã§Ë¡¤ðBU4.+‚;¾U¦L vôB€Pé»Â÷¼rž(*/¨f`0¬G“L3S¥‹)±BÜ®#0#0KaL¸¿ˆŠÀå4¡¹#ez.;³>*Ô︳éø[%=#r#0„²é,f}Ùª¸ïr1„Ò)Α¤[œ®#r#0~!‹R#0!,)¥ºDD¯#eÐBB(BU]r�»JÉKy@ôrsj$N#0j„ë,äE¡”X×ýW+ èŒj��6’¸‚!N•�#0I&ôŸNNAˆ@¹#c.ô=ªÒ©HΙ¾Ç�ŠW.Hîk¡ˆWÊ£”Âw¥c£àÒ±„¢ÊPøˆ}�™¡@K#sUT+=ÑÒ¹!™¨á4šE5t†&f}/’Ô0K#zTœóåˆÝ’еq—£#0@E�Òw‰ªDÕ�ûè{¼˜³#s”ª�0w*~…pwq*ì2 F¨¦K×!šN•0T…p³™psÇsßx¾­£Ñ4>Â8²ñŽèÖß@D5•A[ÒV�4¨ÖH1•ñ¸¸²$a*#0#0eÂ*QÝ`�°ä>/å‘;JéÛå…’È}œ—rÒs¥à#0¹/]›— ~nÖ/å{:zÖ÷uæêÒ;V‰JŒ€ùØ? |üßâ9.�À‘òýì¼ dmkHYt!z$I•Pо+K FÐ÷¤g£‹ºKžQ".9&¥¨y~^²h•Qp#c{ò©OÕ‘°ZT#0#0”®ú£_D$bÄžËû©Í[ùWöøgÿ#0]áæ}«$¹„,,ŠJÏADä}�ªºtmªª#0 *%~ÆÏÍ#n皟5#cÐfÐ…pòŽ;îäc5ŸùP�ªÎò–Â=ô#nZDÔþ"S5‰XH�<ÿÍ¿ÜùÖQ.%ÓM¼ôö_ð´DÕ!ˆˆÜ—žs¹mã#zÕ(Q.õ͸F󞤄´#z,ܱî·ÿý××vUu†h­ªz!ˆ2ýþ¥ SBâ­=�=ùô�C§æÊö‡Ú#nQzxKL#cÄ4Úa2#0ðR¶ð$|ì#n0�%|ä _½Iœpã»’7ßÿøÇîÝÁ.�f¥Q¢]Ç—#eÍSB@"ÄU* J¢#z ¨Ìv¼�w¬>«cEÝ(*¡Æ—ÿô?E«[Ä{­ê°×<œH~þ3;ÚL#0æ<‘õ–º«¡È³_{æ�#sˆ¨´ÄÑr¤ÂÀ …˜ª"bi.÷ôýi0xQë³h«˜�’î 2VáKz¹#soÛÖÐ싟;60ói…€$Ô Je‹JI <øÙßܾes]Œ¹žês‚@¼÷SíÍ#r­ «W¿ö)�ž�òàoüÓxã¶@lKŒ[±x„#00”v©#et9Gœö pý_ª—êƒ#zN4|þ_ÿqΓýaµ?¬FTJ Pk‚JoHMvm¹ý¾#0`†ÂŸüÒï�Í#e”טBH�à™�ѺX²Œê–u°vË£wu~ãÀøL#e¥›#c‹« ¦d)íºû.MS€P¶íãlsw4»x~xÜÁ°Ê#e!ZÃ�s£7ý”ðº¡Æžúâo�=÷œÇÝUX‘Q’:}†s®(#n#0jV#nÅX2Ù»iC�”#0ÀS5íìTv¹«×CõÌ%Q;C‰ÖßC-/Ò µc{½XÌ/ïwbjƒ»¶ÃTEa¬#e*Ec1 ¤I»égRÕՅƶ¾mOüîWBÉÖìÔYM-èÁÆé3‰]¯} ñÎ*?9ß¶Ùó}…±p$#0åbñúW­›êy†K8af˜(Rz©XcD3 ¡"Ø�” ]™¯Ü™ˆqÎC‘ˆïû@ˆeYˆhË#e¹.ª#sj Þè:ܱmáÏ¡ô( ÛùìÜØpÄð®Ü°‡Ž#s¥TB‚Áh< ‡+…⑷ߺ©G«Õ³Sa²œ:w;Mîg#z»{UÃQ4fUÊW›Ñu%3›Ê—3$ÂÆÖ†ÕlÑnHF#sN¼vvï‹}·oë¿÷‰Xój�Z^õDþ¬çxÜ-�=�š±û#nônÞ¨«ÃfåC«ý­L ŒLs#cØÓ�ކN¡k]ÓØ3M#cÑ�œÉ¥ÿaÃ=OtoÙNÙuÓ#sV¡ú¶jÈ (îüÀñ·RÄhíˆS´„ve&#rM³ƒSë»#0onR%�*Šb U­ÛÐb—æNï})›#zºó“ÏÖÓ¼ú]#nS#s675~!Ó°ùS_{ì³OF#cÚØÀ:#rÓ¼Ò-uoZ Ѥ#0ÂÑh<™#exåª#n‹Ä#cy;#0mkÚ.œ86y¾ž#s^Ö­U%/{éål ÿÙ§khkÔÅi•gfÏOçççåsñξí}ã¹BÑ»p‘ÒØÒÂ…#0”Š%=”ÐÐa�V×)(L8~¡£o¹ß.¬IõBÅ‘ÃožI#s7moÊ#eüÀrx´!ÚÚ³S´dÑÌÄÔ•Ç%woýäÓ‰�é’]¹0<>æØÓˆ.Jîe#eÛrCÕuªE¹ÞLõÔÕ³JÇ_ü©‘ Qé4­ûX˺N”VÁU<§âzÒ#sÇÒë6t/õî¾¾n#0ØqÛ#c#0VŽðÁ!áUòÙòÌtÖõ�#nÒ×ÝÙ÷àŽö®šOÛ#eFõAur“éÙìš»6ÝóøƒTqÊ…l8ÖmïÁ3Ã~9U#0fÍ|#0—P¯R ¨o»õ[5«W}PõXct]G¥�•‚Z¹ �•iªn#sbxŽ›­=·¯ÛñQÀ,¯ÚŽÀ¸®P ÜyìÀáε]Ðãq»X‰ä-Þv[OOgì5Ïž#0#0#08IDAT$zÓã¾U#sT#0#0ÈΗ¦Ï5M=/"–ÐzÚ“mí7´ ¨¾ª#s꯸n…ß_­R¿F½õ¼ôÍöÞQ±#0#0#0#0IEND®B`‚‰PNG#r#n#z#n#0#0#0#rIHDR#0#0#0/#0#0#0‹#0#0#0~ÈW#0#0#0 pHYs#0#0.#c#0#0.#c#0¢à#0#0 #0IDATxœÍÜg”]W}(ðÝN»çö2½iF£.Ù’e˶Œ#r®ø#s””#s�Eb©$¤8��XæA æ…„H¼èÙÆÆ#rwIVo3£)š~gî�ÛO?g·÷ÆFX’mð;gîÜý[ÿ½Ï®ÿ=PJ ^ã#c%� ôZ¿€×á+JO=3ýå{çÿh„´ø>ÿÁÃÜrÞx#ro5á‘£ŠŽ$|Í5þÚ5•#cÇ’+#rÜð˜ý†ÇF‚pbF�¤VnÈ–ýFkÂ��炇ժ?=ók‚ò#n›’@(Ô쯹³xMšê±“êb #c¬bægoœFÊÖƒ?HáPÕ ®4}šÚ¯µé¼zMT©ÁãD#eƒÂPµˆ…¥Ê¦iÍT#z#0ƒHp)DœK÷ø±7Lã>¡+B5°�©½÷I£7Bù÷®0!ÀP`‚�Ìž’õê ¡+U85)U¡j„i˜#z)ˆ¬T½¹é7@Ó3ˆÓ‘@˜#nÉXD"f//þÒ5B4ž?#scq!#cˆC„$B@¸ËK¯¥|5#zázbßaSžçÙ–ËB®0¨hšS½…Y ^ýDçÕh¼‰)TœÃ1=ò¨Ê æP"r*¡P¬–ü¥j¤l<µ/‘1|!Àº B¡@_2 „B#c Ä/O#c‚°rà  oúiAÀ%Rót%~©5åKxqY#r"q€‰TÂ2 %!ôê#ræ¾úÑê¼5ÎÄtªáJJ%�€-#z„dQ£6ë¯ZCÎïãRÚ#c£#zõa 9#r1�K¤’ˆ3ÍÇ ñê»ãó‹�ðƒÖÁCL¡® #0#c#0%”B‰1#0ŒŒ@ú3ã@¾Ê†|~#z{zALÍ2Ä%#0š¡Œ!#0RJ $a¤r,̼êi×ùh¤<ñõ¯ «ÆQLQ )åœ+(Hb#0ãÌô1#rŽ�°Vã®q–J‹{_�q• ¤#0 XQ°¢"‚8 !‡œsÄb5,.ýÂ5å=/ÄëW1�T21‚#0èˆ#0& ¬(€@ÈB#0êͫ¯²!Ÿó;%Dõù§³#0•¨„@Œ…dB*„@Î0ñ¸ôìfòUiÎ56¡eŸÞ÷TLEq9‹D"±ÀöeHQÂfDcG„ç_å,ç#ecc•Êi9�AT¨è†¡#0D X…Bu¤ #s0¯MN)#0<ï®õ#eÿ tr¤G$TŒ#c(DC×£›šš‹� „ç�n)³$œvg^ÍÒó#e5¤ZU�ÀŒ%D4⊪*‘#nÂ0#n9…`Pd%ìª4g¿úµ_ Fkµ#0¥`PJ¤#naD#cêú~­ "І2ÎC ¡`#zõí#sŸ”þ¢4a½Ê1P„T(“‚ª’�0à, :¢ #n‚a‚…B(�žeq¹>:ú‹Ò´ì–‡8b‚0N�0ˆÔ€I#r* %â>E‚BÁ%€#n“#eZGÏ{±w®#z�„"%EÒL2 #0Š$#zB2Î €OeDJ‵ÇÏwÆ~n#z)›Í& ’œ)�`"Œ$#cA(ß#s(�‚T(9ˆAtŒ�ç>Á9j„ãx‚I$�@ŠPÁ#0 ¸>FÄŒ™RJ9•#eH„#0B )àÊŠ¿T|ý5,ZåŠ"!ár&i¹$ó�*˜@€!I$#0É#0°ÜVeöü:åsÒTç��#zBª”ëcˆ¸’#nNy臎íxž#s8S€R#0 !F.àäá#c#0œGÓ9#sÍüÈÉFª1LTˆ#rÃÐ5H)8WE×4!%„#0@ DQ)$‚mÈ<ü½‡ü¦õzj¤ã�?mA¤AÔ8‚RÊ bR×eÌðjq-BPr FLB`Bž²¯V›yè‘×SÓ*­Œ<ólÜÔ¥Š%A_ÒHP!#cÝPb†W !P#ciJ¬sãP£qÑOÎ?»÷õÔìyà!îZ#0‰!Ðp€„š4`ŒP�£”J#rb#zÔtB ¤Rp�¥Ô#0P#0Á~LMKz®Óä³Ì(¤”OÞ¿;—ÐH ât&Ç9ÃQâ%ãÎR…PAƒ@#n¡!D!rɈ•D…­¹Yá88“>ÍYbÓªÖŠ§Né‚#s4�sæE�å9!gz"¡ÄSR3’m…TW#sVU$!�P#n)8G#0!0I!#c~Λþg‰Í£ß¼�ùnGW #0@Ï�…ºB Ò¹Ž$ƺ€Ä�$ d€#0Œ#0 k#nA”²ˆr¦ž›æ•b#c8ü{»Í¤jB¡´,a!ˆJ�b`´ÚB<4u(¦@1 #0X�RækRJ&¡¡Ÿcl^IÓªÕëKå,Ñâ�ÆDÁ$¥A Mc Â�ÁP#n#c ¹‚@T2$€Iä(xfnîuÐLŸšlÕ#n e#n#0Pð€ñbµ.Ý0²<П‹6v#zù¡‚I#0�@p$)"$Q=#n�?qŽšWj7ã#sF(§*R0ÁáH2E#0…§0%Wóy·£ÒpI¸Ë.à ®`b0 â§ cöÔÄë A#0ú,â#e£RxºâqA!·UÐ ¼£¥4#e›-­¹eØXWøòÝ:éŽÑÙÊ3�ÿðÖ÷¼ " à+ið]wÝõ³?Œ2/ø÷»ïÎ%èïäƒÛo»åÈ#c®ÝØ-Ó)cõ:³ÿšÙ2½oïžÙr催’É;‹.Ú{2zúÈL“ìú#rí½‘­ªþGá%7ÜhõôÁ#cùÐ*•ìà üù#sçgˆ#rs¬Ãÿñét¤#eÞ©müÀ‡ú6#eR›jKÊl,«å·î›*~ö?>2;13ÝlnèÈô#eÑÓÕ×39g}êžS¡2ØŸÅn ^´AiyáDåò zÈjø™ëþèØ·žhŸ›Ø÷­oÇWu®Y{šåã‡Ê�þ@ÄÌ›ÞÛi¤zæ ý샗]Ø]*U&ÆyþôÜm[z½>óñ¹Ù5í¹‹w]¨õ�Kb™]Çf`è]ù¦Õ½}dlÿ/ê_ ‡²}ìÀÌØ¦�W­Û¾æ¹ÿýyì)*~¥>å ¿‹wõÎV‚IÛª"–E…¯}þ+jX4)+MŽ’Í}àí×_¿: KzïMúž›pÂp©7¹óO.íÝ`í#sÚVȪn�7«~Å#nW`±Fü|z㵋3ÝÙy~šLß Of»Þ´Ý�â#0Ç3TšÈ+Ge7wêˆ;zçÚ÷ßõ×—lÜX[XH¤ŒDüBZo{×mA.?]m#0Òåb2Œy–7œR¿ôÉ#r�ÖäáÙX[/6ÌWм¼¦$�òþð6#z‚°NÙ§7äòr±v„7·ï„ºÖ–Àm¬Råû_øLW,#zX}½Ìu‘†=ÿÌ“ÐLì¼e§–KP§®¬ÎÚÇG•J¼8=¥²ŽÓ³ÅÑåå]×Ü|~ï<ôm5"Ïñ¦—š†L¯X°nMY•Œy]XMköÐ ]…˜x໬#z¬ùƒÇªs³]ýý½«ú¹¼#n“ÓãSÕR) ¼åF5ÞÑ–#z6&"?wp<ÓÈÀ—�#n^o6FNM˜±¤¢ÅÜÚR¥Y=| ð#eÉåo¾æW£½xbb÷sûš+Õ´ª½yÇ΋6®‘qÍqÜJyi|r¬Þ‚AËu#zG܃Ñõ#0XQ~å 5#0#0@:�e·R´*•ÇŽ>»´­£¯ÍÈŽœ8$�»ù‚¡wÜ~s"�ÔÍ®9§#sfVB4Ü·~ B’0м`Ï3{þÏW¾›Ž§1$ÃC}!s�Ÿ6;úþñïjo/œ—Á_xüa¿^yìÑÇì#0«V!¡šfbíÚá+¯Ø><Ü#ciÀ9€ªŽ°±#nt@Ä QUp…FÍryefùØ©iHÔ¹©qzÇÆ&:x¢­3ÿ÷#rô�Qsæ1 !<]¬Þ÷ýÇuM#s�çSÚ»Þyóe›†#reÒiHLÇr".H*S)h&±ibDt¨bD‚�kF*ßÛ½eëf#cfH Kµz<™X30Ø“ï»ã·?èºÞ¹j(eÿð‰Oþùß|lb¾¨™ /ðÞûŽ›%Wtht¤²’2ê‡QÈ ¬zŽFÜõ©Õrå" ¹ï…®xÑb±#e,•mËV€<==0æ1Æ…ìȵ#cŠïø½Aø³E¿|d°mç=¿õ»ß¼ïA�Èb©$%È&ãã““¥Juõ@<ïíìŒÓ ´ì–T”HH݈E~ˆœ…¡gÙn¡ÐN™HjDRŠ?|ô(cìôb±T·ÒñtG¡óðÑcª®^¼ýÂ³ÄæÓÿ|ÏsÏ0�d"‘8vàäÄÈÔ´e·r#c–ÒR)³²¼d7kÅòRÃò“‰´çx�ë&tM#cŠäÜiXÙxJF¬³³KSõ˜®·Z­¡ÁU•¦]ª5³™Lȸåx=CŸÿÜ¿Í/¼üàè%šJµ~üèÄÅ›¶õç:r±4#0#zjÈÁÐ@ÿöM›ü0b¬,W§g#cI%�H#rCfÛ®K)ÖôL2Ý,—¦FǼJU�%ãñô际əŅZ«§o€sVk5íÀÏdóõ†ÿÇýø+i~ô)jùT~¨«ÏÀZÜHéz"bbn¹´¼P].µÆ#sŠV“…!îèèê4â鎞¾Jµ95=gû>Ö4=f.f&&#z¥eß –K•ÑÉÓ§Š}ýƒw¾ïý}==�–Õ´�¾¾žx*5;_ä#eœYcÙîwï{”`­Ñ°jI`àúaÃ¥_vüýÇŽÍWLË–m¹a¢½¤]ókÕJ!—n‹™ ˆjÕªä@WÔCG�.MÍL�ŸBPÌ—JX543uÓMoWìY5y«û{iÍ]^*Ÿ¹ï~ð‰Çß›K¤hÈÚÚòNÔšö®�Wœžžöý`jfa‹Åç—–-7ÐT�R¹#ek¸Ôê#cLÒ¦ë4¥ååêrifnvÏáC}áøÈ±©y¢Æ°�m¹|®­†lqyy±¼²~xu£Þ:19uËÍמAó÷Ÿ¸ÇªÛ1M÷£pÛÖ NMÏüê­·vvv;9Æ8¬µìR¥>¿¸¤jÚÈÄäÓÏîYœ]#e¿vͺu«ª‹ •©#rÀ#sŸyº«ÐV[©-W*<õÔÄÂâ镯_þÕ]7¼õúãÇ�—* ê]xáé¹ù‘ññ¾în(Ñ‘ã#ck×#r#r#röÿÈðãqªZmÌLÍ#nâfln¹¨#z±�ë6 ­#zü‡Oö†·Þ´yúF«þ¯_úb3pFNÏ©#nÉ%S�ZSúÀ·ïã�5Âl6sèÄèr½577?_)Ï–Ë$–úÛ¿ûØöË/×þÀï?5þäÞ} Å¥ .زÿÞr©L Ö‘kÿìç¾rõU;Á/jžxò¹˜¦z¡×Þ–Ý{¼õõïí¾ëÏ>òŸ_ÿæ–Mô©zª7ÛñÞ÷þöc�~qnJWXÈEɶ>þù†ÂGˆÛNÄ8ˆïn4ggægÊž5«ÿ꣟X3´Jøa#cÍd~h;>Ýýðá|¶=®éŒ“î#efïÑ£‡�Ž^²}ó‹š}/ŠÂ Œü©ÙiÛi¾ýÆ[¸”ŒóþÞÃ0ãñÔÈÆ#r›Ïñ¶lzêÙ#smß¡@‹ÅTL±<‹"¹ðÃp®R³-·oÕÀ§þénŒÒ2~är0 ùl[oWÏ®W|w÷ý’˦ee21#c–M¥~ä™5Bˆ½{#cÎ>~A} ·ïÙ}¶_¸%¢òT¥µ¯O;Ã(-Õ¿vï)oNkŽ)3#s@e’®j7{†“†j®VÅ*ÓÒÃÚè%›’:ŽšŽS †xHAÕÃKåæÔÔÌÏÕ?1ºTv#0V¥H#n,�#0 ¤Ã%#0Lì#e×Ý�2¤¨ƒµ+–¿îªŒ#zoQd«J£D6Ò=Ô#sÍBÁëêòi…J¢*–À³Y6ß.°.�±X÷2=ë¯|ó�_øâ7—~êNÆKWwµ`¦ÈªV”ÉdU#r1¥a9^Èk-×s#n4ÈnÕ*+團àï0:5�¡©ª›hf²ÖXð³¹.¨¡|¶£fãb%3ºhì]€/”õûOÚMDã¶qÅU7nÚ²#rëù Pÿê®ÏüäMz±Ýø~°ïàÈКm½�= ¥¹ ¡ä­–§ZFàSW�Cý…ù¥¹�B_2ÕFyÃGîR«•M›ã+FgbjèA$»JK¾RŸ‰†·tdÖ±œéè@fž“t¾#cŸÖÌÀ›ž¯ð@3ô“#s§K+µÎöüK4#sNœbLÏdú šîêIšéÞ•z-–]sÉÎ+˜�Óó ÿÁ“Üq0¯Ùîd{{A0÷M§”ö]4^ŸˆªçÈH�$k†×>vò¨jtïÜy˪Þ^h‰ ¢²Õ¬C pÊT¢¨D3�ø�ƒ#sÞ~ã®—h&&gz»úÒ,#sD„(8öÛoº±»§bÕÌÛóScGZÍúÆî¾«ßv]«áÿóÇ?úôže&Yruj°o[ïðê¡#rélŽÊ!½­áR®.ά˜ŠšLi¶g!ʵ„R¥NÄ“€Ia#z1U%#sG&^®±mWAI)$!•@õw&ã"(b¬;ŸJ£^úŽã%²mX�õC;¯¿A‰ÃË.¾v¸g@à3#0”r9zVÖìSSdDŒT†7ª‘c%Tw=$"U`*�ô“ÍŠ5‚3.¸�bèyRÔöL#sQb4 #c#0°‘Èe;WiŽŸÍâF�sò;wÜÉ Ã#0cÊ#c*U p.#0Da¥�®ÄS)m¹#eC#edr9‘N*ËŲ -ÆdˆHøaèÑ—¿SmŽãrh$‹ �BÏ<ÂH¨ªâѰzí=í…ŽœÄ€bàÓHPÁ #0#0#n"*€Š „Oq4ŠT0!Š–H&l§Á"_U4M‹iº�1Ò0朷,;#cMS^®Y5ØW#e)E”R�ÅÔ„ŠµJeåÔÄxFvm¹N¾-KÅ)¢è !�KÀ9eŒQØrì†Õ‚s#0#0Â#0a)Aà¾ãó€CBÌL‚¨ˆ@Žˆ¨9u¸·ß~ÃËkª««C¢ ’”`%„êJ¥šIÆ9h¬¬Tb‰”U lׂ#n C‘Nçc¢ÅKe‘(’‚VÝjZVF1E35ÃÀšãT�fC‘F~©Øìëí•Ü“0,×—#0®¿ùM¿ó?ßÙÕ•ÿ‘á%;´ßÝýðƒ?yBO¤š�Zqf#eƒ²»³7—mWcF:�„ð)Lg;Ú m¹„‰�"/™HPÆ“º¦¸¶�ŒÇŠÅùt"~jn¶§³»Qkœ]©,È!D®åTêKW]½ãöÛo^=ÔÖ–ûéî÷ ûÅœ „�”âžÏüãS|Ë©ùé-©@U‡Š±jhCw÷Ð`ßÐ`__­YW”Ïf#eÏ[.—#s§Æ#s#sÆ#zµe«Qõ<[*ˆ .ˆë*‚Ü#n|M1¹Ù~ë‰g_¿qø™çÌ»×?zÆNîý³ß¾5#cûZ<,ÖKf¶Ð#n¤íò¸‘TìºòêD¾-K-ÌÏ=¹Ò#e)-/æâ¦¡]ëV(„–­EåT(¥Âj-…ðôâüu7_÷Õ¯|ã3*¼’†FÁþŒÍvu¦‹ÕÖ#eÙ&Z2Œ¢„NÀCΗ›~>Qð,`Ñ ,Θ†•t*°ÀôuÄÌŒ~z¼E½(#0Üa¸a5W­^½û¾o÷õ�y/ý•4#0€ri醫.[S0cÉü±ÑE¢˜’ù)ƒwÒ>#sc³ó€‰„®^{óõ“ ÅcGG8S(“C¢‘¤ª¶<w÷gâñøÏ+î,#z#0ÀóO=vÇ;oÅšI…¡’O1꘸ª:N6§ÀýèÇ>ÖÝ·ö¶w܆¥¡)&•, ~’$ÂPdIZÜÞ²þþï~Ã4.œKNÛE—¾éò«ß#ewy‹Ò&õm&C˜Z©G‚yš‚!R[!Z³é’�[¶^yÕNÔiB¯‘EnV],(�m«àoݸ5ìk¯Ønš¯tü Î)KÂ|gºÐ–^Zv¨°‹®SxK_zǶÁ§NÇçf/ÛuUwÏ#0&ÊPoÿIõ‘‹7ôXµÚ­×ïìi ——„m»Åjy(g.�>&8Cø•ΧήѴXgß`¥ù�Î#eï¶õÝí‰h}OaMoöþNÔ=Jôwÿ·†a#0#0zzºv#eØwÇm;++¥„ªe5/TZ?q¬{x°³�§�%„@¯˜„sv#r„èýð—Ùª~à�Ô±úÀ¥këK­ç*cŰáp#0H6ýãžtxú/}¶1ù©Ý* D@.» 0Ü�¼j׆¢ÎO—>üá?%Šv–²Îñ?@pÎo¼~WirNc0K#0(ç«â3Ão|ý¿¯¼æz#0€”â_ú�Ï~òî(’ºªdÓ`°�ÈÇÕ}#sOå×múÒ×$êY’ÛÎõvÆhÕ`gyn>–M4¸W­yQ$üÐî/¤N=ºõâÉT#nBÔÖÓ>__"°#0|oªî�˜®bUW¯Ùjæ ¯�&Œ" a.•k5ZPš¦#rµm»hÝ›7o9uº,ÿß=D»Y¹æšË¦JvKH‘àœòÆÚ�5¦IŸ}ꇷþÊ»_M…[7­ÿà¯ÝÚQŲ°JÚÚS”GÅùEb(?ÊÕ�BLMÍþÍŸÿ 6 ”ñÀv[�•¶œyàð±‰Ù¹x"qÖRÎ5g?n&r¹ÎÑÓ¹ŽÜ†�ëÏ/-R#nT5Vm6ëõ:#0#0"´aóÖñéy&11õ•–5:9}äØX<ooëèî~¥Ì›óÓ@Íd#nEÑu€`6WèhëN™IÉø‰ÑñTêÇgÿ·l™š]„R1â™þþá›®¿¹§§oÛæ Û²ùFýìwÏã#zO&Ûîø¡íx¶íш¹n811yòäÉ�Þ^Ãøñ>#n"|^«´$“åÒŠFôÀ�JåÚüâòë©ñüàëß¹ÿ�‡aK˜ñÁ¾>ÓЊ‹óé¤þ�>“N§MEëÈ`è£(*Î/>ùÌžc#c]]=g-â<îkî¼|×þ+ž¼o÷Ïî=ø¾;~ x×Ç?¡ÿ7¶^ò“+‘šªÒ© Ùzè;»×#ru‡NsÿþýjÌ#e*×Öo8ÃôêÕkg#exÑÛ®ØñwAM$>õÉOœ<ºbzjìè¥;®F^°j톯Þó/ß}ìé÷½ï7ßuë#r�]]õ†›Îväòù³qæìÃ3ɂؿO"»úŠË.¹póäøÈe[7ÝóŸÿ-”ä›.½c ü÷/~�FÞÆÍ[ê­ÆôüôšUí…3/ß¹ÀWÌÚ:¯Ø@Ó©äÖ-ë·nÝèÙvJ7²‰Õ§g.Øta±¸¢ª*#0`jfjfiñÏÿàýI3;55vòı•r#c ±åÒrgçYREÏCÃ;qôÀ–õkfæg›� ›ËÚÚv& >{#eÁhtäàóÿëïþ0*)ç#0„œ:Ú®|Û-Ùlö¬Eœ‡fb|$F@½Zêïé¼jç#0¢•j#r2/¦Æ’ûOŽŸ#zCÂS�;;;™03Ôr#nÉ"jWOϾ}GNùËŸ¼ûåy#n¯^ãûþ½_¿÷=7]�NèXQãÉÔŒBï`è4&OœÈ&ŒÉS£lY»k×ÕØH IjËËåj+Ÿíîïìô­Ö£Ïš››]·nýë£).Ìï¸hDX¨HŒâ¡ º>³ÐøÖ?LÇô·ìÜ+´1Iæ#z¶õwe%¨ úª.×®îöœ³ß¥:WM£#eÚ¶f#r¢¾U¯×ÃÊ÷¿·Ù#nª–mhÚèØØU—n?q¼mÕ`gOW ë#e €±JCÛu¦K Nˆ2mñäÙ/Xœël«Q]Ù÷ì“‹s3¶mY®³Tªz«z6—ݸ~ýø©Ñ#e*ñ½‡,Ú††o¼þ:»VÏ&Œ‡GŽŽ�2s™¿øÈ_#s“g¿m{®#z#0#0£c,¼z£�1QÍ0 MÓ Ã|¿º²¼0?377ÿƒ"ñ@dÇŽ‘”ïºý×κZ8oÍ9=RR#zEa¨jš�@ÓÎ2~Ùóªýüj…J#0#0#0#0IEND®B`‚‰PNG#r#n#z#n#0#0#0#rIHDR#0#0#0>#0#0#0w#0#0#0Ôôd·#0#0#0 pHYs#0#0.#c#0#0.#c#0¢à#0#0 #0IDATxœÍ¼w”%÷ußùK•ëåÔý:§é =“‘A$L"(Š…#cQ”¥]-Ž,ËòRkym묭cÉ^QK™¢IQE‚€�Ș#0Lê Ý3�_÷ë~9Ô{•aÿ#0`€Áôýë�®ªWŸº}ëÖ}·îïB!xK1Ï-�;æ”Ws{ŽD{G„o½ÿû&òÖ›EàWîÿÛ�¾ƒûÒn«±åS¿$iæûCvM¡·ÞÜÿÐߪDâ#n™·›k^×ç¼V#e}Ù®¡7µzwqÖ?q<Ê@ *–4=#n«­ÞO¸·Ö›  ^âíÜœ#n¤†©ZAÈ=�#n°±¸(8‡è#zqéýÑÕ!üzÙŸ> aØ —PøF<Ö-m8íæûŒøfº#zºöÜ4¨Ö©#n€Zí6E4DTØ6«ÙÝjý}‡¼º®‚Ω_=ÿ¢ä†Q&G€b E&2DÄm[VµüþS^UWA§n·qîn×1r 4u€©„¾“0‰[_à#ziÏû£«Ü¦NeMZß`jpOTÓD&ƒ‚*¢˜{«s‚3ˆ®‘ü¼º#nAبD»nJGY27=@šÉ„#0Œ–#n"ô¡òÏ]ðõÓÇÛU°âÚ­†2Ñ�4"£�C T‹eæ»H1>Ú+ôz_gn+¸4­p.˜ BU °©Šü M°Ëƒ†çwZëëôzt¯Z#0‹sA*$EIH‡ÌÁÈ1@`B¨8#0û²×þg�þ:‡Í�e¯ÖbP‹¨jH’ ™(C "ˆ%ÏsêÕöJ]auÁÂúÌ)]†¦„¹1FA„€$˪�4ŽdDe§c¯,#0Á?(âWt%ºo£Ù¹˜åhv7FCä´%Hg0Œ9æ€{Ðq‹Ó#sYà~PįèJtʃjS#0".#0#r1 � €9 P@˜•:­#zõ�Šø½ái*0æÄ#0C� @#0ŽCÂÐTw}Ãï~ðwê•èŒjÅ0– Uè†#0R€ÀÜc’g› ÄÔˆ…{ºjcþ¸Väµ®DŒ».@�C( � GˆÆBÊ(@Œ«jØë%ñAß©WGÁs} €#0#n€xéÒØ#r#0„ ™+&‚ÎF埗թç2Ç!¸c1ªx�â ðàÅ4‰¯®ñÀû  _Òè^«¼€ Ä8ã‚#cŒ9!gr9�á#z#e’!^#eõk¥#nú%½]„µ²#n#0#0 ”ò€aèÀ�*‚눘2’‘#nA¼jµ/]ø`L¯A"¬”tÊ|é·dŒQÆ(#rA} ¢HšF(÷+Í$–KGŸ¦¾ý��¿]„œŸÉa™2ê{^@)g#eQ•D"fª*äp©PIëq <·ì׊ÿLÐ}Ölà0ä4dB@‚Y–e‚!ÆT@7¶Ãº6a�#0¤0hT­Îô œ~`7ë«è4p»�†÷} ,Éš®U!")ª!æŒ È9@ðd(êÏ340Ì9œL#0B×|Ñòt9�<ŸCcˆ°Š� 9D¾#0f¶#c­Õ (÷#rÝ�;6#0)úœYö#nËJÿV#0ñ뾺ÕÜxäá¿¿4;O…. möØù{ïüÔÌé…*#rÒÒp¼£ß›>ñÄô¡ƒû v��pà‹´1¹û@<ž{GV(ôˆ8¥@â#02xÈ�ç…’’Ì£q$#e·Ý¡Õf�D�@"¨´—Ž=·ýÀ­˜#eQÞ8óâSÿçoÿž&r’œ•âØqëåRçô陑t®Ç#r:#e¯6½#0ðµµê{ê×î»o2²í›óÿ=±|nd×±ÿûOþákÛþå=óY©�$²*)#0€BRd…` ”Qrl#0«Ø=#0B#0À*QUMZ˜>Q¯^ñÊ T#eü¿~ëwÓÒèÿñù?PY¢¼à8mMäÖj³Ó/ 8ÖV…x®u¡#edQÄÈ™Ë#sŸxêÑ#eOÏh<Ñ8î»_þ³N}õš�ê—­ÎÂpñòL#n É#0™B!b×îrU!^[¡n]¶UÑË#e�B#nå¸Ñ:wâ7t#cù%;<ü�ouê8�OüÕWÿ®Ñ¨GL©î´Z�j[4Ùè�¥êÜ­¿´ÿˆÆ&Ç׋EY„�;6:‰zr©‡~à‰o,A"T¹$õn™Úwèã„hWGýîÜÌ#eXo�¤e]Å�#c@!¦@¡Bõ}¸¼ã©žžÏ,Š%C#0À� ¸§{,×à‹§Nx·ÎÐ3®Ý˜=wrnf1�é_«¬U*µxB7‘’ÌËŸ¸åîˆwíÜb* Ùsƒï–‰Äìö¹ô„‚’Áfqû�[ÊÅ�n?Úž)ÈüÅó-ZÿþÑïœ9ùägáã±ÜUÐ9çMÓ°€Ü#r€àr]èQB@)’gwCPÑ9}Þ–¸#cq2HµËÓ³õõËð¿þòûæ_~+¢°BÈ~ë÷>·sÏp<‚YÐÁnG¥.«Ïœ9~´š�¬n,ì¸n›ÏÙÄö�z xì±GzÇËëÕM“uÞU“™-;ÇWBN<üƒ‡Îï¼õÈ-Ÿ†#0¾Ñê]SU#r!f‚ €CÎ<Æ‘#0’„�$XÈ™M0" Àǘšj+Çž_í~ø¡�MMm™êZÕ‰M=×íŠë¸¸ròlo»¼{çö…BQ�û¶Næúõuµj•âààa#eQ$„u#c’L³Û]Äx__Nøö�ÜöØ?<–Ϧê¥UJý×ù ‚7[ëñm;#eߘ®¶’®õ»Ü÷[!ˆõ§/Ö›D#r( £¹�[ïþ¤³QS«å“¦ƒQ}QÑl��Oä²Y=FHëùsáùâÚÒlD�­½ãéžÞ#eªti-—ì�¥Ò««�dº7?Òë†m(šÑ8Ð%Ós¢¥J%ÛÛ¯©Šo»Œ ˆÂqà‡Áå™K“cétšÓ•N³õºð#0À_úÒJª‘éŸ<´3µcër»U#c@émöômúÂçWGFÒ·ÜYéXÛ§ÆŸzñ…ÿñío1…ÔQëð/âÈ/ýôàÁƒäôÜ©#röl?xàºëö°V·´¸R/¯fÊåE ™Ïó±"C G“Q9"Å3Ѯݡ„LÒ"Q ”EÈ#nB#n A˜3à‡Ìˆ% 4Ö–ªz.·ûÆ»!º"Ã#c#0#0YÒúz&7.�ÀíåÝCÑŽnFmÌÞÆþ‘ÏýT$Œô¯ÖŸüê9VëLlÛÓ´žxþñ§ðñm[ò[Ô™ÈÊJk׮ݲ,çÇ• ë�z$vù♅嵎]‡˜#sSµ¡¾ØHlж`kM!™}qu½Ò*Vªë¥‚m×¾øÛŸŸÜÖ‹$¦Ê*uÁÙ Óƒ}c=}C#c²mÌ_âA¸2sÊqšf$ûZô—Ó/ºs§ÿÚŸþ§…¹…ŒM*æÄÀè‹�=©tÝ #e{òñ£@‡7oºgïÄž¸#e:wÙ²Ñþ»?)×›ßKdÑ =J°²yjóÁëDb©ÅùZ:¶Õª�Ü:´½GO•Naºðà_=öäw¦/mÍŸîìÛ~wà¥];ú‰NSi4„"ëSÛ¦ÒÙlËj×ZÍn×KÅ2}y ¡ç¼¾‡#0#0„à]«�Ñó¦ÏoO .o¬m9¸Û@Ô¥Ìðˆ.�[òzÑŒç7#z`f*¢4¥‘¡‘¸©m¬.©CC+‹K�ùNw�‘š¡¹>³ÕЧÏÏ>�LCtm—ú£�l¯É#0aKîZeÅój4¨DŒ<‚*V€€¬^¯0¿Úß?1�ïIäúiÄk¬^(œ#eZ8›Î�_áëÿæ~¿Û*Ͻ€]»láf;½#n!‰[nÉ^¤E$Ïw¦#eŸ»¬¬—¦zú Pb#c5T&Uë5X®zNË’"‘d,~ë¡Ã¥ryúô©Œ¤ÝyÇí?û¹{¥Ð#rÝð[V#cžñ‚0X¯€®Ç]ÕLjùÅVÙ€ÈòÃV;èØË¾ÓQ�ī蒬™™¾•ƃ²ã™ë�b|×¾ìͪ ©n‹3gçoݶE�öd‡Gƒ™ËÕÐÿÎ÷Ÿ^¶ÚÝ@/Ò£“ˆ�#zA.“Ìeû6e“åõ‚W^_{ì1T#eùýŸÿ) è /‚9••âåÅ}[Ç?öÉO$JÆ´EXs¥ŽUU’p<馑ŒbŸG4Ïs9"z."Å�¸Üš27»°èØökÑñ¿þƒß•£¦è†ÉäùõÖcç³;®Košjœ1‘ïÍMnž´9mtì3Ó—9z¦êú&óƒC›¶Ml݉u#c72 ¢†9Ð+åÒV<Îéx~xëæm�ë—`}þr"‡#0„~÷®Û�(²ß—3Üî:–jà�‡�fÃ0tMQ(#r„&‡ ´ZŽma—2�+ŠQ^Z¯_*­­nùè#sãÉWƒ þ·ÿöߢ…˜ùáÑí·Ä7�í¹N�§¨#0XÉTŒI(r<Ýûô©³ÿè¡l8€î8´/��çús…Ù€;¦)w;uzH pËòL3™M¥Ž}fjï”KƒN�ËåâK ç†G2û÷Oa)Т#zTd#c!²ìu­Àw ††Ä’ÙvÂD¶7‘ÌAYÅ óõN±#eÙýá{RéWK/ç0’¤x8@)mß-7rø®‡UAa@!’=úÄ7¾»1=/‡€C±uߘ‹AY}çÞ[{3¹âòŠ�H*¥ÊŠEÙÑ–G͉ÉìÞ–Z­ƒ£c2"ÉlÄu"V»ýàÃß7⺤‘m;¦@&œDx"�lwM‹G£qÏÔ#r8¢µFÓÔ•áÑAsú”Õ¾¢‹ˆ#0#0"œó®ã ‚&2fœrßñ�&CFÄA×ëèã²Ú1Á‡³nTK#r&û¡Ç K« P"Çíª&À„kŠpÃ�éÊø­·¿ÿëbúT“Õæº"ùÁ#e2•Þ¶É4%»Ûê:¾j(ª®*19äÀêtu3x®ï¹Žçª²A�nµe«2L%#c«—Áþ½’„!#0^úÌt(­#e8Áý¶B®Ë–cmW¹D(Ý #e«<æЛÉÎbJÏpO§QZ^¾ˆåPÖ„€®*Y2Ô—W¡×Øë¨Â˜:W˜‡acS:¶9Û—D‘Â|aúù³#sŸ8Õm¸™x.OËJ$¤R½ÞjV*�íH²¦¨Z®/ïvLѲñWñ±Ô³ßù F_-"#0#00#zÉl”Jϸëàa#c[#eYÂrH€Àz4®c‚0Öu£Óí4Û�¸®ËùÁ±C7-?õd:-®U=�o…†,a’ˆÅ#e·C8�„ 1r#sŠÊ±fFÌÒ…ÙÞ¸±¾qd{âÀ ZbñÔb³ºïÙtEú%“”�JȈ#stE/–ó¹X_OL—ÁÆJá»_ûæâ‰iÔò"’:2µ¥¦0iËàG~õpOúÄ… LR‰aº!¨pCžÈæG#sôXbrjgÿȘ+xųƮÛÈÙ�™©”àÒùó—Ï_œmZ­R©Ü¬Ö #z$#z°Þ•mÁiDˆåVΞMK8n#z‘T6—¾tüɇ ®@@¨Š$Ë’,áF«iF"ÛîRÆûòý—._^ZY†ôæ2©DŒR_QÉ÷øýc§^°m‡RÖi[²¬h¦Áܨ–j­$x£#ej´ÛFsâèøÔ €1À ݓȎô†Ä↯ªK+�B»9_Oâè`¦7“Ë)’$CœÖM¿ÖjV�jÍ©TÚÅbÐl蜷j•r»~¹Z#z?pÀ̇Péïëoת¡ÝÝ28¤)¤V.B ëÑX×vE”ŒîÚ1DròžAq:*°³Yc¥¹f¦c½É€Y/½SxÙ×;Žm Y…èò¥9¨*¾"AðÀÑp˜uü”•ÇÏ—×aFÍnÚ>²}#nPϪ­#cß÷lGXpG¶<¹ÕVÛ>èø#nË k+{÷ïÖ1ŠezV<ÑsãmO~åÏü{ÏX¦ëxKóKÈ„±ž844FÞðíÚÚz#s?yDÆP•´®ÍÕ#0Ååd:—ˆ¶"1-é?ù @#0#0ÊÂF§*Ë��îÉDq#nàå¹¹ŽPºîÀÁÑ‘!§Ûq]»¿¯ÛÄ–¸#zÍf3ÄPxbdL„4 ‰.;÷½ÇÿÚ·x£sËõ7¾íF%"ÅJªj So8CFûÔÑ�6‡„$–TƒhÐ@¥Åæòåuær]�åòƒF,£jYIΩjïø®%³¯¾l.U»,0íܹcÕÆ#n#0‚#0#0ÄŠ,+²2´eÛd #e@a�ùÔw¬ÓÏ=—×Ò…¥¹¹ÅË©Mã©|®t£P/­l¸-«ª` HD@ÃpÍ®š£¹ÃÃ=ùüâÂò�f çšN:;¬¾ë÷ÖI°ýÃ7­<ðw1L£*¾T|aêÐóË¥v‡®,­Q{>‘‹Ô=/·¹ò“÷}2e-g«ÉH$µ|©’êÛÔ;±{÷îÅ™s#swí»YñRÃ8tB`ûP&#nšÚ²IÃÔ�Jo6¯ÊcëÂüòÙ¥G‘ŽÜz£‘ÏÊDö7ZaÃB‚]¦”IáNˆBV*,>|€ÈÖ žÔ2±ÈH_ïÂùi£¶^ùÖr6•èZ-æiºÔé(K#r÷¡¯åH‹GèÉtÖìÉ™QýïŸxèæÏÝ“2 £g ô…D”S…�]‡ŽÈ™Ôu¯ÿÇG�#0A_Êa�¦k!§«©D”{¶¦˜é ™;w#n¹Vsc¥ëØ$Oä“T“-Û6Sw#09ÝîêÌ¢³PÔ:bcz©ÒnŒ�Ø,0’±R¡rT±™,”•BÍmXN UÖ/lÉã›ã 2/1©‡Ÿâ²–ŽZ¾ßê"l[£cƒ¾Wލ¬¾0?1<’‹@틳ÇrÙa#0€.q<ß3±©p#zH�¸®´ÖJ�~÷a«øŽ�B¸¼¼Œ ¦„ˆ8®(5eY&¬ëj!õ<dl«Ïx*ÃJ2a¨rԘܷ;05_"¦fj&ˆâ¶�¿þó?)̼°K#zŠ�©±üÉ™Å{¬¯7»y²WÈå{·íÌEÐÉ£ÇÔ00#r9¢°¾¨‚ëÕàâEz}¹hÇoPî#c#0#0„@Fº#0#01ñ#0ŠÌd13ùÙgNTW­…‹ë¦œˆ�ô ku„çX•Re±Pœ]%K네ãê)”#n+VµCG#cUîÇÆ†P*fqÚ¢®‡ÃŠ[YµŠsÖF�Ñ}üÊË…µ¡þØÒùç3ªuïGöÞ÷‰=?ÿÑ‘»GÃîÖ^(OŸÝË?ü•oW+^Èã¾¹t¦2;»qôìt*�ÇH~¹#eŠæœ)ªâ1®I’Štáv¨Õ�=}©Tìr’ˆÆ£<sÛŽp|@Åv#c²Vo{ÕÅ"KšŽÛòC§Ã“qŠž|®í{¡Ç3}ù0d1’b>f!÷�©Š�ƒ|~tßÁ›Ö§Ÿ9~r1*`i±"e†Ž?{bj,™ì‰V#nìØcg·ŒnûÆ_þ�‰ÉÉ~ae®R)Ûk­F3î¹÷Ã;7ß"!í帎 †s�–Øç•™ùïÿׯ&B©ÈPfb ¥M}0­ÄtT ^­*#zn¥aëÉ4#0¼Óíb"„ Œ‡š#zw]$á˜LTCÍÔJN,_X¹KÄ¢QSb¼ºº.²ÉÌðøäö›½JçR±ÜÜXÞ4>H ÐS9‡zS:Ô··1] â%ª€Ó.¸u‡‘ȹVuèÈž;ï8|ïG¾ÕR¯>’BD02!(‡ ¨UŸýû¬NÏÝô¡�,?ñœÙŸ™[[îbœ²f5=a@quu`(§ëÊÜܬLôLª§ë"ÓLW6Ö‡ȾC™ëÍV&Æ&#zõV&“V+tF·ô›‘óÿðå]{·EìµÍ ã8£½¦ Z~™±å¹f«í¬t;mîÚ¿çW?ô{öÝØ›éW$íŠÌcB@ä„]5ôŸ|ð[�þãýñôZ§bŸn”¼†uîèÉmDêIõ”JP t]Ö#nÒ†*…ÌÚhYÝþž!MЦa*Š€Ðwݶ$E;�÷ßî0Ï ¬NL*ZÑèÈè¦ÿÙ•ç�(¨ÔEв.°ºžjøÌ[¬6¥LnëmwÙ³só®]ÃÛdY¿ú Î|×®1-xùÄ©÷��dª··çüÜœ$×qBì�Úâ#cO¾þˆ#r°¸��ÝéIölT*mh²3Mˆ åT#0®éJHƒŽ×Q#c#zãB“t»Ù•e"G”ÚR9jÔ¥NëâéãiE4›ÝSçÎ%#rI7tÀåÛoÚùÅßú}H°¢#zšÅèM›ÈKÉW·S)×kF~0ð‚óÇ�"Ïý™�ýD4•ÕŸ9Y8q¡ØjÇ’é(ƒÎFíä?<#n"Ó¤®ïz¾×-W#0ÑHtdlcìz¾ËÂxH1ǧÑ}Ç�¨ZL3:–V°Š$Åv­3tj–ít}æI.%v;¨Ófá;ßýô/ýêæñ½oF|%:¶Ýi6®Ål§�¶ápªX£Ûo¸#c›­iÚý?:Î]šÎ x8Q®”!�|ŸÕÊß·£fÜ0¢Éx0�3B„¤ˆ#n×.UU•B¡Bޏ#n¯ãúJ¢|Þ–HÛëÈé^³QSˆ™0S€»!˜J~à†ôm­¯|9ˆ#s†ÕJƒ¶*ÄZŸñ1ô±‡Þpý#s>rpfaéèåJ®§7;1$gc>õç.q#zõ#rÀS#0#0#rIDATb„TE r†#0–5"€#0P×¥¶#r|Ÿ"‡ÉáÀÔ‡HŠ#s�¡aEåXŠ:jÌgܲ#c†#z¤õªeµ™³mß–ûîûéMc;ß.:BÄ0â£ÛgÏ@A8ßׇ‘#zúB’ˆ,‘€ Æ¥Lp #0� #02"‘H,פbI’%%$Ðjù~«Ý^_m.ï¾ñº{?õÙ;n¹+›êAo¯§éåÛB¨*jÿÐÄ/>!´›Ð#c!Ôu„¤©š#0@Kq6©g暊ȧâ騉¨m×C„1�#0$ ™ª›†i#zñwÍýŽÑ¹ç«^ÔÊ!Õ 6Aˆä2#0’„0w©ö(®•£‘˜&‰„®Éª¥#0³�s&BÌeEÖ°ìw;ÅÕÙ¾þÍï"¶¼t�0ðˆL0Ç.Y+†!M¤dS’ � #epߥ–×ñô@ Œ„„ßwüà_MLîO¦úßú;¹bÎ[ÕJøAÀƒ€BHèXöF©º`ÕtVN+:QÉÔõd"aš¦ï�íKXÆqÊxˆ4YI˜Ñ±ü@yæÂs�þ¥àïr6Á;±:Aà2@1ó#rØA KáØhoº}o&?¦)I~}?ãÿtD¤Éí»fϯ¤Ó)L…F0H#0ˆ „*$„hw¬¾±±�ÿ‹/êÑØ×ÿÿY­Ô|/È÷ôèX#0v;6¢4®¨X‘„‚#z EÞ ÏLk‰ØÈö©­{o1c=Šzí)4ïx‰ôÆÒ#e*‰DU(ÂF‡ÓÀ¡3dMÅ„�n*6u£™_ü£?î›ÜÁÃplëøÚÊ¥l<™JGÝ–8a`ƒ¨j8žÏ™�¸ÖîvÌH"èº#z�fŸy¦Q#eÒs¹#cºOU£½¾Åù=  N h5ªHV¡ŒN}‡R×ã#z”t3—éëZU-#zùõÿðÿöoÚ#0Ä#n9r÷ÇZ—ÏVV¥°2`c•©UÛ•ì`&XÖ4E3¬FÝТ볗1Uêåö¥ÿ§olrrëÁtz@’®îB¯fŽoS¥¹ ?~ôi; ÑT"DH•¥¨a¤£±|¶Ç¶œX"òÙßù½Ñ=7¼22I7¢îå å —š¶ÛæÔ‡8–äh*ªr»c#r�ŽÜö¡ÛLÓD!��nN#sÓ³§¦—.^(­#eîtJDÁf$õÆÿÀ;@g�·püG­zÃjw¨#0²Œ!bºn(DI˜1#z¸HáwýÂÏm½ù.$+¯…ˆDÛ��…yËqB€Ä‡ Œ�í8cÂÇãñF£!™ÜÛ®cù–•P d‡µµõÓgŸ1bj®w^9Aê ;�b¥´¢g‡ïþÌ/ö�¯W7judž�ªC}*k4’Aþüojñ+Úœ#0ÂÑþÁho’Ò®Ûjh#e&”#cÀeYK§òÙt__ï Ýq!$…Â*  Óög/ÌsŠ‚#0xeÄ6³ÛÕmnAø#n÷~û¾.æÎ�~è¡ïýÆ¿úwŠdÞz×áM[ÒÇž}ñ±‡ža8ŒÅTÕp§ö0S}o<’˜‰ÉÛîíßu¤8{®4©¸0#s©†cµb…2a»žm»ÀL¶— R©TeY[[[cœK€dÒ™ìÀU†v½]t·^~öÛ³oÿ@YÈ+õÚœíÔ>þÉOìÝyd}±xìÉnÚÖsã§¿ðf) "ff`230qèvÏjPÏY��ùǯ}õÜÌ‹õÖº,É„È�çïØ¹£Ù¬Ö#z•ë»—WEQƒX"ùF_Í™ :õvy9Þ7‰e"! Dè/žxŠøíñ¼ùü¿I˜ÍnóìÅÅ/ü‹½[öl@ô,÷Ë…Xnèš&@DÒ“9#0À–Ü@ÿÖíË3§jk‹ç�>«�Jé‹Ë—ÖÖW #n!¢˜pM#sH`&‚ám{à[ {Výñ¯þqè²]7ÝÃ#0$š8—%"c²>·ðü#c�¸é3¡£ÏŸZ™_Z«;�_û—¿¦š|iîìÌì© l5ê«#eð·Y‡#0#0 Lb=;{ú9£›vxêÛUZ]õ}Îy‹™ ‹s”ú ê{‰ìp¼gø�ßðêâžÂ…§ÏÍÜq÷g¹z¶ �Ýl´¨ï+º¦Æc·üÜ/"„Ë+«›§®÷— [FÆš«—.ž8]_^_¹púÎÏ|½›ñ%a©Ëþ�þJï_þ�Íõ�H$*IRøº®�O)ï™Ø ñU¾ù•?AEÖu,¯,ÎxCã™#e.ð…ƒ}cñdÔâ¾™Iu- 5i»^Q0ê�}ïëß,n,Õ7*éHdrtxjß-ïœûŸÎ�I¬w8#zK·7*#nBÂõ™´C¯i5 CÚ±ëªÓ—^]—”šëI—gmFS}=ª¤Ø¡[iV|îq…(1S•åT*! ~ùìy»a�9u#nc¬IŠë¸·~ú§û¶z×è#0#0êv«… !HœÑÀŒG#n¶5µgo4“¿ê!¯^�#zKn½áf¢ÀJµ´¸²ZmZ™l.ßß·º¶¶¶ZüÁÃ?Ø(n$c MRUÍL¤²#c#c“½ÙABÕˆL¾¼¡]øÉ®�VƒQZ¯ÕÕ#zõY½ÑD’rÏg˯oº=:’Ô¡#c¹ùÞûTgÏžªm¬W«•X*¡Z¾7·kÇöòzq­°¢jòν;‡&†cq° Ó›ûôÿ š½J8ûâ48ÿì£@0A(¸Ñmæ¬îW~+K¿™Q^ãC#c>ºÿö;?~ïXOÒ^Ÿk•–ÚÍr¶7Y.¢Åõå…Ù¡¬™V“YÍqJÛ®Û;¶ç0|/C…(Ï�zñGßÃ2–t�Ä#c8kÖy{ב›wî‹ã®R‡á¾í¶gýöôÙã îøÈGGFG±ª€jë¥B¡  (¯­­œ�ö[Öo~ù~=ž~÷Ü#0žÿá7~ø×!›)*E !¥j¡ÑZÿÏß<#zIdßâÀ«¤FVßï¯èéô™�Ÿ?sfnvF²m×î±± I‘Ïž9Ýl4òƒ²y/Ü#0#0Ái£#eÐ�H4•ZktZ­Ú–í{¶þóZy³H ‰jL¸£Óîå‹§øæoSôÜÇ·m™;ùìqø„h±Ì#0#ròš<ñÝ  À jZ#rŸ`*«‡îºû¦»:ž¾zT¹ñš…;Îheæ$§´Q­œyþ©³/¾Øô‡Ò`þÓ¿ü…­®OŽ#0#0 ôìõÅ‹aè§&bñÌÛœ¡÷öjŽ/ï#c¼V­²4SX#eX#e#e#z#zßtàŽO¨æ{u˜w­wV.#0ðÀã¾Ãhøž‘Î#còîW¿Gýÿá<’j¥¼‚#0#0#0#0IEND®B`‚#r#n#r#n#r#n#r#n#r#n#r#nGIF89a@#0@#0÷#0#0†™™#z#z¢$$¢$$¬//¬::¬::µDDµOOµZZ¾dddd¾ooooÈzzzzÈ„„„„È„„Ñ����ÑšdššššÚ¤¤¤¤Ú¯¯¯¯ÚººººÚÄÄÄÄÚÏÏÏÏÚÚÚÚÚÚääääÚïïúúúúúú2úúNúúaúújúú}úú™úú¬úú¾#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0ÿÿÿ!ù#0#0ÿ#0,#0#0#0#0@#0@#0@ÿ#0ÿ H° Áƒ*#exC‰#sR¤PA±¢Å+X°hÑÂ…‹0BÆIrdH/|ˆ9³&D‰8sŠ]A€€Ò@ ±­Ô©bÅVý÷rìYµríêõ+XŠ 7.ØO”˜ë²®Ý»xµê�IYæÌ˘gVŽù’1ÃÏ_N°@º´iÒ<ƒ^Íðeƒ×#r:³žÍºóËÂ*0ºåØÑ£o�¶[Ò~IÓ¦DܹÑ*ê#0… #z�‚ A„ 3d� µ…ÆÛ_Nÿîšø8rÝ#z9ºpЂû÷Rºà­®Ü–u±Žç[>¬ØÁƒ!#s XªÑ…A�E6™e|ÕTB#0FabVè` —X[p�%ˆ×‡ v`m$#zøÀ‰(>ÁŠ#z–è¢�²½(ãgÁÕhã�3d›y…¡·Qo/uÒ�òµ0â†Æù7Ö#nk-Ç@sÏE— d§�IÜÍ÷�p½dY_<ŠÅ“8 %tÒ‰@ "€àÁv(Íç�T*¨&Þ^`*©ÓNfý¤€GA†TÁ„ZAYÊYß#n9UuÕ~yê™F±Pær %Լ͹(rŽb ßV_Út“€* 6Àª”RŠjNÍÿ•_^¤^Ö×M’¾Š*Xx ]#n’Ê ƒJ `°Ækb¶ÚKB6ª° ÚzáµØf¦™³­AÛaˆ’…+c—f îº¶ã¹ ½´â¼ÔkïïÂ;›k°Á–¯¾$ò—#0çÈmÁߨðÁðÖ¥nýÈ[�úÚ& �¼ùäÆAúfnÀœz^¥ê}4äÉO©d$Áñ†,r�•²À #z1Èp%–qjɰU%y ˜Ió Hy#0‚LÏ�œÝm©qÅù…MÎ¥tÕ¡p�:cµTàéS©V6fÑÌ�4Ò”LSéÎNõ<#s#evžÍßË9ñÿéS™A™#e”7Eø)kYŸEŒÝ‰6ßÇÜÛG4Spè¡H€R‘w3Ú¨pâÕZ5äï–©Pì¥Î€ÊžÚwßUyá)ôÅ¡µÖ¥#näîi[®‚ÚÙ¨”íý—€;ñTVÈgÔªë†:­ìý!w,aº#z+~H»ßè¸Vï½E¼6ž=d’íÅýaM/€÷‡%fg´ÁšOlÆN?`ûÕÔ¢·Ú/ˆÙ…‰�б”…?#n]hã_ÿ¨•™šHHBR ¶0”!–MM�#n×f´ÅÁRæ_«éL´€,#rnæ„›)KÄ¡o…ˆVäÒÊÇfuµ«]²Ë#nö,Ó¬ë‡?Ü!: "š{�æ4øÙ_r¢y9‘EJ¢�`“¢QŠèê×k¢ˆE"bÀ_#eìâ³¶hA1†ðŠflM#z #0;#r#nvar dialog = dialog || {};#r#ndialog.elements = [];#r#ndialog.actionCloseAll = function (){#r#nfor (var i = 0; i < dialog.elements.length; i++){#r#ndialog.elements[i].hidden = true;#r#n}#r#n};#r#n#r#ndialog.eventLoad = function (){#r#ndialog.elements = document.getElementsByClassName ("gadget-dialog");#r#n};#r#n#r#nwindow.addEventListener ("load", dialog.eventLoad);#r#ndialog.eventOpen = function (id){#r#nfor (var i = 0; i < dialog.elements.length; i++){#r#nvar element = dialog.elements[i];#r#nif (element.id == id && element.hidden){#r#nelement.hidden = false;#r#n}else{#r#nelement.hidden = true;#r#n}#r#n}#r#n};#r#n#r#nvar dropdown = dropdown || {};#r#ndropdown.elements = [];#r#ndropdown.eventLoad = function (){#r#ndropdown.elements = document.getElementsByClassName ("gadget-dropdown");#r#n};#r#n#r#nwindow.addEventListener ("load", dropdown.eventLoad);#r#ndropdown.eventOpen = function (id){#r#nfor (var i = 0; i < dropdown.elements.length; i++){#r#nvar element = dropdown.elements[i];#r#nif (element.id == id && element.hidden){#r#nelement.hidden = false;#r#n}else{#r#nelement.hidden = true;#r#n}#r#n}#r#n};#r#n#r#nvar interface = interface || {};#r#ninterface.actions = {};#r#ninterface.shortcuts = {};#r#n#r#ninterface.actions.dropdownCloseAll = function (){#r#nif (!dropdown || !dropdown.elements || !dropdown.elements.length)#r#nreturn;#r#n#r#nfor (var i = 0; i < dropdown.elements.length; i++){#r#ndropdown.elements[i].hidden = true;#r#n}#r#n};#r#n#r#nfunction humperstilshenClass()#r#n{ // humperstilshenClass#r#nthis.baloom = document.getElementById(#slayout_baloom#s);#r#nthis.dialogs = [];#r#nthis.menus = [];#r#nthis.panels = [];#r#nthis.onLoad = false;#r#nthis.loadWait = false;#r#nthis.onAlert = false;#r#nthis.onMenuOpen = false;#r#nthis.msgIconOpen = #sClick here to opens the assistant baloom.#s;#r#nthis.msgIconClose = #sThe assistant baloom is opened. Use down arrow to Browse your content.#s;#r#n#r#nvar shuffleds = document.getElementsByClassName ("humperstilshen-shuffled");#r#nfor (var i = 0; i < shuffleds.length; i++)#r#n{ // each shuffled#r#nif (shuffleds[i].dataset.shuffled)#r#nshuffleds[i].innerHTML = atob(shuffleds[i].dataset.shuffled);#r#n} // each shuffled#r#n#r#nthis.refresh = function ()#r#n{ // refresh#r#ndocument.refresh.submit();#r#n} // refresh#r#n#r#nthis.dialogAdd = function (name){#r#nthis.dialogs[this.dialogs.length] = name;#r#n}#r#n#r#nthis.panelAdd = function (name){#r#nthis.panels[this.panels.length] = name;#r#n}#r#n#r#nthis.dialogOpen = function (name){#r#nfor (var i in this.dialogs){#r#nchildName = this.dialogs[i];#r#nmyDialog = document.getElementById(#shumperstilshen_#s+childName);#r#nif (childName == name)#r#n{#r#nif (myDialog.hidden)#r#n{#r#nmyDialog.hidden = false;#r#nthis.help (#sopen#s, name);#r#n}else{#r#nmyDialog.hidden = true;#r#nthis.help (#sclose#s);#r#n}#r#n}#r#nelse#r#nmyDialog.hidden = true;#r#n}#r#ndocument.getElementById (#shumperstilshen#s).focus();#r#n}#r#n#r#nthis.dialogClose = function (id=false)#r#n{#r#nfor (var i in this.dialogs){#r#nchildName = this.dialogs[i];#r#ndocument.getElementById(#shumperstilshen_#s+childName).hidden = true;#r#n}#r#nthis.help (#sclose#s);#r#nif (id && id != #s#s && document.getElementById (id))#r#ndocument.getElementById (id).focus();#r#nelse#r#ndocument.getElementById (#shumperstilshen#s).focus();#r#nreturn false;#r#n}#r#n#r#nthis.panelToggle = function (name=#s#s){#r#nthis.dialogClose();#r#nthis.menuToggle();#r#nfor (var i = 0; i < this.panels.length; i++){#r#nvar id = this.panels[i];#r#nvar panel = document.getElementById(#spanel-#s + id + #s-details#s);#r#nvar button = document.getElementById(#spanel-#s + id);#r#n#r#nif (name == id)#r#nbutton.focus();#r#n#r#nif (name == id && panel.hidden){#r#nbutton.setAttribute ("aria-expanded", true);#r#npanel.hidden = false;#r#n}else{#r#nbutton.setAttribute ("aria-expanded", false);#r#npanel.hidden = true;#r#n}#r#n}#r#n}#r#n#r#nthis.help = function (caption, name=false)#r#n{ // help#r#nif (caption == #sopen#s)#r#n{ // open#r#ndocument.getElementById (#shumperstilshen_accessibility_label#s).alt = this.msgIconClose;#r#nthis.baloom.hidden = false;#r#nif (this.onAlert !== false)#r#n{ // onAlert#r#nthis.onAlert();#r#nthis.onAlert = false;#r#nthis.loadWait = true;#r#n} // onAlert#r#nelse if (this.onMenuOpen !== false)#r#n{ // onMenuOpen#r#nthis.onMenuOpen();#r#nthis.onMenuOpen = false;#r#n} // onMenuOpen#r#n} // open#r#nelse#r#n{ // close#r#ndocument.getElementById (#shumperstilshen_accessibility_label#s).alt = this.msgIconOpen;#r#nthis.baloom.hidden = true;#r#nif (this.onLoad !== false)#r#n{ // onLoad#r#nthis.onLoad();#r#nthis.onLoad = false;#r#n} // onLoad#r#n} // close#r#n} // help#r#n#r#nthis.popUpOpen = function (url, width=300, height=480, id=false){#r#nvar left = (screen.width) ? (screen.width - width)/2 : (800 - width) / 2;#r#nvar top = (screen.height) ? (screen.height - height)/2 : (600 - height) / 2;#r#nwindow.open (url, #s#s, #slocation=no, menubar=no, personalbar=no, status=no, toolbar=no, width=500, height=270, top=#s+top+#s, left=#s+left);#r#nthis.dialogClose(id);#r#n}#r#n#r#nthis.confirm = function (ref){#r#nlocation.replace(ref);#r#n}#r#n#r#nthis.audio = false;#r#nthis.audioLoaded = false;#r#nthis.lastAudioButton = false;#r#n#r#nthis.play = function (uri, target=false)#r#n{ // play#r#n#r#nif (this.lastAudioButton && this.lastAudioButton.dataset.play)#r#nthis.lastAudioButton.innerHTML = this.lastAudioButton.dataset.play;#r#nthis.lastAudioButton = target;#r#n#r#nif(!this.audio){#r#nthis.audio = document.createElement("audio");#r#ndocument.body.appendChild (this.audio);#r#n}#r#n#r#nif(!this.audioLoaded || this.audioLoaded != uri){#r#nthis.audioLoaded = uri;#r#nthis.audio.src = uri;#r#nthis.audio.load();#r#nthis.audio.play();#r#nthis.audio.onended = function (){#r#nif (humperstilshen.lastAudioButton && humperstilshen.lastAudioButton.dataset.play)#r#nhumperstilshen.lastAudioButton.innerHTML = humperstilshen.lastAudioButton.dataset.play;#r#nif (humperstilshen.playNext)#r#nhumperstilshen.playNext();#r#n}#r#nif (target && target.dataset.pause)#r#ntarget.innerHTML = target.dataset.pause;#r#nreturn;#r#n}#r#n#r#nif(this.audio.readyState < 2)#r#nreturn;#r#n#r#nif(this.audio.paused || this.audio.ended){#r#nthis.audio.play();#r#n#r#nif (target && target.dataset.pause)#r#ntarget.innerHTML = target.dataset.pause;#r#nreturn;#r#n}#r#n#r#nthis.audio.pause();#r#nif (target && target.dataset.play)#r#ntarget.innerHTML = target.dataset.play;#r#n} // play#r#n#r#nthis.menuAdd = function (id)#r#n{ // menuAdd#r#nthis.menus[this.menus.length] = id;#r#n} // menuAdd#r#n#r#nthis.menuToggle = function (id=#s#s)#r#n{ // menuToggle#r#nfor (var i = 0; i < this.menus.length; i++)#r#n{ // each menu#r#nvar currentId = this.menus[i];#r#nvar menu = document.getElementById (currentId + #s_details#s);#r#nif (currentId == id){#r#nvar alt = document.getElementById (id + #s_alt#s);#r#nif (menu.hidden){#r#nmenu.hidden = false;#r#nalt.innerHTML = this.msgExpanded;#r#n}else{#r#nmenu.hidden = true;#r#nalt.innerHTML = this.msgColapsed;#r#ndocument.getElementById (id).focus();#r#n}#r#n}else{#r#nif (!menu.hidden){#r#nmenu.hidden = true;#r#ndocument.getElementById (currentId + #s_alt#s).innerHTML = this.msgColapsed;#r#n}#r#n}#r#n} // each menu#r#n} // menuToggle#r#n#r#nthis.sessionTTL = 1800;#r#n#r#nthis.sessionCheck = function ()#r#n{ // sessionCheck#r#nthis.sessionRemainingTime = 0;#r#n#r#nvar request = new XMLHttpRequest();#r#nrequest.onreadystatechange = function(){#r#nif(request.readyState == 4){#r#nhumperstilshen.sessionRemainingTime = parseInt (this.responseText);#r#nif (humperstilshen.sessionCheckTimer){#r#nclearTimeout (humperstilshen.sessionCheckTimer);#r#nhumperstilshen.sessionCheckTimeout(); #r#n}#r#n}#r#n};#r#nrequest.open("GET", this.sessionCheckURL);#r#nrequest.send();#r#n#r#nif (this.sessionCheckTimer)#r#nclearTimeout (this.sessionCheckTimer);#r#nthis.sessionCheckTimer = setTimeout (function (){ humperstilshen.sessionCheckTimeout(); }, (humperstilshen.sessionTTL - 180) * 1000);#r#n} // sessionCheck#r#n#r#nthis.sessionCheckTimeout = function ()#r#n{ // sessionCheckTimeout#r#nif (this.sessionRemainingTime == 0)#r#nreturn this.refresh();#r#n#r#nif (this.sessionRemainingTime > 200)#r#nreturn setTimeout (function (){ }, (this.sessionRemainingTime - 180) * 1000);#r#n#r#nthis.sessionAsk();#r#n} // sessionCheckTimeout#r#n#r#nthis.sessionAsk = function ()#r#n{ // sessionAsk#r#ndocument.getElementById ("humperstilshen_session_progress").value = 0;#r#nthis.dialogOpen (this.sessionDialog);#r#nif (this.sessionProgressTimer)#r#nclearTimeout (this.sessionProgressTimer);#r#nthis.sessionProgressTimer = setTimeout (function (){ humperstilshen.sessionProgressUpdate(); }, 1000);#r#n} // sessionAsk#r#n#r#nthis.sessionProgressUpdate = function ()#r#n{ // sessionProgressUpdate#r#nvar progress = document.getElementById ("humperstilshen_session_progress");#r#nif (progress.value == 100)#r#nreturn this.sessionProgressEnded ();#r#n#r#nprogress.value ++;#r#nthis.sessionProgressTimer = setTimeout (function (){ humperstilshen.sessionProgressUpdate(); }, 1000);#r#n} // sessionProgressUpdate#r#n#r#nthis.sessionProgressEnded = function ()#r#n{ // sessionProgressEnded#r#nthis.dialogClose();#r#nthis.sessionProgressTimer = null;#r#nsetTimeout (function (){ humperstilshen.sessionCheck(); }, 10 * 1000);#r#n} // sessionProgressEnded#r#n#r#nthis.sessionRefresh = function ()#r#n{ // sessionRefresh#r#nvar request = new XMLHttpRequest();#r#nrequest.onreadystatechange = function(){#r#nif(request.readyState == 4){#r#nvar sessionRemainingTime = (parseInt (this.responseText) - 180) * 1000;#r#nsetTimeout (function (){ humperstilshen.sessionCheck(); }, sessionRemainingTime);#r#nhumperstilshen.sessionProgressTimer = null;#r#nhumperstilshen.dialogClose();#r#n}#r#n};#r#nrequest.open("GET", this.sessionRefreshURL);#r#nrequest.send();#r#n} // sessionRefresh#r#n#r#n} // humperstilshenClass#r#n#r#n/* system defaults */#r#n* { box-sizing:border-box; }#r#nhtml { -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%; }#r#nbody { font-size:100%; margin:0; padding:0; min-height:100%; }#r#n.clearfix { position:relative; display:block; width:100%; }#r#n.clearfix:before, .clearfix:after { content:""; display:table; }#r#n.clearfix:after { clear:both; }#r#n.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); border:0; }#r#nh1, h2, h3, h4, h5, h6, hr { clear:both; }#r#nh1, h2, h3, h4, h5, h6, p, ul, li { margin:0; } #r#n[data-type="paragraph"]:after { display:inline-block; height:1em; width:1em; content:" "; }#r#nspan[contenteditable] { width:auto; }#r#nbody, h1, h2, h3, h4, h5, h6 { counter-reset:list-numeradic-main; }#r#n.list-numeradic-main { list-style-type:none; list-style:none; padding:0; }#r#n.list-numeradic-main > li { counter-increment:list-numeradic-main; padding-left:2em; position:relative; }#r#n.list-numeradic-main > li:before { content:counter(list-numeradic-main) ". "; position:absolute; left:-2em; }#r#n.list-alphabetic { list-style-type:lower-latin; }#r#nul { list-style-type:disc; }#r#nbutton + button, input + button, input + input { margin-left:.5em; }#r#n.center { display:inline-block; width:100%; text-align:center; } #r#n.center > * { display:inline-block; }#r#n.icon { display:inline-block; width:1em; height:1em; fill:currentColor; }#r#n.big-icon { display:inline-block; width:2em; height:2em; fill:currentColor; }#r#n#r#n/* Fonts */#r#n/* Angelo escreve aqui */#r#nbody { font-family:"Century Gothic", CenturyGothic, AppleGothic, sans-serif; font-size:1em; }#r#np, li { line-height:1em; text-align:justify; }#r#na, .a { font-family:"Century Gothic", CenturyGothic, AppleGothic, sans-serif; font-weight:bold; text-decoration:none; }#r#nlabel, .label { font-family:"Century Gothic", CenturyGothic, AppleGothic, sans-serif; font-size:1em; font-weight:normal; line-height:1.2em; }#r#n.legend { font-family:"Century Gothic", CenturyGothic, AppleGothic, sans-serif; font-size:.9em; font-weight:normal; line-height:1.2em; }#r#nblockquote { font-family:"Century Gothic", CenturyGothic, AppleGothic, sans-serif; font-size:1.25em; line-height:1.2em; }#r#n.footnote { font-family:"Century Gothic", CenturyGothic, AppleGothic, sans-serif; font-size:.9em; line-height:1.2em; }#r#ninput, .input { font-family:"Century Gothic", CenturyGothic, AppleGothic, sans-serif; font-size:1em; font-weight:normal; line-height:1.2em; }#r#npre, tt, code { font-family:Consolas, "Andale Mono WT", "Andale Mono", "Lucida Console", "Lucida Sans Typewriter", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Liberation Mono", "Nimbus Mono L", Monaco, "Courier New", Courier, monospace; font-size:1em; font-weight:normal; line-height:1em; }#r#nh1, h2, h3, h4, h5, h6 { font-family:"Century Gothic", CenturyGothic, AppleGothic, sans-serif; font-weight:bold; line-height:1.2em; text-shadow:none; }#r#n.caption { font-family:"Century Gothic", CenturyGothic, AppleGothic, sans-serif; font-size:1.25em; font-weight:bold; line-height:1.2em; text-shadow:none; }#r#nbutton, [type="submit"], .button { font-family:"Century Gothic", CenturyGothic, AppleGothic, sans-serif; font-size:1.25em; font-weight:bold; line-height:1em; }#r#n.bar { font-family:"Century Gothic", CenturyGothic, AppleGothic, sans-serif; font-size:1.25em; font-weight:bold; line-height:1em; text-shadow:none; }#r#n#r#nins { text-decoration:none; font-weight:bold; }#r#ndel { text-decoration:line-through; }#r#nh1 { font-size:2.5em; }#r#nh2 { font-size:2em; }#r#nh3 { font-size:1.75em; }#r#nh4 { font-size:1.5em; }#r#nh5 { font-size:1.25em; }#r#nh6 { font-size:1em; }#r#n.badge { font-size:.9em; }#r#n#r#n/* Tables */#r#ntable, th, td { color:inherit; font-size:inherit; border-color:inherit; background-color:transparent; }#r#n.table-transparent, .table-bordered, .table-striped { width:100%; }#r#n.table-transparent td, .table-bordered td, .table-striped td, .padded { padding:; }#r#n.table-bordered td { border-width:1px; border-style:solid; }#r#n#r#n/* Scheme */#r#nbody { color:#c393a44; background-color:#cd1d2f9; }#r#nhr, table { border-color:#c048ba8; }#r#nh1, h2, h3, h4, h5, h6 { color:#c048ba8; text-shadow:none; }#r#nmark { color:#c893A44; }#r#na, a:visited, .a { color:#c393a44; }#r#na:hover, a:focus, a:active, .active { color:#c893A44; }#r#n.caption { color:#c048ba8; text-shadow:none; }#r#n.img-smoke:before { box-shadow:inset 0 0 .5rem .5rem #cd1d2f9, 0 0 0 3px #cd1d2f9; }#r#n#r#n.panel { background-color:#ccce; border-radius:0.1rem; padding:1rem; box-shadow:none; }#r#n.panel hr, .panel table, .panel td { border-color:#c393a44; }#r#n.panel h1, .panel h2, .panel h3, .panel h4, .panel h5, .panel h6 { color:#c048ba8; }#r#n.panel mark { color:#c893A44; }#r#n.panel a, .panel a:visited, .panel .a { color:#c393a44; }#r#n.panel a:hover, .panel a:focus, .panel a:active, .panel .active { color:#c893A44; }#r#n.panel .caption { color:#c048ba8; }#r#n.panel .img-smoke:before { box-shadow:inset 0 0 .5rem .5rem #ccce, 0 0 0 3px #ccce; }#r#n#r#n.spotlight { color:#cfff; background-color:#c008; border-color:#cfff; border-radius:0.1rem; padding:1rem; box-shadow:none; }#r#n.spotlight hr, .spotlight table, .spotlight td { border-color:#cfff; }#r#n.spotlight h1, .spotlight h2, .spotlight h3, .spotlight h4, .spotlight h5, .spotlight h6 { color:#cfff; }#r#n.spotlight mark { color:#cf99; }#r#n.spotlight a, .spotlight a:visited, .spotlight .a { color:#cfff; }#r#n.spotlight a:hover, .spotlight a:focus, .spotlight a:active, .spotlight .active { color:#cf99; }#r#n.spotlight .caption { color:#cfff; }#r#n.spotlight .img-smoke:before { box-shadow:inset 0 0 .5rem .5rem #c008, 0 0 0 3px #c008; }#r#n#r#n.card { color:#c393a44; background-color:#cfff; border-color:#c048ba8; border-radius:0.1rem; padding:1rem; box-shadow:0.5em 0.5em 0.5em 0 rgba(0, 0, 0, 0.5); }#r#n.card hr, .card table, .card td { border-color:#c048ba8; }#r#n.card h1, .card h2, .card h3, .card h4, .card h5, .card h6 { color:#c048ba8; }#r#n.card mark { color:#c893A44; }#r#n.card a, .card a:visited, .card .a { color:#c393a44; }#r#n.card a:hover, .card a:focus, .card a:active, .card .active { color:#c893A44; }#r#n.card .caption { color:#c048ba8; }#r#n.card .img-smoke:before { box-shadow:inset 0 0 .5rem .5rem #cfff, 0 0 0 3px #cfff; }#r#n#r#n.formulary { color:#c393a44; background-color:#cccc; border-color:#c048ba8; border-radius:0.1rem; padding:1rem; box-shadow:none; }#r#n.formulary hr, .formulary table, .formulary td { border-color:#c048ba8; }#r#n.formulary h1, .formulary h2, .formulary h3, .formulary h4, .formulary h5, .formulary h6 { color:#c048ba8; }#r#n.formulary mark { color:#c893A44; }#r#n.formulary a, .formulary a:visited, .formulary .a { color:#c393a44; }#r#n.formulary a:hover, .formulary a:focus, .formulary a:active, .formulary .active { color:#c893A44; }#r#n.formulary .caption { color:#c048ba8; }#r#n.formulary .img-smoke:before { box-shadow:inset 0 0 .5rem .5rem #cccc, 0 0 0 3px #cccc; }#r#n#r#n.nav { color:#cfff; background-color:#c000; border-color:#c666; border-radius:0; padding:0; box-shadow:none; }#r#n.nav hr, .nav table, .nav td { border-color:#c666; }#r#n.nav h1, .nav h2, .nav h3, .nav h4, .nav h5, .nav h6 { color:#cccc; }#r#n.nav mark { color:#cccc; }#r#n.nav a, .nav a:visited, .nav .a { color:#cfff; }#r#n.nav a:hover, .nav a:focus, .nav a:active, .nav .active { color:#cccc; }#r#n.nav .caption { color:#cccc; }#r#n.nav .img-smoke:before { box-shadow:inset 0 0 .5rem .5rem #c000, 0 0 0 3px #c000; }#r#n#r#n.system { color:#cfff; background-color:#c406e8e; border-color:#cfff; border-radius:0.1rem; padding:1rem; box-shadow:none; }#r#nbody.system { border-radius:0; padding:0; box-shadow:none; }#r#n.system-bar { border-radius:0; padding:0; box-shadow:none; }#r#nbody.system .system-bar { box-shadow:none; }#r#n.system hr, .system table, .system td { border-color:#cfff; }#r#n.system h1, .system h2, .system h3, .system h4, .system h5, .system h6 { color:#ce80; text-shadow:none; }#r#n.system mark { color:#ce80; }#r#n.system a, .system a:visited, .system .a { color:#cfff; }#r#n.system a:hover, .system a:focus, .system a:active, .system .active { color:#ce80; }#r#n.system .caption { color:#ce80; text-shadow:none; }#r#n.system .img-smoke:before { box-shadow:inset 0 0 .5rem .5rem #c406e8e, 0 0 0 3px #c406e8e; }#r#n#r#ninput, .input { color:#c000; background-color:#ceee; border-radius:0.1rem; box-shadow:none; }#r#ninput[type="radio"] { border-radius:50%; }#r#ninput:focus, .input:focus { color:#c000; background-color:#cfff; box-shadow:0 .5em 1em 0 rgba(0, 0, 0, 0.2), 0 0.375em 1.25em 0 rgba(0, 0, 0, 0.19); }#r#nbutton, [type="button"], .button { display:inline-block; text-align:center; color:#cfff; text-shadow:1px 1px 0 rgba(0, 0, 0, 0.7); background-color:#c406e8e; border-radius:0.1rem; padding-left:1rem; padding-right:1rem; box-shadow:none; }#r#n.nav .button, .nav [type="submit"], .nav button { background-color:transparent; }#r#nbutton:hover, button:focus, button:active, [type="submit"]:hover, [type="submit"]:focus, [type="submit"]:active, .button:hover, .button:focus, .button:active, .button.active { color:#cfff; text-shadow:1px 1px 0 rgba(0, 0, 0, 0.7); background-color:#c393A44; box-shadow:0 .5em 1em 0 rgba(0, 0, 0, 0.2), 0 0.375em 1.25em 0 rgba(0, 0, 0, 0.19); }#r#n#r#n.badge { color:#cfff; background-color:rgba(0, 0, 0, 0.5); border-radius:50%; }#r#n.table-striped tr:nth-child(even) { background-color:rgba(0, 0, 0, 0.2); }#r#n#r#n/* Positioning */#r#n.margin-top-auto { padding-top:0.5rem; }#r#n.margin-top-025 { padding-top:.25rem; }#r#n.margin-top-050 { padding-top:.5rem; }#r#n.margin-top-075 { padding-top:.75rem; }#r#n.margin-top-100 { padding-top:1rem; }#r#n.margin-top-150 { padding-top:1.5rem; }#r#n.margin-top-200 { padding-top:2rem; }#r#n#r#n.margin-right-auto { padding-right:1rem; }#r#n.margin-right-025 { padding-right:.25rem; }#r#n.margin-right-050 { padding-right:.5rem; }#r#n.margin-right-075 { padding-right:.75rem; }#r#n.margin-right-100 { padding-right:1rem; }#r#n.margin-right-150 { padding-right:1.5rem; }#r#n.margin-right-200 { padding-right:2rem; }#r#n#r#n.margin-bottom-auto { padding-bottom:0; }#r#n.margin-bottom-025 { padding-bottom:.25rem; }#r#n.margin-bottom-050 { padding-bottom:.5rem; }#r#n.margin-bottom-075 { padding-bottom:.75rem; }#r#n.margin-bottom-100 { padding-bottom:1rem; }#r#n.margin-bottom-150 { padding-bottom:1.5rem; }#r#n.margin-bottom-200 { padding-bottom:2rem; }#r#n#r#n.margin-left-auto { padding-left:1rem; }#r#n.margin-left-025 { padding-left:.25rem; }#r#n.margin-left-050 { padding-left:.5rem; }#r#n.margin-left-075 { padding-left:.75rem; }#r#n.margin-left-100 { padding-left:1rem; }#r#n.margin-left-150 { padding-left:1.5rem; }#r#n.margin-left-200 { padding-left:2rem; }#r#n#r#n.position-inline { display:inline-block; position:relative; }#r#n.position-left { display:block; position:relative; margin-left:0; margin-right:auto; }#r#n.position-center { display:block; position:relative; margin-left:auto; margin-right:auto; }#r#n.position-right { display:block; position:relative; margin-left:auto; margin-right:0; }#r#n.position-float-left { display:block; position:relative; float:left; width:25vw; }#r#n.position-float-right { display:block; position:relative; float:right; width:25vw; }#r#n#r#n#r#n.wd-sm-1 { width:8.1%; }#r#n.wd-sm-2 { width:16.4%; }#r#n.wd-sm-3 { width:24.7%; }#r#n.wd-sm-4 { width:33.1%; }#r#n.wd-sm-5 { width:41.4%; }#r#n.wd-sm-6 { width:48.7%; }#r#n.wd-sm-7 { width:58.1%; }#r#n.wd-sm-8 { width:66.4%; }#r#n.wd-sm-9 { width:74.7%; }#r#n.wd-sm-10 { width:83.1%; }#r#n.wd-sm-11 { width:91.4%; }#r#n.wd-sm-12 { width:100%; }#r#n#r#n.position-float-left.wd-sm-1, .position-float-right.wd-sm-1 { width:8.1vw; }#r#n.position-float-left.wd-sm-2, .position-float-right.wd-sm-2 { width:16.4vw; }#r#n.position-float-left.wd-sm-3, .position-float-right.wd-sm-3 { width:24.7vw; }#r#n.position-float-left.wd-sm-4, .position-float-right.wd-sm-4 { width:33.1vw; }#r#n.position-float-left.wd-sm-5, .position-float-right.wd-sm-5 { width:41.4vw; }#r#n.position-float-left.wd-sm-6, .position-float-right.wd-sm-6 { width:48.7vw; }#r#n.position-float-left.wd-sm-7, .position-float-right.wd-sm-7 { width:58.1vw; }#r#n.position-float-left.wd-sm-8, .position-float-right.wd-sm-8 { width:66.4vw; }#r#n.position-float-left.wd-sm-9, .position-float-right.wd-sm-9 { width:74.7vw; }#r#n#r#n.position-float-left.wd-sm-10, .position-float-left.wd-sm-11, .position-float-left.wd-sm-12 { float:none; margin-left:0; margin-right:auto; } #r#n.position-float-right.wd-sm-10, .position-float-right.wd-sm-11, .position-float-right.wd-sm-12 { float:none; margin-left:auto; margin-right:0; } #r#n#r#n@media (min-width:401px) {#r#n#r#n.wd-md-1 { width:8.1%; }#r#n.wd-md-2 { width:16.4%; }#r#n.wd-md-3 { width:24.7%; }#r#n.wd-md-4 { width:33.1%; }#r#n.wd-md-5 { width:41.4%; }#r#n.wd-md-6 { width:48.7%; }#r#n.wd-md-7 { width:58.1%; }#r#n.wd-md-8 { width:66.4%; }#r#n.wd-md-9 { width:74.7%; }#r#n.wd-md-10 { width:83.1%; }#r#n.wd-md-11 { width:91.4%; }#r#n.wd-md-12 { width:100%; }#r#n#r#n.position-float-left.wd-md-1, .position-float-right.wd-md-1 { width:8.1vw; }#r#n.position-float-left.wd-md-2, .position-float-right.wd-md-2 { width:16.4vw; }#r#n.position-float-left.wd-md-3, .position-float-right.wd-md-3 { width:24.7vw; }#r#n.position-float-left.wd-md-4, .position-float-right.wd-md-4 { width:33.1vw; }#r#n.position-float-left.wd-md-5, .position-float-right.wd-md-5 { width:41.4vw; }#r#n.position-float-left.wd-md-6, .position-float-right.wd-md-6 { width:48.7vw; }#r#n.position-float-left.wd-md-7, .position-float-right.wd-md-7 { width:58.1vw; }#r#n.position-float-left.wd-md-8, .position-float-right.wd-md-8 { width:66.4vw; }#r#n.position-float-left.wd-md-9, .position-float-right.wd-md-9 { width:74.7vw; }#r#n#r#n.position-float-left.wd-md-10, .position-float-left.wd-md-11, .position-float-left.wd-md-12 { margin-left:0; margin-right:auto; float:none; } #r#n.position-float-right.wd-md-10, .position-float-right.wd-md-11, .position-float-right.wd-md-12 { margin-left:auto; margin-right:0; float:none; } #r#n}#r#n#r#n@media (min-width:601px) {#r#n#r#n.wd-lg-1 { width:8.1%; }#r#n.wd-lg-2 { width:16.4%; }#r#n.wd-lg-3 { width:24.7%; }#r#n.wd-lg-4 { width:33.1%; }#r#n.wd-lg-5 { width:41.4%; }#r#n.wd-lg-6 { width:48.7%; }#r#n.wd-lg-7 { width:58.1%; }#r#n.wd-lg-8 { width:66.4%; }#r#n.wd-lg-9 { width:74.7%; }#r#n.wd-lg-10 { width:83.1%; }#r#n.wd-lg-11 { width:91.4%; }#r#n.wd-lg-12 { width:100%; }#r#n#r#n.position-float-left.wd-lg-1, .position-float-right.wd-lg-1 { width:8.1vw; }#r#n.position-float-left.wd-lg-2, .position-float-right.wd-lg-2 { width:16.4vw; }#r#n.position-float-left.wd-lg-3, .position-float-right.wd-lg-3 { width:24.7vw; }#r#n.position-float-left.wd-lg-4, .position-float-right.wd-lg-4 { width:33.1vw; }#r#n.position-float-left.wd-lg-5, .position-float-right.wd-lg-5 { width:41.4vw; }#r#n.position-float-left.wd-lg-6, .position-float-right.wd-lg-6 { width:48.7vw; }#r#n.position-float-left.wd-lg-7, .position-float-right.wd-lg-7 { width:58.1vw; }#r#n.position-float-left.wd-lg-8, .position-float-right.wd-lg-8 { width:66.4vw; }#r#n.position-float-left.wd-lg-9, .position-float-right.wd-lg-9 { width:74.7vw; }#r#n#r#n.position-float-left.wd-lg-10, .position-float-left.wd-lg-11, .position-float-left.wd-lg-12 { margin-left:0; margin-right:auto; float:none; } #r#n.position-float-right.wd-lg-10, .position-float-right.wd-lg-11, .position-float-right.wd-lg-12 { margin-left:auto; margin-right:0; float:none; } #r#n#r#n.wd-lg-hidden { display:none; }#r#n}#r#n#r#n@media (max-width:400px) {#r#n.wd-sm-hidden { display:none; }#r#n}#r#n@media (min-width:400px and max-width:901px) {#r#n.wd-md-hidden { display:none; }#r#n}#r#n#r#n.box-shadow-off { box-shadow:none; }#r#n.box-shadow-on { box-shadow:0.5em 0.5em 0.5em 0 rgba(0, 0, 0, 0.5); }#r#n#r#n.box-display-inline { display:inline-block; position:relative; overflow:hidden; }#r#n.box-display-inline > div { display:inline-block; }#r#n.box-display-block { display:block; position:relative; width:100%; overflow:hidden; }#r#n#r#n/* Lists */#r#n.detail { position:relative; }#r#n.detail > div { position:relative; display:inline-block; }#r#n#r#n.list-inline > .detail { display:inline-block; }#r#n.list-inline.align-left { text-align:left; }#r#n.list-inline.align-center { text-align:center; }#r#n.list-inline.align-right { text-align:right; }#r#n#r#n.list-grid { display:flex; flex-wrap:wrap; }#r#n.list-grid.align-left { justify-content:flex-start; }#r#n.list-grid.align-center { justify-content:center; }#r#n .list-grid.align-right { justify-content:flex-end; }#r#n#r#n.col-sm-1 > .detail { width:99.8%; }#r#n.col-sm-2 > .detail { width:49.8%; }#r#n.col-sm-3 > .detail { width:33.1%; }#r#n.col-sm-4 > .detail { width:24.7%; }#r#n.col-sm-5 > .detail { width:19.7%; }#r#n.col-sm-6 > .detail { width:16.4%; }#r#n#r#n@media (min-width:401px) {#r#n.col-md-1 > .detail { width:99.8%; }#r#n.col-md-2 > .detail { width:49.8%; }#r#n.col-md-3 > .detail { width:33.1%; }#r#n.col-md-4 > .detail { width:24.7%; }#r#n.col-md-5 > .detail { width:19.7%; }#r#n.col-md-6 > .detail { width:16.4%; }#r#n}#r#n#r#n@media (min-width:901px) {#r#n.col-lg-1 > .detail { width:99.8%; }#r#n.col-lg-2 > .detail { width:49.8%; }#r#n.col-lg-3 > .detail { width:33.1%; }#r#n.col-lg-4 > .detail { width:24.7%; }#r#n.col-lg-5 > .detail { width:19.7%; }#r#n.col-lg-6 > .detail { width:16.4%; }#r#n}#r#n#r#n.detail > div { width:100%; }#r#n.columns-auto > .detail > div { width:auto; }#r#n.list-columns > .detail { width:100%; }#r#n#r#n.list-columns.col-sm-1 { column-count:1; }#r#n.list-columns.col-sm-2 { column-count:2; }#r#n.list-columns.col-sm-3 { column-count:3; }#r#n.list-columns.col-sm-4 { column-count:4; }#r#n.list-columns.col-sm-5 { column-count:5; }#r#n.list-columns.col-sm-6 { column-count:6; }#r#n@media (min-width:401px) {#r#n.list-columns.col-md-1 { column-count:1; }#r#n.list-columns.col-md-2 { column-count:2; }#r#n.list-columns.col-md-3 { column-count:3; }#r#n.list-columns.col-md-4 { column-count:4; }#r#n.list-columns.col-md-5 { column-count:5; }#r#n.list-columns.col-md-6 { column-count:6; }#r#n}#r#n@media (min-width:901px) {#r#n.list-columns.col-lg-1 { column-count:1; }#r#n.list-columns.col-lg-2 { column-count:2; }#r#n.list-columns.col-lg-3 { column-count:3; }#r#n.list-columns.col-lg-4 { column-count:4; }#r#n.list-columns.col-lg-5 { column-count:5; }#r#n.list-columns.col-lg-6 { column-count:6; }#r#n}#r#n#r#n.horizontal-spacing-006 > .detail { padding-left:.06rem; padding-right:.06rem; }#r#n.horizontal-spacing-012 > .detail { padding-left:.125rem; padding-right:.125rem; }#r#n.horizontal-spacing-025 > .detail { padding-left:.25rem; padding-right:.25rem; }#r#n.horizontal-spacing-037 > .detail { padding-left:.375rem; padding-right:.375rem; }#r#n.horizontal-spacing-050 > .detail { padding-left:.5rem; padding-right:.5rem; }#r#n.horizontal-spacing-075 > .detail { padding-left:.75rem; padding-right:.75rem; }#r#n.horizontal-spacing-100 > .detail { padding-left:1rem; padding-right:1rem; }#r#n#r#n.vertical-spacing-006 > .detail { padding-top:.06rem; padding-bottom:.06rem; }#r#n.vertical-spacing-012 > .detail { padding-top:.125rem; padding-bottom:.125rem; }#r#n.vertical-spacing-025 > .detail { padding-top:.25rem; padding-bottom:.25rem; }#r#n.vertical-spacing-037 > .detail { padding-top:.375rem; padding-bottom:.375rem; }#r#n.vertical-spacing-050 > .detail { padding-top:.5rem; padding-bottom:.5rem; }#r#n.vertical-spacing-075 > .detail { padding-top:.75rem; padding-bottom:.75rem; }#r#n.vertical-spacing-100 > .detail { padding-top:1rem; padding-bottom:1rem; }#r#n#r#n.horizontal-align-center > .detail > div { text-align:center; }#r#n.horizontal-align-right > .detail > div { text-align:right; }#r#n.vertical-align-center > .detail { display:flex; flex-direction:column; justify-content:center; }#r#n.vertical-align-bottom > .detail { display:flex; flex-direction:column; justify-content:flex-end; }#r#n#r#n/* Details */#r#n.detail > div > .button { width:100%; }#r#n#r#n.format-auto, .format-elipse, .format-thumbnail, .format-square, .format-circle, .format-video { display:block; position:relative; width:100%; z-index:1; }#r#n.format-thumbnail:after, .format-square:after, .format-circle:after { content:""; display:block; padding-bottom:100%; }#r#n.format-video { content:""; display:block; padding-bottom:57.5%; }#r#n.format-auto > div, .format-elipse > div { position:relative; width:100%; }#r#n.format-thumbnail > div, .format-square > div, .format-circle > div, .format-video > :first-child { position:absolute; width:100%; height:100%; overflow:hidden; }#r#n#r#n.format-auto img, .format-elipse img { width:100%; height:auto; }#r#n.format-thumbnail img.portrait { width:auto; height:100%; position:relative; left:50%; transform:translateX(-50%); }#r#n.format-thumbnail img.landscape { width:100%; height:auto; position:relative; top:50%; transform:translateY(-50%); }#r#n.format-square img.portrait, .format-circle img.portrait { width:100%; height:auto; position:relative; top:50%; transform:translateY(-50%); }#r#n.format-square img.landscape, .format-circle img.landscape { width:auto; height:100%; position:relative; left:50%; transform:translateX(-50%); }#r#n.format-elipse > div, .format-circle > div { border-radius:50%; overflow:hidden; }#r#n#r#n.img-smoke:before { position:absolute; width:100%; height:100%; content:""; z-index:2; border-radius:inherit; }#r#n#r#nhr.layer-separator { margin:0; width:100%; }#r#n.info { display:inline-block; }#r#n.info + .info { padding-left:.3rem; }#r#n#r#n/* Dropdown menu */#r#n.dropdown { display:flex; flex-direction:column; }#r#n#r#n/* Layout */#r#n#clayout_system_bar { position:absolute; top:0; right:0; bottom:auto; left:0; height:3rem; z-index:2; box-shadow:none; }#r#n#clayout_system_bar > * { display:inline-block; position:relative; height:100%; margin-right:0.5rem; }#r#n#clayout_system_bar > :first-child { margin-left:1rem; }#r#n#clayout_system_bar > * > * { display:inline-block; position:relative; top:50%; transform:translateY(-50%); }#r#n#clayout_document { position:absolute; top:3rem; right:0; bottom:0; left:0; z-index:1; }#r#n#clayout_system_icons { position:absolute; top:0; right:0; bottom:auto; left:auto; height:3rem; z-index:3; }#r#n#clayout_system_icons > * { display:inline-block; position:relative; height:100%; margin-left:0.5rem; }#r#n#clayout_system_icons > :last-child { margin-right:1rem; }#r#n#clayout_system_icons > * > * { display:inline-block; position:relative; top:50%; transform:translateY(-50%); }#r#n#clayout_system_icons img { display:inline-block; height:2rem; width:auto; }#r#n#clayout_baloom { position:absolute; top:5rem; right:1rem; bottom:auto; left:1rem; text-align:right; z-index:4; }#r#n.baloom { display:inline-block; }#r#n#r#n/* Personalite */#r#n.personalite { position:absolute; top:.3rem; right:.3rem; z-index:1001; }#r#n.personalite > img { position:absolute; top:0; right:0; width:1rem; height:1rem; }#r#n#r#n/* Formularies */#r#n.form-field { padding:0.125em; }#r#n.form-inline { display:inline-block; }#r#n.form-inline .form-field { display:inline-block; }#r#n.form-block .form-label { display:inline-block; width:10em; }#r#n#r#n/* Ending definitions */#r#n[hidden] { display:none !important; }#r#n.no-spam-bots:after { content:attr(data-name) "@" attr(data-server); }#r#nform > label { display:none; }/* Créditos à Dani Guerrato dani@popupdesign.com.br */#r#n/* @media print { */#r#n* { text-shadow:none !important; filter:none !important; -ms-filter:none !important; }#r#nbody { margin:0; padding:0; line-height:1em; font:12pt arial, sams-serif; color:#c000; }#r#n@page { margin:1.5cm; }#r#n.wrap { width:100%; margin:0; float:none !important; }#r#n.no-print, video, audio, object, embed { display:none; }#r#n.print { display:block; }#r#nimg { max-width:100%; }#r#nh1 { font-size:18pt; }#r#nh2 { font-size:15pt; }#r#nh3 { font-size:13pt; }#r#np { font-size:12pt; widows:3; orphans:3; }#r#na, a:visited { text-decoration:underline; }#r#na:link:after, a:visited:after { content:" (" attr(href) ") "; }#r#np a { word-wrap:break-word; }#r#nq:after { content:" (" attr(cite) ")" }#r#na:after, a[href^="javascript:"]:after, a[href^="#c"]:after { content:""; }#r#n.page-break { page-break-before:always; }#r#n/* } */