PALADIN+ Опубликовано 16 Декабря 2007 Жалоба Поделиться Опубликовано 16 Декабря 2007 В Render Row include( "arc/".$arc_path.$arc_file ); $includer = @ob_get_contents(); $includerkey << А что это самое последнее?.. Стереть? Или неоконченная мысль =) Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
FatCat Опубликовано 16 Декабря 2007 Автор Жалоба Поделиться Опубликовано 16 Декабря 2007 В Render Row include( "arc/".$arc_path.$arc_file ); $includer = @ob_get_contents(); $includerkey << А что это самое последнее?.. Стереть? Или неоконченная мысль =)Мои извинения, должно быть $includerkey = "<span style='color:Gray;font-weight:bold'>[x]</span>";У архивированых сообщений модераторы видят рядом с чекбоксиком метку, что сообщение архивировано. Вместо серго крестика каждый может сделать свой значок. В архиве поправил. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
PALADIN+ Опубликовано 16 Декабря 2007 Жалоба Поделиться Опубликовано 16 Декабря 2007 Вот кстати я подумал. А сколько будет весить множество архив-файлов, учитывая что файл занимает место = размеру кластера в ОС? Допустим 10 000 постов-файлов. (В БД это примерно 10 метров.)Размер кластара 4-32 kB. Что будет равно на винте 40-320 мегабайт А я собираюсь сжать минимум 20 000 постов сейчас, и бог знает сколько потом.Ход мысли правильный? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
FatCat Опубликовано 16 Декабря 2007 Автор Жалоба Поделиться Опубликовано 16 Декабря 2007 Вот кстати я подумал. А сколько будет весить множество архив-файлов, учитывая что файл занимает место = размеру кластера в ОС? Допустим 10 000 постов-файлов. (В БД это примерно 10 метров.)Размер кластара 4-32 kB. Что будет равно на винте 40-320 мегабайтИдея архивации возникла не ради экономии места, а ради уменьшения нагрузки на MySQL Не буду лезть в теории, лучше поделюсь практическими результатами.Сначала я делал под денвером на локальной машине: сбрасывал в архивы до тех пор, пока ibf_posts не уменьшилась на 2 Мб; при этом индекс тоже уменьшился на 1,5 Мб, выигрыш составил 3,5 Мб. Вес директории arc у меня на FAT32 составил:Размер: 1,84 МБ (1 934 296 байт)На диске: 3,21 МБ (3 375 104 байт) Для эксперимента скопировал эту директорию на диск с NTFS:Размер: 1,84 МБ (1 934 296 байт)На диске: 2,39 МБ (2 514 944 байт) Вывод: место на диске существенно не меняется. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
PALADIN+ Опубликовано 16 Декабря 2007 Жалоба Поделиться Опубликовано 16 Декабря 2007 А можно архивировать сразу весь топик, не отмечая чекбоксы? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
FatCat Опубликовано 16 Декабря 2007 Автор Жалоба Поделиться Опубликовано 16 Декабря 2007 А можно архивировать сразу весь топик, не отмечая чекбоксы?Наверное можно сделать, но не вижу смысла. Архивировать лучше большие посты, не трогая мелких. Для того и big.php сделан - чтобы найти самые большие сообщения - для архивации. Кстати, еще один приятный результат архивации:На vesvalo.net сейчас сархивировано всего лишь 259 самых больших сообщений общим весом всего 1,84 МБ. Это всего лишь 2,5% от размера 40-меговой таблицы.Однако на локальной машине рестор сипекс-дампером стал занимать 7 минут супротив бывших 12-13. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
PALADIN+ Опубликовано 19 Декабря 2007 Жалоба Поделиться Опубликовано 19 Декабря 2007 А какая разница маленький пост или нет, если всё равно мы пытаемся прочитать файл, а в базе будет меньше?Только массовые расстрелы спасут страну! Какие права ставить на папку arc?Кто имеет право на архивацию и разархивацию, а так-же перемещение постов?) Можешь в big.php сделать кнопку "Искать следующие 10 больших файлов" %)(допустим я не всякий большой пост хочу сархивировать) И может быть лучше раскидывать посты по папкам, с структурой пути id форума/id топика/ пост id? В описании сказано:Ниже добавить: //+FatCat // $row['checkbox'] = $row['new_topic'] ? '' : $this->checkbox($row['pid']); $row['checkbox'] = $this->checkbox($row['pid']);Может ну её нафик, первую строчку, раз есть вторая)? PSМод у себя поставил на рабочий форум. Буду потихоньку юзать.Спасиб) Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
FatCat Опубликовано 19 Декабря 2007 Автор Жалоба Поделиться Опубликовано 19 Декабря 2007 Какие права ставить на папку arc?Я сделал 0766, хотя подозреваю, что можно и урезать малость. Кто имеет право на архивацию и разархивацию, а так-же перемещение постов?)На перемещение я оставил от theIggs: те же, кому разрешено резать/склеивать. Аналогично сделал и на всё остальное. Можешь в big.php сделать кнопку "Искать следующие 10 больших файлов" %)(допустим я не всякий большой пост хочу сархивировать)Для себя же файл. Если десятка самых крупных будет мне дорога как память базы, я подправлю запрос:$query_messa= "SELECT topic_id , pid , author_name , post FROM ibf_posts ORDER BY length( post ) DESC LIMIT 0 , 10";Сделаю на конце лимит 11, 20... И может быть лучше раскидывать посты по папкам, с структурой пути id форума/id топика/ пост id?Это утяжелит запрос к БД. И все равно не поможет ориентироваться в файлах. // $row['checkbox'] = $row['new_topic'] ? '' : $this->checkbox($row['pid']); $row['checkbox'] = $this->checkbox($row['pid']);[/code]Может ну её нафик, первую строчку, раз есть вторая)?Если уверен, что не захочешь откатить к состоянию, когда на первом сообщении топика нет чекбокса - тогда нафиг. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
PALADIN+ Опубликовано 20 Декабря 2007 Жалоба Поделиться Опубликовано 20 Декабря 2007 Так всё-таки насчёт массовых расстрелов. Это может иметь какие-либо негативные последствия)? //У меня теперь новая игра. Найти и убить большой пост. Не дать БД подрасти) Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
FatCat Опубликовано 20 Декабря 2007 Автор Жалоба Поделиться Опубликовано 20 Декабря 2007 Так всё-таки насчёт массовых расстрелов. Это может иметь какие-либо негативные последствия)?Кроме выпадения из поиска по форуму и прекращения отработки dohtml, других негативных последствий не заметил. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
PALADIN+ Опубликовано 21 Декабря 2007 Жалоба Поделиться Опубликовано 21 Декабря 2007 У меня вроде dohtml в старых постах остался работать. (сейчас он уже просто отключен)С мультиаттичами мод тоже работает. Кнопочку "отметить все чекбоксы на странице" в панельке модера можешь сделать?)И самое важное - при удалении поста, чтобы удалялся файлик архива.. И при массовом удалинии, и при удалении топика. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
FatCat Опубликовано 21 Декабря 2007 Автор Жалоба Поделиться Опубликовано 21 Декабря 2007 Кнопочку "отметить все чекбоксы на странице" в панельке модера можешь сделать?)И самое важное - при удалении поста, чтобы удалялся файлик архива.. И при массовом удалинии, и при удалении топика.С обоими вопросами засада. Буду думать. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
PALADIN+ Опубликовано 21 Декабря 2007 Жалоба Поделиться Опубликовано 21 Декабря 2007 Я у себя для начала вот так сделал.Просто убрал кнопочку редактировать и удалить.В Render Row после$includerkey = "<span style='color:Gray;font-weight:bold'>[x]</span>";Дописал$post['delete_button'] = ""; $post['edit_button']= ""; Но конечно было бы круче, чтоб delete работала! Подрубил БД уже на 4 метра. Радусь, что теперь можно сколько угодно текста пихать на форум) и жаба душить не будет. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
FatCat Опубликовано 21 Декабря 2007 Автор Жалоба Поделиться Опубликовано 21 Декабря 2007 (изменено) Радусь, что теперь можно сколько угодно текста пихать на форум) и жаба душить не будет.Ага.А еще можно сархивировать сообщение, а потом по ФТП в файл залить громадный текст или ХТМЛ. Иногда бывает нужно или таблиц напихать сложнючих, или просто огромную портянку в шапку топика засунуть. Доделал удаление архивов при удалении сообщений и топиков: уже работает и при удалении опциями модератора, и при удалении через панель модератора. Сейчас доделаю чекбоксик "выделить все сообщения страницы", и перезалью обновленное поисание. UPD:Перезалил.Чекбоксик "Выделить все сообщения страницы" пришлось сделать вверху, рядом с "Добавить новый опрос", чтобы избежать вложенных тегов <form>... Сильно изменились файлы Moderate.php и modfunctions.php. В скине сделал так, чтобы кнопки "редактировать" и "цитировать" не отображались в архивированных сообщениях. Изменено 21 Декабря 2007 пользователем FatCat Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
PALADIN+ Опубликовано 22 Декабря 2007 Жалоба Поделиться Опубликовано 22 Декабря 2007 айти: if ($post['attach_id'] != "") { if (is_file($this->upload_dir."/".$post['attach_id'])) { unlink ($this->upload_dir."/".$post['attach_id']); } } Ниже добавить: // +FatCat $arc_path = ($post['pid']-$post['pid']%1000)/1000; $arc_path = intval($arc_path)."/"; $arc_file = $post['pid']%1000; $arc_file = intval($arc_file).".arc"; if (is_file("arc/".$arc_path.$arc_file)) { unlink ("arc/".$arc_path.$arc_file); } // -FatCat Где это искать? В какой функции? У меня там мод мультиаттачей стоит, по другому немного всё.. Файлы удаляются при удалении топика, но остаются при удалении единичного поста. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
FatCat Опубликовано 22 Декабря 2007 Автор Жалоба Поделиться Опубликовано 22 Декабря 2007 Где это искать? В какой функции? У меня там мод мультиаттачей стоит, по другому немного всё..В файле Moderate.php в двух функциях есть удаление аттачей:function delete_post()function complete_deleting()Я не стал изобретать велосипед, и добавил удаление архивов там, где сделано удаление аттачей. Файлы удаляются при удалении топика, но остаются при удалении единичного поста.А корзина у тебя установлена?У меня за удаление поста из корзины отвечает function complete_deleting() Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
PALADIN+ Опубликовано 22 Декабря 2007 Жалоба Поделиться Опубликовано 22 Декабря 2007 Нашёл. Фенкс.Корзины нету. Теперь такой глюк - если тема закрыта, то пишет что чекбоксами мы ничего не выбрали. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
FatCat Опубликовано 22 Декабря 2007 Автор Жалоба Поделиться Опубликовано 22 Декабря 2007 (изменено) Теперь такой глюк - если тема закрыта, то пишет что чекбоксами мы ничего не выбрали.Спасибо! Буду смотреть, разбираться. UPD:Сделал, чтобы работало не только в закрытых темах, но и в топиках с опросами.Открывающий тег <form...> вместе с инпутом переехали из скина в Topic.php... Изменено 22 Декабря 2007 пользователем FatCat Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
PALADIN+ Опубликовано 22 Декабря 2007 Жалоба Поделиться Опубликовано 22 Декабря 2007 "Пометить все сообщения страницы" В закрытых топиках не работают тогда( Если в топике есть опрос - нет вобще чекбокса. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
FatCat Опубликовано 22 Декабря 2007 Автор Жалоба Поделиться Опубликовано 22 Декабря 2007 "Пометить все сообщения страницы" В закрытых топиках не работают тогда( Если в топике есть опрос - нет вобще чекбокса.Проверяй: 1.Кода<form method='POST' style='display:inline' name='collect' action='{$ibforums->base_url}'>вообще не должно быть в скиновом файле. 2. Кода{$ibforums->lang['select_all_checkbox']} <input name='allbox' type='checkbox' value='Check All' onclick='CheckAll();' />вообще не должно быть в скиновом файле. 3. Topic.phpВот функция с разметкой: if ($this->topic['poll_state']) { $this->output = str_replace( "<!--{IBF.POLL}-->", $this->parse_poll(), $this->output ); // Если есть опрос - добавляем форму и чекбокс: $this->output = str_replace( "<!--{IBF.START_NEW_POLL}-->", "<form method='POST' style='display:inline' name='collect' action='{$ibforums->base_url}'>{$ibforums->lang['select_all_checkbox']} <input name='allbox' type='checkbox' value='Check All' onclick='CheckAll();' /> | ", $this->output ); // Добавили } else { // Can we start a poll? Is this our topic and is it still open? if ( $this->topic['state'] != "closed" AND $ibforums->member['id'] AND $ibforums->member['g_post_polls'] AND $this->forum['allow_poll'] ) { if ( ( ($this->topic['starter_id'] == $ibforums->member['id']) AND ($ibforums->vars['startpoll_cutoff'] > 0) AND ( $this->topic['start_date'] + ($ibforums->vars['startpoll_cutoff'] * 3600) > time() ) ) OR ( $ibforums->member['g_is_supmod'] == 1 ) ) { // Добавляем в открытые топики без опросов $this->output = str_replace( "<!--{IBF.START_NEW_POLL}-->", "<form method='POST' style='display:inline' name='collect' action='{$ibforums->base_url}'>{$ibforums->lang['select_all_checkbox']} <input name='allbox' type='checkbox' value='Check All' onclick='CheckAll();' /> | ".$this->html->start_poll_link($this->forum['id'], $this->topic['tid']), $this->output ); } } else{ // Добавляем в закрытые топики $this->output = str_replace( "<!--{IBF.START_NEW_POLL}-->", "<form method='POST' style='display:inline' name='collect' action='{$ibforums->base_url}'>{$ibforums->lang['select_all_checkbox']} <input name='allbox' type='checkbox' value='Check All' onclick='CheckAll();' /> | ", $this->output ); } } Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
PALADIN+ Опубликовано 23 Декабря 2007 Жалоба Поделиться Опубликовано 23 Декабря 2007 Формы нормально выстроены. Только вот ява-скрипт отмечающий все чекбоксы находится в фун-ции start_poll_link, который выдаётся только в открытых топиках без опросов. Надо бы куда-нить перенести. Там кстати есть такая фича - отметка highlight'ом и дарклайтом. Можно отмечать не область где находятся чекбоксы а пространство где показано сообщение? Ещё--Пропущено ARC_POSTZ тутНайти: $actions = array( 'MOVE_TOPIC', 'CLOSE_TOPIC', 'OPEN_TOPIC', 'DELETE_TOPIC', 'EDIT_TOPIC', 'PIN_TOPIC', 'UNPIN_TOPIC', 'UNSUBBIT', 'MERGE_TOPIC', 'SPLIT_TOPIC' ); Заменить на: $actions = array( 'MOVE_TOPIC', 'CLOSE_TOPIC', 'OPEN_TOPIC', 'DELETE_TOPIC', 'EDIT_TOPIC', 'PIN_TOPIC', 'UNPIN_TOPIC', 'UNSUBBIT', 'MERGE_TOPIC', 'SPLIT_TOPIC', 'DELETE_POSTZ', 'MOVE_POSTZ', 'RECOMB_POSTZ', 'DEARC_POSTZ' ); ____Кнопка отметить все жжёт. Открываю все страницы топика, метра так на 2. Архивирую ]:-> Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
FatCat Опубликовано 23 Декабря 2007 Автор Жалоба Поделиться Опубликовано 23 Декабря 2007 Формы нормально выстроены. Только вот ява-скрипт отмечающий все чекбоксы находится в фун-ции start_poll_link, который выдаётся только в открытых топиках без опросов. Надо бы куда-нить перенести.У меня скрипт переехал в function PageTop($data) Там кстати есть такая фича - отметка highlight'ом и дарклайтом. Можно отмечать не область где находятся чекбоксы а пространство где показано сообщение?Не понял, о чем это... Ещё--Пропущено ARC_POSTZ тутАга. У меня стоит мод oska, поэтому та строка не используется, вот и пропустил. Еще раз подчистил инструкцию, спасибо за замечания! И еще была проблема: открывающий тег <form...> выводился всем, а закрывающий только модераторам, что не есть гуд.При выводе открывающего тега добавил ту же проверку на модератора, что и на закрывающий в модпанели. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
PALADIN+ Опубликовано 23 Декабря 2007 Жалоба Поделиться Опубликовано 23 Декабря 2007 Ну вроде как про это...cb.className = 'hlight';cb.className = 'dlight';Если отметить все чекбоксы - то вроде как подсветка появляется у них) У меня скрипт переехал в function PageTop($data)Проверку на супер-модератора надо. Чтоб у всех подряд лишнее не грузилось. +=======В скин-топик создаём новую функциюfunction JavaSupMod(){ return <<<EOF <script language='JavaScript' type="text/javascript"> <!-- ВЕСЬ наш жаба-скрипт //--> </script> EOF; } в Топикс.php Меняем if ($ibforums->member['g_is_supmod'] == 1) { $skcusgej = 1; на if ($ibforums->member['g_is_supmod'] == 1) { $mod_links .= $this->html->JavaSupMod(); $skcusgej = 1; Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
FatCat Опубликовано 23 Декабря 2007 Автор Жалоба Поделиться Опубликовано 23 Декабря 2007 Если отметить все чекбоксы - то вроде как подсветка появляется у них)Может быть у меня в Опере это не поддерживается...Лень лазить в тормознутого и-эксплорера. У меня архивация разрешена и обычным модерам.Если не нужно грузить скрипт обычным мемберам, нет смысла создавать новую функцию в скине, можно вставить скрипт в function Mod_Panel - она открывается только модерам. Таки и да, таки и верно будет. Сейчас поправлю у себя, чтобы народу напрасный трафик не гнать. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
PALADIN+ Опубликовано 23 Декабря 2007 Жалоба Поделиться Опубликовано 23 Декабря 2007 У меня Опера)Вот некоторая статистика использования мода. Сколько сообщений сархивировал точно не скажу, но главное эффект есть.(Взвешивал после Оптимизации майАдмином) постов Вес Дата 95,567 83.2 МБ 19.12.2007 95,692 81.5 МБ 20.12.2007 95,697 81.0 МБ 20.12.2007 95,947 80.7 МБ 21.12.2007 95,965 79.4 МБ 21.12.2007 96,396 68.6 МБ 23.12.2007 Мне теперь интресно - как архивировать темы, которые не открываются целиком, а виснут.Примерно > 500 постов. Постранично долго.Хочу скрипт постепенно идущий по всей таблице постов, и отправляющий всё в архив.Скажем всё что старее одного года. И ещё. Мы можем так сделать, чтобы не было обращения к ibf_post если файл сообщения имеется? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.