Jump to content
Дизайн и модификация IPS Community IPBSkinsBETA
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
Trotor

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

Recommended Posts

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

Share this post


Link to post

В шаблоны 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

Share this post


Link to post

@newbie,

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

 

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

Share this post


Link to post

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

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

Share this post


Link to post

Выше

		/* 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

Share this post


Link to post

@newbie,

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

Share this post


Link to post

@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

Share this post


Link to post

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

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

Share this post


Link to post

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

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

Share this post


Link to post

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

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

Share this post


Link to post

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

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

Нет. На основании данных что вы сделали для приложения 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);
	}

 

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

Share this post


Link to post

Я имею ввиду

calendar.png

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

Share this post


Link to post

Я имею ввиду

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

Share this post


Link to post

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

		/* 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

Share this post


Link to post

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

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

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...