Перейти к контенту

Журнал - Дневник


Рекомендуемые сообщения

Буду делать версию под 2.2, чтобы никому переделывать не пришлось.

:D А кто-то и не собирается на 2.2, но это уже частный случай. Ну да ладно, теперь о деле.

Защитный код для отправки комментариев гостями:

--------------------------

Файл comment_new.php

 

После:

 

<?php
/*
Назначение: Генерация изображения со случайным кодом
*/

class genrandomimage
{
 var $lenght = 6; // Длина строки
 var $string = ''; // Результирующая строка

 # Генерация строки
 function genstring()
   {
     $chars = array ('1', '2', '3', '4', '5', '6', '7', '8', '9', '0');
     $result_string = '';

     for($i = 0; $i < $this -> lenght; $i++)
       {
         $random_char = mt_rand( 0, ( count ( $chars ) - 1 ) );
         $result_string .= $chars[$random_char];
       }
     $this -> string = $result_string;
   }

 # Генерация изображения
 function genimage()
   {
     $im = imagecreate( 10 * $this -> lenght + 5, 20 );

     $gray = imagecolorallocate( $im, 228, 228, 228 );
     $black_1 = imagecolorallocate( $im, 150, 150, 150 );
     $black = imagecolorallocate( $im, 0, 0, 0 );
     $white = imagecolorallocate( $im , 255, 255, 255 );
     $string = imagecolorallocate( $im, 90, 90, 90 );

     /* Генерация шума */
     for($i = -2; $i < ceil ( ( 10 * $this -> lenght ) / 5 ); $i++)
       {
         imageline( $im, $i * 5, 20, $i * 5 + 20, 0, $black_1 );
       }
     for($i = -2; $i < ceil ( (10 * $this -> lenght) / 5 ); $i++)
       {
         imageline( $im, $i * 5+20, 20, $i * 5 , 0, $white );
       }
     /* Конец генерации шума */

     # Рисуем строку на картинке
     imagestring( $im, 5, 6, 2, $this -> string, $string );

     # Рамка
     imageline( $im, 0, 0,  10*$this -> lenght + 5, 0, $black );
     imageline( $im, 0, 19,  10*$this -> lenght + 5, 19, $black );
     imageline( $im, 0, 0,  0, 20, $black );
     imageline( $im, 10*$this -> lenght + 4, 0,  10*$this -> lenght + 4, 20, $black );

     header('Content-type: image/png');
     imagepng($im);
   }

}


session_start();
session_name('sec_code');

$im = new genrandomimage ();
$im->genstring();

$_SESSION['sec_code_session'] = $im->string;

$im->genimage();

?>

 

Данная модификация предлагается "как есть". Советы по доработке будем рады выслушать.

 

Доработки function ValidateForm() и onsubmit='return ValidateForm() в skin_q_reply.php до сих пор требуются.

Ссылка на комментарий
Поделиться на других сайтах

  • Ответы 1k
  • Создана
  • Последний ответ

Лучшие авторы в этой теме

Лучшие авторы в этой теме

Master, а можно все же для 2.1 доделать? Много фич не хватает.. а народ на 2.2 еще не особо переходит, процентов 95% в ближайшее время и не собираются)
Ссылка на комментарий
Поделиться на других сайтах

Поставил себе на локалхост, установил, с 2.2 работает.

Только вот установку стилей пришлось вручную делать, запросами..

Написал установку мода через Universal mod installer (Универсальный установщик модов), кроме этих стилей.

 

Все хорошо, но здесь дневники не как компонент, а как что-то отдельное. Даже стили реализованы по своему, в отдельной таблице.

 

Думаю как реализовать нормальную установку для 2.2.

Изменено пользователем Master
Ссылка на комментарий
Поделиться на других сайтах

Люди,что делать,подскажите!

У меня форум Русская версия Invision Power Board v2.1.7 © 2007 IPS, Inc.

журналы mJournal_2.0pb7

устанавливается журнал, но все время возникают какие-то ошибки,то смайлов вообще нету и даже не пахнет ими, то еще что. Может кто-нибудь подсказать в чем проблема установки?

Ссылка на комментарий
Поделиться на других сайтах

rfgbnjirf, проблемы только в твоих кривых руках ибо в 2.1.7 всё распрекрасно работает.

