Перейти к публикации
Дизайн и модификация IPS Community IPBSkinsBETA
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
Trotor

Предпросмотр для записей Links

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

Помогите создать предпросмотр записей и комментариев перед отправкой, приложения Links.

Поделиться сообщением


Ссылка на сообщение

В шаблоны commentForm и linkForm в самое начало добавляете

<if test="isset($this->request['preview'])">
<php>
$comment = IPSText::getTextClass( 'editor' )->processRawPost( 'Post' );
IPSText::getTextClass( 'bbcode' )->parse_html = 0;
IPSText::getTextClass( 'bbcode' )->parse_nl2br = 1;
IPSText::getTextClass( 'bbcode' )->parse_smilies = ( $this->settings[ 'l_emo_comments' ] == 1 ) ? 1 : 0;
IPSText::getTextClass( 'bbcode' )->parse_bbcode = 1;
IPSText::getTextClass( 'bbcode' )->parsing_section = 'links_comments';
$comment  = IPSText::getTextClass( 'bbcode' )->preDisplayParse( IPSText::getTextClass( 'bbcode' )->preDbParse( $comment ) );
</php>
<if test="!$this->settings['disable_lightbox']">
	{parse template="include_lightbox" group="global" params=""}
</if>
<h2 class='maintitle'>Preview</h2>
<div class='post_wrap'>
	<div class='row2' style='padding:8px'>
		<div class='post entry-content'>{$comment}</div>
	</div>
</div>
<br />
</if>

Только в linkForm

IPSText::getTextClass( 'bbcode' )->parsing_section = 'links_comments';

заменяете на

IPSText::getTextClass( 'bbcode' )->parsing_section	= 'links_ldesc';

 

В commentForm после

<input type='submit' name='submit' value='{$data[ 'button' ]}' class='input_submit' accesskey='s' />

добавляете

<input type="submit" name="preview" value="Preview" tabindex="0" class="input_submit alt" />

В linkForm после

<input type='submit' name='submit' value='{$link[ 'button' ]}' class='input_submit' accesskey='s' />

добавляете

<input type="submit" name="preview" value="Preview" tabindex="0" class="input_submit alt" />

 

В admin/applications_addon/other/links/modules_public/links/links.php после

$linkDesc = IPSText::getTextClass( 'bbcode' )->preDbParse( $linkDesc );

добавляете

		if (isset($this->request['preview']))
	{
		return $this->showLinkForm($type);
	}

  • Upvote 3

Поделиться сообщением


Ссылка на сообщение

@newbie,

Большое спасибо, то что надо!

 

P.S. А можно что бы при внесении изменений в формы, при нажатии на кнопку предпросмотра, изменённые данные не только отображались в окне предпросмотра, а также и сохранялись в формах (как например в сообщениях на форуме).

Поделиться сообщением


Ссылка на сообщение

P.S. А можно что бы при внесении изменений в формы, при нажатии на кнопку предпросмотра, изменённые данные не только отображались в окне предпросмотра, а также и сохранялись в формах (как например в сообщениях на форуме).

В форме комментариев сохраняется, а в форме записи - нет.

Поделиться сообщением


Ссылка на сообщение

Выше

		/* Simply show the form */
	$this->output = $this->registry->output->getTemplate( 'links' )->linkForm( $this->links->getMessages(), $link, $cat );

Добавить

		if (isset($this->request['preview']))
	{
		$link[ 'editor' ] = IPSText::getTextClass( 'editor' )->showEditor( $this->request['Post'] ? IPSText::getTextClass( 'bbcode' )->preEditParse( $this->request['Post'] ) : '' , 'Post' );
		$link['link_title'] = trim($this->request[ 'link' ]);
		$link['link_url'] = trim($this->request[ 'href' ]);
	}

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение

@newbie,

Ещё раз спасибо за вашу неоценимую помощь!

Поделиться сообщением


Ссылка на сообщение

@newbie,

