From 1f46db1c30b71c3a75325ce17bc752bb9b8c6fec Mon Sep 17 00:00:00 2001 From: Dmi3yy Date: Fri, 24 Oct 2014 21:28:02 +0300 Subject: [PATCH] add change from modx evolution develop branch --- assets/modules/docmanager/tv.ajax.php | 2 +- .../plugins/managermanager/docs/changelog.htm | 215 --------- assets/plugins/managermanager/docs/css/mm.css | 197 -------- .../managermanager/docs/field-names.htm | 206 --------- assets/plugins/managermanager/docs/fields.htm | 131 ------ .../managermanager/docs/getting-started.htm | 55 --- .../docs/images/color-picker.jpg | Bin 11330 -> 0 bytes .../docs/images/image-preview.jpg | Bin 17283 -> 0 bytes .../managermanager/docs/images/tags.jpg | Bin 7709 -> 0 bytes assets/plugins/managermanager/docs/index.htm | 48 -- .../plugins/managermanager/docs/install.htm | 85 ---- .../plugins/managermanager/docs/sections.htm | 45 -- assets/plugins/managermanager/docs/tabs.htm | 63 --- .../plugins/managermanager/docs/widgets.htm | 431 ------------------ assets/plugins/tinymce/js/mce_init.js.inc | 2 +- assets/snippets/eform/eform.inc.php | 3 +- assets/snippets/eform/lang/ukranian.php | 47 ++ install/lang/hebrew.inc.php | 4 +- install/lang/nederlands-utf8.inc.php | 4 +- install/lang/portuguese-br-utf8.inc.php | 2 +- install/lang/spanish-utf8.inc.php | 2 +- install/setup.data.sql | 2 +- manager/actions/eventlog_details.dynamic.php | 13 +- manager/actions/mutate_content.dynamic.php | 6 +- .../actions/mutate_htmlsnippet.dynamic.php | 4 +- manager/actions/mutate_module.dynamic.php | 11 +- .../mutate_module_resources.dynamic.php | 9 +- manager/actions/mutate_plugin.dynamic.php | 2 +- .../mutate_template_tv_rank.dynamic.php | 10 +- manager/actions/mutate_tmplvars.dynamic.php | 9 +- manager/actions/mutate_user.dynamic.php | 4 +- manager/actions/mutate_web_user.dynamic.php | 6 +- manager/actions/search.static.php | 19 + .../actions/web_user_management.static.php | 2 +- manager/includes/controls/datagrid.class.php | 2 +- .../includes/controls/datasetpager.class.php | 2 +- .../extenders/dbapi.mysql.class.inc.php | 8 + .../extenders/dbapi.mysqli.class.inc.php | 420 +++++++++++++++++ manager/includes/lang/bulgarian.inc.php | 3 + manager/includes/lang/chinese.inc.php | 3 + manager/includes/lang/czech.inc.php | 3 + manager/includes/lang/danish.inc.php | 3 + manager/includes/lang/english-british.inc.php | 3 +- manager/includes/lang/english.inc.php | 2 + manager/includes/lang/finnish.inc.php | 3 + manager/includes/lang/francais-utf8.inc.php | 3 + manager/includes/lang/german.inc.php | 3 + manager/includes/lang/hebrew.inc.php | 3 + manager/includes/lang/italian.inc.php | 3 + manager/includes/lang/japanese-utf8.inc.php | 3 + manager/includes/lang/nederlands-utf8.inc.php | 3 + manager/includes/lang/norsk.inc.php | 3 + manager/includes/lang/persian.inc.php | 3 + manager/includes/lang/polish-utf8.inc.php | 3 + .../includes/lang/portuguese-br-utf8.inc.php | 3 + manager/includes/lang/portuguese.inc.php | 3 + manager/includes/lang/russian-UTF8.inc.php | 2 + manager/includes/lang/spanish-utf8.inc.php | 3 + manager/includes/lang/svenska-utf8.inc.php | 3 + manager/includes/tmplvars.format.inc.php | 2 +- manager/includes/tmplvars.inc.php | 2 +- manager/includes/version.inc.php | 4 +- manager/media/style/MODxRE/style.css | 4 + 63 files changed, 594 insertions(+), 1550 deletions(-) delete mode 100755 assets/plugins/managermanager/docs/changelog.htm delete mode 100755 assets/plugins/managermanager/docs/css/mm.css delete mode 100755 assets/plugins/managermanager/docs/field-names.htm delete mode 100755 assets/plugins/managermanager/docs/fields.htm delete mode 100755 assets/plugins/managermanager/docs/getting-started.htm delete mode 100755 assets/plugins/managermanager/docs/images/color-picker.jpg delete mode 100755 assets/plugins/managermanager/docs/images/image-preview.jpg delete mode 100755 assets/plugins/managermanager/docs/images/tags.jpg delete mode 100755 assets/plugins/managermanager/docs/index.htm delete mode 100755 assets/plugins/managermanager/docs/install.htm delete mode 100755 assets/plugins/managermanager/docs/sections.htm delete mode 100755 assets/plugins/managermanager/docs/tabs.htm delete mode 100755 assets/plugins/managermanager/docs/widgets.htm create mode 100644 assets/snippets/eform/lang/ukranian.php mode change 100644 => 100755 install/lang/hebrew.inc.php create mode 100644 manager/includes/extenders/dbapi.mysqli.class.inc.php mode change 100644 => 100755 manager/includes/lang/english-british.inc.php mode change 100644 => 100755 manager/includes/lang/finnish.inc.php mode change 100644 => 100755 manager/includes/lang/hebrew.inc.php mode change 100644 => 100755 manager/includes/lang/italian.inc.php mode change 100644 => 100755 manager/includes/lang/japanese-utf8.inc.php mode change 100644 => 100755 manager/includes/lang/persian.inc.php mode change 100644 => 100755 manager/includes/lang/svenska-utf8.inc.php diff --git a/assets/modules/docmanager/tv.ajax.php b/assets/modules/docmanager/tv.ajax.php index 79d01a4e..a6de2a50 100644 --- a/assets/modules/docmanager/tv.ajax.php +++ b/assets/modules/docmanager/tv.ajax.php @@ -281,7 +281,7 @@ function ParseIntputOptions($v) { global $modx; $a = array(); if(is_array($v)) return $v; - else if(is_resource($v)) { + else if($modx->db->isResult($v)) { $a = $modx->db->makeArray($v); } else $a = explode("||", $v); diff --git a/assets/plugins/managermanager/docs/changelog.htm b/assets/plugins/managermanager/docs/changelog.htm deleted file mode 100755 index 899f6801..00000000 --- a/assets/plugins/managermanager/docs/changelog.htm +++ /dev/null @@ -1,215 +0,0 @@ - - - - -ManagerManager for Modx: Changelog - - - - - -
Warning! Something might be not relevant in this documentation. Please see the following link.
- - -
- - -
-

Changelog

-

0.3.11 (2012.02.15) by DivanDesign

-
    -
  • Bugfix: ManagerManager plugin settings last tab (functions/tabs.inc.php: line 132)
  • -
  • New: mm_ddAutoFolders widget - Automatically move documents (OnBeforeDocFormSave event) based on their date (publication date; any date in tv) into folders of year and month (like 2012/02/).
  • -
  • mm_ddSetFieldValue update to 1.0.2 -
      -
    • Bugfix: Date format (widgets/ddsetfieldvalue/ddsetfieldvalue.php: line 34, 37)
    • -
    -
  • -
  • mm_ddGMap update to 1.0.2 -
      -
    • New: Multilingual map (widgets/ddgmap/ddgmap.php: line 14, 103)
    • -
    -
  • -
  • Added documentation for new widgets: mm_ddGMap, mm_ddYMap, mm_ddSetFieldValue, mm_ddMaxLength, mm_ddAutoFolders (docs/widgets.htm)
  • -
  • Change style of documentation (docs/css/mm.css & minor changes of all html files in docs/) like you see =)
  • -
-

0.3.10 (2012.01.16) by DivanDesign

-
    -
  • Bugfix: Fix jQ selector for rules mm_moveFieldsToTab (functions/fields.inc.php: line 274)
  • -
  • New: mm_default now support all fields (for TV like tv99, where 12 - id of TV) (functions/fieldvalues.inc.php: line 170)
  • -
  • New: ManagerManager now support OnBeforeDocFormSave event: -
      -
    • Initialization on mm.inc.php: line 450-452
    • -
    • Added validating event on functions/fields.inc.php: line 17, 81, 161, 213, 318
    • -
    • Added validating event on functions/fieldvalues.inc.php: line 25, 199, 298
    • -
    • Added validating event on functions/sections.inc.php: line 16
    • -
    • Added validating event on functions/tabs.inc.php: line 15, 65, 132
    • -
    • Added validating event on functions/templates.inc.php: line 17
    • -
    • Added validating event on widgets/!template/!template.php: line 12. Moved the output to the browser into if on widgets/!template.php: line 59
    • -
    • Added validating event on widgets/accessdenied/accessdenied.php: line 16. Moved the output to the browser into if on widgets/!template.php: line 34
    • -
    • Added validating event on widgets/colors/colors.php: line 12
    • -
    • Added validating event on widgets/showimagetvs/showimagetvs.php: line 15
    • -
    • Added validating event on widgets/tags/tags.php: line 12. Moved the output to the browser into if on widgets/tags/tags.php: line 98
    • -
    -
  • -
  • New: mm_ddGMap widget - integrate the Google Maps
  • -
  • New: mm_ddYMap widget - integrate the Yandex Maps
  • -
  • New: mm_ddSetFieldValue widget - sets a value for a field (always!)
  • -
  • New: mm_ddMaxLength widget - limit the number of characters in the TV (like the Twitter)
  • -
  • jQuery update to 1.7.1 (plugin.txt: line 33, 34)
  • -
  • New event (OnBeforeDocFormSave) in installation instuctions (docs/install.htm)
  • -
  • Credits in docs/index.htm =)
  • -
- -

0.3.9

-
    -
  • Bugfix: PHP error with versions < 5.2.3 (thanks mamalovesyou)
  • -
  • Bugfix: 'If template category is empty, hide the optgroup' ... code can hide all templates in the list in Firefox
  • -
  • New: You can now move content field to a new tab (thanks ChuckTrukk)
  • -
  • Bugfix: mm_default dates now respect the date format set in Site Configuration (thanks Bird)
  • -
  • Bugfix: hiding access tabs when metatags tab is present (thanks wdnz) and also renaming tabs under similar circumstances
  • -
  • Bugfix: fix ShowImageTVs widget, which wasn't always updating image previews after selecting a new one from the file browser
  • -
  • Bugfix: TVs of type URL weren't moved to new tabs correctly
  • -
-

0.3.8

-
    -
  • New: mm_requireFields - makes fields required. Originally by tobyl. Modified to take advantage of recent improvements / changes to MM, and to add a visual indication of required fields
  • -
  • Bugfix: Prevent double encoding of HTML entities (thanks David Andrews)
  • -
  • Bugfix: TV's section is broken when there's a URL TV (thanks Jean-Christophe Brebion / Mikko Lammi)
  • -
  • Various minor bugfixes
  • -
  • Minor documentation updates
  • -
-

0.3.7

-
    -
  • New: If all templates for a category are hidden, the category is removed from the templates dropdown
  • -
  • Various other minor bugfixes
  • -
-

0.3.6

-
    -
  • Bugfix: Could not hide content field
  • -
  • Bugfix: Couldn't create tabs under certain circumstances
  • -
  • mm_rules.inc.php is now empty by default
  • -
  • Documentation updates
  • -
-

0.3.5

-
    -
  • Bugfix: Fix clash with Content History plugin (thanks TobyL)
  • -
  • Bugfix: Tweak to handling spaces in tag widget
  • -
  • Bugfix: Check boxes can now be moved to new tabs
  • -
  • Bugfix: When no template variables are left in the TV section, its header is now hidden properly
  • -
  • New: mm_default now supports content_type
  • -
  • New: synch fields now works with text areas
  • -
-

0.3.4

-
    -
  • Improved configuration - now uses plugin GUI
  • -
  • You can now specify TV names with or without the TV prefix. If there is a clash with one of the default internal fieldnames, the internal field will take priority.
  • -
  • You can no longer hide or rename the preview tab, as it is now a button
  • -
  • You can no longer hide or rename the docsettings sections, as it no longer exists
  • -
  • Bugfix: Many many changes for compatibility with Evolution 1.0 (more testing needed) - this version is no longer compatible with ModX versions < 1.0.0
  • -
  • New: Option to remove deprecated TV types now does something!
  • -
  • Add support for Resource Type field (1.0.1)
  • -
  • Added ability to hide/rename access permissions tab (1.0.1)
  • -
  • You can no longer hide or rename the meta tab, as it has been deprecated (1.0.1)
  • -
  • You can no longer hide or rename the access permissions section, as it is now a tab (1.0.1)
  • -
-

0.3.2

-
    -
  • Bugfix: Problem with Tag widget paths on new documents
  • -
  • Bugfix: TV section is now renamed / hidden correctly on weblinks (thanks Metaller)
  • -
  • Bugfix: Hiding preview tab when manager role disallows access to meta/keywords now works properly (thanks netProphET)
  • -
  • Bugfix: Based on above, renaming preview tab when manager role disallows access to meta/keywords now works properly
  • -
  • New: Add weblink field to list of available fields (thanks Metaller)
  • -
  • New: AccessDenied widget - prevents access to specific document IDs (thanks Metaller)
  • -
  • New: When is_richtext has an mm_default of false, which_editor is also set
  • -
-

0.3.1

-
    -
  • Bugfix: error when creating documents and using showimagestvs (thanks Rasc)
  • -
  • Bugfix: tags / colours fail when Modx is installed in a subdir (thanks smiley)
  • -
  • Bugfix: showimagetvs would give a Javascript error on pages with no image if it was applied in a rule
  • -
  • New: Better error handling
  • -
-

0.3

-
    -
  • New: Tag entry is now in the TV definition form, settable on field from there.
  • -
  • New: Removed deprecated TV types from the TV definition form
  • -
  • New: Color picker widget (using Farbtastic picker)
  • -
  • New: Image preview widget (emulates showimagestvs plugin on image fields)
  • -
  • New: Documentation improved and made easier to navigate!
  • -
  • New: Externalise widgets' code, so they can be easily added to
  • -
  • New: New widget template, if other developers want to add widgets
  • -
  • New: Rules files are separated - either to a chunk OR external file
  • -
  • New: Alert if showimagestvs is also installed (it clashes with MM) - workaround is to use the MM version
  • -
  • Bugfix: hiding some fields wasn't working
  • -
  • Bugfix: fix tag chooser layout in IE
  • -
  • Bugfix: tags not always being saved
  • Bugfix: javascript error when widget requested on template without that field
  • -
  • Bugfix: pub/unpub date were not updated if moved to a different tab (thanks Perrine)
  • -
  • Bugfix: Moved TVs were hiding until tab refresh in IE7 (thanks Dimmy)
  • -
  • Change: Various Javascript and PHP optimisations
  • -
  • Change: Split functions out into separate files, so they're easier to deal with / modify
  • -
-

0.2.8

-
    -
  • Bugfix: hiding templates now works in Opera
  • -
  • Bugfix: typo in mm_hideTemplates
  • -
  • New: Uses Google AJAX libraries API (in the absence of a local copy of jQuery)
  • -
-

0.2.7

-
    -
  • New: You can now hide and rename sections of the doc editing page (the bits labelled "Access Permissions", "Document Settings" etc) (based on suggestion by Metaller)
  • -
  • New: You can now set a default value via mm_default for searchable (thanks stefan) and other page settings (container; rich text; log visit; published; cacheable; clear cache)
  • -
  • New: Hide templates from the templates dropdown with mm_hideTemplates (thanks Metaller)
  • -
  • New: Template variables can be hidden with mm_hideFields
  • -
  • Bugfix: Fix bug with tag widget in IE6
  • -
  • Bugfix: Fix bug with template names containing quotes
  • -
  • Bugfix: Incorrectly define current template if templates changed in dropdown list and page is reloaded (thanks Metaller)
  • -
  • Bugfix: Fix JS error with tag editor (thanks ProWebscape)
  • -
-

0.2.6

-
    -
  • Added first extra widget - tag selection widget
  • -
  • Bug fix on mm_default
  • -
  • mm_default now supports default values for show/hide in menu
  • -
  • Bug fix so roles and templates are properly shown for reference when editing ManagerManager plugin
  • -
  • Small code optimisations
  • -
-

0.2.5

-
    -
  • Make more compatible with PHP5
  • -
  • Reorganisation of files
  • -
  • Various bug and documentation fixes
  • -
-

0.2.4.1

-
    -
  • Fix typos in plugin.txt
  • -
-

0.2.4

-
    -
  • Fix typo in mm_renameTab()
  • -
-

0.2.3

