Generate text for display
From phpBB Development Wiki
generate_text_for_display –– Display custom parsed text on user-facing pages.
Contents |
Description
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