Кстати, на основе всего этого, сделал также предпросмотр и в записях Календаря. Всё отлично, вот только также не сохраняется в форме, а этот ваш код:

        if (isset($this->request['preview']))
       {
           $link[ 'editor' ] = IPSText::getTextClass( 'editor' )->showEditor( $this->request['Post'] ? IPSText::getTextClass( 'bbcode' )->preEditParse( $this->request['Post'] ) : '' , 'Post' );
           $link['link_title'] = trim($this->request[ 'link' ]);
           $link['link_url'] = trim($this->request[ 'href' ]);
       }

Не могу понять куда именно вставить в файле calendars.php

Поделиться сообщением


Ссылка на сообщение

Не могу понять куда именно вставить в файле calendars.php

Там код должен быть совсем другим.

Поделиться сообщением


Ссылка на сообщение

Там код должен быть совсем другим.

А какой не подскажете?

Поделиться сообщением


Ссылка на сообщение

Вам для всех полей что ли нужно?

Там же их очень много.

Поделиться сообщением


Ссылка на сообщение

Вам для всех полей что ли нужно?

Там же их очень много.

Нет. На основании данных что вы сделали для приложения Links, я сделал и для Календаря.

 

В шаблон calendarEventForm поместил в самый верх:

 

<if test="isset($this->request['preview'])"><php>$comment = IPSText::getTextClass( 'editor' )->processRawPost( 'Post' );IPSText::getTextClass( 'bbcode' )->parse_html = 0;IPSText::getTextClass( 'bbcode' )->parse_nl2br = 1;IPSText::getTextClass( 'bbcode' )->parse_smilies	= intval($allow_emoticons);IPSText::getTextClass( 'bbcode' )->parse_bbcode = 1;IPSText::getTextClass( 'bbcode' )->parsing_section	= 'calendar';$comment  = IPSText::getTextClass( 'bbcode' )->preDisplayParse( IPSText::getTextClass( 'bbcode' )->preDbParse( $comment ) );</php>
<div class='general_box alt'><h2 class='maintitle'> Предпросмотр записи</h2></div><div class='post_block' style='margin-bottom: -1px'><div class='post_wrap' style='background: #F4F2D8'><div class='author_info' style='margin: 5px 0 0px 0;background: #F4F2D8<if test="$this->registry->output->skin['set_id'] != 22"><else />;width: 150px</if>'></div><div class='post_body whitebox_event'<if test="$this->registry->output->skin['set_id'] != 22"><else /> style='margin-left: 152px'</if>><div class='message'>{$comment}</div></div></div></div><br /></if>

 

В самый низ:

<input type="submit" name="preview" value="Предпросмотр записи" tabindex="0" class="input_submit alt" style='font-size: 14px'/>

 

В файл calendars.php перед:

if( ! checkdate( $month, $day , $year ) )
       {
		$this->registry->output->showError( 'calendar_invalid_date', 10427 );
	}

 

Поместил:

		if (isset($this->request['preview']))
	{
	return $this->calendarEventForm($type);
	}

 

И знаете, всё заработало, предпросмотр появился. Однако при внесении изменений в форму, при нажатии на кнопку предпросмотра, изменённые данные не сохраняются в форме.

Поделиться сообщением


Ссылка на сообщение

Я имею ввиду

calendar.png

Все нужны или только текст?

Поделиться сообщением


Ссылка на сообщение

Я имею ввиду

А это не нужно. Я в Календаре не использую эти дату окончания и начала. Публикуется в основной календарь и для всех.

Поделиться сообщением


Ссылка на сообщение

Добавьте выше

		/* Output */
	$this->output .= $this->registry->output->getTemplate( 'calendar' )->calendarEventForm(

		if (isset($this->request['preview']))
	{
		$event['event_title'] = IPSText::getTextClass( 'bbcode' )->stripBadWords( trim( $this->request['event_title'] ) );
		$event['event_content'] = $this->request['Post'] ? IPSText::getTextClass( 'bbcode' )->preEditParse( $this->request['Post'] ) : '';
	}

Если что-то еще нужно будет, пишите

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение

Добавьте выше

Спасибо, то что надо!

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

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