Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 General Discussions
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools Display Modes
  #1  
Old 07-26-2008, 08:48 AM
thalamus's Avatar
thalamus thalamus is offline
 
Join Date: Sep 2005
Location: UK
Posts: 66
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Formatting in user-defined template

I've come across a problem when trying to output a formatted series of fields into a post, in that a 'newline' (or a <br /> doesn't appear to be recognized when the string is submitted.

Briefly; I've created a plugin that allows for a new thread post to have its own template - let's say its for a review. The new template is being called by the relevant hook (newthread_post_start), and the template has several fields in addition to the main comment box (i.e. name of book, author, date of publication, date reviewed, rating). These field values are being picked up correctly, and what I want to do is to collate them all, and place them into the $vbulletin->GPC['message'] store. In order to do that, I pick up the field values after the form is submitted and assign them to variables that are concatenated, but each with a newline for spacing. For example:
Code:
  $newline = chr(13) . chr(10);
  $new_message = '[b][size="4"]' . $rev_title . '[/size][/b]' . $newline;
  $new_message .= '[size="2"]' . $rev_author . '[/size]' . $newline;
  $new_message .= '[i][size="2"]' . $rev_date . '[/size][/i]' . $newline . $newline;
  $new_message .= '[b]' . $rev_initpara . '[/b]' . $newline . $newline;
  $new_message .= $rev_message . $newline . $newline;
  $new_message .= '[url="' . $rev_link . '"]Full Review Here[/url]' . $newline;
  // and set it as the main message text from the editor as an all-in-one for processing by vBulletin core
  $vbulletin->GPC['message'] = $new_message;

Obviously, $rev_message contains
$vbulletin->GPC['message'] which is brought across from the hook, and is the main wysiwyg/editor text content.

As you can see, the above assigns $newline with the character values of a lf and cr, but this does not output. I've also tried to substitute "<br />" and "\r\n" into $newline, all to no avail (in fact the saved post simply displays the <br /> or \r\n as characters).

Does anyone know what the lf/cr values are that are interpreted properly by the core function in order for this to output correctly into a post?

Sorry if some of this doesn't make sense; it's quite a frustrating problem

TIA for your assistance
Reply With Quote
  #2  
Old 07-26-2008, 08:52 AM
Opserty Opserty is offline
 
Join Date: Apr 2007
Posts: 4,103
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

PHP Code:
$newline PHP_EOL
(No need really for that line, just use PHP_EOL in place of the variable).
Reply With Quote
  #3  
Old 07-26-2008, 09:05 AM
thalamus's Avatar
thalamus thalamus is offline
 
Join Date: Sep 2005
Location: UK
Posts: 66
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thanks for the response, Opserty... unfortunately all that does is outputs the text PHP_EOL instead of the line breaks
Reply With Quote
  #4  
Old 07-26-2008, 09:08 AM
Opserty Opserty is offline
 
Join Date: Apr 2007
Posts: 4,103
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

What is the exact code you are using? (That you've changed it too now)
Reply With Quote
  #5  
Old 07-26-2008, 09:14 AM
thalamus's Avatar
thalamus thalamus is offline
 
Join Date: Sep 2005
Location: UK
Posts: 66
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I've tried both:
PHP Code:
$newline PHP_EOL
retaining the variable in the code, and also replacing the variable at each instruction:
PHP Code:
$new_message '[b][size="4"]' $rev_title '[/size][/b]' PHP_EOL;
$new_message .= '[size="2"]' $rev_author '[/size]' PHP_EOL;
$new_message .= '[i][size="2"]' $rev_date '[/size][/i]' PHP_EOL PHP_EOL;
$new_message .= '[b]' $rev_initpara '[/b]' PHP_EOL PHP_EOL;
$new_message .= $rev_message PHP_EOL PHP_EOL;
$new_message .= '[url="' $rev_link '"]Full Review Here[/url]' PHP_EOL;
// and set it as the main message text from the editor as an all-in-one for processing by vBulletin core
$vbulletin->GPC['message'] = $new_message
Both display the text PHP_EOL after the field values.
Reply With Quote
  #6  
Old 07-26-2008, 09:36 AM
Opserty Opserty is offline
 
Join Date: Apr 2007
Posts: 4,103
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Ok undo those changes you made and try:
PHP Code:
if($vbulletin->GPC['wysiwyg'])
{
    
$newline '<br>';
}
else
{
    
$newline "\n";
}
// Rest of your code here... 
Reply With Quote
  #7  
Old 07-26-2008, 09:58 AM
thalamus's Avatar
thalamus thalamus is offline
 
Join Date: Sep 2005
Location: UK
Posts: 66
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

:up:

This seems to have done the trick; I'll now wait for the users to make posts and check, but from the looks of it, it's now working

Many thanks for your assistance on this one, opserty; much appreciated
Reply With Quote
  #8  
Old 07-26-2008, 10:44 AM
Opserty Opserty is offline
 
Join Date: Apr 2007
Posts: 4,103
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

No problem, you could shorten it to a single line like:
PHP Code:
$newline = ($vbulletin->GPC['wysiwyg']) ? '<br>' "\n"
Reply With Quote
  #9  
Old 07-26-2008, 05:20 PM
thalamus's Avatar
thalamus thalamus is offline
 
Join Date: Sep 2005
Location: UK
Posts: 66
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

indeed... already coded the conditional shortcut thanks again
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 08:17 AM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.04280 seconds
  • Memory Usage 2,257KB
  • Queries Executed 13 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (1)bbcode_code
  • (5)bbcode_php
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (9)post_thanks_box
  • (9)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (9)post_thanks_postbit_info
  • (9)postbit
  • (9)postbit_onlinestatus
  • (9)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete