StormMan
User-
Posts
71 -
Joined
-
Last visited
Content Type
Profiles
Forums
Calendar
Store
Everything posted by StormMan
-
Написал так, стало получше: $string = preg_replace('/\s+?(\S+)?$/u', '', mb_substr($string, 0, $length+1, utf8));
-
Veseloff, большое спасибо! А куда нужно u поставить в этой строке? $string = preg_replace('/\s+?(\S+)?$/', '', substr($string, 0, $length+1));
-
Всем привет! Есть такой модуль обрезки строки, это плагин для Smarty, но используются обычные функции: <?php function smarty_modifier_truncate($string, $length = 80, $etc = '...', $break_words = false, $middle = false) { if ($length == 0) return ''; if (strlen($string) > $length) { $length -= strlen($etc); if (!$break_words && !$middle) { $string = preg_replace('/\s+?(\S+)?$/', '', substr($string, 0, $length+1)); } if(!$middle) { return substr($string, 0, $length).$etc; } else { return substr($string, 0, $length/2) . $etc . substr($string, -$length/2); } } else { return $string; } } ?> Проблема этого кода в том, что он неправильно работает с кодировкой utf-8, если символы отличаются от латиницы, и исходит эта проблема из-за того, что с многобайтными символами функция substr работать не умеет. Заменяю её на mb_substr: <?php function smarty_modifier_truncate($string, $length = 80, $etc = '...', $break_words = false, $middle = false) { if ($length == 0) return ''; if (mb_strlen($string, utf8) > $length) { //if (strlen($string) > $length) { $length -= mb_strlen($etc, utf8); //$length -= strlen($etc); if (!$break_words && !$middle) { $string = mb_ereg_replace('/\s+?(\S+)?$/', '', mb_substr($string, 0, $length+1, utf8), utf8); //$string = preg_replace('/\s+?(\S+)?$/', '', substr($string, 0, $length+1)); } if(!$middle) { return mb_substr($string, 0, $length, utf8).$etc; //return substr($string, 0, $length).$etc; } else { return mb_substr($string, 0, $length/2, utf8) . $etc . mb_substr($string, -$length/2, utf8); //return substr($string, 0, $length/2) . $etc . substr($string, -$length/2); } } else { return $string; } } ?> Остаётся одна проблема: слова обрезаются посередине, получается ерунда вроде "Слова обрезаются посе...". Подскажите, какие функции можно применить, чтобы текст обрезался правильно: "Слова обрезаются посередине...". Буду очень благодарен за примеры!
-
Ну что ж, проблему практически решил. sigma77, большое тебе спасибо за указанные ошибки! В основном проблема в них и заключалась. Плюс ещё в некоторых местах, где скрипт глючил из-за неверно проставленных цифр. Спасибо за помощь! Как сайт доделаю, выложу на суд
-
Ошибка: user_menu_minimized is not defined Эту ошибку тоже пофиксил. Однако, меню так и не сворачивается. Хотя, не то чтобы совсем не сворачивается... так-так-так.....
-
minon-a, загрузи его себе на сервер, и между тегами <head>, до подключения кода, поставь ссылку на jquery: <script type="text/javascript" src="путь к твоему jQuery"></script>
-
Две кавычки - это жесть)) Спасибо! Но исправление сей ошибки не помогло...
-
sigma77, спасибо Сайт недоделанный ещё, вёрстка сделана только у хедера и частично у левого меню, до остального ещё руки не дошли. Вот пытаюсь сначала с аккордеоном разобраться. Пока безуспешно...
-
Убрал точки, заменил пути к скриптам абсолютными. Проблема, к сожалению, осталась... А вообще, некоторых случаях точка перед слэшем помогает указать на корень сайта. Например, стили по этому пути подключаются, судя по оформлению Заметил один нюанс: когда наводишь курсор мыши на заголовок в рабочем меню, указатель "стрелка" меняется на "палец". А в нерабочем этого не происходит. Уже много вариантов перепробовал, даже не знаю, что предположить...
-
Всем привет! Делаю меню, которое должно сворачиваться/разворачиваться при клике мышкой. Всё сделал в отдельном файле, заработало. Но при попытке вставить наработки на страницу сайта потерпел фиаско - ничего не работает. Подскажите, пожалуйста, в чём может быть дело? Рабочее меню: страничка с рабочим примером Нерабочее меню (в левом столбце, нижнее): страничка с нерабочим примером
-
Большое спасибо тебе за помощь!))))) Видимо, в данный момент я ещё не готов к воплощению подобных идей, очень много времени потратил, но так и не нашёл, в чём же дело. Вернусь к этому вопросу, когда будет больше навыков и знаний
-
rus, спасибо! Пробую убрать всю проверку. Конечно, так работать нельзя, но может получится найти, какая из проверок ошибку возвращает. 1) Я так понимаю, что в этом случае комментарии вообще не отправлялись бы? А они на других страницах, где не подключен Тини, нормально отсылаются. 2) Ну да. Понять бы только, почему она true. trim срезает пробелы в конце и начале, значит, если пробелы есть, то получаем $this->is_error = 1; Правильно я логику понимаю? Но если есть пробелы, то, когда убираю эту строку с ошибкой и следующую, удаляющую коммент $comment_body = ""; , они должны ведь и в БД прописываться. Но в БД пусто, то есть комментарий прописывается со всеми параметрами, кроме comment_body. Почему такое противоречие? 3)4)5) Большое спасибо за ссылки! 6) Я так понимаю, что до этого $comment_body может что-то содержать?
-
Там ли вообще копаю?
-
Спасибо за наводку! Посмотрел в сторону php. Но решить проблему не удалось. Максимум, чего получилось добиться - комментарии стали отправляться, но пустые. Для обработки комментариев в движке используется отдельный файл include/class_comment.php. Для отправки комментариев используются свои функции, точнее даже отдельный класс. Вот кусок кода, который мне показался интересным: // $comment_body - это наша переменная от textarea // MAKE SURE COMMENT BODY IS NOT EMPTY - ADD BREAKS AND CENSOR $comment_body = cleanHTML(censor($comment_body), $setting['setting_comment_html'], Array("style")); //если закомментить только этот участок, то ошибка остаётся. $setting берёт значение из БД, список разрешённых тегов выводится под полем коммента $comment_body = preg_replace('/(\r\n?)/', "\n", $comment_body); //1 $comment_body = str_replace("\n", "<br>", $comment_body); //2 $comment_body = preg_replace('/(<br>){3,}/is', '<br><br>', $comment_body); //3 $comment_body = str_replace("'", "\'", $comment_body); //4 //если закомментить строки //1 //2 //3 //4 то проблема остаётся, то же самое и в случае, если закомментить плюсом и $comment_body // Ниже штучка интереснее. Если её убрать, то комментарии отправляются, но пустые. if( !trim($comment_body) ) { $this->is_error = 1; // Если убрать только эту строчку, то отправляется пустой коммент. $comment_body = ""; // Если убрать только эту строчку, то ничего не отправляется, та же ошибка } // Если закомментить всё вышенаписанное, то отправляется пустой коммент В начале класса идёт объявление переменной $is_error: var $is_error; // DETERMINES WHETHER THERE IS AN ERROR OR NOT Но почему значение выставляется в 1, если комментарий отправляется из TinyMCE? Если код с ошибкой совсем убрать, то комментарий пустой... Не понимаю... От чего это может зависеть? Полностью файл лежит здесь: http://zazhizn.ru/class_comment.rar
-
rus, спасибо, дружище! Редактор вставил, по кусочкам пробовал убирать "лишнее", пока не заработало))) Результат - http://zazhizn.ru/test_tiny.html вопрос решён Но открылась новая проблема - по-видимому, какая-то несовместимость. То ли проверяющий js не пропускает, то ли с переменными путаница. Сделаю новую тему. Новая тема: http://forum.htmlbook.ru/index.php?showtopic=20727
-
Друзья, проблема такая: было текстовое поле для добавления комментария. Прицепил к нему TinyMCE, комментарии перестали отправлятся. Ошибка на уровне js, так как отправки формы как таковой не происходит, она перехватывается. Вот пример: http://zazhizn.ru/ логин test и пароль test12345 На страничке http://zazhizn.ru/test/ во вкладке Комментарии, пишем любой коммент, например 123, жмём отправить - и ничего не отправляется, вылазит сообщение "Пожалуйста, напишите сообщение". Без TinyMCE всё работает, это сообщение вообще вылазит только на пустой коммент, а с Тини на любой такая реакция... В движке используется фреймворк MooTools. За комментарии отвечает файл include/js/core-min.js , а за Тини include/tiny_mce/tiny_mce.js Сообщение "Пожалуйста, напишите сообщение" в core-min.js зовётся this.Base.Language.Translate(831) Очень долго рылся в кодах, несколько часов потратил на чтение разных материалов от гугла, но толком ничего не нашёл... вот например одна ссылка, но я толком из неё ничего не понял: http://forum.runlive.org/index.php?PHPSESS...&topic=80.0 Я понимаю, что мой вопрос - это конкретная такая проблема, и с ходу её наверняка не решить. Но, может быть, взглянув опытным взглядом, кто-нибудь сможет мне хотя бы намекнуть - в чём проблема? В фреймворке, или в этих яваскриптах, или в чём? У меня уже шесть утра, внедрением ТиниМСЕ уже второй день занимаюсь, и всё какая-нибудь трабла да вылезет... Помогите советом, пожалуйста.
-
Сделал ещё один файл, код взял с офсайта, в IE7 работает, а в IE8, FF, Opera, Chrome и Safari - нет. Вот страничка: http://zazhizn.ru/test_tinymce.html Посмотрите, плиз, в чём дело может быть?
-
Чтобы убрать всё лишнее, сделал отдельный тестовый файл (вот ссылка: http://zazhizn.ru/test_tiny.html) с таким кодом: <head></head> <body><script type="text/javascript" src="http://zazhizn.ru/tiny_mce/tiny_mce.js"></script> <script type="text/javascript"> tinyMCE.init({ // General options mode : "textareas", theme : "advanced", plugins : "safari,spellchecker,pagebreak,style,layer,table,save,advhr,advimage,autosave ,advlist,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,sear c hreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualcha r s,nonbreaking,xhtmlxtras,template,wordcount,imagemanager,filemanager", // Theme options theme_advanced_buttons1 : "save,newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justify center,justifyright,justifyfull,|,styleselect,formatselect,fontselect,fontsizese l ect", theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outd ent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,| , insertdate,inserttime,preview,|,forecolor,backcolor", theme_advanced_buttons3 : "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespe ll,media,advhr,|,print,|,ltr,rtl,|,fullscreen", theme_advanced_buttons4 : "insertlayer,moveforward,movebackward,absolute,|,styleprops,spellchecker,|,ci te,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,template,blockquote,pa g ebreak,restoredraft,|,insertfile,insertimage", theme_advanced_toolbar_location : "top", theme_advanced_toolbar_align : "left", theme_advanced_statusbar_location : "bottom", theme_advanced_resizing : true, // Example content CSS (should be your site CSS) content_css : "css/example.css", // Drop lists for link/image/media/template dialogs template_external_list_url : "js/template_list.js", external_link_list_url : "js/link_list.js", external_image_list_url : "js/image_list.js", media_external_list_url : "js/media_list.js", // Replace values for the template plugin template_replace_values : { username : "Some User", staffid : "991234" }, autosave_ask_before_unload : false }); </script><form method="post" action="somepage"> <textarea name="content" style="width:100%"> </textarea> </form> </body> И всё равно та же ерунда... Простое текстовое поле: http://zazhizn.ru/test_tiny.html ... ps а ещё у этой темы счётчик просмотров не работает, 5 сообщений и 0 просмотров. прям заколдованность какая-то Друзья, очень прошу помощи!
-
Не за что! Рад был помочь
-
Спасибо, сейчас гляну.. ... А где должны быть эти строчки? Пробовал установить их таким образом, но не помогло: <script type="text/javascript"> tinyMCE.init({ // General options mode : "textareas", theme : "advanced", plugins: "safari,spellchecker,pagebreak,style,layer,table,save,advhr,advimage,advlink, emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,co ntextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xht mlxtras,template,imagemanager,filemanager", // Theme options theme_advanced_buttons1: "bold,italic,underline,strikethrough,fontsizeselect,separator,cut,copy,paste, undo,redo,separator,justifyleft,justifycenter,justifyright,justifyfull", theme_advanced_buttons2: "image,link,unlink,charmap,separator,emotions", theme_advanced_buttons3: "", theme_advanced_buttons4: "",theme_advanced_buttons4 : "insertlayer,moveforward,movebackward,absolute,|,styleprops,|,cite,abbr,acron ym,del,ins,attribs,|,visualchars,nonbreaking,template,pagebreak", theme_advanced_toolbar_location : "top", theme_advanced_toolbar_align : "left", theme_advanced_statusbar_location : "bottom", theme_advanced_resizing : true, // Example content CSS (should be your site CSS) content_css : "templates/styles.css", // Drop lists for link/image/media/template dialogs template_external_list_url : "lists/template_list.js", external_link_list_url : "lists/link_list.js", external_image_list_url : "lists/image_list.js", media_external_list_url : "lists/media_list.js", // Replace values for the template plugin template_replace_values : { username : "Some User", staffid : "991234" } }); </script> Наверное, не туда их вписал?
-
Сейчас без точки попробую, спасибо! И ещё слэш попробую убрать... Чем чёрт не шутит, может дело правда в этом... А вообще ну их, все эти точки слэши. Абсолютный путь пропишу. .... Ничего не изменилось... Та точка указывала на корень сайта, путь вроде правильный был. Теперь вообще путь абсолютный, и то же самое. В чём ещё может быть дело?
-
Как выровнять один div по высоте относительно другого DIVа
StormMan replied to generator2003's question in HTML Coding
Я так понимаю, что тут кроме всего прочего для начала надо найти div с самым большим количеством текста или с самой большой высотой контента... -
С TinyMCE работаю впервые, вот не понимаю, что не так делаю. Есть у меня движок, в котором для комментариев используются простые текстовые поля, с некотороми разрешёнными тегами (типа img, b, p, a, i и т.д.). Решил натянуть на это дело висивиг, выбрал TinyMCE, так как он показался мне самым простым в интеграции. Залил его себе на сервер, в папку jscripts/, и вставил в код страницы с комментарием требуемый текст: <script type="text/javascript" src="./jscripts/tiny_mce/tiny_mce.js"></script> <script type="text/javascript"> tinyMCE.init({ // General options mode : "textareas", theme : "advanced", plugins: "safari,spellchecker,pagebreak,style,layer,table,save,advhr,advimage,advlink, emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,c o ntextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xh t mlxtras,template,imagemanager,filemanager", // Theme options theme_advanced_buttons1: "bold,italic,underline,strikethrough,fontsizeselect,separator,cut,copy,paste, undo,redo,separator,justifyleft,justifycenter,justifyright,justifyfull", theme_advanced_buttons2: "image,link,unlink,charmap,separator,emotions", theme_advanced_buttons3: "", theme_advanced_buttons4: "",theme_advanced_buttons4 : "insertlayer,moveforward,movebackward,absolute,|,styleprops,|,cite,abbr,acron ym,del,ins,attribs,|,visualchars,nonbreaking,template,pagebreak", theme_advanced_toolbar_location : "top", theme_advanced_toolbar_align : "left", theme_advanced_statusbar_location : "bottom", theme_advanced_resizing : true, // Example content CSS (should be your site CSS) content_css : "templates/styles.css", // Drop lists for link/image/media/template dialogs template_external_list_url : "lists/template_list.js", external_link_list_url : "lists/link_list.js", external_image_list_url : "lists/image_list.js", media_external_list_url : "lists/media_list.js", }); </script> Но после всех этих манипуляций текстовое поле осталось прежним. Посмотреть можно тут: http://zazhizn.ru/Alyonka17/albums/3/13 На сайте недоступны комментарии для незарегистрированных пользователей, поэтому, чтобы никого к регистрации не принуждать, вот данные для входа: test test12345 После авторизации попадаете на страницу пользователя test (Тестер Сайта), там есть вкладка Комментарии. Там тоже самое: код для включения TinyMCE прописан, но текстовое поле осталось прежним, без висивига. Помогите, пожалуйста, разобраться, в чём может быть дело? __________________ На данный момент актуально сообщение http://forum.htmlbook.ru/index.php?showtop...st&p=148997
-
Попробуйте задать свойства ещё для посещённых ссылок: .baner a, .baner a:visited, .baner a.visited { color:#fff; }
-
s0rr0w, спасибо! В общем, нашёл в скрипте строки, в которых идут опеации с клавишами клавиатуры с кейкодами 37 и 39 (вроде это и есть право-лево), закомментил их. Теперь вроде всё работает. Очень благодарен за помощь, выручили!)))