diff --git a/htdocs/config2/settings-dist-common.inc.php b/htdocs/config2/settings-dist-common.inc.php index 9202127ac..4521665ae 100644 --- a/htdocs/config2/settings-dist-common.inc.php +++ b/htdocs/config2/settings-dist-common.inc.php @@ -53,6 +53,9 @@ $opt['template']['default']['style'] = 'ocstyle'; $opt['template']['default']['country'] = 'DE'; + // smiley path + $opt['template']['smiley'] = 'resource2/tinymce/plugins/emotions/img/'; + /* pregenerated waypoint list for new caches * - Waypoint prefix (OC, OP, OZ ... AA=local development) * - When pool contains less than min_count, generation process starts diff --git a/htdocs/config2/settings-dist.inc.php b/htdocs/config2/settings-dist.inc.php index 9a493dd67..a760108b6 100644 --- a/htdocs/config2/settings-dist.inc.php +++ b/htdocs/config2/settings-dist.inc.php @@ -180,9 +180,6 @@ */ $opt['debug'] = DEBUG_DEVELOPER; - // smiley path - $opt['template']['smiley'] = 'resource2/tinymce/plugins/emotions/img/'; - /* other template options * */ diff --git a/htdocs/editdesc.php b/htdocs/editdesc.php index 6f142351c..bb35488f4 100644 --- a/htdocs/editdesc.php +++ b/htdocs/editdesc.php @@ -20,8 +20,8 @@ ****************************************************************************/ //prepare the templates and include all neccessary - require_once('./lib/common.inc.php'); - require_once('./lib2/OcHTMLPurifier.class.php'); + require_once('lib/common.inc.php'); + require_once('lib2/edithelper.inc.php'); //Preprocessing if ($error == false) @@ -93,7 +93,7 @@ if (isset($_POST['post'])) // Ocprop { //here we read all used information from the form if submitted - $descMode = isset($_POST['descMode']) ? $_POST['descMode'] : 1; // Ocprop + $descMode = isset($_POST['descMode']) ? $_POST['descMode'] + 0 : 1; // Ocprop // fuer alte Versionen von OCProp if (isset($_POST['submit']) && !isset($_POST['version2'])) @@ -104,19 +104,29 @@ switch ($descMode) { + case 1: + $desc_htmledit = 0; + $desc_html = 0; + break; case 2: $desc_htmledit = 0; $desc_html = 1; break; - case 3: + default: + $descMode = 3; $desc_htmledit = 1; $desc_html = 1; break; - default: - $desc_htmledit = 0; - $desc_html = 0; - break; } + + if (isset($_POST['oldDescMode'])) + { + $oldDescMode = $_POST['oldDescMode']; + if (($oldDescMode < 1) || ($oldDescMode > 3)) $oldDescMode = $descMode; + } + else + $oldDescMode = $descMode; + $short_desc = $_POST['short_desc']; // Ocprop $hint = htmlspecialchars($_POST['hints'], ENT_COMPAT, 'UTF-8'); $desclang = $_POST['desclang']; @@ -130,33 +140,17 @@ $hint = iconv("ISO-8859-1", "UTF-8", $hint); } - if ($desc_html == 1) - { - // Text from textarea - $desc = $_POST['desc']; // Ocprop + // Text from textarea + $desc = $_POST['desc']; // Ocprop - // fuer alte Versionen von OCProp - if (isset($_POST['submit']) && !isset($_POST['version2'])) - { - $desc = iconv("ISO-8859-1", "UTF-8", $desc); - } - - // Filter Input - $purifier = new OcHTMLPurifier($opt); - $desc = $purifier->purify($desc); - } - else + // fuer alte Versionen von OCProp + if (isset($_POST['submit']) && !isset($_POST['version2'])) { - // escape text - $desc = htmlspecialchars($_POST['desc'], ENT_COMPAT, 'UTF-8'); - - // fuer alte Versionen von OCProp - if (isset($_POST['submit']) && !isset($_POST['version2'])) - { - $desc = iconv("ISO-8859-1", "UTF-8", $desc); - } + $desc = iconv("ISO-8859-1", "UTF-8", $desc); } + $desc = processEditorInput($oldDescMode, $descMode, $desc); + if (isset($_POST['submitform'])) // Ocprop { // prüfen, ob sprache nicht schon vorhanden @@ -176,7 +170,7 @@ WHERE `id`='&7'", (($desc_html == 1) ? '1' : '0'), (($desc_htmledit == 1) ? '1' : '0'), - (($desc_html == 1) ? $desc : nl2br($desc)), + $desc, $short_desc, nl2br($hint), $desclang, @@ -214,20 +208,17 @@ $desc_htmledit = $desc_record['desc_htmledit']; $desc_html = $desc_record['desc_html']; $desc_lang = $desc_record['language']; + $descMode = ($desc_html == 0 ? 1 : ($desc_htmledit ? 3 : 2)); + $oldDescMode = ($desc_html == 0 ? 0 : ($desc_htmledit ? 3 : 2)); - if ($desc_html == 1) - $desc = $desc_record['desc']; - else{ - $desc = strip_tags($desc_record['desc']); - } + $desc = processEditorInput($oldDescMode, $descMode, $desc_record['desc']); } //here we only set up the template variables - if ($desc_html == 1) - tpl_set_var('desc', htmlspecialchars($desc, ENT_COMPAT, 'UTF-8'), true); - else - tpl_set_var('desc', $desc, true); + tpl_set_var('desc', htmlspecialchars($desc, ENT_COMPAT, 'UTF-8'), true); + tpl_set_var('descMode', $descMode); + tpl_set_var('htmlnotice', $descMode == 2 ? $htmlnotice : ''); // ok ... die desclang zusammenbauen if ($show_all_langs == false) @@ -286,13 +277,8 @@ $headers = tpl_get_var('htmlheaders') . "\n"; $headers .= '' . "\n"; $headers .= '' . "\n"; - tpl_set_var('descMode', 3); } - else if ($desc_html == 1) - tpl_set_var('descMode', 2); - else - tpl_set_var('descMode', 1); - $headers .= '' . "\n"; + $headers .= '' . "\n"; tpl_set_var('htmlheaders', $headers); } else @@ -305,6 +291,9 @@ } } + tpl_set_var('scrollposx', isset($_REQUEST['scrollposx']) ? $_REQUEST['scrollposx'] + 0 : 0); + tpl_set_var('scrollposy', isset($_REQUEST['scrollposy']) ? $_REQUEST['scrollposy'] + 0 : 0); + //make the template and send it out tpl_BuildTemplate(); ?> diff --git a/htdocs/editlog.php b/htdocs/editlog.php index b3cc08396..776e9b3eb 100644 --- a/htdocs/editlog.php +++ b/htdocs/editlog.php @@ -23,11 +23,10 @@ ****************************************************************************/ //prepare the templates and include all neccessary - require_once('./lib/common.inc.php'); - require_once('./lib2/logic/logtypes.inc.php'); - require($stylepath.'/smilies.inc.php'); - require_once('./lib2/OcHTMLPurifier.class.php'); - require_once('./lib/recommendation.inc.php'); + require_once('lib/common.inc.php'); + require_once('lib2/logic/logtypes.inc.php'); + require_once('lib/recommendation.inc.php'); + require_once('lib2/edithelper.inc.php'); //Preprocessing if ($error == false) @@ -144,10 +143,17 @@ tpl_set_var('rating_message', mb_ereg_replace('{rating_msg}', $rating_msg, $rating_tpl)); - if (isset($_POST['descMode'])) // Ocprop: 2 + if (isset($_POST['descMode'])) { - $descMode = $_POST['descMode']+0; + $descMode = $_POST['descMode']+0; // Ocprop: 2 if (($descMode < 1) || ($descMode > 3)) $descMode = 3; + if (isset($_POST['oldDescMode'])) + { + $oldDescMode = $_POST['oldDescMode']; + if (($oldDescMode < 1) || ($oldDescMode > 3)) $oldDescMode = $descMode; + } + else + $oldDescMode = $descMode; } else { @@ -158,6 +164,7 @@ $descMode = 2; else $descMode = 1; + $oldDescMode = $descMode; } // fuer alte Versionen von OCProp @@ -167,33 +174,22 @@ $_POST['submitform'] = $_POST['submit']; } - if ($descMode != 1) - { - // Text from textarea; Ocprop - $log_text = isset($_POST['logtext']) ? ($_POST['logtext']) : ($log_record['text']); - - // fuer alte Versionen von OCProp - if (isset($_POST['submit']) && !isset($_POST['version2'])) - { - $log_text = iconv("ISO-8859-1", "UTF-8", $log_text); - } - - // check input - $purifier = new OcHTMLPurifier($opt); - $log_text = $purifier->purify($log_text); - } + // Text from textarea; Ocprop + if (isset($_POST['logtext'])) + $log_text = $_POST['logtext']; else { - // escape text - $log_text = isset($_POST['logtext']) ? htmlspecialchars($_POST['logtext'], ENT_COMPAT, 'UTF-8') : strip_tags($log_record['text']); - - // fuer alte Versionen von OCProp - if (isset($_POST['submit']) && !isset($_POST['version2'])) - { - $log_text = iconv("ISO-8859-1", "UTF-8", $log_text); - } + $log_text = $log_record['text']; + if ($descMode == 1) + $oldDescMode = 0; // plain text with encoded HTML entities } + // fuer alte Versionen von OCProp + if ($descMode != 1 && isset($_POST['submit']) && !isset($_POST['version2'])) + $log_text = iconv("ISO-8859-1", "UTF-8", $log_text); + + $log_text = processEditorInput($oldDescMode, $descMode, $log_text); + //validate date $date_ok = false; if (is_numeric($log_date_month) && is_numeric($log_date_day) && is_numeric($log_date_year) && @@ -261,7 +257,7 @@ $log_type, $oc_team_comment, $log_date, - (($descMode != 1) ? $log_text : nl2br($log_text)), + $log_text, (($descMode != 1) ? 1 : 0), (($descMode == 3) ? 1 : 0), $log_id); @@ -358,7 +354,7 @@ $headers .= '' . "\n"; tpl_set_var('descMode', 3); } - $headers .= '' . "\n"; + $headers .= '' . "\n"; tpl_set_var('htmlheaders', $headers); if ($use_log_pw == true && $log_pw != '') @@ -373,16 +369,17 @@ $smilies = ''; if ($descMode != 3) { - for ($i=0; $i \ No newline at end of file diff --git a/htdocs/lang/de/ocstyle/editdesc.tpl.php b/htdocs/lang/de/ocstyle/editdesc.tpl.php index 8a51219a5..ae7696350 100644 --- a/htdocs/lang/de/ocstyle/editdesc.tpl.php +++ b/htdocs/lang/de/ocstyle/editdesc.tpl.php @@ -37,6 +37,9 @@ + + + @@ -79,16 +82,7 @@ - - - - + {htmlnotice} diff --git a/htdocs/lang/de/ocstyle/editlog.inc.php b/htdocs/lang/de/ocstyle/editlog.inc.php index fa8cd1345..a7d5e9b5c 100644 --- a/htdocs/lang/de/ocstyle/editlog.inc.php +++ b/htdocs/lang/de/ocstyle/editlog.inc.php @@ -20,7 +20,7 @@ $error_wrong_node = t('This log entry has been created on another Opencaching website. The cache can only be edited there.'); $date_message = '' . t('date or time is invalid') . ''; - $smiley_link = '{smiley_image}'; + $smiley_link = '{smiley_image}'; $log_pw_field = ''; diff --git a/htdocs/lang/de/ocstyle/editlog.tpl.php b/htdocs/lang/de/ocstyle/editlog.tpl.php index cce82f3dc..4babf3706 100644 --- a/htdocs/lang/de/ocstyle/editlog.tpl.php +++ b/htdocs/lang/de/ocstyle/editlog.tpl.php @@ -31,9 +31,9 @@ ?> -
{t}Edit log entry for the cache {cachename}{/t}
+
{t}Edit log entry for the cache {cachename}{/t}
+ + +
{t}Language:{/t}
- {t}Notice{/t} - {t}Your HTML code will be changed again by a special filter. This is nacessary to avoid dangerous HTML-tags, such as <script>. - A list of allowed HTML tags can be find here.{/t}
- {t}Notice{/t} - {t}Please do not use any images that are hosted on geocaching.com. Upload your fotos instead on our server as well.{/t} -
{t}Encrypted note:{/t}
' . t('passwort to log:') . ' (' . t('only for found logs') . ')
diff --git a/htdocs/lang/de/ocstyle/newcache.tpl.php b/htdocs/lang/de/ocstyle/newcache.tpl.php index 1387d4883..8f922a621 100644 --- a/htdocs/lang/de/ocstyle/newcache.tpl.php +++ b/htdocs/lang/de/ocstyle/newcache.tpl.php @@ -125,6 +125,9 @@ function toggleAttr(id) + + +
{general_message} @@ -304,17 +307,7 @@ function toggleAttr(id) - - - - - - + {htmlnotice} diff --git a/htdocs/lang/de/ocstyle/newdesc.tpl.php b/htdocs/lang/de/ocstyle/newdesc.tpl.php index 0b115bbf3..35314bf9d 100644 --- a/htdocs/lang/de/ocstyle/newdesc.tpl.php +++ b/htdocs/lang/de/ocstyle/newdesc.tpl.php @@ -36,6 +36,9 @@ + + +
- {t}Notice{/t} - {t}Your HTML code will be changed again by a special filter. This is necessary to avoid dangerous HTML-tags, - such as <script>. A list of allowed HTML tags, you can find - here{/t} -
{t}Additional note:{/t}
@@ -79,16 +82,7 @@ - - - - + {htmlnotice} diff --git a/htdocs/lang/de/ocstyle/varset.inc.php b/htdocs/lang/de/ocstyle/varset.inc.php index aea6ed44a..d52fe0869 100644 --- a/htdocs/lang/de/ocstyle/varset.inc.php +++ b/htdocs/lang/de/ocstyle/varset.inc.php @@ -57,4 +57,17 @@ $error_prefix = ''; $error_suffix = ''; + + $htmlnotice = + ' + + + + '; + ?> \ No newline at end of file diff --git a/htdocs/lib2/OcHTMLPurifier.class.php b/htdocs/lib2/OcHTMLPurifier.class.php index a46256c1e..8132fc886 100755 --- a/htdocs/lib2/OcHTMLPurifier.class.php +++ b/htdocs/lib2/OcHTMLPurifier.class.php @@ -63,6 +63,22 @@ function __construct($opt) // create parent object with config parent::__construct($config); } + + + function purify($text, $config=null) + { + // HTMLPurifier deletes spaces between images; apply space protection: + do + { + $text0 = $text; + $text = mb_ereg_replace(">[\s\t]+[s[p[a[c[e]]]]] convert HTML special chars + $text = nl2br(htmlspecialchars($text)); + // .. and smilies + $text = str_replace($smiley['text'], $smiley['spaced_image'], $text); + } + else + { + // save HTML input => verify / tidy / filter + $purifier = new OcHTMLPurifier($opt); + $text = $purifier->purify($text); + } + } + else + { + if ($oldDescMode == 1) + { + // save plain text input => convert to HTML + $text = nl2br(htmlspecialchars($text, ENT_COMPAT, 'UTF-8')); + } + else + { + // mode switch from HTML editor to plain text => convert smilies ... + for ($n=0; $n < count($smiley['image']); $n++) + { + do + { + $logtext0 = $text; + $text = mb_ereg_replace("]*?src=[^>]+?".str_replace('.','\.',$smiley['file'][$n])."[^>]+?>", "[s![".$smiley['text'][$n]."]!s]", $text); + // the [s[ ]s] is needed to protect the spaces around the smileys + } while ($text != $logtext0); + } + + // ... and HTML to plain text + $text = html2plaintext($text, $oldDescMode = 0); + + $text = str_replace(array('[s![',']!s]'), '', $text); + } + } + + return $text; +} + + +// $texthtml0 is set if the text is from cache_desc.desc or cache_logs.text +// and text_html is 0, i.e. the text was edited in the "text" editor mode. + +function html2plaintext($text, $texthtml0) +{ + global $opt, $absolute_server_URI; + + if ($texthtml0) + { + $text = str_replace(array('

