Jump to content

StormMan

User
  • Posts

    71
  • Joined

  • Last visited

Everything posted by StormMan

  1. Написал так, стало получше: $string = preg_replace('/\s+?(\S+)?$/u', '', mb_substr($string, 0, $length+1, utf8));
  2. Veseloff, большое спасибо! А куда нужно u поставить в этой строке? $string = preg_replace('/\s+?(\S+)?$/', '', substr($string, 0, $length+1));
  3. Всем привет! Есть такой модуль обрезки строки, это плагин для 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; } } ?> Остаётся одна проблема: слова обрезаются посередине, получается ерунда вроде "Слова обрезаются посе...". Подскажите, какие функции можно применить, чтобы текст обрезался правильно: "Слова обрезаются посередине...". Буду очень благодарен за примеры!
  4. Ну что ж, проблему практически решил. sigma77, большое тебе спасибо за указанные ошибки! В основном проблема в них и заключалась. Плюс ещё в некоторых местах, где скрипт глючил из-за неверно проставленных цифр. Спасибо за помощь! Как сайт доделаю, выложу на суд
  5. Ошибка: user_menu_minimized is not defined Эту ошибку тоже пофиксил. Однако, меню так и не сворачивается. Хотя, не то чтобы совсем не сворачивается... так-так-так.....
  6. StormMan

    onclick

    minon-a, загрузи его себе на сервер, и между тегами <head>, до подключения кода, поставь ссылку на jquery: <script type="text/javascript" src="путь к твоему jQuery"></script>
  7. Две кавычки - это жесть)) Спасибо! Но исправление сей ошибки не помогло...
  8. sigma77, спасибо Сайт недоделанный ещё, вёрстка сделана только у хедера и частично у левого меню, до остального ещё руки не дошли. Вот пытаюсь сначала с аккордеоном разобраться. Пока безуспешно...
  9. Убрал точки, заменил пути к скриптам абсолютными. Проблема, к сожалению, осталась... А вообще, некоторых случаях точка перед слэшем помогает указать на корень сайта. Например, стили по этому пути подключаются, судя по оформлению Заметил один нюанс: когда наводишь курсор мыши на заголовок в рабочем меню, указатель "стрелка" меняется на "палец". А в нерабочем этого не происходит. Уже много вариантов перепробовал, даже не знаю, что предположить...
  10. Всем привет! Делаю меню, которое должно сворачиваться/разворачиваться при клике мышкой. Всё сделал в отдельном файле, заработало. Но при попытке вставить наработки на страницу сайта потерпел фиаско - ничего не работает. Подскажите, пожалуйста, в чём может быть дело? Рабочее меню: страничка с рабочим примером Нерабочее меню (в левом столбце, нижнее): страничка с нерабочим примером
  11. Большое спасибо тебе за помощь!))))) Видимо, в данный момент я ещё не готов к воплощению подобных идей, очень много времени потратил, но так и не нашёл, в чём же дело. Вернусь к этому вопросу, когда будет больше навыков и знаний
  12. rus, спасибо! Пробую убрать всю проверку. Конечно, так работать нельзя, но может получится найти, какая из проверок ошибку возвращает. 1) Я так понимаю, что в этом случае комментарии вообще не отправлялись бы? А они на других страницах, где не подключен Тини, нормально отсылаются. 2) Ну да. Понять бы только, почему она true. trim срезает пробелы в конце и начале, значит, если пробелы есть, то получаем $this->is_error = 1; Правильно я логику понимаю? Но если есть пробелы, то, когда убираю эту строку с ошибкой и следующую, удаляющую коммент $comment_body = ""; , они должны ведь и в БД прописываться. Но в БД пусто, то есть комментарий прописывается со всеми параметрами, кроме comment_body. Почему такое противоречие? 3)4)5) Большое спасибо за ссылки! 6) Я так понимаю, что до этого $comment_body может что-то содержать?
  13. Там ли вообще копаю?
  14. Спасибо за наводку! Посмотрел в сторону 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
  15. rus, спасибо, дружище! Редактор вставил, по кусочкам пробовал убирать "лишнее", пока не заработало))) Результат - http://zazhizn.ru/test_tiny.html вопрос решён Но открылась новая проблема - по-видимому, какая-то несовместимость. То ли проверяющий js не пропускает, то ли с переменными путаница. Сделаю новую тему. Новая тема: http://forum.htmlbook.ru/index.php?showtopic=20727
  16. Друзья, проблема такая: было текстовое поле для добавления комментария. Прицепил к нему 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 Я понимаю, что мой вопрос - это конкретная такая проблема, и с ходу её наверняка не решить. Но, может быть, взглянув опытным взглядом, кто-нибудь сможет мне хотя бы намекнуть - в чём проблема? В фреймворке, или в этих яваскриптах, или в чём? У меня уже шесть утра, внедрением ТиниМСЕ уже второй день занимаюсь, и всё какая-нибудь трабла да вылезет... Помогите советом, пожалуйста.
  17. Сделал ещё один файл, код взял с офсайта, в IE7 работает, а в IE8, FF, Opera, Chrome и Safari - нет. Вот страничка: http://zazhizn.ru/test_tinymce.html Посмотрите, плиз, в чём дело может быть?
  18. Чтобы убрать всё лишнее, сделал отдельный тестовый файл (вот ссылка: 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 просмотров. прям заколдованность какая-то Друзья, очень прошу помощи!
  19. Спасибо, сейчас гляну.. ... А где должны быть эти строчки? Пробовал установить их таким образом, но не помогло: <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> Наверное, не туда их вписал?
  20. Сейчас без точки попробую, спасибо! И ещё слэш попробую убрать... Чем чёрт не шутит, может дело правда в этом... А вообще ну их, все эти точки слэши. Абсолютный путь пропишу. .... Ничего не изменилось... Та точка указывала на корень сайта, путь вроде правильный был. Теперь вообще путь абсолютный, и то же самое. В чём ещё может быть дело?
  21. Я так понимаю, что тут кроме всего прочего для начала надо найти div с самым большим количеством текста или с самой большой высотой контента...
  22. С 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
  23. Попробуйте задать свойства ещё для посещённых ссылок: .baner a, .baner a:visited, .baner a.visited { color:#fff; }
  24. s0rr0w, спасибо! В общем, нашёл в скрипте строки, в которых идут опеации с клавишами клавиатуры с кейкодами 37 и 39 (вроде это и есть право-лево), закомментил их. Теперь вроде всё работает. Очень благодарен за помощь, выручили!)))
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy