phpBB

Development Wiki

Function.generate text for display

From phpBB Development Wiki

generate_text_for_display –– Display custom parsed text on user-facing pages.

Description

  1.  string generate_text_for_display ( string $text , string $uid , string $bitfield , int $flags )

Grab data from the database and returned the parsed string of text for display on user facing pages.
This function is located in the /includes/functions_content.php file.

Parameters

Parameter Usage
text Text string directly from the database. Stored value from generate_text_for_storage.
uid BBCode UID, a randomly generated unique identifier to mark the bbcodes identified by the first pass encoding (which uses regular expressions) so they can be replaced using the quicker str_replace in the second pass.
bitfield Bit field containing the information which bbcode is used in the text so only the relavant ones need to be loaded from the database.

BBCode bitfield. Used if $flags set BBCode enabled.

flags Integer flag containing the information whether bbcode, smilies and magic urls are enabled (OPTION_FLAG_BBCODE, OPTION_FLAG_SMILIES and OPTION_FLAG_LINKS). Sometimes you will find this separated into enable_bbcode, enable_smilies and enable_magic_url. Column names vary from table to table.

Return Values

Returns the text string to display to user.

Examples

Example #1 bbcode_options

This example uses the bbcode_options field which is used in forums and groups description parsing:

$sql 'SELECT text, bbcode_uid, bbcode_bitfield, bbcode_options
    FROM ' 
YOUR_TABLE '
    WHERE some_id = ' 
. (int) $example_id;
$result $db->sql_query($sql);
$row $db->sql_fetchrow($result);
$db->sql_freeresult($result);

$text generate_text_for_display($row['text'], $row['bbcode_uid'], $row['bbcode_bitfield'], $row['bbcode_options']);

$template->assign_vars(array(
    
'TEXT'      => $text,
));

Example #2 Individual bbcode_options

This example uses the enable_bbcode, enable_smilies and enable_magic_url flags which can be used instead of a single options field and is used in parsing posts (for example).

$sql 'SELECT text, bbcode_uid, bbcode_bitfield, enable_bbcode, enable_smilies, enable_magic_url
    FROM ' 
YOUR_TABLE '
    WHERE some_id = ' 
. (int) $example_id;
$result $db->sql_query($sql);
$row $db->sql_fetchrow($result);
$db->sql_freeresult($result);

// Add up the flag options...
$bbcode_options = (($row['enable_bbcode']) ? OPTION_FLAG_BBCODE 0) +
    ((
$row['enable_smilies']) ? OPTION_FLAG_SMILIES 0) + 
    ((
$row['enable_magic_url']) ? OPTION_FLAG_LINKS 0);

$template->assign_vars(array(
    
'TEXT'      => generate_text_for_display($row['text'], $row['bbcode_uid'], $row['bbcode_bitfield'], $bbcode_options),
));

Example #3 Forums Table Real World Example

Real-world example of a query that could be performed on the forums table to display the forum description.

$sql 'SELECT forum_name, forum_desc, forum_desc_uid, forum_desc_bitfield, forum_desc_options
        FROM ' 
FORUMS_TABLE '
        WHERE forum_id = ' 
. (int) $forum_id;
$result $db->sql_query($sql);
$row $db->sql_fetchrow($result);
$db->sql_freeresult($result);

$template->assign_vars(array(
    
'FORUM_NAME'        => $row['forum_name'],
    
'FORUM_DESC'        => generate_text_for_display($row['forum_desc'], $row['forum_desc_uid'], $row['forum_desc_bitfield'], $row['forum_desc_options']),
));

Notes

Option Text Flags

The OPTION_FLAG_* constants are defined as:
define('OPTION_FLAG_BBCODE', 1);
define('OPTION_FLAG_SMILIES', 2);
define('OPTION_FLAG_LINKS', 4);
Adding these constants together will result in all three options being enabled.

See Also