', "\n", "\r"), '', $text); + $text = str_replace(array('
', '

'), "\n", $text); + $text = html_entity_decode($text, ENT_COMPAT, 'UTF-8'); + } + else + { + $h2t = new html2text($text); + $h2t->set_base_url(isset($opt['page']['absolute_url']) ? $opt['page']['absolute_url'] : $absolute_server_URI); + $text = $h2t->get_text(); + + // remove e.g. trailing \n created from

by html2text + while (substr($text,-2) == "\n\n") + $text = substr($text, 0, strlen($text) - 1); + } + + return $text; +} + + +function editorJsPath() +{ + return 'templates2/ocstyle/js/editor.js?ft=' . filemtime('templates2/ocstyle/js/editor.js'); +} + +?> diff --git a/htdocs/lib2/html2text.class.php b/htdocs/lib2/html2text.class.php index 912ffa98f..bf2708b27 100644 --- a/htdocs/lib2/html2text.class.php +++ b/htdocs/lib2/html2text.class.php @@ -29,7 +29,9 @@ * * * Author(s): Jon Abernathy * * * - * Last modified: 08/08/07 * + * (Original Last modified: 08/08/07) * + * * + * With OCDE modifications for paragraph, newline and entity handling. * * * *************************************************************************/ @@ -147,6 +149,8 @@ class html2text */ var $search = array( "/\r/", // Non-legal carriage return + "/(<\/p[^>]*>|]*>|<\/ul[^>]*>|<\/ol[^>]*>|<\/table[^>]*>)\n+/i", + // OCDE:


  • + \n "/[\n\t]+/", // Newlines and tabs '/[ ]{2,}/', // Runs of spaces, pre-handling '/]*>.*?<\/script>/i', // ' . "\n"; $headers .= '' . "\n"; - tpl_set_var('descMode', 3); } - $headers .= '' . "\n"; + $headers .= '' . "\n"; tpl_set_var('htmlheaders', $headers); //effort @@ -750,16 +761,6 @@ $tos_not_ok = false; } - //html-desc? - if ($descMode != 1) - { - // Filter Input - $purifier = new OcHTMLPurifier($opt); - $desc = $purifier->purify($desc); - - tpl_set_var('desc', htmlspecialchars($desc, ENT_COMPAT, 'UTF-8')); - } - //cache-size $size_not_ok = false; if ($sel_size == -1) @@ -890,49 +891,26 @@ db_slave_exclude(); //add record to cache_desc table - if ($descMode != 1) - { - sql("INSERT INTO `cache_desc` ( - `id`, - `cache_id`, - `language`, - `desc`, - `desc_html`, - `hint`, - `short_desc`, - `last_modified`, - `desc_htmledit`, - `node` - ) VALUES ('', '&1', '&2', '&3', '1', '&4', '&5', NOW(), '&6', '&7')", - $cache_id, - $sel_lang, - $desc, - nl2br(htmlspecialchars($hints, ENT_COMPAT, 'UTF-8')), - $short_desc, - (($descMode == 3) ? 1 : 0), - $oc_nodeid); - } - else - { - sql("INSERT INTO `cache_desc` ( - `id`, - `cache_id`, - `language`, - `desc`, - `desc_html`, - `hint`, - `short_desc`, - `last_modified`, - `desc_htmledit`, - `node` - ) VALUES ('', '&1', '&2', '&3', '0', '&4', '&5', NOW(), 0, '&6')", - $cache_id, - $sel_lang, - nl2br(htmlspecialchars($desc, ENT_COMPAT, 'UTF-8')), - nl2br(htmlspecialchars($hints, ENT_COMPAT, 'UTF-8')), - $short_desc, - $oc_nodeid); - } + sql("INSERT INTO `cache_desc` ( + `id`, + `cache_id`, + `language`, + `desc`, + `desc_html`, + `hint`, + `short_desc`, + `last_modified`, + `desc_htmledit`, + `node` + ) VALUES ('', '&1', '&2', '&3', '&4', '&5', '&6', NOW(), '&7', '&8')", + $cache_id, + $sel_lang, + $desc, + ($descMode != 1) ? 1 : 0, + nl2br(htmlspecialchars($hints, ENT_COMPAT, 'UTF-8')), + $short_desc, + ($descMode == 3) ? 1 : 0, + $oc_nodeid); // insert cache-attributes for($i=0; $i diff --git a/htdocs/newdesc.php b/htdocs/newdesc.php index 3baaa36cc..8b9018e36 100644 --- a/htdocs/newdesc.php +++ b/htdocs/newdesc.php @@ -18,8 +18,8 @@ ****************************************************************************/ //prepare the templates and include all neccessary - require_once('./lib/common.inc.php'); - require_once('./lib2/OcHTMLPurifier.class.php'); + require_once('lib/common.inc.php'); + require_once('lib2/edithelper.inc.php'); //Preprocessing if ($error == false) @@ -69,6 +69,13 @@ { $descMode = $_POST['descMode']+0; if (($descMode < 1) || ($descMode > 3)) $descMode = 3; + if (isset($_POST['oldDescMode'])) + { + $oldDescMode = $_POST['oldDescMode']; + if (($oldDescMode < 1) || ($oldDescMode > 3)) $oldDescMode = $descMode; + } + else + $oldDescMode = $descMode; } else { @@ -76,6 +83,7 @@ $descMode = 1; else $descMode = 3; + $oldDescMode = $descMode; } // fuer alte Versionen von OCProp @@ -89,13 +97,8 @@ $hints = iconv("ISO-8859-1", "UTF-8", $hints); } - if ($descMode != 1) - { - // Filter Input - $purifier = new OcHTMLPurifier($opt); - $desc = $purifier->purify($desc); - - } + // Filter Input + $desc = processEditorInput($oldDescMode, $descMode, $desc); $desc_lang_exists = false; @@ -110,49 +113,26 @@ if ($desc_lang_exists == false) { //add to DB - if ($descMode != 1) - { - sql("INSERT INTO `cache_desc` ( - `id`, - `cache_id`, - `language`, - `desc`, - `desc_html`, - `desc_htmledit`, - `hint`, - `short_desc`, - `last_modified`, - `node` - ) VALUES ('', '&1', '&2', '&3', 1, '&4', '&5', '&6', NOW(), '&7')", - $cache_id, - $sel_lang, - $desc, - ($descMode == 3) ? '1' : '0', - nl2br(htmlspecialchars($hints, ENT_COMPAT, 'UTF-8')), - $short_desc, - $oc_nodeid); - } - else - { - sql("INSERT INTO `cache_desc` ( - `id`, - `cache_id`, - `language`, - `desc`, - `desc_html`, - `desc_htmledit`, - `hint`, - `short_desc`, - `last_modified`, - `node` - ) VALUES ('', '&1', '&2', '&3', 0, 0, '&4', '&5', NOW(), '&6')", + sql("INSERT INTO `cache_desc` ( + `id`, + `cache_id`, + `language`, + `desc`, + `desc_html`, + `desc_htmledit`, + `hint`, + `short_desc`, + `last_modified`, + `node` + ) VALUES ('', '&1', '&2', '&3', '&4', '&5', '&6', '&7', NOW(), '&8')", $cache_id, $sel_lang, - nl2br(htmlspecialchars($desc, ENT_COMPAT, 'UTF-8')), + $desc, + ($descMode != 1) ? '1' : '0', + ($descMode == 3) ? '1' : '0', nl2br(htmlspecialchars($hints, ENT_COMPAT, 'UTF-8')), $short_desc, $oc_nodeid); - } // do not use slave server for the next time ... db_slave_exclude(); @@ -224,20 +204,17 @@ // Text / normal HTML / HTML editor tpl_set_var('use_tinymce', ($descMode == 3) ? 1 : 0); + tpl_set_var('descMode', $descMode); + tpl_set_var('htmlnotice', $descMode == 2 ? $htmlnotice : ''); $headers = tpl_get_var('htmlheaders') . "\n"; - if ($descMode == 1) - tpl_set_var('descMode', 1); - else if ($descMode == 2) - tpl_set_var('descMode', 2); - else + if ($descMode == 3) { // TinyMCE $headers .= '' . "\n"; $headers .= '' . "\n"; - tpl_set_var('descMode', 3); } - $headers .= '' . "\n"; + $headers .= '' . "\n"; tpl_set_var('htmlheaders', $headers); tpl_set_var('reset', $reset); // obsolete @@ -256,6 +233,9 @@ } } + tpl_set_var('scrollposx', isset($_REQUEST['scrollposx']) ? $_REQUEST['scrollposx'] + 0 : 0); + tpl_set_var('scrollposy', isset($_REQUEST['scrollposy']) ? $_REQUEST['scrollposy'] + 0 : 0); + //make the template and send it out tpl_BuildTemplate(); ?> diff --git a/htdocs/removelog.php b/htdocs/removelog.php index d66a394c8..9eaa634e0 100644 --- a/htdocs/removelog.php +++ b/htdocs/removelog.php @@ -20,9 +20,9 @@ //prepare the templates and include all neccessary require_once('lib/common.inc.php'); require_once($stylepath . '/lib/icons.inc.php'); - require_once('lib2/html2text.class.php'); require_once('lib/recommendation.inc.php'); require_once('lib/logic.inc.php'); + require_once('lib2/edithelper.inc.php'); //Preprocessing if ($error == false) @@ -112,14 +112,7 @@ $message = $removed_message_title . "\n" . $message . "\n" . $removed_message_end; } - $logtext = $log_record['log_text']; - if ($log_record['text_html'] != 0) - { - $logtext = html_entity_decode($logtext, ENT_COMPAT, 'UTF-8'); - $h2t = new html2text($logtext); - $h2t->set_base_url($absolute_server_URI); - $logtext = trim($h2t->get_text()); - } + $logtext = html2plaintext($log_record['log_text'], $log_record['text_html'] == 0); //get cache owner name $cache_owner_rs = sql("SELECT `username` FROM `user` WHERE `user_id`='&1'", $log_record['cache_owner_id']); diff --git a/htdocs/resource2/ocstyle/css/style_screen.css b/htdocs/resource2/ocstyle/css/style_screen.css index 9ec1e9868..1bf135a9c 100644 --- a/htdocs/resource2/ocstyle/css/style_screen.css +++ b/htdocs/resource2/ocstyle/css/style_screen.css @@ -385,7 +385,7 @@ ul.nodot li { list-style-type: none; } ul.col4 { column-count:4; -moz-column-count:4; -webkit-column-count:4; line-height:1.7em; } /* does not work in MSIE */ ul.default li { line-height: 1.7em; } -ol {margin: 0px 0px 0px 9px; padding: 0px 0px 0px 25px; list-style-type: decimal; list-style-position: outside; font-size: 120%;} +ol {list-style-type: decimal; list-style-position: outside; } ol.col4 { column-count:4; -moz-column-count:4; -webkit-column-count:4; line-height:1.7em; } /* does not work in MSIE */ /* Tables */ diff --git a/htdocs/templates2/ocstyle/js/editor.js b/htdocs/templates2/ocstyle/js/editor.js index 9ab7c4247..9572458d0 100644 --- a/htdocs/templates2/ocstyle/js/editor.js +++ b/htdocs/templates2/ocstyle/js/editor.js @@ -16,7 +16,11 @@ function OcInitEditor() { + if (document.editform.scrollposx.value + document.editform.scrollposy.value != 0) + window.scrollTo(document.editform.scrollposx.value, document.editform.scrollposy.value); + document.getElementById("scriptwarning").firstChild.nodeValue = ""; + document.getElementById("oldDescMode").value = descMode; if (descMode == 3) { // For the case that TinyMCE does not work, we first fall back to a simple editor mode: @@ -49,45 +53,6 @@ return descElem; } - function SwitchToTextMode() - { - descMode = 1; - document.getElementById("descMode").value = descMode; - - switchfield = document.getElementById("switchDescMode"); - if (switchfield != null) - switchfield.value = "1"; - - if (use_tinymce == 1) - document.editform.submit(); - } - - function SwitchToHtmlMode() - { - descMode = 2; - document.getElementById("descMode").value = descMode; - - switchfield = document.getElementById("switchDescMode"); - if (switchfield != null) - switchfield.value = "1"; - - if (use_tinymce == 1) - document.editform.submit(); - } - - function SwitchToTinyMCE() - { - descMode = 3; - document.getElementById("descMode").value = descMode; - - switchfield = document.getElementById("switchDescMode"); - if (switchfield != null) - switchfield.value = "1"; - - if (use_tinymce == 0) - document.editform.submit(); - } - function mnuSelectElement(e) { e.backgroundColor = '#D4D5D8'; @@ -150,86 +115,64 @@ function btnSelect(mode) { - var oldMode = descMode; - descMode = mode; - mnuSetElementsNormal(); - - if ((oldMode == 1) && (descMode != 1)) + if (mode != descMode) { - // convert text to HTML - var desc = getDescElement().value; - - if ((desc.indexOf('&') == -1) && - (desc.indexOf('"') == -1) && - (desc.indexOf('<') == -1) && - (desc.indexOf('>') == -1) && - (desc.indexOf('

    ') == -1) && - (desc.indexOf('') == -1) && - (desc.indexOf('') == -1) && - (desc.indexOf('
    ') == -1)) - { - desc = desc.replace(/&/g, "&"); - desc = desc.replace(/"/g, """); - desc = desc.replace(//g, ">"); - desc = desc.replace(/\r\n/g, "\
    "); - desc = desc.replace(/\n/g, "
    "); - desc = desc.replace(/
    /g, "
    \n"); - } - - getDescElement().value = desc; + descMode = mode; + document.getElementById("descMode").value = descMode; + mnuSetElementsNormal(); + + switchfield = document.getElementById("switchDescMode"); + if (switchfield != null) + switchfield.value = "1"; + + saveScrollPos(); + document.editform.submit(); } + } - switch (mode) + function saveScrollPos() + { + if (window.pageXOffset != undefined) { - case 1: - SwitchToTextMode(); - break; - case 2: - SwitchToHtmlMode(); - break; - case 3: - SwitchToTinyMCE(); - break; + document.editform.scrollposx.value = window.pageXOffset; + document.editform.scrollposy.value = window.pageYOffset; + } + else + { + var d = document, r = d.documentElement, b = d.body; + d.editform.scrollposx.value = r.scrollLeft || b.scrollLeft || 0; + d.editform.scrollposy.value = r.scrollTop || b.scrollTop || 0; } } function btnMouseOver(id) { - var descText = document.getElementById("descText").style; - var descHtml = document.getElementById("descHtml").style; - var descHtmlEdit = document.getElementById("descHtmlEdit").style; - switch (id) { case 1: - mnuHoverElement(descText); + mnuHoverElement(document.getElementById("descText").style); break; case 2: - mnuHoverElement(descHtml); + mnuHoverElement(document.getElementById("descHtml").style); break; case 3: - mnuHoverElement(descHtmlEdit); + mnuHoverElement(document.getElementById("descHtmlEdit").style); break; } } function btnMouseOut(id) { - var descText = document.getElementById("descText").style; - var descHtml = document.getElementById("descHtml").style; - var descHtmlEdit = document.getElementById("descHtmlEdit").style; - switch (id) { case 1: - mnuUnhoverElement(descText); + mnuUnhoverElement(document.getElementById("descText").style); break; case 2: - mnuUnhoverElement(descHtml); + mnuUnhoverElement(document.getElementById("descHtml").style); break; case 3: - mnuUnhoverElement(descHtmlEdit); + mnuUnhoverElement(document.getElementById("descHtmlEdit").style); break; } } diff --git a/htdocs/templates2/ocstyle/log_cache.tpl b/htdocs/templates2/ocstyle/log_cache.tpl index 938fd2886..c3c78d610 100755 --- a/htdocs/templates2/ocstyle/log_cache.tpl +++ b/htdocs/templates2/ocstyle/log_cache.tpl @@ -7,9 +7,9 @@

- {t}Notice{/t} - {t}Your HTML code will be changed again by a special filter. This is nacessary to avoid dangerous HTML-tags, such as <script>. - A list of allowed HTML tags can be find here.{/t}
- {t}Notice{/t} - {t}Please do not use any images that are hosted on geocaching.com. Upload your fotos instead on our server as well.{/t} -
+ ' . t('Notice') . ' + ' . t('Your HTML code will be changed again by a special filter. This is necessary to avoid dangerous HTML-tags, + such as <script>. A list of allowed HTML tags, you can find + here') . ' +