Trotor 27 11/05/2019 04:38 PM Помогите создать предпросмотр записей и комментариев перед отправкой, приложения Links. Share this post Link to post
newbie 1,722 11/06/2019 05:59 AM В шаблоны 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); } 3 Share this post Link to post
Trotor 27 11/06/2019 12:20 PM @newbie, Большое спасибо, то что надо! P.S. А можно что бы при внесении изменений в формы, при нажатии на кнопку предпросмотра, изменённые данные не только отображались в окне предпросмотра, а также и сохранялись в формах (как например в сообщениях на форуме). Share this post Link to post
Trotor 27 11/06/2019 01:27 PM P.S. А можно что бы при внесении изменений в формы, при нажатии на кнопку предпросмотра, изменённые данные не только отображались в окне предпросмотра, а также и сохранялись в формах (как например в сообщениях на форуме). В форме комментариев сохраняется, а в форме записи - нет. Share this post Link to post
newbie 1,722 11/07/2019 05:25 AM Выше /* 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' ]); } 1 Share this post Link to post
Trotor 27 11/07/2019 06:35 AM @newbie, Ещё раз спасибо за вашу неоценимую помощь! Share this post Link to post
Trotor 27 11/07/2019 08:36 AM @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
newbie 1,722 11/08/2019 07:57 AM Не могу понять куда именно вставить в файле calendars.phpТам код должен быть совсем другим. Share this post Link to post
Trotor 27 11/08/2019 09:04 AM Там код должен быть совсем другим. А какой не подскажете? Share this post Link to post
newbie 1,722 11/08/2019 09:31 AM Вам для всех полей что ли нужно?Там же их очень много. Share this post Link to post
Trotor 27 11/08/2019 09:38 AM Вам для всех полей что ли нужно?Там же их очень много. Нет. На основании данных что вы сделали для приложения 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
newbie 1,722 11/08/2019 09:43 AM Я имею ввидуВсе нужны или только текст? Share this post Link to post
Trotor 27 11/08/2019 09:47 AM Я имею ввидуА это не нужно. Я в Календаре не использую эти дату окончания и начала. Публикуется в основной календарь и для всех. Share this post Link to post
newbie 1,722 11/08/2019 09:54 AM Добавьте выше /* 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'] ) : ''; }Если что-то еще нужно будет, пишите 1 Share this post Link to post