l-k Опубликовано 17 Сентября 2007 Жалоба Поделиться Опубликовано 17 Сентября 2007 (изменено) Полный аналог тэга lj-cut, знакомого многим по LiveJournal. Позволяет спрятать одну или несколько частей записи, чтобы не "утяжелять" ленту друзей. Полный текст будет виден только на странице комментариев и в версии для печати. Вместо спрятанного текста в ленте друзей, календаре и пр. местах будет ссылка на страницу комментариев, точно на начало скрытого текста. Тут уже где-то в мае выкладывали подобный мод, но, во-первых, его не выделили в отдельную тему, во-вторых, в нем в каждой записи был возможен только один тэг cut.1) /misc/post_render.phpпосле var $authors = array();добавить var $cut_posts = array(); var $cut_attachments = array(); в функции process_post перед$row['post'] = $this->post_db_parse_bbcode($row['post']);добавить $this->cut_url = $journal->base_url."user=".$row['journal_id']."&comm=".$row['pid']; $this->default_txt = $ibforums->lang['jscode_text_cut_default']; $this->show_full = ($ibforums->input['comm'] OR $ibforums->input['preview_post']) ? 1 : 0; $row['post'] = preg_replace_callback( "#\[cut=?([^]]*?)?\](.+?)\[/cut\]#is", array(&$this,'cut_link'), $row['post'] ); if (strpos(strtolower($row['post']), "[cut") !== false) { if ($this->show_full) { $row['post'] = preg_replace("#\[cut(=[^]]*?)\]#i", "<a name='cut'></a>", $row['post']); } else { preg_match("#\[cut(=[^]]*?)\]#i", $row['post'], $matches, PREG_OFFSET_CAPTURE); $this->cut_posts[] = $row['pid']; $matches[1][0] = ltrim($matches[1][0],"="); if (!$matches[1][0]) $matches[1][0] = $this->default_txt; $row['post'] = substr($row['post'], 0, $matches[0][1])." ( <a href='".$this->cut_url."#cut'>".$matches[1][0]."</a> )"; } } далее перед function post_db_parse_bbcode($t="")добавить function cut_link($matches) { static $i = 0; $matches[1] = ltrim($matches[1],"="); if ($this->show_full) { return "<a name='cut".$i++."'></a>".$matches[2]; } else { if (preg_match_all( "#\[attachid=(\d+?)\]#i", $matches[2], $attachids )) { foreach ($attachids[1] as $k => $v) { $this->cut_attachments[$v] = $v; } } if (!$matches[1]) $matches[1] = $this->default_txt; return " ( <a href='".$this->cut_url."#cut".$i++."'>".$matches[1]."</a> )"; } }далее в функции render_attach, после foreach ($attached[$id] as $row) {добавить if (count($this->cut_attachments)) { if (in_array($row['attach_id'], $this->cut_attachments)) { continue; } }далее перед $post_attach .= $to_post.' ';добавить if (count($this->cut_posts)) { if (in_array($row['attach_pid'], $this->cut_posts)) { continue; } } 2. prints.phpперед$post['post'] = $this->post_render->post_db_parse_bbcode($post['post']);добавить $post['post'] = preg_replace( "#\[cut([^]]*?)?\](.+?)\[/cut\]#is", "\\2", $post['post'] ); $post['post'] = preg_replace( "#\[cut([^]]*?)\]#i", "", $post['post'] ); 3. skin_q_reply.php, функция quick_reply_formперед // IBC Code stuffдобавитьfunction tag_cut() { var txt = prompt(text_cut, text_cut_default); if (txt==null) return; if (!txt) { doInsert("[CUT]", "[/CUT]", false); return; }else{ doInsert("[CUT="+txt+"]", "[/CUT]", false); } } var text_cut = "{$ibforums->lang['jscode_text_cut']}"; var text_cut_default = "{$ibforums->lang['jscode_text_cut_default']}"; var help_cut = "{$ibforums->lang['hb_cut']}";куда-нибудь между кнопками вставить новую. У меня так: после<input class='button' type='button' accesskey='l' value=' Список ' onclick='tag_list()' name="LIST" onmouseover="hstat('list')" />добавлено{$data['_CUT_BUTTON']} 4. /misc/post_functions.phpфункция reply_formперед // Full form $this->html = $journal->skin->html['q_reply']->quick_reply_form($data);добавить if (isset($ibforums->input['preview_post']) or ($ibforums->input['aid']=='addpost' || ($ibforums->input['aid']=='edit' && !isset($ibforums->input['comm'])))) { $data['_CUT_BUTTON'] = "<input class='button' type='button' accesskey='c' value=' CUT ' onclick='tag_cut()' name=\"CUT\" onmouseover=\"hstat('cut')\" />"; } else { $data['_CUT_BUTTON'] = ""; }(это чтобы кнопка CUT была только на странице добавления/редактирования записи, но не комментариев). 5. lang_journal.phpпосле$lang = array (добавить'jscode_text_cut' => "Введите текст ссылки", 'jscode_text_cut_default' => "Продолжение...", 'hb_cut' => "Тэг cut (спрятать продолжение в комментарии)", ----Я вдруг вспомнила про этот мод и решила его обновить - за эти 2.5 года у нас поменялась версия php, теперь это 5.2. Помнится, после переезда в первое время были какие-то глюки, пропадал текст в сообщениях, содержащих этот тэг. Несколько раз уже натыкалась на подобный баг: если регулярное выражение слишком расплывчатое, напр. #\[cut(.*?)\]#i" вместо #\[cut([^]]*?)\]#i", парсер может выдать пустой текст в результате замены. На этом форуме уже обсуждали такой баг http://forums.ibresource.ru/index.php?showtopic=52804 За это время еще какие-то изменения были внесены. Кажется, связанные с видимостью кнопки для вставки тэга. Если кому-то нужны эти изменения - отметьтесь в теме, я их найду у себя Изменено 23 Февраля 2010 пользователем l-k Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
jemis Опубликовано 18 Сентября 2007 Жалоба Поделиться Опубликовано 18 Сентября 2007 тег работает, кнопка есть, но эффекта от нажатия ноль.два раза переписывал файлыфорум 2.3 журналы 2.1 Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
l-k Опубликовано 18 Сентября 2007 Автор Жалоба Поделиться Опубликовано 18 Сентября 2007 тег работает, кнопка есть, но эффекта от нажатия ноль.два раза переписывал файлыфорум 2.3 журналы 2.1это у меня сначала в инструкциях была строка$data['_CUT_BUTTON'] = "<input class='button' type='button' accesskey='c' value=' CUT ' onclick='java script:tag_cut()' name=\"CUT\" onmouseover=\"hstat('cut')\" />";Этот форум из соображений безопасности разбивает слово java_script пробелом - получается java script. На самом деле это слово не нужно вообще, его можно убрать (инструкции уже исправлены). Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
jemis Опубликовано 19 Сентября 2007 Жалоба Поделиться Опубликовано 19 Сентября 2007 угу все заработало,но только обнаружился косяк в старых записях где есть аттачи картикок. они не все отображаются или отображается только одна из пяти например вместо них теги [атач=234] [атач=235] [атач=236] и т.п. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
l-k Опубликовано 19 Сентября 2007 Автор Жалоба Поделиться Опубликовано 19 Сентября 2007 (изменено) Интересно было бы посмотреть (т.е. дайте ссылку). Этот мод работает на форуме, где в Дневниках 140000 аттачей, и пока что никто не жаловался на такие косяки. Вы раньше не ставили другую версию cut, которая пробегала где-то здесь в мае? Изменено 19 Сентября 2007 пользователем l-k Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
jemis Опубликовано 19 Сентября 2007 Жалоба Поделиться Опубликовано 19 Сентября 2007 ссылку дать немогуоткатил изменения все картинки появились)это первый кат модеще стоит мод кто просматривал дневник, но не думаю что из-за негоможет что не привильно добавил вpost_functions.phppost_render.php Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
l-k Опубликовано 20 Сентября 2007 Автор Жалоба Поделиться Опубликовано 20 Сентября 2007 Ну что вам сказать. У меня ipb 2.0, mJournal 2.07. Возможно, для вашего случая "форум 2.3 журналы 2.1" этот мод действительно не подходит. Я не могу проверить. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Arhar Опубликовано 20 Сентября 2007 Жалоба Поделиться Опубликовано 20 Сентября 2007 слушай, а Вайсеровский кат теперь где? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
xRay Опубликовано 20 Сентября 2007 Жалоба Поделиться Опубликовано 20 Сентября 2007 Arharон в общей теме которую закрыли Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
l-k Опубликовано 21 Сентября 2007 Автор Жалоба Поделиться Опубликовано 21 Сентября 2007 Arhar, xRay, напомню - еще один полезный мод забыт. Тот, где аттачи раскладываются по папкам с id пользователя. Я еще разик отредактировала первое сообщение с описанием ката - чтобы на один preg_ было меньше Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
replicant Опубликовано 21 Сентября 2007 Жалоба Поделиться Опубликовано 21 Сентября 2007 Arhar, xRay, напомню - еще один полезный мод забыт. Тот, где аттачи раскладываются по папкам с id пользователя. Я еще разик отредактировала первое сообщение с описанием ката - чтобы на один preg_ было меньше http://www.ibresource.ru/forums/index.php?showtopic=46849 - не забыт! Там просто очень длинная инструкция, поэтому я ее в архиве положил. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
WildCat Опубликовано 21 Октября 2007 Жалоба Поделиться Опубликовано 21 Октября 2007 Возможно, для вашего случая "форум 2.3 журналы 2.1" этот мод действительно не подходит.Не "возможно", а так и есть Наблюдается описанная выше проблема с аттачами (и чего-то кнопка упорно не захотела добавляться в редактор).А без тега тяжко Утомляет листать здоровые тексты и кучу картинок Кстати, Вайсеровский мод CUT отлично отрабатывает на 2.3.1 + mjournal 2.1 Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
l-k Опубликовано 21 Октября 2007 Автор Жалоба Поделиться Опубликовано 21 Октября 2007 WildCat, значит, не судьба Ставить 2.3.1 с дневниками 2.1, чтобы переделать мод под них, я не буду... Надо тогда, чтобы кто-то оформил и выложил "вайсеровский кат" для этой версии. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
WildCat Опубликовано 21 Октября 2007 Жалоба Поделиться Опубликовано 21 Октября 2007 Вайсеровский мод встает вообще без каких-либо изменений! У меня был в 2.1.7 cut в постах, после перехода на 2.3.1 тег ессесно повис среди мессаг в виде текста [cut]. Мод поставил - всё ок, обрезалось как было раньше, проверил новые сообщения - проблем нет. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
l-k Опубликовано 21 Октября 2007 Автор Жалоба Поделиться Опубликовано 21 Октября 2007 Да я ж не спорю я о том, что он не выложен в виде отдельного мода, он внутри той старой, "большой" темы. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
WildCat Опубликовано 21 Октября 2007 Жалоба Поделиться Опубликовано 21 Октября 2007 (изменено) Ну я не знаю, почему Вайсер этого не сделал... Вынес его мод в архив... Изменено 21 Октября 2007 пользователем WildCat Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
l-k Опубликовано 21 Октября 2007 Автор Жалоба Поделиться Опубликовано 21 Октября 2007 Вообще-то в этом подфоруме темы оформляются так: один мод - одна тема. У нас с Vic'er-ом разные моды. Мой позволяет вводить свой текст для продолжения, скрывать участки текста (включая вставленные в текст аттачи) внутри записи, а не только продолжение, и требует меньше правок. Правда, почему-то не работает на 2.3.1/2.1. Поставила только что у себя на домашнем компе дневники 2.1 на форум 2.2 - все работает кнопка не появляется, если в настройках дневников стоит "Шаблоны из PHP файлов?" - "Нет" (моя инструкция подразумевает, что шаблоны берутся из файлов). А этот глюкв старых записях где есть аттачи картикок. они не все отображаются или отображается только одна из пяти например вместо них теги [атач=234] [атач=235] [атач=236] и т.п. мне пока не удалось воспроизвести. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
WildCat Опубликовано 21 Октября 2007 Жалоба Поделиться Опубликовано 21 Октября 2007 (изменено) мне пока не удалось воспроизвести. У меня такое случилось в посте, где было около 15 аттачей, отобразился только последний. Причем это случилось еще до использования ката в данном посте - установил мод, выполнил все изменения и картинки исчезли. Изменено 21 Октября 2007 пользователем WildCat Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
l-k Опубликовано 22 Октября 2007 Автор Жалоба Поделиться Опубликовано 22 Октября 2007 WildCat, догадаться, что там у вас происходило, я не могу, увидеть тоже... воспроизвести тоже - я даже поставила ipb 2.3.1 и долго загружала картинки в дневник. Увы, не получилось поймать баг. Раз мод в принципе работает на 2.3.1/2.1, не могу себе представить, почему на этих версиях могут возникнуть баги, которых пока никто не обнаружил на моем форуме (ipb2.0/mJournal 2.07, 1700 записей, содержащих строку "[cut", куча аттачей), а также на паре других, где этот мод установлен. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
WildCat Опубликовано 22 Октября 2007 Жалоба Поделиться Опубликовано 22 Октября 2007 Снос аттачей это совсем не "в принципе работает" Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
l-k Опубликовано 22 Октября 2007 Автор Жалоба Поделиться Опубликовано 22 Октября 2007 WildCat, невоспроизводимый баг не поддается исправлению Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
WildCat Опубликовано 22 Октября 2007 Жалоба Поделиться Опубликовано 22 Октября 2007 2 человека уже сказали об этом баге, значит он существует Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
l-k Опубликовано 22 Октября 2007 Автор Жалоба Поделиться Опубликовано 22 Октября 2007 WildCat, так что с того сколько раз мои пользователи жаловались на несуществующие глюки... и потом отписывались в теме технической поддержки "ой, а теперь все работает". Если мне удастся этот глюк поймать, или если кто-то хотя бы мне его покажет - можно будет исправить. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
WildCat Опубликовано 22 Октября 2007 Жалоба Поделиться Опубликовано 22 Октября 2007 договорились! не сегодня завтра уберу вайсеровский мод и поставлю ваш Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
xRay Опубликовано 23 Октября 2007 Жалоба Поделиться Опубликовано 23 Октября 2007 WildCatУ меня стоит этот хак на форуме и все Ок. Как я понял ты ставил его на mjournal 2.1 public beta 1, а хак для mJournal 2.07. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.