diff --git a/config.inc.php b/config.inc.php new file mode 100644 index 0000000..6642930 --- /dev/null +++ b/config.inc.php @@ -0,0 +1,62 @@ +appendFile($REX['INCLUDE_PATH'].'/addons/'.$addon_name.'/lang/'); + } + + $REX['ADDON']['rxid'][$addon_name] = '711'; + $REX['ADDON']['page'][$addon_name] = "markitup"; + + if(TRUE == $REX['REDAXO']) + { + $REX['ADDON']['name'][$addon_name] = $I18N->msg("addon_name"); + } + + // Recht um das AddOn zu aendern + $REX['ADDON']['perm'][$addon_name] = 'markitup[1]'; + + // Credits + $REX['ADDON']['version'][$addon_name] = '1.1.12'; + $REX['ADDON']['author'][$addon_name] = 'Gilbert Seilheimer'; + $REX['ADDON']['supportpage'][$addon_name] = 'forum.redaxo.org'; + + // ************* + $REX['PERM'][] = 'markitup[1]'; + $REX['PERM'][] = 'markitup[2]'; + + // Fuer die Benutzervewaltung + $REX['EXTPERM'][] = 'markitup[3]'; + + ////////////////////////////////////////////////////////////////////////////////// + // SUBPAGES + ////////////////////////////////////////////////////////////////////////////////// + + if(TRUE == $REX['REDAXO']) + { + $REX['ADDON'][$addon_name]['SUBPAGES'] = + array( + array('readme', $I18N->msg('addon_subpage_readme')), + array('modul', $I18N->msg('addon_subpage_modul')) + ); + } +?> \ No newline at end of file diff --git a/files/jquery.markitup.js b/files/jquery.markitup.js new file mode 100644 index 0000000..10add9d --- /dev/null +++ b/files/jquery.markitup.js @@ -0,0 +1,593 @@ +// ---------------------------------------------------------------------------- +// markItUp! Universal MarkUp Engine, JQuery plugin +// v 1.1.x +// Dual licensed under the MIT and GPL licenses. +// ---------------------------------------------------------------------------- +// Copyright (C) 2007-2011 Jay Salvat +// http://markitup.jaysalvat.com/ +// ---------------------------------------------------------------------------- +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// ---------------------------------------------------------------------------- +(function($) { + $.fn.markItUp = function(settings, extraSettings) { + var options, ctrlKey, shiftKey, altKey; + ctrlKey = shiftKey = altKey = false; + + options = { id: '', + nameSpace: '', + root: '', + previewInWindow: '', // 'width=800, height=600, resizable=yes, scrollbars=yes' + previewAutoRefresh: true, + previewPosition: 'after', + previewTemplatePath: '~/templates/preview.html', + previewParser: false, + previewParserPath: '', + previewParserVar: 'data', + resizeHandle: true, + beforeInsert: '', + afterInsert: '', + onEnter: {}, + onShiftEnter: {}, + onCtrlEnter: {}, + onTab: {}, + markupSet: [ { /* set */ } ] + }; + $.extend(options, settings, extraSettings); + + // compute markItUp! path + if (!options.root) { + $('script').each(function(a, tag) { + miuScript = $(tag).get(0).src.match(/(.*)jquery\.markitup(\.pack)?\.js$/); + if (miuScript !== null) { + options.root = miuScript[1]; + } + }); + } + + return this.each(function() { + var $$, textarea, levels, scrollPosition, caretPosition, caretOffset, + clicked, hash, header, footer, previewWindow, template, iFrame, abort; + $$ = $(this); + textarea = this; + levels = []; + abort = false; + scrollPosition = caretPosition = 0; + caretOffset = -1; + + options.previewParserPath = localize(options.previewParserPath); + options.previewTemplatePath = localize(options.previewTemplatePath); + + // apply the computed path to ~/ + function localize(data, inText) { + if (inText) { + return data.replace(/("|')~\//g, "$1"+options.root); + } + return data.replace(/^~\//, options.root); + } + + // init and build editor + function init() { + id = ''; nameSpace = ''; + if (options.id) { + id = 'id="'+options.id+'"'; + } else if ($$.attr("id")) { + id = 'id="markItUp'+($$.attr("id").substr(0, 1).toUpperCase())+($$.attr("id").substr(1))+'"'; + + } + if (options.nameSpace) { + nameSpace = 'class="'+options.nameSpace+'"'; + } + $$.wrap('
'); + $$.wrap('
'); + $$.wrap('
'); + $$.addClass("markItUpEditor"); + + // add the header before the textarea + header = $('
').insertBefore($$); + $(dropMenus(options.markupSet)).appendTo(header); + + // add the footer after the textarea + footer = $('
').insertAfter($$); + + // add the resize handle after textarea + if (options.resizeHandle === true && $.browser.safari !== true) { + resizeHandle = $('
') + .insertAfter($$) + .bind("mousedown", function(e) { + var h = $$.height(), y = e.clientY, mouseMove, mouseUp; + mouseMove = function(e) { + $$.css("height", Math.max(20, e.clientY+h-y)+"px"); + return false; + }; + mouseUp = function(e) { + $("html").unbind("mousemove", mouseMove).unbind("mouseup", mouseUp); + return false; + }; + $("html").bind("mousemove", mouseMove).bind("mouseup", mouseUp); + }); + footer.append(resizeHandle); + } + + // listen key events + $$.keydown(keyPressed).keyup(keyPressed); + + // bind an event to catch external calls + $$.bind("insertion", function(e, settings) { + if (settings.target !== false) { + get(); + } + if (textarea === $.markItUp.focused) { + markup(settings); + } + }); + + // remember the last focus + $$.focus(function() { + $.markItUp.focused = this; + }); + } + + // recursively build header with dropMenus from markupset + function dropMenus(markupSet) { + var ul = $(''), i = 0; + $('li:hover > ul', ul).css('display', 'block'); + $.each(markupSet, function() { + var button = this, t = '', title, li, j; + title = (button.key) ? (button.name||'')+' [Ctrl+'+button.key+']' : (button.name||''); + key = (button.key) ? 'accesskey="'+button.key+'"' : ''; + if (button.separator) { + li = $('
  • '+(button.separator||'')+'
  • ').appendTo(ul); + } else { + i++; + for (j = levels.length -1; j >= 0; j--) { + t += levels[j]+"-"; + } + li = $('
  • '+(button.name||'')+'
  • ') + .bind("contextmenu", function() { // prevent contextmenu on mac and allow ctrl+click + return false; + }).click(function() { + return false; + }).bind("focusin", function(){ + $$.focus(); + }).mouseup(function() { + if (button.call) { + eval(button.call)(); + } + setTimeout(function() { markup(button) },1); + return false; + }).hover(function() { + $('> ul', this).show(); + $(document).one('click', function() { // close dropmenu if click outside + $('ul ul', header).hide(); + } + ); + }, function() { + $('> ul', this).hide(); + } + ).appendTo(ul); + if (button.dropMenu) { + levels.push(i); + $(li).addClass('markItUpDropMenu').append(dropMenus(button.dropMenu)); + } + } + }); + levels.pop(); + return ul; + } + + // markItUp! markups + function magicMarkups(string) { + if (string) { + string = string.toString(); + string = string.replace(/\(\!\(([\s\S]*?)\)\!\)/g, + function(x, a) { + var b = a.split('|!|'); + if (altKey === true) { + return (b[1] !== undefined) ? b[1] : b[0]; + } else { + return (b[1] === undefined) ? "" : b[0]; + } + } + ); + // [![prompt]!], [![prompt:!:value]!] + string = string.replace(/\[\!\[([\s\S]*?)\]\!\]/g, + function(x, a) { + var b = a.split(':!:'); + if (abort === true) { + return false; + } + value = prompt(b[0], (b[1]) ? b[1] : ''); + if (value === null) { + abort = true; + } + return value; + } + ); + return string; + } + return ""; + } + + // prepare action + function prepare(action) { + if ($.isFunction(action)) { + action = action(hash); + } + return magicMarkups(action); + } + + // build block to insert + function build(string) { + var openWith = prepare(clicked.openWith); + var placeHolder = prepare(clicked.placeHolder); + var replaceWith = prepare(clicked.replaceWith); + var closeWith = prepare(clicked.closeWith); + var openBlockWith = prepare(clicked.openBlockWith); + var closeBlockWith = prepare(clicked.closeBlockWith); + var multiline = clicked.multiline; + + if (replaceWith !== "") { + block = openWith + replaceWith + closeWith; + } else if (selection === '' && placeHolder !== '') { + block = openWith + placeHolder + closeWith; + } else { + string = string || selection; + + var lines = selection.split(/\r?\n/), blocks = []; + + for (var l=0; l < lines.length; l++) { + line = lines[l]; + var trailingSpaces; + if (trailingSpaces = line.match(/ *$/)) { + blocks.push(openWith + line.replace(/ *$/g, '') + closeWith + trailingSpaces); + } else { + blocks.push(openWith + line + closeWith); + } + } + + block = blocks.join("\n"); + } + + block = openBlockWith + block + closeBlockWith; + + return { block:block, + openWith:openWith, + replaceWith:replaceWith, + placeHolder:placeHolder, + closeWith:closeWith + }; + } + + // define markup to insert + function markup(button) { + var len, j, n, i; + hash = clicked = button; + get(); + $.extend(hash, { line:"", + root:options.root, + textarea:textarea, + selection:(selection||''), + caretPosition:caretPosition, + ctrlKey:ctrlKey, + shiftKey:shiftKey, + altKey:altKey + } + ); + // callbacks before insertion + prepare(options.beforeInsert); + prepare(clicked.beforeInsert); + if ((ctrlKey === true && shiftKey === true) || button.multiline === true) { + prepare(clicked.beforeMultiInsert); + } + $.extend(hash, { line:1 }); + + if ((ctrlKey === true && shiftKey === true)) { + lines = selection.split(/\r?\n/); + for (j = 0, n = lines.length, i = 0; i < n; i++) { + if ($.trim(lines[i]) !== '') { + $.extend(hash, { line:++j, selection:lines[i] } ); + lines[i] = build(lines[i]).block; + } else { + lines[i] = ""; + } + } + string = { block:lines.join('\n')}; + start = caretPosition; + len = string.block.length + (($.browser.opera) ? n-1 : 0); + } else if (ctrlKey === true) { + string = build(selection); + start = caretPosition + string.openWith.length; + len = string.block.length - string.openWith.length - string.closeWith.length; + len = len - (string.block.match(/ $/) ? 1 : 0); + len -= fixIeBug(string.block); + } else if (shiftKey === true) { + string = build(selection); + start = caretPosition; + len = string.block.length; + len -= fixIeBug(string.block); + } else { + string = build(selection); + start = caretPosition + string.block.length ; + len = 0; + start -= fixIeBug(string.block); + } + if ((selection === '' && string.replaceWith === '')) { + caretOffset += fixOperaBug(string.block); + + start = caretPosition + string.openWith.length; + len = string.block.length - string.openWith.length - string.closeWith.length; + + caretOffset = $$.val().substring(caretPosition, $$.val().length).length; + caretOffset -= fixOperaBug($$.val().substring(0, caretPosition)); + } + $.extend(hash, { caretPosition:caretPosition, scrollPosition:scrollPosition } ); + + if (string.block !== selection && abort === false) { + insert(string.block); + set(start, len); + } else { + caretOffset = -1; + } + get(); + + $.extend(hash, { line:'', selection:selection }); + + // callbacks after insertion + if ((ctrlKey === true && shiftKey === true) || button.multiline === true) { + prepare(clicked.afterMultiInsert); + } + prepare(clicked.afterInsert); + prepare(options.afterInsert); + + // refresh preview if opened + if (previewWindow && options.previewAutoRefresh) { + refreshPreview(); + } + + // reinit keyevent + shiftKey = altKey = ctrlKey = abort = false; + } + + // Substract linefeed in Opera + function fixOperaBug(string) { + if ($.browser.opera) { + return string.length - string.replace(/\n*/g, '').length; + } + return 0; + } + // Substract linefeed in IE + function fixIeBug(string) { + if ($.browser.msie) { + return string.length - string.replace(/\r*/g, '').length; + } + return 0; + } + + // add markup + function insert(block) { + if (document.selection) { + var newSelection = document.selection.createRange(); + newSelection.text = block; + } else { + textarea.value = textarea.value.substring(0, caretPosition) + block + textarea.value.substring(caretPosition + selection.length, textarea.value.length); + } + } + + // set a selection + function set(start, len) { + if (textarea.createTextRange){ + // quick fix to make it work on Opera 9.5 + if ($.browser.opera && $.browser.version >= 9.5 && len == 0) { + return false; + } + range = textarea.createTextRange(); + range.collapse(true); + range.moveStart('character', start); + range.moveEnd('character', len); + range.select(); + } else if (textarea.setSelectionRange ){ + textarea.setSelectionRange(start, start + len); + } + textarea.scrollTop = scrollPosition; + textarea.focus(); + } + + // get the selection + function get() { + textarea.focus(); + + scrollPosition = textarea.scrollTop; + if (document.selection) { + selection = document.selection.createRange().text; + if ($.browser.msie) { // ie + var range = document.selection.createRange(), rangeCopy = range.duplicate(); + rangeCopy.moveToElementText(textarea); + caretPosition = -1; + while(rangeCopy.inRange(range)) { + rangeCopy.moveStart('character'); + caretPosition ++; + } + } else { // opera + caretPosition = textarea.selectionStart; + } + } else { // gecko & webkit + caretPosition = textarea.selectionStart; + + selection = textarea.value.substring(caretPosition, textarea.selectionEnd); + } + return selection; + } + + // open preview window + function preview() { + if (!previewWindow || previewWindow.closed) { + if (options.previewInWindow) { + previewWindow = window.open('', 'preview', options.previewInWindow); + $(window).unload(function() { + previewWindow.close(); + }); + } else { + iFrame = $(''); + if (options.previewPosition == 'after') { + iFrame.insertAfter(footer); + } else { + iFrame.insertBefore(header); + } + previewWindow = iFrame[iFrame.length - 1].contentWindow || frame[iFrame.length - 1]; + } + } else if (altKey === true) { + if (iFrame) { + iFrame.remove(); + } else { + previewWindow.close(); + } + previewWindow = iFrame = false; + } + if (!options.previewAutoRefresh) { + refreshPreview(); + } + if (options.previewInWindow) { + previewWindow.focus(); + } + } + + // refresh Preview window + function refreshPreview() { + renderPreview(); + } + + function renderPreview() { + var phtml; + if (options.previewParser && typeof options.previewParser === 'function') { + var data = options.previewParser( $$.val() ); + writeInPreview( localize(data, 1) ); + } else if (options.previewParserPath !== '') { + $.ajax({ + type: 'POST', + dataType: 'text', + global: false, + url: options.previewParserPath, + data: options.previewParserVar+'='+encodeURIComponent($$.val()), + success: function(data) { + writeInPreview( localize(data, 1) ); + } + }); + } else { + if (!template) { + $.ajax({ + url: options.previewTemplatePath, + dataType: 'text', + global: false, + success: function(data) { + writeInPreview( localize(data, 1).replace(//g, $$.val()) ); + } + }); + } + } + return false; + } + + function writeInPreview(data) { + if (previewWindow.document) { + try { + sp = previewWindow.document.documentElement.scrollTop + } catch(e) { + sp = 0; + } + previewWindow.document.open(); + previewWindow.document.write(data); + previewWindow.document.close(); + previewWindow.document.documentElement.scrollTop = sp; + } + } + + // set keys pressed + function keyPressed(e) { + shiftKey = e.shiftKey; + altKey = e.altKey; + ctrlKey = (!(e.altKey && e.ctrlKey)) ? (e.ctrlKey || e.metaKey) : false; + + if (e.type === 'keydown') { + if (ctrlKey === true) { + li = $('a[accesskey="'+String.fromCharCode(e.keyCode)+'"]', header).parent('li'); + if (li.length !== 0) { + ctrlKey = false; + setTimeout(function() { + li.triggerHandler('mouseup'); + },1); + return false; + } + } + if (e.keyCode === 13 || e.keyCode === 10) { // Enter key + if (ctrlKey === true) { // Enter + Ctrl + ctrlKey = false; + markup(options.onCtrlEnter); + return options.onCtrlEnter.keepDefault; + } else if (shiftKey === true) { // Enter + Shift + shiftKey = false; + markup(options.onShiftEnter); + return options.onShiftEnter.keepDefault; + } else { // only Enter + markup(options.onEnter); + return options.onEnter.keepDefault; + } + } + if (e.keyCode === 9) { // Tab key + if (shiftKey == true || ctrlKey == true || altKey == true) { + return false; + } + if (caretOffset !== -1) { + get(); + caretOffset = $$.val().length - caretOffset; + set(caretOffset, 0); + caretOffset = -1; + return false; + } else { + markup(options.onTab); + return options.onTab.keepDefault; + } + } + } + } + + init(); + }); + }; + + $.fn.markItUpRemove = function() { + return this.each(function() { + var $$ = $(this).unbind().removeClass('markItUpEditor'); + $$.parent('div').parent('div.markItUp').parent('div').replaceWith($$); + } + ); + }; + + $.markItUp = function(settings) { + var options = { target:false }; + $.extend(options, settings); + if (options.target) { + return $(options.target).each(function() { + $(this).focus(); + $(this).trigger('insertion', [options]); + }); + } else { + $('textarea').trigger('insertion', [options]); + } + }; +})(jQuery); diff --git a/files/sets/images/accordion-content.png b/files/sets/images/accordion-content.png new file mode 100644 index 0000000..f96b16a Binary files /dev/null and b/files/sets/images/accordion-content.png differ diff --git a/files/sets/images/accordion-headline.png b/files/sets/images/accordion-headline.png new file mode 100644 index 0000000..ff7ee5d Binary files /dev/null and b/files/sets/images/accordion-headline.png differ diff --git a/files/sets/images/bold.png b/files/sets/images/bold.png new file mode 100644 index 0000000..889ae80 Binary files /dev/null and b/files/sets/images/bold.png differ diff --git a/files/sets/images/clean.png b/files/sets/images/clean.png new file mode 100644 index 0000000..7e7cefb Binary files /dev/null and b/files/sets/images/clean.png differ diff --git a/files/sets/images/code.png b/files/sets/images/code.png new file mode 100644 index 0000000..63fe6ce Binary files /dev/null and b/files/sets/images/code.png differ diff --git a/files/sets/images/h1.png b/files/sets/images/h1.png new file mode 100644 index 0000000..9c122e9 Binary files /dev/null and b/files/sets/images/h1.png differ diff --git a/files/sets/images/h2.png b/files/sets/images/h2.png new file mode 100644 index 0000000..fbd8765 Binary files /dev/null and b/files/sets/images/h2.png differ diff --git a/files/sets/images/h3.png b/files/sets/images/h3.png new file mode 100644 index 0000000..c7836cf Binary files /dev/null and b/files/sets/images/h3.png differ diff --git a/files/sets/images/h4.png b/files/sets/images/h4.png new file mode 100644 index 0000000..4e929ea Binary files /dev/null and b/files/sets/images/h4.png differ diff --git a/files/sets/images/h5.png b/files/sets/images/h5.png new file mode 100644 index 0000000..30cabeb Binary files /dev/null and b/files/sets/images/h5.png differ diff --git a/files/sets/images/h6.png b/files/sets/images/h6.png new file mode 100644 index 0000000..058170a Binary files /dev/null and b/files/sets/images/h6.png differ diff --git a/files/sets/images/image.png b/files/sets/images/image.png new file mode 100644 index 0000000..fc3c393 Binary files /dev/null and b/files/sets/images/image.png differ diff --git a/files/sets/images/italic.png b/files/sets/images/italic.png new file mode 100644 index 0000000..8482ac8 Binary files /dev/null and b/files/sets/images/italic.png differ diff --git a/files/sets/images/link-extern.png b/files/sets/images/link-extern.png new file mode 100644 index 0000000..b8edc12 Binary files /dev/null and b/files/sets/images/link-extern.png differ diff --git a/files/sets/images/link-file.png b/files/sets/images/link-file.png new file mode 100644 index 0000000..780f7d6 Binary files /dev/null and b/files/sets/images/link-file.png differ diff --git a/files/sets/images/link-intern.png b/files/sets/images/link-intern.png new file mode 100644 index 0000000..ae8cae8 Binary files /dev/null and b/files/sets/images/link-intern.png differ diff --git a/files/sets/images/link-mailto.png b/files/sets/images/link-mailto.png new file mode 100644 index 0000000..4694414 Binary files /dev/null and b/files/sets/images/link-mailto.png differ diff --git a/files/sets/images/link-media.png b/files/sets/images/link-media.png new file mode 100644 index 0000000..4a158fe Binary files /dev/null and b/files/sets/images/link-media.png differ diff --git a/files/sets/images/link.png b/files/sets/images/link.png new file mode 100644 index 0000000..25eacb7 Binary files /dev/null and b/files/sets/images/link.png differ diff --git a/files/sets/images/list-bullet.png b/files/sets/images/list-bullet.png new file mode 100644 index 0000000..4a8672b Binary files /dev/null and b/files/sets/images/list-bullet.png differ diff --git a/files/sets/images/list-numeric.png b/files/sets/images/list-numeric.png new file mode 100644 index 0000000..33b0b8d Binary files /dev/null and b/files/sets/images/list-numeric.png differ diff --git a/files/sets/images/paragraph.png b/files/sets/images/paragraph.png new file mode 100644 index 0000000..95704fb Binary files /dev/null and b/files/sets/images/paragraph.png differ diff --git a/files/sets/images/preview.png b/files/sets/images/preview.png new file mode 100644 index 0000000..a9925a0 Binary files /dev/null and b/files/sets/images/preview.png differ diff --git a/files/sets/images/quotes.png b/files/sets/images/quotes.png new file mode 100644 index 0000000..e54ebeb Binary files /dev/null and b/files/sets/images/quotes.png differ diff --git a/files/sets/images/stroke.png b/files/sets/images/stroke.png new file mode 100644 index 0000000..612058a Binary files /dev/null and b/files/sets/images/stroke.png differ diff --git a/files/sets/images/subanchorlink.png b/files/sets/images/subanchorlink.png new file mode 100644 index 0000000..afcef1c Binary files /dev/null and b/files/sets/images/subanchorlink.png differ diff --git a/files/sets/images/subfootnote.png b/files/sets/images/subfootnote.png new file mode 100644 index 0000000..655bdf9 Binary files /dev/null and b/files/sets/images/subfootnote.png differ diff --git a/files/sets/images/subscript.png b/files/sets/images/subscript.png new file mode 100644 index 0000000..1a2b010 Binary files /dev/null and b/files/sets/images/subscript.png differ diff --git a/files/sets/images/superfootnote.png b/files/sets/images/superfootnote.png new file mode 100644 index 0000000..8f54773 Binary files /dev/null and b/files/sets/images/superfootnote.png differ diff --git a/files/sets/images/superscript.png b/files/sets/images/superscript.png new file mode 100644 index 0000000..2fb2a7c Binary files /dev/null and b/files/sets/images/superscript.png differ diff --git a/files/sets/images/table-td.png b/files/sets/images/table-td.png new file mode 100644 index 0000000..1b1db3e Binary files /dev/null and b/files/sets/images/table-td.png differ diff --git a/files/sets/images/table-th.png b/files/sets/images/table-th.png new file mode 100644 index 0000000..d4cdceb Binary files /dev/null and b/files/sets/images/table-th.png differ diff --git a/files/sets/images/table.png b/files/sets/images/table.png new file mode 100644 index 0000000..d09696a Binary files /dev/null and b/files/sets/images/table.png differ diff --git a/files/sets/images/tabs.png b/files/sets/images/tabs.png new file mode 100644 index 0000000..3c3c5be Binary files /dev/null and b/files/sets/images/tabs.png differ diff --git a/files/sets/readme.txt b/files/sets/readme.txt new file mode 100644 index 0000000..bda1a77 --- /dev/null +++ b/files/sets/readme.txt @@ -0,0 +1,11 @@ +Markup language: +Textile + +Description: +A basic Textile markup set with Headings, Bold, Italic, Stroke through, Picture, Link, List, Quotes, Code, Preview button. + +Install: +- Download the zip file +- Unzip it in your markItUp! sets folder +- Modify your JS link to point at this set.js +- Modify your CSS link to point at this style.css \ No newline at end of file diff --git a/files/sets/set.js b/files/sets/set.js new file mode 100644 index 0000000..fed1a97 --- /dev/null +++ b/files/sets/set.js @@ -0,0 +1,112 @@ +// ------------------------------------------------------------------- +// markItUp! +// ------------------------------------------------------------------- +// Copyright (C) 2008 Jay Salvat +// http://markitup.jaysalvat.com/ +// ------------------------------------------------------------------- +// Textile tags example +// http://en.wikipedia.org/wiki/Textile_(markup_language) +// http://www.textism.com/ +// ------------------------------------------------------------------- +// Feel free to add more tags +// ------------------------------------------------------------------- + +function insertImage(src,desc) +{ + img = src.replace(/files\//, ""); + // jQuery.markItUp({replaceWith:"!./"+ src +"!"}); + //jQuery.markItUp({ replaceWith:"!index.php?rex_resize=[![Image Width]!]w__"+ img +"!"}); + jQuery.markItUp({ replaceWith:'!{float: [![Align left|right]!]; padding: 0.5em 1em;}index.php?rex_img_type=fancybox_resize_200&rex_img_file='+ img +'('+desc+')!'}); +} +function insertFileLink(file) +{ + jQuery.markItUp({openWith:'"', closeWith:'":'+file, placeHolder:'Ihr Text zum LINK hier...'}); +} +function insertLink(url,desc) +{ + jQuery.markItUp({openWith:'"(!((fancyboxStyleInline-3 iframe))!)'+desc, closeWith:'":'+url}); +} +function markitup_getURLParam(strParamName) +{ + var strReturn = ""; + var strHref = window.location.href; + if ( strHref.indexOf("?") > -1 ) + { + var strQueryString = strHref.substr(strHref.indexOf("?")).toLowerCase(); + var aQueryString = strQueryString.split("&"); + for ( var iParam = 0; iParam < aQueryString.length; iParam++ ) + { + if (aQueryString[iParam].indexOf(strParamName.toLowerCase() + "=") > -1 ) + { + var aParam = aQueryString[iParam].split("="); + strReturn = aParam[1]; + break; + } + } + } + return unescape(strReturn); +} + +mySettings = { + previewParserPath: '', // path to your Textile parser + onShiftEnter: {keepDefault:false, replaceWith:'
    \n'}, + markupSet: + [ + {name:'Heading 1', className:'h1', key:'1', openWith:'\nh1(!(([![Class]!]))!). ', placeHolder:'Ihr Titel hier...'}, + {name:'Heading 2', className:'h2', key:'2', openWith:'\nh2(!(([![Class]!]))!). ', placeHolder:'Ihr Titel hier...'}, + {name:'Heading 3', className:'h3', key:'3', openWith:'\nh3(!(([![Class]!]))!). ', placeHolder:'Ihr Titel hier...'}, + {name:'Heading 4', className:'h4', key:'4', openWith:'\nh4(!(([![Class]!]))!). ', placeHolder:'Ihr Titel hier...'}, + {name:'Heading 5', className:'h5', key:'5', openWith:'\nh5(!(([![Class]!]))!). ', placeHolder:'Ihr Titel hier...'}, + {name:'Heading 6', className:'h6', key:'6', openWith:'\nh6(!(([![Class]!]))!). ', placeHolder:'Ihr Titel hier...'}, + {separator:'---------------'}, + {name:'Bold', key:'B', className:'bold', closeWith:'*', openWith:'*'}, + {name:'Italic', key:'I', className:'italic', closeWith:'_', openWith:'_'}, + {name:'Stroke through', key:'S', className:'stroke', closeWith:'-', openWith:'-'}, + {separator:'---------------'}, + {name:'Bulleted list', className:'list-bullet', openWith:'(!(* |!|*)!)'}, + {name:'Numeric list', className:'list-numeric', openWith:'(!(# |!|#)!)'}, + {separator:'---------------'}, + {name:'Image', className:'image', + beforeInsert:function(h) { + openMediaPool('TINYIMG'); + } + }, + {separator:'---------------'}, + {name:'Link intern', className:'link-intern', + beforeInsert:function(h) { + openLinkMap('TINY','&clang='+markitup_getURLParam('clang') + '&category_id='+markitup_getURLParam('article_id')); + } + }, + {name:'Link media', className:'link-media', + beforeInsert:function(h) { + openMediaPool('TINY'); + } + }, + {name:'Link extern', className:'link-extern', openWith:'"', closeWith:'([![Title]!])":[![Link:!:http://]!]', placeHolder:'Ihr Text zum LINK hier...'}, + {name:'Link mail-to', className:'link-mailto', openWith:'"', closeWith:'([![Title]!])":[![Link:!:mailto:]!]', placeHolder:'Ihre E-Mailadresse hier...'}, + {separator:'---------------'}, + {name:'Quotes Block', className:'quotes', openWith:'bq(!(([![Class]!]))!). '}, + {name:'Code Block', className:'code', openWith:'bc(!(([![Class]!]))!). '}, + {separator:'---------------'}, + {name:'Tabs', className:'tabs', openWith:'\nnotextile.
    \n\n', closeWith:'\nnotextile.
    \n\n', placeHolder:'Ihr Inhalt im TAB...\n'}, + {name:'Accordion Headline', className:'accordion-headline', openWith:'\nh3(bar#accordion). ', placeHolder:'Ihr Titel hier...'}, + {name:'Accordion Content', className:'accordion-content', openWith:'\nnotextile.
    \n\n', closeWith:'\nnotextile.
    \n\n', placeHolder:'Ihr Inhalt im TAB...\n'}, + {separator:'---------------'}, + {name:'Table', className:'table', placeHolder:"Inhalt der Zelle...", + replaceWith:function(h) { + cols = prompt("Wie viele Spalten?"); + rows = prompt("Wie viele Reihen?"); + html = ""; + for (r = 0; r < rows; r++) + { + for (c = 0; c < cols; c++) + { + html += "|"+(h.placeHolder||""); + } + html += "|\n"; + } + return html; + } + } + ] +} \ No newline at end of file diff --git a/files/sets/style.css b/files/sets/style.css new file mode 100644 index 0000000..e159154 --- /dev/null +++ b/files/sets/style.css @@ -0,0 +1,76 @@ +/* ------------------------------------------------------------------- +// markItUp! +// By Jay Salvat - http://markitup.jaysalvat.com/ +// ------------------------------------------------------------------*/ +.markItUp .h1 a { + background-image:url(images/h1.png); +} +.markItUp .h2 a { + background-image:url(images/h2.png); +} +.markItUp .h3 a { + background-image:url(images/h3.png); +} +.markItUp .h4 a { + background-image:url(images/h4.png); +} +.markItUp .h5 a { + background-image:url(images/h5.png); +} +.markItUp .h6 a { + background-image:url(images/h6.png); +} +.markItUp .paragraph a { + background-image:url(images/paragraph.png); +} +.markItUp .bold a { + background-image:url(images/bold.png); +} +.markItUp .italic a { + background-image:url(images/italic.png); +} +.markItUp .stroke a { + background-image:url(images/stroke.png); +} +.markItUp .list-bullet a { + background-image:url(images/list-bullet.png); +} +.markItUp .list-numeric a { + background-image:url(images/list-numeric.png); +} +.markItUp .image a { + background-image:url(images/image.png); +} +.markItUp .link-intern a { + background-image:url(images/link-intern.png); +} +.markItUp .link-media a { + background-image:url(images/link-media.png); +} +.markItUp .link-extern a { + background-image:url(images/link-extern.png); +} +.markItUp .link-mailto a { + background-image:url(images/link-mailto.png); +} +.markItUp .quotes a { + background-image:url(images/quotes.png); +} +.markItUp .code a { + background-image:url(images/code.png); +} +.markItUp .tabs a { + background-image:url(images/tabs.png); +} +.markItUp .accordion-headline a { + background-image:url(images/accordion-headline.png); +} +.markItUp .accordion-content a { + background-image:url(images/accordion-content.png); +} +.markItUp .table a { + background-image:url(images/table.png); +} +.markItUp .preview a { + background-image:url(images/preview.png); +} \ No newline at end of file diff --git a/files/skins/images/bg-container.png b/files/skins/images/bg-container.png new file mode 100644 index 0000000..a28e018 Binary files /dev/null and b/files/skins/images/bg-container.png differ diff --git a/files/skins/images/bg-editor-bbcode.png b/files/skins/images/bg-editor-bbcode.png new file mode 100644 index 0000000..39cdbd8 Binary files /dev/null and b/files/skins/images/bg-editor-bbcode.png differ diff --git a/files/skins/images/bg-editor-dotclear.png b/files/skins/images/bg-editor-dotclear.png new file mode 100644 index 0000000..b3188dc Binary files /dev/null and b/files/skins/images/bg-editor-dotclear.png differ diff --git a/files/skins/images/bg-editor-html.png b/files/skins/images/bg-editor-html.png new file mode 100644 index 0000000..11bff45 Binary files /dev/null and b/files/skins/images/bg-editor-html.png differ diff --git a/files/skins/images/bg-editor-json.png b/files/skins/images/bg-editor-json.png new file mode 100644 index 0000000..e898c1d Binary files /dev/null and b/files/skins/images/bg-editor-json.png differ diff --git a/files/skins/images/bg-editor-markdown.png b/files/skins/images/bg-editor-markdown.png new file mode 100644 index 0000000..c199715 Binary files /dev/null and b/files/skins/images/bg-editor-markdown.png differ diff --git a/files/skins/images/bg-editor-textile.png b/files/skins/images/bg-editor-textile.png new file mode 100644 index 0000000..3ab1e9f Binary files /dev/null and b/files/skins/images/bg-editor-textile.png differ diff --git a/files/skins/images/bg-editor-wiki.png b/files/skins/images/bg-editor-wiki.png new file mode 100644 index 0000000..7887181 Binary files /dev/null and b/files/skins/images/bg-editor-wiki.png differ diff --git a/files/skins/images/bg-editor-xml.png b/files/skins/images/bg-editor-xml.png new file mode 100644 index 0000000..33b1c5d Binary files /dev/null and b/files/skins/images/bg-editor-xml.png differ diff --git a/files/skins/images/bg-editor.png b/files/skins/images/bg-editor.png new file mode 100644 index 0000000..ab7cde4 Binary files /dev/null and b/files/skins/images/bg-editor.png differ diff --git a/files/skins/images/handle.png b/files/skins/images/handle.png new file mode 100644 index 0000000..3993b20 Binary files /dev/null and b/files/skins/images/handle.png differ diff --git a/files/skins/images/menu.png b/files/skins/images/menu.png new file mode 100644 index 0000000..44a07af Binary files /dev/null and b/files/skins/images/menu.png differ diff --git a/files/skins/images/submenu.png b/files/skins/images/submenu.png new file mode 100644 index 0000000..03d1977 Binary files /dev/null and b/files/skins/images/submenu.png differ diff --git a/files/skins/style.css b/files/skins/style.css new file mode 100644 index 0000000..0bcc17d --- /dev/null +++ b/files/skins/style.css @@ -0,0 +1,145 @@ +/* ------------------------------------------------------------------- +// markItUp! Universal MarkUp Engine, JQuery plugin +// By Jay Salvat - http://markitup.jaysalvat.com/ +// ------------------------------------------------------------------*/ +.markItUp * { + margin: 0px; + padding: 0px; + outline: none; +} +.markItUp a:link, .markItUp a:visited { + color: #000; + text-decoration: none; +} +.markItUp { + width: 650px; + margin: 5px 0 5px 0; + border: 5px solid #F5F5F5; +} +.markItUpContainer { + border: 1px solid #3C769D; + background: #FFF url(images/bg-container.png) repeat-x top left; + padding: 5px 5px 2px 5px; + font: 11px Verdana, Arial, Helvetica, sans-serif; +} +.markItUpContainer ul { + margin-left: 0px !important; +} +.markItUpEditor { + font: 12px 'Courier New', Courier, monospace; + padding: 5px 5px 5px 35px; + border: 3px solid #3C769D; + width: 100%; + min-width: 623px; + height: 320px; + background-image: url(images/bg-editor.png); + background-repeat: no-repeat; + clear: both; + display: block; + line-height: 18px; + overflow: auto; +} +.markItUpPreviewFrame { + overflow: auto; + background-color: #FFFFFF; + border: 1px solid #3C769D; + width: 99.9%; + height: 300px; + margin: 5px 0; +} +.markItUpFooter { + width: 100%; + cursor: n-resize; +} +.markItUpResizeHandle { + overflow: hidden; + width: 22px; + height: 5px; + margin-left: auto; + margin-right: auto; + background-image: url(images/handle.png); + cursor: n-resize; +} +/***************************************************************************************/ +/* first row of buttons */ +.markItUpHeader ul li { + list-style: none; + float: left; + position: relative; +} +.markItUpHeader ul li ul { + display: none; +} +.markItUpHeader ul li:hover > ul { + display: block; +} +.markItUpHeader ul .markItUpDropMenu { + background: transparent url(images/menu.png) no-repeat 115% 50%; + margin-right: 5px; +} +.markItUpHeader ul .markItUpDropMenu li { + margin-right: 0px; +} +.markItUpHeader ul .markItUpSeparator { + margin: 0 10px; + width: 1px; + height: 16px; + overflow: hidden; + background-color: #CCC; +} +.markItUpHeader ul ul .markItUpSeparator { + width: auto; + height: 1px; + margin: 0px; +} +/* next rows of buttons */ +.markItUpHeader ul ul { + display: none; + position: absolute; + top: 18px; + left: 0px; + background: #F5F5F5; + border: 1px solid #3C769D; + height: inherit; +} +.markItUpHeader ul ul li { + float: none; + border-bottom: 1px solid #3C769D; +} +.markItUpHeader ul ul .markItUpDropMenu { + background: #F5F5F5 url(images/submenu.png) no-repeat 100% 50%; +} +/* next rows of buttons */ +.markItUpHeader ul ul ul { + position: absolute; + top: -1px; + left: 150px; +} +.markItUpHeader ul ul ul li { + float: none; +} +.markItUpHeader ul a { + display: block; + width: 16px; + height: 16px; + text-indent: -10000px; + background-repeat: no-repeat; + padding: 3px; + margin: 0px; +} +.markItUpHeader ul ul a { + display: block; + padding-left: 0px; + text-indent: 0; + width: 120px; + padding: 5px 5px 5px 25px; + background-position: 2px 50%; +} +.markItUpHeader ul ul a:hover { + color: #FFF; + background-color: #3C769D; +} +/***************************************************************************************/ +.textile .markItUpEditor { + background-image: url(images/bg-editor-textile.png); +} diff --git a/files/templates/preview.css b/files/templates/preview.css new file mode 100644 index 0000000..ad91a87 --- /dev/null +++ b/files/templates/preview.css @@ -0,0 +1,5 @@ +/* preview style examples */ +body { + background-color:#EFEFEF; + font:70% Verdana, Arial, Helvetica, sans-serif; +} \ No newline at end of file diff --git a/files/templates/preview.html b/files/templates/preview.html new file mode 100644 index 0000000..b8b3702 --- /dev/null +++ b/files/templates/preview.html @@ -0,0 +1,11 @@ + + + + +markItUp! preview template + + + + + + diff --git a/help.inc.php b/help.inc.php new file mode 100644 index 0000000..762489e --- /dev/null +++ b/help.inc.php @@ -0,0 +1,65 @@ + + +

    Funktionen:

    +

    + Addon zum Ausgaben von TEXTILE-MarkUp in Verbindung mit dem Addon TEXTILE. +

    + +
    +

    Benutzung:

    +

    + Das Standard-Textile-Modul wird einfach durch das mit MarkItUp ersetzt...
    + Damit die Werte nicht verloren gehen ist in diesem zugehörigen Modul eventuell noch der REX_VALUE[XY] anzupassen. +

    + +
    +

    Anpassungen: SET.JS

    +

    + .\addons\gs_markitup\files\sets\set.js
    + Hier werden die Bedienelemente definiert.
    +
    + Codebeispiel:
    + Suchen Sie nach der folgenden Zeile...
    + mySettings = {
    + ...
    + markupSet:
    + [
    + {name:'Heading 1', className:'h1', key:'1', openWith:'\nh1(!(([![Class]!]))!). ', placeHolder:'Ihr Titel hier...'},
    + {...}
    + ]
    + }
    +

    + + +
    +

    Anpassungen: STYLE.CSS

    +

    + .\addons\gs_markitup\files\sets\style.css
    + Hier werden die Grafigen definiert.
    +
    + Codebeispiel:
    + Suchen Sie nach der folgenden Zeile...
    + .markItUp .h1 a {
    + background-image:url(images/h1.png);
    + }
    +

    + + +
    +

    Weitere Info zum Orginal:

    +

    + Ausfuehrliche Beschreibungen und Moeglichkeiten des Orginals von Jay Salvat finden Sie auf seiner Website:
    + Link zum Autor von MarkItUp +

    diff --git a/install.inc.php b/install.inc.php new file mode 100644 index 0000000..b453df7 --- /dev/null +++ b/install.inc.php @@ -0,0 +1,43 @@ + \ No newline at end of file diff --git a/install.sql b/install.sql new file mode 100644 index 0000000..6ef7dce --- /dev/null +++ b/install.sql @@ -0,0 +1,30 @@ +#********************************************* +# +# INSTALLATION +# +# Autor: G.Seilheimer +# Company: contic.de +# Version: 1.1.12 +# Update: 2011-11-09 +# CMS: Redaxo 4.3.2 +# +#********************************************* + + +#********************************************* +# +# insert values into rex_template +# +#********************************************* + +INSERT IGNORE INTO `%TABLE_PREFIX%template` (`id`, `label`, `name`, `content`, `active`, `createuser`, `updateuser`, `createdate`, `updatedate`, `attributes`, `revision`) +VALUES (711, '', 'gs : markitup (jquery)', '\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n', 0, 'gseilheimer', 'gseilheimer', 1291155881, 1291155881, 'a:3:{s:10:"categories";a:1:{s:3:"all";s:1:"1";}s:5:"ctype";a:0:{}s:7:"modules";a:1:{i:1;a:1:{s:3:"all";s:1:"1";}}}', 0); + + +#********************************************* +# +# alter values into rex_template +# +#********************************************* + +ALTER TABLE `%TABLE_PREFIX%template` AUTO_INCREMENT=20; \ No newline at end of file diff --git a/lang/de_de.lang b/lang/de_de.lang new file mode 100644 index 0000000..65b6d06 --- /dev/null +++ b/lang/de_de.lang @@ -0,0 +1,45 @@ +# addon:markitup de_de | de_de_utf8 + +addon_name = MarkItUp + +addon_subpage_readme = Lies mich + +addon_subpage_readme_txt_01 = MarkItUp - eingebundene Dateien +addon_subpage_readme_txt_01_01 = Enthält alle wichtigen Komponenten in den aktuellen Versionen: +addon_subpage_readme_txt_01_02 = - ./sets/ [enthält das SETUP und die ICONS für den EDITOR] +addon_subpage_readme_txt_01_03 = - ./skins/ [enthält die IMAGES und CSS für den EDITOR] +addon_subpage_readme_txt_01_04 = - jquery.markitup.js +addon_subpage_readme_txt_01_05 = - jquery.markitup.pack.js +addon_subpage_readme_txt_01_06 = Alle Dateien sind in .\files\addons\markitup\ + +addon_subpage_readme_txt_02 = MarkItUp - Bedienelemente definieren (sets.js) +addon_subpage_readme_txt_02_01 = mySettings = { +addon_subpage_readme_txt_02_02 = previewParserPath: '', // path to your Textile parser +addon_subpage_readme_txt_02_03 = onShiftEnter: {keepDefault:false, replaceWith:'\n\n'}, +addon_subpage_readme_txt_02_04 = markupSet: [ +addon_subpage_readme_txt_02_05 = {name:'...', className:'...', key:'1', openWith:'...', placeHolder:'...' }, //Template +addon_subpage_readme_txt_02_06 = {name:'Heading 1', className:'h1', key:'1', openWith:'\nh1(!(([![Class]!]))!). ', placeHolder:'Ihr Titel hier...'}, //Beispiel +addon_subpage_readme_txt_02_07 = ]} + +addon_subpage_readme_txt_03 = MarkItUp - Grafiken definieren (style.css) +addon_subpage_readme_txt_03_01 = .markItUp .h1 a { +addon_subpage_readme_txt_03_02 = background-image:url(images/h1.png); +addon_subpage_readme_txt_03_03 = } + +addon_subpage_readme_txt_04 = Hinweise: Konfiguration anpassen +addon_subpage_readme_txt_04_01 = Ändern Sie bitte einfach nur die Effekte im Image-Manager, damit Ihnen weitere Systemanpassungen erspart bleiben... +addon_subpage_readme_txt_04_02 = Sollten Sie die Konfiguration dennoch ändern wollen, nachfolgend die notwendigen Schritte: +addon_subpage_readme_txt_04_03 = a) Ändern der "Bildtypen bearbeiten" und der zugehörigen "Effekte bearbeiten" +addon_subpage_readme_txt_04_04 = b) Alle Anpassungen und Namensänderungen müssen im Modul berücksichtigt werden! + +addon_subpage_readme_txt_05 = Hinweise: Löschen des Templates +addon_subpage_readme_txt_05_01 = Das Löschen des Templates mit der ID=711 sollte nur durch die DEINSTALLATION des AddOns erfolgen, da das Modul für die Texteingabe anderenfalls nicht mehr funktioniert. + +addon_subpage_readme_txt_06 = Hinweise: Installation/Einbindung des REX_TEMPLATE[711] +addon_subpage_readme_txt_06_01 = Das Template ist bereits im zugehörigen Orginalmodul hinterlegt, weshalb keine weitere Konfiguration notwendig ist. + +addon_subpage_modul = Module (MarkItUp) + +addon_subpage_modul_txt_01 = Eingabe/Ausgabe (MarkItUp-Beispiel) +addon_subpage_modul_txt_01_01 = Das aktuelle Beispiel-Modul für dieses Addon finden Sie unter der nachfolgenden Adresse: +addon_subpage_modul_txt_01_02 = http://www.redaxo.org/165-0-moduldetails.html?module_id=463 diff --git a/lang/de_de_utf8.lang b/lang/de_de_utf8.lang new file mode 100644 index 0000000..ccbf0a5 --- /dev/null +++ b/lang/de_de_utf8.lang @@ -0,0 +1,45 @@ +# addon:markitup de_de | de_de_utf8 + +addon_name = MarkItUp + +addon_subpage_readme = Lies mich + +addon_subpage_readme_txt_01 = MarkItUp - eingebundene Dateien +addon_subpage_readme_txt_01_01 = Enthält alle wichtigen Komponenten in den aktuellen Versionen: +addon_subpage_readme_txt_01_02 = - ./sets/ [enthält das SETUP und die ICONS für den EDITOR] +addon_subpage_readme_txt_01_03 = - ./skins/ [enthält die IMAGES und CSS für den EDITOR] +addon_subpage_readme_txt_01_04 = - jquery.markitup.js +addon_subpage_readme_txt_01_05 = - jquery.markitup.pack.js +addon_subpage_readme_txt_01_06 = Alle Dateien sind in .\files\addons\markitup\ + +addon_subpage_readme_txt_02 = MarkItUp - Bedienelemente definieren (sets.js) +addon_subpage_readme_txt_02_01 = mySettings = { +addon_subpage_readme_txt_02_02 = previewParserPath: '', // path to your Textile parser +addon_subpage_readme_txt_02_03 = onShiftEnter: {keepDefault:false, replaceWith:'\n\n'}, +addon_subpage_readme_txt_02_04 = markupSet: [ +addon_subpage_readme_txt_02_05 = {name:'...', className:'...', key:'1', openWith:'...', placeHolder:'...' }, //Template +addon_subpage_readme_txt_02_06 = {name:'Heading 1', className:'h1', key:'1', openWith:'\nh1(!(([![Class]!]))!). ', placeHolder:'Ihr Titel hier...'}, //Beispiel +addon_subpage_readme_txt_02_07 = ]} + +addon_subpage_readme_txt_03 = MarkItUp - Grafiken definieren (style.css) +addon_subpage_readme_txt_03_01 = .markItUp .h1 a { +addon_subpage_readme_txt_03_02 = background-image:url(images/h1.png); +addon_subpage_readme_txt_03_03 = } + +addon_subpage_readme_txt_04 = Hinweise: Konfiguration anpassen +addon_subpage_readme_txt_04_01 = Ändern Sie bitte einfach nur die Effekte im Image-Manager, damit Ihnen weitere Systemanpassungen erspart bleiben... +addon_subpage_readme_txt_04_02 = Sollten Sie die Konfiguration dennoch ändern wollen, nachfolgend die notwendigen Schritte: +addon_subpage_readme_txt_04_03 = a) Ändern der "Bildtypen bearbeiten" und der zugehörigen "Effekte bearbeiten" +addon_subpage_readme_txt_04_04 = b) Alle Anpassungen und Namensänderungen müssen im Modul berücksichtigt werden! + +addon_subpage_readme_txt_05 = Hinweise: Löschen des Templates +addon_subpage_readme_txt_05_01 = Das Löschen des Templates mit der ID=711 sollte nur durch die DEINSTALLATION des AddOns erfolgen, da das Modul für die Texteingabe anderenfalls nicht mehr funktioniert. + +addon_subpage_readme_txt_06 = Hinweise: Installation/Einbindung des REX_TEMPLATE[711] +addon_subpage_readme_txt_06_01 = Das Template ist bereits im zugehörigen Orginalmodul hinterlegt, weshalb keine weitere Konfiguration notwendig ist. + +addon_subpage_modul = Module (MarkItUp) + +addon_subpage_modul_txt_01 = Eingabe/Ausgabe (MarkItUp-Beispiel) +addon_subpage_modul_txt_01_01 = Das aktuelle Beispiel-Modul für dieses Addon finden Sie unter der nachfolgenden Adresse: +addon_subpage_modul_txt_01_02 = http://www.redaxo.org/165-0-moduldetails.html?module_id=463 diff --git a/pages/index.inc.php b/pages/index.inc.php new file mode 100644 index 0000000..8c061fe --- /dev/null +++ b/pages/index.inc.php @@ -0,0 +1,55 @@ +appendFile($REX['INCLUDE_PATH'].'/addons/'.$addon_name.'/lang/'); + } + + ////////////////////////////////////////////////////////////////////////////////// + // SUBPAGES + ////////////////////////////////////////////////////////////////////////////////// + + require $REX['INCLUDE_PATH'].'/layout/top.php'; + + $page = rex_request('page', 'string'); + $subpage = rex_request('subpage', 'string'); + $func = rex_request('func', 'string'); + $oid = rex_request('oid', 'int'); + + rex_title($I18N->msg("addon_name"),$REX['ADDON'][$page]['SUBPAGES']); + + switch($subpage) + { + case 'modul': + { + break; + } + default: + { + $subpage = "readme"; + } + } + + require $REX['INCLUDE_PATH'].'/addons/'.$addon_name.'/pages/'.$subpage.'.inc.php'; + + require $REX['INCLUDE_PATH'].'/layout/bottom.php'; +?> \ No newline at end of file diff --git a/pages/modul.inc.php b/pages/modul.inc.php new file mode 100644 index 0000000..479c0de --- /dev/null +++ b/pages/modul.inc.php @@ -0,0 +1,49 @@ +appendFile($REX['INCLUDE_PATH'].'/addons/'.$addon_name.'/lang/'); + } + + ////////////////////////////////////////////////////////////////////////////////// + // SUBPAGE + ////////////////////////////////////////////////////////////////////////////////// +?> + +
    +

    msg('addon_subpage_modul_txt_01'); ?>

    + +
    +

    + + msg('addon_subpage_modul_txt_01_01') . "
    "; + echo $I18N->msg('addon_subpage_modul_txt_01_02') . "
    "; + ?> +
    +

    +
    +
    diff --git a/pages/readme.inc.php b/pages/readme.inc.php new file mode 100644 index 0000000..878f446 --- /dev/null +++ b/pages/readme.inc.php @@ -0,0 +1,139 @@ +appendFile($REX['INCLUDE_PATH'].'/addons/'.$addon_name.'/lang/'); + } + + ////////////////////////////////////////////////////////////////////////////////// + // SUBPAGE + ////////////////////////////////////////////////////////////////////////////////// +?> + +
    +

    msg('addon_subpage_readme_txt_01'); ?>

    + +
    +

    + + msg('addon_subpage_readme_txt_01_01') . "
    "; + echo $I18N->msg('addon_subpage_readme_txt_01_02') . "
    "; + echo $I18N->msg('addon_subpage_readme_txt_01_03') . "
    "; + echo $I18N->msg('addon_subpage_readme_txt_01_04') . "
    "; + echo $I18N->msg('addon_subpage_readme_txt_01_05') . "
    "; + echo $I18N->msg('addon_subpage_readme_txt_01_06') . "
    "; + ?> +
    +

    +
    +
    + +
    +

    msg('addon_subpage_readme_txt_02'); ?>

    + +
    +

    + + msg('addon_subpage_readme_txt_02_01') . "
    "; + echo $I18N->msg('addon_subpage_readme_txt_02_02') . "
    "; + echo $I18N->msg('addon_subpage_readme_txt_02_03') . "
    "; + echo $I18N->msg('addon_subpage_readme_txt_02_04') . "
    "; + echo $I18N->msg('addon_subpage_readme_txt_02_05') . "
    "; + echo $I18N->msg('addon_subpage_readme_txt_02_06') . "
    "; + echo $I18N->msg('addon_subpage_readme_txt_02_07') . "
    "; + ?> +
    +

    +
    +
    + +
    +

    msg('addon_subpage_readme_txt_03'); ?>

    + +
    +

    + + msg('addon_subpage_readme_txt_03_01') . "
    "; + echo $I18N->msg('addon_subpage_readme_txt_03_02') . "
    "; + echo $I18N->msg('addon_subpage_readme_txt_03_03') . "
    "; + ?> +
    +

    +
    +
    + + +
    +

    msg('addon_subpage_readme_txt_04'); ?>

    + +
    +

    + + msg('addon_subpage_readme_txt_04_01') . "
    "; + echo $I18N->msg('addon_subpage_readme_txt_04_02') . "
    "; + echo $I18N->msg('addon_subpage_readme_txt_04_03') . "
    "; + echo $I18N->msg('addon_subpage_readme_txt_04_04') . "
    "; + ?> +
    +

    +
    +
    + +
    +

    msg('addon_subpage_readme_txt_05'); ?>

    + +
    +

    + + msg('addon_subpage_readme_txt_05_01') . "
    "; + ?> +
    +

    +
    +
    + +
    +

    msg('addon_subpage_readme_txt_06'); ?>

    + +
    +

    + + msg('addon_subpage_readme_txt_06_01') . "
    "; + ?> +
    +

    +
    +
    + diff --git a/uninstall.inc.php b/uninstall.inc.php new file mode 100644 index 0000000..f6b5a51 --- /dev/null +++ b/uninstall.inc.php @@ -0,0 +1,27 @@ + \ No newline at end of file diff --git a/uninstall.sql b/uninstall.sql new file mode 100644 index 0000000..5d97d57 --- /dev/null +++ b/uninstall.sql @@ -0,0 +1,20 @@ +#********************************************* +# +# UNINSTALLTION +# +# Autor: G.Seilheimer +# Company: contic.de +# Version: 1.1.12 +# Update: 2011-11-09 +# CMS: Redaxo 4.3.2 +# +#********************************************* + + +#********************************************* +# +# delete values from rex_template +# +#********************************************* + +DELETE FROM `%TABLE_PREFIX%template` WHERE `id`=711 LIMIT 1; \ No newline at end of file