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

Ошибка при цитировании


dimitry

Вопрос

IPB 1.3

Именно при ответе с цитированием (после нажима на кнопку цитата) на любое сообщение и установленным режимом Разрешить загрузку файлов (неважно какого размера) над логотипом IPB в самом верху страницы появляется ошибочка PHP Warning: Missing argument 2 for upload_field() in z:\home\...\www\forums\Skin\s1\skin_post.php on line 421 Причем, что интересно, это скрипт и до возникновения этой ошибки не изменялся.

Вот отрывок с того места

function Upload_field($data, $exts) {
global $ibforums;
return <<<EOF
 <tr>
<td colspan="2" class='pformstrip'>{$ibforums->lang['upload_title']}</td>
 </tr>
 <tr>
<td class='pformleft'>{$ibforums->lang['upload_text']} $data</td>
<td class='pformright'><input class='textinput' type='file' size='30' name='FILE_UPLOAD' /><br>{$ibforums->lang['exts_allowed']}: {$exts}</td>
 </tr>

EOF;
}


function errors($data) {
global $ibforums;
return <<<EOF
<div class="tableborder">
 <div class="pformstrip">{$ibforums->lang['errors_found']}</div> - [color=#FF0000]вот именно здесь 421 строка с багом[/color]
 <div class="tablepad"><span class='postcolor'>$data</span></div>
</div>
<br />
EOF;
}

Причем файлы в аттач закачиваются и скачиваются из него нормально.

 

И еще один вопрос по поводу skin_topic

Где (в каком скрипте) нужно заменить, чтобы при просмотре темы там, где есть цитата и идет обозначение

QUOTE (... @ 5.10.2006 - 21:55)

Чтобы вместо слова QUOTE отображалось слово Цитата

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

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

  • 0
Где (в каком скрипте) нужно заменить, чтобы при просмотре темы там, где есть цитата и идет обозначение

post_parser.php

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

  • 0
Не все значения передаются, какой-то параметр теряется..
Ссылка на комментарий
Поделиться на других сайтах

  • 0
это я немного оффтоплю, но imho, ответ с цитирование ересь. Надо юзать быстрое цитирование.
Ссылка на комментарий
Поделиться на других сайтах

  • 0
Где (в каком скрипте) нужно заменить, чтобы при просмотре темы там, где есть цитата и идет обозначение

post_parser.php

Что-то менял я там

$this->quote_open++;

	if ($date == "")
	{
		$html = $this->wrap_style( array( 'STYLE' => 'Цитата', 'EXTRA' => "($name)" ) );
	}
	else
	{
		$html = $this->wrap_style( array( 'STYLE' => 'Цитата', 'EXTRA' => "($name @ $date)" ) );
	}

	$extra = "-".$name.'+'.$date;

	return "<!--QuoteBegin".$extra."-->{$html['START']}<!--QuoteEBegin-->";

Все равно пишет QUOTE.Может что-то в БД занесено?

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

  • 0

На самом деле, нужно ставить мод именно вот этот http://www.ibresource.ru/db/157 - в нем присутствует что-то такое, что активизирует наконец-таки кнопку-макрос T_QREPLY <img src='style_images/<#IMG_DIR#>/t_qr.gif..., т.к. если использовать другой мод под названием "Форма быстрого ответа" - эта кнопка не появляется!.

Далее - удалось мне влепить функцию вставки цитаты выделенного, т.к. на 1.3 Final эта функция выделения и вставки цитаты - вообще ни черта не работала.: выделяешь текст, кликаешь "нажмите сюда" - и никакой реакции вообще.

Потому что там была по-моему ошибка.

Нужно после установки мода Расширенная форма быстрого ответа в функции function quick_reply_box_open($fid="",$tid="",$show="hide", $key="") { (и только в ней!) найти следующее место:

 

<!-- TITLE DIV -->
<div class="tableborder">
<div class='maintitle'> {$ibforums->lang['qr_title']}</div>
<table cellpadding="0" cellspacing="0" width="100%">
<!--IBF.NAME_FIELD-->
<tr>
  <td class='pformstrip' colspan="2">{$ibforums->lang['ib_code_buttons']}</td>
</tr>
<tr>
  <td class='pformleft'>
   <input type='radio' class='radiobutton' name='bbmode' value='ezmode' onclick='setmode(this.value)' /> <b>{$ibforums->lang['bbcode_guided']}</b><br />
   <input type='radio' class='radiobutton' name='bbmode' value='normal' onclick='setmode(this.value)' checked="checked" /> <b>{$ibforums->lang['bbcode_normal']}</b>
   <script type='text/javascript' src='html/ibfcode.js'></script>
  </td>
  <td class='pformright'>
   <input type='button' accesskey='b' value=' B '	   onclick='simpletag("B")' class='codebuttons' name='B' style="font-weight:bold" onmouseover="hstat('bold')" />
   <input type='button' accesskey='i' value=' I '	   onclick='simpletag("I")' class='codebuttons' name='I' style="font-style:italic" onmouseover="hstat('italic')" />

А конкретнее:

 

 <input type='radio' class='radiobutton' name='bbmode' value='ezmode' onclick='setmode(this.value)' /> <b>{$ibforums->lang['bbcode_guided']}</b><br />
   <input type='radio' class='radiobutton' name='bbmode' value='normal' onclick='setmode(this.value)' checked="checked" /> <b>{$ibforums->lang['bbcode_normal']}</b>

И заменить это хозяйство на следующее:

 <input type='radio' class='radiobutton' name='bbmode' value='ezmode' onclick='setmode(this.value)' /> <b>{$ibforums->lang['bbcode_guided']}</b><br />
   <input type='radio' class='radiobutton' name='bbmode' value='normal' onclick='setmode(this.value)' checked="checked" /> <b>{$ibforums->lang['bbcode_normal']}</b><br />
<a href="java script:Insert(selection);" onmouseover="get_selection();" class='postdetails'><b>Цитировать выделенное</b></a>

Обратите внимание - именно onmouseover а не onMouseDown - и только после этого наконец-таки в окошке быстрого ответа появилась у меня цитата с выделенного.

 

А теперь вопрос к IPB-представителям:

 

В данном случае вставляется цитата без имени и даты.По ходу дела необходимо изменить параметры в ява-скрипте qoute.js

 

function ins(name){
if (document.REPLIER) {
var input=document.REPLIER.Post;
input.value=input.value+"[b]"+name+"[/b]"+" \n";
}
}

function Insert(text){ 
if (text!="") paste("[quote]"+text+"[/quote]\n", 0);
}

function paste(text, flag){ 
if (document.REPLIER) {
if ((document.selection)&&(flag)) {
document.REPLIER.Post.focus();
document.REPLIER.document.selection.createRange().text = text;
} else document.REPLIER.Post.value += text;
}
}

function get_selection() {
  if (document.getSelection){
selection = document.getSelection();
selection = selection.replace(/\r\n\r\n/gi, "_doublecaret_");
selection = selection.replace(/\r\n/gi, " ");
   while (selection.indexOf("  ") !=-1) selection = selection.replace(/  /gi, ""); 
selection = selection.replace(/_doublecaret_/gi, "\r\n\r\n");
 } else
  selection = document.selection.createRange().text;
}

 

Вопрос - где и что изменить и как, чтобы дата и имя с выделенно текста в посте вставлялось.

 

Функция копирования/вставки с цитаты в моде Вставки ника и даты в скрипте quote.js выглядит так:

 

function CopyQuote()
{
	window.txt='';
	if (document.getSelection)
	{
			window.txt=document.getSelection()
	}
	else if (document.selection)
	{
			window.txt=document.selection.createRange().text;
	}
}
function PasteQuote(name,datetime,postid)
{
if(document.REPLIER.Post)
if (window.txt.replace(" ","") != "")
	{
		   document.REPLIER.Post.value +='[quote='+name+', '+datetime+']\n'+window.txt+'\n[/quote]\n'
	}
}

 

Чтобы можно было вставлять множество цитат тем же макаром (с выделением текста) и при полном ответе, то нужно аналогично в скрипте skin_post.php нужно в функции function postbox_buttons($data) { заменить

<input type='radio' class='radiobutton' name='bbmode' value='ezmode' onclick='setmode(this.value)' /> <b>{$ibforums->lang['bbcode_guided']}</b><br />
   <input type='radio' class='radiobutton' name='bbmode' value='normal' onclick='setmode(this.value)' checked="checked" /> <b>{$ibforums->lang['bbcode_normal']}</b>

На:

<input type='radio' class='radiobutton' name='bbmode' value='ezmode' onclick='setmode(this.value)' /> <b>{$ibforums->lang['bbcode_guided']}</b><br />
   <input type='radio' class='radiobutton' name='bbmode' value='normal' onclick='setmode(this.value)' checked="checked" /> <b>{$ibforums->lang['bbcode_normal']}</b><br />
<a href="java script:Insert(selection);" onmouseover="get_selection();" class='postdetails'><b>Цитировать выделенное</b></a>

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

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

  • 0
dimitry, одна тема один вопрос!
Ссылка на комментарий
Поделиться на других сайтах

  • 0
IPB 1.3

И еще один вопрос по поводу skin_topic

Где (в каком скрипте) нужно заменить, чтобы при просмотре темы там, где есть цитата и идет обозначение

QUOTE (... @ 5.10.2006 - 21:55)

Чтобы вместо слова QUOTE отображалось слово Цитата

Где (в каком скрипте) нужно заменить, чтобы при просмотре темы там, где есть цитата и идет обозначение

post_parser.php

Это неправильный ответ!

Правильный ответ - lang/2/mod_bbcode_lang.php

$lang['k_html'] = "l";
$lang['bb_quote_title'] = "Цитата";
$lang['bb_code_title'] = "CODE";

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

  • 0
Это неправильный ответ!Правильный ответ - lang/2/mod_bbcode_lang.php

Это смотря в какой версии.

 

 

Я вот открываю 1.3.1 post_parser.php

и вижу:

		$possible_use = array( 'CODE'  => array( 'CODE',  'Код' ),
						   'QUOTE' => array( 'QUOTE', 'Цитата'  ),
						   'SPOILER' => array( 'SPOILER', 'Скрытый текст'  ),
						   'SQL'   => array( 'CODE' , 'SQL'),
						   'HTML'  => array( 'CODE' , 'HTML'),
						   'PHP'   => array( 'CODE' , 'PHP')
						 );

никакими лангами здесь и не пахнет.

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

Присоединиться к обсуждению

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

Гость
Ответить на вопрос...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

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

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