-
    -
  • Customise jquery location, and use jquery.com if none available locally
  • -
  • Renamed mm_hideField to mm_hideFields to more accurately reflect its function and be consistent
  • -
  • Renamed mm_hideTab to mm_hideTabs to more accurately reflect its function and be consistent
  • -
  • When editing the plugin text (to create rules) a new tab is added which details all the IDs of the roles and templates in the site - hopefully a timesaver
  • -
-
-
- - - - diff --git a/assets/plugins/managermanager/docs/css/mm.css b/assets/plugins/managermanager/docs/css/mm.css deleted file mode 100755 index bfc07901..00000000 --- a/assets/plugins/managermanager/docs/css/mm.css +++ /dev/null @@ -1,197 +0,0 @@ -/** - * reset.css - * @version: 1.0.1 (2012-02-02) - * - * @copyright 2012, DivanDesign - * http://www.DivanDesign.ru - */ -@charset "utf-8"; - -html, body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, form, fieldset, input, p, blockquote, th, td {margin:0; padding:0;} -img, body, html {border:0;} -html, body {width: 100%; height: 100%;} - -address, caption, cite, code, dfn, em, th, var {font-style: normal; font-weight: normal;} -*:focus, a, a:hover {outline: none;} -caption, th {text-align: left;} -td {vertical-align: top;} -q:before, q:after {content:'';} -blockquote, q {quotes: none;} -blockquote:before, blockquote:after, q:before, q:after {content: ''; content: none;} -table {border-collapse: collapse; border-spacing: 0;} - -/* html5*/ -article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {display: block;} - -.clear, .clearfix:after {clear: both; float: none !important;} -.clearfix:after { - display: block; - height: 0; - overflow: hidden; - visibility: hidden; - content: ' '; -} - -.none {display: none;} -.hidden {visibility: hidden;} -.left {float: left;} -.right {float: right;} -.nolist { - padding: 0; - margin: 0; - list-style: none; -} -.nobr {white-space: nowrap;} -/*_/reset.css*/ - -/** - * base.css - * @version: 1.0.6 (2012-02-02) - * - * @copyright 2012, DivanDesign - * http://www.DivanDesign.ru - */ -body { - background-color: #fff; - position: relative; - font: 13px/1.615em Verdana, Tahoma, Arial, sans-serif; - color: #464646; - overflow-y: scroll; -} -*::selection { - background: #007cc3; - color:#fff; -} - -*::-moz-selection { - background: #007cc3; - color:#fff; -} - -a, a.strl span { - border-bottom-width: 1px; - text-decoration: none; -} - -a { - border-bottom-style: solid; - border-color: #bfd7e9; - color: #007cc3; - -webkit-transition: color 0.3s ease-out, border-color 0.3s ease-out; - -moz-transition: color 0.3s ease-out, border-color 0.3s ease-out; - -ms-transition: color 0.3s ease-out, border-color 0.3s ease-out; - -o-transition: color 0.3s ease-out, border-color 0.3s ease-out; - transition: color 0.3s ease-out, border-color 0.3s ease-out; -} - -a.strl span { - border-style: inherit; - border-color: inherit; -} - -a.false {border-bottom-style: dotted;} - -a:hover { - color: #f9720c; - border-color: #f9720c; -} - -a:active, a.active, a.strl, a.strl:active span {border-bottom-width: 0;} - -h1, h2, h3, h4, h5, h6 { - padding-top: 0.64em; - padding-bottom: 0.444em; - font-family: Georgia, serif; - font-weight: normal; - line-height: 1.2em; -} - -h1 {font-size: 50px;} -h2 {font-size: 24px;} -h3 {font-size: 18px;} - -h4 { - font-size: 16px; - line-height: 1.625em; -} - -.content p, .content ul, .content ol, .content table {margin-bottom: 1em;} -/* .content */ul, /* .content */ol {padding-left: 30px;} - -/* .content */ul li {padding-bottom: 0.24em;} - -.content table { - border-collapse: collapse; - margin-left: -6px; -} - -.content table td, .content table th { - border: 1px solid #cccccc; - padding: 2px 5px; -} - -.content table th { - font-weight: bold; -} -/*_/base.css*/ - -#nav { - padding: 50px 0 0 10px; - float: left; - font-size: 1.2em; - line-height: 1.615em; -} -.content { - padding: 0 30px 30px 0; - margin-left: 220px; -} - -#banner, #attention { - padding-left:40px; - position:relative; -} - -#banner { - background: #00b4ff; - background: -moz-linear-gradient(top, #00b4ff 0%, #00a7f0 24%, #007fc0 74%, #0070af 100%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#00b4ff), color-stop(24%,#00a7f0), color-stop(74%,#007fc0), color-stop(100%,#0070af)); - background: -webkit-linear-gradient(top, #00b4ff 0%,#00a7f0 24%,#007fc0 74%,#0070af 100%); - background: -o-linear-gradient(top, #00b4ff 0%,#00a7f0 24%,#007fc0 74%,#0070af 100%); - background: -ms-linear-gradient(top, #00b4ff 0%,#00a7f0 24%,#007fc0 74%,#0070af 100%); - background: linear-gradient(top, #00b4ff 0%,#00a7f0 24%,#007fc0 74%,#0070af 100%); - filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00b4ff', endColorstr='#0070af',GradientType=0 ); - box-shadow: 0 0 6px rgba(0, 0, 0, 0.5); - font-size: 16px; - line-height: 3.2em; - color: #FFFFFF; - text-shadow: 0 -1px 0 #0070AF; - height: 57px; - z-index:1; -} - -#attention { - padding-bottom: 3px; - z-index:0; - background: rgba(255, 0, 0, 0.3); -} - -#nav ul li {list-style: none;} - -.remove {text-decoration: line-through;} -code { - display: block; - padding: 3px 5px; - margin: 5px 5px 5px -5px; - background-color: #E6E6E6; - font-family: Consolas, monospace; -} - -.warning { - font-weight: bold; - color: #F00; -} - -em { - font-style: normal; - color: #007cc3; -} diff --git a/assets/plugins/managermanager/docs/field-names.htm b/assets/plugins/managermanager/docs/field-names.htm deleted file mode 100755 index 24117b6b..00000000 --- a/assets/plugins/managermanager/docs/field-names.htm +++ /dev/null @@ -1,206 +0,0 @@ - - - - -ManagerManager for Modx: Field names - - - - - -
Warning! Something might be not relevant in this documentation. Please see the following link.
- - -
- - -
-

Naming

-

Fields

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Field name in MMName in Manager interface (English)
pagetitleTitle
longtitleLong title
descriptionDescription
aliasDocument's alias
link_attributesLink Attributes
introtextSummary (introtext)
templateUses template
menutitleMenu title
menuindexMenu index
show_in_menuShow in menu
hide_menuOpposite of "Show in menu"
parentDocument parent
is_folderContainer?
is_richtextRich text?
logLog visits (stats)
publishedPublished?
pub_datePublish date
unpub_date Un-publish date
searchableSearchable
cacheableCacheable
clear_cacheEmpty cache?
content_typeInternet Media Type
content_dispoContent Disposition
keywordsKeywords
metatagsMETA tags
contentDocument content
which_editorEditor to use
resource_typeResource type dropdown (web page or weblink)
-

Tabs

- - - - - - - - - - - - - - - - - - - - - - - - - - -
Tab names1.0.01.0.1 / 1.02
generalYY
settingsYY
accessNY
metaYN
-

Sections

- - - - - - - - - - - - - - - - - - - - - -
Section names1.0.01.0.1 / 1.02
contentYY
tvsYY
accessYN
-

-

 

-
-
- - diff --git a/assets/plugins/managermanager/docs/fields.htm b/assets/plugins/managermanager/docs/fields.htm deleted file mode 100755 index 288dac15..00000000 --- a/assets/plugins/managermanager/docs/fields.htm +++ /dev/null @@ -1,131 +0,0 @@ - - - - -ManagerManager for Modx: Function reference: Fields - - - - - -
Warning! Something might be not relevant in this documentation. Please see the following link.
- -
- - -
-

Function reference: Fields -

-

mm_renameField($field, $newlabel, $roles, $templates, $newhelp)

-

Renames one of the default fields or template variables within the manager.

-

$fields: The name of the fields this should apply to. Can only accept single field [Required]
- $newlabel: The new text for the label [Required]
- $roles: comma separated list of role IDs this should be applied to. Leave empty (or omit) for all roles [Optional - default is all]
- $templates: comma separated list of template IDs this should be applied to. Leave empty (or omit) for all templates [Optional - default is all]
- $newhelp: New text for the help icon with this field. The same restriction apply as when using mm_changeFieldHelp directly [Optional - default is leave unchanged]

-

mm_renameField('longtitle', 'Page heading'); // Rename the longtitle field to "Page heading" for all usersmm_renameField('longtitle', 'Case study name', '', '3'); // Rename the longtitle field to "Case study name" for documents using template ID "3"

-

mm_hideFields($fields, $roles, $templates)

-

Hides one or more of the default fields within the manager.

-

If a field to be hidden is a template variable, it must be prefixed by 'tv'.

-

$fields: The name(s) of the fields this should apply to. Can accept multiple fields separated by commas [Required]
- $roles: comma separated list of role IDs this should be applied to. Leave empty (or omit) for all roles [Optional - default is all]
- $templates: comma separated list of template IDs this should be applied to. Leave empty (or omit) for all templates [Optional - default is all]

- mm_hideFields('link_attributes'); // Hide the link_attributes field for all usersmm_hideFields('alias', '1', '3'); // Hide the alias field for users with role "1" editing documents using template ID "3"mm_hideFields('tvmyVar', '2'); // Hide the template variable "myVar" for users with role "2" -

mm_changeFieldHelp($field, $helptext, $roles, $templates)

-

Changes the help text that appears next to each field when the [?] icon is clicked.

-

Note that not all fields have help icons, notably "content" and "editor to use". In the future we might insert help icons for these missing ones.

-

$field: The name of the fields this should apply to. Can only accept single field [Required]
- $helptext: The new help text that should appear when the help icon is clicked [Required]
- $roles: comma separated list of role IDs this should be applied to. Leave empty (or omit) for all roles [Optional - default is all]
- $templates: comma separated list of template IDs this should be applied to. Leave empty (or omit) for all templates [Optional - default is all]

- mm_changeFieldHelp('pagetitle', 'This text will appear in the browser title bar and bookmarks'); // Change the help text for pagetitle for all usersmm_changeFieldHelp('alias', 'How the URL will appear', '1'); // Change the help text for alias only for users with role "1" -

mm_hideTemplates($tplIds, $roles, $templates)

-

Hides specified templates from the Templates drop down list

-

$tplIds: The IDs of the templates which should be hidden from the templates dropdown. Can accept multiple values separated by commas [Required]
- $roles: comma separated list of role IDs this should be applied to. Leave empty (or omit) for all roles [Optional - default is all]
- $templates: comma separated list of template IDs this should be applied to. Leave empty (or omit) for all templates [Optional - default is all]

-

mm_hideTemplates('0'); // Hide template 0 (blank) from all usersmm_hideTemplates('0,4', '1'); // Hide templates 0 and 4 from users with role "1"

-

mm_inherit($fields, $roles, $templates)

-

Tells one or more fields to inherit their parent document's value (if it exists).

-

$fields: The name(s) of the fields this should apply to. Can accept multiple fields. [Required]
- $roles: comma separated list of role IDs this should be applied to. Leave empty (or omit) for all roles [Optional - default is all]
- $templates: comma separated list of template IDs this should be applied to. Leave empty (or omit) for all templates [Optional - default is all]

- mm_inherit('pagetitle', '0,1'); // Inherit parent's pagetitle when users with role 0 or 1 are editing mm_inherit('pagetitle,longtitle'); // Inherit parent's pagetitle and longtitle for all users -

Note: this currently only works for text input fields

-

mm_default($field, $value, $roles, $templates, $eval)

-

Provides a default value for specific fields in new documents / folders. Supports:

-
    -
  • pub_date - takes a PHP date object (Unix timestamp) to set the default publish date. If no value supplied, will be set to current date and time.
  • -
  • unpub_date - takes a PHP date object (Unix timestamp) to set the default unpublish date. If no value set, will be set to current date and time.
  • -
  • published - should "published" be checked? Takes boolean value. Note that if this conflicts with the pub/unpub dates, this may be overriden by Modx when the page is saved
  • -
  • hide_menu - should "show in menu" be unchecked? Takes boolean value.
  • -
  • show_in_menu - should "show in menu" be checked? Takes boolean value (opposite of hide_menu)
  • -
  • searchable - should "searchable" be checked? Takes boolean value.
  • -
  • cacheable - should "cacheable" be checked? Takes boolean value.
  • -
  • clear_cache - should "empty cache" be checked? Takes boolean value.
  • -
  • is_folder - should "container" be checked? Takes boolean value.
  • -
  • is_richtext - should "rich text" be checked? If set to false, the page will automatically also set the "which_editor" field to none, and reload the page so this takes effect. Takes boolean value.
  • -
  • log - should "log" be checked? Takes boolean value.
  • -
  • content_type - default internet media (MIME) type, e.g. 'text/xml'
  • -
-

$field: The name(s) of the fields this should apply to. Currently accepts 'pub_date' or 'unpub_date' [Required]
- $value: The default value for the field specified. If none is supplied the current date/time will be used. A static value can be supplied as a string, or PHP code (to calculate alternative dates) can be supplied if the eval parameter is set to true [Optional]
- $roles: comma separated list of role IDs this should be applied to. Leave empty (or omit) for all roles [Optional - default is all]
- $templates: comma separated list of template IDs this should be applied to. Leave empty (or omit) for all templates [Optional - default is all]
- $eval: Should the value be evaluated as PHP code? Boolean [Optional - default is false]

- mm_default('pub_date'); // Always set the publish date on new documents to the current date and timemm_default('unpub_date', 'return date("d-m-Y H:i:s", now()+(60*60*24*28);', '', '4', true); // Automatically set the unpublish date to be four weeks in the future for documents with a template ID of "4" -

-

mm_synch_fields($fields, $roles, $templates)

-

Synchronises the values of the specified fields at edit time - e.g. for making sure pagetitle and menutitle automatically read the same, particularly if one value is hidden. Works only with text inputs.

-

$fields: The name(s) of the fields that should be synched. Requires a minimum of 2 field names, comma separated [Required]
- $roles: comma separated list of role IDs this should be applied to. Leave empty (or omit) for all roles [Optional - default is all]
- $templates: comma separated list of template IDs this should be applied to. Leave empty (or omit) for all templates [Optional - default is all]
-

-

mm_synch_fields('pagetitle,menutitle,longtitle'); // Make the contents of these three fields always equal for all users and all documents

-

-

mm_requireFields($fields, $roles, $templates)

-

Makes fields required. Will append a red asterisk to a field to indicate it is required, and alert the user if they save the document without completing all the required fields.

-

This works on all fields EXCEPT

-
    -
  • keywords
  • -
  • metatags
  • -
  • hidemenu
  • -
  • which_editor
  • -
  • template
  • -
  • menuindex
  • -
  • show_in_menu
  • -
  • parent
  • -
  • is_folder
  • -
  • is_richtext
  • -
  • log
  • -
  • searchable
  • -
  • cacheable
  • -
  • clear_cache
  • -
  • content_type
  • -
  • content_dispo
  • -
  • which_editor
  • -
-

$fields: The name(s) of the fields that are required, comma separated [Required]
- $roles: comma separated list of role IDs this should be applied to. Leave empty (or omit) for all roles [Optional - default is all]
- $templates: comma separated list of template IDs this should be applied to. Leave empty (or omit) for all templates [Optional - default is all]
-

-

mm_requireFields('pagetitle,pub_date'); // Make the page title and publication date fields required

-

-

-

 

-
-
- - diff --git a/assets/plugins/managermanager/docs/getting-started.htm b/assets/plugins/managermanager/docs/getting-started.htm deleted file mode 100755 index 58342980..00000000 --- a/assets/plugins/managermanager/docs/getting-started.htm +++ /dev/null @@ -1,55 +0,0 @@ - - - - -ManagerManager for Modx: Getting started - - - - -
Warning! Something might be not relevant in this documentation. Please see the following link.
- -
- - -
-

How it works

-

MM works by creating a series of actions (or "rules"), which can be applied to particular fields. Each rule can be applied to certain roles, certain templates or any combination or either.

-

For example, to rename a field for all templates and all users, you might use:

- mm_renameField('pagetitle', 'Document title'); -

You could then restrict this only to users with a particular role by supplying a third parameter, which is an ID of one or more web user roles. You'll see a new tab when you're editing the plugin which tells you what these are.

-

To restrict the example above to only admin role 1, you could add:

-

mm_renameField('pagetitle', 'Document title', '1');

-

You can supply more than one role, as a comma separated list:

-

mm_renameField('pagetitle', 'Document title', '1,3,5');

-

If you want to make a rule which is "everything but" you can do this by prefixing the list with a "!". For example to apply a rule to everyone EXCEPT administrators, you could say:

-

mm_renameField('pagetitle', 'Document title', '!1');

-

Note: the exclaimation negates all the roles, you can't mix and match - for example:

-

mm_renameField('pagetitle', 'Document title', '!2,3');

-

Would apply the rule to users who are not in role 2 or 3.

-

Finally, if you leave the roles paramater blank, or miss it off, the rule will apply to ALL roles.

-

You can get further refinement to your rules, by restricting them to certain template IDs too. You can also supply template IDs using exactly the same format. For example:

-

mm_renameField('pagetitle', 'Document title', '', '3');

-

Will only apply the rule to documents with a template ID of 3.

-

mm_renameField('pagetitle', 'Document title', '!1', '3');

-

Will apply the rule to users who are not in role 1 when they edit a document with a templaye of 3.

-

Phew -- pretty powerful stuff, eh?

-

Applying it

-

You set the rules within the plugin code in the manager. Within the default plugin text is an indication of where they should go, along with some examples. Note that you can use PHP variables here to make things more legible -- for example to store template IDs.

-

 

-
-
- - diff --git a/assets/plugins/managermanager/docs/images/color-picker.jpg b/assets/plugins/managermanager/docs/images/color-picker.jpg deleted file mode 100755 index 36f2b26f8fa2db6e4b23925b763a199688c3610b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11330 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 O8*G6bkuvQ6Zvp^M{S$yB! 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 - - - -ManagerManager for Modx - - - - -
Warning! Something might be not relevant in this documentation. Please see the following link.
- -
- - -
-

Introduction

-

ManagerManager lets you customise your ModX manager interface. You can rename, hide, move fields and tabs and doing many others intresting actions. And do it just for certain users or templates. Absolute power!

- -

Credits

-

Nick Crossland — www.rckt.co.uk
- Inspired by HideEditor plugin by Timon Reinhard and Gildas andHideManagerFields by Brett @ The Man Can!

-

DivanDesign — www.DivanDesign.biz: v0.3.10, 0.3.11.

- -

License

-

Released under the GNU General Public License: http://creativecommons.org/licenses/GPL/2.0/

-

Code and documentation © 2007-9 Rocket Science Solutions Ltd

-

Code and documentation © 2012 DivanDesign studio

- -

Feedback

-

Write us if you need help or have a great idea.

-
-
- - - - \ No newline at end of file diff --git a/assets/plugins/managermanager/docs/install.htm b/assets/plugins/managermanager/docs/install.htm deleted file mode 100755 index 9094ad28..00000000 --- a/assets/plugins/managermanager/docs/install.htm +++ /dev/null @@ -1,85 +0,0 @@ - - - - -ManagerManager for Modx: Installation - - - - -
Warning! Something might be not relevant in this documentation. Please see the following link.
- -
- - -
-

Installation

-

Compatibility

-

If you are running ModX 0.9.6.x, this version will not work. You should download previous version 0.3.2 of ManagerManager.

-

This version is designed for ModX 1.0.0

-

New install

-
    -
  1. Unzip the downloaded file
  2. -
  3. In ModX manager, create a new plugin called "ManagerManager" and paste in the code from plugin.txt
  4. -
  5. In the "System Events" tab, check the following checkboxes:
  6. -
-
    -
  • OnDocFormRender
  • -
  • OnDocFormPrerender
  • -
  • OnBeforeDocFormSave
  • -
  • OnPluginFormRender
  • -
  • OnTVFormRender
  • -
-
    -
  1. On the configuration tab, paste the following code into the "Plugin configuration" box, and click "Update parameter display":
    - &config_chunk=Configuration Chunk;text; &remove_deprecated_tv_types_pref=Remove deprecated TV types;list;yes,no;yes &which_jquery=jQuery source;list;local (assets/js),remote (google code),manual url (specify below);remote (google code) &js_src_type=jQuery URL override;text;
  2. -
  3. Copy all the files from the zip file into /assets/plugins/managermanager and upload.
    -
  4. -
  5. If you would like to edit your rules through the Manager interface, create a chunk called 'mm_rules' (if you want to call it something different, you can edit this in the code pasted from plugin.txt). You can then put your rules in there.
    - OR if you would like to edit your rules via a file, add your rules to the mm_rules.inc.php file in the /plugins/managermanager. Note - if you have a chunk defined and has some content in it, this will override the file contents.
  6. -
-

Note: It is suggested that you disable the ShowImageTVs plugin, and use the mm_widget_showimagetvs widget instead, e.g. add this line to your rules:

- mm_widget_showimagetvs(); -

Upgrade

-

From 0.3.x:

-
    -
  1. Replace all files in the /plugins/managermanager directory and subdirectories
  2. -
  3. Replace your existing plugin code with the new version from plugin.txt. You may need to reset some of your configuration options in the "Configuration" tab of the plugin.
  4. -
  5. Some tabs/sections have new/changed names due to differences in the manager. Please see the changelog for details.
  6. -
  7. Tick the OnTVFormRender event.
  8. -
-

From < 0.3:

-
    -
  1. Replace all files in the /plugins/managermanager directory and subdirectories
  2. -
  3. Copy the rules you've added to your existing plugin, and paste them either to a chunk called "mm_rules" or to the "mm_rules.inc.php" file.
  4. -
  5. Replace your existing plugin code with the new version from plugin.txt
  6. -
-

From <= 0.2.2:

-

All the above PLUS: If you have used mm_hideField or mm_hideTab functions you will need to rename them to mm_hideFields and mm_hideTabs

-

Configuration

-

All configuration options are set through the "Configuration tab" of the plugin.

-

Configuration chunk

-

The name of the chunk which contains MM rules (optional, if you put your rules in the external file mm_rules.inc.php)

-

Remove deprecated TV types

-

If selected YES, deprecated TV types will not be shown on the TV creation / editing screen.

-

jQuery source

-

ManagerManager uses jQuery (currently version 1.3.2) to carry out the modifications to the Manager pages. You can choose where the jQuery library is located:

-

local - use the version of jQuery which is included with the ModX 1.0.0 distribution
- remote - use the Google Code hosted version of jQuery
- manual url - enter your own URL for the location of the jQuery library

-
-
- - diff --git a/assets/plugins/managermanager/docs/sections.htm b/assets/plugins/managermanager/docs/sections.htm deleted file mode 100755 index 72dad5b7..00000000 --- a/assets/plugins/managermanager/docs/sections.htm +++ /dev/null @@ -1,45 +0,0 @@ - - - - -ManagerManager for Modx: Function reference: Sections - - - - -
Warning! Something might be not relevant in this documentation. Please see the following link.
- -
- - -
-

Function reference: Sections

-

"Sections" are the areas of a document edit tab, e.g. Resource content and Template Variable.

-

mm_renameSection($section, $newlabel, $roles, $templates)

-

Renames one of the default sections within the document edit page.

-

$section: The name of the section this should apply to (from 'section names' table). Can only accept single section [Required]
- $newlabel: The new text for the label[Required]
- $roles: comma separated list of role IDs this should be applied to. Leave empty (or omit) for all roles [Optional - default is all]
- $templates: comma separated list of template IDs this should be applied to. Leave empty (or omit) for all templates [Optional - default is all]

-

mm_renameSection('content', 'Technical stuff', '2'); // Rename the document content section for users with role "2"mm_renameSection('tvs', 'Other info'); // Rename the Template Variables section to "Other info" for all users

-

mm_hideSections($sections, $roles, $templates)

-

Hides one or more of the default sections within the document edit page.

-

$sections: The name(s) of the sections this should apply to (from 'section names' table). Can accept multiple sections separated by commas [Required]
- $roles: comma separated list of role IDs this should be applied to. Leave empty (or omit) for all roles [Optional - default is all]
- $templates: comma separated list of template IDs this should be applied to. Leave empty (or omit) for all templates [Optional - default is all]

- mm_hideSections('tvs'); // Hide the template variables section for all usersmm_hideSections('content,tvs', '1', '3'); // Hide the content and Template Variables sections for users with role "1" editing documents using template ID "3"
-
- - diff --git a/assets/plugins/managermanager/docs/tabs.htm b/assets/plugins/managermanager/docs/tabs.htm deleted file mode 100755 index 186791b7..00000000 --- a/assets/plugins/managermanager/docs/tabs.htm +++ /dev/null @@ -1,63 +0,0 @@ - - - - -ManagerManager for Modx: Function reference: Fields - - - - -
Warning! Something might be not relevant in this documentation. Please see the following link.
- -
- - -
-

Function reference: Tabs

-

mm_renameTab($tab, $newlabel, $roles, $templates)

-

Renames one of the default tabs within the manager.

-

$tab: The name of the tab this should apply to. Can only accept single field [Required]
- $newlabel: The new text for the label[Required]
- $roles: comma separated list of role IDs this should be applied to. Leave empty (or omit) for all roles [Optional - default is all]
- $templates: comma separated list of template IDs this should be applied to. Leave empty (or omit) for all templates [Optional - default is all]

-

mm_renameTab('general', 'Basics', '2'); // Rename the general tab for users with role "2"mm_renameTab('access', 'Access control'); // Rename the access permissions tab to "Access control" for all users

-

mm_hideTabs($tabs, $roles, $templates)

-

Hides one or more of the default tabs within the manager.

-

$tabs: The name(s) of the tab(s) this should apply to. Can accept multiple fields separated by commas [Required]
- $roles: comma separated list of role IDs this should be applied to. Leave empty (or omit) for all roles [Optional - default is all]
- $templates: comma separated list of template IDs this should be applied to. Leave empty (or omit) for all templates [Optional - default is all]

- mm_hideTabs('settings, access'); // Hide the settings and access tabs for all usersmm_hideTabs('access', '1', '3'); // Hide the access control tab for users with role "1" editing documents using template ID "3" -

mm_createTab($name, $id, $roles, $templates, $intro, $width)

-

Creates a new tab within the document editing page

-

$name: The display name of the new tab [Required]
- $id: A unique ID for this tab, so you can reference it later on, if you need to [Required]
- $roles: comma separated list of role IDs this should be applied to. Leave empty (or omit) for all roles [Optional - default is all]
- $templates: comma separated list of template IDs this should be applied to. Leave empty (or omit) for all templates [Optional - default is all]
- $intro: HTML text which appears at the top of the new tab [Optional]
- $width:
New width for the content within the tab. If no units are included, they will be assumed to be pixels e.g. "100%" or "450px" [Optional]

- mm_createTab('Categories', 'mycats'); // Create a new tab named "Categories" for all users and templatesmm_createTab('Categories', 'mycats', '', '3,4', '<p>How should this document be categorised?</p>', '450'); // Create a new tab 450 pixels wide called categories with an introductory paragraph which is only applied to templates 3 and 4 -

mm_moveFieldsToTab($fields, $newtab_id, $roles, $templates)

-

Moves fields (including TVs) to a different tab. However you can't move the following fields: keywords, metatags, which_editor, show_in_menu, menuindex

-

$fields: The name(s) of the field(s) this should apply to. Can accept multiple fields separated by commas [Required]
- $newtab_id: The ID of the tab which the fields should be moved to. Can be one of the default tab IDs (from table above) or a new custom tab created with mm_createTab [Required]
- $roles: comma separated list of role IDs this should be applied to. Leave empty (or omit) for all roles [Optional - default is all]
- $templates: comma separated list of template IDs this should be applied to. Leave empty (or omit) for all templates [Optional - default is all]
-

- mm_moveFieldsToTab('pub_date,pagetitle', 'mycats'); // Move publication date and page title to the newly created "mycats" tabmm_moveFieldsToTab('pub_date', 'general', '2', ''); // Move the publication date field to the general tab for users with role "2"mm_moveFieldsToTab('tvtags', 'mycats'); // Move the TV "tags" to the new "Categories" tab for all users -

 

-
-
- - diff --git a/assets/plugins/managermanager/docs/widgets.htm b/assets/plugins/managermanager/docs/widgets.htm deleted file mode 100755 index cddf7628..00000000 --- a/assets/plugins/managermanager/docs/widgets.htm +++ /dev/null @@ -1,431 +0,0 @@ - - - - -ManagerManager for Modx: Function reference: Widgets - - - - -
Warning! Something might be not relevant in this documentation. Please see the following link.
- -
- - -
-

Function reference: Widgets

- -

mm_widget_tags($fields, $delimiter, $source, $display_count, $roles, $templates)

-

Tags demo

-

Changes the manager widget for this text field to tag-friendly format - e.g. it will display a clickable list of all other tags which have been used for this field.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterTypeDesctiptionDefault
$fieldsstring; comma separated stringThe name(s) of the template variables this should apply to.Required
$delimiterstringWhich character separates individual tags within this fieldOptional: Default: ','
$sourcestring; comma separated stringThe names(s) of the template variables the list of tags should come from. This allows the list of tags to come from a different field that the widget. By default it uses all the TVs listed in $fieldsOptional; Default: = $fields
$display_count0; 1Display the number of documents using each tag (in brackets after it).Optional; Default: 0
$rolesstring; comma separated stringList of role IDs this should be applied to. Leave empty (or omit) for all roles.Optional; Default: ''
$templatesstring; comma separated stringList of template IDs this should be applied to. Leave empty (or omit) for all templates.Optional; Default: ''.
- -

mm_widget_tags('docTags'); // Adds the tag editing widget to the docTags template variable wherever it appearsmm_widget_tags('docTags,blogTags'); // Adds the tag editing widget to the docTags and blogTags template variables wherever they appear - making all previous values from both template variables available in both tagsmm_widget_tags('docTags', ',', '', '1', '', '2'); // Adds the tag editing widget to the docTags template variables in template 2, and shows the number of times each tag has been used

-

Note: TV(s) must be a text input field

- -

mm_widget_showimagetvs($fields, $w, $h, $thumbnailerUrl, $roles, $templates)

-

Show Image preview

-

Emulates the ShowImageTVs plugin - shows a preview of images chosen in image TVs.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterTypeDesctiptionDefault
$fieldsstring; comma separated stringThe name(s) of the template variables this should apply to.Optional; Default: '' (is to use all image TVs)
$wintegerPreferred maximum width of the preview.Optional; Default: 300
$hintegerPreferred maximum height of the preview.Optional; Default: 300
$thumbnailerUrlurl stringIf you have PHPThumb installed (for example through Maxigallery or phpthumb plugins/snippets), use this to make thumbnails rather than resizing the image previews via CSS. Particularly useful if you are using very large pictures, which would take a long time to download.Optional
$rolesstring; comma separated stringList of role IDs this should be applied to. Leave empty (or omit) for all roles.Optional; Default: ''
$templatesstring; comma separated stringList of template IDs this should be applied to. Leave empty (or omit) for all templates.Optional; Default: ''
- -

mm_widget_showimagetvs(); // Adds an image preview to every Image-type template variablemm_widget_showimagetvs('', 150, 150); // Adds a 150x150px image preview to every Image-type template variablemm_widget_showimagetvs('mypic', '300', '200', '/assets/snippets/phpthumb/phpThumb.php', '', '2'); // Adds an image preview to the mypic template variables in template 2, resized to 300x200px using phpthumb at the URL supplied

-

Note: TV(s) must be an image input field

- -

mm_widget_colors($fields, $default, $roles, $templates)

-

Color picker

-

Turns a text field into a color picker - storing the chosen hex value in the field.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterTypeDesctiptionDefault
$fieldsstring; comma separated stringThe name(s) of the template variables this should apply to.Required
$defaultcolor stringWhich color should be selected by default in new documents. This is only used in situations where the TV does not have a default value specified in the TV definition.Optional; Default: '#ffffff'
$rolesstring; comma separated stringList of role IDs this should be applied to. Leave empty (or omit) for all roles.Default: ''
$templatesstring; comma separated stringList of template IDs this should be applied to. Leave empty (or omit) for all templates.Default: ''
- -

mm_widget_colors('bgcolor'); // Adds the color picker widget to the bgcolor template variable wherever it appearsmm_widget_colors('bgcolor,foreground'); // Adds the color picker widget to the bgcolor and foreground template variables wherever they appearmm_widget_colors('bgcolor', '#000000', '1', '2'); // Adds the color picker widget to the bgcolor template variable, with a default value of black for new documents, only for role 1 and documents using template 2

-

Note: TV(s) must be a text input field

- -

mm_widget_accessdenied($ids, $message, $roles)

-

Denies access to specific documents (by ID) without inheritance.

-

For example, if the parent document has some Ditto call (which you do not want a user to edit) but want to allow them to create child documents.

-

Use this plugin with caution, as while it offers a basic level of protection, it does not prevent access to documents in the same way as ModX's permissions system. It would be possible for a user with technical knowledge to override it. Think of it as a "No entry" sign for an unlocked door, rather than a lock.

-

Originally contributed by Metaller

- - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterTypeDesctiptionDefault
$idsstring; comma separated stringList of documents ID to prevent access.Required
$messagehtml stringHTML formatted messageOptional; Default: '"Access denied - Access to current document closed for security reasons."'
$rolesstring; comma separated stringList of role IDs this should be applied to. Leave empty (or omit) for all roles.Optional; Default: ''
- -

mm_widget_accessdenied('1,15'); // Prevents all users from accessing documents 1 and 15 (displaying default message)mm_widget_accessdenied('1,15', 'Please select another document to edit' '2'); // Prevents users with role 2 from accessing documents 1 and 15 (displaying custom message)

- -

mm_ddGMap($tvs, $roles, $templates, $w, $h)

-

Integrate the Google Maps in MODx documents.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterTypeDesctiptionDefault
$tvsstring; comma separated stringThe name(s) of the template variables this should apply to.Required
$rolesstring; comma separated stringList of role IDs this should be applied to. Leave empty (or omit) for all roles.Optional; Default: ''
$templatesstring; comma separated stringList of template IDs this should be applied to. Leave empty (or omit) for all templates.Optional; Default: ''
$wstring; integerWidth of container map.Optional; Default: 'auto'
$hintegerHeight of container map.Optional; Default: 400
-

Created by DivanDesign.

- -

mm_ddYMap($tvs, $roles, $templates, $key, $w, $h)

-

Integrate the Yandex Maps in MODx documents.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterTypeDesctiptionDefault
$tvsstring; comma separated stringThe name(s) of the template variables this should apply to.Required
$rolesstring; comma separated stringList of role IDs this should be applied to. Leave empty (or omit) for all roles.Optional; Default: ''
$templatesstring; comma separated stringList of template IDs this should be applied to. Leave empty (or omit) for all templates.Optional; Default: ''
$keystringYandex-map key for your domain.Required
$wstring; integerWidth of container map.Optional; Default: 'auto'
$hintegerHeight of container map.Optional; Default: 400
-

Created by DivanDesign.

- -

mm_ddSetFieldValue($field, $value, $roles, $templates)

-

Sets a value for a field (always!).

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterTypeDesctiptionDefault
$fieldstringThe name of the document field or template varible this should apply to.Required
$valuestringThe value for the field specified.Optional; Default: ''
$rolescomma separated stringList of role IDs this should be applied to. Leave empty (or omit) for all roles.Optional; Default: ''
$templatescomma separated stringList of template IDs this should be applied to. Leave empty (or omit) for all templates.Optional; Default: ''
-

Created by DivanDesign.

- -

mm_ddMaxLength($tvs, $roles, $templates, $length)

-

Limit the number of characters in the TV (like the Twitter).

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterTypeDesctiptionDefault
$tvscomma separated stringThe name(s) of the template variables this should apply to.Required
$rolescomma separated stringList of role IDs this should be applied to. Leave empty (or omit) for all roles.Optional; Default: ''
$templatescomma separated stringList of template IDs this should be applied to. Leave empty (or omit) for all templates.Optional; Default: ''
$lengthintegerCount of characters to limit.Optional; Default: 150
-

Created by DivanDesign.

- -

mm_ddAutoFolders($ddRoles, $ddTemplates, $ddParent, $ddDateSource, $ddYearTpl, $ddMonthTpl, $ddYearPub, $ddMonthPub)

-

Automatically move documents (OnBeforeDocFormSave event) based on their date (publication date; any date in tv) into folders of year and month (like 2012/02/).

-

If folders (documents) of year and month doesn`t exist they are created automatically OnBeforeDocFormSave event.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ParameterTypeDesctiptionDefault
$ddRolescomma separated stringList of role IDs this should be applied to. Leave empty (or omit) for all roles.Optional; Default: ''
$ddTemplatescomma separated stringList of template IDs this should be applied to. Leave empty (or omit) for all templates.Optional; Default: ''
$ddParentintegerUltimate parent ID (parent of the years).Required
$ddDateSourcestringName of template variable which contains the date.Optional; Default: 'pub_date'
$ddYearTplintegerTemplate ID for documents of year.Optional; Default: 0
$ddMonthTplintegerTemplate ID for documents of month.Optional; Default: 0
$ddYearPub0; 1Would the documents of year published?Optional; Default: 0
$ddMonthPub0; 1Would the documents of month published?Optional; Default: 0
-

Created by DivanDesign.

-
-
- - diff --git a/assets/plugins/tinymce/js/mce_init.js.inc b/assets/plugins/tinymce/js/mce_init.js.inc index f7d4d678..32a2dbe5 100644 --- a/assets/plugins/tinymce/js/mce_init.js.inc +++ b/assets/plugins/tinymce/js/mce_init.js.inc @@ -66,7 +66,7 @@ tinyMCE.init({ // State get is set when contents is extracted from editor if (o.get) { - o.content = o.content.replace('

{{', '{{'); + o.content = o.content.replace('

{' + '{', '{' + '{'); o.content = o.content.replace('}}

', '}}'); o.content = o.content.replace(/

\[([\[\!\~\^])/g, '[$1'); o.content = o.content.replace(/([\]\!\~\^])\]<\/p>/g, '$1]'); diff --git a/assets/snippets/eform/eform.inc.php b/assets/snippets/eform/eform.inc.php index 5353afef..b5390b11 100644 --- a/assets/snippets/eform/eform.inc.php +++ b/assets/snippets/eform/eform.inc.php @@ -497,7 +497,8 @@ function eForm($modx,$params) { # added in 1.4.4.8 - Send sendirect, ccsender and autotext mails only to the first mail address of the comma separated list. if ($fields['email']) { - $firstEmail = array_shift(explode(',', $fields['email'])); + $firstEmail = explode(',', $fields['email']); + $firstEmail = array_shift($firstEmail); } else { $firstEmail = ''; } diff --git a/assets/snippets/eform/lang/ukranian.php b/assets/snippets/eform/lang/ukranian.php new file mode 100644 index 00000000..3ed87448 --- /dev/null +++ b/assets/snippets/eform/lang/ukranian.php @@ -0,0 +1,47 @@ + Увага - увімкнено налагодження
Не забудьте вимкнути налагодження перед публікацією цієї форми для реального використання!

"; +$_lang["ef_error_filter_rule"] = "Текстовий фільтр невідомий"; +$_lang["ef_error_formid"] = "Помилкові Id або ім'я форми."; +$_lang["ef_error_list_rule"] = "Помилка в заповненні поля! Правило #LIST задано, але значень списку не знайдено:"; +$_lang["ef_error_validation_rule"] = "Правило перевірки не розпізнано"; +$_lang["ef_eval_deprecated"] = "Вираз #EVAL позначено як застаріле і може не працювати в наступних версіях. Замість нього використовуйте #FUNCTION."; +$_lang["ef_failed_default"] = "Некоректна"; +$_lang["ef_failed_ereg"] = "Значення не пройшло перевірку"; +$_lang["ef_failed_eval"] = "Значення не пройшло перевірку"; +$_lang["ef_failed_list"] = "Значення не знаходиться в списку допустимих значень"; +$_lang["ef_failed_range"] = "Значення виходить за межі допустимого діапазону"; +$_lang["ef_failed_upload"] = "Неприпустимий тип файлу."; +$_lang["ef_failed_vericode"] = "Невірний код підтвердження."; +$_lang["ef_invalid_date"] = "не є правильною датою"; +$_lang["ef_invalid_email"] = "не є правильним e-mail адресою"; +$_lang["ef_invalid_number"] = "не є правильним числом"; +$_lang["ef_is_own_id"] = " Шаблоном форми обрано ресурс з id таким же, як у ресурсу, що містить виклик цього сниппета! Не можна використовувати форму в тому ж ресурсі, в якому проводиться виклик сниппета. id = "; +$_lang["ef_mail_abuse_error"] = " У Вашій формі виявлені помилкові або небезпечні поля. ."; +$_lang["ef_mail_abuse_message"] = "

Можливо, була зроблена спроба впровадження несанкціонованої електронної пошти в форму на Вашому сайті. Нижче приведена додаткова інформація про посланих за допомогою форми даних. Підозрілий текст укладений в теги \[..]\.

"; +$_lang["ef_mail_abuse_subject"] = "Виявлено потенційна спроба несанкціонованої розсилки e-mail за допомогою форми з id"; +$_lang["ef_mail_error"] = "Програма не змогла відправити пошту"; +$_lang["ef_multiple_submit"] = "

Дані успішно відправлені. Немає потреби відправляти дані кілька разів.

"; +$_lang["ef_no_doc"] = "Ресурс або чанк не знайдені для шаблону з id ="; +$_lang["ef_regex_error"] = "помилка в регулярному виразі"; +$_lang["ef_required_message"] = "Необхідно заповнити наступні поля: [+fields+]"; +$_lang["ef_rule_failed"] = " Помилка! Не виконано правило [+rule+] (input = \"[+input+]\")"; +$_lang["ef_rule_passed"] = "Успішно виконано правило [+rule+] (input = \"[+input+]\")."; +$_lang["ef_sql_no_result"] = "без проблем пройшов перевірку. SQL-запит не повернув ніяких результатів! "; +$_lang["ef_submit_time_limit"] = "

Дані були ВЖЕ успішно відправлені. Повторна відправка даних неможлива напротязі [+submitLimitMinutes+] хвилин.

"; +$_lang["ef_tamper_attempt"] = "Виявлено спроба підробки!"; +$_lang["ef_thankyou_message"] = "

Спасибо!

Ваша інформація успішно відправлена.

"; +$_lang["ef_thousands_separator"] = ""; +$_lang["ef_upload_error"] = ": помилка при завантаженні файлу."; +$_lang["ef_upload_exceeded"] = "перевищує допустимий ліміт обсягу завантаження."; +$_lang["ef_validation_message"] = "У вашій формі виявлені такі помилки:"; +$_lang["ef_version_error"] = " Увага! Версія сниппета eForm ([+version+]) відрізняється від inc-файлу ([+fileVersion+]). Будь ласка, переконайтеся в тому, що версії ідентичні." ; \ No newline at end of file diff --git a/install/lang/hebrew.inc.php b/install/lang/hebrew.inc.php old mode 100644 new mode 100755 index a45823f5..76723846 --- a/install/lang/hebrew.inc.php +++ b/install/lang/hebrew.inc.php @@ -113,10 +113,10 @@ $_lang["language_code"] = 'he'; $_lang["loading"] = 'טוען...'; $_lang["modules"] = 'מודולים'; -$_lang["modx_footer1"] = '© 2005-2014 the MODX Content Management Framework (CMF) project. All rights reserved. MODX is licensed under the GNU GPL.'; +$_lang["modx_footer1"] = '© 2005-2014 the MODX Content Management Framework (CMF) project. All rights reserved. MODX is licensed under the GNU GPL.'; $_lang["modx_footer2"] = 'MODX is free software. We encourage you to be creative and make use of MODX in any way you see fit. Just make sure that if you do make changes and decide to redistribute your modified MODX, that you keep the source code free!'; $_lang["modx_install"] = 'MODX » Install'; -$_lang["modx_requires_php"] = ', and MODX requires PHP 5.0.0 or later'; +$_lang["modx_requires_php"] = ', and MODX requires PHP [+min_version+] or later'; $_lang["mysql_5051"] = ' MySQL server version is 5.0.51!'; $_lang["mysql_5051_warning"] = 'There are known issues with MySQL 5.0.51. It is recommended that you upgrade before continuing.'; $_lang["mysql_version_is"] = ' Your MySQL version is: '; diff --git a/install/lang/nederlands-utf8.inc.php b/install/lang/nederlands-utf8.inc.php index 70c2855f..f462d05b 100644 --- a/install/lang/nederlands-utf8.inc.php +++ b/install/lang/nederlands-utf8.inc.php @@ -113,10 +113,10 @@ $_lang["language_code"] = 'en'; $_lang["loading"] = 'Laden...'; $_lang["modules"] = 'Modules'; -$_lang["modx_footer1"] = '© 2005-2014 MODX Content Management Framework (CMF) project. Alle rechten voorbehouden. MODX is gelicenseerd onder de GNU GPL.'; +$_lang["modx_footer1"] = '© 2005-2014 - MODX Content Management Framework (CMF) project. Alle rechten voorbehouden. MODX is licensed under the GNU GPL.'; $_lang["modx_footer2"] = 'MODX is gratis software. Wij raden u aan om creatief te zijn en gebruik te maken van MODX op je eigen manier. Maar zorg ervoor dat als je wijzigingen uitvoert, dat je de broncode vrij houdt!'; $_lang["modx_install"] = 'MODX » Installeren'; -$_lang["modx_requires_php"] = ', en MODX heeft PHP [+min_version+] of nieuwer nodig'; +$_lang["modx_requires_php"] = ', en MODX heeft minimaal PHP [+min_version+] versie nodig'; $_lang["mysql_5051"] = 'MySQL server versie is 5.0.51!'; $_lang["mysql_5051_warning"] = 'Er zijn bekende problemen met MySQL 5.0.51. Het wordt aanbevolen dat u een upgrade uitvoert voordat u verder gaat.'; $_lang["mysql_version_is"] = 'Uw MySQL versie is:'; diff --git a/install/lang/portuguese-br-utf8.inc.php b/install/lang/portuguese-br-utf8.inc.php index 175779f3..1f62eabe 100644 --- a/install/lang/portuguese-br-utf8.inc.php +++ b/install/lang/portuguese-br-utf8.inc.php @@ -113,7 +113,7 @@ $_lang["language_code"] = 'pt'; $_lang["loading"] = 'Carregando...'; $_lang["modules"] = 'Modulos'; -$_lang["modx_footer1"] = '© 2005-2014 the MODX Content Management Framework (CMF) project. All rights reserved. MODX is licensed under the GNU GPL.'; +$_lang["modx_footer1"] = '© 2005-2014 o projeto MODX Content Mangement Framework (CMF). Todos os direitos reservados. MODX é licensiado pela GNU GPL.'; $_lang["modx_footer2"] = 'MODX é um software livre. Nós indicamos o uso do MODX do modo que for mais conveniente para você. Apenas, sempre que redistribuir versões modificadas do MODX incluir uma cópia original do código-fonte gratuitamente!'; $_lang["modx_install"] = 'MODX » Instalação'; $_lang["modx_requires_php"] = ', e o MODX requer PHP [+min_version+] ou mais recente'; diff --git a/install/lang/spanish-utf8.inc.php b/install/lang/spanish-utf8.inc.php index 0288660d..f7eeb0ae 100644 --- a/install/lang/spanish-utf8.inc.php +++ b/install/lang/spanish-utf8.inc.php @@ -113,7 +113,7 @@ $_lang["language_code"] = 'es'; $_lang["loading"] = 'Cargando...'; $_lang["modules"] = 'Módulos'; -$_lang["modx_footer1"] = '© 2005-2014 del proyecto de MODX. Todos los derechos reservados. MODX tiene licencia GPL de GNU.'; +$_lang["modx_footer1"] = '© 2005-2014 del proyecto de MODX Content Management Framework (CMF). Todos los derechos reservados. MODX tiene licencia GPL de GNU.'; $_lang["modx_footer2"] = 'MODX es software gratuito. Te invitamos a ser creativo y usarlo de cualquier manera que se te antoje. Sólo asegura que si haces cambios y decides distribuir una versión modificada de MODX que el código fuente siga siendo gratis.'; $_lang["modx_install"] = 'MODX » Instalar'; $_lang["modx_requires_php"] = ', y MODX requiere de PHP versión [+min_version+] o mayor'; diff --git a/install/setup.data.sql b/install/setup.data.sql index 1af98f00..920e470f 100644 --- a/install/setup.data.sql +++ b/install/setup.data.sql @@ -34,7 +34,7 @@ REPLACE INTO `{PREFIX}documentgroup_names` VALUES ('1','Site Admin Pages','0','0 # Dumping data for table `modx_site_content` # -REPLACE INTO `{PREFIX}site_content` VALUES ('1','document','text/html','Home','Welcome to MODX','Introduction to MODX','index','','1','0','0','0','0','Create and do amazing things with MODX','

Install Successful!

\n

You have successfully installed and configured MODX. We hope you find this site an adequate starting configuration for many small business, organization or personal websites; just change the template and content, and you\'ll be good to go! This site is preconfigured with a variety of options we hope are helpful, relevant and just plain cool for many marketing or personal sites:

\n
    \n
  • Simple Blog. When logged into your site, you\'ll be able to create new entries from the front end. This can also be turned into a News publishing or PR publishing system. View example blog
  • \n
  • Easy Comments. When logged into your site, your registered site users can comment on your posts. View example
  • \n
  • RSS Feeds. Your site visitors can stay up to date using your site feeds. View RSS feed
  • \n
  • Automatic User Registration. Those that wish to comment on blogs must first create an account. This comes pre-configured with a \"Captcha\" anti-robot registration feature. View registration form
  • \n
  • QuickEdit. When you\'re logged into the manager, you can edit a page directly from the front end! More about CMS features
  • \n
  • Integrated Site Search. Allows visitors to search only the pages you wish them to search. Uses Ajax to display results without loading a new page.
  • \n
  • Powerful Navigation Builder. Duplicate or build virtually any navigation system with our dynamic menu builder code. The menu above, for example. More about menu features
  • \n
  • Mootools enabled. You\'re on your way to Web 2.0 and AJAX goodness. More about Ajax features
  • \n
  • Custom \"page not found (404)\" page. Help visitors who go astray to find what they\'re looking for. View 404 page
  • \n
  • Contact Us form. A highly configurable contact form you should customize to point to the right email address. Comes pre-configured to prevent mail-form-injection so your site does not become a source for spam. View form
  • \n
  • Newest documents list. Shows your visitor the most recently added pages (configurable).
  • \n
  • Customizable Content Manager. Preview uploaded images, hide or rename fields and lots more. See ManagerManager\'s documentation for details and instructions. Quick start: ManagerManager by default will look for \"rules\" in a Chunk named \"mm_rules\". Simply copy or rename the Chunk named \"mm_demo_rules\" to \"mm_rules\" and try it out!
  • \n
\n

To log into the MODX Control Panel and start customizing this site, point your browser to [(site_manager_url)].

','1','4','0','1','1','1','1144904400','1','1378084284','0','0','0','0','0','Home','0','0','0','0','0','0','0','1'); +REPLACE INTO `{PREFIX}site_content` VALUES ('1','document','text/html','Home','Welcome to MODX','Introduction to MODX','index','','1','0','0','0','0','Create and do amazing things with MODX','

Install Successful!

\n

You have successfully installed and configured MODX. We hope you find this site an adequate starting configuration for many small business, organization or personal websites; just change the template and content, and you\'ll be good to go! This site is preconfigured with a variety of options we hope are helpful, relevant and just plain cool for many marketing or personal sites:

\n
    \n
  • Simple Blog. When logged into your site, you\'ll be able to create new entries from the front end. This can also be turned into a News publishing or PR publishing system. View example blog
  • \n
  • Easy Comments. When logged into your site, your registered site users can comment on your posts. View example
  • \n
  • RSS Feeds. Your site visitors can stay up to date using your site feeds. View RSS feed
  • \n
  • Automatic User Registration. Those that wish to comment on blogs must first create an account. This comes pre-configured with a \"Captcha\" anti-robot registration feature. View registration form
  • \n
  • QuickEdit. When you\'re logged into the manager, you can edit a page directly from the front end! More about CMS features
  • \n
  • Integrated Site Search. Allows visitors to search only the pages you wish them to search. Uses Ajax to display results without loading a new page.
  • \n
  • Powerful Navigation Builder. Duplicate or build virtually any navigation system with our dynamic menu builder code. The menu above, for example. More about menu features
  • \n
  • Mootools enabled. You\'re on your way to Web 2.0 and AJAX goodness. More about Ajax features
  • \n
  • Custom \"page not found (404)\" page. Help visitors who go astray to find what they\'re looking for. View 404 page
  • \n
  • Contact Us form. A highly configurable contact form you should customize to point to the right email address. Comes pre-configured to prevent mail-form-injection so your site does not become a source for spam. View form
  • \n
  • Newest documents list. Shows your visitor the most recently added pages (configurable).
  • \n
  • Customizable Content Manager. Preview uploaded images, hide or rename fields and lots more. See ManagerManager\'s documentation for details and instructions. Quick start: ManagerManager by default will look for \"rules\" in a Chunk named \"mm_rules\". Simply copy or rename the Chunk named \"mm_demo_rules\" to \"mm_rules\" and try it out!
  • \n
\n

To log into the MODX Control Panel and start customizing this site, point your browser to [(site_manager_url)].

','1','4','0','1','1','1','1144904400','1','1378084284','0','0','0','0','0','Home','0','0','0','0','0','0','0','1'); REPLACE INTO `{PREFIX}site_content` VALUES ('2','document','text/html','Blog','My Blog','','blog','','1','0','0','0','1','','[[Ditto? &parents=`2` &display=`2` &removeChunk=`Comments` &tpl=`ditto_blog` &paginate=`1` &extenders=`summary,dateFilter` &paginateAlwaysShowLinks=`1` &tagData=`documentTags`]]\n\n

Showing [+start+] - [+stop+] of [+total+] Articles

\n\n
[+previous+] [+pages+] [+next+]
\n\n
 
\n\n[[Reflect? &config=`wordpress` &dittoSnippetParameters=`parents:2` &id=`wp` &getDocuments=`1`]]','1','4','1','0','0','1','1144904400','1','1159818696','0','0','0','0','0','Blog','0','0','0','0','0','0','0','1'); diff --git a/manager/actions/eventlog_details.dynamic.php b/manager/actions/eventlog_details.dynamic.php index ddb3863b..57174db3 100644 --- a/manager/actions/eventlog_details.dynamic.php +++ b/manager/actions/eventlog_details.dynamic.php @@ -5,18 +5,7 @@ } // get id -if(isset($_REQUEST['id'])) { - $id = intval($_REQUEST['id']); -} -else { - $id=0; -} - -// make sure the id's a number -if(!is_numeric($id)) { - $modx->webAlertAndQuit("Passed ID is NaN!"); -} - +$id = isset($_REQUEST['id']) ? intval($_REQUEST['id']) : 0; $ds = $modx->db->select( 'el.*, IFNULL(wu.username,mu.username) as username', diff --git a/manager/actions/mutate_content.dynamic.php b/manager/actions/mutate_content.dynamic.php index 789d5d90..ed47c65a 100644 --- a/manager/actions/mutate_content.dynamic.php +++ b/manager/actions/mutate_content.dynamic.php @@ -37,9 +37,7 @@ } -if (isset($_REQUEST['id'])) - $id = (int)$_REQUEST['id']; -else $id = 0; +$id = isset($_REQUEST['id']) ? intval($_REQUEST['id']) : 0; // Get table names (alphabetical) $tbl_active_users = $modx->getFullTableName('active_users'); @@ -765,7 +763,7 @@ function decode(s) { // post back value if(array_key_exists('tv'.$row['id'], $_POST)) { - if($row['type'] == 'listbox-multiple') { + if(is_array($_POST['tv'.$row['id']])) { $tvPBV = implode('||', $_POST['tv'.$row['id']]); } else { $tvPBV = $_POST['tv'.$row['id']]; diff --git a/manager/actions/mutate_htmlsnippet.dynamic.php b/manager/actions/mutate_htmlsnippet.dynamic.php index f01baf69..abb927b2 100644 --- a/manager/actions/mutate_htmlsnippet.dynamic.php +++ b/manager/actions/mutate_htmlsnippet.dynamic.php @@ -16,9 +16,7 @@ $modx->webAlertAndQuit($_lang["error_no_privileges"]); } -if (isset($_REQUEST['id'])) - $id = (int)$_REQUEST['id']; -else $id = 0; +$id = isset($_REQUEST['id']) ? intval($_REQUEST['id']) : 0; // Get table names (alphabetical) $tbl_active_users = $modx->getFullTableName('active_users'); diff --git a/manager/actions/mutate_module.dynamic.php b/manager/actions/mutate_module.dynamic.php index 89939c95..875bc51f 100644 --- a/manager/actions/mutate_module.dynamic.php +++ b/manager/actions/mutate_module.dynamic.php @@ -16,9 +16,7 @@ $modx->webAlertAndQuit($_lang["error_no_privileges"]); } -if (isset($_REQUEST['id'])) - $id = (int)$_REQUEST['id']; -else $id = 0; +$id = isset($_REQUEST['id']) ? intval($_REQUEST['id']) : 0; // Get table names (alphabetical) $tbl_active_users = $modx->getFullTableName('active_users'); @@ -44,16 +42,11 @@ function createGUID(){ // Check to see the editor isn't locked $rs = $modx->db->select('username', $tbl_active_users, "action=108 AND id='{$id}' AND internalKey!='".$modx->getLoginUserID()."'"); - if ($username = $modx->db->getRow($rs)) { + if ($username = $modx->db->getValue($rs)) { $modx->webAlertAndQuit(sprintf($_lang['lock_msg'], $username, $_lang['module'])); } // end check for lock -// make sure the id's a number -if (!is_numeric($id)) { - $modx->webAlertAndQuit($_lang["error_id_nan"]); -} - if (isset($_GET['id'])) { $rs = $modx->db->select('*', $tbl_site_modules, "id='{$id}'"); $content = $modx->db->getRow($rs); diff --git a/manager/actions/mutate_module_resources.dynamic.php b/manager/actions/mutate_module_resources.dynamic.php index b70efb51..f4e02b84 100644 --- a/manager/actions/mutate_module_resources.dynamic.php +++ b/manager/actions/mutate_module_resources.dynamic.php @@ -5,9 +5,7 @@ $modx->webAlertAndQuit($_lang["error_no_privileges"]); } -if (isset($_REQUEST['id'])) - $id = (int)$_REQUEST['id']; -else $id = 0; +$id = isset($_REQUEST['id']) ? intval($_REQUEST['id']) : 0; // Get table names (alphabetical) $tbl_active_users = $modx->getFullTableName('active_users'); @@ -30,11 +28,6 @@ } // end check for lock -// make sure the id's a number -if(!is_numeric($id)) { - $modx->webAlertAndQuit($_lang["error_id_nan"]); -} - // take action switch ($_REQUEST['op']) { case 'add': diff --git a/manager/actions/mutate_plugin.dynamic.php b/manager/actions/mutate_plugin.dynamic.php index a70b4653..6e199ef9 100644 --- a/manager/actions/mutate_plugin.dynamic.php +++ b/manager/actions/mutate_plugin.dynamic.php @@ -25,7 +25,7 @@ // check to see the plugin editor isn't locked $rs = $modx->db->select('username',$tbl_active_users,"action='102' AND id='{$id}' AND internalKey!='".$modx->getLoginUserID()."'"); - if ($username = $modx->db->getRow($rs)) { + if ($username = $modx->db->getValue($rs)) { $modx->webAlertAndQuit(sprintf($_lang["lock_msg"],$username,$_lang['plugin'])); } // end check for lock diff --git a/manager/actions/mutate_template_tv_rank.dynamic.php b/manager/actions/mutate_template_tv_rank.dynamic.php index 3ed82efe..fa9589b1 100644 --- a/manager/actions/mutate_template_tv_rank.dynamic.php +++ b/manager/actions/mutate_template_tv_rank.dynamic.php @@ -4,9 +4,7 @@ $modx->webAlertAndQuit($_lang["error_no_privileges"]); } -if (!is_numeric($_REQUEST['id'])) { - $modx->webAlertAndQuit($_lang["error_id_nan"]); -} +$id = isset($_REQUEST['id']) ? intval($_REQUEST['id']) : 0; $tbl_site_templates = $modx->getFullTableName('site_templates'); $tbl_site_tmplvar_templates = $modx->getFullTableName('site_tmplvar_templates'); @@ -24,7 +22,7 @@ foreach($orderArray as $key => $item) { if (strlen($item) == 0) continue; $tmplvar = ltrim($item, 'item_'); - $modx->db->update(array('rank'=>$key), $tbl_site_tmplvar_templates, "tmplvarid='{$tmplvar}' AND templateid='{$_REQUEST['id']}'"); + $modx->db->update(array('rank'=>$key), $tbl_site_tmplvar_templates, "tmplvarid='{$tmplvar}' AND templateid='{$id}'"); } } // empty cache @@ -36,7 +34,7 @@ "{$tbl_site_tmplvar_templates} AS tr INNER JOIN {$tbl_site_tmplvars} AS tv ON tv.id = tr.tmplvarid INNER JOIN {$tbl_site_templates} AS tm ON tr.templateid = tm.id", - "tr.templateid='".(int)$_REQUEST['id']."'", + "tr.templateid='{$id}'", "tr.rank, tv.rank, tv.id" ); $limit = $modx->db->getRecordCount($rs); @@ -130,7 +128,7 @@ function save() { diff --git a/manager/actions/mutate_tmplvars.dynamic.php b/manager/actions/mutate_tmplvars.dynamic.php index 52d0d9a5..686a4d36 100644 --- a/manager/actions/mutate_tmplvars.dynamic.php +++ b/manager/actions/mutate_tmplvars.dynamic.php @@ -7,8 +7,7 @@ $modx->webAlertAndQuit($_lang["error_no_privileges"]); } -if(isset($_REQUEST['id'])) $id = (int) $_REQUEST['id']; -else $id = 0; +$id = isset($_REQUEST['id']) ? intval($_REQUEST['id']) : 0; $tbl_site_tmplvars = $modx->getFullTableName('site_tmplvars'); $tbl_site_templates = $modx->getFullTableName('site_templates'); @@ -22,12 +21,6 @@ } // end check for lock -// make sure the id's a number -if(!is_numeric($id)) -{ - $modx->webAlertAndQuit($_lang["error_id_nan"]); -} - global $content; $content = array(); if(isset($_GET['id'])) diff --git a/manager/actions/mutate_user.dynamic.php b/manager/actions/mutate_user.dynamic.php index 3d824aa6..650efa81 100644 --- a/manager/actions/mutate_user.dynamic.php +++ b/manager/actions/mutate_user.dynamic.php @@ -205,7 +205,7 @@ function showHide(what, onoff){ echo implode("", $evtOut); ?> - + " />

@@ -774,7 +774,7 @@ function SetUrl(url, width, height, alt){ $groupsarray = array (); if ($_GET['a'] == '12') { // only do this bit if the user is being edited - $rs = $modx->db->select('user_group', $modx->getFullTableName('member_groups'), "member='{$_GET['id']}'"); + $rs = $modx->db->select('user_group', $modx->getFullTableName('member_groups'), "member='{$user}'"); $groupsarray = $modx->db->getColumn('user_group', $rs); } diff --git a/manager/actions/mutate_web_user.dynamic.php b/manager/actions/mutate_web_user.dynamic.php index 22a5158b..ecad9dd8 100644 --- a/manager/actions/mutate_web_user.dynamic.php +++ b/manager/actions/mutate_web_user.dynamic.php @@ -21,7 +21,7 @@ // check to see the snippet editor isn't locked $rs = $modx->db->select('username', $modx->getFullTableName('active_users'), "action=88 AND id='{$user}' AND internalKey!='".$modx->getLoginUserID()."'"); - if ($username = $modx->db->getRow($rs)) { + if ($username = $modx->db->getValue($rs)) { $modx->webAlertAndQuit(sprintf($_lang["lock_msg"], $username, "web user")); } // end check for lock @@ -192,7 +192,7 @@ function showHide(what, onoff){ if(is_array($evtOut)) echo implode("",$evtOut); ?> - + " />

@@ -502,7 +502,7 @@ function SetUrl(url, width, height, alt){ $groupsarray = array(); if($_GET['a']=='88') { // only do this bit if the user is being edited - $rs = $modx->db->select('webgroup', $modx->getFullTableName('web_groups'), "webuser='{$_GET['id']}'"); + $rs = $modx->db->select('webgroup', $modx->getFullTableName('web_groups'), "webuser='{$user}'"); $groupsarray = $modx->db->getColumn('webgroup', $rs); } diff --git a/manager/actions/search.static.php b/manager/actions/search.static.php index 0aa4f17a..27afd806 100644 --- a/manager/actions/search.static.php +++ b/manager/actions/search.static.php @@ -22,6 +22,23 @@ + + +   +db->select('*',$modx->getFullTableName('site_templates')); + $option[] = ''; + $option[] = ''; + while($row=$modx->db->getRow($rs)) + { + $templatename = htmlspecialchars($row['templatename'], ENT_QUOTES, $modx->config['modx_charset']); + $option[] = sprintf('', $row['id'], $templatename, $row['id']); + } + $tpls = sprintf('', join("\n",$option)); +?> + + +   @@ -70,6 +87,7 @@ db->escape($_REQUEST['alias']); $searchcontent = $modx->db->escape($_REQUEST['content']); @@ -88,6 +106,7 @@ $tbl_site_content = $modx->getFullTableName('site_content'); $sqladd .= $searchid!=='0' ? " AND id='{$searchid}' " : ''; + $sqladd .= $templateid!=='0' ? " AND template='{$templateid}' " : ''; $sqladd .= $searchtitle!='' ? " AND pagetitle LIKE '%{$searchtitle}%' " : ''; $sqladd .= $searchlongtitle!='' ? " AND longtitle LIKE '%{$searchlongtitle}%' " : ''; $sqladd .= $search_alias!='' ? " AND alias LIKE '%{$search_alias}%' " : ''; diff --git a/manager/actions/web_user_management.static.php b/manager/actions/web_user_management.static.php index 8bf5dac9..c01c1333 100644 --- a/manager/actions/web_user_management.static.php +++ b/manager/actions/web_user_management.static.php @@ -110,7 +110,7 @@ function menuAction(a) { "wu.id, wu.username, wua.fullname, wua.email, ELT(wua.gender, '{$_lang['user_male']}', '{$_lang['user_female']}', '{$_lang['user_other']}') AS gender, IF(wua.blocked,'{$_lang['yes']}','-') as 'blocked'", $modx->getFullTableName("web_users")." wu INNER JOIN ".$modx->getFullTableName("web_user_attributes")." wua ON wua.internalKey=wu.id", - ($sqlQuery ? "(wu.username LIKE '{$sqlQuery}%') OR (wua.fullname LIKE '%{$sqlQuery}%') OR (wua.email LIKE '{$sqlQuery}%')":""), + ($sqlQuery ? "(wu.username LIKE '{$sqlQuery}%') OR (wua.fullname LIKE '%{$sqlQuery}%') OR (wua.email LIKE '%{$sqlQuery}%')":""), 'username' ); include_once MODX_MANAGER_PATH."includes/controls/datagrid.class.php"; diff --git a/manager/includes/controls/datagrid.class.php b/manager/includes/controls/datagrid.class.php index 9c30ef0f..bbeb985f 100644 --- a/manager/includes/controls/datagrid.class.php +++ b/manager/includes/controls/datagrid.class.php @@ -160,7 +160,7 @@ function render(){ $this->_alt = 0; $this->_total = 0; - $this->_isDataset = is_resource($this->ds); // if not dataset then treat as array + $this->_isDataset = $modx->db->isResult($this->ds); // if not dataset then treat as array if(!$cssStyle && !$cssClass) $cssStyle = "style='width:100%;border:1px solid silver;font-family:verdana,arial; font-size:11px;'"; if(!$columnHeaderStyle && !$columnHeaderClass) $columnHeaderStyle = "style='color:black;background-color:silver'"; diff --git a/manager/includes/controls/datasetpager.class.php b/manager/includes/controls/datasetpager.class.php index a55fdd6f..e379a630 100644 --- a/manager/includes/controls/datasetpager.class.php +++ b/manager/includes/controls/datasetpager.class.php @@ -85,7 +85,7 @@ function setRenderPagerFnc($fncName, $args = ""){ function render(){ global $modx,$_PAGE; - $isDataset = is_resource($this->ds); + $isDataset = $modx->db->isResult($this->ds); if (!$this->selPageStyle) $this->selPageStyle = "font-weight:bold"; diff --git a/manager/includes/extenders/dbapi.mysql.class.inc.php b/manager/includes/extenders/dbapi.mysql.class.inc.php index 31eb5ad7..667682e9 100644 --- a/manager/includes/extenders/dbapi.mysql.class.inc.php +++ b/manager/includes/extenders/dbapi.mysql.class.inc.php @@ -300,6 +300,14 @@ function insert($fields, $intotable, $fromfields = "*", $fromtable = "", $where return $lid; } } + /** + * @name: isResult + * + */ + function isResult($rs) { + return is_resource($rs); + } + /** * @name: freeResult * diff --git a/manager/includes/extenders/dbapi.mysqli.class.inc.php b/manager/includes/extenders/dbapi.mysqli.class.inc.php new file mode 100644 index 00000000..7a8a3810 --- /dev/null +++ b/manager/includes/extenders/dbapi.mysqli.class.inc.php @@ -0,0 +1,420 @@ +config['host'] = $host ? $host : $GLOBALS['database_server']; + $this->config['dbase'] = $dbase ? $dbase : $GLOBALS['dbase']; + $this->config['user'] = $uid ? $uid : $GLOBALS['database_user']; + $this->config['pass'] = $pwd ? $pwd : $GLOBALS['database_password']; + $this->config['charset'] = $charset ? $charset : $GLOBALS['database_connection_charset']; + $this->config['connection_method'] = $this->_dbconnectionmethod = (isset($GLOBALS['database_connection_method']) ? $GLOBALS['database_connection_method'] : $connection_method); + $this->config['table_prefix'] = ($pre !== NULL) ? $pre : $GLOBALS['table_prefix']; + } + + function connect($host = '', $dbase = '', $uid = '', $pwd = '', $tmp = 0) { + global $modx; + $uid = $uid ? $uid : $this->config['user']; + $pwd = $pwd ? $pwd : $this->config['pass']; + $host = $host ? $host : $this->config['host']; + $dbase = $dbase ? $dbase : $this->config['dbase']; + $dbase = trim($dbase, '`'); // remove the `` chars + $charset = $this->config['charset']; + $connection_method = $this->config['connection_method']; + $tstart = $modx->getMicroTime(); + $safe_count = 0; + do { + $this->conn = new mysqli($host, $uid, $pwd, $dbase); + if ($this->conn->connect_error) { + $this->conn = null; + if (isset($modx->config['send_errormail']) && $modx->config['send_errormail'] !== '0') { + if ($modx->config['send_errormail'] <= 2) { + $logtitle = 'Failed to create the database connection!'; + $request_uri = htmlspecialchars($_SERVER['REQUEST_URI'], ENT_QUOTES); + $ua = htmlspecialchars($_SERVER['HTTP_USER_AGENT'], ENT_QUOTES); + $referer = htmlspecialchars($_SERVER['HTTP_REFERER'], ENT_QUOTES); + $modx->sendmail(array( + 'subject' => 'Missing to create the database connection! from ' . $modx->config['site_name'], + 'body' => "{$logtitle}\n{$request_uri}\n{$ua}\n{$referer}", + 'type' => 'text' + )); + } + } + sleep(1); + $safe_count++; + } + } while (!$this->conn && $safe_count<3); + if (!$this->conn) { + $modx->messageQuit("Failed to create the database connection!"); + exit; + } else { + $this->conn->query("{$connection_method} {$charset}"); + $tend = $modx->getMicroTime(); + $totaltime = $tend - $tstart; + if ($modx->dumpSQL) { + $modx->queryCode .= "
Database connection" . sprintf("Database connection was created in %2.4f s", $totaltime) . "

"; + } + $this->conn->set_charset($this->config['charset']); + $this->isConnected = true; + $modx->queryTime += $totaltime; + } + } + + function disconnect() { + $this->conn->close(); + $this->conn = null; + $this->isConnected = false; + } + + function escape($s, $safecount=0) { + $safecount++; + if (1000<$safecount) exit("Too many loops '{$safecount}'"); + if (empty ($this->conn) || !is_object($this->conn)) { + $this->connect(); + } + if (is_array($s)) { + if (count($s) === 0) { + $s = ''; + } else { + foreach ($s as $i=>$v) { + $s[$i] = $this->escape($v, $safecount); + } + } + } else { + $s = $this->conn->escape_string($s); + } + return $s; + } + + function query($sql) { + global $modx; + if (empty ($this->conn) || !is_object($this->conn)) { + $this->connect(); + } + $tstart = $modx->getMicroTime(); + if (!($result = $this->conn->query($sql))) { + $modx->messageQuit("Execution of a query to the database failed - " . $this->getLastError(), $sql); + } else { + $tend = $modx->getMicroTime(); + $totaltime = $tend - $tstart; + $modx->queryTime = $modx->queryTime + $totaltime; + if ($modx->dumpSQL) { + $debug = debug_backtrace(); + array_shift($debug); + $debug_path = array(); + foreach ($debug as $line) $debug_path[] = $line['function']; + $debug_path = implode(' > ', array_reverse($debug_path)); + $modx->queryCode .= "
Query " . ($modx->executedQueries + 1) . " - " . sprintf("%2.2f ms", $totaltime*1000) . ""; + $modx->queryCode .= $sql . '

'; + if ($modx->event->name) $modx->queryCode .= 'Current Event => ' . $modx->event->name . '
'; + if ($modx->event->activePlugin) $modx->queryCode .= 'Current Plugin => ' . $modx->event->activePlugin . '
'; + if ($modx->currentSnippet) $modx->queryCode .= 'Current Snippet => ' . $modx->currentSnippet . '
'; + if (stripos($sql, 'select')===0) $modx->queryCode .= 'Record Count => ' . $this->getRecordCount($result) . '
'; + else $modx->queryCode .= 'Affected Rows => ' . $this->getAffectedRows() . '
'; + $modx->queryCode .= 'Functions Path => ' . $debug_path . '
'; + $modx->queryCode .= "

"; + } + $modx->executedQueries = $modx->executedQueries + 1; + return $result; + } + } + + function delete($from, $where='', $orderby='', $limit = '') { + global $modx; + if (!$from) { + $modx->messageQuit("Empty \$from parameters in DBAPI::delete()."); + } else { + $from = $this->replaceFullTableName($from); + $where = !empty($where) ? (strpos(ltrim($where), "WHERE")!==0 ? "WHERE {$where}" : $where) : ''; + $orderby = !empty($orderby) ? (strpos(ltrim($orderby), "ORDER BY")!==0 ? "ORDER BY {$orderby}" : $orderby) : ''; + $limit = !empty($limit) ? (strpos(ltrim($limit), "LIMIT")!==0 ? "LIMIT {$limit}" : $limit) : ''; + return $this->query("DELETE FROM {$from} {$where} {$orderby} {$limit}"); + } + } + + function select($fields = "*", $from = "", $where = "", $orderby = "", $limit = "") { + global $modx; + if (!$from) { + $modx->messageQuit("Empty \$from parameters in DBAPI::select()."); + } else { + $from = $this->replaceFullTableName($from); + $where = !empty($where) ? (strpos(ltrim($where), "WHERE")!==0 ? "WHERE {$where}" : $where) : ''; + $orderby = !empty($orderby) ? (strpos(ltrim($orderby), "ORDER BY")!==0 ? "ORDER BY {$orderby}" : $orderby) : ''; + $limit = !empty($limit) ? (strpos(ltrim($limit), "LIMIT")!==0 ? "LIMIT {$limit}" : $limit) : ''; + return $this->query("SELECT {$fields} FROM {$from} {$where} {$orderby} {$limit}"); + } + } + + function update($fields, $table, $where = "") { + global $modx; + if (!$table) { + $modx->messageQuit("Empty \$table parameter in DBAPI::update()."); + } else { + $table = $this->replaceFullTableName($table); + if (is_array($fields)) { + foreach ($fields as $key => $value) { + $fields[$key] = "`{$key}` = '{$value}'"; + } + $fields = implode(",", $fields); + } + $where = !empty($where) ? (strpos(ltrim($where), "WHERE")!==0 ? "WHERE {$where}" : $where) : ''; + return $this->query("UPDATE {$table} SET {$fields} {$where}"); + } + } + + function insert($fields, $intotable, $fromfields = "*", $fromtable = "", $where = "", $limit = "") { + global $modx; + if (!$intotable) { + $modx->messageQuit("Empty \$intotable parameters in DBAPI::insert()."); + } else { + $intotable = $this->replaceFullTableName($intotable); + if (!is_array($fields)) { + $this->query("INSERT INTO {$intotable} {$fields}"); + } else { + if (empty($fromtable)) { + $fields = "(`".implode("`, `", array_keys($fields))."`) VALUES('".implode("', '", array_values($fields))."')"; + $rt = $this->query("INSERT INTO {$intotable} {$fields}"); + } else { + $fromtable = $this->replaceFullTableName($fromtable); + $fields = "(".implode(",", array_keys($fields)).")"; + $where = !empty($where) ? (strpos(ltrim($where), "WHERE")!==0 ? "WHERE {$where}" : $where) : ''; + $limit = !empty($limit) ? (strpos(ltrim($limit), "LIMIT")!==0 ? "LIMIT {$limit}" : $limit) : ''; + $rt = $this->query("INSERT INTO {$intotable} {$fields} SELECT {$fromfields} FROM {$fromtable} {$where} {$limit}"); + } + } + if (($lid = $this->getInsertId())===false) $modx->messageQuit("Couldn't get last insert key!"); + return $lid; + } + } + + function isResult($rs) { + return is_object($rs); + } + + function freeResult($rs) { + $rs->free_result(); + } + + function numFields($rs) { + return $rs->field_count; + } + + function fieldName($rs,$col=0) { + $field = $rs->fetch_field_direct($col); + return $field->name; + } + + function selectDb($name) { + $this->conn->select_db($name); + } + + + function getInsertId($conn=NULL) { + if (!is_object($conn)) $conn =& $this->conn; + return $conn->insert_id; + } + + function getAffectedRows($conn=NULL) { + if (!is_object($conn)) $conn =& $this->conn; + return $conn->affected_rows; + } + + function getLastError($conn=NULL) { + if (!is_object($conn)) $conn =& $this->conn; + return $conn->error; + } + + function getRecordCount($ds) { + return (is_object($ds)) ? $ds->num_rows : 0; + } + + function getRow($ds, $mode = 'assoc') { + if (is_object($ds)) { + if ($mode == 'assoc') { + return $ds->fetch_assoc(); + } elseif ($mode == 'num') { + return $ds->fetch_row(); + } elseif ($mode == 'object') { + return $ds->fetch_object(); + } elseif ($mode == 'both') { + return $ds->fetch_array(MYSQLI_BOTH); + } else { + global $modx; + $modx->messageQuit("Unknown get type ($mode) specified for fetchRow - must be empty, 'assoc', 'num' or 'both'."); + } + } + } + + function getColumn($name, $dsq) { + if (!is_object($dsq)) { + $dsq = $this->query($dsq); + } + if ($dsq) { + $col = array (); + while ($row = $this->getRow($dsq)) { + $col[] = $row[$name]; + } + return $col; + } + } + + function getColumnNames($dsq) { + if (!is_object($dsq)) { + $dsq = $this->query($dsq); + } + if ($dsq) { + $names = array (); + $limit = $this->numFields($dsq); + for ($i = 0; $i < $limit; $i++) { + $names[] = $this->fieldName($dsq, $i); + } + return $names; + } + } + + function getValue($dsq) { + if (!is_object($dsq)) { + $dsq = $this->query($dsq); + } + if ($dsq) { + $r = $this->getRow($dsq, "num"); + return $r[0]; + } + } + + function getXML($dsq) { + if (!is_object($dsq)) { + $dsq = $this->query($dsq); + } + $xmldata = "\r\n\r\n"; + while ($row = $this->getRow($dsq, "both")) { + $xmldata .= "\r\n"; + for ($j = 0; $line = each($row); $j++) { + if ($j % 2) { + $xmldata .= "<$line[0]>$line[1]\r\n"; + } + } + $xmldata .= "\r\n"; + } + $xmldata .= "\r\n"; + return $xmldata; + } + + function getTableMetaData($table) { + $metadata = false; + if (!empty ($table)) { + $sql = "SHOW FIELDS FROM $table"; + if ($ds = $this->query($sql)) { + while ($row = $this->getRow($ds)) { + $fieldName = $row['Field']; + $metadata[$fieldName] = $row; + } + } + } + return $metadata; + } + + function prepareDate($timestamp, $fieldType = 'DATETIME') { + $date = ''; + if (!$timestamp === false && $timestamp > 0) { + switch ($fieldType) { + case 'DATE' : + $date = date('Y-m-d', $timestamp); + break; + case 'TIME' : + $date = date('H:i:s', $timestamp); + break; + case 'YEAR' : + $date = date('Y', $timestamp); + break; + default : + $date = date('Y-m-d H:i:s', $timestamp); + break; + } + } + return $date; + } + + function getHTMLGrid($dsq, $params) { + if (!is_object($dsq)) { + $dsq = $this->query($dsq); + } + if ($dsq) { + include_once MODX_MANAGER_PATH . 'includes/controls/datagrid.class.php'; + $grd = new DataGrid('', $dsq); + + $grd->noRecordMsg = $params['noRecordMsg']; + + $grd->columnHeaderClass = $params['columnHeaderClass']; + $grd->cssClass = $params['cssClass']; + $grd->itemClass = $params['itemClass']; + $grd->altItemClass = $params['altItemClass']; + + $grd->columnHeaderStyle = $params['columnHeaderStyle']; + $grd->cssStyle = $params['cssStyle']; + $grd->itemStyle = $params['itemStyle']; + $grd->altItemStyle = $params['altItemStyle']; + + $grd->columns = $params['columns']; + $grd->fields = $params['fields']; + $grd->colWidths = $params['colWidths']; + $grd->colAligns = $params['colAligns']; + $grd->colColors = $params['colColors']; + $grd->colTypes = $params['colTypes']; + $grd->colWraps = $params['colWraps']; + + $grd->cellPadding = $params['cellPadding']; + $grd->cellSpacing = $params['cellSpacing']; + $grd->header = $params['header']; + $grd->footer = $params['footer']; + $grd->pageSize = $params['pageSize']; + $grd->pagerLocation = $params['pagerLocation']; + $grd->pagerClass = $params['pagerClass']; + $grd->pagerStyle = $params['pagerStyle']; + return $grd->render(); + } + } + + function makeArray($rs=''){ + if (!$rs) return false; + $rsArray = array(); + while ($row = $this->getRow($rs)) { + $rsArray[] = $row; + } + return $rsArray; + } + + function getVersion() { + return $this->conn->server_info; + } + + function replaceFullTableName($str,$force=null) { + $str = trim($str); + $dbase = trim($this->config['dbase'],'`'); + $prefix = $this->config['table_prefix']; + if (!empty($force)) { + $result = "`{$dbase}`.`{$prefix}{$str}`"; + } elseif (strpos($str,'[+prefix+]')!==false) { + $result = preg_replace('@\[\+prefix\+\]([0-9a-zA-Z_]+)@', "`{$dbase}`.`{$prefix}$1`", $str); + } else { + $result = $str; + } + return $result; + } + + function optimize($table_name) { + $rs = $this->query("OPTIMIZE TABLE {$table_name}"); + if ($rs) { + $rs = $this->query("ALTER TABLE {$table_name}"); + } + return $rs; + } + + function truncate($table_name) { + $rs = $this->query("TRUNCATE {$table_name}"); + return $rs; + } +} +?> \ No newline at end of file diff --git a/manager/includes/lang/bulgarian.inc.php b/manager/includes/lang/bulgarian.inc.php index 8d110b9b..720495e0 100644 --- a/manager/includes/lang/bulgarian.inc.php +++ b/manager/includes/lang/bulgarian.inc.php @@ -856,6 +856,8 @@ $_lang["search_criteria_content_msg"] = 'Намиране на всички документи със зададения текст в тяхното съдържание.'; $_lang["search_criteria_id"] = 'Търсете по ID'; $_lang["search_criteria_id_msg"] = 'Въведете ID на документ за по-бързото му намиране.'; +$_lang["search_criteria_template_id"] = 'Search by template ID'; +$_lang["search_criteria_template_id_msg"] = 'Find all Resources using the specified template.'; $_lang["search_criteria_longtitle"] = 'Търсете по дълго заглавие'; $_lang["search_criteria_longtitle_msg"] = 'Намиране на всички документи със зададения текст в тяхното дълго заглавие.'; $_lang["search_criteria_title"] = 'Търсете по заглавие'; @@ -1192,6 +1194,7 @@ $_lang['email_method_smtp'] = 'SMTP Server'; $_lang['smtp_auth_title'] = 'SMTP-AUTH'; $_lang['smtp_host_title'] = 'SMTP host'; +$_lang['smtp_secure_title'] = 'Encrypted SMTP'; $_lang['smtp_username_title'] = 'SMTP user name'; $_lang['smtp_password_title'] = 'SMTP password'; $_lang['smtp_port_title'] = 'SMTP port'; diff --git a/manager/includes/lang/chinese.inc.php b/manager/includes/lang/chinese.inc.php index c2aa5f81..ab879b67 100644 --- a/manager/includes/lang/chinese.inc.php +++ b/manager/includes/lang/chinese.inc.php @@ -857,6 +857,8 @@ $_lang["search_criteria_content_msg"] = '寻找文件内容中有输入文字的文件'; $_lang["search_criteria_id"] = '按ID号搜索'; $_lang["search_criteria_id_msg"] = '输入文件ID号快速定位。'; +$_lang["search_criteria_template_id"] = 'Search by template ID'; +$_lang["search_criteria_template_id_msg"] = 'Find all Resources using the specified template.'; $_lang["search_criteria_longtitle"] = '按长标题搜索'; $_lang["search_criteria_longtitle_msg"] = '查询长标题里有所有输入查询字符的文档'; $_lang["search_criteria_title"] = '按标题搜索'; @@ -1193,6 +1195,7 @@ $_lang['email_method_smtp'] = 'SMTP Server'; $_lang['smtp_auth_title'] = 'SMTP-AUTH'; $_lang['smtp_host_title'] = 'SMTP host'; +$_lang['smtp_secure_title'] = 'Encrypted SMTP'; $_lang['smtp_username_title'] = 'SMTP user name'; $_lang['smtp_password_title'] = 'SMTP password'; $_lang['smtp_port_title'] = 'SMTP port'; diff --git a/manager/includes/lang/czech.inc.php b/manager/includes/lang/czech.inc.php index 41b7da9e..a3520905 100644 --- a/manager/includes/lang/czech.inc.php +++ b/manager/includes/lang/czech.inc.php @@ -860,6 +860,8 @@ $_lang["search_criteria_content_msg"] = 'Najít všechny dokumenty obsahující zadaný text.'; $_lang["search_criteria_id"] = 'Hledat podle ID'; $_lang["search_criteria_id_msg"] = 'Zadajte ID dokumentu rychlého vyhledávání.'; +$_lang["search_criteria_template_id"] = 'Search by template ID'; +$_lang["search_criteria_template_id_msg"] = 'Find all Resources using the specified template.'; $_lang["search_criteria_longtitle"] = 'Hledat podle dlouhého názvu'; $_lang["search_criteria_longtitle_msg"] = 'Najít všechny dokumenty s vloženým textem v dlouhém názvu.'; $_lang["search_criteria_title"] = 'Hledat podle názvu'; @@ -1196,6 +1198,7 @@ $_lang['email_method_smtp'] = 'SMTP Server'; $_lang['smtp_auth_title'] = 'SMTP-AUTH'; $_lang['smtp_host_title'] = 'SMTP host'; +$_lang['smtp_secure_title'] = 'Encrypted SMTP'; $_lang['smtp_username_title'] = 'SMTP user name'; $_lang['smtp_password_title'] = 'SMTP password'; $_lang['smtp_port_title'] = 'SMTP port'; diff --git a/manager/includes/lang/danish.inc.php b/manager/includes/lang/danish.inc.php index fd6eee9f..abaf8c4e 100644 --- a/manager/includes/lang/danish.inc.php +++ b/manager/includes/lang/danish.inc.php @@ -857,6 +857,8 @@ $_lang["search_criteria_content_msg"] = 'Find alle ressourcer med denne tekst i indholdet.'; $_lang["search_criteria_id"] = 'Søg efter ID'; $_lang["search_criteria_id_msg"] = 'Indtast en ressources ID for at kunne finde den hurtigt.'; +$_lang["search_criteria_template_id"] = 'Search by template ID'; +$_lang["search_criteria_template_id_msg"] = 'Find all Resources using the specified template.'; $_lang["search_criteria_longtitle"] = 'Søg i ressourcens lange titel'; $_lang["search_criteria_longtitle_msg"] = 'Find alle ressourcer med denne tekst i den lange titel.'; $_lang["search_criteria_title"] = 'Søg i titlen'; @@ -1195,6 +1197,7 @@ $_lang['email_method_smtp'] = 'SMTP Server'; $_lang['smtp_auth_title'] = 'SMTP-AUTH'; $_lang['smtp_host_title'] = 'SMTP host'; +$_lang['smtp_secure_title'] = 'Encrypted SMTP'; $_lang['smtp_username_title'] = 'SMTP user name'; $_lang['smtp_password_title'] = 'SMTP password'; $_lang['smtp_port_title'] = 'SMTP port'; diff --git a/manager/includes/lang/english-british.inc.php b/manager/includes/lang/english-british.inc.php old mode 100644 new mode 100755 index f56cc0fe..089a7c03 --- a/manager/includes/lang/english-british.inc.php +++ b/manager/includes/lang/english-british.inc.php @@ -12,8 +12,9 @@ * * Please commit your language changes on Transifex (https://www.transifex.com/projects/p/modx-evolution/) or on GitHub (https://github.com/modxcms/evolution). */ +$_lang["user_state"] = 'County'; +$_lang["user_zip"] = 'Postcode'; $_lang["help_msg"] = '

You can obtain free community support by visiting the MODX Forums. There is also a growing body of MODX Documentation and Guides that touch on virtually every aspect of MODX.

We are planning to offer commercial support services for MODX as well. Please email us if you\'re interested.'; $_lang["no_category"] = 'uncategorised'; $_lang["unauthorizedpage_message"] = 'Enter the ID of the document you want to send users to if they have requested a secured or unauthorised document. NOTE: make sure the ID you\'ve entered belongs to an existing document, and that it has been published and is publicly accessible!'; $_lang["unauthorizedpage_title"] = 'Unauthorised page:'; -?> \ No newline at end of file diff --git a/manager/includes/lang/english.inc.php b/manager/includes/lang/english.inc.php index 0a35be0d..b0834947 100644 --- a/manager/includes/lang/english.inc.php +++ b/manager/includes/lang/english.inc.php @@ -856,6 +856,8 @@ $_lang["search_criteria_content_msg"] = 'Find all Resources with the entered text in their content.'; $_lang["search_criteria_id"] = 'Search by ID'; $_lang["search_criteria_id_msg"] = 'Enter a Resource\'s ID to quickly locate that Resource.'; +$_lang["search_criteria_template_id"] = 'Search by template ID'; +$_lang["search_criteria_template_id_msg"] = 'Find all Resources using the specified template.'; $_lang["search_criteria_longtitle"] = 'Search by long title'; $_lang["search_criteria_longtitle_msg"] = 'Find all Resources with the entered text in their long title.'; $_lang["search_criteria_title"] = 'Search by title'; diff --git a/manager/includes/lang/finnish.inc.php b/manager/includes/lang/finnish.inc.php old mode 100644 new mode 100755 index 1bb328ea..dcacb840 --- a/manager/includes/lang/finnish.inc.php +++ b/manager/includes/lang/finnish.inc.php @@ -856,6 +856,8 @@ $_lang["search_criteria_content_msg"] = 'Hae sivut, joiden sisällöstä löytyy syötetty teksti.'; $_lang["search_criteria_id"] = 'ID'; $_lang["search_criteria_id_msg"] = 'Hae sivu ID-tunnuksella.'; +$_lang["search_criteria_template_id"] = 'Sivupohjan ID'; +$_lang["search_criteria_template_id_msg"] = 'Hae sivut, jotka käyttävät annettua sivupohjaa.'; $_lang["search_criteria_longtitle"] = 'Pitkä otsikko'; $_lang["search_criteria_longtitle_msg"] = 'Hae sivut, joiden pitkästä otsikosta löytyy syötetty teksti.'; $_lang["search_criteria_title"] = 'Otsikko'; @@ -1191,6 +1193,7 @@ $_lang['email_method_smtp'] = 'SMTP Server'; $_lang['smtp_auth_title'] = 'SMTP-AUTH'; $_lang['smtp_host_title'] = 'SMTP host'; +$_lang['smtp_secure_title'] = 'Encrypted SMTP'; $_lang['smtp_username_title'] = 'SMTP user name'; $_lang['smtp_password_title'] = 'SMTP password'; $_lang['smtp_port_title'] = 'SMTP port'; diff --git a/manager/includes/lang/francais-utf8.inc.php b/manager/includes/lang/francais-utf8.inc.php index 34d8a9f4..542e74dc 100644 --- a/manager/includes/lang/francais-utf8.inc.php +++ b/manager/includes/lang/francais-utf8.inc.php @@ -859,6 +859,8 @@ $_lang["search_criteria_content_msg"] = 'Rechercher les Ressources dont le contenu contient ce texte'; $_lang["search_criteria_id"] = 'Recherche par ID'; $_lang["search_criteria_id_msg"] = 'Entrez l\'ID d\'une Ressource pour la localiser rapidement'; +$_lang["search_criteria_template_id"] = 'Search by template ID'; +$_lang["search_criteria_template_id_msg"] = 'Find all Resources using the specified template.'; $_lang["search_criteria_longtitle"] = 'Recherche par titre long'; $_lang["search_criteria_longtitle_msg"] = 'Rechercher les Ressources dont le titre long contient ce texte'; $_lang["search_criteria_title"] = 'Recherche par titre'; @@ -1162,6 +1164,7 @@ $_lang['email_method_smtp'] = 'via un serveur SMTP'; $_lang['smtp_auth_title'] = 'Authentification SMTP'; $_lang['smtp_host_title'] = 'Serveur SMTP'; +$_lang['smtp_secure_title'] = 'Encrypted SMTP'; $_lang['smtp_username_title'] = 'Utilisateur SMTP'; $_lang['smtp_password_title'] = 'Mot de passe SMTP'; $_lang['smtp_port_title'] = 'Port SMTP'; diff --git a/manager/includes/lang/german.inc.php b/manager/includes/lang/german.inc.php index d30a348e..8a5c0b0a 100644 --- a/manager/includes/lang/german.inc.php +++ b/manager/includes/lang/german.inc.php @@ -860,6 +860,8 @@ $_lang["search_criteria_content_msg"] = 'Findet alle Ressource in deren Inhalt der eingegebene Text vorkommt.'; $_lang["search_criteria_id"] = 'Suche nach ID'; $_lang["search_criteria_id_msg"] = 'Findet die Ressource dessen ID mit der eingegebenen übereinstimmt.'; +$_lang["search_criteria_template_id"] = 'Suche nach Template ID'; +$_lang["search_criteria_template_id_msg"] = 'Findet alle Ressourcen die das Template mit der angegebenen ID benutzen.'; $_lang["search_criteria_longtitle"] = 'Suche nach Langtitel'; $_lang["search_criteria_longtitle_msg"] = 'Findet alle Ressource in deren Langtitel der eingegebene Text vorkommt.'; $_lang["search_criteria_title"] = 'Suche nach Titel'; @@ -1196,6 +1198,7 @@ $_lang['email_method_smtp'] = 'SMTP Server'; $_lang['smtp_auth_title'] = 'SMTP Auth'; $_lang['smtp_host_title'] = 'SMTP Host'; +$_lang['smtp_secure_title'] = 'SMTP Verschlüsselung'; $_lang['smtp_username_title'] = 'SMTP Benutzername'; $_lang['smtp_password_title'] = 'SMTP Passwort'; $_lang['smtp_port_title'] = 'SMTP Port'; diff --git a/manager/includes/lang/hebrew.inc.php b/manager/includes/lang/hebrew.inc.php old mode 100644 new mode 100755 index e7fe741e..962e6a9c --- a/manager/includes/lang/hebrew.inc.php +++ b/manager/includes/lang/hebrew.inc.php @@ -856,6 +856,8 @@ $_lang["search_criteria_content_msg"] = 'Find all documents with the entered text in their content.'; $_lang["search_criteria_id"] = 'חפש לפי זיהוי'; $_lang["search_criteria_id_msg"] = 'Enter a document\'s ID to quickly locate that document.'; +$_lang["search_criteria_template_id"] = 'Search by template ID'; +$_lang["search_criteria_template_id_msg"] = 'Find all Resources using the specified template.'; $_lang["search_criteria_longtitle"] = 'Search by long title'; $_lang["search_criteria_longtitle_msg"] = 'Find all documents with the entered text in their long title.'; $_lang["search_criteria_title"] = 'חפש לפי כותרת'; @@ -1192,6 +1194,7 @@ $_lang['email_method_smtp'] = 'SMTP Server'; $_lang['smtp_auth_title'] = 'SMTP-AUTH'; $_lang['smtp_host_title'] = 'SMTP host'; +$_lang['smtp_secure_title'] = 'Encrypted SMTP'; $_lang['smtp_username_title'] = 'SMTP user name'; $_lang['smtp_password_title'] = 'SMTP password'; $_lang['smtp_port_title'] = 'SMTP port'; diff --git a/manager/includes/lang/italian.inc.php b/manager/includes/lang/italian.inc.php old mode 100644 new mode 100755 index adcb3b1f..3c5a64db --- a/manager/includes/lang/italian.inc.php +++ b/manager/includes/lang/italian.inc.php @@ -856,6 +856,8 @@ $_lang["search_criteria_content_msg"] = 'Trovate tutte le Risorse che hanno questo testo nel loro contenuto.'; $_lang["search_criteria_id"] = 'Cerca per ID'; $_lang["search_criteria_id_msg"] = 'Inserite l\'ID di una Risorsa per individuarla rapidamente.'; +$_lang["search_criteria_template_id"] = 'Search by template ID'; +$_lang["search_criteria_template_id_msg"] = 'Find all Resources using the specified template.'; $_lang["search_criteria_longtitle"] = 'Cerca per titolo esteso'; $_lang["search_criteria_longtitle_msg"] = 'Trovate tutte le Risorse che nel titolo esteso contengono questo testo.'; $_lang["search_criteria_title"] = 'Cerca per titolo'; @@ -1168,6 +1170,7 @@ $_lang['email_method_smtp'] = 'Server SMTP'; $_lang['smtp_auth_title'] = 'SMTP-AUTH:'; $_lang['smtp_host_title'] = 'Host SMTP:'; +$_lang['smtp_secure_title'] = 'Encrypted SMTP'; $_lang['smtp_username_title'] = 'Utente SMTP:'; $_lang['smtp_password_title'] = 'Password SMTP:'; $_lang['smtp_port_title'] = 'Porta SMTP:'; diff --git a/manager/includes/lang/japanese-utf8.inc.php b/manager/includes/lang/japanese-utf8.inc.php old mode 100644 new mode 100755 index 3561af55..6a538e00 --- a/manager/includes/lang/japanese-utf8.inc.php +++ b/manager/includes/lang/japanese-utf8.inc.php @@ -867,6 +867,8 @@ $_lang["search_criteria_content_msg"] = 'Find all Resources with the entered text in their content.'; $_lang["search_criteria_id"] = 'IDで検索'; $_lang["search_criteria_id_msg"] = 'Enter a Resource\'s ID to quickly locate that Resource.'; +$_lang["search_criteria_template_id"] = 'Search by template ID'; +$_lang["search_criteria_template_id_msg"] = 'Find all Resources using the specified template.'; $_lang["search_criteria_longtitle"] = 'タイトルで検索'; $_lang["search_criteria_longtitle_msg"] = 'Find all Resources with the entered text in their long title.'; $_lang["search_criteria_title"] = 'リソース名で検索'; @@ -1203,6 +1205,7 @@ $_lang['email_method_smtp'] = 'SMTP サーバ'; $_lang['smtp_auth_title'] = 'SMTP-AUTH'; $_lang['smtp_host_title'] = 'SMTP ホスト'; +$_lang['smtp_secure_title'] = 'Encrypted SMTP'; $_lang['smtp_username_title'] = 'SMTP ユーザ名'; $_lang['smtp_password_title'] = 'SMTP パスワード'; $_lang['smtp_port_title'] = 'SMTP ポート'; diff --git a/manager/includes/lang/nederlands-utf8.inc.php b/manager/includes/lang/nederlands-utf8.inc.php index 7d316f2d..06f78eb1 100644 --- a/manager/includes/lang/nederlands-utf8.inc.php +++ b/manager/includes/lang/nederlands-utf8.inc.php @@ -856,6 +856,8 @@ $_lang["search_criteria_content_msg"] = 'Zoek alle Pagina\'s met de ingevoerde tekst in de inhoud.'; $_lang["search_criteria_id"] = 'Op ID zoeken'; $_lang["search_criteria_id_msg"] = 'Voer de ID van de Pagina in om de Pagina snel te vinden.'; +$_lang["search_criteria_template_id"] = 'Op template ID zoeken'; +$_lang["search_criteria_template_id_msg"] = 'Zoek alle pagina\'s die de gekozen template gebruikt.'; $_lang["search_criteria_longtitle"] = 'Zoek op uitgebreide titel'; $_lang["search_criteria_longtitle_msg"] = 'Zoek alle Pagina\'s met de ingevoerde tekst in hun uitgebreide titel.'; $_lang["search_criteria_title"] = 'Op titel zoeken'; @@ -1191,6 +1193,7 @@ $_lang['email_method_smtp'] = 'SMTP Server'; $_lang['smtp_auth_title'] = 'SMTP-AUTH'; $_lang['smtp_host_title'] = 'SMTP host'; +$_lang['smtp_secure_title'] = 'Gecodeerde SMTP'; $_lang['smtp_username_title'] = 'SMTP gebruikersnaam'; $_lang['smtp_password_title'] = 'SMTP wachtwoord'; $_lang['smtp_port_title'] = 'SMTP poort'; diff --git a/manager/includes/lang/norsk.inc.php b/manager/includes/lang/norsk.inc.php index e0e3955b..0d123caa 100644 --- a/manager/includes/lang/norsk.inc.php +++ b/manager/includes/lang/norsk.inc.php @@ -856,6 +856,8 @@ $_lang["search_criteria_content_msg"] = 'Finn samtlige dokumenter med søketeksten i innholdet.'; $_lang["search_criteria_id"] = 'Søk etter ID'; $_lang["search_criteria_id_msg"] = 'Skriv dokumentets ID for å kjapt lokalisere dokumentet.'; +$_lang["search_criteria_template_id"] = 'Search by template ID'; +$_lang["search_criteria_template_id_msg"] = 'Find all Resources using the specified template.'; $_lang["search_criteria_longtitle"] = 'Søk etter lang tittel'; $_lang["search_criteria_longtitle_msg"] = 'Finn alle dokument med søkteksten i den lange tittelen.'; $_lang["search_criteria_title"] = 'Søk etter tittel'; @@ -1159,6 +1161,7 @@ $_lang['email_method_smtp'] = 'SMTP Server'; $_lang['smtp_auth_title'] = 'SMTP-AUTH'; $_lang['smtp_host_title'] = 'SMTP host'; +$_lang['smtp_secure_title'] = 'Encrypted SMTP'; $_lang['smtp_username_title'] = 'SMTP user name'; $_lang['smtp_password_title'] = 'SMTP password'; $_lang['smtp_port_title'] = 'SMTP port'; diff --git a/manager/includes/lang/persian.inc.php b/manager/includes/lang/persian.inc.php old mode 100644 new mode 100755 index 8178ce9d..2203cd40 --- a/manager/includes/lang/persian.inc.php +++ b/manager/includes/lang/persian.inc.php @@ -856,6 +856,8 @@ $_lang["search_criteria_content_msg"] = 'جستجوی متنی در بین همه پرونده ها و محتویاتی که شامل متن مورد نظر شماست'; $_lang["search_criteria_id"] = 'جستجو از طریق شناسه یا ردیف'; $_lang["search_criteria_id_msg"] = 'شناسه یا ردیف پرونده مورد نظر خود را وارد کنید تا به سرعت پرونده را پیدا کنید'; +$_lang["search_criteria_template_id"] = 'Search by template ID'; +$_lang["search_criteria_template_id_msg"] = 'Find all Resources using the specified template.'; $_lang["search_criteria_longtitle"] = 'جستجو در عنوان بلند مطالب'; $_lang["search_criteria_longtitle_msg"] = 'پیدا کردن کلیه ی پرونده هایی که حاوی متن مورد نظر در عنوان بلند خود هستند'; $_lang["search_criteria_title"] = 'جستجو در عناوین'; @@ -1192,6 +1194,7 @@ $_lang['email_method_smtp'] = 'SMTP Server'; $_lang['smtp_auth_title'] = 'SMTP-AUTH'; $_lang['smtp_host_title'] = 'SMTP host'; +$_lang['smtp_secure_title'] = 'Encrypted SMTP'; $_lang['smtp_username_title'] = 'SMTP user name'; $_lang['smtp_password_title'] = 'SMTP password'; $_lang['smtp_port_title'] = 'SMTP port'; diff --git a/manager/includes/lang/polish-utf8.inc.php b/manager/includes/lang/polish-utf8.inc.php index 0dad0316..734b2759 100644 --- a/manager/includes/lang/polish-utf8.inc.php +++ b/manager/includes/lang/polish-utf8.inc.php @@ -861,6 +861,8 @@ $_lang["search_criteria_content_msg"] = 'Znajdź wszystkie dokumenty zawierające w zawartości wpisany tekst.'; $_lang["search_criteria_id"] = 'Szukaj po ID'; $_lang["search_criteria_id_msg"] = 'Wpisz ID dokumentu, aby go szybko zlokalizować.'; +$_lang["search_criteria_template_id"] = 'Search by template ID'; +$_lang["search_criteria_template_id_msg"] = 'Find all Resources using the specified template.'; $_lang["search_criteria_longtitle"] = 'Szukaj w długich tytułach'; $_lang["search_criteria_longtitle_msg"] = 'Znajdź wszystkie dokumenty posiadające wyszukiwane słowo w długim tytul.'; $_lang["search_criteria_title"] = 'Szukaj po tytule'; @@ -1197,6 +1199,7 @@ $_lang['email_method_smtp'] = 'Serwer SMTP'; $_lang['smtp_auth_title'] = 'SMTP-AUTH'; $_lang['smtp_host_title'] = 'SMTP host'; +$_lang['smtp_secure_title'] = 'Encrypted SMTP'; $_lang['smtp_username_title'] = 'Nazwa użytkownika SMTP'; $_lang['smtp_password_title'] = 'Hasło SMTP'; $_lang['smtp_port_title'] = 'Port SMTP'; diff --git a/manager/includes/lang/portuguese-br-utf8.inc.php b/manager/includes/lang/portuguese-br-utf8.inc.php index f1d25fc8..c4067586 100644 --- a/manager/includes/lang/portuguese-br-utf8.inc.php +++ b/manager/includes/lang/portuguese-br-utf8.inc.php @@ -857,6 +857,8 @@ $_lang["search_criteria_content_msg"] = 'Encontrar todos os documentos que contenham o texto indicado no seu conteúdo.'; $_lang["search_criteria_id"] = 'Procurar por ID'; $_lang["search_criteria_id_msg"] = 'Indique a ID de um documento para o localizar rapidamente.'; +$_lang["search_criteria_template_id"] = 'Search by template ID'; +$_lang["search_criteria_template_id_msg"] = 'Find all Resources using the specified template.'; $_lang["search_criteria_longtitle"] = 'Procurar por título longo'; $_lang["search_criteria_longtitle_msg"] = 'Encontrar todos os documentos que contenham o texto indicado no seu título longo.'; $_lang["search_criteria_title"] = 'Procurar por título'; @@ -1160,6 +1162,7 @@ $_lang['email_method_smtp'] = 'SMTP Server'; $_lang['smtp_auth_title'] = 'SMTP-AUTH'; $_lang['smtp_host_title'] = 'SMTP host'; +$_lang['smtp_secure_title'] = 'Encrypted SMTP'; $_lang['smtp_username_title'] = 'SMTP user name'; $_lang['smtp_password_title'] = 'SMTP password'; $_lang['smtp_port_title'] = 'SMTP port'; diff --git a/manager/includes/lang/portuguese.inc.php b/manager/includes/lang/portuguese.inc.php index f60f7301..74b9e2a1 100644 --- a/manager/includes/lang/portuguese.inc.php +++ b/manager/includes/lang/portuguese.inc.php @@ -856,6 +856,8 @@ $_lang["search_criteria_content_msg"] = 'Encontrar todos os documentos que contenham o texto indicado no seu conteúdo.'; $_lang["search_criteria_id"] = 'Procurar por ID'; $_lang["search_criteria_id_msg"] = 'Indique a ID de um documento para o localizar rapidamente.'; +$_lang["search_criteria_template_id"] = 'Search by template ID'; +$_lang["search_criteria_template_id_msg"] = 'Find all Resources using the specified template.'; $_lang["search_criteria_longtitle"] = 'Procurar por título longo'; $_lang["search_criteria_longtitle_msg"] = 'Encontrar todos os documentos que contenham o texto indicado no seu título longo.'; $_lang["search_criteria_title"] = 'Procurar por título'; @@ -1192,6 +1194,7 @@ $_lang['email_method_smtp'] = 'SMTP Server'; $_lang['smtp_auth_title'] = 'SMTP-AUTH'; $_lang['smtp_host_title'] = 'SMTP host'; +$_lang['smtp_secure_title'] = 'Encrypted SMTP'; $_lang['smtp_username_title'] = 'SMTP user name'; $_lang['smtp_password_title'] = 'SMTP password'; $_lang['smtp_port_title'] = 'SMTP port'; diff --git a/manager/includes/lang/russian-UTF8.inc.php b/manager/includes/lang/russian-UTF8.inc.php index b0087b9f..b8118c3e 100644 --- a/manager/includes/lang/russian-UTF8.inc.php +++ b/manager/includes/lang/russian-UTF8.inc.php @@ -861,6 +861,8 @@ $_lang["search_criteria_content_msg"] = 'Найти все ресурсы, содержащие введенный текст в своем теле.'; $_lang["search_criteria_id"] = 'Искать по ID'; $_lang["search_criteria_id_msg"] = 'Введите ID ресурса, чтобы быстро найти его.'; +$_lang["search_criteria_template_id"] = 'Search by template ID'; +$_lang["search_criteria_template_id_msg"] = 'Find all Resources using the specified template.'; $_lang["search_criteria_longtitle"] = 'Искать в расширенных заголовках'; $_lang["search_criteria_longtitle_msg"] = 'Найти все ресурсы, содержащие текст в расширенных заголовках.'; $_lang["search_criteria_title"] = 'Искать в заголовках'; diff --git a/manager/includes/lang/spanish-utf8.inc.php b/manager/includes/lang/spanish-utf8.inc.php index 9ccc3ddb..f1a3bfaf 100644 --- a/manager/includes/lang/spanish-utf8.inc.php +++ b/manager/includes/lang/spanish-utf8.inc.php @@ -856,6 +856,8 @@ $_lang["search_criteria_content_msg"] = 'Encontrar todos los documentos con el texto ingresado en su contenido.'; $_lang["search_criteria_id"] = 'Buscar por ID'; $_lang["search_criteria_id_msg"] = 'Ingresar el ID de un documento para encontrar rápidamente ese documento.'; +$_lang["search_criteria_template_id"] = 'Buscar por ID de Plantilla'; +$_lang["search_criteria_template_id_msg"] = 'Encontrar todos los Recursos que usan una Plantilla especificada.'; $_lang["search_criteria_longtitle"] = 'Buscar por título largo'; $_lang["search_criteria_longtitle_msg"] = 'Buscar todos los documentos con el texto ingresado en su título largo.'; $_lang["search_criteria_title"] = 'Buscar por título'; @@ -1192,6 +1194,7 @@ $_lang['email_method_smtp'] = 'SMTP Server'; $_lang['smtp_auth_title'] = 'SMTP-AUTH'; $_lang['smtp_host_title'] = 'SMTP host'; +$_lang['smtp_secure_title'] = 'Cifrado SMTP'; $_lang['smtp_username_title'] = 'SMTP user name'; $_lang['smtp_password_title'] = 'SMTP password'; $_lang['smtp_port_title'] = 'SMTP port'; diff --git a/manager/includes/lang/svenska-utf8.inc.php b/manager/includes/lang/svenska-utf8.inc.php old mode 100644 new mode 100755 index 0992d2c5..b43d2ad9 --- a/manager/includes/lang/svenska-utf8.inc.php +++ b/manager/includes/lang/svenska-utf8.inc.php @@ -857,6 +857,8 @@ $_lang["search_criteria_content_msg"] = 'Hitta samtliga resurser med söktexten i innehållet.'; $_lang["search_criteria_id"] = 'Sök efter ID'; $_lang["search_criteria_id_msg"] = 'Skriv resursens ID för att snabbt lokalisera resursen.'; +$_lang["search_criteria_template_id"] = 'Search by template ID'; +$_lang["search_criteria_template_id_msg"] = 'Find all Resources using the specified template.'; $_lang["search_criteria_longtitle"] = 'Sök efter lång titel'; $_lang["search_criteria_longtitle_msg"] = 'Hitta alla resurser med söktexten i den långa titeln.'; $_lang["search_criteria_title"] = 'Sök efter titel'; @@ -1193,6 +1195,7 @@ $_lang['email_method_smtp'] = 'SMTP Server'; $_lang['smtp_auth_title'] = 'SMTP-AUTH'; $_lang['smtp_host_title'] = 'SMTP host'; +$_lang['smtp_secure_title'] = 'Encrypted SMTP'; $_lang['smtp_username_title'] = 'SMTP user name'; $_lang['smtp_password_title'] = 'SMTP password'; $_lang['smtp_port_title'] = 'SMTP port'; diff --git a/manager/includes/tmplvars.format.inc.php b/manager/includes/tmplvars.format.inc.php index 935ae315..9a4c57bf 100644 --- a/manager/includes/tmplvars.format.inc.php +++ b/manager/includes/tmplvars.format.inc.php @@ -366,7 +366,7 @@ function decodeParamValue($s){ // returns an array if a delimiter is present. returns array is a recordset is present function parseInput($src, $delim="||", $type="string", $columns=true) { // type can be: string, array global $modx; - if (is_resource($src)) { + if ($modx->db->isResult($src)) { // must be a recordset $rows = array(); while ($cols = $modx->db->getRow($src,'num')) $rows[] = ($columns)? $cols : implode(" ",$cols); diff --git a/manager/includes/tmplvars.inc.php b/manager/includes/tmplvars.inc.php index ecc37dd8..6bca5c21 100644 --- a/manager/includes/tmplvars.inc.php +++ b/manager/includes/tmplvars.inc.php @@ -316,7 +316,7 @@ function ParseIntputOptions($v) { global $modx; $a = array(); if(is_array($v)) return $v; - else if(is_resource($v)) { + else if($modx->db->isResult($v)) { while ($cols = $modx->db->getRow($v,'num')) $a[] = $cols; } else $a = explode("||", $v); diff --git a/manager/includes/version.inc.php b/manager/includes/version.inc.php index df698c55..5006a28b 100644 --- a/manager/includes/version.inc.php +++ b/manager/includes/version.inc.php @@ -1,5 +1,5 @@