%%**) creates a **''div''** and should be used for **"big"** containers, **surrounding** paragraphs, lists, tables, etc.
+
+
+
+"big" content
+
+
+or
+
+"big" content
+
+
+or
+
+"big" content
+
+
+
+A lowercase **%%
%%** (or alternatively **%%%%** or **%%%%**) creates a **''span''** and should be used for **"small"** containers, **inside** paragraphs, lists, tables, etc.
+
+
+"small" content
+
+or
+"small" content
+
+or
+"small" content
+
+
+:!: Please note, some things **won't work with lowercase spans**:
+ * **alignments** (including alignments generated by changing the text direction)
+ * **multi-columns**
+ * and **widths**
+if the according wrap isn't floated as well.
+
+A shorthand of uppercase **%%%%** and lowercase **%%%%** are available if the container is empty or unnecessary.
+
+
+
+or
+
+or
+
+
+
+and
+
+
+or
+
+or
+
+
+
+===== Classes and Styles =====
+
+
+==== Columns and Floats ====
+
+You can have columns easily by adding the class ''column'' and a width, e.g.
+ ...content...
+
+The example below uses the following structure:
+
+
+
+
+...content...
+...content...
+...content...
+
+
+
+
+
+
+
+=== Floating Options ===
+
+Normally you would only need the class ''column'', but for more sophisticated uses (not only for columns, but for any other classes, like [[#boxes and notes]] as well) you can have several kinds of "floats":
+
+ * **''column''** is the same as ''left'' in LTR languages and the same as ''right'' in RTL languages
+ * **''left''** will let you float your wrap on the left
+ * **''right''** will let the wrap float right
+ * **''center''** will position the wrap in the horizontal center of the page
+
+A **table** inside a column or box will always be **100% wide**. This makes positioning and sizing tables possible.
+
+
+
+
+=== Widths ===
+
+You can set any valid widths (but only on divs): ''%, px, em, ex, pt, pc, cm, mm, in'', but most of the time you'd only want either
+
+^type^e.g.^note^
+^''%''|''30%''|makes sense in most cases|
+^''px''|''420px''|makes sense if your container contains images with a certain width|
+^''em''|''20em''|makes sense if you like your wrap container to grow and shrink with the font size|
+
+
+
+=== Width Keywords ===
+
+With certain width keywords you can fit your columns automatically to fill the available horizontal space. Those columns will also react to the screen size, so will be responsive and wrap underneath each other on mobile devices.
+
+There are three width keywords. These should not be combined with any other width.
+
+ * **''half''** fits two columns in a row
+ * **''third''** fits three columns in a row
+ * **''quarter''** fits four columns in a row
+
+:!: Attention: In order to work properly, wraps with width keywords need an **additional ''%%%%'' around a set** of them.
+
+
+
+
+
+You can use the same options with spans (as each element that floats is automatically a block level element), but it probably doesn't make too much sense. :!: Widths on spans normally do not work (by design), but can make sense, when it is floating.
+
+:!: Attention: What is the difference between widths and width keywords and when is it best to use which? **Widths** can cause problems and will never fully add up, therefore will break the layout under some circumstances. (See [[http://en.wikipedia.org/wiki/Internet_Explorer_box_model_bug|box model]] for a technical explanation.) So, getting widths right will need some fiddling around and testing in various browsers. **Width keywords** on the other hand fit automatically and work better on mobile devices. But the drawback is that they need an extra wrap around them and don't work properly in older browsers (IE8 and under).
+
+All of those options will also work in the [[#boxes and notes]] wraps (see below).
+
+=== Old Emulated Headlines ===
+
+Every ''%%//**__text like this__**//%%'' or ''%%//**like that**//%%'' will create an "emulated headline" when used within a box or a column. Now that headlines within wraps are supported, they are not needed anymore, but are still supported for backwards-compatibility.
+
+If you need text that is bold and italic, simply use it the other way around: ''%%**//No Headline//**%%''
+
+
+=== Multi-columns ===
+
+
+For modern browsers (Firefox, Chrome and Safari, IE10+) you can use multi-columns. Just use **''%%col2%%''** for 2 columns, **''%%col3%%''** for 3 columns, **''%%col4%%''** for 4 columns and **''%%col5%%''** for 5 columns.
+
+:!: Note: Multi-columns don't make sense for spans.
+
+
+Don't use this for bigger columns containing more than just text. Use the [[#columns and floats]] mentioned above instead.
+
+
+==== Alignments ====
+
+You can use these different text alignments:
+
+ * ''leftalign''
+ * ''rightalign''
+ * ''centeralign''
+ * ''justify''
+
+
+Center aligned text ...
+
+
+
+... and right aligned.
+
+
+
+
+Center aligned text ...
+
+
+
+... and right aligned.
+
+
+
+:!: You cannot add alignments to spans.
+
+
+==== Boxes and Notes ====
+
+
+=== round box 500px center ===
+
+ * ''box'' creates a box around the container and uses the colours from the template's ''style.ini'' as default colours (''%%__background_alt__%%'' and ''%%__text__%%'')
+ * any of the classes ''info'', ''tip'', ''important'', ''alert'', ''help'', ''download'', ''todo'' will add a special note container with a corresponding icon
+ * the classes ''danger'', ''warning'', ''caution'', ''notice'', ''safety'' use safety colours (and no icons)
+ * ''round'' can be added to anything with a background colour or a border and will only work in modern browsers (no IE8 and under)
+
+
+
+
+=== Info ===
+
+
+
+
+
+=== Tip ===
+
+
+
+
+
+=== Important ===
+
+
+
+
+
+=== Alert ===
+
+
+
+
+
+=== Help ===
+
+
+
+
+
+=== Download ===
+
+
+
+
+
+=== Todo ===
+
+
+
+
+
+
+
+**Safety Notes:**
+
+
+=== Danger ===
+
+
+
+
+=== Warning ===
+
+
+
+
+=== Caution ===
+
+
+
+
+=== Notice ===
+
+
+
+
+=== Safety ===
+
+
+
+
+
+
+You can use notes and boxes also inside text with spans like this:
+info, help, alert, important, tip, download, todo and round box and danger, warning, caution, notice, safety.
+ info, help, ...
+
+==== Marks ====
+
+You can mark text as highlighted, less significant and especially emphasised.
+
+ You can mark text as highlighted, less significant and especially emphasised.
+
+:!: This might look ugly in some templates and should be adjusted accordingly.
+
+==== Tabs ====
+
+You can create a row of tabs by simply wrapping a list of links in ''%%%%''.
+
+
+ * [[Some page]]
+ * [[example|This page]]
+ * [[Another page]]
+
+
+
+ * [[Some page]]
+ * [[example|This page]]
+ * [[Another page]]
+
+
+:!: Please note, the styling of these tabs depend on the template you are using and not on the wrap plugin. If you only see a list of links and no tabs, please make sure to add "tabs" to the ''noPrefix'' config option and that your template supports at least the 2012-01-25 "Angua" DokuWiki release.
+
+==== Miscellaneous ====
+
+=== Clear float ===
+
+After using any of the float classes, you might come across following text protruding into the space where only the floating containers should be. To prevent that, you should simply add this after your last column:
+
+
+
+=== Indent ===
+
+This text will appear indented.
+
+ This text will appear indented.
+
+=== Outdent ===
+
+This text will appear "outdented".
+
+ This text will appear "outdented".
+
+=== Prewrap ===
+
+
+
+Inside this code block the words will wrap to a new line although they are all in one line.
+
+
+
+
+
+ Inside this code block the words will wrap to a new line although they are all in one line.
+
+
+
+=== Spoiler ===
+
+Here follows a spoiler: Darth Vader is Luke's father.
+
+ Here follows a spoiler: Darth Vader is Luke's father.
+
+Just select the text in the spoiler box to be able to read its content.
+
+=== Button links ===
+
+A link that looks like a button: [[wiki:Syntax]]
+
+ A link that looks like a button: [[wiki:Syntax]]
+
+=== Hide ===
+
+The following text is hidden: John, please revise that sentence.
+
+ The following text is hidden: John, please revise that sentence.
+
+:!: Warning: The text will still appear in the source code, in non-modern browsers and is searchable. Do not hide any security risky secrets with it!
+
+=== Pagebreak ===
+
+The following will add a pagebreak:
+
+ The following will add a pagebreak:
+
+This has no effect on the browser screen. A [[http://reference.sitepoint.com/css/page-break-after|pagebreak]] will force a new page in printouts.
+
+=== Nopagebreak ===
+
+The following will try to avoid a pagebreak: much content, belonging together (like a long table)
+
+ The following will try to avoid a pagebreak: much content, belonging together (like a long table)
+
+This also has no effect on the browser screen. It will try to [[http://reference.sitepoint.com/css/page-break-inside|avoid a page break]] in printouts.
+
+=== Noprint ===
+
+This text appears on the screen, but not in print.
+
+ This text appears on the screen, but not in print.
+
+=== Onlyprint ===
+
+This text does not appear on the screen, but only in print.
+
+ This text does not appear on the screen, but only in print.
+
+
+==== Combining and Nesting ====
+
+You can combine and nest all classes and types of boxes, e.g.
+
+
+===Outer box floats right ===
+
+
+Inner nested box floats left and is partly __em__phasized and __hi__ghlighted with a nested __notice__ inside.
+
+
+Text inside outer right box, but beneath inner left box.
+
+
+
+
+Round tip box underneath, after a ''clear''.
+
+
+
+
+
+
+
+=== Outer box floats right ===
+
+
+Inner nested box floats left and is partly __em__phasized and __hi__ghlighted with a nested __notice__ inside.
+
+
+Text inside outer right box, but beneath inner left box.
+
+
+
+
+Round tip box underneath, after a ''clear''.
+
+
+
+
+
+
+===== Language and Text Direction =====
+
+You can change the language and the reading direction of a wrap container by simply adding a colon followed by the language code, like this:
+
+
+
+זה עברית. ((This means "This is Hebrew.", at least according to [[http://translate.google.com/|Google Translate]].))
+
+
+
+
+זה עברית. ((This means "This is Hebrew.", at least according to [[http://translate.google.com/|Google Translate]].))
+
+
+The text direction (''rtl'', right to left or ''ltr'', left to right) will get inserted automatically and is solely dependent on the language. The list of currently supported languages is taken from: http://meta.wikimedia.org/wiki/Template:List_of_language_names_ordered_by_code
+(If you specify a language not listed there, it simply won't do anything.)
diff --git a/public_html/lib/plugins/wrap/helper.php b/public_html/lib/plugins/wrap/helper.php
new file mode 100644
index 00000000..85a81b0a
--- /dev/null
+++ b/public_html/lib/plugins/wrap/helper.php
@@ -0,0 +1,489 @@
+
+ */
+
+// must be run within Dokuwiki
+if(!defined('DOKU_INC')) die();
+
+class helper_plugin_wrap extends DokuWiki_Plugin {
+ static protected $boxes = array ('wrap_box', 'wrap_danger', 'wrap_warning', 'wrap_caution', 'wrap_notice', 'wrap_safety',
+ 'wrap_info', 'wrap_important', 'wrap_alert', 'wrap_tip', 'wrap_help', 'wrap_todo',
+ 'wrap_download', 'wrap_hi', 'wrap_spoiler');
+ static protected $paragraphs = array ('wrap_leftalign', 'wrap_rightalign', 'wrap_centeralign', 'wrap_justify');
+ static protected $column_count = 0;
+
+ /**
+ * get attributes (pull apart the string between '')
+ * and identify classes, width, lang and dir
+ *
+ * @author Anika Henke
+ * @author Christopher Smith
+ * (parts taken from http://www.dokuwiki.org/plugin:box)
+ */
+ function getAttributes($data) {
+
+ $attr = array();
+ $tokens = preg_split('/\s+/', $data, 9);
+ $noPrefix = array_map('trim', explode(',', $this->getConf('noPrefix')));
+ $restrictedClasses = $this->getConf('restrictedClasses');
+ if ($restrictedClasses) {
+ $restrictedClasses = array_map('trim', explode(',', $this->getConf('restrictedClasses')));
+ }
+ $restrictionType = $this->getConf('restrictionType');
+
+ foreach ($tokens as $token) {
+
+ //get width
+ if (preg_match('/^\d*\.?\d+(%|px|em|ex|pt|pc|cm|mm|in)$/', $token)) {
+ $attr['width'] = $token;
+ continue;
+ }
+
+ //get lang
+ if (preg_match('/\:([a-z\-]+)/', $token)) {
+ $attr['lang'] = trim($token,':');
+ continue;
+ }
+
+ //get id
+ if (preg_match('/#([A-Za-z0-9_-]+)/', $token)) {
+ $attr['id'] = trim($token,'#');
+ continue;
+ }
+
+ //get classes
+ //restrict token (class names) characters to prevent any malicious data
+ if (preg_match('/[^A-Za-z0-9_-]/',$token)) continue;
+ if ($restrictedClasses) {
+ $classIsInList = in_array(trim($token), $restrictedClasses);
+ // either allow only certain classes
+ if ($restrictionType) {
+ if (!$classIsInList) continue;
+ // or disallow certain classes
+ } else {
+ if ($classIsInList) continue;
+ }
+ }
+ $prefix = in_array($token, $noPrefix) ? '' : 'wrap_';
+ $attr['class'] = (isset($attr['class']) ? $attr['class'].' ' : '').$prefix.$token;
+ }
+ if ($this->getConf('darkTpl')) {
+ $attr['class'] = (isset($attr['class']) ? $attr['class'].' ' : '').'wrap__dark';
+ }
+
+ //get dir
+ if($attr['lang']) {
+ $lang2dirFile = dirname(__FILE__).'/conf/lang2dir.conf';
+ if (@file_exists($lang2dirFile)) {
+ $lang2dir = confToHash($lang2dirFile);
+ $attr['dir'] = strtr($attr['lang'],$lang2dir);
+ }
+ }
+
+ return $attr;
+ }
+
+ /**
+ * build attributes (write out classes, width, lang and dir)
+ */
+ function buildAttributes($data, $addClass='', $mode='xhtml') {
+
+ $attr = $this->getAttributes($data);
+ $out = '';
+
+ if ($mode=='xhtml') {
+ if($attr['class']) $out .= ' class="'.hsc($attr['class']).' '.$addClass.'"';
+ // if used in other plugins, they might want to add their own class(es)
+ elseif($addClass) $out .= ' class="'.$addClass.'"';
+ if($attr['id']) $out .= ' id="'.hsc($attr['id']).'"';
+ // width on spans normally doesn't make much sense, but in the case of floating elements it could be used
+ if($attr['width']) {
+ if (strpos($attr['width'],'%') !== false) {
+ $out .= ' style="width: '.hsc($attr['width']).';"';
+ } else {
+ // anything but % should be 100% when the screen gets smaller
+ $out .= ' style="width: '.hsc($attr['width']).'; max-width: 100%;"';
+ }
+ }
+ // only write lang if it's a language in lang2dir.conf
+ if($attr['dir']) $out .= ' lang="'.$attr['lang'].'" xml:lang="'.$attr['lang'].'" dir="'.$attr['dir'].'"';
+ }
+
+ return $out;
+ }
+
+ /**
+ * render ODT element, Open
+ * (get Attributes, select ODT element that fits, render it, return element name)
+ */
+ function renderODTElementOpen($renderer, $HTMLelement, $data) {
+
+ $attr = $this->getAttributes($data);
+ $classes = explode (' ', $attr['class']);
+
+ // Get language
+ $language = $attr['lang'];
+
+ $is_indent = in_array ('wrap_indent', $classes);
+ $is_outdent = in_array ('wrap_outdent', $classes);
+ $is_column = in_array ('wrap_column', $classes);
+ $is_group = in_array ('group', $classes);
+ $is_pagebreak = in_array ('wrap_pagebreak', $classes);
+
+ // Check for multicolumns
+ $columns = 0;
+ preg_match ('/wrap_col\d/', $attr ['class'], $matches);
+ if ( empty ($matches [0]) === false ) {
+ $columns = $matches [0] [strlen($matches [0])-1];
+ }
+
+ // Check for boxes
+ $is_box = false;
+ foreach (self::$boxes as $box) {
+ if ( strpos ($attr ['class'], $box) !== false ) {
+ $is_box = true;
+ break;
+ }
+ }
+
+ // Check for paragraphs
+ $is_paragraph = false;
+ if ( empty($language) === false ) {
+ $is_paragraph = true;
+ } else {
+ foreach (self::$paragraphs as $paragraph) {
+ if ( strpos ($attr ['class'], $paragraph) !== false ) {
+ $is_paragraph = true;
+ break;
+ }
+ }
+ }
+
+ $style = NULL;
+ if ( empty($attr['width']) === false ) {
+ $style = 'width: '.$attr['width'].';';
+ }
+ $attr ['class'] = 'dokuwiki '.$attr ['class'];
+
+ // Call corresponding functions for current wrap class
+ if ( $HTMLelement == 'span' ) {
+ if ( $is_indent === false && $is_outdent === false ) {
+ $this->renderODTOpenSpan ($renderer, $attr ['class'], $style, $language);
+ return 'span';
+ } else {
+ $this->renderODTOpenParagraph ($renderer, $attr ['class'], $style, $language, $is_indent, $is_outdent, true);
+ return 'paragraph';
+ }
+ } else if ( $HTMLelement == 'div' ) {
+ if ( $is_box === true ) {
+ $this->renderODTOpenBox ($renderer, $attr ['class'], $style);
+ return 'box';
+ } else if ( $columns > 0 ) {
+ $this->renderODTOpenColumns ($renderer, $attr ['class'], $style);
+ return 'multicolumn';
+ } else if ( $is_paragraph === true || $is_indent === true || $is_outdent === true ) {
+ $this->renderODTOpenParagraph ($renderer, $attr ['class'], $style, $language, $is_indent, $is_outdent, false);
+ return 'paragraph';
+ } else if ( $is_pagebreak === true ) {
+ $renderer->pagebreak ();
+ // Pagebreak hasn't got a closing stack so we return/push 'other' on the stack
+ return 'other';
+ } else if ( $is_column === true ) {
+ $this->renderODTOpenColumn ($renderer, $attr ['class'], $style);
+ return 'column';
+ } else if ( $is_group === true ) {
+ $this->renderODTOpenGroup ($renderer, $attr ['class'], $style);
+ return 'group';
+ }
+ }
+ return 'other';
+ }
+
+ /**
+ * render ODT element, Close
+ */
+ function renderODTElementClose($renderer, $element) {
+ switch ($element) {
+ case 'box':
+ $this->renderODTCloseBox ($renderer);
+ break;
+ case 'multicolumn':
+ $this->renderODTCloseColumns($renderer);
+ break;
+ case 'paragraph':
+ $this->renderODTCloseParagraph($renderer);
+ break;
+ case 'column':
+ $this->renderODTCloseColumn($renderer);
+ break;
+ case 'group':
+ $this->renderODTCloseGroup($renderer);
+ break;
+ case 'span':
+ $this->renderODTCloseSpan($renderer);
+ break;
+ // No default by intention.
+ }
+ }
+
+ function renderODTOpenBox ($renderer, $class, $style) {
+ $properties = array ();
+
+ if ( method_exists ($renderer, 'getODTProperties') === false ) {
+ // Function is not supported by installed ODT plugin version, return.
+ return;
+ }
+
+ // Get CSS properties for ODT export.
+ $renderer->getODTProperties ($properties, 'div', $class, $style);
+
+ if ( empty($properties ['background-image']) === false ) {
+ $properties ['background-image'] =
+ $renderer->replaceURLPrefix ($properties ['background-image'], DOKU_INC);
+ }
+
+ if ( empty($properties ['float']) === true ) {
+ // If the float property is not set, set it to 'left' becuase the ODT plugin
+ // would default to 'center' which is diffeent to the XHTML behaviour.
+ if ( strpos ($class, 'wrap_center') === false ) {
+ $properties ['float'] = 'left';
+ } else {
+ $properties ['float'] = 'center';
+ }
+ }
+
+ // The display property has differing usage in CSS. So we better overwrite it.
+ $properties ['display'] = 'always';
+ if ( stripos ($class, 'wrap_noprint') !== false ) {
+ $properties ['display'] = 'screen';
+ }
+ if ( stripos ($class, 'wrap_onlyprint') !== false ) {
+ $properties ['display'] = 'printer';
+ }
+
+ $renderer->_odtDivOpenAsFrameUseProperties ($properties);
+ }
+
+ function renderODTCloseBox ($renderer) {
+ if ( method_exists ($renderer, '_odtDivCloseAsFrame') === false ) {
+ // Function is not supported by installed ODT plugin version, return.
+ return;
+ }
+ $renderer->_odtDivCloseAsFrame ();
+ }
+
+ function renderODTOpenColumns ($renderer, $class, $style) {
+ $properties = array ();
+
+ if ( method_exists ($renderer, 'getODTProperties') === false ) {
+ // Function is not supported by installed ODT plugin version, return.
+ return;
+ }
+
+ // Get CSS properties for ODT export.
+ $renderer->getODTProperties ($properties, 'div', $class, $style);
+
+ $renderer->_odtOpenMultiColumnFrame($properties);
+ }
+
+ function renderODTCloseColumns ($renderer) {
+ if ( method_exists ($renderer, '_odtCloseMultiColumnFrame') === false ) {
+ // Function is not supported by installed ODT plugin version, return.
+ return;
+ }
+ $renderer->_odtCloseMultiColumnFrame();
+ }
+
+ function renderODTOpenParagraph ($renderer, $class, $style, $language, $is_indent, $is_outdent, $indent_first) {
+ $properties = array ();
+
+ if ( method_exists ($renderer, 'getODTProperties') === false ) {
+ // Function is not supported by installed ODT plugin version, return.
+ return;
+ }
+
+ // Get CSS properties for ODT export.
+ $renderer->getODTProperties ($properties, 'p', $class, $style);
+
+ if ( empty($properties ['background-image']) === false ) {
+ $properties ['background-image'] =
+ $renderer->replaceURLPrefix ($properties ['background-image'], DOKU_INC);
+ }
+
+ if ( empty($language) === false ) {
+ $properties ['lang'] = $language;
+ }
+
+ if ( $indent_first === true ) {
+ // Eventually indent or outdent first line only...
+ if ( $is_indent === true ) {
+ // FIXME: Has to be adjusted if test direction will be supported.
+ // See all.css
+ $properties ['text-indent'] = $properties ['padding-left'];
+ $properties ['padding-left'] = 0;
+ }
+ if ( $is_outdent === true ) {
+ // FIXME: Has to be adjusted if text (RTL, LTR) direction will be supported.
+ // See all.css
+ $properties ['text-indent'] = $properties ['margin-left'];
+ $properties ['margin-left'] = 0;
+ }
+ } else {
+ // Eventually indent or outdent the whole paragraph...
+ if ( $is_indent === true ) {
+ // FIXME: Has to be adjusted if test direction will be supported.
+ // See all.css
+ $properties ['margin-left'] = $properties ['padding-left'];
+ $properties ['padding-left'] = 0;
+ }
+ if ( $is_outdent === true ) {
+ // Nothing to change: keep left margin property.
+ // FIXME: Has to be adjusted if text (RTL, LTR) direction will be supported.
+ // See all.css
+ }
+ }
+
+ $renderer->p_close();
+ $renderer->_odtParagraphOpenUseProperties($properties);
+ }
+
+ function renderODTCloseParagraph ($renderer) {
+ if ( method_exists ($renderer, 'p_close') === false ) {
+ // Function is not supported by installed ODT plugin version, return.
+ return;
+ }
+ $renderer->p_close();
+ }
+
+ function renderODTOpenColumn ($renderer, $class, $style) {
+ $properties = array ();
+
+ if ( method_exists ($renderer, 'getODTProperties') === false ) {
+ // Function is not supported by installed ODT plugin version, return.
+ return;
+ }
+
+ // Get CSS properties for ODT export.
+ $renderer->getODTProperties ($properties, NULL, $class, $style);
+
+
+ // Frames/Textboxes still have some issues with formatting (at least in LibreOffice)
+ // So as a workaround we implement columns as a table.
+ // This is why we now use the margin of the div as the padding for the ODT table.
+ $properties ['padding-left'] = $properties ['margin-left'];
+ $properties ['padding-right'] = $properties ['margin-right'];
+ $properties ['padding-top'] = $properties ['margin-top'];
+ $properties ['padding-bottom'] = $properties ['margin-bottom'];
+ $properties ['margin-left'] = NULL;
+ $properties ['margin-right'] = NULL;
+ $properties ['margin-top'] = NULL;
+ $properties ['margin-bottom'] = NULL;
+
+ // Percentage values are not supported for the padding. Convert to absolute values.
+ $length = strlen ($properties ['padding-left']);
+ if ( $length > 0 && $properties ['padding-left'] [$length-1] == '%' ) {
+ $properties ['padding-left'] = trim ($properties ['padding-left'], '%');
+ $properties ['padding-left'] = $renderer->_getAbsWidthMindMargins ($properties ['padding-left']).'cm';
+ }
+ $length = strlen ($properties ['padding-right']);
+ if ( $length > 0 && $properties ['padding-right'] [$length-1] == '%' ) {
+ $properties ['padding-right'] = trim ($properties ['padding-right'], '%');
+ $properties ['padding-right'] = $renderer->_getAbsWidthMindMargins ($properties ['padding-right']).'cm';
+ }
+ $length = strlen ($properties ['padding-top']);
+ if ( $length > 0 && $properties ['padding-top'] [$length-1] == '%' ) {
+ $properties ['padding-top'] = trim ($properties ['padding-top'], '%');
+ $properties ['padding-top'] = $renderer->_getAbsWidthMindMargins ($properties ['padding-top']).'cm';
+ }
+ $length = strlen ($properties ['padding-bottom']);
+ if ( $length > 0 && $properties ['padding-bottom'] [$length-1] == '%' ) {
+ $properties ['padding-bottom'] = trim ($properties ['padding-bottom'], '%');
+ $properties ['padding-bottom'] = $renderer->_getAbsWidthMindMargins ($properties ['padding-bottom']).'cm';
+ }
+
+ $this->column_count++;
+ if ( $this->column_count == 1 ) {
+ // If this is the first column opened since the group was opened
+ // then we have to open the table and a (single) row first.
+ $column_width = $properties ['width'];
+ $properties ['width'] = '100%';
+ $renderer->_odtTableOpenUseProperties($properties);
+ $renderer->_odtTableRowOpenUseProperties($properties);
+ $properties ['width'] = $column_width;
+ }
+
+ // Convert rel-width to absolute width.
+ // The width in percentage works strange in LibreOffice, this is a workaround.
+ $length = strlen ($properties ['width']);
+ if ( $length > 0 && $properties ['width'] [$length-1] == '%' ) {
+ $properties ['width'] = trim ($properties ['width'], '%');
+ $properties ['width'] = $renderer->_getAbsWidthMindMargins ($properties ['width']).'cm';
+ }
+
+ // We did not specify any max column value when we opened the table.
+ // So we have to tell the renderer to add a column just now.
+ $renderer->_odtTableAddColumnUseProperties($properties);
+
+ // Open the cell.
+ $renderer->_odtTableCellOpenUseProperties($properties);
+ }
+
+ function renderODTCloseColumn ($renderer) {
+ if ( method_exists ($renderer, '_odtTableAddColumnUseProperties') === false ) {
+ // Function is not supported by installed ODT plugin version, return.
+ return;
+ }
+
+ $renderer->tablecell_close();
+ }
+
+ function renderODTOpenGroup ($renderer, $class, $style) {
+ // Nothing to do for now.
+ }
+
+ function renderODTCloseGroup ($renderer) {
+ // If a table has been opened in the group we close it now.
+ if ( $this->column_count > 0 ) {
+ // At last we need to close the row and the table!
+ $renderer->tablerow_close();
+ //$renderer->table_close();
+ $renderer->_odtTableClose();
+ }
+ $this->column_count = 0;
+ }
+
+ function renderODTOpenSpan ($renderer, $class, $style, $language) {
+ $properties = array ();
+
+ if ( method_exists ($renderer, 'getODTProperties') === false ) {
+ // Function is not supported by installed ODT plugin version, return.
+ return;
+ }
+
+ // Get CSS properties for ODT export.
+ $renderer->getODTProperties ($properties, 'span', $class, $style);
+
+ if ( empty($properties ['background-image']) === false ) {
+ $properties ['background-image'] =
+ $renderer->replaceURLPrefix ($properties ['background-image'], DOKU_INC);
+ }
+
+ if ( empty($language) === false ) {
+ $properties ['lang'] = $language;
+ }
+
+ $renderer->_odtSpanOpenUseProperties($properties);
+ }
+
+ function renderODTCloseSpan ($renderer) {
+ if ( method_exists ($renderer, '_odtSpanClose') === false ) {
+ // Function is not supported by installed ODT plugin version, return.
+ return;
+ }
+ $renderer->_odtSpanClose();
+ }
+}
diff --git a/public_html/lib/plugins/wrap/images/README b/public_html/lib/plugins/wrap/images/README
new file mode 100644
index 00000000..a44a9f40
--- /dev/null
+++ b/public_html/lib/plugins/wrap/images/README
@@ -0,0 +1,18 @@
+_NOTE_
+
+Icon set: Human-O2
+Designer: Oliver Scholtz (and others) [~schollidesign]
+License: GPL (http://www.gnu.org/copyleft/gpl.html)
+URL: http://schollidesign.deviantart.com/art/Human-O2-Iconset-105344123
+
+_TOOLBAR_
+
+Icon set: Silk
+Designer: Mark James
+License: Creative Commons Attribution 2.5 License (http://creativecommons.org/licenses/by/2.5/)
+URL: http://www.famfamfam.com/lab/icons/silk/
+
+Icon set: Silk Companion
+Designer: Damien Guard
+License: Creative Commons Attribution 2.5 License (http://creativecommons.org/licenses/by/2.5/)
+URL: http://www.damieng.com/icons/silkcompanion
diff --git a/public_html/lib/plugins/wrap/images/note/16/alert.png b/public_html/lib/plugins/wrap/images/note/16/alert.png
new file mode 100644
index 00000000..f051b1d9
Binary files /dev/null and b/public_html/lib/plugins/wrap/images/note/16/alert.png differ
diff --git a/public_html/lib/plugins/wrap/images/note/16/download.png b/public_html/lib/plugins/wrap/images/note/16/download.png
new file mode 100644
index 00000000..e8c72211
Binary files /dev/null and b/public_html/lib/plugins/wrap/images/note/16/download.png differ
diff --git a/public_html/lib/plugins/wrap/images/note/16/help.png b/public_html/lib/plugins/wrap/images/note/16/help.png
new file mode 100644
index 00000000..2e923a29
Binary files /dev/null and b/public_html/lib/plugins/wrap/images/note/16/help.png differ
diff --git a/public_html/lib/plugins/wrap/images/note/16/important.png b/public_html/lib/plugins/wrap/images/note/16/important.png
new file mode 100644
index 00000000..0d7f1f07
Binary files /dev/null and b/public_html/lib/plugins/wrap/images/note/16/important.png differ
diff --git a/public_html/lib/plugins/wrap/images/note/16/info.png b/public_html/lib/plugins/wrap/images/note/16/info.png
new file mode 100644
index 00000000..9b38f8ea
Binary files /dev/null and b/public_html/lib/plugins/wrap/images/note/16/info.png differ
diff --git a/public_html/lib/plugins/wrap/images/note/16/tip.png b/public_html/lib/plugins/wrap/images/note/16/tip.png
new file mode 100644
index 00000000..23824bb5
Binary files /dev/null and b/public_html/lib/plugins/wrap/images/note/16/tip.png differ
diff --git a/public_html/lib/plugins/wrap/images/note/16/todo.png b/public_html/lib/plugins/wrap/images/note/16/todo.png
new file mode 100644
index 00000000..ebaf17a0
Binary files /dev/null and b/public_html/lib/plugins/wrap/images/note/16/todo.png differ
diff --git a/public_html/lib/plugins/wrap/images/note/48/alert.png b/public_html/lib/plugins/wrap/images/note/48/alert.png
new file mode 100644
index 00000000..e6f090fb
Binary files /dev/null and b/public_html/lib/plugins/wrap/images/note/48/alert.png differ
diff --git a/public_html/lib/plugins/wrap/images/note/48/download.png b/public_html/lib/plugins/wrap/images/note/48/download.png
new file mode 100644
index 00000000..8f7def14
Binary files /dev/null and b/public_html/lib/plugins/wrap/images/note/48/download.png differ
diff --git a/public_html/lib/plugins/wrap/images/note/48/help.png b/public_html/lib/plugins/wrap/images/note/48/help.png
new file mode 100644
index 00000000..e39a09d1
Binary files /dev/null and b/public_html/lib/plugins/wrap/images/note/48/help.png differ
diff --git a/public_html/lib/plugins/wrap/images/note/48/important.png b/public_html/lib/plugins/wrap/images/note/48/important.png
new file mode 100644
index 00000000..6910ef64
Binary files /dev/null and b/public_html/lib/plugins/wrap/images/note/48/important.png differ
diff --git a/public_html/lib/plugins/wrap/images/note/48/info.png b/public_html/lib/plugins/wrap/images/note/48/info.png
new file mode 100644
index 00000000..ccb25e87
Binary files /dev/null and b/public_html/lib/plugins/wrap/images/note/48/info.png differ
diff --git a/public_html/lib/plugins/wrap/images/note/48/tip.png b/public_html/lib/plugins/wrap/images/note/48/tip.png
new file mode 100644
index 00000000..7bd89519
Binary files /dev/null and b/public_html/lib/plugins/wrap/images/note/48/tip.png differ
diff --git a/public_html/lib/plugins/wrap/images/note/48/todo.png b/public_html/lib/plugins/wrap/images/note/48/todo.png
new file mode 100644
index 00000000..cfbc272d
Binary files /dev/null and b/public_html/lib/plugins/wrap/images/note/48/todo.png differ
diff --git a/public_html/lib/plugins/wrap/images/toolbar/box.png b/public_html/lib/plugins/wrap/images/toolbar/box.png
new file mode 100644
index 00000000..33af0460
Binary files /dev/null and b/public_html/lib/plugins/wrap/images/toolbar/box.png differ
diff --git a/public_html/lib/plugins/wrap/images/toolbar/clear.png b/public_html/lib/plugins/wrap/images/toolbar/clear.png
new file mode 100644
index 00000000..1cdcb488
Binary files /dev/null and b/public_html/lib/plugins/wrap/images/toolbar/clear.png differ
diff --git a/public_html/lib/plugins/wrap/images/toolbar/column.png b/public_html/lib/plugins/wrap/images/toolbar/column.png
new file mode 100644
index 00000000..97b2e035
Binary files /dev/null and b/public_html/lib/plugins/wrap/images/toolbar/column.png differ
diff --git a/public_html/lib/plugins/wrap/images/toolbar/em.png b/public_html/lib/plugins/wrap/images/toolbar/em.png
new file mode 100644
index 00000000..89401313
Binary files /dev/null and b/public_html/lib/plugins/wrap/images/toolbar/em.png differ
diff --git a/public_html/lib/plugins/wrap/images/toolbar/hi.png b/public_html/lib/plugins/wrap/images/toolbar/hi.png
new file mode 100644
index 00000000..c57aa151
Binary files /dev/null and b/public_html/lib/plugins/wrap/images/toolbar/hi.png differ
diff --git a/public_html/lib/plugins/wrap/images/toolbar/lo.png b/public_html/lib/plugins/wrap/images/toolbar/lo.png
new file mode 100644
index 00000000..cb64e860
Binary files /dev/null and b/public_html/lib/plugins/wrap/images/toolbar/lo.png differ
diff --git a/public_html/lib/plugins/wrap/images/toolbar/picker.png b/public_html/lib/plugins/wrap/images/toolbar/picker.png
new file mode 100644
index 00000000..4b5b8477
Binary files /dev/null and b/public_html/lib/plugins/wrap/images/toolbar/picker.png differ
diff --git a/public_html/lib/plugins/wrap/lang/ar/lang.php b/public_html/lib/plugins/wrap/lang/ar/lang.php
new file mode 100644
index 00000000..0b2fc57b
--- /dev/null
+++ b/public_html/lib/plugins/wrap/lang/ar/lang.php
@@ -0,0 +1,16 @@
+
+ */
+$lang['column'] = 'عمود';
+$lang['box'] = 'مربع متوسط بسيط';
+$lang['info'] = 'مربع معلومات';
+$lang['tip'] = 'مربع تلميح';
+$lang['important'] = 'مربع هام';
+$lang['alert'] = 'مربع التنبيه';
+$lang['help'] = 'مربع تعليمات';
+$lang['download'] = 'مربع التحميل';
+$lang['lo'] = 'أقل أهمية';
diff --git a/public_html/lib/plugins/wrap/lang/ar/settings.php b/public_html/lib/plugins/wrap/lang/ar/settings.php
new file mode 100644
index 00000000..808b8439
--- /dev/null
+++ b/public_html/lib/plugins/wrap/lang/ar/settings.php
@@ -0,0 +1,11 @@
+
+ */
+$lang['restrictedClasses'] = 'تقييد استخدام البرنامج المساعد لهذه الفئات (مفصولة بفاصلة)';
+$lang['restrictionType'] = 'تعين نوع القيد، إذا كانت الفئات المذكورة أعلاه يجب تضمينها أو استبعادها';
+$lang['restrictionType_o_0'] = 'السماح لجميع الفئات باستثناء تلك المذكورة أعلاه';
+$lang['restrictionType_o_1'] = 'تقييد للفئات المذكورة أعلاه فقط وليس غيرها';
diff --git a/public_html/lib/plugins/wrap/lang/bn/lang.php b/public_html/lib/plugins/wrap/lang/bn/lang.php
new file mode 100644
index 00000000..301d2709
--- /dev/null
+++ b/public_html/lib/plugins/wrap/lang/bn/lang.php
@@ -0,0 +1,21 @@
+
+ */
+$lang['picker'] = 'মোড়ানো প্লাগইন';
+$lang['column'] = 'স্তম্ভ';
+$lang['box'] = 'সহজ কেন্দ্রিক বাক্স';
+$lang['info'] = 'তথ্য বাক্স';
+$lang['tip'] = 'টিপ বাক্স';
+$lang['important'] = 'গুরুত্বপূর্ণ বাক্স';
+$lang['alert'] = 'সতর্কতা বাক্স';
+$lang['help'] = 'সাহায্য বাক্স';
+$lang['download'] = 'ডাউনলোডের বাক্স';
+$lang['todo'] = 'করণীয় বাক্স';
+$lang['clear'] = 'স্পষ্ট floats';
+$lang['em'] = 'বিশেষ করে জোর';
+$lang['hi'] = 'হাইলাইট';
+$lang['lo'] = 'কম গুরুত্বপূর্ণ';
diff --git a/public_html/lib/plugins/wrap/lang/bn/settings.php b/public_html/lib/plugins/wrap/lang/bn/settings.php
new file mode 100644
index 00000000..baeca824
--- /dev/null
+++ b/public_html/lib/plugins/wrap/lang/bn/settings.php
@@ -0,0 +1,14 @@
+
+ */
+$lang['noPrefix'] = 'যা (কমা দিয়ে পৃথক) শ্রেণীর নাম "wrap_" সঙ্গে অগ্রে যুক্ত হওয়া থেকে বাদ দেওয়া হবে?';
+$lang['restrictedClasses'] = 'এইসব করতে প্লাগিন ব্যবহার সীমিত (কমা দিয়ে পৃথক করা) ক্লাস';
+$lang['restrictionType'] = 'ক্লাস উপরে অন্তর্ভুক্ত বা বাদ দেওয়া হইবে যদি সীমাবদ্ধতা ধরন, নির্দিষ্ট করে';
+$lang['restrictionType_o_0'] = 'উপরোক্ত জনকে ছাড়া সব শ্রেণীর অনুমতি';
+$lang['restrictionType_o_1'] = 'শুধুমাত্র উপরোক্ত শ্রেণীর এবং কোন অন্যদের সীমিত';
+$lang['syntaxDiv'] = 'কোন বাক্য গঠন ব্লক গোপন জন্য টুলবার জুতো ব্যবহার করা উচিত?';
+$lang['syntaxSpan'] = 'কোন বাক্য গঠন ইনলাইন গোপন জন্য টুলবার জুতো ব্যবহার করা উচিত?';
diff --git a/public_html/lib/plugins/wrap/lang/cs/lang.php b/public_html/lib/plugins/wrap/lang/cs/lang.php
new file mode 100644
index 00000000..7c3d7dcc
--- /dev/null
+++ b/public_html/lib/plugins/wrap/lang/cs/lang.php
@@ -0,0 +1,21 @@
+
+ */
+$lang['picker'] = 'Zásuvný modul Wrap';
+$lang['column'] = 'sloupce';
+$lang['box'] = 'jednoduchý vystředěný rámeček';
+$lang['info'] = 'informační rámeček';
+$lang['tip'] = 'rámeček s radou';
+$lang['important'] = 'důležitý rámeček';
+$lang['alert'] = 'výstražný rámeček';
+$lang['help'] = 'pomocný rámeček';
+$lang['download'] = 'rámeček s odkazem ke stažení';
+$lang['todo'] = 'rámeček úkolu';
+$lang['clear'] = 'clear floats';
+$lang['em'] = 'zvláštně zdůrazněné';
+$lang['hi'] = 'zvýrazněné';
+$lang['lo'] = 'méně důležité';
diff --git a/public_html/lib/plugins/wrap/lang/cs/settings.php b/public_html/lib/plugins/wrap/lang/cs/settings.php
new file mode 100644
index 00000000..e8d133cb
--- /dev/null
+++ b/public_html/lib/plugins/wrap/lang/cs/settings.php
@@ -0,0 +1,14 @@
+
+ */
+$lang['noPrefix'] = 'Která (čárkou oddělená) jména tříd nemají být označována předponou "wrap_"?';
+$lang['restrictedClasses'] = 'omezit použití zásuvného modulu na tyto (čárkou oddělené) třídy';
+$lang['restrictionType'] = 'typ omezení, rozhoduje jestli mají být výše uvedené třídy zahrnuty nebo vyřazeny';
+$lang['restrictionType_o_0'] = 'povolit všechny třídy kromě těch výše';
+$lang['restrictionType_o_1'] = 'omezit pouze na třídy výše a žádné jiné';
+$lang['syntaxDiv'] = 'Jaká syntax má být použita ve výběru pro zarovnání bloku? ';
+$lang['syntaxSpan'] = 'Jaká syntax má být použita ve výběru pro zarovnání v řádku? ';
diff --git a/public_html/lib/plugins/wrap/lang/da/lang.php b/public_html/lib/plugins/wrap/lang/da/lang.php
new file mode 100644
index 00000000..d300095b
--- /dev/null
+++ b/public_html/lib/plugins/wrap/lang/da/lang.php
@@ -0,0 +1,21 @@
+
+ */
+$lang['picker'] = 'Wrap Plugin';
+$lang['column'] = 'række';
+$lang['box'] = 'simpel centreret boks';
+$lang['info'] = 'info boks';
+$lang['tip'] = 'tip boks';
+$lang['important'] = 'vigtig boks';
+$lang['alert'] = 'alarm boks';
+$lang['help'] = 'hjælp boks';
+$lang['download'] = 'download boks';
+$lang['todo'] = 'todo boks';
+$lang['clear'] = 'ryd flydere';
+$lang['em'] = 'specielt fremhævet';
+$lang['hi'] = 'fremhævet';
+$lang['lo'] = 'mindre vigtigt';
diff --git a/public_html/lib/plugins/wrap/lang/da/settings.php b/public_html/lib/plugins/wrap/lang/da/settings.php
new file mode 100644
index 00000000..25b0962a
--- /dev/null
+++ b/public_html/lib/plugins/wrap/lang/da/settings.php
@@ -0,0 +1,12 @@
+
+ */
+$lang['noPrefix'] = 'Hvilke (kommaseparerede) klassenavne skal udelukkes fra at få præfikset "wrap_"?';
+$lang['restrictedClasses'] = 'begræns brugen af plugin til følgende (kommaseparerede) klasser';
+$lang['restrictionType'] = 'begrænsningstype, specificerer om ovenstående klasser skal inkluderes eller ekskluderes';
+$lang['restrictionType_o_0'] = 'tillad alle klasser på nær de ovenstående';
+$lang['restrictionType_o_1'] = 'begræns til ovenstående klasser og ingen andre';
diff --git a/public_html/lib/plugins/wrap/lang/de-informal/lang.php b/public_html/lib/plugins/wrap/lang/de-informal/lang.php
new file mode 100644
index 00000000..0e83e085
--- /dev/null
+++ b/public_html/lib/plugins/wrap/lang/de-informal/lang.php
@@ -0,0 +1,19 @@
+
+ */
+$lang['picker'] = 'Wrap-kromaĵo';
+$lang['column'] = 'kolumnoj';
+$lang['box'] = 'simpla centrita skatolo';
+$lang['info'] = 'inform-skatolo';
+$lang['tip'] = 'konsil-skatolo';
+$lang['important'] = 'grava skatolo';
+$lang['alert'] = 'avert-skatolo';
+$lang['help'] = 'help-skatolo';
+$lang['download'] = 'elŝut-skatolo';
+$lang['todo'] = 'farendaĵ-skatolo';
+$lang['clear'] = 'liberigi la randojn';
+$lang['em'] = 'aparte emfazita';
+$lang['hi'] = 'markita';
+$lang['lo'] = 'malpli grava';
diff --git a/public_html/lib/plugins/wrap/lang/eo/settings.php b/public_html/lib/plugins/wrap/lang/eo/settings.php
new file mode 100644
index 00000000..89d037a1
--- /dev/null
+++ b/public_html/lib/plugins/wrap/lang/eo/settings.php
@@ -0,0 +1,14 @@
+
+ */
+$lang['noPrefix'] = 'Kiuj (komo-disigitaj) klasnomoj estu ekskludataj de la prefikso "wrap_"?';
+$lang['restrictedClasses'] = 'limigi la uzon de la kromaĵo al tiuj klasoj (komo-disigitaj)';
+$lang['restrictionType'] = 'tipo de limigo (ĉu la supre menciitaj klasoj estu inkludataj aŭ ekskludataj?)';
+$lang['restrictionType_o_0'] = 'permesi ĉiujn klasojn krom la menciitaj';
+$lang['restrictionType_o_1'] = 'limigi al nur tiuj grupoj, neniuj aliaj';
+$lang['syntaxDiv'] = 'Kiun sintakson uzi por blok-volvoj en la ilaro-elektilo?';
+$lang['syntaxSpan'] = 'Kiun sintakson uzi por enliniaj volvoj en la ilaro-elektilo?';
diff --git a/public_html/lib/plugins/wrap/lang/es/lang.php b/public_html/lib/plugins/wrap/lang/es/lang.php
new file mode 100644
index 00000000..432cd05c
--- /dev/null
+++ b/public_html/lib/plugins/wrap/lang/es/lang.php
@@ -0,0 +1,20 @@
+
+ * @author Óscar M. Lage
+ */
+$lang['noPrefix'] = '¿Qué nombres de clase (separados por comas) no deberían ser precedidos de "wrap_"?';
+$lang['restrictedClasses'] = 'restringir el uso de este plugin a estas clases (separadas por comas)';
+$lang['restrictionType'] = 'tipo de restricción, especifica si las clases anteriores serán incluidas o ecluidas';
+$lang['restrictionType_o_0'] = 'permitir todas las clases excepto las anteriores';
+$lang['restrictionType_o_1'] = 'restringir a sólo las clases anteriores y no otras';
+$lang['syntaxDiv'] = '¿Qué sintaxis debería ser usada en el selector de la barra de herramientas para los bloques "wrap"?';
+$lang['syntaxSpan'] = '¿Qué sintaxis debería ser usada en el selector de la barra de herramientas para los "wrap" en linea?';
diff --git a/public_html/lib/plugins/wrap/lang/fa/lang.php b/public_html/lib/plugins/wrap/lang/fa/lang.php
new file mode 100644
index 00000000..14d04e72
--- /dev/null
+++ b/public_html/lib/plugins/wrap/lang/fa/lang.php
@@ -0,0 +1,20 @@
+
+ */
+$lang['column'] = 'ستون';
+$lang['box'] = 'کادر ساده';
+$lang['info'] = 'کادر اطلاعات';
+$lang['tip'] = 'کادر نکته';
+$lang['important'] = 'کادر مهم';
+$lang['alert'] = 'کادر هشدار';
+$lang['help'] = 'کادر کمک';
+$lang['download'] = 'کادر دانلود';
+$lang['todo'] = 'کادر کاربردی';
+$lang['clear'] = 'کادر شناور فعال';
+$lang['em'] = 'تاکید';
+$lang['hi'] = 'هایلایت';
+$lang['lo'] = 'کم اهمیت';
diff --git a/public_html/lib/plugins/wrap/lang/fr/lang.php b/public_html/lib/plugins/wrap/lang/fr/lang.php
new file mode 100644
index 00000000..0a94a1bb
--- /dev/null
+++ b/public_html/lib/plugins/wrap/lang/fr/lang.php
@@ -0,0 +1,23 @@
+
+ * @author schplurtz
+ * @author Schplurtz le Déboulonné
+ */
+$lang['picker'] = 'Extension Wrap';
+$lang['column'] = 'colonnes';
+$lang['box'] = 'bloc simple';
+$lang['info'] = 'bloc information';
+$lang['tip'] = 'bloc astuce';
+$lang['important'] = 'bloc important';
+$lang['alert'] = 'bloc alerte';
+$lang['help'] = 'bloc aide';
+$lang['download'] = 'bloc téléchargement';
+$lang['todo'] = 'bloc à faire';
+$lang['clear'] = 'rétablir le flux après un élément flottant';
+$lang['em'] = 'particulièrement important';
+$lang['hi'] = 'important';
+$lang['lo'] = 'peu important';
diff --git a/public_html/lib/plugins/wrap/lang/fr/settings.php b/public_html/lib/plugins/wrap/lang/fr/settings.php
new file mode 100644
index 00000000..91c520b3
--- /dev/null
+++ b/public_html/lib/plugins/wrap/lang/fr/settings.php
@@ -0,0 +1,18 @@
+
+ * @author schplurtz
+ * @author Schplurtz le Déboulonné
+ * @author Pietroni
+ */
+$lang['noPrefix'] = 'Quelles classes (séparées par une virgule) ne devraient pas être préfixées d\'un "wrap_" ?';
+$lang['restrictedClasses'] = 'Restreindre l\'utilisation de cette extension à ces classes. (liste séparée par des virgules)';
+$lang['restrictionType'] = 'Type de restriction. Indique s\'il faut inclure ou exclure les classes ci-dessus.';
+$lang['restrictionType_o_0'] = 'Autoriser toutes les classes sauf celles ci-dessus.';
+$lang['restrictionType_o_1'] = 'N\'autoriser que les classes ci dessus.';
+$lang['syntaxDiv'] = 'Quelle syntaxe les boutons de la barre d\'outil doivent-ils générer pour les éléments blocs ?';
+$lang['syntaxSpan'] = 'Quelle syntaxe les boutons de la barre d\'outil doivent-ils générer pour les éléments en ligne ?';
+$lang['darkTpl'] = 'Optimiser les couleurs pour les thèmes sombres?';
diff --git a/public_html/lib/plugins/wrap/lang/hr/lang.php b/public_html/lib/plugins/wrap/lang/hr/lang.php
new file mode 100644
index 00000000..3923ceb1
--- /dev/null
+++ b/public_html/lib/plugins/wrap/lang/hr/lang.php
@@ -0,0 +1,21 @@
+
+ */
+$lang['picker'] = 'Wrap dodatak';
+$lang['column'] = 'kolone';
+$lang['box'] = 'običan centrirani okvir';
+$lang['info'] = 'info okvir';
+$lang['tip'] = 'okvir savjet';
+$lang['important'] = 'okvir važno';
+$lang['alert'] = 'okvir upozorenja';
+$lang['help'] = 'okvir pomoći';
+$lang['download'] = 'okvir učitavanja';
+$lang['todo'] = 'okvir preostalo';
+$lang['clear'] = 'prazan okvir';
+$lang['em'] = 'posebno naglašeni';
+$lang['hi'] = 'istaknuti';
+$lang['lo'] = 'manje bitan';
diff --git a/public_html/lib/plugins/wrap/lang/hr/settings.php b/public_html/lib/plugins/wrap/lang/hr/settings.php
new file mode 100644
index 00000000..46f6f0a9
--- /dev/null
+++ b/public_html/lib/plugins/wrap/lang/hr/settings.php
@@ -0,0 +1,15 @@
+
+ */
+$lang['noPrefix'] = 'Koja (zarezom odvojene) imena klasa trebaju ne trebaju biti s prefiksom "wrap_"? ';
+$lang['restrictedClasses'] = 'ograniči korištenje ovog dodatka na ove klase (zarezom odvojena lista)';
+$lang['restrictionType'] = 'vrsta ograničenja, određuje da li gore navedene klase trebaju biti uključene ili isključene';
+$lang['restrictionType_o_0'] = 'dozvoli sve klase osim gore navedenih';
+$lang['restrictionType_o_1'] = 'dozvoli samo gore navedene klase';
+$lang['syntaxDiv'] = 'Koja sintaksa treba biti korištena u alatnoj traci za omeđivanje bloka?';
+$lang['syntaxSpan'] = 'Koja sintaksa treba biti korištena u alatnoj traci za omeđivanje teksta u liniji?';
+$lang['darkTpl'] = 'Prilagoditi boje za tamne predloške?';
diff --git a/public_html/lib/plugins/wrap/lang/hu/lang.php b/public_html/lib/plugins/wrap/lang/hu/lang.php
new file mode 100644
index 00000000..4dbfc99e
--- /dev/null
+++ b/public_html/lib/plugins/wrap/lang/hu/lang.php
@@ -0,0 +1,21 @@
+
+ */
+$lang['picker'] = 'Wrap-csatoló';
+$lang['column'] = 'oszlopok';
+$lang['box'] = 'egyszerű, középre igazított doboz';
+$lang['info'] = 'információs doboz';
+$lang['tip'] = 'tippdoboz';
+$lang['important'] = 'fontos doboz';
+$lang['alert'] = 'figyelmeztető doboz';
+$lang['help'] = 'súgódoboz';
+$lang['download'] = 'letöltéshez doboz';
+$lang['todo'] = 'teendőhöz doboz';
+$lang['clear'] = 'float tiltása';
+$lang['em'] = 'különösen hangsúlyos';
+$lang['hi'] = 'kiemelt';
+$lang['lo'] = 'kevésbé fontos';
diff --git a/public_html/lib/plugins/wrap/lang/hu/settings.php b/public_html/lib/plugins/wrap/lang/hu/settings.php
new file mode 100644
index 00000000..6f3c9daa
--- /dev/null
+++ b/public_html/lib/plugins/wrap/lang/hu/settings.php
@@ -0,0 +1,16 @@
+
+ * @author DelD
+ */
+$lang['noPrefix'] = 'Mely (vesszővel elválasztott) osztályneveknek ne legyen "wrap_" előtagja?';
+$lang['restrictedClasses'] = 'csatoló korlátozása ezekre a (vesszővel elválasztott) osztályokra';
+$lang['restrictionType'] = 'korlátozás típusa, megadja, hogy a fenti osztályokat figyelembe vegye vagy se a csatoló';
+$lang['restrictionType_o_0'] = 'minden osztály engedélyezése, kivéve a fentieket';
+$lang['restrictionType_o_1'] = 'csak a fenti osztályok engedélyezése';
+$lang['syntaxDiv'] = 'Milyen szintaxist használjunk a blokktípusú dobozokhoz az eszközsorban?';
+$lang['syntaxSpan'] = 'Milyen szintaxist használjunk a soron belüli (inline) dobozokhoz az eszközsorban?';
+$lang['darkTpl'] = 'Optimalizáljam a színeket sötét sablonokhoz?';
diff --git a/public_html/lib/plugins/wrap/lang/it/lang.php b/public_html/lib/plugins/wrap/lang/it/lang.php
new file mode 100644
index 00000000..a77be6ab
--- /dev/null
+++ b/public_html/lib/plugins/wrap/lang/it/lang.php
@@ -0,0 +1,12 @@
+
+ * @author Giovanni
+ */
+$lang['column'] = 'colonne';
+$lang['em'] = 'enfatizzato speciale';
+$lang['hi'] = 'evidenziato';
+$lang['lo'] = 'meno importante';
diff --git a/public_html/lib/plugins/wrap/lang/it/settings.php b/public_html/lib/plugins/wrap/lang/it/settings.php
new file mode 100644
index 00000000..84ad4d12
--- /dev/null
+++ b/public_html/lib/plugins/wrap/lang/it/settings.php
@@ -0,0 +1,12 @@
+
+ */
+$lang['noPrefix'] = 'quali nomi di classi (elenco separato da virgole) non devono avere il prefisso "wrap_"?';
+$lang['restrictedClasses'] = 'restringi l\'uso del plugin a queste classi (elenco separato da virgole)';
+$lang['restrictionType'] = 'tipo di restrizione, specifica se le classi sopra devono essere incluse o escluse';
+$lang['restrictionType_o_0'] = 'permetti tutte le classi tranne quelle sopra';
+$lang['restrictionType_o_1'] = 'restringi solo alle classi sopra e a nessun\'altra';
diff --git a/public_html/lib/plugins/wrap/lang/ja/lang.php b/public_html/lib/plugins/wrap/lang/ja/lang.php
new file mode 100644
index 00000000..598b4810
--- /dev/null
+++ b/public_html/lib/plugins/wrap/lang/ja/lang.php
@@ -0,0 +1,21 @@
+
+ */
+$lang['picker'] = 'Wrap プラグイン';
+$lang['column'] = '多段組み';
+$lang['box'] = '中央配置枠';
+$lang['info'] = '情報枠';
+$lang['tip'] = 'ヒント枠';
+$lang['important'] = '重要枠';
+$lang['alert'] = '警告枠';
+$lang['help'] = 'ヘルプ枠';
+$lang['download'] = 'ダウンロード枠';
+$lang['todo'] = 'TODO枠';
+$lang['clear'] = '回り込み解除';
+$lang['em'] = '特に強調';
+$lang['hi'] = 'ハイライト表示';
+$lang['lo'] = '非強調(薄色表示)';
diff --git a/public_html/lib/plugins/wrap/lang/ja/settings.php b/public_html/lib/plugins/wrap/lang/ja/settings.php
new file mode 100644
index 00000000..ec880ac4
--- /dev/null
+++ b/public_html/lib/plugins/wrap/lang/ja/settings.php
@@ -0,0 +1,16 @@
+
+ * @author Hideaki SAWADA
+ */
+$lang['noPrefix'] = 'プレフィックス"wrap_" なしのCSSセレクタを例外的に適用するクラス名(カンマ区切り)';
+$lang['restrictedClasses'] = '有効性をチェックするクラス名(カンマ区切り)';
+$lang['restrictionType'] = '指定したクラスの扱い方';
+$lang['restrictionType_o_0'] = '指定クラスを無効とし、他は有効とする';
+$lang['restrictionType_o_1'] = '指定クラスのみを有効とする';
+$lang['syntaxDiv'] = 'ツールバー使用時:ブロック型構文に使用するタグ名';
+$lang['syntaxSpan'] = 'ツールバー使用時:インライン型構文に使用するタグ名';
+$lang['darkTpl'] = '色の濃いテンプレート用に最適化しますか?';
diff --git a/public_html/lib/plugins/wrap/lang/ko/lang.php b/public_html/lib/plugins/wrap/lang/ko/lang.php
new file mode 100644
index 00000000..6dce54eb
--- /dev/null
+++ b/public_html/lib/plugins/wrap/lang/ko/lang.php
@@ -0,0 +1,21 @@
+
+ */
+$lang['picker'] = 'Wrap 플러그인';
+$lang['column'] = '단';
+$lang['box'] = '간단한 가운데 상자';
+$lang['info'] = '정보 상자';
+$lang['tip'] = '팁 상자';
+$lang['important'] = '중요 상자';
+$lang['alert'] = '경고 상자';
+$lang['help'] = '도움말 상자';
+$lang['download'] = '다운로드 상자';
+$lang['todo'] = '할 일 상자';
+$lang['clear'] = '플로트 지우기';
+$lang['em'] = '특히 강조';
+$lang['hi'] = '강조';
+$lang['lo'] = '덜 중요함';
diff --git a/public_html/lib/plugins/wrap/lang/ko/settings.php b/public_html/lib/plugins/wrap/lang/ko/settings.php
new file mode 100644
index 00000000..9cba9129
--- /dev/null
+++ b/public_html/lib/plugins/wrap/lang/ko/settings.php
@@ -0,0 +1,15 @@
+
+ */
+$lang['noPrefix'] = '어떤 (쉼표로 구분된) 클래스 이름이 "wrap_" 접두어가 필요가 없습니까?';
+$lang['restrictedClasses'] = '다음 (쉼표로 구분된) 클래스에 플러그인의 사용을 제한';
+$lang['restrictionType'] = '제한 유형은 위의 클래스가 포함되거나 제외되어야 하는지 지정';
+$lang['restrictionType_o_0'] = '위의 클래스를 제외하고 모든 클래스를 허용';
+$lang['restrictionType_o_1'] = '위의 클래스만 허용하고 다른 클래스를 제한';
+$lang['syntaxDiv'] = '어떤 문법이 블록 포장을 위해 도구 모음 선택기에서 사용되어야 합니까?';
+$lang['syntaxSpan'] = '어떤 문법이 인라인 포장을 위해 도구 모음 선택기에서 사용되어야 합니까?';
+$lang['darkTpl'] = '어두은 템플릿을 위해 색을 최적화하겠습니까?';
diff --git a/public_html/lib/plugins/wrap/lang/nl/lang.php b/public_html/lib/plugins/wrap/lang/nl/lang.php
new file mode 100644
index 00000000..f771b9dd
--- /dev/null
+++ b/public_html/lib/plugins/wrap/lang/nl/lang.php
@@ -0,0 +1,21 @@
+
+ */
+$lang['picker'] = 'Wrap Plugin';
+$lang['column'] = 'kolommen';
+$lang['box'] = 'simpele gecentreerde blok';
+$lang['info'] = 'informatie blok';
+$lang['tip'] = 'tip blok';
+$lang['important'] = 'belangrijk blok';
+$lang['alert'] = 'waarschuwingsblok';
+$lang['help'] = 'helpblok';
+$lang['download'] = 'downloadblok';
+$lang['todo'] = 'tedoen blok';
+$lang['clear'] = 'reset drijvende blokken (clear floats)';
+$lang['em'] = 'bijzonder benadrukken';
+$lang['hi'] = 'gemarkeerd';
+$lang['lo'] = 'minder belangrijk';
diff --git a/public_html/lib/plugins/wrap/lang/nl/settings.php b/public_html/lib/plugins/wrap/lang/nl/settings.php
new file mode 100644
index 00000000..8fb33ae2
--- /dev/null
+++ b/public_html/lib/plugins/wrap/lang/nl/settings.php
@@ -0,0 +1,16 @@
+
+ * @author Johan Wijnker
+ */
+$lang['noPrefix'] = 'Welke (komma gescheiden) klassennamen moeten niet het voorvoegsel "wrap_" krijgen?';
+$lang['restrictedClasses'] = 'Beperk het gebruik van de plugin tot deze (komma gescheiden) klassen';
+$lang['restrictionType'] = 'beperkingstype, specificeer of de klassen hierboven wel of niet gebruikt mogen worden';
+$lang['restrictionType_o_0'] = 'alle klassen zijn toegestaan, behalve de bovenstaande';
+$lang['restrictionType_o_1'] = 'beperk de toegestane klassen tot de bovenstaande, en geen anderen';
+$lang['syntaxDiv'] = 'Welke syntax moet worden gebruikt in het werkbalk-keuzemenu voor blok-wraps?';
+$lang['syntaxSpan'] = 'Welke syntax moet worden gebruikt in het werkbalk-keuzemenu voor inline-wraps?';
+$lang['darkTpl'] = 'Optimaliseer de kleuren voor donkere templates?';
diff --git a/public_html/lib/plugins/wrap/lang/no/lang.php b/public_html/lib/plugins/wrap/lang/no/lang.php
new file mode 100644
index 00000000..a1734b8f
--- /dev/null
+++ b/public_html/lib/plugins/wrap/lang/no/lang.php
@@ -0,0 +1,24 @@
+
+ */
+$lang['picker'] = 'Omhylningsplugin
+Omkransningsplugin';
+$lang['column'] = 'kolonner';
+$lang['box'] = 'enkel sentrert boks';
+$lang['info'] = 'infoboks';
+$lang['tip'] = 'tipsboks';
+$lang['important'] = 'viktig boks';
+$lang['alert'] = 'alarmboks';
+$lang['help'] = 'hjelpeboks';
+$lang['download'] = 'nedlastningsboks';
+$lang['todo'] = 'gjøremålsboks';
+$lang['clear'] = 'tøm floats';
+$lang['em'] = 'spesielt fremhevet (singular)
+spesielt fremhevede (plural)';
+$lang['hi'] = 'markert (singular)
+markerte (plural)';
+$lang['lo'] = 'mindre viktig';
diff --git a/public_html/lib/plugins/wrap/lang/no/settings.php b/public_html/lib/plugins/wrap/lang/no/settings.php
new file mode 100644
index 00000000..1bdc7623
--- /dev/null
+++ b/public_html/lib/plugins/wrap/lang/no/settings.php
@@ -0,0 +1,15 @@
+
+ */
+$lang['noPrefix'] = 'Hvilke klasser (adskilt med komma) bør eksluderes fra å ha prefiks "wrap_"?';
+$lang['restrictedClasses'] = 'begrens bruk av plugin til klasser adskilt med komma';
+$lang['restrictionType'] = 'restriksjonstype, spesifiserer om de ovenforstående klassene skal inkluderes eller ekskluderes';
+$lang['restrictionType_o_0'] = 'vis alle klasser bortsett fra de ovenforstående';
+$lang['restrictionType_o_1'] = 'begrens til kun ovenforstående klasser og ingen fler';
+$lang['syntaxDiv'] = 'Hvilken syntaks bør brukes i verktøylinjen valg for blokkomkransning?';
+$lang['syntaxSpan'] = 'Hvilken syntaks bør brukes i verktøylinjen valg for omkransning på en linje?';
+$lang['darkTpl'] = 'Optimer farger for mørke maler?';
diff --git a/public_html/lib/plugins/wrap/lang/pt-br/lang.php b/public_html/lib/plugins/wrap/lang/pt-br/lang.php
new file mode 100644
index 00000000..d1d20f59
--- /dev/null
+++ b/public_html/lib/plugins/wrap/lang/pt-br/lang.php
@@ -0,0 +1,21 @@
+
+ */
+$lang['picker'] = 'Plugin Wrap';
+$lang['column'] = 'coluna';
+$lang['box'] = 'caixa centralizada simples';
+$lang['info'] = 'caixa de informação';
+$lang['tip'] = 'caixa de sugestão';
+$lang['important'] = 'caixa importante';
+$lang['alert'] = 'caixa de alerta';
+$lang['help'] = 'caixa de ajuda';
+$lang['download'] = 'caixa de download';
+$lang['todo'] = 'caixa de tarefas a fazer';
+$lang['clear'] = 'limpar';
+$lang['em'] = 'especialmente enfatizado';
+$lang['hi'] = 'enfatizado';
+$lang['lo'] = 'menos significativo';
diff --git a/public_html/lib/plugins/wrap/lang/pt-br/settings.php b/public_html/lib/plugins/wrap/lang/pt-br/settings.php
new file mode 100644
index 00000000..261029ba
--- /dev/null
+++ b/public_html/lib/plugins/wrap/lang/pt-br/settings.php
@@ -0,0 +1,13 @@
+
+ * @author Juliano Marconi Lanigra
+ */
+$lang['noPrefix'] = 'Quais classes (separadas por vírgula) deverão ser excluídas de receber o prefixo "wrap_"?';
+$lang['restrictedClasses'] = 'uso restrito do plugin para essas classes (separadas por vírgula)';
+$lang['restrictionType'] = 'tipo de restrição, especifica se as classes acima deveriam ser incluídas ou excluídas';
+$lang['restrictionType_o_0'] = 'permite todas as classes exceto as acima';
+$lang['restrictionType_o_1'] = 'restrita somente às classes acima e nenhuma outra';
diff --git a/public_html/lib/plugins/wrap/lang/ru/lang.php b/public_html/lib/plugins/wrap/lang/ru/lang.php
new file mode 100644
index 00000000..c02c8866
--- /dev/null
+++ b/public_html/lib/plugins/wrap/lang/ru/lang.php
@@ -0,0 +1,23 @@
+
+ * @author Ilya Rozhkov
+ * @author Aleksandr Selivanov
+ */
+$lang['picker'] = 'Wrap';
+$lang['column'] = 'колонки';
+$lang['box'] = 'простой центрированный блок';
+$lang['info'] = 'блок «Информация»';
+$lang['tip'] = 'блок «Подсказка»';
+$lang['important'] = 'блок «Важно»';
+$lang['alert'] = 'блок «Тревога»';
+$lang['help'] = 'блок «Справка»';
+$lang['download'] = 'блок «Скачивание»';
+$lang['todo'] = 'блок «Список задач»';
+$lang['clear'] = 'очистить float\'ы';
+$lang['em'] = 'пометить важным';
+$lang['hi'] = 'маркер';
+$lang['lo'] = 'пометить неважным';
diff --git a/public_html/lib/plugins/wrap/lang/ru/settings.php b/public_html/lib/plugins/wrap/lang/ru/settings.php
new file mode 100644
index 00000000..f53143eb
--- /dev/null
+++ b/public_html/lib/plugins/wrap/lang/ru/settings.php
@@ -0,0 +1,16 @@
+
+ * @author Aleksandr Selivanov
+ * @author Rouslan
+ */
+$lang['noPrefix'] = 'К каким (разделенным запятыми) именам классов не должен быть приписан префикс "wrap_" ?';
+$lang['restrictedClasses'] = 'Классы плагина, которые нельзя использовать (перечислите через запятую)';
+$lang['restrictionType'] = 'Тип ограничения, указывающий, должны ли быть включены или исключены классы выше';
+$lang['restrictionType_o_0'] = 'разрешить все, за исключением классов, указанных выше';
+$lang['restrictionType_o_1'] = 'ограничить только классами, указанными выше';
+$lang['syntaxDiv'] = 'Какой синтаксис использовать для создания блоков и примечаний?';
+$lang['syntaxSpan'] = 'Какой синтаксис использовать для создания блоков выделения внутри текста?';
diff --git a/public_html/lib/plugins/wrap/lang/sk/lang.php b/public_html/lib/plugins/wrap/lang/sk/lang.php
new file mode 100644
index 00000000..af572f7e
--- /dev/null
+++ b/public_html/lib/plugins/wrap/lang/sk/lang.php
@@ -0,0 +1,12 @@
+
+ */
+$lang['picker'] = 'Wrap Plugin';
+$lang['column'] = 'stĺpec';
+$lang['em'] = 'zvlášť zdôraznený';
+$lang['hi'] = 'zvýraznený';
+$lang['lo'] = 'menej významný';
diff --git a/public_html/lib/plugins/wrap/lang/sk/settings.php b/public_html/lib/plugins/wrap/lang/sk/settings.php
new file mode 100644
index 00000000..4e79e945
--- /dev/null
+++ b/public_html/lib/plugins/wrap/lang/sk/settings.php
@@ -0,0 +1,12 @@
+
+ */
+$lang['noPrefix'] = 'Ktoré (čiarkou oddelené) mená tried by mali byť vynechané pri použití predpony "wrap_"?';
+$lang['restrictedClasses'] = 'Obmedzenie použitia pluginu na tieto (čiarkou oddelené) triedy';
+$lang['restrictionType'] = 'Typ obmedzenia, špecifikuje, či triedy uvedené vyššie maju byť zahrnuté alebo vynechané';
+$lang['restrictionType_o_0'] = 'povolenie pre všetky triedy okrem uvedených vyššie';
+$lang['restrictionType_o_1'] = 'obmedzenie len na triedy uvedené vyššie a žiadne iné';
diff --git a/public_html/lib/plugins/wrap/lang/tr/lang.php b/public_html/lib/plugins/wrap/lang/tr/lang.php
new file mode 100644
index 00000000..ba55922a
--- /dev/null
+++ b/public_html/lib/plugins/wrap/lang/tr/lang.php
@@ -0,0 +1,22 @@
+
+ * @author İlker R. Kapaç
+ */
+$lang['picker'] = 'Paket Eklentisi';
+$lang['column'] = 'sütunlar';
+$lang['box'] = 'ortalanmış basit kutu';
+$lang['info'] = 'bilgi kutusu';
+$lang['tip'] = 'ipucu kutusu';
+$lang['important'] = 'önemli kutusu';
+$lang['alert'] = 'ikaz kutusu';
+$lang['help'] = 'yardım kutusu';
+$lang['download'] = 'indirme kutusu';
+$lang['todo'] = 'yapılacaklar kutusu';
+$lang['clear'] = 'boşlukları temizle';
+$lang['em'] = 'özellikle vurgulanmış';
+$lang['hi'] = 'vurgulanmış';
+$lang['lo'] = 'daha az önemli';
diff --git a/public_html/lib/plugins/wrap/lang/tr/settings.php b/public_html/lib/plugins/wrap/lang/tr/settings.php
new file mode 100644
index 00000000..a4f7cd5a
--- /dev/null
+++ b/public_html/lib/plugins/wrap/lang/tr/settings.php
@@ -0,0 +1,15 @@
+
+ */
+$lang['noPrefix'] = 'Hangi sınıf isimleri, (virgülle ayrılmış) önüne "wrap_" öneki almaktan hariç tutulsun?';
+$lang['restrictedClasses'] = 'eklentinin kullanımını bu sınıflarla (virgülle ayrılmış) sınırla';
+$lang['restrictionType'] = 'kısıtlama tipi, üstteki sınıfların dalil mi edileceklerini yoksa hariç mi tutulacaklarını belirler.';
+$lang['restrictionType_o_0'] = 'üsttekiler hariç tüm sınıflara izin ver';
+$lang['restrictionType_o_1'] = 'sadece üstteki sınıflarla sınırla, başkasına izin verme';
+$lang['syntaxDiv'] = 'Blok paketi için araç çubuğunda hangi sözdizimi kullanılsın?';
+$lang['syntaxSpan'] = 'Satır içi paketi için araç çubuğunda hangi sözdizimi kullanılsın?';
+$lang['darkTpl'] = 'Karanlık şablonlar için renkler iyileştirilsin mi?';
diff --git a/public_html/lib/plugins/wrap/lang/zh-tw/lang.php b/public_html/lib/plugins/wrap/lang/zh-tw/lang.php
new file mode 100644
index 00000000..fe60272b
--- /dev/null
+++ b/public_html/lib/plugins/wrap/lang/zh-tw/lang.php
@@ -0,0 +1,19 @@
+
+ * @author maie
+ */
+$lang['noPrefix'] = '哪些CSS类不需要加上“wrap_"前缀?(逗号分隔)';
+$lang['restrictedClasses'] = '将插件的使用限制应用到这些类(逗号分隔)';
+$lang['restrictionType'] = '限制类型,指定上述类应该被包含或排除';
+$lang['restrictionType_o_0'] = '允许除上述类之外的所有类';
+$lang['restrictionType_o_1'] = '仅允许上述类';
+$lang['syntaxDiv'] = '在编辑工具栏的选择器中应对块级元素使用何种语法?';
+$lang['syntaxSpan'] = '在编辑工具栏的选择器中应对行内元素使用何种语法?';
+$lang['darkTpl'] = '优化黑模板的颜色?';
diff --git a/public_html/lib/plugins/wrap/manager.dat b/public_html/lib/plugins/wrap/manager.dat
new file mode 100644
index 00000000..f91b57e5
--- /dev/null
+++ b/public_html/lib/plugins/wrap/manager.dat
@@ -0,0 +1,2 @@
+downloadurl=https://github.com/selfthinker/dokuwiki_plugin_wrap/archive/stable.zip
+installed=Thu, 08 Sep 2016 12:06:06 +0000
diff --git a/public_html/lib/plugins/wrap/plugin.info.txt b/public_html/lib/plugins/wrap/plugin.info.txt
new file mode 100644
index 00000000..a8553eb9
--- /dev/null
+++ b/public_html/lib/plugins/wrap/plugin.info.txt
@@ -0,0 +1,8 @@
+base wrap
+author Anika Henke
+email anika@selfthinker.org
+date 2015-07-19
+name Wrap Plugin
+desc Universal plugin which combines functionalities of many other plugins. Wrap wiki text inside containers (divs or spans) and give them a class (choose from a variety of preset classes), a width and/or a language with its associated text direction.
+url https://www.dokuwiki.org/plugin:wrap
+#syntax See example.txt
diff --git a/public_html/lib/plugins/wrap/print.css b/public_html/lib/plugins/wrap/print.css
new file mode 100644
index 00000000..bae47053
--- /dev/null
+++ b/public_html/lib/plugins/wrap/print.css
@@ -0,0 +1,57 @@
+/********************************************************************
+Print Styles for the Wrap Plugin (additional to all.css)
+********************************************************************/
+
+/* boxes and notes with icons
+********************************************************************/
+
+.dokuwiki div.wrap_box,
+.dokuwiki div.wrap_danger, .dokuwiki div.wrap_warning, .dokuwiki div.wrap_caution, .dokuwiki div.wrap_notice, .dokuwiki div.wrap_safety,
+.dokuwiki div.wrap_info, .dokuwiki div.wrap_important, .dokuwiki div.wrap_alert, .dokuwiki div.wrap_tip, .dokuwiki div.wrap_help, .dokuwiki div.wrap_todo, .dokuwiki div.wrap_download {
+ border: 2px solid #999;
+ padding: 1em 1em .5em;
+ margin-bottom: 1.5em;
+}
+.dokuwiki span.wrap_box,
+.dokuwiki span.wrap_danger, .dokuwiki span.wrap_warning, .dokuwiki span.wrap_caution, .dokuwiki span.wrap_notice, .dokuwiki span.wrap_safety,
+.dokuwiki span.wrap_info, .dokuwiki span.wrap_important, .dokuwiki span.wrap_alert, .dokuwiki span.wrap_tip, .dokuwiki span.wrap_help, .dokuwiki span.wrap_todo, .dokuwiki span.wrap_download {
+ border: 1px solid #999;
+ padding: 0 .3em;
+}
+
+
+/* mark
+********************************************************************/
+
+.dokuwiki .wrap_hi {
+ border: 1px solid #999;
+}
+
+
+/* miscellaneous
+********************************************************************/
+
+/*____________ spoiler ____________*/
+
+.dokuwiki .wrap_spoiler {
+ visibility: hidden;
+}
+
+/*____________ pagebreak ____________*/
+
+.dokuwiki .wrap_pagebreak {
+ page-break-after: always;
+}
+
+/*____________ avoid page break ____________*/
+/* not yet supported by most browsers */
+
+.dokuwiki .wrap_nopagebreak {
+ page-break-inside: avoid;
+}
+
+/*____________ no print ____________*/
+
+.dokuwiki .wrap_noprint {
+ display: none;
+}
diff --git a/public_html/lib/plugins/wrap/style.css b/public_html/lib/plugins/wrap/style.css
new file mode 100644
index 00000000..fa6bc163
--- /dev/null
+++ b/public_html/lib/plugins/wrap/style.css
@@ -0,0 +1,203 @@
+/********************************************************************
+Screen Styles for the Wrap Plugin (additional to all.css)
+********************************************************************/
+
+/* box
+********************************************************************/
+
+.dokuwiki .wrap_box {
+ background: __background_alt__;
+ color: __text__;
+}
+.dokuwiki div.wrap_box,
+.dokuwiki div.wrap_danger,
+.dokuwiki div.wrap_warning,
+.dokuwiki div.wrap_caution,
+.dokuwiki div.wrap_notice,
+.dokuwiki div.wrap_safety {
+ padding: 1em 1em .5em;
+ margin-bottom: 1.5em;
+ overflow: hidden;
+}
+.dokuwiki span.wrap_box,
+.dokuwiki span.wrap_danger,
+.dokuwiki span.wrap_warning,
+.dokuwiki span.wrap_caution,
+.dokuwiki span.wrap_notice,
+.dokuwiki span.wrap_safety {
+ padding: 0 .3em;
+}
+
+/*____________ notes with icons ____________*/
+
+/* general styles for all note divs */
+.dokuwiki div.wrap_info,
+.dokuwiki div.wrap_important,
+.dokuwiki div.wrap_alert,
+.dokuwiki div.wrap_tip,
+.dokuwiki div.wrap_help,
+.dokuwiki div.wrap_todo,
+.dokuwiki div.wrap_download {
+ padding: 1em 1em .5em 70px;
+ margin-bottom: 1.5em;
+ min-height: 68px;
+ background-position: 10px 50%;
+ background-repeat: no-repeat;
+ color: inherit;
+ overflow: hidden;
+}
+/* general styles for all note spans */
+.dokuwiki span.wrap_info,
+.dokuwiki span.wrap_important,
+.dokuwiki span.wrap_alert,
+.dokuwiki span.wrap_tip,
+.dokuwiki span.wrap_help,
+.dokuwiki span.wrap_todo,
+.dokuwiki span.wrap_download {
+ padding: 0 2px 0 20px;
+ min-height: 20px;
+ background-position: 2px 50%;
+ background-repeat: no-repeat;
+ color: inherit;
+}
+
+/* sorry for icons glued to the right side, but there is currently no way
+ to make this look good without adjusting the images themselves */
+[dir=rtl] .dokuwiki div.wrap_info,
+[dir=rtl] .dokuwiki div.wrap_important,
+[dir=rtl] .dokuwiki div.wrap_alert,
+[dir=rtl] .dokuwiki div.wrap_tip,
+[dir=rtl] .dokuwiki div.wrap_help,
+[dir=rtl] .dokuwiki div.wrap_todo,
+[dir=rtl] .dokuwiki div.wrap_download {
+ padding: 1em 60px .5em 1em;
+ background-position: right 50%;
+}
+[dir=rtl] .dokuwiki span.wrap_info,
+[dir=rtl] .dokuwiki span.wrap_important,
+[dir=rtl] .dokuwiki span.wrap_alert,
+[dir=rtl] .dokuwiki span.wrap_tip,
+[dir=rtl] .dokuwiki span.wrap_help,
+[dir=rtl] .dokuwiki span.wrap_todo,
+[dir=rtl] .dokuwiki span.wrap_download {
+ padding: 0 18px 0 2px;
+ background-position: right 50%;
+}
+
+/*____________ info ____________*/
+.dokuwiki .wrap_info { background-color: #d1d7df; }
+.dokuwiki .wrap__dark.wrap_info { background-color: #343e4a; }
+.dokuwiki div.wrap_info { background-image: url(images/note/48/info.png); }
+.dokuwiki span.wrap_info { background-image: url(images/note/16/info.png); }
+
+/*____________ important ____________*/
+.dokuwiki .wrap_important { background-color: #ffd39f; }
+.dokuwiki .wrap__dark.wrap_important { background-color: #6c3b00; }
+.dokuwiki div.wrap_important { background-image: url(images/note/48/important.png); }
+.dokuwiki span.wrap_important { background-image: url(images/note/16/important.png); }
+
+/*____________ alert ____________*/
+.dokuwiki .wrap_alert { background-color: #ffbcaf; }
+.dokuwiki .wrap__dark.wrap_alert { background-color: #6b1100; }
+.dokuwiki div.wrap_alert { background-image: url(images/note/48/alert.png); }
+.dokuwiki span.wrap_alert { background-image: url(images/note/16/alert.png); }
+
+/*____________ tip ____________*/
+.dokuwiki .wrap_tip { background-color: #fff79f; }
+.dokuwiki .wrap__dark.wrap_tip { background-color: #4a4400; }
+.dokuwiki div.wrap_tip { background-image: url(images/note/48/tip.png); }
+.dokuwiki span.wrap_tip { background-image: url(images/note/16/tip.png); }
+
+/*____________ help ____________*/
+.dokuwiki .wrap_help { background-color: #dcc2ef; }
+.dokuwiki .wrap__dark.wrap_help { background-color: #3c1757; }
+.dokuwiki div.wrap_help { background-image: url(images/note/48/help.png); }
+.dokuwiki span.wrap_help { background-image: url(images/note/16/help.png); }
+
+/*____________ todo ____________*/
+.dokuwiki .wrap_todo { background-color: #c2efdd; }
+.dokuwiki .wrap__dark.wrap_todo { background-color: #17573e; }
+.dokuwiki div.wrap_todo { background-image: url(images/note/48/todo.png); }
+.dokuwiki span.wrap_todo { background-image: url(images/note/16/todo.png); }
+
+/*____________ download ____________*/
+.dokuwiki .wrap_download { background-color: #d6efc2; }
+.dokuwiki .wrap__dark.wrap_download { background-color: #345717; }
+.dokuwiki div.wrap_download { background-image: url(images/note/48/download.png); }
+.dokuwiki span.wrap_download { background-image: url(images/note/16/download.png); }
+
+
+/*____________ safety notes ____________*/
+
+.dokuwiki .wrap_danger {
+ background-color: #c00;
+ color: #fff;
+}
+.dokuwiki .wrap_warning {
+ background-color: #f60;
+ color: #000;
+}
+.dokuwiki .wrap_caution {
+ background-color: #ff0;
+ color: #000;
+}
+.dokuwiki .wrap_notice {
+ background-color: #06f;
+ color: #fff;
+}
+.dokuwiki .wrap_safety {
+ background-color: #090;
+ color: #fff;
+}
+
+
+/* mark
+********************************************************************/
+
+.dokuwiki .wrap_hi {
+ background-color: #ff9;
+ overflow: hidden;
+}
+.dokuwiki .wrap__dark.wrap_hi {
+ background-color: #4e4e0d;
+}
+
+
+/* miscellaneous
+********************************************************************/
+
+/*____________ spoiler ____________*/
+
+.dokuwiki .wrap_spoiler {
+ background-color: __background__ !important;
+ color: __background__ !important;
+ border: 1px dotted red;
+}
+
+/*____________ only print ____________*/
+
+.dokuwiki .wrap_onlyprint {
+ display: none;
+}
+
+/*____________ tabs ____________*/
+/* in addition to template styles */
+
+.dokuwiki .plugin_wrap.tabs {
+ margin-bottom: 1.4em;
+}
+
+/*____________ button-style link ____________*/
+
+.dokuwiki .wrap_button a:link,
+.dokuwiki .wrap_button a:visited {
+ background-color: __background_alt__;
+}
+.dokuwiki .wrap_button a:link:hover,
+.dokuwiki .wrap_button a:visited:hover,
+.dokuwiki .wrap_button a:link:focus,
+.dokuwiki .wrap_button a:visited:focus,
+.dokuwiki .wrap_button a:link:active,
+.dokuwiki .wrap_button a:visited:active {
+ background-color: __background_neu__;
+}
diff --git a/public_html/lib/plugins/wrap/syntax/closesection.php b/public_html/lib/plugins/wrap/syntax/closesection.php
new file mode 100644
index 00000000..4bb4837c
--- /dev/null
+++ b/public_html/lib/plugins/wrap/syntax/closesection.php
@@ -0,0 +1,40 @@
+
+ */
+
+if(!defined('DOKU_INC')) die();
+
+if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
+require_once(DOKU_PLUGIN.'syntax.php');
+
+class syntax_plugin_wrap_closesection extends DokuWiki_Syntax_Plugin {
+
+ function getType(){ return 'substition';}
+ function getPType(){ return 'block';}
+ function getSort(){ return 195; }
+
+ /**
+ * Dummy handler, this syntax part has no syntax but is directly added to the instructions by the div syntax
+ */
+ function handle($match, $state, $pos, Doku_Handler $handler){
+ }
+
+ /**
+ * Create output
+ */
+ function render($mode, Doku_Renderer $renderer, $indata) {
+ if($mode == 'xhtml'){
+ /** @var Doku_Renderer_xhtml $renderer */
+ $renderer->finishSectionEdit();
+ return true;
+ }
+ return false;
+ }
+
+
+}
+
diff --git a/public_html/lib/plugins/wrap/syntax/div.php b/public_html/lib/plugins/wrap/syntax/div.php
new file mode 100644
index 00000000..2e84c2ba
--- /dev/null
+++ b/public_html/lib/plugins/wrap/syntax/div.php
@@ -0,0 +1,132 @@
+
+ */
+
+if(!defined('DOKU_INC')) die();
+
+if(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/');
+require_once(DOKU_PLUGIN.'syntax.php');
+
+class syntax_plugin_wrap_div extends DokuWiki_Syntax_Plugin {
+ protected $special_pattern = '\r\n]*?/>';
+ protected $entry_pattern = '
(?=.*?
)';
+ protected $exit_pattern = '
';
+
+ function getType(){ return 'formatting';}
+ function getAllowedTypes() { return array('container', 'formatting', 'substition', 'protected', 'disabled', 'paragraphs'); }
+ function getPType(){ return 'stack';}
+ function getSort(){ return 195; }
+ // override default accepts() method to allow nesting - ie, to get the plugin accepts its own entry syntax
+ function accepts($mode) {
+ if ($mode == substr(get_class($this), 7)) return true;
+ return parent::accepts($mode);
+ }
+
+ /**
+ * Connect pattern to lexer
+ */
+ function connectTo($mode) {
+ $this->Lexer->addSpecialPattern($this->special_pattern,$mode,'plugin_wrap_'.$this->getPluginComponent());
+ $this->Lexer->addEntryPattern($this->entry_pattern,$mode,'plugin_wrap_'.$this->getPluginComponent());
+ }
+
+ function postConnect() {
+ $this->Lexer->addExitPattern($this->exit_pattern, 'plugin_wrap_'.$this->getPluginComponent());
+ $this->Lexer->addPattern('[ \t]*={2,}[^\n]+={2,}[ \t]*(?=\n)', 'plugin_wrap_'.$this->getPluginComponent());
+ }
+
+ /**
+ * Handle the match
+ */
+ function handle($match, $state, $pos, Doku_Handler $handler){
+ global $conf;
+ switch ($state) {
+ case DOKU_LEXER_ENTER:
+ case DOKU_LEXER_SPECIAL:
+ $data = strtolower(trim(substr($match,strpos($match,' '),-1)," \t\n/"));
+ return array($state, $data);
+
+ case DOKU_LEXER_UNMATCHED:
+ $handler->_addCall('cdata', array($match), $pos);
+ break;
+
+ case DOKU_LEXER_MATCHED:
+ // we have a == header ==, use the core header() renderer
+ // (copied from core header() in inc/parser/handler.php)
+ $title = trim($match);
+ $level = 7 - strspn($title,'=');
+ if($level < 1) $level = 1;
+ $title = trim($title,'=');
+ $title = trim($title);
+
+ $handler->_addCall('header',array($title,$level,$pos), $pos);
+ // close the section edit the header could open
+ if ($title && $level <= $conf['maxseclevel']) {
+ $handler->addPluginCall('wrap_closesection', array(), DOKU_LEXER_SPECIAL, $pos, '');
+ }
+ break;
+
+ case DOKU_LEXER_EXIT:
+ return array($state, '');
+ }
+ return false;
+ }
+
+ /**
+ * Create output
+ */
+ function render($mode, Doku_Renderer $renderer, $indata) {
+ static $type_stack = array ();
+
+ if (empty($indata)) return false;
+ list($state, $data) = $indata;
+
+ if($mode == 'xhtml'){
+ /** @var Doku_Renderer_xhtml $renderer */
+ switch ($state) {
+ case DOKU_LEXER_ENTER:
+ // add a section edit right at the beginning of the wrap output
+ $renderer->startSectionEdit(0, 'plugin_wrap_start');
+ $renderer->finishSectionEdit();
+ // add a section edit for the end of the wrap output. This prevents the renderer
+ // from closing the last section edit so the next section button after the wrap syntax will
+ // include the whole wrap syntax
+ $renderer->startSectionEdit(0, 'plugin_wrap_end');
+
+ case DOKU_LEXER_SPECIAL:
+ $wrap = $this->loadHelper('wrap');
+ $attr = $wrap->buildAttributes($data, 'plugin_wrap');
+
+ $renderer->doc .= '';
+ if ($state == DOKU_LEXER_SPECIAL) $renderer->doc .= '
';
+ break;
+
+ case DOKU_LEXER_EXIT:
+ $renderer->doc .= ' ';
+ $renderer->finishSectionEdit();
+ break;
+ }
+ return true;
+ }
+ if($mode == 'odt'){
+ switch ($state) {
+ case DOKU_LEXER_ENTER:
+ $wrap = plugin_load('helper', 'wrap');
+ array_push ($type_stack, $wrap->renderODTElementOpen($renderer, 'div', $data));
+ break;
+
+ case DOKU_LEXER_EXIT:
+ $element = array_pop ($type_stack);
+ $wrap = plugin_load('helper', 'wrap');
+ $wrap->renderODTElementClose ($renderer, $element);
+ break;
+ }
+ return true;
+ }
+ return false;
+ }
+}
diff --git a/public_html/lib/plugins/wrap/syntax/divblock.php b/public_html/lib/plugins/wrap/syntax/divblock.php
new file mode 100644
index 00000000..9bac0532
--- /dev/null
+++ b/public_html/lib/plugins/wrap/syntax/divblock.php
@@ -0,0 +1,21 @@
+ ...