Это точно. Ошибок может быть 1000 и 1, поэтому и ответ дать невозможно, а про смайлы писали выше уже многократно.

 

Может вернемся к коду безопасности для постинга гостями? Есть у кого-нибудь идеи по // session fix или проверке бот / не бот?

Ссылка на комментарий
Поделиться на других сайтах

Вполне может быть проблемка с кукисами на конкретной машинке. Если сайт публичный, то приведи URL, зайду, посмотрю, вдруг чего-нибудь посоветую.

вот у меня проблема с куками, я поняла это. Потому что в IE дневники работают и отлично все, никаких сбоев...а вот в ФФ сбрасывается и все тут

Ссылка на комментарий
Поделиться на других сайтах

вот у меня проблема с куками, я поняла это. Потому что в IE дневники работают и отлично все, никаких сбоев...а вот в ФФ сбрасывается и все тут

Переустанови браузер, а вообще я не понимаю зачем писать в теме про дневники, если у вас проблема с браузером? :D

 

Новый FIX для дневников версии 2.0pb7!

 

Описание и принцип действия описан здесь! Теребить в ЛС, чуть позже опубликуем для всех.

Ссылка на комментарий
Поделиться на других сайтах

Новый FIX для дневников версии 2.0pb7!

 

После выкладки фикса replicant'ом, будем рады выслушать отзывы и пожелания по добавлению еще определенных функций. Технические вопросы можно задавать мне прямо тут или в ЛС.

Изменено пользователем SfinkS
Ссылка на комментарий
Поделиться на других сайтах

Сделал у себя фикс, позволяющий использовать в записях дневника "линию разрыва", то есть аналог надписи "Читать полностью".

 

Нужен кому?

Ссылка на комментарий
Поделиться на других сайтах

Сделал у себя фикс, позволяющий использовать в записях дневника "линию разрыва", то есть аналог надписи "Читать полностью".

 

Нужен кому?

 

У наших пользователей были подобные просьбы, было бы здорово заценить такой фикс, если он для версии 2.0pb7. Выложишь тут или обратиться в ЛС?

 

Завтра выложу запрет постинга для гостей и если получится наше решение для function ValidationForm() по проверке бот / не бот, а также мысли о том как это работает и как ведут себя браузеры при выключенной поддержке java script.

Ссылка на комментарий
Поделиться на других сайтах

да, у меня 2.0pb7, соответственно на ней и делал - там делов на 5 мин, правда править нужно в 5 или 6 файлах (интересно, почему urisoft не вынес однотипные опирации в один клас...)

 

выложу тут...

 

зы replicant, у тебя случайно журнал не видоизменен на кастомную настройку шапки юзерами? просто времени пока нет ковыряться самому...

Ссылка на комментарий
Поделиться на других сайтах

replicant

Слушай, я тут вспомнил, что было время когда ты не мог поставить себе pb6 и pb7 в связи с высокой нагрузкой на сервак (мускул) в этих версиях. Подтверждения о высокой нагрузке от других пользователей мода тогда получено не было... Так как ты установил дневники pb7 ? Правил код дневников или обновлял ПО на серваке ? Интересно в чем проблема была.

 

Vic'er

интересно, почему urisoft не вынес однотипные опирации в один клас...

Ну вообще-то старался выносить все в journal.php, но естественно 2-4 строчки кода я в отдельные функции не запихивал... Более грамотная разбивка кода только планировалась и не состоялась в результате ;) Писал так как мне было удобно, уж извенЯйте... Так вышло :D

Ссылка на комментарий
Поделиться на других сайтах

urisoft, разве я претензии предьявляю?

 

за такой скрипт только можна благодарить и благодарить от всей души!!!

 

Жаль что ты забросил его разработку...

Ссылка на комментарий
Поделиться на других сайтах

зы replicant, у тебя случайно журнал не видоизменен на кастомную настройку шапки юзерами? просто времени пока нет ковыряться самому...

 

Пример внесения произвольного стиля в шаблон для редизайна.

 

