Pipa
Техник
Старожил
Offline
Пол:
Сообщений: 13015
|
|
| |
« : 17 мая 2010, 03:19:22 » |
|
PS Я ставлю в "Быстрый ответ". Там у меня термины выделены жирным, некоторые жирным и курсивом. Надо будет посмотреть, как это делается, и расставить. Это, выходит, "голый" текст - без выделений и прочих красот Форма "Быстрый ответ" не предназначена для получения "красивостей", ее основное назначение - быть приемником цитат. Нужна она, прежде всего, потому, что сосуществует одновременно с текстом страницы. "Красивые" тексты пишутся в форме обычного "Ответа", а не быстрого. Там для этих целей предусмотрено множество инструментов, среди которых имеются и средства выделения "жирный" и "курсив". Тем не менее, можно "раскрасить" и текст, уже набранный в форме "Быстрый ответ". Для это есть два пути: 1) Нажать в форме "Быстрый ответ" на кнопку "Предварительный просмотр". Тогда откроется форма полного "Ответа", в которой сохранится набранный текст, а сверху будет показано, как он будет выглядеть в отправленном виде. И здесь его можно сколько угодно его раскрашивать, используя инструменты. 2) Самый простой способ (которым пользуясь я) - отправить некрасивый тест, а затем через функцию "Изменить", вызвать его на повторное редактирование. Там тоже будут все инструменты для раскрашивания. Жирный текст получается с помощью заключения слова/фразы в теги [ b ] (спереди) и [ /b ] (сзади), а курсив - в теги [ i ] (спереди) и [ /i ] (сзади). Пробелы в квадратных скобках не нужны, но я их поставила только затем, чтобы передать написание этих тегов, ибо при правильном их написании будут видны не они сами, а вызываемые ими действия. Форма с инструментами позволяет ставить эти теги очень быстро, не набирая их руками. Для этого слово/фразу выделяют курсором (режим select), а затем жмут на кнопку "B" (для жирного) или кнопку "I" (для курсива). После чего передний и задний теги проставятся автоматически. Однако это не мешает набирать теги вручную или редактировать ту вставку, которая получилась. Если нужен курсив и жирность одновременно, то слово/фразу сначала заключают в один из этих тегов, а потом все целиком (вместе с тегами!) заключают в другую пару тегов. Например так: [ b ][ i ]фраза[ /i ][ /b ]. Теговый способ вставки в текст управляющих сообщений - один из старых и почтенных способов записи текстов. Основан он на том, что некий, редко используемый в тестах символ или пара символов используется в качестве скобок, внутри которых помещаются управляющие инструкции. Сами эти скобки в распечатанном тесте не видны, равно как и их содержимое. Однако такого рода скрытые от читательского глаза редакторские значки позволяют произвольно управлять видом теста, задавая не только любые его характеристики, но и разного рода вспомогательные материалы - картинки, видео, звук и т.п. На форумах такого рода скобками служат квадратные скобки, в HTML-текстах - угловые скобки, текстах RTF-формата - обратная косая черта и т.д. Нельзя не помянуть о том, что автоматические редакторы типа MS Word'а испортили вкусы публики , скрывая от автора настоящий вид текста, который он пишет. Из-за этого сам автор видит текст в точности, как читатель, а служебные теги за него расставляет текстовый редактор. Не стану отрицать, что это достаточно удобно. Однако сопряжено с очень большой сложностью как самого редактора, так и внутренней структуры самого текста. Пока еще форумные скрипты не возволяют достичь такой высокой сложности обработки текстов, а потому приходится использовать старую-добрую теговую систему. Которая на самом деле гораздо гибче "текстового редактора для дураков" . |
|
|
Записан
|
|
|
|
Ксендзюк
Модератор своей темы
Пользователь
Offline
Пол:
Сообщений: 215
|
|
| |
« Ответ #1 : 19 мая 2010, 00:11:01 » |
|
Форма "Быстрый ответ" не предназначена для получения "красивостей", ее основное назначение - быть приемником цитат. Нужна она, прежде всего, потому, что сосуществует одновременно с текстом страницы. "Красивые" тексты пишутся в форме обычного "Ответа", а не быстрого. Там для этих целей предусмотрено множество инструментов, среди которых имеются и средства выделения "жирный" и "курсив". Спасибо, Pipa! Я буду осваивать. Ваши пояснения очень полезны - жаль, сегодня уже поздно что-то делать. Но завтра или в другой день, когда зайду, попробую испытать эти тэги. Может, заметку поправлю! |
|
|
Записан
|
|
|
|
одичалый
Пользователь
Offline
Сообщений: 366
|
|
| |
« Ответ #2 : 05 октября 2010, 23:12:58 » |
|
Как посмотреть все сообщения одной лентой начиная с заданного момента времени?Сейчас можно просмотреть только последние 100 сообщений. Этого не всегда хватает, т.к. с момента последнего просмотра уже написано больше чем 100 постов. Просматривать каждый раздел мучительно, даже в качестве неделания . |
|
|
Записан
|
|
|
|
`
|
|
| |
« Ответ #3 : 07 октября 2010, 14:45:50 » |
|
Кто-нибудь может сказать, почему "Поиск" закидывает на старый форум? То, что найдено по заданым в поиске словам лишь мелькает перед перенаправлением на старый форум. |
|
|
Записан
|
|
|
|
violet drum
|
|
| |
« Ответ #4 : 07 октября 2010, 15:18:37 » |
|
Кто-нибудь может сказать, почему "Поиск" закидывает на старый форум? То, что найдено по заданым в поиске словам лишь мелькает перед перенаправлением на старый форум. Цитата: кошачий адвокат от 27 Августа 2010, 18:14:14 А почему поиск на форуме такой убогий? Его почти нет или он не работает как положено работать приличному поиску. (Пипа): Будет такой, пока не переедем на ПМЖ на postnagualism.ru (там сейчас ведутся "строительные" работы). А тут я просто боюсь проводить полную индексацию базы, т.к. после этой процедуры ее размер увеличится на порядок, и с ней будет сложнее переезжать. |
|
|
Записан
|
Вам никогда не приходило в голову ... копьё?
|
|
|
Pipa
Техник
Старожил
Offline
Пол:
Сообщений: 13015
|
|
| |
« Ответ #5 : 07 октября 2010, 15:33:26 » |
|
Как посмотреть все сообщения одной лентой начиная с заданного момента времени?Сейчас можно просмотреть только последние 100 сообщений. Этого не всегда хватает, т.к. с момента последнего просмотра уже написано больше чем 100 постов. Просматривать каждый раздел мучительно, даже в качестве неделания . Браузеры обычно не держат такой длинный текст, да еще и насыщенный разнообразными вставками. Вообще-то, сам язык HTML изначально задумывался для отображения оформления экрана, а не для представления "бесконечных" текстов. Поэтому вы никогда не найдете в интернете книгу в формате HTML целым текстом, а лишь разбитую на страницы. А если захотите целым куском, то вам предложат эту книгу в одном из ТЕКСТОВЫХ форматов, типа *.txt, *.rtf, *.doc, *.fb2 и т.д. Т.е. это не проблема форума, а неразрешимые проблемы именно клиентских браузеров. Причем здесь даже не их вина, в самого формата HTML, который не позволяет показывать текст постранично. В то время как большинство электронных редакторов/просмотрщиков текстов имеют возможность отображать тексты в своих форматах постранично. Технически я могу снять ограничение на предельный лимит в 100 страниц, только тогда ротозеям, которые, не глядя на число страниц в теме, станут шмякать по кнопке "Все", придется, скорее всего, перезапускать свой компьютер кнопкой "ресет" . Поэтому здесь так и сделано, что когда число страниц в теме превышает 100, кнопка "Все" пропадает. Тем не менее, вы можете на свой страх и риск выйти за пределы этого ограничения, если вручную добавите к адресу темы окончание ";all". Например, адрес этой темы: http://forum.postnagualism.ru/index.php?board=6.0поэтому сборка всех ее страниц получится добавлением ";all" и будет выглядеть так: http://forum.postnagualism.ru/index.php?board=6.0;allP.S. Обращаю ваше внимание, что ограничитель установлен не на 100 сообщений, а на 100 страниц! А таких длинных тем у нас на форуме пока нет. P.P.S. Если же вы все-таки где-то обнаружили лимит на 100 сообщений - приведите ссылку. Жалоба должна быть конкретной, а не абстрактной. |
|
|
Записан
|
|
|
|
Pipa
Техник
Старожил
Offline
Пол:
Сообщений: 13015
|
|
| |
« Ответ #6 : 07 октября 2010, 15:52:37 » |
|
Кто-нибудь может сказать, почему "Поиск" закидывает на старый форум? То, что найдено по заданым в поиске словам лишь мелькает перед перенаправлением на старый форум. Это моя вина, не смогла в свое время решить эту проблему элегантно, оттого и такой результат. Проблема в том, что в скриптах форума нет такого места, которое бы отбражало тот или иной конкретный раздел, тему или страницу. Алгоритм написан в самом ОБЩЕМ ВИДЕ, когда в ОДНОМ общем цикле перебираются хранящиеся в базе данные, из которых на последнем обороте цикла заканчивается построение главной страницы форума. А нужно было сделать так, чтобы в отношении двух разделов форума - "Архив прошлого форума «Нагуализм»" и "Сайт «Нагуализм Нового Цикла»" было сделано исключение - отображались не темы этих разделов, а выполнялся переход на сторонние адреса в интернете. Найти место, где можно было бы встроиться в этот цикл мне тогда не удалось - уж очень муторный там код. А потому я тогда решила вопрос по-простецки - вставила в заголовок первых тем в этих двух разделах перенаправление на другое место (Javascript). Благодаря этому, как только в те разделы входили и смотрели на заголовок темы, то сразу же перенаправлялись либо в архив старого форума или на сайт Дайявана. Я была даже горда тем, что нашла такое изящное решение, пока ... не обнаружила, что оно мешает поиску. Дело это я не бросаю, а попробую другие варианты. Короче говоря, с поиском будем разбираться на новом месте. А сейчас там присоединяют дополнительный диск, т.к. выделенного нам места оказалось мало для переезда - после инталляции операционки и сервисов осталось свободных 150 Мегов. Куда тут переезжать, если места в притык? А на дополнительном диске, говорят, будет 15 Гигов, чего хватит за глаза на все. |
|
|
Записан
|
|
|
|
одичалый
Пользователь
Offline
Сообщений: 366
|
|
| |
« Ответ #7 : 07 октября 2010, 16:34:01 » |
|
Pipa, Я говорю не о кнопке Все на панельке навигации по страницам темы, а про вывод всех сообщений форума начиная с определённого момента времени (естественно, что не одной HTML страницей, а с некоторой навигацией как в темах) Вот лента последних сообщений форума http://forum.postnagualism.ru/index.php?action=recentК этой ленте можно добраться через Постнагуализм - Информационный центр, если тыкнуться на иконку слева от списка последних сообщений. Там 100 сообщений только отображаются. Очень хочется чтобы этой ленте можно было скормить параметр, который бы ей указывал начиная с какого момента времени показывать сообщения. |
|
|
Записан
|
|
|
|
Pipa
Техник
Старожил
Offline
Пол:
Сообщений: 13015
|
|
| |
« Ответ #8 : 07 октября 2010, 16:59:42 » |
|
Очень хочется чтобы этой ленте можно было скормить параметр, который бы ей указывал начиная с какого момента времени показывать сообщения. Вряд ли это возможно. Дело в том, что форум практически вообще не обращает внимания на времена сообщений, а работает с их списком по сквозному НОМЕРУ. А отображаемое в сообщении время сообщения есть не более чем визуальный компонент, типа аватара . Поэтому если поменять всем сообщениям времена их отправления, то на форуме ровном счетом ничего не изменится - т.е. на порядке сообщений это никак не скажется. Технически можно было бы поковырять функцию recent, которая генерирует ленту последних сообщений, чтобы она начинала не с номера последнего сообщения на форуме, а с какого-то иного. Но тогда номер такого сообщения все равно придется задавать в виде номера, а не даты. Конечно, если потрудиться, то можно исхитриться создать такой запрос к базе, чтобы найди первое сообщение с датой, равной или превышающей указанную, а потом подставлять этот номер в модифицированную функцию recent. Однако и этого будет недостаточно, т.к. придется еще изобретать дополнительные параметры, указывающие на дату, принимая во внимание то, что календарная дата может быть задана большим числов различных способов. Такой работой, возможно, и следовало заняться, если бы этим этим механизмом желали воспользоваться множество желающих, а не вы один. В то врямя как опыт показывает, что пользователи форума в своей массе никакими параметрами пользоваться не хотят, а могут только шмякать мышкой по кнопкам и ссылкам. |
|
|
Записан
|
|
|
|
одичалый
Пользователь
Offline
Сообщений: 366
|
|
| |
« Ответ #9 : 07 октября 2010, 18:07:36 » |
|
Понятно. Странно, что у такого навороченного форума,нет такой простейшей приблуды,как календарь (он даже в гостевых книгах бывает). Тыкаешься в дату и выводятся все сообщения за эту дату. Естественно, что время будет серверное, чтоб разброда и шатания в упорядочении сообщений не было, но это не большая беда, которая к тому же поправима, ведь время на машине пользователя доступно скриптам. |
|
« Последнее редактирование: 02 ноября 2010, 16:58:37 от Камень »
|
Записан
|
|
|
|
Pipa
Техник
Старожил
Offline
Пол:
Сообщений: 13015
|
|
| |
« Ответ #10 : 07 октября 2010, 18:43:20 » |
|
Странно, что у такого навороченного форума, нет такой простейшей приблуды, как календарь (он даже в гостевых книгах бывает). Календарь у этого типа форума есть (сейчас он выключен), но тот календарь показывает лишь праздники и памятные даты, которые туда введешь. Т.е. для данной цели он не пригоден. А форум этот отнюдь не навороченный, а как раз один среди бесплатных. У меня прежде был опыт эксплуатации платного форума vBulletin, этот форум мне даже понравился, хотя в нем тоже нужно исправлять массу недоделок и неудобств. Однако купленный форум сопровождается лицензией, согласно которой его скрипты нельзя модифицировать. Для частника такой запрет пофигу, а здесь никак нельзя подводить издательство "Постум". |
|
|
Записан
|
|
|
|
одичалый
Пользователь
Offline
Сообщений: 366
|
|
| |
« Ответ #11 : 07 октября 2010, 22:37:16 » |
|
Cамому интересно стало как модернизировать функцию recent. Тут можно выделить два этапа: 1. Научиться выводить не 100 сообщений как сейчас (10 сообщений на 10-ти страницах), а любое другое число. Короче, надо найти select примерно такого вида SELECT * FROM таблица_сообщений ORDER BY id_сообщения DESC LIMIT $start, $number_of_postsи посмотреть в каком виде LIMIT получает параметры. Первый параметр это сообщение начиная, с которого идёт выборка. Второй параметр количество элементов в выборке. Например, если я тыкаюсь на 10-ую страницу, то функции recent передаётся start=90 http://forum.postnagualism.ru/index.php?action=recent;start=90Дальше вариантов может быть два: 1.1 увеличить число ссылок на страницы на панели навигации (сейчас их 10) и передавать через них соответствующие параметры start=100, start=110 и т.д. Наверняка скрипт эти ссылки генерит в цикле а цикл ориентируется на переменную задающую число страниц (обозначим $number_of_pages). Меняем её и наступает щастье. Правда, надо будет подкорректировать проверку (сейчас скрипт при получении параметра 110 всё равно выводит сообщения начиная с 91-ого), хотя думаю, что эта проверка подкорректируется автоматически, т.к. завязана на переменную или константу $number_of_pages. 1.2 увеличить число сообщений на странице. Наверняка при генерации числа, которое передаётся через параметр start, участвует переменная задающая число постов на странице (обозначим $number_of_posts). Т.е. start=$number_of_posts*номер страницы-1. Найти эти две нехитрые переменные и поменять их, думаю, не очень сложно. 2. Теперь надо посчитать количество сообщений с заданной даты по текущее время. На каком этапе предлагать пользователю ввести дату это другой вопрос. Можно на странице, которую выводит функция recent поместить форму для ввода даты и времени. Получив дату: SELECT count(*) FROM таблица_сообщений WHERE Post_Time>=Input_Time Этот селект выполнять, когда получены параметры даты и времени. Тут будет некоторая морока, конечно, с приведением типов времени и учётом поясного времени. Дальше, имея количество сообщений, которые нужно вывести вычисляем значение переменной $number_of_pages (с этим даже третьеклассник справится, зная количество постов на странице $number_of_posts). Меняем переменную $number_of_pages. А дальше скрипт все сделает сам :-). Первый вариант (увеличение количества сообщений) не сложно реализуется, а над вторым подумать надо. Мне первого вполне хватит , если количество страниц увеличить с 10-ти, до 20-30. |
|
|
Записан
|
|
|
|
одичалый
Пользователь
Offline
Сообщений: 366
|
|
| |
« Ответ #12 : 07 октября 2010, 23:50:01 » |
|
Во втором случае можно ещё проще поступить. После того как получено число сообщений начиная с некоторого времени и до настоящего момента (допустим 87) переходить к этому 87-ому сообщению с помощью запроса http://forum.postnagualism.ru/index.php?action=recent;start=87Если нажать на эту ссылку, скрипт правильно всё обработает. Если увеличить $number_of_pages, то скрипт и большие числа нормально схавает. Например, 187. http://forum.postnagualism.ru/index.php?action=recent;start=187Если сейчас нажать на эту ссылку, то скрипт перекинет на страницу 9, т.е. на последнюю из доступных. Короче всё просто. |
|
|
Записан
|
|
|
|
Pipa
Техник
Старожил
Offline
Пол:
Сообщений: 13015
|
|
| |
« Ответ #13 : 08 октября 2010, 00:27:23 » |
|
Дальше вариантов может быть два: 1.1 увеличить число ссылок на страницы на панели навигации (сейчас их 10) и передавать через них соответствующие параметры start=100, start=110 и т.д. Наверняка скрипт эти ссылки генерит в цикле а цикл ориентируется на переменную задающую число страниц (обозначим $number_of_pages). Меняем её и наступает щастье. Правда, надо будет подкорректировать проверку (сейчас скрипт при получении параметра 110 всё равно выводит сообщения начиная с 91-ого), хотя думаю, что эта проверка подкорректируется автоматически, т.к. завязана на переменную или константу $number_of_pages. 1.2 увеличить число сообщений на странице. Наверняка при генерации числа, которое передаётся через параметр start, участвует переменная задающая число постов на странице (обозначим $number_of_posts). Т.е. start=$number_of_posts*номер страницы-1 Последние сообщения генерит функция RecentPosts(), которая вызывается напрямую и, видимо, единолично выполняет эту работу. Вот здесь: http://forum.postnagualism.ru/attachments/RecentPosts.txtя для вас ее вырезала. Любопытно, что задание start ограничено: if (isset($_REQUEST['start']) && $_REQUEST['start'] > 95) $_REQUEST['start'] = 95; т.е. последняя возможная страница - 10-я, т.к. ее start=90. Число сообщений на такой странице тоже фиксировано 10-ю, что следует из комментария к этой функции: // Find the ten most recent posts. Конечно, ограничение легко можно снять. Только start указывает на ТЕКУЩУЮ страницу, а отнюдь не на начало списка. Например, если у вас start=40, это это будет 5-я страница, но сам рядок от 1-й до 10 страницы останется как был. Сама функция весьма велика для ее осознания . Сейчас уже поздно, а завтра постараюсь в ней поразбираться. К чему и вас приглашаю. |
|
|
Записан
|
|
|
|
одичалый
Пользователь
Offline
Сообщений: 366
|
|
| |
« Ответ #14 : 08 октября 2010, 12:31:51 » |
|
сам рядок от 1-й до 10 страницы останется как был. Это нормально. Да, ну они наворотили. Даже простые параметры не обозначены как переменные, хоть и используются в нескольких местах кода. Такое ощущение, что специально следы запутывали . Можно, для начала по простому поступить. Поменять следующее. Допустим хотим, чтобы выводилось 200 постов if (isset($_REQUEST['start']) && $_REQUEST['start'] > 195) $_REQUEST['start'] = 195; $context['page_index'] = constructPageIndex($scripturl . '?action=recent;c=' . implode(',', $_REQUEST['c']), $_REQUEST['start'], min( 200, $total_cat_posts), 10, false); $context['page_index'] = constructPageIndex($scripturl . '?action=recent;boards=' . implode(',', $_REQUEST['boards']), $_REQUEST['start'], min( 200, $total_posts), 10, false); $context['page_index'] = constructPageIndex($scripturl . '?action=recent;board=' . $board . '.%d', $_REQUEST['start'], min( 200, $total_posts), 10, true); $context['page_index'] = constructPageIndex($scripturl . '?action=recent', $_REQUEST['start'], min( 200, $modSettings['totalMessages']), 10, false); И посмотреть будет ли это правильно работать . Если не будет, то откатить изменения. Там ещё куча мутных цифр указано 600, 500, 400 и т.д. Но, надеюсь, что они не связаны со start. |
|
|
Записан
|
|
|
|
|