Берем css_lib.php и добавляем стиль .logobg (фон логотипа и параметры его границ) (За кодировку извиняюсь, т.к. копировал прямо с консоли сервера, ну там по-русски задаешь то, что хочешь видеть в описании стиля). Группы настроек, а их четыре, отвечают за шрифты, границы, цвет и начертание границ. Я выставил их так 0, 1, 1, 1

 

function css_lib()

{

$this->styles = array(

'--header1--' => array('нАЫХЕ ЯРХКХ'),

'.logobg' => array('тНМ КНЦНРХОЮ', 'тНМ КНЦНРХОЮ ДМЕБМХЙЮ', 0, 1, 1, 1 ),

 

 

Теперь берем файл скина skin_preview.php и вводим там такую строку или, если она есть, то уделяем внимание наличию id=logobg

 

<!-- start_main_header -->

<div class='tableborder' name='tableborder' id='tableborder'>

<div class='logobg' name='logobg' id='logobg'><{J_LOGO}></div>

</div>

<!-- end_main_header -->

 

И после перезагрузки шаблонов из файлов в настройках изменения дизайна будет доступно изменение фона и границ логотипа.

 

Теоретически я туда собираюсь вынести какую-нибудь надпись вида "Журнал UserName" и добавить настройку изменения шрифта т.е. в css_lib.php указазать 1,1,1,1

 

Сейчас работаю над тем, чтобы разделить несколько часто-используемых стилей на более мелкие, чтобы изменять большее число элементов внешнего вида журналов.

 

Кстати полезное дополнение / изменение, которое кому-то может пригодится.

 

В связи с тем, что у меня были некоторые проблемы с margin: 1px и некоторыми бордюрами в дневниках для случая, когда фон дневника совпадает с цветом границ в стиле tableborder, то я сделал в некоторых местах шаблонов так:

 

<!-- <table class='tableborder' cellpadding='0' cellspacing='0' width='100%'><tr><td class='postdate'>  {$data['title']}</td></tr><tr> <td> -->
<div class='tableborder'><div class='postdate'>  {$data['title']}</div>

 

Ну и соответственно окончание таблицы тоже убрано и выглядит как просто закрытие <div>.

 

Если обратить внимание на некоторые элементы оформления то мы увидим, что где-то в стиле проскочил неучтенный margin 1px, а при использовании таблиц управлять им не представляется возможным, поэтому я заменяю таблицы на div и обхожу эту проблему вводя прямо в шаблон style='margin-left:1px; margin-right:1px;', т.к. другим способом повлиять на этот параметр пока невозможно.

Но это мелочи, которые могут заинтересовать кого-то лишь в очень редких случаях для достижения визуальной стройности стиля.

 

В данный момент меня очень волнует возможность управления выравниванием текста внутри некоторых элементов шаблона right - center - left, например, выравнивание даты поста, управление padding-margin в некоторых стилях шаблона и управление цветами и начертанием гиперссылок в различных блоках панели пользователя.

 

replicant

Слушай, я тут вспомнил, что было время когда ты не мог поставить себе pb6 и pb7 в связи с высокой нагрузкой на сервак (мускул) в этих версиях. Подтверждения о высокой нагрузке от других пользователей мода тогда получено не было... Так как ты установил дневники pb7 ? Правил код дневников или обновлял ПО на серваке ? Интересно в чем проблема была.

 

Если ты помнишь, то у меня MySQL сервер не был выделенным в отдельный, как сейчас, а также была зафиксирована высокая нагрузка при использовании версии pb6. Я валю основные подозрения на zend, который сейчас у меня выключен в связи с использованием другой версии php и на возможный тюнинг apache, который я провел с того момента. В самом коде mJournal кроме маленьких доработок глобальных изменений не проводилось. Могу сказать только то, что с pb7 я уже не фиксировал таких растущих нагрузок как в случае с pb6.

 

У меня был рекорд посещений совсем недавно чуть более 2400 онлайн за 15 минут, а среднее суточное посещение около 600 постоянно онлайн в дневниках, в связи с флешмоб акцией одного нашего участника. Нагрузку мы выдержали без особых затруднений, MySQL сервер в это момент практически отдыхал. Таким образом код самого mJournal чист от подозрений, но выяснились некоторые моменты, поэтому борьба с гостями и их комментариями приобрела очень актуальный характер.

Единственное от чего пришлось отказаться также недавно - это поиск по комментариям и записям по всем дневникам с главной страницы, т.к. число комментариев растет, а поиск по ним становится все более ресурсоемкой задачей. При анализе по логам медленных запросов сервера БД эти запросы были признаны самыми тяжелыми и поиск был выключен. SELECT LIKE %текст% по почти миллиону комментариев - это сложно, к тому же там стоит LIMIT 1000, поэтому на запросы вида %работа% или %тебе% все равно все результаты выданы не будут. По идее надо разбирать записи и выводить начиная с самого нового вхождения по дате, но для меня проще было отключить поиск с главной страницы.

Ссылка на комментарий
Поделиться на других сайтах

вот у меня проблема с куками, я поняла это. Потому что в IE дневники работают и отлично все, никаких сбоев...а вот в ФФ сбрасывается и все тут

Переустанови браузер, а вообще я не понимаю зачем писать в теме про дневники, если у вас проблема с браузером? :D

 

 

 

потому что так не должно быть. Проблем с браузером нет. Везде на остальных сайтах дневники работают.

Ссылка на комментарий
Поделиться на других сайтах

replicant, спасибо за апдейт с кастомизацией шапки.

 

кстати, раз уж на то пошло, то:

 

при оформлении страницы, если ей выставить черный фон, то переход по страницам и надпись "Добавить запись" сливаются.

 

я сделал так:

 

в css_lib.php находим

'.navigation'   => array('Навигация', 'В панели навигации отображается путь до текущей страницы', 1, 0, 0, 0 ),

ниже добавляем

'.pagelink'	 => array('Навигация страниц', 'Переключатель страниц записей', 1, 0, 0, 0 ),

 

в skin_preview.php находим

<!-- start_page_links -->
		<div class='pagelink'>
			<p class='right'> <{ADD_POST}></p>
			<p> </p>
		</div>
<!-- end_page_links -->

 

заменяем на

<!-- start_page_links -->
		<div class='pagelink' name='pagelink' id='pagelink'>
			<p class='right'> <{ADD_POST}></p>
			<p> <u>Страницы</u> (2) [1] <u>2</u></p>
		</div>
<!-- end_page_links -->

Ссылка на комментарий
Поделиться на других сайтах

Vic'er, там намного больше таких мелочей по шаблонам

 

смотри например мой код одной из функций в skin_block.php (некрасиво конечно, но работает офигенно)

 

у меня разделены по смыслу Заголовок и Текст заголовка (mainhead mainheadtext)

и Подзаголовок и Текст подзаголовка (subhead и subheadtext)

 

у нас есть такая замечательная штука как user_panel справа или слева от основных записей, она состоит из Заголовков, Позаголовков и Содержимого (row), но при изменении этих стилей часть элементов панели остается неизменной ... в частности я ниже приведу пример как я справился со Счетчиком - Просмотры / Хосты и теперь он имеет полностью идентичное оформление. Можете сравнить с оригиналом.

Я прошелся по всем BLOCK's этой панели и часть гиперссылок, используемых в Заголовках нашел даже в misc/user_block.php добавил им там class='mainheadtext'

 

по сути по скинам у меня более сотни мелких правок, но это все я делаю прямо на консоли, поэтому не помню где и что врезано в плане стилей т.к. это мелочи

 

//=====================================
// block_counter_text
//=======================================
function block_counter_text($user="") {
global $ibforums, $journal;
$IPBHTML = "";
//--starthtml--//


$IPBHTML .= <<<EOF
<div class='mainhead'><nobr><p class='mainheadtext'><a class='mainheadtext' href="#">Просмотры / Хосты</a></p></nobr></div>
<table cellpadding='0' cellspacing='1'>
<tr>
	<td class='subhead'><span class='subheadtext'><font style='float:left;'>{$ibforums->lang['j_stat_hits']}</font></span></td>
</tr>
<tr>
	<td class='row'><span class='row'>
			<font style='float:right;'>{$user['t_hits']}</font>
			<font style='float:left;'>{$ibforums->lang['j_stat_today']}</font><br />
			<font style='float:right'>{$user['hits']}</font>
			<font style='float:left'>{$ibforums->lang['j_stat_total']}</font><br /></span>
	</td>
</tr>
<tr>
	<td class='subhead'><span class='subheadtext'><font style='float:left;'>{$ibforums->lang['j_stat_hosts']}</font></span></td>
</tr>
<tr>
	<td class='row'><span class='row'>
			<font style='float:right'>{$user['t_hosts']}</font>
			<font style='float:left'>{$ibforums->lang['j_stat_today']}</font><br />
			<font style='float:right'>{$user['hosts']}</font>
			<font style='float:left'>{$ibforums->lang['j_stat_total']}</font><br /></span>
	</td>
</tr>
</table>
EOF;

//--endhtml--//
return $IPBHTML;
}

 

Также я добавил class copyright для правки в шаблон, но для этого пришлось изменять всю геометрию копирайта, который как известно составляется из двух переменных в journal.php и одной переменной из файла lang_journal.php чтобы уложить его в один DIV, а не в несколько как было раньше.

Ссылка на комментарий
Поделиться на других сайтах

replicant, такой вариант смотрится покомпактнее, не теряя при этом информативность :D

 

//=====================================
// block_counter_text
//=======================================
function block_counter_text($user="") {
global $ibforums, $journal;
$IPBHTML = "";
//--starthtml--//


$IPBHTML .= <<<EOF
<div class='mainhead'><nobr><p class='mainheadtext'>{$ibforums->lang['j_stat_counter']}</p></nobr></div>
<table cellpadding='0' cellspacing='1'>
<tr>
	<td class='subhead'><span class='subheadtext'><center>{$ibforums->lang['j_stat_hits']} / {$ibforums->lang['j_stat_hosts']}</center></span></td>
</tr>
<tr>
	<td class='row'><span class='row'>
			<font style='float:right;'>{$user['t_hits']} / {$user['t_hosts']}</font>
			<font style='float:left;'>{$ibforums->lang['j_stat_today']}</font><br />
			<font style='float:right;'>{$user['hits']} / {$user['hosts']}</font>
			<font style='float:left;'>{$ibforums->lang['j_stat_total']}</font><br /></span>
	</td>
</tr>
</table>
EOF;

//--endhtml--//
return $IPBHTML;
}

 

 

=====добавлено=======

 

модификация Тег "Разрыв" или "Читать все"

 

Данная модификация добавляет новый тег [CUT] (+ соответствующую кнопку в форму)

Все что после этого тега будет отображаться только на странице полного сообщения, во всех остальных случаях (список постов, поиски, календарь и тд) в этом месте будет находиться надпись "...[Читать всю запись]" со ссылкой соответственно.

 

Учитываются также приатаченные файлы и картинки.

cut.txt

Ссылка на комментарий
Поделиться на других сайтах

Итак предлагается следующий фикс выполняющий две задачи сразу:

 

1. Запрет постинга комментариев гостям по отдельной записи

2. Отключение добавления новых комментариев к записи без сокрытия уже существующих

 

//Делаем запрос в таблицу ibf_jposts:

ALTER TABLE `ibf_jposts` ADD `no_comment_g` TINYINT( 1 ) NOT NULL ;

 

Открываем файл comments.php

 

В функции show_comments() находим:

// Process comments

 

и все, что идет после этой строки до // render page

 

меняем на:

//Fix show comments when blocking for ghosts
if (($post['no_comment'] == 1)||(($post['no_comment_g'] == 1)&&(!$ibforums->member['id'])))
                       {
                       $output['COMMENTS'] = $journal->skin->html['global']->info($ibforums->lang['j_inf_nocomment']);
                       $DB->query("SELECT c.*, m.id, m.mgroup,
                                                               me.photo_type, me.photo_location, me.photo_dimensions, m.j_photo_dim, m.j_photo_type, m.j_photo, me.avatar_location, me.avatar_size, me.avatar_type
                                                               FROM ibf_jcomments c
                                                               LEFT JOIN ibf_jmembers m ON (m.id=c.author_id)
                                                               LEFT JOIN ibf_member_extra me ON (me.id=c.author_id)
                                                               WHERE c.post_id='".$post['pid']."'
                                                               ORDER BY c.post_date ASC LIMIT ".$ibforums->input['st'].", ".$journal->users['j_comment_page']);

                                       if ($DB->get_num_rows())
                                       {
                                               $output['COMMENTS'] .= $journal->skin->html['posts']->comment_top($ibforums->lang['j_comments']);
                                               while ($row = $DB->fetch_row())
                                               {
                                                       list($row['date'],$row['time']) = explode("|",$journal->get_date($row['post_date'],"d F Y|H:i"));

                                                       if ($row['attach_key'] != '')
                                                       {
                                                               $attach_pids[] = $row['cid'];
                                                       }

                                                       $row = $this->post_render->process_comment($row);

                                                       $output['COMMENTS'] .= $journal->skin->html['posts']->comment_row($row);
                                               }

                                               $output['COMMENTS'] .= $journal->skin->html['posts']->comment_bottom();
                                       }
                                       else
                                       {
                                               $output['COMMENTS'] = $journal->skin->html['global']->info($ibforums->lang['j_err_no_comments']);
                                       }
                               $output['COMMENTS'] .= $journal->skin->html['global']->info($ibforums->lang['j_inf_nocomment']);
                       }
                       else
                       {
                               if ($post['comments'] > 0)
                               {
                                       // Output comments for this post

                   $DB->query("SELECT c.*, m.id, m.mgroup,
                                                               me.photo_type, me.photo_location, me.photo_dimensions, m.j_photo_dim, m.j_photo_type, m.j_photo, me.avatar_location, me.avatar_size, me.avatar_type
                                                               FROM ibf_jcomments c
                                                               LEFT JOIN ibf_jmembers m ON (m.id=c.author_id)
                                                               LEFT JOIN ibf_member_extra me ON (me.id=c.author_id)
                                                               WHERE c.post_id='".$post['pid']."'
                                                               ORDER BY c.post_date ASC LIMIT ".$ibforums->input['st'].", ".$journal->users['j_comment_page']);

                                       if ($DB->get_num_rows())
                                       {
                                               $output['COMMENTS'] = $journal->skin->html['posts']->comment_top($ibforums->lang['j_comments']);
                                               while ($row = $DB->fetch_row())
                                               {
                                                       list($row['date'],$row['time']) = explode("|",$journal->get_date($row['post_date'],"d F Y|H:i"));

                                                       if ($row['attach_key'] != '')
                                                       {
                                                               $attach_pids[] = $row['cid'];
                                                       }

                                                       $row = $this->post_render->process_comment($row);

                                                       $output['COMMENTS'] .= $journal->skin->html['posts']->comment_row($row);
                                               }

                                               $output['COMMENTS'] .= $journal->skin->html['posts']->comment_bottom();
                                       }
                                       else
                                       {
                                               $output['COMMENTS'] = $journal->skin->html['global']->info($ibforums->lang['j_err_no_comments']);
                                       }
                               }
                               else
                               {
                                       $output['COMMENTS'] = $journal->skin->html['global']->info($ibforums->lang['j_err_no_comments']);
                               }

                               // Add reply form

                               if ($this->post_func->allow_comments())
                               {
                                       $ibforums->input['pid'] = $ibforums->input['comm'];

                                       $output['REPLY_FORM'] = $this->post_func->reply_form(array(
                                                                                               'title' => $ibforums->lang['j_add_comment'],
                                                                                               'code' => 'new',
                                                                                               'mode' => 'comm',
                                                                                               'id' => $ibforums->input['comm'],
                                                                                               'key' => $this->md5_check));
                               }
                       }
               }

--------------------------------------------------------------------------------

Открываем \lang\{DIR}\lang_journal.php

 

Находим в нем:

'j_nocomment_post' => "<strong>Запретить</strong> комментарии",

 

после добавляем:

 

'j_nocomment_post_ghost' => "<strong>Запретить</strong> комментарии гостям",

--------------------------------------------------------------------------------

Открываем skin_q_reply

 

Находим функцию:

//=========================================
// get_box_nocomment
//=========================================
function get_box_nocomment($checked="") {
global $ibforums, $journal;
...............
}

После добавляем еще одну:

//=====================================================
// get_box_nocomment_g
//=====================================================
function get_box_nocomment_g($checked="") {
global $ibforums, $journal;
$IPBHTML = "";
//--starthtml--//


$IPBHTML .= <<<EOF
<br /><input class='checkbox' type='checkbox' name='no_comment_g' value='yes' $checked /> {$ibforums->lang['j_nocomment_post_ghost']}
EOF;

//--endhtml--//
return $IPBHTML;
}

Ниже в файле ищем:

 

{$data['_NO_COMMENT_CHECK']}

 

После добавляем:

 

{$data['_NO_COMMENT_G_CHECK']}

 

ЗАГРУЖАЕМ ШАБЛОНЫ В АДМИНКЕ

--------------------------------------------------------------------------------

 

Открываем post_functions.php

 

Находим:

if (isset($data['BOX_NOCOMMENT']))
					{
							$data['_NO_COMMENT_CHECK'] = $journal->skin->html['q_reply']->get_box_nocomment($data['BOX_NOCOMMENT'] ? 'checked="checked"' : '');
					}

Добавляем после еще один IF:

if (isset($data['BOX_NOCOMMENT_G']))
					{
							$data['_NO_COMMENT_G_CHECK'] = $journal->skin->html['q_reply']->get_box_nocomment_g($data['BOX_NOCOMMENT_G'] ? 'checked="checked"' : '');
					}

 

Ниже находим:

'no_comment' => $ibforums->input['no_comment'] == 'yes' ? 1 : 0,

 

После добавляем:

'no_comment_g' => $ibforums->input['no_comment_g'] == 'yes' ? 1 : 0,

 

--------------------------------------------------------------------------------

 

Открываем post_edit.php

 

Находим:

'BOX_NOCOMMENT' => $row['no_comment'],

 

После добавляем:

'BOX_NOCOMMENT_G' => $row['no_comment_g'],

 

Еще ниже находим:

'BOX_NOCOMMENT' => $_POST['no_comment'] == 'yes' ? 1 : 0,

 

Добавляем:

'BOX_NOCOMMENT_G' => $_POST['no_comment_g'] == 'yes' ? 1 : 0,

 

--------------------------------------------------------------------------------

 

Вроде все!

Ссылка на комментарий
Поделиться на других сайтах

модификация Тег "Разрыв" или "Читать все"

 

Данная модификация добавляет новый тег [CUT] (+ соответствующую кнопку в форму)

Все что после этого тега будет отображаться только на странице полного сообщения, во всех остальных случаях (список постов, поиски, календарь и тд) в этом месте будет находиться надпись "...[Читать всю запись]" со ссылкой соответственно.

 

Учитываются также приатаченные файлы и картинки.

 

Сделал под[cut]. Только у меня в файле posts.php оказалось два вхождения // render post, делать надо перед вторым вхождением, если вдруг у кого-то окажется так же как у меня.

 

И будьте готовы к тому, что во всех постах, где картинки были просто приаттачены, но не вставлены тегом [attachid=id] в текст, пропадут и станут доступны только при просмотре записи с комментариями.

 

Все работает отлично.

Для тех, кто не сможет сходу разобраться:

- тег CUT не требует закрытия

- тег CUT нельзя использовать два раза

- тег CUT действует только в записях, но не действует в комментариях

Ссылка на комментарий
Поделиться на других сайтах

Поставил дневник ради интереса на локалхост 21 и впал в ступор

Это круто.

Это очень круто!

 

Я вот смотрю добавлялись разные моды, типа тега кат, может собрать их всех в одном сообщении, или открыть доп тему, моды для Журнала

А там ссылки на их инсталлы

 

Супер в общем

Заинтересовался офигенно

Ссылка на комментарий
Поделиться на других сайтах

replicant, ну это была так сказать первая версия модификации))) писал я ее по бустрому ночью, и некоторые моменты опустил...

 

то, что просто приаттаченые картинки в списке не доступны - я вчера уже заметил, знаю как исправить... чуть попозже переделаю интсрукцию...

 

а вообще есть предложение собрать все эти фиксы и апдейты и выложить новую версию...

Ссылка на комментарий
Поделиться на других сайтах

Кто-нибудь готов присоединиться к разработке? Поднимите руки, но не все, а только те, кто может реально помочь и понимает задачу!

это наверно ко мне)

какова проблема и где надо внести защиту?

Ссылка на комментарий
Поделиться на других сайтах

Гость
Эта тема закрыта для публикации сообщений.

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.